![]() 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/extmag/shiplab/Model/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Model; use Extmag\Shiplab\Api\Data\PriceRulesInterface; use Extmag\Shiplab\Model\Rule\Condition\Combine; use Extmag\Shiplab\Model\Rule\Condition\CombineFactory; use Magento\Framework\Api\AttributeValueFactory; use Magento\Framework\Api\ExtensionAttributesFactory; use Magento\Framework\Data\Collection\AbstractDb; use Magento\Framework\Data\FormFactory; use Magento\Framework\Model\Context; use Magento\Framework\Model\ResourceModel\AbstractResource; use Magento\Framework\Registry; use Magento\Framework\Serialize\Serializer\Json; use Magento\Framework\Stdlib\DateTime\TimezoneInterface; use Magento\Quote\Model\Quote\Address; use Magento\Rule\Model\AbstractModel; class PriceRules extends AbstractModel implements PriceRulesInterface { /** * @var CombineFactory */ protected $_condCombineFactory; /** * @var Rule\Condition\Product\CombineFactory */ protected $_condProdCombineF; /** * Store already validated addresses and validation results * * @var array */ protected $_validatedAddresses = []; /** * @param Context $context * @param Registry $registry * @param FormFactory $formFactory * @param TimezoneInterface $localeDate * @param CombineFactory $condCombineFactory * @param Rule\Condition\Product\CombineFactory $condProdCombineF * @param AbstractResource|null $resource * @param AbstractDb|null $resourceCollection * @param array $data * @param ExtensionAttributesFactory|null $extensionFactory * @param AttributeValueFactory|null $customAttributeFactory * @param Json|null $serializer * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( Context $context, Registry $registry, FormFactory $formFactory, TimezoneInterface $localeDate, CombineFactory $condCombineFactory, Rule\Condition\Product\CombineFactory $condProdCombineF, AbstractResource $resource = null, AbstractDb $resourceCollection = null, array $data = [], ExtensionAttributesFactory $extensionFactory = null, AttributeValueFactory $customAttributeFactory = null, Json $serializer = null ) { parent::__construct( $context, $registry, $formFactory, $localeDate, $resource, $resourceCollection, $data, $extensionFactory, $customAttributeFactory, $serializer ); $this->_condCombineFactory = $condCombineFactory; $this->_condProdCombineF = $condProdCombineF; } /** * Constructor * * @return void */ protected function _construct() { parent::_construct(); $this->setIdFieldName('entity_id'); $this->_init(ResourceModel\PriceRules::class); } /** * Get rule condition combine model instance * * @return Combine */ public function getConditionsInstance() { return $this->_condCombineFactory->create(); } /** * Get rule condition product combine model instance * * @return Rule\Condition\Product\Combine */ public function getActionsInstance() { return $this->_condProdCombineF->create(); } /** * Check cached validation result for specific address * * @param Address $address * @return bool */ public function hasIsValidForAddress($address) { $addressId = $this->_getAddressId($address); return isset($this->_validatedAddresses[$addressId]); } /** * Set validation result for specific address to results cache * * @param Address $address * @param bool $validationResult * @return $this */ public function setIsValidForAddress($address, $validationResult) { $addressId = $this->_getAddressId($address); $this->_validatedAddresses[$addressId] = $validationResult; return $this; } /** * Get cached validation result for specific address * * @param Address $address * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getIsValidForAddress($address) { $addressId = $this->_getAddressId($address); return $this->_validatedAddresses[$addressId] ?? false; } /** * Return id for address * * @param Address $address * @return string */ private function _getAddressId($address) { if ($address instanceof Address) { return $address->getId(); } return $address; } /** * Get conditions field set id. * * @param string $formName * @return string * @since 100.1.0 */ public function getConditionsFieldSetId($formName = '') { return $formName . 'rule_conditions_fieldset_' . $this->getId(); } /** * @inheritDoc */ public function getId() { return parent::getData(self::ENTITY_ID); } /** * @inheritDoc */ public function setId($id) { return $this->setData(self::ENTITY_ID, $id); } /** * @inheritDoc */ public function getCreatedTime() { return parent::getData(self::CREATED_TIME); } /** * @inheritDoc */ public function setCreatedTime($createdTime) { return $this->setData(self::CREATED_TIME, $createdTime); } /** * @inheritDoc */ public function getUpdateTime() { return parent::getData(self::UPDATED_TIME); } /** * @inheritDoc */ public function setUpdateTime($updateTime) { return $this->setData(self::UPDATED_TIME, $updateTime); } /** * @inheritDoc */ public function getTitle() { return parent::getData(self::TITLE); } /** * @inheritDoc */ public function setTitle($title) { return $this->setData(self::TITLE, $title); } /** * @inheritDoc */ public function getPrice() { return parent::getData(self::PRICE); } /** * @inheritDoc */ public function setPrice($price) { return $this->setData(self::PRICE, $price); } /** * @inheritDoc */ public function getConditionsSerialized() { return parent::getData(self::CONDITIONS_SERIALIZED); } /** * @inheritDoc */ public function setConditionsSerialized($conditions) { return $this->setData(self::CONDITIONS_SERIALIZED, $conditions); } /** * @inheritDoc */ public function getStatus() { return parent::getData(self::STATUS); } /** * @inheritDoc */ public function setStatus($status) { return $this->setData(self::STATUS, $status); } /** * @inheritDoc */ public function getDateFrom() { return parent::getData(self::DATE_FROM); } /** * @inheritDoc */ public function setDateFrom($data) { return parent::setData(self::DATE_FROM, $data); } /** * @inheritDoc */ public function getDateTo() { return parent::getData(self::DATE_TO); } /** * @inheritDoc */ public function setDateTo($data) { return parent::setData(self::DATE_TO, $data); } /** * @inheritDoc */ public function getFrequency() { return parent::getData(self::FREQUENCY); } /** * @inheritDoc */ public function setFrequency($data) { return parent::setData(self::FREQUENCY, $data); } /** * @inheritDoc */ public function getDayWeek() { return parent::getData(self::DAY_WEEK); } /** * @inheritDoc */ public function setDayWeek($data) { return parent::setData(self::DAY_WEEK, $data); } /** * Get Day Week As Array * * @return array|false|string[] */ public function getDayWeekAsArray() { $days = parent::getData(self::DAY_WEEK); if (!empty($days)) { return explode(',', $days); } return []; } }