From 02ff6b9c323571f6dd168fabf691d16f4968c30e Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Wed, 4 Sep 2024 12:49:12 +0300 Subject: [PATCH] =?utf8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?utf8?q?=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D1=83=20=D0=B2=D0=BE=D0=B7=D0=B2?= =?utf8?q?=D1=80=D0=B0=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/services/MotivationService.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index 43a9d6ca..fff4ee00 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -1390,13 +1390,31 @@ class MotivationService $salesRecords = Sales::find() - ->select(['id', 'date']) // Выбираем id и дату чека + ->select(['id', 'date']) ->where(['store_id' => $storeId, 'operation' => 'Продажа']) ->andWhere(['>=', 'date', $startDate]) ->andWhere(['<=', 'date', $endDate]) ->asArray() ->all(); + + $returnedSales = Sales::find() + ->select(['sales_check']) + ->where(['store_id' => $storeId, 'operation' => 'Возврат']) + ->andWhere(['>=', 'date', $startDate]) + ->andWhere(['<=', 'date', $endDate]) + ->andWhere(['is not', 'sales_check', '']) // Проверяем, что поле sales_check не пустое + ->asArray() + ->all(); + + + $returnedSalesIds = array_column($returnedSales, 'sales_check'); + + + $salesRecords = array_filter($salesRecords, function($sale) use ($returnedSalesIds) { + return !in_array($sale['id'], $returnedSalesIds); + }); + // Если нет подходящих чеков, сразу возвращаем 0 if (empty($salesRecords)) { return 0.0; -- 2.39.5