public function test_add_new_notes_invoice()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountExVat(145.0)->setVatPercent(24)->setQuantity(1))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     $response = WebPayAdmin::updateOrder($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->setNotes($this->notes)->updateInvoiceOrder()->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($this->notes, $query2->notes);
     //print_r($orderResponse->sveaOrderId);
 }
 function test_AddOrderRows_addPaymentPlanOrderRows_multiple_rows_success()
 {
     $country = "SE";
     $order = TestUtil::createOrderWithoutOrderRows(TestUtil::createIndividualCustomer($country));
     $order->addOrderRow(TestUtil::createOrderRow(1000.0, 1));
     $orderResponse = $order->usePaymentPlanPayment(TestUtil::getGetPaymentPlanParamsForTesting())->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     $b_quantity = 1;
     $b_amountExVat = 100.0;
     $b_vatPercent = 12;
     $b_articleNumber = "1071e";
     $b_unit = "pcs.";
     $b_name = "B Name";
     $b_description = "B Description";
     $b_discount = 0;
     $addOrderRowsBuilder = new \Svea\AddOrderRowsBuilder(Svea\SveaConfig::getDefaultConfig());
     $addOrderRowsResponse = $addOrderRowsBuilder->setOrderId($orderResponse->sveaOrderId)->setCountryCode($country)->addOrderRow(TestUtil::createOrderRow(2.0, 1))->addOrderRow(WebPayItem::orderRow()->setQuantity($b_quantity)->setAmountExVat($b_amountExVat)->setVatPercent($b_vatPercent)->setArticleNumber($b_articleNumber)->setUnit($b_unit)->setName($b_name)->setDescription($b_description)->setDiscountPercent($b_discount))->addPaymentPlanOrderRows()->doRequest();
     $this->assertEquals(1, $addOrderRowsResponse->accepted);
     $createdOrderId = $orderResponse->sveaOrderId;
     ////print_r("test_AddOrderRows_addPaymentPlanOrderRows_multiple_rows_success: "); //print_r( $createdOrderId );
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $queryResponse = $queryOrderBuilder->queryPaymentPlanOrder()->doRequest();
     ////print_r( $queryResponse);
     $this->assertEquals(1, $queryResponse->accepted);
     // assert that order rows are the same
     $this->assertEquals($b_quantity, $queryResponse->numberedOrderRows[2]->quantity);
     $this->assertEquals($b_amountExVat, $queryResponse->numberedOrderRows[2]->amountExVat);
     $this->assertEquals($b_vatPercent, $queryResponse->numberedOrderRows[2]->vatPercent);
     $this->assertEquals($b_articleNumber, $queryResponse->numberedOrderRows[2]->articleNumber);
     $this->assertEquals($b_unit, $queryResponse->numberedOrderRows[2]->unit);
     $this->assertStringStartsWith($b_name, $queryResponse->numberedOrderRows[2]->description);
     $this->assertStringEndsWith($b_description, $queryResponse->numberedOrderRows[2]->description);
     $this->assertEquals($b_discount, $queryResponse->numberedOrderRows[2]->discountPercent);
     $this->assertEquals("NotDelivered", $queryResponse->numberedOrderRows[2]->status);
     $this->assertEquals(3, $queryResponse->numberedOrderRows[2]->rowNumber);
 }
 /**
  * test_manual_CancelOrderBuilderRows_Card_single_row_success_step_2
  * 
  * run this test manually after you've performed a direct bank transaction and have gotten the transaction details needed
  */
 function test_manual_CancelOrderBuilderRows_Card_multiple_rows_success_step_2()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('test_manual_CancelOrderBuilderRows_Card_single_row_success_step_2, step 2');
     // 1. remove (put in a comment) the above code to enable the test
     // 2. set $createdOrderId to the transactionid from the transaction log of the request done by following the url from step 1 above.
     // 3. below is an example of the xml generated by paypage for the request in step 1 above, along with the transaction id, for reference.
     $createdOrderId = 583620;
     $country = "SE";
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $queryResponse);
     // 2x100 @25 = 25000 (5000)
     // 1x100 @25 = 12500 (2500)
     // 1x100 @12 = 11200 (1200)
     // amount = 48700, vat = 8700
     $this->assertEquals(1, $queryResponse->accepted);
     $this->assertEquals(48700, $queryResponse->amount);
     $this->assertEquals(8700, $queryResponse->vat);
     $this->assertEquals(48700, $queryResponse->authorizedamount);
     // cancel second, third order row
     $cancelBuilder = new \Svea\CancelOrderRowsBuilder(Svea\SveaConfig::getDefaultConfig());
     $cancelOrderRowsBuilder = $cancelBuilder->setOrderId($createdOrderId)->setCountryCode($country)->setRowsToCancel(array(2, 3))->addNumberedOrderRows($queryResponse->numberedOrderRows);
     $cancelOrderRowsResponse = $cancelOrderRowsBuilder->cancelCardOrderRows()->doRequest();
     $this->assertEquals(1, $cancelOrderRowsResponse->accepted);
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $query2Response = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $query2Response);
     // 2x100 @25 = 25000 (5000)
     // 1x100 @25 = 12500 (2500)     <- credited
     // 1x100 @12 = 11200 (1200)     <- credited
     // amount = 48700-12500-11200, vat = 8700
     $this->assertEquals(1, $query2Response->accepted);
     $this->assertEquals(1, $query2Response->accepted);
     $this->assertEquals(48700, $query2Response->amount);
     $this->assertEquals(8700, $query2Response->vat);
     $this->assertEquals(25000, $query2Response->authorizedamount);
     $this->assertEquals("AUTHORIZED", $query2Response->status);
 }
 public function test_add_single_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::updateOrderRows($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->updateOrderRow(WebPayItem::numberedOrderRow()->setRowNumber(1)->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1))->updateInvoiceOrderRows()->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);
     //print_r($orderResponse->sveaOrderId);
 }
 /**
  * test_manual_queryOrder_queryDirectBank_order_step_2
  * 
  * run this test manually after you've performed a direct bank transaction and have gotten the transaction details needed
  */
 function test_manual_queryOrder_queryDirectBank_order_step_2()
 {
     // Stop here and mark this test as incomplete.
     //        $this->markTestIncomplete(
     //            'skeleton for test_manual_queryOrder_queryDirectBank_order_step_2, step 2'
     //        );
     // 1. remove (put in a comment) the above code to enable the test
     // 2. set $createdOrderId to the transactionid from the transaction log of the request done by following the url from step 1 above.
     // 3. below is an example of the xml generated by paypage for the request in step 1 above, along with the transaction id, for reference.
     $createdOrderId = 583556;
     // create order w/three rows (2xA, 1xB) (from step 1 above)
     $country = "SE";
     $a_quantity = 2;
     $a_amountExVat = 1000.0;
     $a_vatPercent = 25;
     $b_quantity = 1;
     $b_amountExVat = 100.0;
     $b_vatPercent = 12;
     $b_articleNumber = "Red 5";
     $b_unit = "pcs.";
     $b_name = "B Name";
     $b_description = "B Description";
     $b_discount = 0;
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $queryResponse = $queryOrderBuilder->queryDirectBankOrder()->doRequest();
     ////print_r( $queryResponse);
     $this->assertEquals(1, $queryResponse->accepted);
     //Svea\QueryTransactionResponse Object
     //(
     //    [transactionId] => 582656
     //    [customerrefno] => clientOrderNumber:2014-05-21T11:30:53 02:00
     //    [merchantid] => 1130
     //    [status] => SUCCESS
     //    [amount] => 261200
     //    [currency] => SEK
     //    [vat] => 51200
     //    [capturedamount] => 261200
     //    [authorizedamount] => 261200
     //    [created] => 2014-05-21 11:31:15.697
     //    [creditstatus] => CREDNONE
     //    [creditedamount] => 0
     //    [merchantresponsecode] => 0
     //    [paymentmethod] => DBNORDEASE
     //    [orderrows] => Array
     //        (
     //            [0] => Svea\OrderRow Object
     //                (
     //                    [articleNumber] =>
     //                    [quantity] => 2
     //                    [unit] =>
     //                    [amountExVat] => 1000
     //                    [amountIncVat] =>
     //                    [vatPercent] => 25
     //                    [name] =>
     //                    [description] =>
     //                    [discountPercent] =>
     //                    [vatDiscount] => 0
     //                )
     //
     //            [1] => Svea\OrderRow Object
     //                (
     //                    [articleNumber] => Red 5
     //                    [quantity] => 1
     //                    [unit] => pcs.
     //                    [amountExVat] => 100
     //                    [amountIncVat] =>
     //                    [vatPercent] => 12
     //                    [name] => B Name
     //                    [description] => B Description
     //                    [discountPercent] =>
     //                    [vatDiscount] => 0
     //                )
     //
     //        )
     //
     //    [accepted] => 1
     //    [resultcode] => 0
     //    [errormessage] =>
     //)
     // assert that order rows are the same
     $this->assertEquals($a_quantity, $queryResponse->numberedOrderRows[0]->quantity);
     $this->assertEquals($a_amountExVat, $queryResponse->numberedOrderRows[0]->amountExVat);
     $this->assertEquals($b_quantity, $queryResponse->numberedOrderRows[1]->quantity);
     $this->assertEquals($b_amountExVat, $queryResponse->numberedOrderRows[1]->amountExVat);
     $this->assertEquals($b_vatPercent, $queryResponse->numberedOrderRows[1]->vatPercent);
     $this->assertEquals($b_articleNumber, $queryResponse->numberedOrderRows[1]->articleNumber);
     $this->assertEquals($b_unit, $queryResponse->numberedOrderRows[1]->unit);
     $this->assertStringStartsWith($b_name, $queryResponse->numberedOrderRows[1]->name);
     $this->assertStringEndsWith($b_description, $queryResponse->numberedOrderRows[1]->description);
     $this->assertEquals($b_discount, $queryResponse->numberedOrderRows[1]->discountPercent);
 }
 function test_CreditOrderRows_creditCardOrderRows_addCreditOrderRow_setRowToCredit_exceeds_original_order_fails()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('first set up approved invoice and enter id in setUp()');
     // query orderrows to pass in creditOrderRows->setNumberedOrderRows()
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($this->successfulTransactionToTest)->setCountryCode($this->country);
     $queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $queryResponse );
     $this->assertEquals(1, $queryResponse->accepted);
     $creditOrderRowsBuilder = new Svea\CreditOrderRowsBuilder(Svea\SveaConfig::getDefaultConfig());
     $creditOrderRowsRequest = $creditOrderRowsBuilder->setOrderId($this->successfulTransactionToTest)->setCountryCode($this->country)->addNumberedOrderRows($queryResponse->numberedOrderRows)->setRowToCredit(5)->creditCardOrderRows();
     $creditOrderRowsResponse = $creditOrderRowsRequest->doRequest();
     //print_r("test_CreditOrderRows_creditCardOrderRows_addCreditOrderRow_setRowToCredit_exceeds_original_order_fails:\n");
     //print_r( $creditOrderRowsResponse );
     $this->assertEquals(0, $creditOrderRowsResponse->accepted);
     $this->assertEquals("119 (ILLEGAL_CREDITED_AMOUNT)", $creditOrderRowsResponse->resultcode);
 }
