]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-261] self_cost_products sort by date and take the last
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 20 Dec 2024 08:20:39 +0000 (11:20 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 20 Dec 2024 08:20:39 +0000 (11:20 +0300)
erp24/controllers/ShiftTransferController.php

index d64892937d5a3e5d9b99c118449efe22a2379e76..d8d0d92edfc609b4212d78cbd7155677b4722339 100644 (file)
@@ -66,7 +66,7 @@ class ShiftTransferController extends Controller
         return $this->render('index', compact('shiftTransfers', 'storeNameById', 'admins'));
     }
 
-    public function buildLoadDataShiftRemains($groups, $storeGuid, $normal = true)
+    public function buildLoadDataShiftRemains($groups, $storeGuid, $shiftDate, $normal = true)
     {
         $productsClass = ProductsClass::find()->select(['category_id'])->where(['tip' => $groups])->column();
         $products =
@@ -98,8 +98,10 @@ class ShiftTransferController extends Controller
         $price = ArrayHelper::map(Prices::find()->select(['product_id', 'price'])->where(['product_id' => array_keys($products)])->all(), 'product_id', 'price');
         $storeEIT = ExportImportTable::find()->select(['entity_id'])->where(['entity' => 'city_store', 'export_val' => $storeGuid, 'export_id' => 1])->one();
         $selfCost = ArrayHelper::map(SelfCostProduct::find()->select(['product_guid', 'price'])->where(['product_guid' =>
-            array_keys($products), 'store_id' => $storeEIT->entity_id])->all(), 'product_guid', 'price');
-
+            array_keys($products), 'store_id' => $storeEIT->entity_id /*, 'date' => date('Y-m-d', strtotime($shiftDate))*/])->orderBy(['date' => SORT_ASC])->all(), 'product_guid', 'price');
+//        $a = [['a' => 1, 'b' => 2, 'c' => 3], ['a' => 1, 'b' => 5, 'c' => 4], ['a' => 1, 'b' => 7, 'c' => 5],];
+//        var_dump(ArrayHelper::map($a, 'a', 'b')); die;
+//        result: array(1) { [1]=> int(7) }
         $loadDataShiftRemains = [];
         foreach ($productGuids as $key => $name) {
             $loadDataShiftRemains[] = [
@@ -137,13 +139,13 @@ class ShiftTransferController extends Controller
             }
         }
 
-        $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId);
+        $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId, $shiftTransfer->date);
         $loadDataShiftRemains = $data['loadDataShiftRemains'];
         $productGuids = $data['productGuids'];
 
         $shiftTransfer->shiftRemainsCopy = $loadDataShiftRemains ?? $shiftTransfer->shiftRemains;
 
-        $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId, false);
+        $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId, $shiftTransfer->date, false);
         $productGuidsUnnormal = $data['productGuids'];
 
         $existingKeys = ArrayHelper::getColumn($shiftTransfer->shiftRemainsCopy, 'product_guid');
@@ -170,12 +172,12 @@ class ShiftTransferController extends Controller
             $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']);
+                    empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid'], $shiftTransfer->date);
                 $loadDataShiftRemains = $data['loadDataShiftRemains'];
                 $productGuids = $data['productGuids'];
 
                 $data2 = self::buildLoadDataShiftRemains(array_merge(empty($postShiftTransfer['groups1']) ? [] : $postShiftTransfer['groups1'],
-                    empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid'], false);
+                    empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid'], $shiftTransfer->date, false);
                 $productGuidsUnnormal = $data2['productGuids'];
             } else {
                 $loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy');
@@ -219,11 +221,11 @@ class ShiftTransferController extends Controller
                 }
             }
         } else {
-            $data = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid);
+            $data = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid, $shiftTransfer->date);
             $productGuids = $data['productGuids'];
             $shiftTransfer->setGroups();
 
-            $data2 = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid, false);
+            $data2 = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid, $shiftTransfer->date, false);
             $productGuidsUnnormal = $data2['productGuids'];
         }
 
@@ -266,7 +268,7 @@ class ShiftTransferController extends Controller
 
         $storeEIT = ExportImportTable::find()->select(['entity_id'])->where(['entity' => 'city_store', 'export_val' => $storeGuid, 'export_id' => 1])->one();
 
-        $selfCost = SelfCostProduct::find()->select(['price'])->where(['product_guid' => $productGuid, 'store_id' => $storeEIT->entity_id])->one();
+        $selfCost = SelfCostProduct::find()->select(['price'])->where(['product_guid' => $productGuid, 'store_id' => $storeEIT->entity_id])->orderBy(['date' => SORT_DESC])->one();
 
         $balance = Balances::find()->select(['quantity'])->where(['store_id' => $storeGuid, 'product_id' => $productGuid])->one();