->leftJoin(['mod' => 'marketplace_order_delivery'], 'mo.id = mod.order_id')
->leftJoin(['ms' => 'marketplace_store'], 'ms.warehouse_guid::TEXT = mo.warehouse_guid::TEXT');
-
$query = (new Query())
- ->andFilterWhere(['source' => array_key_exists('source', $params) ? $params['source'] : null])
- ->andFilterWhere(['store_id' => array_key_exists('store_id', $params) ? $params['store_id'] : null])
- ->andFilterWhere(['>=', 'delivery_date', array_key_exists('delivery_date', $params) ? $params['delivery_date'] . ' 00:00:00' : null])
- ->andFilterWhere(['<=', 'delivery_date', array_key_exists('delivery_date', $params) ? $params['delivery_date'] . ' 23:59:59' : null])
+ ->andFilterWhere(['source' => $params['source'] ?? null])
+ ->andFilterWhere(['store_id' => $params['store_id'] ?? null])
->from(['orders' => $queryAmo->union($queryMarketplace, true)])
->orderBy('id desc');
+ if (array_key_exists('delivery_date', $params) && !empty($params['delivery_date'])) {
+ $query->andWhere([
+ 'between',
+ 'delivery_date',
+ $params['delivery_date'] . ' 00:00:00',
+ $params['delivery_date'] . ' 23:59:59'
+ ]);
+ }
+
return new \yii\data\ArrayDataProvider([
'allModels' => $query->all(),
'pagination' => [