->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;
}
'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();