本文整理汇总了PHP中Magento\Sales\Model\Order::getShippingTaxAmount方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::getShippingTaxAmount方法的具体用法?PHP Order::getShippingTaxAmount怎么用?PHP Order::getShippingTaxAmount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Sales\Model\Order
的用法示例。
在下文中一共展示了Order::getShippingTaxAmount方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getTotal
/**
* @return TotalInterface
*/
private function getTotal()
{
/** @var TotalInterface $total */
$total = $this->totalFactory->create();
$total->setBaseShippingAmount($this->order->getBaseShippingAmount());
$total->setBaseShippingCanceled($this->order->getBaseShippingCanceled());
$total->setBaseShippingDiscountAmount($this->order->getBaseShippingDiscountAmount());
$total->setBaseShippingDiscountTaxCompensationAmnt($this->order->getBaseShippingDiscountTaxCompensationAmnt());
$total->setBaseShippingInclTax($this->order->getBaseShippingInclTax());
$total->setBaseShippingInvoiced($this->order->getBaseShippingInvoiced());
$total->setBaseShippingRefunded($this->order->getBaseShippingRefunded());
$total->setBaseShippingTaxAmount($this->order->getBaseShippingTaxAmount());
$total->setBaseShippingTaxRefunded($this->order->getBaseShippingTaxRefunded());
$total->setShippingAmount($this->order->getShippingAmount());
$total->setShippingCanceled($this->order->getShippingCanceled());
$total->setShippingDiscountAmount($this->order->getShippingDiscountAmount());
$total->setShippingDiscountTaxCompensationAmount($this->order->getShippingDiscountTaxCompensationAmount());
$total->setShippingInclTax($this->order->getShippingInclTax());
$total->setShippingInvoiced($this->order->getShippingInvoiced());
$total->setShippingRefunded($this->order->getShippingRefunded());
$total->setShippingTaxAmount($this->order->getShippingTaxAmount());
$total->setShippingTaxRefunded($this->order->getShippingTaxRefunded());
return $total;
}
示例2: getCalculatedTaxes
/**
* Get calculated taxes for each tax class
*
* This method returns array with format:
* array(
* $index => array(
* 'tax_amount' => $taxAmount,
* 'base_tax_amount' => $baseTaxAmount,
* 'title' => $title,
* 'percent' => $percent
* )
* )
*
* @param \Magento\Sales\Model\Order $source
* @return array
*/
public function getCalculatedTaxes($source)
{
if ($this->_coreRegistry->registry('current_invoice')) {
$current = $this->_coreRegistry->registry('current_invoice');
} elseif ($this->_coreRegistry->registry('current_creditmemo')) {
$current = $this->_coreRegistry->registry('current_creditmemo');
} else {
$current = $source;
}
$taxClassAmount = array();
if ($current && $source) {
if ($current == $source) {
$orderTaxDetails = $this->orderTaxService->getOrderTaxDetails($current->getId());
$appliedTaxes = $orderTaxDetails->getAppliedTaxes();
foreach ($appliedTaxes as $appliedTax) {
$taxCode = $appliedTax->getCode();
$taxClassAmount[$taxCode]['tax_amount'] = $appliedTax->getAmount();
$taxClassAmount[$taxCode]['base_tax_amount'] = $appliedTax->getBaseAmount();
$taxClassAmount[$taxCode]['title'] = $appliedTax->getTitle();
$taxClassAmount[$taxCode]['percent'] = $appliedTax->getPercent();
}
} else {
$orderTaxDetails = $this->orderTaxService->getOrderTaxDetails($source->getId());
// Apply any taxes for shipping
$shippingTaxAmount = $current->getShippingTaxAmount();
$originalShippingTaxAmount = $source->getShippingTaxAmount();
if ($shippingTaxAmount && $originalShippingTaxAmount && $shippingTaxAmount != 0 && $originalShippingTaxAmount != 0) {
//An invoice or credit memo can have a different qty than its order
$shippingRatio = $shippingTaxAmount / $originalShippingTaxAmount;
$itemTaxDetails = $orderTaxDetails->getItems();
foreach ($itemTaxDetails as $itemTaxDetail) {
//Aggregate taxable items associated with shipping
if ($itemTaxDetail->getType() == \Magento\Sales\Model\Quote\Address::TYPE_SHIPPING) {
$taxClassAmount = $this->_aggregateTaxes($taxClassAmount, $itemTaxDetail, $shippingRatio);
}
}
}
// Apply any taxes for the items
/** @var $item \Magento\Sales\Model\Order\Invoice\Item|\Magento\Sales\Model\Order\Creditmemo\Item */
foreach ($current->getItemsCollection() as $item) {
$orderItem = $item->getOrderItem();
$orderItemId = $orderItem->getId();
$orderItemTax = $orderItem->getTaxAmount();
$itemTax = $item->getTaxAmount();
if (!$itemTax || !$orderItemTax) {
continue;
}
//An invoiced item or credit memo item can have a different qty than its order item qty
$itemRatio = $itemTax / $orderItemTax;
$itemTaxDetails = $orderTaxDetails->getItems();
foreach ($itemTaxDetails as $itemTaxDetail) {
//Aggregate taxable items associated with an item
if ($itemTaxDetail->getItemId() == $orderItemId || $itemTaxDetail->getAssociatedItemId() == $orderItemId) {
$taxClassAmount = $this->_aggregateTaxes($taxClassAmount, $itemTaxDetail, $itemRatio);
}
}
}
}
// Finish
foreach ($taxClassAmount as $key => $tax) {
if ($tax['tax_amount'] == 0 && $tax['base_tax_amount'] == 0) {
unset($taxClassAmount[$key]);
} else {
$taxClassAmount[$key]['tax_amount'] = $this->priceCurrency->round($tax['tax_amount']);
$taxClassAmount[$key]['base_tax_amount'] = $this->priceCurrency->round($tax['base_tax_amount']);
}
}
$taxClassAmount = array_values($taxClassAmount);
}
return $taxClassAmount;
}
示例3: startTransaction
public function startTransaction(Order $order, UrlInterface $url)
{
$config = new Config($this->_scopeConfig);
$config->configureSDK();
$additionalData = $order->getPayment()->getAdditionalInformation();
$bankId = null;
if (isset($additionalData['bank_id'])) {
$bankId = $additionalData['bank_id'];
}
$total = $order->getGrandTotal();
$items = $order->getAllVisibleItems();
$orderId = $order->getIncrementId();
$quoteId = $order->getQuoteId();
$currency = $order->getOrderCurrencyCode();
$returnUrl = $url->getUrl('paynl/checkout/finish/');
$exchangeUrl = $url->getUrl('paynl/checkout/exchange/');
$paymentOptionId = $this->getPaymentOptionId();
$arrBillingAddress = $order->getBillingAddress();
if ($arrBillingAddress) {
$arrBillingAddress = $arrBillingAddress->toArray();
$enduser = array('initials' => substr($arrBillingAddress['firstname'], 0, 1), 'lastName' => $arrBillingAddress['lastname'], 'phoneNumber' => $arrBillingAddress['telephone'], 'emailAddress' => $arrBillingAddress['email']);
$invoiceAddress = array('initials' => substr($arrBillingAddress['firstname'], 0, 1), 'lastName' => $arrBillingAddress['lastname']);
$arrAddress = \Paynl\Helper::splitAddress($arrBillingAddress['street']);
$invoiceAddress['streetName'] = $arrAddress[0];
$invoiceAddress['houseNumber'] = $arrAddress[1];
$invoiceAddress['zipCode'] = $arrBillingAddress['postcode'];
$invoiceAddress['city'] = $arrBillingAddress['city'];
$invoiceAddress['country'] = $arrBillingAddress['country_id'];
}
$arrShippingAddress = $order->getShippingAddress();
if ($arrShippingAddress) {
$arrShippingAddress = $arrShippingAddress->toArray();
$shippingAddress = array('initials' => substr($arrShippingAddress['firstname'], 0, 1), 'lastName' => $arrShippingAddress['lastname']);
$arrAddress2 = \Paynl\Helper::splitAddress($arrShippingAddress['street']);
$shippingAddress['streetName'] = $arrAddress2[0];
$shippingAddress['houseNumber'] = $arrAddress2[1];
$shippingAddress['zipCode'] = $arrShippingAddress['postcode'];
$shippingAddress['city'] = $arrShippingAddress['city'];
$shippingAddress['country'] = $arrShippingAddress['country_id'];
}
$data = array('amount' => $total, 'returnUrl' => $returnUrl, 'paymentMethod' => $paymentOptionId, 'bank' => $bankId, 'description' => $orderId, 'extra1' => $orderId, 'extra2' => $quoteId, 'exchangeUrl' => $exchangeUrl, 'currency' => $currency);
if (isset($shippingAddress)) {
$data['address'] = $shippingAddress;
}
if (isset($invoiceAddress)) {
$data['invoiceAddress'] = $invoiceAddress;
}
if (isset($enduser)) {
$data['enduser'] = $enduser;
}
$arrProducts = array();
foreach ($items as $item) {
$arrItem = $item->toArray();
if ($arrItem['price_incl_tax'] != null) {
// taxamount is not valid, because on discount it returns the taxamount after discount
$taxAmount = $arrItem['price_incl_tax'] - $arrItem['price'];
$product = array('id' => $arrItem['product_id'], 'name' => $arrItem['name'], 'price' => $arrItem['price_incl_tax'], 'qty' => $arrItem['qty_ordered'], 'tax' => $taxAmount);
}
$arrProducts[] = $product;
}
//shipping
$shippingCost = $order->getShippingInclTax();
$shippingTax = $order->getShippingTaxAmount();
$shippingDescription = $order->getShippingDescription();
$arrProducts[] = array('id' => 'shipping', 'name' => $shippingDescription, 'price' => $shippingCost, 'qty' => 1, 'tax' => $shippingTax);
// kortingen
$discount = $order->getDiscountAmount();
$discountDescription = $order->getDiscountDescription();
if ($discount != 0) {
$arrProducts[] = array('id' => 'discount', 'name' => $discountDescription, 'price' => $discount, 'qty' => 1, 'tax' => $order->getDiscountTaxCompensationAmount() * -1);
}
$data['products'] = $arrProducts;
if ($config->isTestMode()) {
$data['testmode'] = 1;
}
$data['ipaddress'] = $order->getRemoteIp();
$transaction = \Paynl\Transaction::start($data);
return $transaction->getRedirectUrl();
}
示例4: _getReceiptOrderLines
/**
* @param \Magento\Sales\Model\Order $order
* @return string
*/
protected function _getReceiptOrderLines(\Magento\Sales\Model\Order $order)
{
$myReceiptOrderLines = "";
$currency = $order->getOrderCurrencyCode();
$formattedAmountValue = $this->_currencyFactory->create()->format($order->getGrandTotal(), ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$taxAmount = $order->getTaxAmount();
$formattedTaxAmount = $this->_currencyFactory->create()->format($taxAmount, ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$myReceiptOrderLines .= "---||C\n" . "====== YOUR ORDER DETAILS ======||CB\n" . "---||C\n" . " No. Description |Piece Subtotal|\n";
foreach ($order->getItemsCollection() as $item) {
//skip dummies
if ($item->isDummy()) {
continue;
}
$singlePriceFormat = $this->_currencyFactory->create()->format($item->getPriceInclTax(), ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$itemAmount = $item->getPriceInclTax() * (int) $item->getQtyOrdered();
$itemAmountFormat = $this->_currencyFactory->create()->format($itemAmount, ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$myReceiptOrderLines .= " " . (int) $item->getQtyOrdered() . " " . trim(substr($item->getName(), 0, 25)) . "| " . $currency . " " . $singlePriceFormat . " " . $currency . " " . $itemAmountFormat . "|\n";
}
//discount cost
if ($order->getDiscountAmount() > 0 || $order->getDiscountAmount() < 0) {
$discountAmountFormat = $this->_currencyFactory->create()->format($order->getDiscountAmount(), ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$myReceiptOrderLines .= " " . 1 . " " . $this->__('Total Discount') . "| " . $currency . " " . $discountAmountFormat . "|\n";
}
//shipping cost
if ($order->getShippingAmount() > 0 || $order->getShippingTaxAmount() > 0) {
$shippingAmountFormat = $this->_currencyFactory->create()->format($order->getShippingAmount(), ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$myReceiptOrderLines .= " " . 1 . " " . $order->getShippingDescription() . "| " . $currency . " " . $shippingAmountFormat . "|\n";
}
if ($order->getPaymentFeeAmount() > 0) {
$paymentFeeAmount = $this->_currencyFactory->create()->format($order->getPaymentFeeAmount(), ['display' => \Magento\Framework\Currency::NO_SYMBOL], false);
$myReceiptOrderLines .= " " . 1 . " " . $this->__('Payment Fee') . "| " . $currency . " " . $paymentFeeAmount . "|\n";
}
$myReceiptOrderLines .= "|--------|\n" . "|Order Total: " . $currency . " " . $formattedAmountValue . "|B\n" . "|Tax: " . $currency . " " . $formattedTaxAmount . "|B\n" . "||C\n";
/*
* New header for card details section!
* Default location is After Header so simply add to Order Details as separator
*/
$myReceiptOrderLines .= "---||C\n" . "====== YOUR PAYMENT DETAILS ======||CB\n" . "---||C\n";
return $myReceiptOrderLines;
}