Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreatedatTest.php
Go to the documentation of this file.
1 <?php
7 
13 class CreatedatTest extends \PHPUnit\Framework\TestCase
14 {
19  public function testTotals($orderParams)
20  {
22  $order = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(\Magento\Sales\Model\Order::class);
23  $order->loadByIncrementId('100000001')
24  ->setBaseGrandTotal($orderParams['base_subtotal'])
25  ->setSubtotal($orderParams['base_subtotal'])
26  ->setBaseSubtotal($orderParams['base_subtotal'])
27  ->setBaseDiscountAmount($orderParams['base_discount_amount'])
28  ->setBaseTaxAmount($orderParams['base_tax_amount'])
29  ->setBaseSubtotalInvoiced($orderParams['base_subtotal_invoiced'])
30  ->setBaseDiscountInvoiced($orderParams['base_discount_invoiced'])
31  ->setBaseTaxInvoiced($orderParams['base_tax_invoiced'])
32  ->setBaseShippingAmount(0)
33  ->setBaseToGlobalRate(1)
34  ->setCouponCode('1234567890')
35  ->setCreatedAt('2014-10-25 10:10:10')
36  ->save();
37  // refresh report statistics
40  \Magento\SalesRule\Model\ResourceModel\Report\Rule::class
41  );
42  $reportResource->aggregate();
45  \Magento\SalesRule\Model\ResourceModel\Report\Collection::class
46  );
47  $salesRuleReportItem = $reportCollection->getFirstItem();
48  $this->assertEquals($this->getTotalAmount($order), $salesRuleReportItem['total_amount']);
49  $this->assertEquals($this->getTotalAmountActual($order), $salesRuleReportItem['total_amount_actual']);
50  }
51 
58  private function getTotalAmount(\Magento\Sales\Model\Order $order)
59  {
60  return (
61  $order->getBaseSubtotal() - $order->getBaseSubtotalCanceled()
62  - (abs($order->getBaseDiscountAmount()) - abs($order->getBaseDiscountCanceled()))
63  + ($order->getBaseTaxAmount() - $order->getBaseTaxCanceled())
64  ) * $order->getBaseToGlobalRate();
65  }
66 
73  private function getTotalAmountActual(\Magento\Sales\Model\Order $order)
74  {
75  return (
76  $order->getBaseSubtotalInvoiced() - $order->getSubtotalRefunded()
77  - abs($order->getBaseDiscountInvoiced()) - abs($order->getBaseDiscountRefunded())
78  + $order->getBaseTaxInvoiced() - $order->getBaseTaxRefunded()
79  ) * $order->getBaseToGlobalRate();
80  }
81 
85  public function orderParamsDataProvider()
86  {
87  return [
88  [
89  [
90  'base_discount_amount' => 98.80,
91  'base_subtotal' => 494,
92  'base_tax_amount' => 8.8,
93  'base_subtotal_invoiced' => 494,
94  'base_discount_invoiced' => 98.80,
95  'base_tax_invoiced' => 8.8
96  ]
97  ]
98  ];
99  }
100 }
$order
Definition: order.php:55
$reportResource
Definition: orders.php:11