From: Alexander Smirnov Date: Mon, 2 Dec 2024 09:17:58 +0000 (+0300) Subject: [ERP-242] после неудачного резолва конфликта X-Git-Tag: 1.7~213^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=eefae94734a0cd5298e74d08cf132675fc6ad9a0;p=erp24_rep%2Fyii-erp24%2F.git [ERP-242] после неудачного резолва конфликта --- diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index 718448d3..95f062b5 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -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')); }