public function test_add_row_multiple_times_as_incvat_mixed_with_exvat() { $orderrowArray[] = WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1); $orderrowArray[] = WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1); $orderrowArray[] = WebPayItem::orderRow()->setAmountIncVat(123.9876)->setVatPercent(24)->setQuantity(1); $config = Svea\SveaConfig::getDefaultConfig(); $request = WebPayAdmin::addOrderRows($config)->setOrderId('sveaOrderId')->setCountryCode('SE')->addOrderRow(WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1))->addOrderRow(WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setAmountIncVat(123.9876)->setQuantity(1))->addOrderRow(WebPayItem::orderRow()->setVatPercent(24)->setAmountIncVat(123.9876)->setQuantity(1))->addInvoiceOrderRows()->prepareRequest(); $this->assertEquals(99.98999999999999, $request->OrderRows->enc_value->enc_value[0]->enc_value->PricePerUnit->enc_value); $this->assertFalse($request->OrderRows->enc_value->enc_value[0]->enc_value->PriceIncludingVat->enc_value); $this->assertEquals(99.98999999999999, $request->OrderRows->enc_value->enc_value[1]->enc_value->PricePerUnit->enc_value); $this->assertFalse($request->OrderRows->enc_value->enc_value[1]->enc_value->PriceIncludingVat->enc_value); $this->assertEquals(99.98999999999999, $request->OrderRows->enc_value->enc_value[2]->enc_value->PricePerUnit->enc_value); $this->assertFalse($request->OrderRows->enc_value->enc_value[2]->enc_value->PriceIncludingVat->enc_value); }
public function test_addOrderRows_addPaymentPlanOrderRows_returns_AddOrderRowsRequest() { $addOrderRowsBuilder = WebPayAdmin::addOrderRows(Svea\SveaConfig::getDefaultConfig()); $request = $addOrderRowsBuilder->addPaymentPlanOrderRows(); $this->assertInstanceOf("Svea\\AdminService\\AddOrderRowsRequest", $request); }
public function test_add_multiple_orderRow_type_mismatch_created_inc_updated_ex() { $config = Svea\SveaConfig::getDefaultConfig(); $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountIncVat(123.9876)->setVatPercent(24)->setQuantity(1))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setCurrency("SEK")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest(); $this->assertEquals(1, $orderResponse->accepted); // query order and assert row totals $query = WebPayAdmin::queryOrder($config)->setOrderId($orderResponse->sveaOrderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest(); $this->assertEquals(1, $query->accepted); $this->assertEquals("123.99", $query->numberedOrderRows[0]->amountIncVat); // sent 123.9876 inc => 123.99 queried $this->assertEquals("24", $query->numberedOrderRows[0]->vatPercent); $response = WebPayAdmin::addOrderRows($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->addOrderRow(WebPayItem::numberedOrderRow()->setRowNumber(1)->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1))->addInvoiceOrderRows()->doRequest(); $this->assertEquals(1, $response->accepted); // query order and assert row totals $query2 = WebPayAdmin::queryOrder($config)->setOrderId($orderResponse->sveaOrderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest(); $this->assertEquals(1, $query2->accepted); $this->assertEquals("123.99", $query2->numberedOrderRows[0]->amountIncVat); // sent 99.99 ex * 1.24 => sent 123.9876 inc => 123.99 queried $this->assertEquals("24", $query2->numberedOrderRows[0]->vatPercent); $this->assertEquals("123.99", $query2->numberedOrderRows[1]->amountIncVat); // sent 99.99 ex * 1.24 => sent 123.9876 inc => 123.99 queried $this->assertEquals("24", $query2->numberedOrderRows[1]->vatPercent); }
public function test_addOrderRows_addPaymentPlanOrderRows_allows_orderRow_with_zero_amount() { $dummyorderid = 123456; $orderBuilder = WebPayAdmin::addOrderRows(Svea\SveaConfig::getDefaultConfig())->setOrderId($dummyorderid)->setCountryCode("SE")->addOrderRow(WebPayItem::orderRow()->setAmountExVat(0.0)->setVatPercent(0)->setQuantity(0)); try { $request = $orderBuilder->addPaymentPlanOrderRows()->prepareRequest(); } catch (Exception $e) { // fail on validation error $this->fail("Unexpected validation exception: " . $e->getMessage()); } }