]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-259 Доработка второго шага передачи смен
authormarina <m.zozirova@gmail.com>
Fri, 6 Dec 2024 13:30:05 +0000 (16:30 +0300)
committermarina <m.zozirova@gmail.com>
Fri, 6 Dec 2024 13:30:05 +0000 (16:30 +0300)
erp24/records/EqualizationRemains.php

index 9acf7d8279df7ce5f0dbefcf7a0a47de57001be2..2e2d91a243d2e26adec8700109d51e81ebe39aca 100644 (file)
@@ -156,12 +156,22 @@ class EqualizationRemains extends \yii\db\ActiveRecord
                 ->select('guid')
                 ->column();
 
-
             $quanity = $p->fact_and_1c_diff;
 
-            $intersection = array_intersect_key($minus, array_flip($replacement));
+            foreach ($minus as $key => $item) {
+
+//                $count = $count ?? $item['fact_and_1c_diff'];
+
+                if (self::find()
+                    ->select(['shift_id', 'product_replacement_id'])
+                    ->andWhere(['shift_id' => $shiftTransfer->id])
+                    ->andWhere(['product_replacement_id' => $key])
+                    ->groupBy(['shift_id', 'product_replacement_id'])
+                    ->having(['SUM(product_replacement_count)' => abs($item['fact_and_1c_diff'])])
+                    ->exists()) {
+                    break;
+                }
 
-            foreach ($intersection as $key => $item) {
                 if ($quanity <= 0) {
                     break;
                 }
@@ -180,9 +190,18 @@ class EqualizationRemains extends \yii\db\ActiveRecord
                     'balance' => min($quanity, abs($item['fact_and_1c_diff'])) * ($p->retail_price - $item['retail_price']),
                     'balance_self_cost' => min($quanity, abs($item['fact_and_1c_diff'])) * ($p->self_cost - $item['self_cost'])
                 ]);
+
                 if ($model->validate()) {
                     $model->save();
-                    $quanity -= min($quanity, abs($item['fact_and_1c_diff']));
+
+                    $quanity = $quanity - min($quanity, abs($item['fact_and_1c_diff']));
+                    $count += min($quanity, abs($item['fact_and_1c_diff']));
+//
+//                    if ($count == 0) {
+////                        unset($intersection['fad838d9-8159-11ef-84ea-ac1f6b1b7573']);
+//                        unset($count);
+//                        break;
+//                    }
                 } elseif ($model->getErrors()) {
                     var_dump($model->errors);
                     die();