本文整理汇总了PHP中Magento\Sales\Model\Order\Creditmemo类的典型用法代码示例。如果您正苦于以下问题:PHP Creditmemo类的具体用法?PHP Creditmemo怎么用?PHP Creditmemo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Creditmemo类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: send
/**
* Send email to customer
*
* @param Creditmemo $creditmemo
* @param bool $notify
* @param string $comment
* @return bool
*/
public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
{
$order = $creditmemo->getOrder();
$transport = ['order' => $order, 'creditmemo' => $creditmemo, 'comment' => $comment, 'billing' => $order->getBillingAddress(), 'store' => $order->getStore(), 'formattedShippingAddress' => $this->getFormattedShippingAddress($order), 'formattedBillingAddress' => $this->getFormattedBillingAddress($order)];
$this->eventManager->dispatch('email_creditmemo_comment_set_template_vars_before', ['sender' => $this, 'transport' => $transport]);
$this->templateContainer->setTemplateVars($transport);
return $this->checkAndSend($order, $notify);
}
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:16,代码来源:CreditmemoCommentSender.php
示例2: send
/**
* Send email to customer
*
* @param Creditmemo $creditmemo
* @param bool $notify
* @param string $comment
* @return bool
*/
public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
{
$order = $creditmemo->getOrder();
$this->templateContainer->setTemplateVars(['order' => $creditmemo->getOrder(), 'invoice' => $creditmemo, 'comment' => $comment, 'billing' => $order->getBillingAddress(), 'payment_html' => $this->getPaymentHtml($order), 'store' => $order->getStore()]);
$result = $this->checkAndSend($order, $notify);
if ($result) {
$creditmemo->setEmailSent(true);
$this->creditmemoResource->saveAttribute($creditmemo, 'email_sent');
}
return $result;
}
开发者ID:shabbirvividads,项目名称:magento2,代码行数:19,代码来源:CreditmemoSender.php
示例3: collect
/**
* Collect total cost of refunded items
*
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return $this
*/
public function collect(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$baseRefundTotalCost = 0;
foreach ($creditmemo->getAllItems() as $item) {
if (!$item->getHasChildren()) {
$baseRefundTotalCost += $item->getBaseCost() * $item->getQty();
}
}
$creditmemo->setBaseCost($baseRefundTotalCost);
return $this;
}
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:17,代码来源:Cost.php
示例4: send
/**
* Send email to customer
*
* @param Creditmemo $creditmemo
* @param bool $notify
* @param string $comment
* @return bool
*/
public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
{
$order = $creditmemo->getOrder();
if ($order->getShippingAddress()) {
$formattedShippingAddress = $this->addressRenderer->format($order->getShippingAddress(), 'html');
} else {
$formattedShippingAddress = '';
}
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
$transport = new \Magento\Framework\Object(['template_vars' => ['order' => $order, 'creditmemo' => $creditmemo, 'comment' => $comment, 'billing' => $order->getBillingAddress(), 'store' => $order->getStore(), 'formattedShippingAddress' => $formattedShippingAddress, 'formattedBillingAddress' => $formattedBillingAddress]]);
$this->eventManager->dispatch('email_creditmemo_comment_set_template_vars_before', ['sender' => $this, 'transport' => $transport]);
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
return $this->checkAndSend($order, $notify);
}
开发者ID:opexsw,项目名称:magento2,代码行数:22,代码来源:CreditmemoCommentSender.php
示例5: send
/**
* Sends order creditmemo email to the customer.
*
* Email will be sent immediately in two cases:
*
* - if asynchronous email sending is disabled in global settings
* - if $forceSyncMode parameter is set to TRUE
*
* Otherwise, email will be sent later during running of
* corresponding cron job.
*
* @param Creditmemo $creditmemo
* @param bool $forceSyncMode
* @return bool
*/
public function send(Creditmemo $creditmemo, $forceSyncMode = false)
{
$creditmemo->setSendEmail(true);
if (!$this->globalConfig->getValue('sales_email/general/async_sending') || $forceSyncMode) {
$order = $creditmemo->getOrder();
$transport = ['order' => $order, 'creditmemo' => $creditmemo, 'comment' => $creditmemo->getCustomerNoteNotify() ? $creditmemo->getCustomerNote() : '', 'billing' => $order->getBillingAddress(), 'payment_html' => $this->getPaymentHtml($order), 'store' => $order->getStore(), 'formattedShippingAddress' => $this->getFormattedShippingAddress($order), 'formattedBillingAddress' => $this->getFormattedBillingAddress($order)];
$this->eventManager->dispatch('email_creditmemo_set_template_vars_before', ['sender' => $this, 'transport' => $transport]);
$this->templateContainer->setTemplateVars($transport);
if ($this->checkAndSend($order)) {
$creditmemo->setEmailSent(true);
$this->creditmemoResource->saveAttribute($creditmemo, ['send_email', 'email_sent']);
return true;
}
}
$this->creditmemoResource->saveAttribute($creditmemo, 'send_email');
return false;
}
开发者ID:kidaa30,项目名称:magento2-platformsh,代码行数:32,代码来源:CreditmemoSender.php
示例6: collect
/**
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return $this
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function collect(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
$allowedAmount = $order->getShippingAmount() - $order->getShippingRefunded();
$baseAllowedAmount = $order->getBaseShippingAmount() - $order->getBaseShippingRefunded();
$orderShippingAmount = $order->getShippingAmount();
$orderBaseShippingAmount = $order->getBaseShippingAmount();
$orderShippingInclTax = $order->getShippingInclTax();
$orderBaseShippingInclTax = $order->getBaseShippingInclTax();
$shippingAmount = $baseShippingAmount = $shippingInclTax = $baseShippingInclTax = 0;
/**
* Check if shipping amount was specified (from invoice or another source).
* Using has magic method to allow setting 0 as shipping amount.
*/
if ($creditmemo->hasBaseShippingAmount()) {
$baseShippingAmount = $this->priceCurrency->round($creditmemo->getBaseShippingAmount());
/*
* Rounded allowed shipping refund amount is the highest acceptable shipping refund amount.
* Shipping refund amount shouldn't cause errors, if it doesn't exceed that limit.
* Note: ($x < $y + 0.0001) means ($x <= $y) for floats
*/
if ($baseShippingAmount < $this->priceCurrency->round($baseAllowedAmount) + 0.0001) {
$ratio = 0;
if ($orderBaseShippingAmount > 0) {
$ratio = $baseShippingAmount / $orderBaseShippingAmount;
}
/*
* Shipping refund amount should be equated to allowed refund amount,
* if it exceeds that limit.
* Note: ($x > $y - 0.0001) means ($x >= $y) for floats
*/
if ($baseShippingAmount > $baseAllowedAmount - 0.0001) {
$shippingAmount = $allowedAmount;
$baseShippingAmount = $baseAllowedAmount;
} else {
$shippingAmount = $this->priceCurrency->round($orderShippingAmount * $ratio);
}
$shippingInclTax = $this->priceCurrency->round($orderShippingInclTax * $ratio);
$baseShippingInclTax = $this->priceCurrency->round($orderBaseShippingInclTax * $ratio);
} else {
$baseAllowedAmount = $order->getBaseCurrency()->format($baseAllowedAmount, null, false);
throw new \Magento\Framework\Exception\LocalizedException(__('Maximum shipping amount allowed to refund is: %1', $baseAllowedAmount));
}
} else {
$shippingAmount = $allowedAmount;
$baseShippingAmount = $baseAllowedAmount;
$allowedTaxAmount = $order->getShippingTaxAmount() - $order->getShippingTaxRefunded();
$baseAllowedTaxAmount = $order->getBaseShippingTaxAmount() - $order->getBaseShippingTaxRefunded();
$shippingInclTax = $this->priceCurrency->round($allowedAmount + $allowedTaxAmount);
$baseShippingInclTax = $this->priceCurrency->round($baseAllowedAmount + $baseAllowedTaxAmount);
}
$creditmemo->setShippingAmount($shippingAmount);
$creditmemo->setBaseShippingAmount($baseShippingAmount);
$creditmemo->setShippingInclTax($shippingInclTax);
$creditmemo->setBaseShippingInclTax($baseShippingInclTax);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $shippingAmount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseShippingAmount);
return $this;
}
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:64,代码来源:Shipping.php
示例7: collect
/**
* Collect Weee amounts for the credit memo
*
* @param Creditmemo $creditmemo
* @return $this
*/
public function collect(Creditmemo $creditmemo)
{
$store = $creditmemo->getStore();
$totalTax = 0;
$baseTotalTax = 0;
$weeeTaxAmount = 0;
$baseWeeeTaxAmount = 0;
foreach ($creditmemo->getAllItems() as $item) {
if ($item->getOrderItem()->isDummy()) {
continue;
}
$weeeAmountExclTax = ($this->_weeeData->getWeeeTaxInclTax($item) - $this->_weeeData->getTotalTaxAppliedForWeeeTax($item)) * $item->getQty();
$totalTax += $weeeAmountExclTax;
$baseWeeeAmountExclTax = ($this->_weeeData->getBaseWeeeTaxInclTax($item) - $this->_weeeData->getBaseTotalTaxAppliedForWeeeTax($item)) * $item->getQty();
$baseTotalTax += $baseWeeeAmountExclTax;
$item->setWeeeTaxAppliedRowAmount($weeeAmountExclTax);
$item->setBaseWeeeTaxAppliedRowAmount($baseWeeeAmountExclTax);
$weeeTaxAmount += $this->_weeeData->getWeeeTaxInclTax($item) * $item->getQty();
$baseWeeeTaxAmount += $this->_weeeData->getBaseWeeeTaxInclTax($item) * $item->getQty();
$newApplied = array();
$applied = $this->_weeeData->getApplied($item);
foreach ($applied as $one) {
$one['base_row_amount'] = $one['base_amount'] * $item->getQty();
$one['row_amount'] = $one['amount'] * $item->getQty();
$one['base_row_amount_incl_tax'] = $one['base_amount_incl_tax'] * $item->getQty();
$one['row_amount_incl_tax'] = $one['amount_incl_tax'] * $item->getQty();
$newApplied[] = $one;
}
$this->_weeeData->setApplied($item, $newApplied);
$item->setWeeeTaxRowDisposition($item->getWeeeTaxDisposition() * $item->getQty());
$item->setBaseWeeeTaxRowDisposition($item->getBaseWeeeTaxDisposition() * $item->getQty());
}
if ($this->_weeeData->includeInSubtotal($store)) {
$creditmemo->setSubtotal($creditmemo->getSubtotal() + $totalTax);
$creditmemo->setBaseSubtotal($creditmemo->getBaseSubtotal() + $baseTotalTax);
}
$creditmemo->setSubtotalInclTax($creditmemo->getSubtotalInclTax() + $weeeTaxAmount);
$creditmemo->setBaseSubtotalInclTax($creditmemo->getBaseSubtotalInclTax() + $baseWeeeTaxAmount);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $totalTax);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseTotalTax);
return $this;
}
开发者ID:aiesh,项目名称:magento2,代码行数:48,代码来源:Weee.php
示例8: testCollect
/**
* @param array $creditmemoData
* @param array $expectedResults
* @dataProvider collectDataProvider
*/
public function testCollect($creditmemoData, $expectedResults)
{
$roundingDelta = [];
//Set up weeeData mock
$this->weeeData->expects($this->once())->method('includeInSubtotal')->will($this->returnValue($creditmemoData['include_in_subtotal']));
//Set up invoice mock
/** @var \Magento\Sales\Model\Order\Invoice\Item[] $creditmemoItems */
$creditmemoItems = [];
foreach ($creditmemoData['items'] as $itemKey => $creditmemoItemData) {
$creditmemoItems[$itemKey] = $this->getInvoiceItem($creditmemoItemData);
}
$this->creditmemo->expects($this->once())->method('getAllItems')->will($this->returnValue($creditmemoItems));
foreach ($creditmemoData['data_fields'] as $key => $value) {
$this->creditmemo->setData($key, $value);
}
$this->creditmemo->expects($this->any())->method('roundPrice')->will($this->returnCallback(function ($price, $type) use(&$roundingDelta) {
if (!isset($roundingDelta[$type])) {
$roundingDelta[$type] = 0;
}
$roundedPrice = round($price + $roundingDelta[$type], 2);
$roundingDelta[$type] = $price - $roundedPrice;
return $roundedPrice;
}));
$this->model->collect($this->creditmemo);
//verify invoice data
foreach ($expectedResults['creditmemo_data'] as $key => $value) {
$this->assertEquals($value, $this->creditmemo->getData($key), 'Creditmemo data field ' . $key . ' is incorrect');
}
//verify invoice item data
foreach ($expectedResults['creditmemo_items'] as $itemKey => $itemData) {
$creditmemoItem = $creditmemoItems[$itemKey];
foreach ($itemData as $key => $value) {
if ($key == 'tax_ratio') {
$taxRatio = unserialize($creditmemoItem->getData($key));
$expectedTaxRatio = unserialize($itemData[$key]);
$this->assertEquals($expectedTaxRatio['weee'], $taxRatio['weee'], "Tax ratio is incorrect");
} else {
$this->assertEquals($value, $creditmemoItem->getData($key), 'Creditmemo item field ' . $key . ' is incorrect');
}
}
}
}
开发者ID:,项目名称:,代码行数:47,代码来源:
示例9: collect
/**
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return $this
*/
public function collect(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$order = $creditmemo->getOrder();
$amount = $order->getFinanceCostAmount();
$baseAmount = $order->getBaseFinanceCostAmount();
if ($amount) {
$creditmemo->setFinanceCostAmount($amount);
$creditmemo->setBaseFinanceCostAmount($baseAmount);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $amount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseAmount);
}
return $this;
}
开发者ID:SummaSolutions,项目名称:cart-magento2,代码行数:17,代码来源:FinanceCost.php
示例10: testGetItemsCollectionWithoutId
public function testGetItemsCollectionWithoutId()
{
$items = [];
$itemMock = $this->getMockBuilder('\\Magento\\Sales\\Model\\Order\\Creditmemo\\Item')->disableOriginalConstructor()->getMock();
$itemMock->expects($this->never())->method('setCreditmemo');
$items[] = $itemMock;
/** @var ItemCollection|\PHPUnit_Framework_MockObject_MockObject $itemCollectionMock */
$itemCollectionMock = $this->getMockBuilder('\\Magento\\Sales\\Model\\ResourceModel\\Order\\Creditmemo\\Item\\Collection')->disableOriginalConstructor()->getMock();
$itemCollectionMock->expects($this->once())->method('setCreditmemoFilter')->with(null)->will($this->returnValue($items));
$this->cmItemCollectionFactoryMock->expects($this->any())->method('create')->will($this->returnValue($itemCollectionMock));
$itemsCollection = $this->creditmemo->getItemsCollection();
$this->assertEquals($items, $itemsCollection);
}
开发者ID:IlyaGluschenko,项目名称:protection,代码行数:13,代码来源:CreditmemoTest.php
示例11: collect
/**
* Collect Creditmemo subtotal
*
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return $this
*/
public function collect(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$subtotal = 0;
$baseSubtotal = 0;
$subtotalInclTax = 0;
$baseSubtotalInclTax = 0;
foreach ($creditmemo->getAllItems() as $item) {
if ($item->getOrderItem()->isDummy()) {
continue;
}
$item->calcRowTotal();
$subtotal += $item->getRowTotal();
$baseSubtotal += $item->getBaseRowTotal();
$subtotalInclTax += $item->getRowTotalInclTax();
$baseSubtotalInclTax += $item->getBaseRowTotalInclTax();
}
$creditmemo->setSubtotal($subtotal);
$creditmemo->setBaseSubtotal($baseSubtotal);
$creditmemo->setSubtotalInclTax($subtotalInclTax);
$creditmemo->setBaseSubtotalInclTax($baseSubtotalInclTax);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $subtotal);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseSubtotal);
return $this;
}
开发者ID:aiesh,项目名称:magento2,代码行数:30,代码来源:Subtotal.php
示例12: testExecute
/**
* @covers \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\PrintAction::execute
*/
public function testExecute()
{
$creditmemoId = 2;
$date = '2015-01-19_13-03-45';
$fileName = 'creditmemo2015-01-19_13-03-45.pdf';
$fileContents = 'pdf0123456789';
$this->prepareTestExecute($creditmemoId);
$this->objectManagerMock->expects($this->any())->method('create')->willReturnMap([['Magento\\Sales\\Model\\Order\\Creditmemo', [], $this->creditmemoMock], ['Magento\\Sales\\Model\\Order\\Pdf\\Creditmemo', [], $this->creditmemoPdfMock]]);
$this->creditmemoMock->expects($this->once())->method('load')->with($creditmemoId)->willReturnSelf();
$this->creditmemoPdfMock->expects($this->once())->method('getPdf')->with([$this->creditmemoMock])->willReturn($this->pdfMock);
$this->objectManagerMock->expects($this->once())->method('get')->with('Magento\\Framework\\Stdlib\\DateTime\\DateTime')->willReturn($this->dateTimeMock);
$this->dateTimeMock->expects($this->once())->method('date')->with('Y-m-d_H-i-s')->willReturn($date);
$this->pdfMock->expects($this->once())->method('render')->willReturn($fileContents);
$this->fileFactoryMock->expects($this->once())->method('create')->with($fileName, $fileContents, \Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR, 'application/pdf')->willReturn($this->responseMock);
$this->assertInstanceOf('Magento\\Framework\\App\\ResponseInterface', $this->printAction->execute());
}
开发者ID:shabbirvividads,项目名称:magento2,代码行数:19,代码来源:PrintActionTest.php
示例13: testExecute
/**
* test execute method
*/
public function testExecute()
{
$this->requestMock->expects($this->exactly(4))->method('getParam')->will($this->returnValueMap([['order_id', null, 'order_id'], ['creditmemo_id', null, 'creditmemo_id'], ['creditmemo', null, 'creditmemo'], ['invoice_id', null, 'invoice_id']]));
$this->creditmemoLoaderMock->expects($this->once())->method('setOrderId')->with($this->equalTo('order_id'));
$this->creditmemoLoaderMock->expects($this->once())->method('setCreditmemoId')->with($this->equalTo('creditmemo_id'));
$this->creditmemoLoaderMock->expects($this->once())->method('setCreditmemo')->with($this->equalTo('creditmemo'));
$this->creditmemoLoaderMock->expects($this->once())->method('setInvoiceId')->with($this->equalTo('invoice_id'));
$this->creditmemoLoaderMock->expects($this->once())->method('load')->will($this->returnValue($this->creditmemoMock));
$this->creditmemoMock->expects($this->exactly(2))->method('getInvoice')->will($this->returnValue($this->invoiceMock));
$this->invoiceMock->expects($this->once())->method('getIncrementId')->will($this->returnValue('invoice-increment-id'));
$this->titleMock->expects($this->exactly(2))->method('prepend')->will($this->returnValueMap([['Credit Memos', null], ['New Memo for #invoice-increment-id', null], ['item-title', null]]));
$this->objectManagerMock->expects($this->once())->method('get')->with($this->equalTo('Magento\\Backend\\Model\\Session'))->will($this->returnValue($this->backendSessionMock));
$this->backendSessionMock->expects($this->once())->method('getCommentText')->with($this->equalTo(true))->will($this->returnValue('comment'));
$this->creditmemoMock->expects($this->once())->method('setCommentText')->with($this->equalTo('comment'));
$this->resultPageMock->expects($this->any())->method('getConfig')->will($this->returnValue($this->pageConfigMock));
$this->pageConfigMock->expects($this->any())->method('getTitle')->willReturn($this->titleMock);
$this->resultPageFactoryMock->expects($this->once())->method('create')->willReturn($this->resultPageMock);
$this->resultPageMock->expects($this->once())->method('setActiveMenu')->with('Magento_Sales::sales_order')->willReturnSelf();
$this->resultPageMock->expects($this->atLeastOnce())->method('getConfig')->willReturn($this->pageConfigMock);
$this->assertInstanceOf('Magento\\Backend\\Model\\View\\Result\\Page', $this->controller->execute());
}
开发者ID:Doability,项目名称:magento2dev,代码行数:24,代码来源:NewActionTest.php
示例14: testExecute
/**
* test execute method
*/
public function testExecute()
{
$this->requestMock->expects($this->exactly(4))->method('getParam')->will($this->returnValueMap([['order_id', null, 'order_id'], ['creditmemo_id', null, 'creditmemo_id'], ['creditmemo', null, 'creditmemo'], ['invoice_id', null, 'invoice_id']]));
$this->creditmemoLoaderMock->expects($this->once())->method('setOrderId')->with($this->equalTo('order_id'));
$this->creditmemoLoaderMock->expects($this->once())->method('setCreditmemoId')->with($this->equalTo('creditmemo_id'));
$this->creditmemoLoaderMock->expects($this->once())->method('setCreditmemo')->with($this->equalTo('creditmemo'));
$this->creditmemoLoaderMock->expects($this->once())->method('setInvoiceId')->with($this->equalTo('invoice_id'));
$this->creditmemoLoaderMock->expects($this->once())->method('load')->will($this->returnValue($this->creditmemoMock));
$this->creditmemoMock->expects($this->exactly(2))->method('getInvoice')->will($this->returnValue($this->invoiceMock));
$this->invoiceMock->expects($this->once())->method('getIncrementId')->will($this->returnValue('invoice-increment-id'));
$this->titleMock->expects($this->exactly(3))->method('add')->will($this->returnValueMap([['Credit Memos', null], ['New Memo for #invoice-increment-id', null], ['item-title', null]]));
$this->objectManagerMock->expects($this->once())->method('get')->with($this->equalTo('Magento\\Backend\\Model\\Session'))->will($this->returnValue($this->backendSessionMock));
$this->backendSessionMock->expects($this->once())->method('getCommentText')->with($this->equalTo(true))->will($this->returnValue('comment'));
$this->creditmemoMock->expects($this->once())->method('setCommentText')->with($this->equalTo('comment'));
$this->viewMock->expects($this->once())->method('loadLayout');
$this->viewMock->expects($this->once())->method('renderLayout');
$this->viewMock->expects($this->once())->method('getLayout')->will($this->returnValue($this->layoutMock));
$this->layoutMock->expects($this->once())->method('getBlock')->with($this->equalTo('menu'))->will($this->returnValue($this->blockMenuMock));
$this->blockMenuMock->expects($this->once())->method('setActive')->with($this->equalTo('Magento_Sales::sales_order'));
$this->blockMenuMock->expects($this->once())->method('getMenuModel')->will($this->returnValue($this->modelMenuMock));
$this->modelMenuMock->expects($this->once())->method('getParentItems')->will($this->returnValue([$this->modelMenuItem]));
$this->modelMenuItem->expects($this->once())->method('getTitle')->will($this->returnValue('item-title'));
$this->assertNull($this->controller->execute());
}
开发者ID:,项目名称:,代码行数:27,代码来源:
示例15: testCollect
/**
* @param array $orderData
* @param array $creditmemoData
* @param array $expectedResults
* @dataProvider collectDataProvider
*/
public function testCollect($orderData, $creditmemoData, $expectedResults)
{
$roundingDelta = [];
//Set up order mock
foreach ($orderData['data_fields'] as $key => $value) {
$this->order->setData($key, $value);
}
//Set up creditmemo mock
/** @var \Magento\Sales\Model\Order\Creditmemo\Item[] $creditmemoItems */
$creditmemoItems = [];
foreach ($creditmemoData['items'] as $itemKey => $creditmemoItemData) {
$creditmemoItems[$itemKey] = $this->getCreditmemoItem($creditmemoItemData);
}
$this->creditmemo->expects($this->once())->method('getAllItems')->will($this->returnValue($creditmemoItems));
$this->creditmemo->expects($this->any())->method('isLast')->will($this->returnValue($creditmemoData['is_last']));
foreach ($creditmemoData['data_fields'] as $key => $value) {
$this->creditmemo->setData($key, $value);
}
$this->creditmemo->expects($this->any())->method('roundPrice')->will($this->returnCallback(function ($price, $type) use(&$roundingDelta) {
if (!isset($roundingDelta[$type])) {
$roundingDelta[$type] = 0;
}
$roundedPrice = round($price + $roundingDelta[$type], 2);
$roundingDelta[$type] = $price - $roundedPrice;
return $roundedPrice;
}));
$this->model->collect($this->creditmemo);
//verify invoice data
foreach ($expectedResults['creditmemo_data'] as $key => $value) {
$this->assertEquals($value, $this->creditmemo->getData($key));
}
//verify invoice item data
foreach ($expectedResults['creditmemo_items'] as $itemKey => $itemData) {
$creditmemoItem = $creditmemoItems[$itemKey];
foreach ($itemData as $key => $value) {
$this->assertEquals($value, $creditmemoItem->getData($key));
}
}
}
开发者ID:tingyeeh,项目名称:magento2,代码行数:45,代码来源:TaxTest.php
示例16: _initCreditmemoData
/**
* Initialize creditmemo state based on requested parameters
*
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @param array $data
* @return void
*/
protected function _initCreditmemoData($creditmemo, $data)
{
if (isset($data['shipping_amount'])) {
$creditmemo->setBaseShippingAmount((double) $data['shipping_amount']);
}
if (isset($data['adjustment_positive'])) {
$creditmemo->setAdjustmentPositive($data['adjustment_positive']);
}
if (isset($data['adjustment_negative'])) {
$creditmemo->setAdjustmentNegative($data['adjustment_negative']);
}
}
开发者ID:shabbirvividads,项目名称:magento2,代码行数:19,代码来源:Order.php
示例17: collect
/**
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return $this
*/
public function collect(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$creditmemo->setDiscountAmount(0);
$creditmemo->setBaseDiscountAmount(0);
$order = $creditmemo->getOrder();
$totalDiscountAmount = 0;
$baseTotalDiscountAmount = 0;
/**
* Calculate how much shipping discount should be applied
* basing on how much shipping should be refunded.
*/
$baseShippingAmount = $creditmemo->getBaseShippingAmount();
if ($baseShippingAmount) {
$baseShippingDiscount = $baseShippingAmount * $order->getBaseShippingDiscountAmount() / $order->getBaseShippingAmount();
$shippingDiscount = $order->getShippingAmount() * $baseShippingDiscount / $order->getBaseShippingAmount();
$totalDiscountAmount = $totalDiscountAmount + $shippingDiscount;
$baseTotalDiscountAmount = $baseTotalDiscountAmount + $baseShippingDiscount;
}
/** @var $item \Magento\Sales\Model\Order\Invoice\Item */
foreach ($creditmemo->getAllItems() as $item) {
$orderItem = $item->getOrderItem();
if ($orderItem->isDummy()) {
continue;
}
$orderItemDiscount = (double) $orderItem->getDiscountInvoiced();
$baseOrderItemDiscount = (double) $orderItem->getBaseDiscountInvoiced();
$orderItemQty = $orderItem->getQtyInvoiced();
if ($orderItemDiscount && $orderItemQty) {
$discount = $orderItemDiscount - $orderItem->getDiscountRefunded();
$baseDiscount = $baseOrderItemDiscount - $orderItem->getBaseDiscountRefunded();
if (!$item->isLast()) {
$availableQty = $orderItemQty - $orderItem->getQtyRefunded();
$discount = $creditmemo->roundPrice($discount / $availableQty * $item->getQty(), 'regular', true);
$baseDiscount = $creditmemo->roundPrice($baseDiscount / $availableQty * $item->getQty(), 'base', true);
}
$item->setDiscountAmount($discount);
$item->setBaseDiscountAmount($baseDiscount);
$totalDiscountAmount += $discount;
$baseTotalDiscountAmount += $baseDiscount;
}
}
$creditmemo->setDiscountAmount(-$totalDiscountAmount);
$creditmemo->setBaseDiscountAmount(-$baseTotalDiscountAmount);
$creditmemo->setGrandTotal($creditmemo->getGrandTotal() - $totalDiscountAmount);
$creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() - $baseTotalDiscountAmount);
return $this;
}
开发者ID:aiesh,项目名称:magento2,代码行数:51,代码来源:Discount.php
示例18: extractDto
/**
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return \Magento\Framework\Service\Data\AbstractExtensibleObject
*/
public function extractDto(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$this->creditmemoBuilder->populateWithArray($creditmemo->getData());
$this->creditmemoBuilder->setItems($this->getItems($creditmemo));
return $this->creditmemoBuilder->create();
}
开发者ID:aiesh,项目名称:magento2,代码行数:10,代码来源:CreditmemoMapper.php
示例19: collect
/**
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @return $this
*/
public function collect(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
{
$grandTotal = $creditmemo->getGrandTotal();
$baseGrandTotal = $creditmemo->getBaseGrandTotal();
$grandTotal += $creditmemo->getAdjustmentPositive();
$baseGrandTotal += $creditmemo->getBaseAdjustmentPositive();
$grandTotal -= $creditmemo->getAdjustmentNegative();
$baseGrandTotal -= $creditmemo->getBaseAdjustmentNegative();
$creditmemo->setGrandTotal($grandTotal);
$creditmemo->setBaseGrandTotal($baseGrandTotal);
$creditmemo->setAdjustment($creditmemo->getAdjustmentPositive() - $creditmemo->getAdjustmentNegative());
$creditmemo->setBaseAdjustment($creditmemo->getBaseAdjustmentPositive() - $creditmemo->getBaseAdjustmentNegative());
return $this;
}
开发者ID:pradeep-wagento,项目名称:magento2,代码行数:18,代码来源:Grand.php
示例20: processCreditmemo
/**
* Set transaction ID into creditmemo for informational purposes
* @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
* @param \Magento\Sales\Model\Order\Payment $payment
* @return $this
*/
public function processCreditmemo($creditmemo, $payment)
{
$creditmemo->setTransactionId(1);
return $this;
}
开发者ID:aiesh,项目名称:magento2,代码行数:11,代码来源:Authorizenet.php
注:本文中的Magento\Sales\Model\Order\Creditmemo类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论