123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\CheckoutAgreements\Model\ResourceModel;
- /**
- * Resource Model for Checkout Agreement
- */
- class Agreement extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
- {
- /**
- * @var \Magento\Framework\Filter\FilterManager
- */
- protected $filterManager;
- /**
- * @param \Magento\Framework\Model\ResourceModel\Db\Context $context
- * @param \Magento\Framework\Filter\FilterManager $filterManager
- * @param string $connectionName
- * @codeCoverageIgnore
- */
- public function __construct(
- \Magento\Framework\Model\ResourceModel\Db\Context $context,
- \Magento\Framework\Filter\FilterManager $filterManager,
- $connectionName = null
- ) {
- $this->filterManager = $filterManager;
- parent::__construct($context, $connectionName);
- }
- /**
- * Model initialization
- *
- * @return void
- * @codeCoverageIgnore
- */
- protected function _construct()
- {
- $this->_init('checkout_agreement', 'agreement_id');
- }
- /**
- * Method to run before save
- *
- * @param \Magento\Framework\Model\AbstractModel $object
- * @return $this
- */
- protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
- {
- // format height
- $height = $object->getContentHeight();
- $height = $this->filterManager->stripTags($height);
- if (!$height) {
- $height = '';
- }
- if ($height && preg_match('/[0-9]$/', $height)) {
- $height .= 'px';
- }
- $object->setContentHeight($height);
- return parent::_beforeSave($object);
- }
- /**
- * Method to run after save
- *
- * @param \Magento\Framework\Model\AbstractModel $object
- * @return $this
- */
- protected function _afterSave(\Magento\Framework\Model\AbstractModel $object)
- {
- $this->getConnection()->delete(
- $this->getTable('checkout_agreement_store'),
- ['agreement_id = ?' => $object->getId()]
- );
- foreach ((array)$object->getData('stores') as $storeId) {
- $storeArray = [
- 'agreement_id' => $object->getId(),
- 'store_id' => $storeId
- ];
- $this->getConnection()->insert($this->getTable('checkout_agreement_store'), $storeArray);
- }
- return parent::_afterSave($object);
- }
- /**
- * Method to run after load
- *
- * @param \Magento\Framework\Model\AbstractModel $object
- * @return $this
- */
- protected function _afterLoad(\Magento\Framework\Model\AbstractModel $object)
- {
- $select = $this->getConnection()
- ->select()
- ->from($this->getTable('checkout_agreement_store'), ['store_id'])
- ->where('agreement_id = :agreement_id');
- $stores = $this->getConnection()->fetchCol($select, [':agreement_id' => $object->getId()]);
- if ($stores) {
- $object->setData('stores', $stores);
- }
- return parent::_afterLoad($object);
- }
- /**
- * Get load select
- *
- * @param string $field
- * @param mixed $value
- * @param \Magento\Framework\Model\AbstractModel $object
- * @return \Magento\Framework\DB\Select
- */
- protected function _getLoadSelect($field, $value, $object)
- {
- $select = parent::_getLoadSelect($field, $value, $object);
- if ($object->getStoreId()) {
- $select->join(
- ['cps' => $this->getTable('checkout_agreement_store')],
- $this->getMainTable() . '.agreement_id = cps.agreement_id'
- )->where(
- 'is_active=1'
- )->where(
- 'cps.store_id IN (0, ?)',
- $object->getStoreId()
- )->order(
- 'store_id DESC'
- )->limit(
- 1
- );
- }
- return $select;
- }
- }
|