From: marina Date: Fri, 6 Dec 2024 11:10:53 +0000 (+0300) Subject: Merge branch 'develop' into feature_zozirova_erp-259_modifications_for_second_stage_s... X-Git-Tag: 1.7~187^2~7 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=cb4a705db87dc292d2af6d91a0b979e51a6faa9b;p=erp24_rep%2Fyii-erp24%2F.git Merge branch 'develop' into feature_zozirova_erp-259_modifications_for_second_stage_shift_transfer # Conflicts: # erp24/controllers/ShiftTransferController.php --- cb4a705db87dc292d2af6d91a0b979e51a6faa9b diff --cc erp24/controllers/ShiftTransferController.php index c8305838,12cff65a..3456826d --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@@ -82,42 -128,55 +128,57 @@@ class ShiftTransferController extends C $loadDataShiftRemains = null; if ($shiftTransfer->load(Yii::$app->request->post())) { $postShiftTransfer = Yii::$app->request->post('ShiftTransfer'); - $loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy'); - - 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, '', []); - } + $action = Yii::$app->request->post('action'); + if ($action == 'applyGroups') { + $data = self::buildLoadDataShiftRemains(array_merge(empty($postShiftTransfer['groups1']) ? [] : $postShiftTransfer['groups1'], + empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid']); + $loadDataShiftRemains = $data['loadDataShiftRemains']; + $productGuids = $data['productGuids']; + } else { + $loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy'); + + 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; + $discrepancy_rubles = 0; + foreach ($modelsShiftRemains as $modelsShiftRemain) { + /* @var $modelsShiftRemain ShiftRemains */ + $modelsShiftRemain->shift_transfer_id = $shiftTransfer->id; + if ($modelsShiftRemain->validate()) { + $discrepancy_rubles += $modelsShiftRemain->retail_price * ($modelsShiftRemain->remains_count - $modelsShiftRemain->remains_1c); + $modelsShiftRemain->save(); + } else { + var_dump($modelsShiftRemain->getErrors()); + die; + } } - } - + + EqualizationRemains::setData($shiftTransfer); + - 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->status_id = ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS; - $shiftTransfer->save(); + if ($shiftTransfer->validate()) { + $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 = $discrepancy_rubles; + $shiftTransfer->status_id = ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS; + $shiftTransfer->setProductGroups(); + $shiftTransfer->save(); - Yii::$app->session->setFlash('info', 'Документ передачи смены успешно сохранён. Сейчас документ находится в статусе Действия по замене.
' . - 'Для продолжения оформления документа в таблице возможных замен добавьте замену недостающего товара.'); + Yii::$app->session->setFlash('info', 'Документ передачи смены успешно сохранён. Сейчас документ находится в статусе Действия по замене.
' . + 'Для продолжения оформления документа в таблице возможных замен добавьте замену недостающего товара.'); - return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]); - } + return $this->redirect(['/shift-transfer/view', 'id' => $shiftTransfer->id]); + } + } } + } else { + $data = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid); + $productGuids = $data['productGuids']; + $shiftTransfer->setGroups(); } $isCreate = false;