From b83cb4a4738550c856264830940bb4ac5367035a Mon Sep 17 00:00:00 2001 From: marina Date: Wed, 18 Dec 2024 15:20:07 +0300 Subject: [PATCH] =?utf8?q?ERP-256=20=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D1=82?= =?utf8?q?=D1=8C=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D1=83=20?= =?utf8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20?= =?utf8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=86?= =?utf8?q?=D0=B0=20=D0=B2=201=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/ShiftTransferController.php | 61 +++++++++++-------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index faecd631..5b8119ac 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -291,31 +291,42 @@ class ShiftTransferController extends Controller if (Yii::$app->request->post()) { $action = Yii::$app->request->post('action'); $model = ShiftTransfer::findOne($id); - if ($action === 'accept') { - $model->updateAttributes(['date_end' => date('Y-m-d H:i:s')]); - $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_ACCEPTED]); - $model->updateAttributes(['start_shift_admin_id' => Yii::$app->user->id]); - ShiftRemains::updateAll(['type' => ShiftRemains::ARCHIVE_RECORD], ['shift_transfer_id' => $id]); - ReplacementInvoice::setData($model); - StoreBalance::setData($model); - WaybillIncoming::updateAll(['status' => WriteOffsErp::STATUS_CONFIRM], ['shift_transfer_id' => $id]); - WaybillWriteOffs::updateAll(['status' => WriteOffsErp::STATUS_CONFIRM], ['shift_transfer_id' => $id]); - ReplacementInvoice::updateAll(['status' => WriteOffsErp::STATUS_CONFIRM], ['shift_transfer_id' => $id]); - } elseif ($action === 'save') { - $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_READY_TO_ACCEPT]); - } elseif ($action == 'recalculate') { - EqualizationRemains::setData($model); - Yii::$app->session->setFlash('success', 'Таблица замен успешно перерасчитана'); - } elseif ($action === 'rejection') { - EqualizationRemains::setData($model); - $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS]); - WaybillWriteOffs::deleteAll(['shift_transfer_id' => $model->id]); - WaybillIncoming::deleteAll(['shift_transfer_id' => $model->id]); - } elseif ($action === 'resume') { - $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES]); - EqualizationRemains::updateData(Yii::$app->request->post()['ShiftTransfer']['equalizationRemains'], $id); - WaybillIncoming::setData($model); - WaybillWriteOffs::setData($model); + $transaction = Yii::$app->db->beginTransaction(); + + try { + if ($action === 'accept') { + $model->updateAttributes([ + 'date_end' => date('Y-m-d H:i:s'), + 'status_id' => ShiftTransfer::STATUS_ID_ACCEPTED, + 'start_shift_admin_id' => Yii::$app->user->id + ]); + ShiftRemains::updateAll(['type' => ShiftRemains::ARCHIVE_RECORD], ['shift_transfer_id' => $id]); + ReplacementInvoice::setData($model); + StoreBalance::setData($model); + WaybillIncoming::updateAll(['status' => WriteOffsErp::STATUS_CONFIRM], ['shift_transfer_id' => $id]); + WaybillWriteOffs::updateAll(['status' => WriteOffsErp::STATUS_CONFIRM], ['shift_transfer_id' => $id]); + ReplacementInvoice::updateAll(['status' => WriteOffsErp::STATUS_CONFIRM], ['shift_transfer_id' => $id]); + } elseif ($action === 'save') { + $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_READY_TO_ACCEPT]); + } elseif ($action === 'recalculate') { + EqualizationRemains::setData($model); + Yii::$app->session->setFlash('success', 'Таблица замен успешно перерасчитана'); + } elseif ($action === 'rejection') { + EqualizationRemains::setData($model); + $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_ID_TRANSFER_ACTIONS]); + WaybillWriteOffs::deleteAll(['shift_transfer_id' => $model->id]); + WaybillIncoming::deleteAll(['shift_transfer_id' => $model->id]); + } elseif ($action === 'resume') { + $model->updateAttributes(['status_id' => ShiftTransfer::STATUS_OF_THE_FORMATION_OF_SURPLUSES_AND_SHORTAGES]); + EqualizationRemains::updateData(Yii::$app->request->post()['ShiftTransfer']['equalizationRemains'], $id); + WaybillIncoming::setData($model); + WaybillWriteOffs::setData($model); + } + + $transaction->commit(); + } catch (\Exception $e) { + $transaction->rollBack(); + throw $e; } return $this->redirect(Yii::$app->request->referrer); -- 2.39.5