From: Vladimir Fomichev Date: Tue, 3 Sep 2024 15:06:32 +0000 (+0300) Subject: добавил метод X-Git-Tag: 1.4~8^2~4 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=fc49ed73039dd260a82dc653a39b1cf38392d277;p=erp24_rep%2Fyii-erp24%2F.git добавил метод --- diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index 5186306a..b67217a1 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -1389,13 +1389,55 @@ class MotivationService $endDate = date('Y-m-d', strtotime($endDate)); - $sum = (float)SelfCostProduct::find() - ->where(['store_id' => $storeId]) + $salesRecords = Sales::find() + ->select(['id', 'date']) // Выбираем id и дату чека + ->where(['store_id' => $storeId, 'operation' => 'Продажа']) ->andWhere(['>=', 'date', $startDate]) ->andWhere(['<=', 'date', $endDate]) - ->sum('price'); + ->asArray() + ->all(); + + // Если нет подходящих чеков, сразу возвращаем 0 + if (empty($salesRecords)) { + return 0.0; + } + + $totalSum = 0.0; + + foreach ($salesRecords as $salesRecord) { + $salesId = $salesRecord['id']; + $saleDate = date('Y-m-d', strtotime($salesRecord['date'])); + Yii::info("Чек " . $salesRecord['id']); + // Получить список продуктов и их количество для текущего чека + $salesProducts = SalesProducts::find() + ->select(['product_id', 'quantity']) + ->where(['check_id' => $salesId]) + ->asArray() + ->all(); + + // Для каждого продукта рассчитать себестоимость и суммировать + foreach ($salesProducts as $salesProduct) { + $productId = $salesProduct['product_id']; + $quantity = (float)$salesProduct['quantity']; + + // Найти себестоимость продукта в таблице SelfCostProduct + $selfCost = SelfCostProduct::find() + ->select('price') + ->where(['store_id' => $storeId, 'product_guid' => $productId]) + ->andWhere(['date' => $saleDate]) // Проверяем себестоимость на дату продажи + ->scalar(); // Получаем цену + + // Если себестоимость не найдена, пропускаем этот продукт + if ($selfCost === null) { + continue; + } - return $sum; + // Умножаем себестоимость на количество и добавляем к общей сумме + $totalSum += $selfCost * $quantity; + } + } + Yii::info("Стоимость товара " . $totalSum); + return $totalSum; } /**