]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-242] после неудачного резолва конфликта
authorAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Dec 2024 09:17:58 +0000 (12:17 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Dec 2024 09:17:58 +0000 (12:17 +0300)
erp24/controllers/ShiftTransferController.php

index 718448d356bafbd092dd5b2125e5371995cf364e..95f062b56b9034f0ae4ba03a99adc3e9adca0bfc 100644 (file)
@@ -58,6 +58,8 @@ class ShiftTransferController extends Controller
     public function actionCreate()
     {
         $shiftTransfer = new ShiftTransfer;
+        $shiftTransfer->date = date('Y-m-d H:i:s');
+        $shiftTransfer->date_start = $shiftTransfer->date;
 
         $isCreate = true;
 
@@ -76,25 +78,38 @@ class ShiftTransferController extends Controller
         if (!$shiftTransfer) {
             $shiftTransfer = new ShiftTransfer;
         }
-        if ($shiftTransfer->load(Yii::$app->request->post()) && $shiftTransfer->validate()) {
-            $shiftTransfer->save();
-            ShiftRemains::deleteAll(['shift_transfer_id' => $shiftTransfer->id]);
-            $modelsShiftRemains = MultipleModel::createMultipleModel(ShiftRemains::class,
-                'ShiftTransfer', 'shiftRemainsCopy');
+        $loadDataShiftRemains = null;
+        if ($shiftTransfer->load(Yii::$app->request->post())) {
             $postShiftTransfer = Yii::$app->request->post('ShiftTransfer');
             $loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy');
-            if (!empty($loadDataShiftRemains)) {
-                MultipleModel::loadMultipleFromArray($modelsShiftRemains, $loadDataShiftRemains , '',[]);
-            }
-            foreach ($modelsShiftRemains as $modelsShiftRemain) {
-                $modelsShiftRemain->shift_transfer_id = $shiftTransfer->id;
-                if ($modelsShiftRemain->validate()) {
-                    $modelsShiftRemain->save();
-                } else {
-                    var_dump($modelsShiftRemain->getErrors()); die;
+
+            if ($shiftTransfer->id || ($shiftTransfer->validate() && $shiftTransfer->save())) {
+                ShiftRemains::deleteAll(['shift_transfer_id' => $shiftTransfer->id]);
+                $modelsShiftRemains = MultipleModel::createMultipleModel(ShiftRemains::class,
+                    'ShiftTransfer', 'shiftRemainsCopy');
+                if (!empty($loadDataShiftRemains)) {
+                    MultipleModel::loadMultipleFromArray($modelsShiftRemains, $loadDataShiftRemains, '', []);
                 }
+
+                foreach ($modelsShiftRemains as $modelsShiftRemain) {
+                    $modelsShiftRemain->shift_transfer_id = $shiftTransfer->id;
+                    if ($modelsShiftRemain->validate()) {
+                        $modelsShiftRemain->save();
+                    } else {
+                        var_dump($modelsShiftRemain->getErrors());
+                        die;
+                    }
+                }
+
+                if ($shiftTransfer->validate()) {
+                    $shiftTransfer->goods_transfer_summ = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_summ'));
+                    $shiftTransfer->goods_transfer_count = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_count'));
+                    $shiftTransfer->discrepancy_pieces = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'fact_and_1c_diff'));
+                    $shiftTransfer->discrepancy_rubles = array_sum(ArrayHelper::getColumn($shiftTransfer->shiftRemains, 'remains_1c'));
+                    $shiftTransfer->save();
+                    return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]);
+                 }
             }
-            return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]);
         }
 
         $isCreate = false;
@@ -103,6 +118,8 @@ class ShiftTransferController extends Controller
 
         $admins = self::getAdminsWithDrugieLast();
 
+        $shiftTransfer->shiftRemainsCopy = $loadDataShiftRemains ?? $shiftTransfer->shiftRemains;
+
         return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById',
             'admins'));
     }