![]() 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\ShippingMethodsInterface; 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 ShippingMethods extends AbstractModel implements ShippingMethodsInterface { /** * @var CombineFactory */ protected $_condCombineFactory; /** * @var Rule\Condition\Product\CombineFactory */ protected $_condProdCombineF; /** * Store already validated addresses and validation results * * @var array */ protected $_validatedAddresses = []; /** * Rule constructor * * @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; } /** * @return void */ protected function _construct() { parent::_construct(); $this->_init(ResourceModel\ShippingMethods::class); $this->setIdFieldName('entity_id'); } /** * 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 */ protected 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(); } /** * Get actions field set id. * * @param string $formName * * @return string * @since 100.1.0 */ public function getActionsFieldSetId($formName = '') { return $formName . 'rule_actions_fieldset_' . $this->getId(); } /** * @inheritDoc */ public function getId() { return parent::getData(self::ENTITY_ID); } /** * @inheritDoc */ public function setId($value) { return $this->setData(self::ENTITY_ID, $value); } /** * @inheritDoc */ public function getAdminTitle() { return parent::getData(self::ADMIN_TITLE); } /** * @param string $title * * @return ShippingMethodsInterface */ public function setAdminTitle($title) { return $this->setData(self::ADMIN_TITLE, $title); } /** * @inheritDoc */ public function getCreatedTime() { return parent::getData(self::CREATED_TIME); } /** * @param string $createdTime * * @return ShippingMethodsInterface */ public function setCreatedTime($createdTime) { return $this->setData(self::CREATED_TIME, $createdTime); } /** * @inheritDoc */ public function getUpdateTime() { return parent::getData(self::UPDATED_TIME); } /** * @param string $updateTime * * @return ShippingMethodsInterface */ public function setUpdateTime($updateTime) { return $this->setData(self::UPDATED_TIME, $updateTime); } /** * @inheritDoc */ public function getArea() { return parent::getData(self::AREA); } /** * @inheritDoc */ public function setArea($area) { return $this->setData(self::AREA, $area); } /** * @inheritDoc */ public function getCarrier() { return parent::getData(self::CARRIER); } /** * @inheritDoc */ public function setCarrier($carrier) { return $this->setData(self::CARRIER, $carrier); } /** * @inheritDoc */ public function getCarrierTitle() { return parent::getData(self::CARRIER_TITLE); } /** * @inheritDoc */ public function setCarrierTitle($carrierTitle) { return $this->setData(self::CARRIER_TITLE, $carrierTitle); } /** * @inheritDoc */ public function getCarrierMethodsType() { return parent::getData(self::CARRIER_METHODS_TYPE); } /** * @inheritDoc */ public function setCarrierMethodsType($carrierMethodsType) { return $this->setData(self::CARRIER_METHODS_TYPE, $carrierMethodsType); } /** * @inheritDoc */ public function getPrice() { return parent::getData(self::PRICE); } /** * @inheritDoc */ public function setPrice($price) { return $this->setData(self::PRICE, $price); } /** * @inheritDoc */ public function getCarrierMethods() { return parent::getData(self::CARRIER_METHODS); } /** * @inheritDoc */ public function setCarrierMethods($carrierMethods) { return $this->setData(self::CARRIER_METHODS, $carrierMethods); } /** * @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 getActionsSerialized() { return parent::getData(self::ACTIONS_SERIALIZED); } /** * @inheritDoc */ public function setActionsSerialized($actions) { return $this->setData(self::ACTIONS_SERIALIZED, $actions); } /** * @inheritDoc */ public function getStatus() { return parent::getData(self::STATUS); } /** * @inheritDoc */ public function setStatus($status) { return $this->setData(self::STATUS, $status); } /** * @inheritDoc */ public function getFreeShipping() { return parent::getData(self::FREE_SHIPPING); } /** * @inheritDoc */ public function setFreeShipping($freeShipping) { return $this->setData(self::FREE_SHIPPING, $freeShipping); } /** * @inheritDoc */ public function getWebsiteIds() { return parent::getData(self::WEBSITE_IDS); } /** * @inheritDoc */ public function setWebsiteIds($websiteIds) { if (is_array($websiteIds)) { $websiteIds = implode(',', $websiteIds); } return $this->setData(self::WEBSITE_IDS, $websiteIds); } /** * @inheritDoc */ public function getCustomerGroupIds() { return parent::getData(self::CUSTOMER_GROUP_IDS); } /** * @inheritDoc */ public function setCustomerGroupIds($customerGroupIds) { if (is_array($customerGroupIds)) { $customerGroupIds = implode(',', $customerGroupIds); } return $this->setData(self::CUSTOMER_GROUP_IDS, $customerGroupIds); } /** * @inheritDoc */ public function getCarrierDiscount() { return parent::getData(self::CARRIER_DISCOUNT); } /** * @inheritDoc */ public function setCarrierDiscount($carrierDiscount) { return $this->setData(self::CARRIER_DISCOUNT, $carrierDiscount); } /** * @inheritDoc */ public function getAccessPoint() { return parent::getData(self::ACCESS_POINT); } /** * @inheritDoc */ public function setAccessPoint($accessPoint) { return $this->setData(self::ACCESS_POINT, $accessPoint); } /** * @inheritDoc */ public function getIsTit() { return parent::getData(self::IS_TIT); } /** * @inheritDoc */ public function setIsTit($isTit) { return $this->setData(self::IS_TIT, $isTit); } /** * @inheritDoc */ public function getTitFormat() { if (empty(parent::getData(self::TIT_FORMAT))) { return 'Y.m.d H:i'; } return parent::getData(self::TIT_FORMAT); } /** * @inheritDoc */ public function setTitFormat($titFormat) { return $this->setData(self::TIT_FORMAT, $titFormat); } /** * @inheritDoc */ public function getTitPrefix() { return parent::getData(self::TIT_PREFIX); } /** * @inheritDoc */ public function setTitPrefix($titPrefix) { return $this->setData(self::TIT_PREFIX, $titPrefix); } /** * @inheritDoc */ public function getTitSuffix() { return parent::getData(self::TIT_SUFFIX); } /** * @inheritDoc */ public function setTitSuffix($titSuffix) { return $this->setData(self::TIT_SUFFIX, $titSuffix); } /** * @inheritDoc */ public function getDateFrom() { return parent::getData(self::DATE_FROM); } /** * @inheritDoc */ public function setDateFrom($dateFrom) { return parent::setData(self::DATE_FROM, $dateFrom); } /** * @inheritDoc */ public function getDateTo() { return parent::getData(self::DATE_TO); } /** * @inheritDoc */ public function setDateTo($dateTo) { return parent::setData(self::DATE_TO, $dateTo); } /** * @inheritDoc */ public function getFrequency() { return parent::getData(self::FREQUENCY); } /** * @inheritDoc */ public function setFrequency($frequency) { return parent::setData(self::FREQUENCY, $frequency); } /** * @inheritDoc */ public function getDayWeek() { return parent::getData(self::DAY_WEEK); } /** * @inheritDoc */ public function setDayWeek($data) { return parent::setData(self::DAY_WEEK, $data); } /** * @return array|false|string[] */ public function getDayWeekAsArray() { $days = parent::getData(self::DAY_WEEK); if (!empty($days)) { return explode(',', $days); } return []; } /** * @inheritDoc */ public function getLogo() { return parent::getData(self::LOGO); } /** * @inheritDoc */ public function setLogo($logo) { return parent::setData(self::LOGO, $logo); } /** * @inheritDoc */ public function getPriceRuleIds() { return parent::getData(self::PRICE_RULE_IDS); } /** * @return array */ public function getPriceRuleIdsAsArray() { $ids = []; $priceRuleIds = $this->getPriceRuleIds(); if (!empty($priceRuleIds)) { $priceRuleIds = json_decode($priceRuleIds, true); foreach ($priceRuleIds as $priceRuleId) { $ids[$priceRuleId['position']] = $priceRuleId['rule_id']; } ksort($ids); } return $ids; } /** * @inheritDoc */ public function setPriceRuleIds($data) { return parent::setData(self::PRICE_RULE_IDS, $data); } /** * @inheritDoc */ public function getPriceRulesApply() { return parent::getData(self::PRICE_RULES_APPLY); } /** * @inheritDoc */ public function setPriceRulesApply($data) { return parent::setData(self::PRICE_RULES_APPLY, $data); } /** * @inheritDoc */ public function getWebsiteType() { return parent::getData(self::WEBSITE_TYPE); } /** * @inheritDoc */ public function setWebsiteType($websiteType) { return parent::setData(self::WEBSITE_TYPE, $websiteType); } /** * @inheritDoc */ public function getCustomerGroupType() { return parent::getData(self::CUSTOMER_GROUP_TYPE); } /** * @inheritDoc */ public function setCustomerGroupType($customerGroupType) { return parent::setData(self::CUSTOMER_GROUP_TYPE, $customerGroupType); } /** * @inheritDoc */ public function getMethodsNamesMapping() { $data = parent::getData(self::METHODS_NAMES_MAPPING); if ($data) { return json_decode($data, true); } return []; } /** * @inheritDoc */ public function setMethodsNamesMapping($data) { return parent::setData(self::METHODS_NAMES_MAPPING, $data); } }