![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales-rule/Model/ResourceModel/Coupon/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\SalesRule\Model\ResourceModel\Coupon; use Magento\Backend\Block\Widget\Grid\Column; use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\SalesRule\Model\Rule; /** * SalesRule Model Resource Coupon_Collection * * @author Magento Core Team <[email protected]> */ class Collection extends AbstractCollection { /** * Constructor * * @return void */ protected function _construct() { parent::_construct(); $this->_init(\Magento\SalesRule\Model\Coupon::class, \Magento\SalesRule\Model\ResourceModel\Coupon::class); } /** * Add rule to filter * * @param Rule|int $rule * @return $this */ public function addRuleToFilter($rule) { if ($rule instanceof Rule) { $ruleId = $rule->getId(); } else { $ruleId = (int)$rule; } $this->addFieldToFilter('rule_id', $ruleId); return $this; } /** * Add rule IDs to filter * * @param array $ruleIds * @return $this */ public function addRuleIdsToFilter(array $ruleIds) { $this->addFieldToFilter('rule_id', ['in' => $ruleIds]); return $this; } /** * Filter collection to be filled with auto-generated coupons only * * @return $this */ public function addGeneratedCouponsFilter() { $this->addFieldToFilter('is_primary', ['null' => 1])->addFieldToFilter('type', '1'); return $this; } /** * Callback function that filters collection by field "Used" from grid * * @param AbstractCollection $collection * @param Column $column * @return void */ public function addIsUsedFilterCallback($collection, $column) { $filterValue = $column->getFilter()->getCondition(); $expression = $this->getConnection()->getCheckSql('main_table.times_used > 0', 1, 0); $conditionSql = $this->_getConditionSql($expression, $filterValue); $collection->getSelect()->where($conditionSql); } }