public static function generateCoupons($deal, $couponsQty) { $couponsCount = Mage::getModel('collpur/coupon')->getCollection()->addFieldToFilter('deal_id', $deal->getId())->getSize(); for ($i = $couponsCount; $i < $couponsQty + $couponsCount; $i++) { $coupon = new self(); $coupon->generateCoupon($deal, $i); } if ($deal->getIsSuccess() && $deal->getIsSuccessedFlag()) { AW_Collpur_Model_Cron::_processSuccessedDeals(); } }
public function processOrderItem($orderItem, $errors = true) { if ($errors) { if (!$this->isAvailable()) { throw new Mage_Core_Exception(Mage::helper('collpur')->__('Deal #%s is not available more', $this->getId())); } } $order = $orderItem->getOrder(); $purchase = Mage::getModel('collpur/dealpurchases')->loadByOrderItemId($orderItem->getId()); $qtyToAdd = $orderItem->getData('qty_invoiced') - $orderItem->getData('qty_refunded'); $afterPurchaseQty = $this->getPurchasesCount() - $purchase->getData('qty_purchased') + $qtyToAdd; if ($errors) { $this->validateRequestedQty($afterPurchaseQty); } /* Process specific new purchase actions */ if (!$purchase->getId()) { $purchase->setPurchaseDateTime(Mage::getModel('core/date')->gmtDate()); if (!Mage::getStoreConfig(AW_Collpur_Helper_Notifications::NOTIFICATIONS_ON, $order->getStoreId())) { $purchase->setIsSuccessedFlag(2); } /* Calculate shipping amount separetaly for order item */ $purchase->setData('shipping_amount', $this->calculateShippingAmount($orderItem)); $purchase->setData('qty_ordered', $orderItem->getQtyOrdered()); } $purchase->setData('qty_purchased', $qtyToAdd)->setData('order_id', $order->getId())->setData('order_item_id', $orderItem->getId())->setData('deal_id', $this->getId())->setData('customer_name', $order->getCustomerName())->setData('customer_id', $order->getCustomerId())->save(); $purchase->connectWithFreeCoupons(); $this->checkPurchasesCount()->checkSuccess()->checkAutoClose()->save(); /* If ->checkAutoClose(), set this flag to process downloadable links */ if ($this->getData('process_additional_states')) { $this->additionalProductProcessing(); } /* Send email notifications right away if deal already successed and processed by cron */ if ($this->getIsSuccess() && $this->getIsSuccessedFlag()) { AW_Collpur_Model_Cron::_processSuccessedDeals(); } }