Example #1
0
 public static function collectDay($date)
 {
     $instance = new self();
     $instance->load($date, 'date');
     $instance->setDate($date);
     $carts = Mage::getModel('adjcartalert/quotestat')->getCollection();
     $carts->getSelect()->where('`cart_abandon_date` BETWEEN \'' . $instance->getDate() . '\' AND \'' . $instance->getDate() . '\' + INTERVAL 1 DAY');
     $abandonedItemsNum = 0;
     $abandonedCartsPrice = 0;
     $recoveredCarts = 0;
     $orderedItemsNum = 0;
     $orderedCartsPrice = 0;
     $orderedCarts = 0;
     $letterStep = 0;
     //$orderTime = 0;
     $moduleCouponsUsed = 0;
     foreach ($carts as $cart) {
         $abandonedCartsPrice += $cart->getCartPrice();
         $items = unserialize($cart->getCartItems());
         foreach ($items as $item) {
             $abandonedItemsNum += $item;
         }
         if ($cart->getRecoveryDate()) {
             $recoveredCarts++;
         }
         if ($cart->getOrderDate()) {
             $orderedCarts++;
             $orderedCartsPrice += $cart->getOrderPrice();
             $items = unserialize($cart->getOrderItems());
             foreach ($items as $item) {
                 $orderedItemsNum += $item;
             }
             $letterStep += $cart->getAlertNumber();
         }
         if ($cart->getAlertCouponGenerated() != '' && $cart->getAlertCouponGenerated() == $cart->getOrderCouponUsed()) {
             $moduleCouponsUsed++;
         }
     }
     $instance->setAbandonedCartsNum(count($carts));
     $instance->setAbandonedCartsPrice($abandonedCartsPrice);
     $instance->setAbandonedItemsNum($abandonedItemsNum);
     $instance->setRecoveredCartsNum($recoveredCarts);
     $instance->setOrderedCartsNum($orderedCarts);
     $instance->setOrderedCartsPrice($orderedCartsPrice);
     $instance->setOrderedItemsNum($orderedItemsNum);
     $instance->setOrderedItemsNum($orderedItemsNum);
     $instance->setCouponsUsed($moduleCouponsUsed);
     if ($orderedCarts) {
         /*$orderTime = round($orderTime / $orderedCarts);
           $orderTimeS = $orderTime % 60;
           $orderTime = (int)$orderTime/60;
           $orderTimeM = $orderTime % 60;
           $orderTime = (int)$orderTime/60;
           $instance->setAvBackTime($orderTime.':'.$orderTimeM.':'.$orderTimeS);*/
         $instance->setTargetLetterStep($letterStep / $orderedCarts);
     }
     $instance->save();
 }