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());
     }
 }