本文整理汇总了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');
}
}
}
示例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;
//.........这里部分代码省略.........