public function getSalesSum($dateFrom, $dateTo, $salesDelivery = false, $salesTotal = false, $storeId1c = null, $payType = null) : array
{
$query = Sales::find()
+ ->alias('s')
->select([
- 'summ' => new \yii\db\Expression("SUM(summ - skidka)"),
- 'store_id_1c',
- 'operation'
+ 'summ' => new \yii\db\Expression("SUM(s.summ - s.skidka)"),
+ 's.store_id_1c',
+ 's.operation'
])
- ->andWhere(['>=', 'date', DateHelper::getDateTimeStartDay($dateFrom, true)])
- ->andWhere(['<=', 'date', DateHelper::getDateTimeEndDay($dateTo, true)]);
+ ->joinWith('saleCheck')
+ ->andWhere(['>=', 's.date', DateHelper::getDateTimeStartDay($dateFrom, true)])
+ ->andWhere(['<=', 's.date', DateHelper::getDateTimeEndDay($dateTo, true)]);
if (!$salesTotal) {
if ($salesDelivery) {
- $query->andWhere(['not in', 'order_id', ['', '0']]);
+ $query->andFilterWhere(['or',
+ ['not in', 's.order_id', ['', '0']],
+ ['not in', 'sc.order_id', ['', '0']]
+ ]);
} else {
- $query->andWhere(['order_id' => ['', '0']]);
+ $query->andWhere([
+ 'and',
+ ['s.order_id' => ['', '0']],
+ [
+ 'or',
+ 'sc.order_id IS NULL',
+ ['sc.order_id' => ['', '0']]
+ ]
+ ]);
}
}
$payType = ['1', '3', '1,3', '3,1' ];
}
- $query->andWhere(['pay_arr' => $payType]);
+ $query->andWhere(['s.pay_arr' => $payType]);
}
if (!empty($storeId1c)) {
- $query->andWhere(['store_id_1c' => $storeId1c]);
+ $query->andWhere(['s.store_id_1c' => $storeId1c]);
}
- $query->groupBy(['store_id_1c', 'operation']);
+ $query->groupBy(['s.store_id_1c', 's.operation']);
$action = $query->createCommand()->getRawSql();