diff --git a/vendor/magento/module-sales-rule/Model/ResourceModel/Report/Rule/Createdat.php b/vendor/magento/module-sales-rule/Model/ResourceModel/Report/Rule/Createdat.php index 342fa8363da09..1dbbcb1fce88e 100644 --- a/vendor/magento/module-sales-rule/Model/ResourceModel/Report/Rule/Createdat.php +++ b/vendor/magento/module-sales-rule/Model/ResourceModel/Report/Rule/Createdat.php @@ -6,13 +6,50 @@ namespace Magento\SalesRule\Model\ResourceModel\Report\Rule; +use Magento\Framework\Model\ResourceModel\Db\Context; +use Magento\Framework\Stdlib\DateTime\DateTime; +use Magento\Framework\Stdlib\DateTime\Timezone\Validator; +use Magento\Framework\Stdlib\DateTime\TimezoneInterface; +use Magento\Reports\Model\FlagFactory; +use Magento\Tax\Model\Config; +use Psr\Log\LoggerInterface; + /** * Rule report resource model with aggregation by created at - * - * @author Magento Core Team */ class Createdat extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport { + /** + * @param Context $context + * @param LoggerInterface $logger + * @param TimezoneInterface $localeDate + * @param FlagFactory $reportsFlagFactory + * @param Validator $timezoneValidator + * @param DateTime $dateTime + * @param Config $taxConfig + * @param string|null $connectionName + */ + public function __construct( + private readonly Context $context, + private readonly LoggerInterface $logger, + private readonly TimezoneInterface $localeDate, + private readonly FlagFactory $reportsFlagFactory, + private readonly Validator $timezoneValidator, + DateTime $dateTime, + private Config $taxConfig, + string $connectionName = null + ) { + parent::__construct( + $context, + $logger, + $localeDate, + $reportsFlagFactory, + $timezoneValidator, + $dateTime, + $connectionName + ); + } + /** * Resource Report Rule constructor * @@ -67,6 +104,13 @@ protected function _aggregateByOrder($aggregationField, $from, $to) $this->getStoreTZOffsetQuery($sourceTable, $aggregationField, $from, $to, null, $salesAdapter) ); + $subtotalAmountFiled = 'base_subtotal'; + $subtotalAmountActualFiled = 'base_subtotal_invoiced'; + if ($this->taxConfig->displaySalesSubtotalInclTax()) { + $subtotalAmountFiled = 'base_subtotal_incl_tax'; + $subtotalAmountActualFiled = 'base_subtotal_incl_tax'; + } + $columns = [ 'period' => $periodExpr, 'store_id' => 'store_id', @@ -75,7 +119,7 @@ protected function _aggregateByOrder($aggregationField, $from, $to) 'rule_name' => 'coupon_rule_name', 'coupon_uses' => 'COUNT(entity_id)', 'subtotal_amount' => $connection->getIfNullSql( - 'SUM((base_subtotal - ' . $connection->getIfNullSql( + 'SUM((' . $subtotalAmountFiled . ' - ' . $connection->getIfNullSql( 'base_subtotal_canceled', 0 ) . ') * base_to_global_rate)', @@ -102,12 +146,17 @@ protected function _aggregateByOrder($aggregationField, $from, $to) ) . ' + ' . $connection->getIfNullSql( 'base_tax_amount - ' . $connection->getIfNullSql('base_tax_canceled', 0), 0 - ) . ') + ) . ' + ' . $connection->getIfNullSql( + 'base_discount_tax_compensation_amount - ' + . $connection->getIfNullSql('base_discount_tax_compensation_refunded', 0), + 0 + ) . ' - ' . $connection->getIfNullSql('ABS(base_shipping_discount_tax_compensation_amnt)', 0) + . ') * base_to_global_rate)', 0 ), 'subtotal_amount_actual' => $connection->getIfNullSql( - 'SUM((base_subtotal_invoiced - ' . $connection->getIfNullSql( + 'SUM((' . $subtotalAmountActualFiled . ' - ' . $connection->getIfNullSql( 'base_subtotal_refunded', 0 ) . ') * base_to_global_rate)', @@ -135,7 +184,13 @@ protected function _aggregateByOrder($aggregationField, $from, $to) ) . ' + ' . $connection->getIfNullSql( 'base_tax_invoiced - ' . $connection->getIfNullSql('base_tax_refunded', 0), 0 - ) . ') * base_to_global_rate)', + ) . ' + ' . $connection->getIfNullSql( + 'base_discount_tax_compensation_invoiced - ' + . $connection->getIfNullSql('base_discount_tax_compensation_refunded', 0), + 0 + ) . ' - ' . $connection->getIfNullSql('ABS(base_shipping_discount_tax_compensation_amnt)', 0) + . ') + * base_to_global_rate)', 0 ), ];