Helper.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\ResourceModel;
  7. use Magento\Sales\Model\ResourceModel\Report\Bestsellers as BestsellersReport;
  8. /**
  9. * Sales Mysql resource helper model
  10. */
  11. class Helper extends \Magento\Framework\DB\Helper implements HelperInterface
  12. {
  13. /**
  14. * @var \Magento\Reports\Model\ResourceModel\Helper
  15. */
  16. protected $_reportsResourceHelper;
  17. /**
  18. * @param \Magento\Framework\App\ResourceConnection $resource
  19. * @param \Magento\Reports\Model\ResourceModel\Helper $reportsResourceHelper
  20. * @param string $modulePrefix
  21. */
  22. public function __construct(
  23. \Magento\Framework\App\ResourceConnection $resource,
  24. \Magento\Reports\Model\ResourceModel\Helper $reportsResourceHelper,
  25. $modulePrefix = 'sales'
  26. ) {
  27. parent::__construct($resource, $modulePrefix);
  28. $this->_reportsResourceHelper = $reportsResourceHelper;
  29. }
  30. /**
  31. * Update rating position
  32. *
  33. * @param string $aggregation One of BestsellersReport::AGGREGATION_XXX constants
  34. * @param array $aggregationAliases
  35. * @param string $mainTable
  36. * @param string $aggregationTable
  37. * @return $this
  38. */
  39. public function getBestsellersReportUpdateRatingPos(
  40. $aggregation,
  41. $aggregationAliases,
  42. $mainTable,
  43. $aggregationTable
  44. ) {
  45. $connection = $this->_resource->getConnection('sales');
  46. if ($aggregation == $aggregationAliases['monthly']) {
  47. $this->_reportsResourceHelper->updateReportRatingPos(
  48. $connection,
  49. 'month',
  50. 'qty_ordered',
  51. $mainTable,
  52. $aggregationTable
  53. );
  54. } elseif ($aggregation == $aggregationAliases['yearly']) {
  55. $this->_reportsResourceHelper->updateReportRatingPos(
  56. $connection,
  57. 'year',
  58. 'qty_ordered',
  59. $mainTable,
  60. $aggregationTable
  61. );
  62. } else {
  63. $this->_reportsResourceHelper->updateReportRatingPos(
  64. $connection,
  65. 'day',
  66. 'qty_ordered',
  67. $mainTable,
  68. $aggregationTable
  69. );
  70. }
  71. return $this;
  72. }
  73. }