From: marina Date: Wed, 18 Dec 2024 12:20:07 +0000 (+0300) Subject: ERP-256 Сделать отправку документов Пересортица в 1с X-Git-Tag: 1.7~145^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=b83cb4a4738550c856264830940bb4ac5367035a;p=erp24_rep%2Fyii-erp24%2F.git ERP-256 Сделать отправку документов Пересортица в 1с --- 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);