示例#1
0
 /**
  * @param bool $isExtended
  */
 private static function getReservationItemsToBeReturnedForCustomerEmail($isExtended = false)
 {
     $reminderPerCustomer = array();
     $startDate = date('Y-m-d', strtotime('-3 day', strtotime(date('Y-m-d'))));
     //$startDate = date('Y-m-d');
     if (!$isExtended) {
         $endDate = date('Y-m-d', strtotime('+' . Mage::getStoreConfig(self::XML_PATH_REMINDER_DAYS) . ' day', strtotime(date('m/d/Y'))));
     } else {
         $endDate = date('Y-m-d', strtotime('+' . Mage::getStoreConfig(self::XML_PATH_EXTENDED_REMINDER_DAYS) . ' day', strtotime(date('m/d/Y'))));
     }
     $collReservationToBeReturned = Mage::getModel('payperrentals/sendreturn')->getCollection()->addSelectFilter("res_enddate >= '" . ITwebexperts_Payperrentals_Helper_Date::toDbDate($startDate) . "' AND res_enddate <= '" . ITwebexperts_Payperrentals_Helper_Date::toDbDate($endDate) . "' AND return_date='0000-00-00 00:00:00'")->groupByOrder();
     $clientListIncoming = '<ul>';
     $listIncoming = '';
     $nrIncoming = 0;
     $usedOrders = array();
     foreach ($collReservationToBeReturned as $item) {
         $order = Mage::getModel('sales/order')->load($item->getOrderId());
         $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
         if (isset($usedOrders[$customer->getEmail()]) && in_array($item->getOrderId(), $usedOrders[$customer->getEmail()])) {
             continue;
         }
         $orderInfo = '<p>Order Id: ' . $order->getIncrementId() . '</p> <p> - Start Date: ' . $order->getStartDatetime() . '</p> <p> - Return Date: ' . $order->getEndDatetime() . '</p>';
         $clientListIncoming .= '<li>' . $orderInfo . '</li>';
         $nrIncoming++;
         if (!$isExtended) {
             $listIncoming .= '<p><a style="font-size:15px" href="' . Mage::getUrl('sales/order/view', array('order_id' => $order->getId())) . '">' . $orderInfo . '</a></p>';
         } else {
             $listIncoming .= '<p><a style="font-size:15px" href="' . Mage::getUrl('payperrentals_front/customer_extendorder', array('order_id' => $order->getId())) . '">' . $orderInfo . '</a></p>';
         }
         $usedOrders[$customer->getEmail()][] = $item->getOrderId();
     }
     foreach ($usedOrders as $email => $orderIds) {
         foreach ($orderIds as $orderId) {
             $order = Mage::getModel('sales/order')->load($orderId);
             $listIncoming .= '<br/><p style="font-style:italic;color:#cccccc;">' . Mage::helper('payperrentals')->__('Products from order:') . ' ' . $order->getIncrementId() . '</p>';
             foreach ($order->getAllItems() as $orderItem) {
                 if ($orderItem->getParentItem()) {
                     continue;
                 }
                 //$productQty = intval($orderItem->getQtyInvoiced());
                 $productName = $orderItem->getName();
                 $listIncoming .= '<p style="margin-left:20px">' . ' - ' . $productName . '</p>';
             }
         }
         $reminderPerCustomer[$email][] = $listIncoming;
     }
     $clientListIncoming .= '</ul>';
     $emailItems = array('nrIncoming' => $nrIncoming, 'clientListIncoming' => $clientListIncoming, 'listIncoming' => $listIncoming, 'reminderPerCustomer' => $reminderPerCustomer, 'customerName' => $customer->getFirstname() . ' ' . $customer->getLastname(), 'reminderdays' => !$isExtended ? Mage::getStoreConfig(self::XML_PATH_REMINDER_DAYS) : Mage::getStoreConfig(self::XML_PATH_EXTENDED_REMINDER_DAYS));
     if ($nrIncoming > 0) {
         if (!$isExtended) {
             ITwebexperts_Payperrentals_Helper_Emails::sendEmail('return_reminder', $emailItems);
         } else {
             ITwebexperts_Payperrentals_Helper_Emails::sendEmail('extend_reminder', $emailItems);
         }
     }
 }
