]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Проверка на товары у списания
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 19 Dec 2024 08:22:04 +0000 (11:22 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 19 Dec 2024 08:22:04 +0000 (11:22 +0300)
erp24/records/WaybillWriteOffs.php
erp24/records/WaybillWriteOffsProducts.php

index b93fb1d182efc892bf9b569aa4c41d8eb8779554..aa76001e2a237a74413e2918e0624a42366cb445 100644 (file)
@@ -132,24 +132,26 @@ class WaybillWriteOffs extends \yii\db\ActiveRecord
                 'number' => 'ЕРП_РНС_' . date("Y-m-d_H-i") . '_' . $model->id
             ]);
 
-            WaybillWriteOffsProducts::setData($model, $shiftTransfer);
-
-            $summaries = WaybillWriteOffsProducts::find()
-                ->andWhere(['waybill_write_offs_id' => $model->id])
-                ->select([
-                    'total_product_count' => 'sum(product_count)',
-                    'total_summ' => 'sum(summ)',
-                    'total_summ_self_cost' => 'sum(summ_self_cost)'
-                ])
-                ->asArray()
-                ->one();
-
-            if ($summaries) {
-                $model->updateAttributes([
-                    'quantity' => $summaries['total_product_count'],
-                    'summ' => $summaries['total_summ'],
-                    'summ_self_cost' => $summaries['total_summ_self_cost']
-                ]);
+            if (!WaybillWriteOffsProducts::setData($model, $shiftTransfer)) {
+                $model->delete();
+            } else {
+                $summaries = WaybillWriteOffsProducts::find()
+                    ->andWhere(['waybill_write_offs_id' => $model->id])
+                    ->select([
+                        'total_product_count' => 'sum(product_count)',
+                        'total_summ' => 'sum(summ)',
+                        'total_summ_self_cost' => 'sum(summ_self_cost)'
+                    ])
+                    ->asArray()
+                    ->one();
+
+                if ($summaries) {
+                    $model->updateAttributes([
+                        'quantity' => $summaries['total_product_count'],
+                        'summ' => $summaries['total_summ'],
+                        'summ_self_cost' => $summaries['total_summ_self_cost']
+                    ]);
+                }
             }
         } catch (\Exception $exception) {
             throw new \Exception($exception);
index 8837719b892beef02b0c583d3b556e52c11aff94..9c1563fce7d49393dd701038fc410cba0c23116a 100644 (file)
@@ -69,7 +69,7 @@ class WaybillWriteOffsProducts extends \yii\db\ActiveRecord
             ->andWhere(['shift_transfer_id' => $shiftTransfer->id])
             ->andWhere(['<', 'fact_and_1c_diff', 0])
             ->all();
-
+        $isProductsSet = false;
         foreach ($items as $item) {
             $itemCount = abs($item->fact_and_1c_diff);
             $er = EqualizationRemains::find()
@@ -108,11 +108,14 @@ class WaybillWriteOffsProducts extends \yii\db\ActiveRecord
 
 
             try {
-                $model->save();
+                if (!$model->save()) {
+                    $isProductsSet = true;
+                }
             } catch (\Exception $exception) {
                 throw new \Exception($exception);
             }
         }
+        return $isProductsSet;
     }
 
     /**