/**
  * Retrieve alert row by object parameters
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return array|false
  */
 protected function _getAlertRow(\Magento\Framework\Model\AbstractModel $object)
 {
     $adapter = $this->_getReadAdapter();
     if ($object->getCustomerId() && $object->getProductId() && $object->getWebsiteId()) {
         $select = $adapter->select()->from($this->getMainTable())->where('customer_id = :customer_id')->where('product_id  = :product_id')->where('website_id  = :website_id');
         $bind = [':customer_id' => $object->getCustomerId(), ':product_id' => $object->getProductId(), ':website_id' => $object->getWebsiteId()];
         return $adapter->fetchRow($select, $bind);
     }
     return false;
 }
Beispiel #2
0
 /**
  * Validate Product Rule Condition
  *
  * @param \Magento\Framework\Model\AbstractModel $model
  * @return bool
  */
 public function validate(\Magento\Framework\Model\AbstractModel $model)
 {
     //@todo reimplement this method when is fixed MAGETWO-5713
     /** @var \Magento\Catalog\Model\Product $product */
     $product = $model->getProduct();
     if (!$product instanceof \Magento\Catalog\Model\Product) {
         $product = $this->productRepository->getById($model->getProductId());
     }
     $product->setQuoteItemQty($model->getQty())->setQuoteItemPrice($model->getPrice())->setQuoteItemRowTotal($model->getBaseRowTotal());
     return parent::validate($product);
 }
Beispiel #3
0
 /**
  * Before save action
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     if (is_null($object->getId()) && $object->getCustomerId() && $object->getProductId() && $object->getWebsiteId()) {
         if ($row = $this->_getAlertRow($object)) {
             $object->addData($row);
             $object->setStatus(0);
         }
     }
     if (is_null($object->getAddDate())) {
         $object->setAddDate($this->_dateFactory->create()->gmtDate());
         $object->setStatus(0);
     }
     return parent::_beforeSave($object);
 }