]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Фиксирование плашки смена открыть закрыть на первой странице.Доработка логирования. feature_filippov_20260213_add_open_shift_dashbord origin/feature_filippov_20260213_add_open_shift_dashbord
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Fri, 13 Feb 2026 05:50:04 +0000 (08:50 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Fri, 13 Feb 2026 05:50:04 +0000 (08:50 +0300)
erp24/api2/controllers/StoreController.php
erp24/services/UploadService.php
erp24/views/site/index.php

index 620068db9b64970e6fdecfc676db749c43fa692f..7bd03f6f0860bc1b69782311bc1030157c1b00a4 100644 (file)
@@ -254,12 +254,23 @@ class StoreController extends BaseController {
         $__API_PARAMS = ['id', 'store_id', 'seller_id', 'created_at', 'summ', 'status_id', 'products_json'];
         // comment, check_id
 
+        $missingParams = [];
         foreach ($__API_PARAMS as $paramName) {
             if (!isset($result[$paramName])) {
-                LogService::apiErrorLog(json_encode(["error_id" => 1, "error" => "$paramName is required"], JSON_UNESCAPED_UNICODE));
-                return $this->asJson(["error_id" => 1, "error" => "$paramName is required"]);
+                $missingParams[] = $paramName;
             }
         }
+        if (!empty($missingParams)) {
+            $errorPayload = [
+                "error_id" => 1,
+                "error" => "Отсутствуют обязательные поля: " . implode(', ', $missingParams),
+                "missing_params" => $missingParams,
+                "received_params" => array_keys($result),
+                "assembly_id" => $result['id'] ?? 'unknown',
+            ];
+            LogService::apiErrorLog(json_encode($errorPayload, JSON_UNESCAPED_UNICODE));
+            return $this->asJson($errorPayload);
+        }
 
         $assemble = Assemblies::findOne(['guid' => $result['id']]);
         if (!$assemble) {
@@ -333,11 +344,15 @@ class StoreController extends BaseController {
             }
         }
 
-        $assemble->save();
-
-        if ($assemble->getErrors()) {
-            LogService::apiErrorLog(json_encode(["error_id" => 3, "error" => $assemble->getErrors()], JSON_UNESCAPED_UNICODE));
-            return $this->asJson(["error_id" => 3, "error" => $assemble->getErrors()]);
+        if (!$assemble->save()) {
+            $errorPayload = [
+                "error_id" => 3,
+                "error" => $assemble->getErrors(),
+                "assembly_id" => $result['id'],
+                "status_id" => $result['status_id'],
+            ];
+            LogService::apiErrorLog(json_encode($errorPayload, JSON_UNESCAPED_UNICODE));
+            return $this->asJson($errorPayload);
         }
 
         return $this->asJson(['response' => true]);
index fbdf9bd3e71a107edfb4c3f87e7e11b3532d00eb..f125c86b3cadf40304eed25c1d9317cd079f4262 100644 (file)
@@ -1225,41 +1225,55 @@ class UploadService {
 //                    }
                     
                     if ($update) {
-                        
-                        $sales2 = new Sales;
-                        $sales2->phone = $arr["client_phone"] ?? 0;
-                        $sales2->id = $arr["id"];
-                        $sales2->store_id = $store_id;
-                        $sales2->store_id_1c = $arr["store_id"];
-                        $sales2->seller_id = $arr["seller_id"];
-                        $sales2->admin_id = $admin_id;
-                        $sales2->operation = $arr["type"];
-                        $sales2->number = $arr["number"];
-                        $sales2->date = $arr["date"];
-                        $sales2->summ = $arr["summ"];
-                        $sales2->status = $arr["status"];
-                        $sales2->sales_check = $arr["sales_check"] ?? '';
-                        $sales2->payments = json_encode($arr["payments"], JSON_UNESCAPED_UNICODE);
-                        $sales2->pay_arr = implode(",", $pay_arr);
-                        $sales2->order_id = trim($arr["order_id"] ?? '');
-                        $sales2->terminal = $arr["terminal"] ?? '';
-                        $sales2->terminal_id = $arr["terminal_id"] ?? '';
-                        $sales2->date_up = date('Y-m-d H:i:s');
-                        $sales2->skidka = $arr["discount"] ?? '0';
-                        $sales2->delivery_date = date('Y-m-d', strtotime($arr['delivery_date'] ?? ''));
-                        $sales2->pickup = $arr['pickup'] ?? false;
-                        $sales2->marketplace_order_id = $arr["marketplace_order_id"] ?? null;
-                        $sales2->marketplace_name = $arr["marketplace_name"] ?? null;
-                        $sales2->save();
-                        
-                        // ✅ Проверка результата
-                        if ($sales2->getErrors()) {
-                            LogService::apiErrorLog([
-                                "error_id" => 21, 
-                                "error" => $sales2->getErrors(),
-                                "check_id" => $arr["id"]
-                            ]);
-                            continue;  // ← ПРОПУСТИТЬ создание товаров!
+
+                        try {
+                            $sales2 = new Sales;
+                            $sales2->phone = $arr["client_phone"] ?? 0;
+                            $sales2->id = $arr["id"];
+                            $sales2->store_id = $store_id;
+                            $sales2->store_id_1c = $arr["store_id"];
+                            $sales2->seller_id = $arr["seller_id"];
+                            $sales2->admin_id = $admin_id;
+                            $sales2->operation = $arr["type"];
+                            $sales2->number = $arr["number"];
+                            $sales2->date = $arr["date"];
+                            $sales2->summ = $arr["summ"];
+                            $sales2->status = $arr["status"];
+                            $sales2->sales_check = $arr["sales_check"] ?? '';
+                            $sales2->payments = json_encode($arr["payments"], JSON_UNESCAPED_UNICODE);
+                            $sales2->pay_arr = implode(",", $pay_arr);
+                            $sales2->order_id = trim($arr["order_id"] ?? '');
+                            $sales2->terminal = $arr["terminal"] ?? '';
+                            $sales2->terminal_id = $arr["terminal_id"] ?? '';
+                            $sales2->date_up = date('Y-m-d H:i:s');
+                            $sales2->skidka = $arr["discount"] ?? '0';
+                            $sales2->delivery_date = date('Y-m-d', strtotime($arr['delivery_date'] ?? ''));
+                            $sales2->pickup = $arr['pickup'] ?? false;
+                            $sales2->marketplace_order_id = $arr["marketplace_order_id"] ?? null;
+                            $sales2->marketplace_name = $arr["marketplace_name"] ?? null;
+
+                            if (!$sales2->save()) {
+                                LogService::apiErrorLog(json_encode([
+                                    "error_id" => 21,
+                                    "error" => "Ошибка валидации Sales",
+                                    "validation_errors" => $sales2->getErrors(),
+                                    "check_id" => $arr["id"],
+                                    "check_number" => $arr["number"] ?? '',
+                                    "marketplace" => $arr["marketplace_name"] ?? null,
+                                ], JSON_UNESCAPED_UNICODE));
+                                continue;
+                            }
+                        } catch (\Exception $e) {
+                            LogService::apiErrorLog(json_encode([
+                                "error_id" => 21.1,
+                                "error" => "Исключение при сохранении Sales: " . $e->getMessage(),
+                                "check_id" => $arr["id"],
+                                "check_number" => $arr["number"] ?? '',
+                                "marketplace" => $arr["marketplace_name"] ?? null,
+                                "exception_class" => get_class($e),
+                            ], JSON_UNESCAPED_UNICODE));
+                            Yii::error("Sales save exception для чека {$arr['id']}: " . $e->getMessage());
+                            continue;
                         }
 
                         // Обновляем данные в очереди на создание чеков
index ddb851909a51158d96ea5cd9418c66ccdf00c902..2e4c02a9087aa1df8af37e461a470aaea39a3427 100644 (file)
@@ -53,7 +53,22 @@ $this->title = 'Добро пожаловать в систему!';
 
         ?>
         <div class="row">
+            <div class="col-xs-12 col-sm-6 col-lg-4 col-xl-3">
+                <div class="offer offer-success">
+                    <div class="shape">
+                        <div class="shape-text">
+                            10
+                        </div>
+                    </div>
+                    <div class="offer-content">
+                        <a href="/timetable/start/"><h5><svg class="side-menu__icon" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h2c0-1.66 1.34-3 3-3s3 1.34 3 3v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"></path></svg>
+                                       Смена (открыть, закрыть)                </h5>
+                        </a>
+                    </div>
+                </div>
+            </div>
             <?php foreach ($data2 as $row) : ?>
+                <?php if ($row["url"] === '/timetable/start/') continue; ?>
                 <div class="col-xs-12 col-sm-6 col-lg-4 col-xl-3">
                     <div class="offer offer-<?= $row["offer"] ?>">
                         <div class="shape">
@@ -69,9 +84,6 @@ $this->title = 'Добро пожаловать в систему!';
                         </div>
                     </div>
                 </div>
-                <!--<p class="mb-0">
-                <?php /*= $row["description"] */ ?>
-            </p>-->
             <?php endforeach; ?>
         </div>
     </div>