public function testCalculateRequestValues_CorrectTotalAmount_WithRelativeDiscount_WithDifferentVatRatesPresent() { $config = SveaConfig::getDefaultConfig(); $order = \WebPay::createOrder($config); $order->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(100.0)->setVatPercent(25)->setQuantity(2))->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(100.0)->setVatPercent(6)->setQuantity(1))->addDiscount(\WebPayItem::relativeDiscount()->setDiscountPercent(25)); // follows HostedPayment calculateRequestValues() outline: $formatter = new HostedRowFormatter(); $request = array(); $request['rows'] = $formatter->formatRows($order); $request['amount'] = $formatter->formatTotalAmount($request['rows']); $request['totalVat'] = $formatter->formatTotalVat($request['rows']); // 5000*.25 = 1250 // 600*.25 = 150 // matches 1400 discount $this->assertEquals(26700, $request['amount']); // 35600 - 8900 discount $this->assertEquals(4200, $request['totalVat']); // 5600 - 1400 discount (= 10000/35600 *5600) discount }
public function test_RelativeDiscount_in_order_with_single_vat_rate_php_original_version() { $this->order->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(4.0)->setVatPercent(25)->setQuantity(1))->addOrderRow(\WebPayItem::orderRow()->setAmountIncVat(5.0)->setVatPercent(25)->setQuantity(1))->addOrderRow(\WebPayItem::orderRow()->setAmountExVat(4.0)->setAmountIncVat(5.0)->setQuantity(1))->addDiscount(\WebPayItem::relativeDiscount()->setDiscountId("r10")->setName("couponName")->setDescription("couponDesc")->setDiscountPercent(10)->setUnit("kr")); $formatter = new HostedRowFormatter(); $resultRows = $formatter->formatRows($this->order); $testedRow = $resultRows[3]; $this->assertEquals("r10", $testedRow->sku); $this->assertEquals("couponName", $testedRow->name); $this->assertEquals("couponDesc", $testedRow->description); $this->assertEquals(-150, $testedRow->amount); $this->assertEquals(-30, $testedRow->vat); }