From 87bff7ae1264ae23be0e597779791f9be987d905 Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Mon, 15 Dec 2025 15:09:04 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D0=B5=20?= =?utf8?q?=D0=B1=D0=B5=D0=B7=20=D1=81=D0=B5=D0=B1=D0=B5=D1=81=D1=82=D0=BE?= =?utf8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/ShiftTransferController.php | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index 1a2b7e26..02f0575f 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -96,20 +96,33 @@ 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( - SelfCostProductDynamic::find() - ->select(['product_guid', 'price']) - ->where(['product_guid' => array_keys($products), 'store_id' => $storeEIT->entity_id]) - ->andWhere(new Expression(":d BETWEEN date_from AND date_to", [':d' => date('Y-m-d', strtotime($shiftDate))])) - ->orderBy(['date_from' => SORT_DESC]) - ->all(), - 'product_guid', 'price' - ); + $selfCost = []; + if ($storeEIT && $storeEIT->entity_id) { + $selfCost = ArrayHelper::map( + SelfCostProductDynamic::find() + ->select(['product_guid', 'price']) + ->where(['product_guid' => array_keys($products), 'store_id' => $storeEIT->entity_id]) + ->andWhere(new Expression(":d BETWEEN date_from AND date_to", [':d' => date('Y-m-d', strtotime($shiftDate))])) + ->orderBy(['date_from' => SORT_DESC]) + ->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 = []; + + // Фильтруем товары без себестоимости из списка + $productGuidsFiltered = []; foreach ($productGuids as $key => $name) { + // Проверяем наличие себестоимости (не пустая и больше 0) + if (isset($selfCost[$key]) && $selfCost[$key] !== '' && $selfCost[$key] !== null && $selfCost[$key] > 0) { + $productGuidsFiltered[$key] = $name; + } + } + + $loadDataShiftRemains = []; + foreach ($productGuidsFiltered as $key => $name) { $loadDataShiftRemains[] = [ 'product_guid' => $key, 'retail_price' => $price[$key] ?? '', 'self_cost' => $selfCost[$key] ?? '', @@ -118,6 +131,9 @@ class ShiftTransferController extends Controller 'fact_and_1c_diff' => 0, 'remains_1c' => $balance[$key] ?? '' ]; } + + // Обновляем productGuids отфильтрованным списком + $productGuids = $productGuidsFiltered; return compact('loadDataShiftRemains', 'productGuids'); } -- 2.39.5