53 $sourceTable = $this->
getTable(
'sales_invoice');
54 $orderTable = $this->
getTable(
'sales_order');
60 if ($from !==
null || $to !==
null) {
64 [
'order_id' =>
'entity_id'],
78 [
'source_table' => $sourceTable],
79 'source_table.created_at',
85 'period' => $periodExpr,
86 'store_id' =>
'order_table.store_id',
87 'order_status' =>
'order_table.status',
88 'orders_count' => new \Zend_Db_Expr(
'COUNT(order_table.entity_id)'),
89 'orders_invoiced' => new \Zend_Db_Expr(
'COUNT(order_table.entity_id)'),
90 'invoiced' => new \Zend_Db_Expr(
91 'SUM(order_table.base_total_invoiced * order_table.base_to_global_rate)' 93 'invoiced_captured' => new \Zend_Db_Expr(
94 'SUM(order_table.base_total_paid * order_table.base_to_global_rate)' 96 'invoiced_not_captured' => new \Zend_Db_Expr(
97 'SUM((order_table.base_total_invoiced - order_table.base_total_paid)' .
98 ' * order_table.base_to_global_rate)' 104 [
'source_table' => $sourceTable],
107 [
'order_table' => $orderTable],
109 'source_table.order_id = order_table.entity_id AND order_table.state <> ?',
116 $filterSubSelect->from(
117 [
'filter_source_table' => $sourceTable],
118 'MAX(filter_source_table.entity_id)' 120 'filter_source_table.order_id = source_table.order_id' 123 if ($subSelect !==
null) {
128 unset($filterSubSelect);
130 $select->group([$periodExpr,
'order_table.store_id',
'order_table.status']);
132 $select->having(
'orders_count > 0');
138 'period' =>
'period',
139 'store_id' => new \Zend_Db_Expr(\
Magento\Store\Model\Store::DEFAULT_STORE_ID),
140 'order_status' =>
'order_status',
141 'orders_count' => new \Zend_Db_Expr(
'SUM(orders_count)'),
142 'orders_invoiced' => new \Zend_Db_Expr(
'SUM(orders_invoiced)'),
143 'invoiced' => new \Zend_Db_Expr(
'SUM(invoiced)'),
144 'invoiced_captured' => new \Zend_Db_Expr(
'SUM(invoiced_captured)'),
145 'invoiced_not_captured' => new \Zend_Db_Expr(
'SUM(invoiced_not_captured)'),
150 if ($subSelect !==
null) {
154 $select->group([
'period',
'order_status']);
158 }
catch (\Exception $e) {
176 $sourceTable = $this->
getTable(
'sales_order');
179 if ($from !==
null || $to !==
null) {
190 'period' => $periodExpr,
191 'store_id' =>
'store_id',
192 'order_status' =>
'status',
193 'orders_count' => new \Zend_Db_Expr(
'COUNT(base_total_invoiced)'),
194 'orders_invoiced' => new \Zend_Db_Expr(
195 sprintf(
'SUM(%s)',
$connection->getCheckSql(
'base_total_invoiced > 0', 1, 0))
197 'invoiced' => new \Zend_Db_Expr(
200 $connection->getIfNullSql(
'base_total_invoiced', 0),
201 $connection->getIfNullSql(
'base_to_global_rate', 0)
204 'invoiced_captured' => new \Zend_Db_Expr(
208 $connection->getIfNullSql(
'base_to_global_rate', 0)
211 'invoiced_not_captured' => new \Zend_Db_Expr(
213 'SUM((%s - %s) * %s)',
214 $connection->getIfNullSql(
'base_total_invoiced', 0),
216 $connection->getIfNullSql(
'base_to_global_rate', 0)
224 if ($subSelect !==
null) {
228 $select->group([$periodExpr,
'store_id',
'status']);
229 $select->having(
'orders_count > 0');
236 'period' =>
'period',
237 'store_id' => new \Zend_Db_Expr(\
Magento\Store\Model\Store::DEFAULT_STORE_ID),
238 'order_status' =>
'order_status',
239 'orders_count' => new \Zend_Db_Expr(
'SUM(orders_count)'),
240 'orders_invoiced' => new \Zend_Db_Expr(
'SUM(orders_invoiced)'),
241 'invoiced' => new \Zend_Db_Expr(
'SUM(invoiced)'),
242 'invoiced_captured' => new \Zend_Db_Expr(
'SUM(invoiced_captured)'),
243 'invoiced_not_captured' => new \Zend_Db_Expr(
'SUM(invoiced_not_captured)'),
248 if ($subSelect !==
null) {
252 $select->group([
'period',
'order_status']);
_setResource($connections, $tables=null)
_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)
_setFlagData($code, $value=null)
aggregate($from=null, $to=null)
_getTableDateRangeSelect( $table, $column, $whereColumn, $from=null, $to=null, $additionalWhere=[], $alias='date_range_table')
_aggregateByOrderCreatedAt($from, $to)
_aggregateByInvoiceCreatedAt($from, $to)
_getTableDateRangeRelatedSelect( $table, $relatedTable, $joinCondition, $column, $whereColumn, $from=null, $to=null, $additionalWhere=[], $alias='date_range_table', $relatedAlias='related_date_range_table')