23 $this->
_init(
'salesrule_coupon_aggregated',
'id');
51 $sourceTable = $this->
getTable(
'sales_order');
53 $salesAdapter = $this->_resources->getConnection(
'sales');
57 if ($from !==
null || $to !==
null) {
71 'period' => $periodExpr,
72 'store_id' =>
'store_id',
73 'order_status' =>
'status',
74 'coupon_code' =>
'coupon_code',
75 'rule_name' =>
'coupon_rule_name',
76 'coupon_uses' =>
'COUNT(entity_id)',
78 'SUM((base_subtotal - ' .
$connection->getIfNullSql(
79 'base_subtotal_canceled',
81 ) .
') * base_to_global_rate)',
85 'SUM((ABS(base_discount_amount) - ' .
$connection->getIfNullSql(
86 'base_discount_canceled',
88 ) .
') * base_to_global_rate)',
92 'SUM((base_subtotal - ' .
$connection->getIfNullSql(
93 'base_subtotal_canceled',
96 'ABS(base_discount_amount) - ABS(' 97 .
$connection->getIfNullSql(
'base_discount_canceled', 0) .
')',
100 'base_tax_amount - ' .
$connection->getIfNullSql(
'base_tax_canceled', 0),
103 * base_to_global_rate)',
106 'subtotal_amount_actual' =>
$connection->getIfNullSql(
107 'SUM((base_subtotal_invoiced - ' .
$connection->getIfNullSql(
108 'base_subtotal_refunded',
110 ) .
') * base_to_global_rate)',
113 'discount_amount_actual' =>
$connection->getIfNullSql(
114 'SUM((base_discount_invoiced - ' .
$connection->getIfNullSql(
115 'base_discount_refunded',
118 * base_to_global_rate)',
121 'total_amount_actual' =>
$connection->getIfNullSql(
122 'SUM((base_subtotal_invoiced - ' .
$connection->getIfNullSql(
123 'base_subtotal_refunded',
126 'ABS(base_discount_invoiced) - ABS(' 127 .
$connection->getIfNullSql(
'base_discount_refunded', 0) .
')',
130 'base_tax_invoiced - ' .
$connection->getIfNullSql(
'base_tax_refunded', 0),
132 ) .
') * base_to_global_rate)',
138 $select->from([
'source_table' => $sourceTable],
$columns)->where(
'coupon_code IS NOT NULL');
140 if ($subSelect !==
null) {
144 $select->group([$periodExpr,
'store_id',
'status',
'coupon_code']);
146 $select->having(
'COUNT(entity_id) > 0');
148 $aggregatedData = $salesAdapter->fetchAll(
$select);
150 if ($aggregatedData) {
157 'period' =>
'period',
158 'store_id' => new \Zend_Db_Expr(
'0'),
159 'order_status' =>
'order_status',
160 'coupon_code' =>
'coupon_code',
161 'rule_name' =>
'rule_name',
162 'coupon_uses' =>
'SUM(coupon_uses)',
163 'subtotal_amount' =>
'SUM(subtotal_amount)',
164 'discount_amount' =>
'SUM(discount_amount)',
165 'total_amount' =>
'SUM(total_amount)',
166 'subtotal_amount_actual' =>
'SUM(subtotal_amount_actual)',
167 'discount_amount_actual' =>
'SUM(discount_amount_actual)',
168 'total_amount_actual' =>
'SUM(total_amount_actual)',
173 if ($subSelect !==
null) {
177 $select->group([
'period',
'order_status',
'coupon_code']);
_makeConditionFromDateRangeSelect($select, $periodColumn, $connection=null)
getStoreTZOffsetQuery( $table, $column, $from=null, $to=null, $store=null, $connection=null)
_clearTableByDateRange( $table, $from=null, $to=null, $subSelect=null, $doNotUseTruncate=false, $connection=null)
_init($mainTable, $idFieldName)
_aggregateByOrder($aggregationField, $from, $to)
aggregate($from=null, $to=null)
_getTableDateRangeSelect( $table, $column, $whereColumn, $from=null, $to=null, $additionalWhere=[], $alias='date_range_table')