]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-256 Сделать отправку документов Пересортица в 1с
authormarina <m.zozirova@gmail.com>
Wed, 18 Dec 2024 12:20:07 +0000 (15:20 +0300)
committermarina <m.zozirova@gmail.com>
Wed, 18 Dec 2024 12:20:07 +0000 (15:20 +0300)
erp24/controllers/ShiftTransferController.php

index faecd631c0836490facdd7151fd53fa69965d832..5b8119acce0d15da0475767ee6e5cda8a20df50b 100644 (file)
@@ -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);