当前位置: 首页>>代码示例>>PHP>>正文


PHP Tax::getInstanceById方法代码示例

本文整理汇总了PHP中Tax::getInstanceById方法的典型用法代码示例。如果您正苦于以下问题:PHP Tax::getInstanceById方法的具体用法?PHP Tax::getInstanceById怎么用?PHP Tax::getInstanceById使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tax的用法示例。


在下文中一共展示了Tax::getInstanceById方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: __construct

 public function __construct(CustomerOrder $order, Currency $currency)
 {
     parent::__construct();
     $this->order = $order;
     $order->loadAll();
     // billing address
     if ($address = $order->billingAddress->get()) {
         $fields = array('firstName', 'lastName', 'companyName', 'phone', 'city', 'postalCode', 'countryID' => 'country');
         foreach ($fields as $key => $field) {
             $addressField = is_numeric($key) ? $field : $key;
             $this->{$field}->set($address->{$addressField}->get());
         }
         $this->state->set($this->getStateValue($address));
         $this->address->set($address->address1->get() . ' ' . $address->address2->get());
     }
     // shipping address
     $address = $order->shippingAddress->get();
     if (!$address) {
         $address = $order->billingAddress->get();
     }
     if ($address) {
         foreach ($fields as $key => $field) {
             $addressField = is_numeric($key) ? $field : $key;
             $field = 'shipping' . ucfirst($field);
             $this->{$field}->set($address->{$addressField}->get());
         }
         $this->shippingState->set($this->getStateValue($address));
         $this->shippingAddress->set($address->address1->get() . ' ' . $address->address2->get());
     }
     // amount
     $order->currency->set($currency);
     $this->amount->set(round($order->getDueAmount(), 2));
     $this->currency->set($currency->getID());
     // transaction identification
     $this->invoiceID->set($order->getID());
     if (isset($_SERVER['REMOTE_ADDR'])) {
         $this->ipAddress->set($_SERVER['REMOTE_ADDR']);
     }
     // customer identification
     if ($order->user->get()) {
         $order->user->get()->load();
         $this->shippingEmail->set($order->user->get()->email->get());
         $this->email->set($order->user->get()->email->get());
         $this->clientID->set($order->user->get()->getID());
     }
     // order details
     // load variation data
     $variations = new ProductSet();
     foreach ($order->getShoppingCartItems() as $item) {
         if ($item->product->get() && $item->product->get()->parent->get()) {
             $variations->unshift($item->product->get());
         }
     }
     if ($variations->size()) {
         $variations->loadVariations();
     }
     foreach ($order->getShoppingCartItems() as $item) {
         $product = $item->getProduct();
         $variations = array();
         foreach ($product->getRegisteredVariations() as $variation) {
             $variations[] = $variation->getValueByLang('name');
         }
         $ri = RecurringItem::getInstanceByOrderedItem($item);
         if ($ri && $ri->isExistingRecord()) {
             $ri->load();
         } else {
             $ri = null;
         }
         $this->addLineItem($product->getName() . ($variations ? ' (' . implode(' / ', $variations) . ')' : ''), $item->getPrice(false), $item->count->get(), $product->sku->get(), $ri);
     }
     if ($discount = $order->getFixedDiscountAmount()) {
         $this->addLineItem(CustomerOrder::getApplication()->translate('_discount'), $discount * -1, 1, 'discount');
     }
     foreach ($order->getShipments() as $shipment) {
         if ($rate = $shipment->getSelectedRate()) {
             $rate = $rate->toArray();
             $name = empty($rate['ShippingService']['name_lang']) ? $rate['serviceName'] : $rate['ShippingService']['name_lang'];
             $this->addLineItem($name, $shipment->getShippingTotalBeforeTax(), 1, 'shipping');
         }
     }
     if ($taxes = $order->getTaxBreakdown()) {
         foreach ($taxes as $id => $amount) {
             $tax = Tax::getInstanceById($id, true);
             $this->addLineItem($tax->getValueByLang('name', null), $amount, 1, 'tax');
         }
     }
 }
开发者ID:GregerA,项目名称:livecart,代码行数:87,代码来源:LiveCartTransaction.php