示例#2
0
 /**
  * Returns items, used from ReturnContoller since we have 2 Return Controllers one for
  * Vendors one for regular Payperrentals we use the same function instead of repeating in controller
  *
  * @param $_sendItems
  * @throws Exception
  */
 public function processReturn($_sendItems)
 {
     /* @var $sendReturns ITwebexperts_Payperrentals_Model_Mysql4_Sendreturn_Collection */
     $sendReturnCollection = Mage::getModel('payperrentals/sendreturn')->getCollection();
     $sendReturnCollection->addFieldToFilter('id', array('in' => $_sendItems));
     $returnTime = date('Y-m-d H:i:s', (int) Mage::getModel('core/date')->timestamp(time()));
     $qtyArray = Mage::app()->getRequest()->getParam('qty');
     if (Mage::app()->getRequest()->getParam('sn')) {
         $snArray = Mage::app()->getRequest()->getParam('sn');
     }
     foreach ($sendReturnCollection as $sendReturn) {
         $returnqtyparent = 0;
         $returnqty = 1;
         if (isset($qtyArray[$sendReturn->getId()])) {
             $returnqty = $qtyArray[$sendReturn->getId()];
             if ($sendReturn->getQtyParent()) {
                 if ($qtyArray[$sendReturn->getId()] % $sendReturn->getQty() == 0) {
                     $returnqtyparent = intval($qtyArray[$sendReturn->getId()] / $sendReturn->getQty());
                 } else {
                     Mage::throwException('Cannot return shipment');
                     return false;
                 }
             }
         }
         //$serialNumbersArray = $sendReturn->getSn()? explode(',', $sendReturn->getSn()) : array();
         $serialNumbers = array();
         if (isset($snArray[$sendReturn->getId()])) {
             foreach ($snArray[$sendReturn->getId()] as $snItem) {
                 //if(in_array($snItem, $serialNumbersArray)){
                 $serialNumbers[] = $snItem;
                 if (count($serialNumbers) >= $returnqty) {
                     break;
                 }
                 // }
             }
         } else {
             $serialNumbers = array();
         }
         Mage::getModel('payperrentals/sendreturn')->setOrderId($sendReturn->getOrderId())->setProductId($sendReturn->getProductId())->setResStartdate($sendReturn->getResStartdate())->setResEnddate($sendReturn->getResEnddate())->setReturnDate($returnTime)->setQty($returnqty)->setSn(implode(',', $serialNumbers))->setQtyParent($returnqtyparent)->setResorderId($sendReturn->getResorderId())->save();
         foreach ($serialNumbers as $serial) {
             Mage::getResourceSingleton('payperrentals/serialnumbers')->updateStatusBySerial($serial, 'A');
         }
         /*get current return qty*/
         $collectionSendReturn = Mage::getModel('payperrentals/sendreturn')->getCollection()->addSelectFilter("resorder_id = '" . $sendReturn->getResorderId() . "'")->addSelectFilter("return_date <> '0000-00-00 00:00:00'");
         $collectionSendReturn->getSelect()->columns('SUM(qty) as qty_returned')->group('resorder_id');
         Mage::getResourceSingleton('payperrentals/reservationorders')->updateReturnedQty($sendReturn->getResorderId(), $collectionSendReturn->getFirstItem()->getQtyReturned() ? $collectionSendReturn->getFirstItem()->getQtyReturned() : 0);
         $order = Mage::getModel('sales/order')->load($sendReturn->getOrderId());
         $product = Mage::getModel('catalog/product')->load($sendReturn->getProductId());
         if ($sendReturn->getResStartdate() != '0000-00-00 00:00:00') {
             $returnPerCustomer[$order->getCustomerEmail()]['is_queue'] = false;
             $returnPerCustomer[$order->getCustomerEmail()][$sendReturn->getOrderId()][$product->getId()]['name'] = $product->getName();
             $returnPerCustomer[$order->getCustomerEmail()][$sendReturn->getOrderId()][$product->getId()]['serials'] = $sendReturn->getSn();
             $returnPerCustomer[$order->getCustomerEmail()][$sendReturn->getOrderId()][$product->getId()]['start_date'] = $sendReturn->getResStartdate();
             $returnPerCustomer[$order->getCustomerEmail()][$sendReturn->getOrderId()][$product->getId()]['end_date'] = $sendReturn->getResEnddate();
             $returnPerCustomer[$order->getCustomerEmail()][$sendReturn->getOrderId()][$product->getId()]['send_date'] = $sendReturn->getSendDate();
             $returnPerCustomer[$order->getCustomerEmail()][$sendReturn->getOrderId()][$product->getId()]['return_date'] = $returnTime;
         }
         ITwebexperts_Payperrentals_Helper_Inventory::updateInventory($sendReturn->getProductId());
     }
     if (isset($returnPerCustomer)) {
         ITwebexperts_Payperrentals_Helper_Emails::sendEmail('return', $returnPerCustomer);
     }
 }
示例#3
0
 /**
  * Function used For all the email handling. Check helper for more info
  */
 public function sendReturnEmail()
 {
     ITwebexperts_Payperrentals_Helper_Emails::sendReturnEmail();
 }