From 529d5254247bb76ea6bf6ae90a30863e018132c8 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 20 Dec 2024 11:20:39 +0300 Subject: [PATCH] [ERP-261] self_cost_products sort by date and take the last --- erp24/controllers/ShiftTransferController.php | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index d6489293..d8d0d92e 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -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(); -- 2.39.5