// To credit the order, we need its transactionid, which we received with the order request response and wrote to file.
$myTransactionId = file_get_contents("transactionid.txt");
if (!$myTransactionId) {
    echo "<pre>Error: transactionid.txt not found, first run cardorder_credit.php to set up the card order. aborting.";
    die;
}
$firstCreditOrderRowsBuilder->setOrderId($myTransactionId)->setCountryCode("SE");
$secondCreditOrderRowsBuilder = WebPayAdmin::creditOrderRows($myConfig);
$secondCreditOrderRowsBuilder->setOrderId($myTransactionId)->setCountryCode("SE");
// To credit specific order rows, you pass the order rows numbers you wish to credit using setRowsToCredit().
// For card orders, you also need to pass in the numbered order rows themselves using addNumberedOrderRows().
// You can use the WebPayAdmin::queryCardOrder() entrypoint method to get a copy of the original order rows sent to Svea.
// Note that these order rows does not update following a successful credit order rows request, even though the
// QueryTransactionResponse field creditedamount returned by a queryOrder request will reflect the current credit status.
//
$queryOrderBuilder = WebPayAdmin::queryOrder($myConfig)->setOrderId($myTransactionId)->setCountryCode("SE");
// query orderrows to pass in creditOrderRows->setNumberedOrderRows()
$queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
if (!$queryResponse->accepted) {
    echo "<pre>Error: queryOrder failed. aborting.";
    die;
}
// The query response holds an array of NumberedOrderRow containing the order rows as sent in the createOrder request
$myOriginalOrderRows = $queryResponse->numberedOrderRows;
// Put the numbered order row indexes into an array to pass to setRowsToCredit()
$myRowIndexesToCredit = range(1, count($myOriginalOrderRows));
// original order rows are 1-indexed and contains no gaps
// Add the indexes to credit and the order row data to the builder object.
$secondCreditOrderRowsBuilder->addNumberedOrderRows($myOriginalOrderRows)->setRowsToCredit($myRowIndexesToCredit);
// Send the credit request to Svea:
$myCreditRequest = $secondCreditOrderRowsBuilder->creditCardOrderRows();
Example #8
0
 /**
  * Builds the base queryOrder object
  *
  * @param Mage_Payment_Model_Info $payment
  * @param $transactionId
  * @return mixed
  */
 protected function _getQueryOrderRequest(Mage_Payment_Model_Info $payment, $transactionId)
 {
     $order = $payment->getOrder();
     $paymentMethodConfig = $this->getSveaStoreConfClass($order->getStoreId());
     $config = new SveaMageConfigProvider($paymentMethodConfig);
     $countryId = $order->getBillingAddress()->getCountryId();
     $request = WebPayAdmin::queryOrder($config)->setOrderId($transactionId)->setCountryCode($countryId);
     return $request;
 }
 public function test_manual_deliver_single_card_orderRow_of_confirmed_order_performs_loweramount_and_returns_ConfirmTransactionError()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('test_manual_deliver_single_card_orderRow_of_confirmed_order_performs_loweramount_and_returns_ConfirmTransactionError');
     // 1. go to https://test.sveaekonomi.se/webpay-admin/admin/start.xhtml
     // 2. go to verktyg -> betalning
     // 3. enter our test merchantid: 1130
     // 4. use the following xml, making sure to update to a unique customerrefno:
     //<paymentmethod>KORTCERT</paymentmethod><currency>EUR</currency><amount>600</amount><vat>120</vat><customerrefno>test_14105300920232</customerrefno><returnurl>https://test.sveaekonomi.se/webpay-admin/admin/merchantresponsetest.xhtml</returnurl><orderrows><row><name>A</name><amount>100</amount><vat>20</vat><description>rowA</description><quantity>1</quantity><sku>665</sku><unit>st</unit></row><row><name>B</name><amount>200</amount><vat>40</vat><description>rowB</description><quantity>1</quantity><sku>666</sku><unit>st</unit></row><row><name>C</name><amount>300</amount><vat>60</vat><description>rowA</description><quantity>1</quantity><sku>667</sku><unit>st</unit></row></orderrows>
     // 5. the result should be:
     //<response>
     //  <transaction id="586209">
     //    <paymentmethod>KORTCERT</paymentmethod>
     //    <merchantid>1130</merchantid>
     //    <customerrefno>test_1410530092038</customerrefno>
     //    <amount>600</amount>
     //    <currency>EUR</currency>
     //    <cardtype>VISA</cardtype>
     //    <maskedcardno>444433xxxxxx1100</maskedcardno>
     //    <expirymonth>01</expirymonth>
     //    <expiryyear>15</expiryyear>
     //    <authcode>763907</authcode>
     //  </transaction>
     //  <statuscode>0</statuscode>
     //</response>
     // 6. enter the received transaction id below and run the test
     // Set the below to match the transaction, then run the test.
     $transactionId = 586263;
     // confirm the transaction
     $confirmRequest = new \Svea\HostedService\ConfirmTransaction(Svea\SveaConfig::getDefaultConfig());
     $confirmRequest->transactionId = $transactionId;
     $confirmRequest->captureDate = date('c');
     $confirmRequest->countryCode = "SE";
     $confirmResponse = $confirmRequest->doRequest();
     ////print_r( $confirmResponse );
     $this->assertInstanceOf("Svea\\HostedService\\ConfirmTransactionResponse", $confirmResponse);
     $this->assertEquals(1, $confirmResponse->accepted);
     $queryRequest = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig());
     $queryResponse = $queryRequest->setCountryCode("SE")->setTransactionId($transactionId)->queryCardOrder()->doRequest();
     //print_r( $queryResponse );
     $this->assertEquals(1, $queryResponse->accepted);
     $this->assertEquals("CONFIRMED", $queryResponse->status);
     $deliverRequest = WebPayAdmin::deliverOrderRows(Svea\SveaConfig::getDefaultConfig());
     $deliverRequest->setCountryCode("SE")->setOrderId($transactionId);
     $deliverRequest->setRowToDeliver(1)->addNumberedOrderRows($queryResponse->numberedOrderRows);
     $deliverResponse = $deliverRequest->deliverCardOrderRows()->doRequest();
     //print_r( $deliverResponse );
     $this->assertInstanceOf("Svea\\HostedService\\ConfirmTransactionResponse", $deliverResponse);
     $this->assertEquals(0, $deliverResponse->accepted);
     $this->assertEquals("105 (ILLEGAL_TRANSACTIONSTATUS)", $deliverResponse->resultcode);
     // confirm of confirmed order
     $this->assertEquals("Invalid transaction status.", $deliverResponse->errormessage);
 }
 function test_orderRow_discountPercent_50_percent_order_sent_as_incvat()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountIncVat(125.0)->setVatPercent(25)->setQuantity(1)->setDiscountPercent(50))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     $this->assertEquals("62.50", $orderResponse->amount);
     // this is where
     $query = WebPayAdmin::queryOrder($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query->accepted);
     $this->assertEquals(125.0, $query->numberedOrderRows[0]->amountIncVat);
     $this->assertEquals(25.0, $query->numberedOrderRows[0]->vatPercent);
     $this->assertEquals(50.0, $query->numberedOrderRows[0]->discountPercent);
 }
 public function test_queryOrder_queryCardOrder_multiple_order_rows()
 {
     // created w/java package TODO make self-contained using webdriver to create card order
     $createdOrderId = 587679;
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode("SE");
     $queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $queryResponse);
     $this->assertEquals(1, $queryResponse->accepted);
     $this->assertEquals(1, $queryResponse->numberedOrderRows[0]->rowNumber);
     $this->assertEquals(1.0, $queryResponse->numberedOrderRows[0]->quantity);
     $this->assertEquals(100.0, $queryResponse->numberedOrderRows[0]->amountExVat);
     $this->assertEquals(25, $queryResponse->numberedOrderRows[0]->vatPercent);
     $this->assertEquals("orderrow 1", $queryResponse->numberedOrderRows[0]->name);
     $this->assertEquals("description 1", $queryResponse->numberedOrderRows[0]->description);
     $this->assertEquals(2, $queryResponse->numberedOrderRows[1]->rowNumber);
     $this->assertEquals(1.0, $queryResponse->numberedOrderRows[1]->quantity);
     $this->assertEquals(100.0, $queryResponse->numberedOrderRows[1]->amountExVat);
     $this->assertEquals(25, $queryResponse->numberedOrderRows[1]->vatPercent);
     $this->assertEquals("orderrow 2", $queryResponse->numberedOrderRows[1]->name);
     $this->assertEquals("description 2", $queryResponse->numberedOrderRows[1]->description);
 }
 function test_orderrow_response_exvat()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountExVat(145.0)->setVatPercent(24)->setQuantity(1))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setCurrency("SEK")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $response = WebPayAdmin::queryOrder($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->queryInvoiceOrder()->doRequest();
     //print_r($response);
     $this->assertEquals(1, $response->accepted);
     $this->assertEquals(145.0, $response->numberedOrderRows[0]->amountExVat);
     $this->assertEquals(null, $response->numberedOrderRows[0]->amountIncVat);
 }
 public function test_credit_row_sent_inc_credit_sent_incandex()
 {
     // credit req. should not be resent, see backoffice logs
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderInfo = $this->get_orderInfo_sent_inc_vat(125.0, 25, 2);
     // query order and assert row totals
     $query = WebPayAdmin::queryOrder($config)->setOrderId($orderInfo->orderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query->accepted);
     $this->assertEquals(null, $query->numberedOrderRows[0]->amountExVat);
     $this->assertEquals("125", $query->numberedOrderRows[0]->amountIncVat);
     $this->assertEquals("25", $query->numberedOrderRows[0]->vatPercent);
     $this->assertEquals("2", $query->numberedOrderRows[0]->quantity);
     $creditOrder = WebPayAdmin::creditOrderRows($config)->setInvoiceId($orderInfo->invoiceId)->setInvoiceDistributionType(DistributionType::POST)->setCountryCode("SE")->addCreditOrderRow(WebPayItem::orderRow()->setAmountIncVat(20.0)->setAmountExVat(16.0)->setQuantity(1));
     $request = $creditOrder->creditInvoiceOrderRows()->prepareRequest();
     $this->assertEquals("20", $request->NewCreditInvoiceRows->enc_value[0]->enc_value->PricePerUnit->enc_value);
     $this->assertEquals("25", $request->NewCreditInvoiceRows->enc_value[0]->enc_value->VatPercent->enc_value);
     $this->assertEquals(true, $request->NewCreditInvoiceRows->enc_value[0]->enc_value->PriceIncludingVat->enc_value);
     $response = $creditOrder->creditInvoiceOrderRows()->doRequest();
     $this->assertEquals(1, $response->accepted);
     // query order and assert row totals
     $query2 = WebPayAdmin::queryOrder($config)->setOrderId($orderInfo->orderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query2->accepted);
     // NOTE the order row status/amount does not reflect that the corresponding invoice row has been credited
     // TODO implement queryInvoice and recurse invoices to get the current order row status
     $this->assertEquals(null, $query2->numberedOrderRows[0]->amountExVat);
     $this->assertEquals("125", $query2->numberedOrderRows[0]->amountIncVat);
     $this->assertEquals("25", $query2->numberedOrderRows[0]->vatPercent);
     $this->assertEquals("2", $query2->numberedOrderRows[0]->quantity);
     // nope, can't be seen in the order, only in backoffice in delivered invoice as cumulative discount amount
     // $this->assertEquals("-20.00", $query->numberedOrderRows[1]->amountExVat);
     // $this->assertEquals("25", $query->numberedOrderRows[1]->vatPercent);
 }
 public function test_queryOrder_queryDirectBankOrder_returns_QueryTransaction()
 {
     $queryOrder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig());
     $request = $queryOrder->queryDirectBankOrder();
     $this->assertInstanceOf("Svea\\HostedService\\QueryTransaction", $request);
 }