From eefae94734a0cd5298e74d08cf132675fc6ad9a0 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 2 Dec 2024 12:17:58 +0300 Subject: [PATCH] =?utf8?q?[ERP-242]=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20?= =?utf8?q?=D0=BD=D0=B5=D1=83=D0=B4=D0=B0=D1=87=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?utf8?q?=D1=80=D0=B5=D0=B7=D0=BE=D0=BB=D0=B2=D0=B0=20=D0=BA=D0=BE=D0=BD?= =?utf8?q?=D1=84=D0=BB=D0=B8=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/ShiftTransferController.php | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) 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')); } -- 2.39.5