]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Merge branch 'develop' into feature_zozirova_erp-259_modifications_for_second_stage_s...
authormarina <m.zozirova@gmail.com>
Fri, 6 Dec 2024 11:10:53 +0000 (14:10 +0300)
committermarina <m.zozirova@gmail.com>
Fri, 6 Dec 2024 11:10:53 +0000 (14:10 +0300)
# Conflicts:
# erp24/controllers/ShiftTransferController.php

1  2 
erp24/controllers/ShiftTransferController.php

index c8305838c295a24559cf0a5aad5a4796cd744531,12cff65a448229fd2c0b196b1a28693ac2e26d8c..3456826d3a0f435f581a4fa98872c284f6d1a456
@@@ -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', 'Документ передачи смены успешно сохранён. Сейчас документ находится в статусе Действия по замене.<br>' .
-                         'Для продолжения оформления документа в таблице возможных замен добавьте замену недостающего товара.');
+                         Yii::$app->session->setFlash('info', 'Документ передачи смены успешно сохранён. Сейчас документ находится в статусе Действия по замене.<br>' .
+                             'Для продолжения оформления документа в таблице возможных замен добавьте замену недостающего товара.');
  
-                     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;