Ejemplo n.º 1
0
 /**
  * Get customer balance model using sales entity
  *
  * @param Mage_Sales_Model_Quote|Mage_Sales_Model_Order $salesEntity
  *
  * @return Enterprise_CustomerBalance_Model_Balance|bool
  */
 public function getCustomerBalanceModelFromSalesEntity($salesEntity)
 {
     if ($salesEntity instanceof Mage_Sales_Model_Order) {
         $customerId = $salesEntity->getCustomerId();
         $quote = $salesEntity->getQuote();
     } elseif ($salesEntity instanceof Mage_Sales_Model_Quote) {
         $customerId = $salesEntity->getCustomer()->getId();
         $quote = $salesEntity;
     } else {
         return false;
     }
     if (!$customerId) {
         return false;
     }
     $customerBalanceModel = Mage::getModel('enterprise_customerbalance/balance')->setCustomerId($customerId)->setWebsiteId(Mage::app()->getStore($salesEntity->getStoreId())->getWebsiteId())->loadByCustomer();
     if ($quote->getBaseCustomerBalanceVirtualAmount() > 0) {
         $customerBalanceModel->setAmount($customerBalanceModel->getAmount() + $quote->getBaseCustomerBalanceVirtualAmount());
     }
     return $customerBalanceModel;
 }
Ejemplo n.º 2
0
 /**
  * Retrieve storeId from object
  *
  * @param OnePica_AvaTax_Model_Sales_Quote_Address|Mage_Sales_Model_Order $object
  * @return int
  */
 protected function _getStoreIdByObject($object)
 {
     if ($object instanceof OnePica_AvaTax_Model_Sales_Quote_Address) {
         return $object->getQuote()->getStoreId();
     }
     return $object->getStoreId();
 }
 /**
  * get shipping address with the highest subtotal amount.
  *
  * @param Mage_Sales_Model_Order
  * @return Mage_Sales_Model_Order_Address|null
  */
 protected function getPrimaryShippingAddress(Mage_Sales_Model_Order $order)
 {
     $collection = $order->getAddressesCollection();
     $address = $collection->getItemByColumnValue('quote_address_id', $this->getQuotePrimaryShippingAddressId($order->getQuote()));
     return $address;
 }
Ejemplo n.º 4
0
 /**
  * @param Mage_Sales_Model_Order $order
  *
  * @return array
  */
 public function buildPlanItemsForSubscription($order)
 {
     $list = [];
     $orderItems = $order->getItemsCollection();
     $orderSubtotal = $order->getQuote()->getSubtotal();
     $orderDiscount = $order->getDiscountAmount() * -1;
     $discount = null;
     if (!empty($orderDiscount)) {
         $discountPercentage = $orderDiscount * 100 / $orderSubtotal;
         $discountPercentage = number_format(floor($discountPercentage * 100) / 100, 2);
         $discount = [['discount_type' => 'percentage', 'percentage' => $discountPercentage]];
     }
     foreach ($orderItems as $item) {
         $product = Mage::getModel('catalog/product')->load($item->getProductId());
         if ($product->getTypeID() !== 'subscription') {
             Mage::throwException("O produto {$item->getName()} não é uma assinatura.");
             return false;
         }
         $productVindiId = $this->findOrCreateProduct(array('sku' => $item->getSku(), 'name' => $item->getName()));
         for ($i = 1; $i <= $item->getQtyOrdered(); $i++) {
             $list[] = ['product_id' => $productVindiId, 'pricing_schema' => ['price' => $item->getPrice()], 'discounts' => $discount];
         }
     }
     // Create product for shipping
     $productVindiId = $this->findOrCreateProduct(array('sku' => 'frete', 'name' => 'Frete'));
     $list[] = ['product_id' => $productVindiId, 'pricing_schema' => ['price' => $order->getShippingAmount()]];
     return $list;
 }
Ejemplo n.º 5
0
 /**
  * Get tax class id
  *
  * @param OnePica_AvaTax_Model_Sales_Quote_Address|Mage_Sales_Model_Order $object
  * @return int
  */
 protected function _getTaxClassId($object)
 {
     if ($object instanceof OnePica_AvaTax_Model_Sales_Quote_Address) {
         return $object->getQuote()->getCustomerTaxClassId();
     }
     return Mage::getSingleton('customer/group')->load($object->getCustomerGroupId())->getTaxClassId();
 }