Ejemplo n.º 1
0
 /**
  * Collect address subtotal
  *
  * @param   Mage_Sales_Model_Order_Address $address
  * @return  Mage_Sales_Model_Order_Address_Total_Subtotal
  */
 public function collect(TinyBrick_OrderEdit_Model_Order_Address $address)
 {
     /**
      * Reset subtotal information
      */
     $address->setSubtotal(0);
     $address->setBaseSubtotal(0);
     $address->setTotalQty(0);
     $address->setBaseTotalPriceIncTax(0);
     $address->setGrandTotal(0);
     $address->setBaseGrandTotal(0);
     $order = $address->getOrder();
     /**
      * Process address items
      */
     $items = $order->getOrderItems();
     foreach ($items as $item) {
         if (!$this->_initItem($address, $item) || $item->getQtyOrdered() <= 0) {
             //$this->_removeItem($address, $item);
         }
     }
     /**
      * Initialize grand totals
      */
     $address->setGrandTotal($address->getSubtotal());
     $address->setBaseGrandTotal($address->getBaseSubtotal());
     return $this;
 }
Ejemplo n.º 2
0
 /**
  * Checks to see if there is a discount for the customer
  * @param TinyBrick_OrderEdit_Model_Order_Address $address
  * @return TinyBrick_OrderEdit_Model_Order_Address_Total_Discount 
  */
 public function collect(TinyBrick_OrderEdit_Model_Order_Address $address)
 {
     $order = $address->getOrder();
     $eventArgs = array('website_id' => Mage::app()->getStore($order->getStoreId())->getWebsiteId(), 'customer_group_id' => $order->getCustomerGroupId(), 'coupon_code' => $order->getCouponCode());
     $address->setFreeShipping(0);
     $totalDiscountAmount = 0;
     $subtotalWithDiscount = 0;
     $baseTotalDiscountAmount = 0;
     $baseSubtotalWithDiscount = 0;
     $items = $order->getOrderItems();
     if (!count($items)) {
         $address->setDiscountAmount($totalDiscountAmount);
         $address->setSubtotalWithDiscount($subtotalWithDiscount);
         $address->setBaseDiscountAmount($baseTotalDiscountAmount);
         $address->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
         return $this;
     }
     $hasDiscount = false;
     foreach ($items as $item) {
         if ($item->getNoDiscount()) {
             $item->setDiscountAmount(0);
             $item->setBaseDiscountAmount(0);
             $item->setRowTotalWithDiscount($item->getRowTotal());
             $item->setBaseRowTotalWithDiscount($item->getRowTotal());
             $subtotalWithDiscount += $item->getRowTotal();
             $baseSubtotalWithDiscount += $item->getBaseRowTotal();
         } else {
             /**
              * Child item discount we calculate for parent
              */
             if ($item->getParentItemId()) {
                 continue;
             }
             $eventArgs['item'] = $item;
             //Mage::dispatchEvent('quickorderedit_order_address_discount_item', $eventArgs);
             if ($item->getDiscountAmount() || $item->getFreeShipping()) {
                 $hasDiscount = true;
             }
             $totalDiscountAmount += $item->getDiscountAmount();
             $baseTotalDiscountAmount += $item->getDiscountAmount();
             $item->setRowTotalWithDiscount($item->getRowTotal() - $item->getDiscountAmount());
             $item->setBaseRowTotalWithDiscount($item->getBaseRowTotal() - $item->getDiscountAmount());
             $subtotalWithDiscount += $item->getRowTotalWithDiscount();
             $baseSubtotalWithDiscount += $item->getBaseRowTotalWithDiscount();
         }
     }
     $order->setDiscountAmount(-$totalDiscountAmount);
     $order->setSubtotalWithDiscount($subtotalWithDiscount);
     $order->setBaseDiscountAmount(-$baseTotalDiscountAmount);
     $order->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
     $order->setGrandTotal($order->getGrandTotal() + $order->getDiscountAmount());
     $order->setBaseGrandTotal($order->getBaseGrandTotal() + $order->getBaseDiscountAmount());
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * Fetch the new taxes for the address
  * @param TinyBrick_OrderEdit_Model_Order_Address $address
  * @return TinyBrick_OrderEdit_Model_Order_Address_Total_Tax 
  */
 public function fetch(TinyBrick_OrderEdit_Model_Order_Address $address)
 {
     $applied = $address->getAppliedTaxes();
     $store = $address->getOrder()->getStore();
     $amount = $address->getTaxAmount();
     if ($amount != 0 || Mage::helper('tax')->displayZeroTax($store)) {
         $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('sales')->__('Tax'), 'full_info' => $applied ? $applied : array(), 'value' => $amount));
     }
     return $this;
 }
Ejemplo n.º 4
0
 /**
  * Fetch subtotal for order
  * @param TinyBrick_OrderEdit_Model_Order_Address $address
  * @return TinyBrick_OrderEdit_Model_Order_Address_Total_Shipping 
  */
 public function fetch(TinyBrick_OrderEdit_Model_Order_Address $address)
 {
     $amount = $address->getOrder()->getShippingAmount();
     if ($amount != 0 || $address->getOrder()->getShippingDescription()) {
         $address->getOrder()->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('sales')->__('Shipping & Handling') . ' (' . $address->getOrder()->getShippingDescription() . ')', 'value' => $address->getOrder()->getShippingAmount()));
     }
     return $this;
 }
Ejemplo n.º 5
0
 /**
  * Declare address model
  *
  * @param   Mage_Sales_Model_Quote_Address $address
  * @return  Mage_Sales_Model_Quote_Address_Item
  */
 public function setAddress(TinyBrick_OrderEdit_Model_Order_Address $address)
 {
     $this->_address = $address;
     $this->_order = $address->getOrder();
     return $this;
 }