$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;