From aac71a9f434a2309d8d0d36fba269df228349715 Mon Sep 17 00:00:00 2001 From: marina Date: Fri, 6 Dec 2024 16:30:05 +0300 Subject: [PATCH] =?utf8?q?ERP-259=20=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?utf8?q?=D1=82=D0=BA=D0=B0=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B3=D0=BE?= =?utf8?q?=20=D1=88=D0=B0=D0=B3=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?utf8?q?=D0=B0=D1=87=D0=B8=20=D1=81=D0=BC=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/records/EqualizationRemains.php | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/erp24/records/EqualizationRemains.php b/erp24/records/EqualizationRemains.php index 9acf7d82..2e2d91a2 100644 --- a/erp24/records/EqualizationRemains.php +++ b/erp24/records/EqualizationRemains.php @@ -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(); -- 2.39.5