]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
фиксы
authormarina <m.zozirova@gmail.com>
Mon, 23 Dec 2024 11:40:31 +0000 (14:40 +0300)
committermarina <m.zozirova@gmail.com>
Mon, 23 Dec 2024 11:40:31 +0000 (14:40 +0300)
erp24/actions/timetable/StartShiftStepTwoAction.php
erp24/forms/timetable/StartForm.php
erp24/web/js/timetable/start.js

index c944f35dbe87b85e8c61f5474a57c81066fba0d6..80246ad02b1471df170150658c0c8725d8c9e761 100755 (executable)
@@ -149,13 +149,13 @@ class StartShiftStepTwoAction extends Action
 
                 TimetableFactModel::setValues($model, empty($fact));
 
-                if ($this->controller->request->getHeaders()->get('Accept') == 'application/json') {
-                    $this->controller->response->format = Response::FORMAT_JSON;
-                    return [
-                        'success' => !$model->hasErrors(),
-                        'errors' => $model->getErrors(),
+                if ($this->controller->request->isAjax) {
+                    $response = [
+                        'success' => true,
                         'model' => $model,
                     ];
+                    Yii::$app->response->format = Response::FORMAT_JSON;
+                    return $response;
                 }
 
                 return $this->controller->render('/timetable/start_shift_step_three.php', [
@@ -165,6 +165,18 @@ class StartShiftStepTwoAction extends Action
                     'device' => $device,
                     'planSlots' => $planSlots,
                 ]);
+            } else {
+                if ($this->controller->request->isAjax) {
+                    $errors = $model->errors;
+                    if (!$twoMinutes) $errors['two_minutes'] = ['После открытия смены не прошло 2 минуты!'];
+                    $response = [
+                        'success' => false,
+                        'errors' => implode(', ', array_merge(...array_values($errors))),
+                        'model' => $model,
+                    ];
+                    Yii::$app->response->format = Response::FORMAT_JSON;
+                    return $response;
+                }
             }
         }
 
index e9580dcabbd7ffbec3d71a8b9de899c756ca71dc..5ea15cce97ef359ad586a352d0124802eb322bc4 100755 (executable)
@@ -252,7 +252,7 @@ class StartForm extends Model
      */
     public function getPlanSlot()
     {
-        if (!$this->planSlotModel) {
+        if (!$this->planSlotModel && !empty($this->plan_id)) {
             $this->planSlotModel = TimetablePlan::find()->andWhere(['id' => $this->plan_id])->one();
         }
         return $this->planSlotModel;
index df047c06fd641f31a59c6a9517628decd0f0d113..904a9a6e27d98a55169300f896059c065142cfb8 100755 (executable)
@@ -130,18 +130,9 @@ import TimetableSlot from "./Model/TimetableSlot";
         form.append(window.settings.fieldNames.photo, photoBlob, 'selfie.jpg');
         fetch('/timetable/start-shift-step-two', {
             method: 'POST',
-            headers: {'Accept': 'application/json'},
+            headers: {'Accept': 'application/json',    'X-Requested-With': 'XMLHttpRequest'},
             body: form
         }).then(function(response) {
-            if (!response.ok || response.headers.get('Content-Type').substr(0, 'application/json'.length) !== 'application/json') {
-                let headersArray = Array.from(response.headers);
-                let message = 'timetable/start-shift-step-two error ' + response.status + ' ' + response.statusText;
-                window.reportError(message, '', '','', {}, JSON.stringify({status: response.status, headers: headersArray}));
-                return {
-                    success: false,
-                    message: 'Ошибка на стороне сервера, обратитесь в техподдержку.',
-                }
-            }
             return response.json();
         }, function (error) {
             window.reportError(error.message);
@@ -150,7 +141,6 @@ import TimetableSlot from "./Model/TimetableSlot";
                 message: 'Ошибка соединения',
             };
         }).then(function (json) {
-
             Array.from(document.querySelectorAll('form .help-block')).map(function (element) {
                 element.innerHTML = '';
             })
@@ -195,7 +185,7 @@ import TimetableSlot from "./Model/TimetableSlot";
                     error = json.message;
                 }
                 bottomMessageBar.className = 'alert alert-danger';
-                bottomMessageBar.innerHTML = `Не получилось открыть смену: ${error}`;
+                bottomMessageBar.innerHTML = `Не получилось открыть смену: ${json.errors}`;
                 bottomMessageBar.hidden = false;
             }
         });