示例2: toArray

 /**
  *  Creates an array representation of the shopping cart
  */
 public function toArray($options = array())
 {
     $currency = $this->getCurrency();
     $id = $currency->getID();
     if (is_array($this->orderedItems)) {
         foreach ($this->orderedItems as $item) {
             if (!$item->getProduct()->isPricingLoaded()) {
                 if (!isset($products)) {
                     $products = new ARSet();
                 }
                 $products->unshift($item->getProduct());
             }
         }
     }
     $array = parent::toArray();
     $array['cartItems'] = array();
     $array['wishListItems'] = array();
     if (is_array($this->orderedItems)) {
         foreach ($this->orderedItems as $item) {
             if ($item->isSavedForLater->get()) {
                 $array['wishListItems'][] = $item->toArray();
             } else {
                 $array['cartItems'][] = $item->toArray();
             }
         }
     }
     $array['basketCount'] = $this->getShoppingCartItemCount();
     $array['wishListCount'] = $this->getWishListItemCount();
     // shipments
     $array['shipments'] = array();
     if ($this->shipments) {
         foreach ($this->shipments as $shipment) {
             if (count($shipment->getItems())) {
                 $array['shipments'][] = $shipment->toArray();
             }
         }
     }
     // total for all currencies
     $total = array();
     $total[$id] = $this->getTotal();
     // taxes
     $array['taxes'] = $taxAmount = array();
     $taxAmount[$id] = 0;
     $array['taxes'][$id] = array();
     foreach ($this->taxes as $taxId => $amount) {
         if ($amount > 0) {
             $taxAmount[$id] += $amount;
             $tax = Tax::getInstanceById($taxId)->toArray();
             $tax['amount'] = $amount;
             $tax['formattedAmount'] = $currency->getFormattedPrice($amount);
             $array['taxes'][$id][] = $tax;
         }
     }
     $array['taxAmount'] = $taxAmount[$id];
     foreach ($this->taxDetails as &$taxRate) {
         $taxRate['formattedAmount'] = $currency->getFormattedPrice($taxRate['amount']);
     }
     $array['taxDetails'] = $this->taxDetails;
     $array['total'] = $total;
     $array['formattedTotal'] = $array['formattedTotalBeforeTax'] = array();
     if (is_array($array['total'])) {
         foreach ($array['total'] as $id => $amount) {
             if (!isset($taxAmount[$id])) {
                 $taxAmount[$id] = 0;
             }
             $array['formattedTotalBeforeTax'][$id] = $currency->getFormattedPrice($amount - $taxAmount[$id]);
             $array['formattedTotal'][$id] = $currency->getFormattedPrice($amount);
         }
     }
     // order type
     $array['isShippingRequired'] = (int) $this->isShippingRequired();
     // status
     $array['isReturned'] = (int) $this->isReturned();
     $array['isShipped'] = (int) $this->isShipped();
     $array['isAwaitingShipment'] = (int) $this->isAwaitingShipment();
     $array['isProcessing'] = (int) $this->isProcessing();
     // payments
     if (isset($options['payments'])) {
         $array['amountPaid'] = $this->getPaidAmount();
         $array['amountNotCaptured'] = $array['amountPaid'] - $array['capturedAmount'];
         if ($array['amountNotCaptured'] < 0) {
             $array['amountNotCaptured'] = 0;
         }
         $array['amountDue'] = $array['totalAmount'] - $array['amountPaid'];
         if ($array['amountDue'] < 0) {
             $array['amountDue'] = 0;
         }
     }
     // items subtotal
     $array['itemSubtotal'] = $array['itemDisplayPriceTotal'] = $array['itemSubtotalWithoutTax'] = 0;
     foreach ($this->getOrderedItems() as $item) {
         $array['itemSubtotal'] += $item->getSubtotal(true);
         $array['itemSubtotalWithoutTax'] += $item->getSubtotal(false);
         $array['itemDisplayPriceTotal'] += $item->getDisplayPrice($currency) * $item->count->get();
     }
     $array['itemDiscount'] = $array['itemDisplayPriceTotal'] - $array['itemSubtotal'];
     $array['itemDiscountReverse'] = $array['itemDiscount'] * -1;
//.........这里部分代码省略.........
开发者ID:saiber,项目名称:www,代码行数:101,代码来源:CustomerOrder.php


注:本文中的Tax::getInstanceById方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。