youngguns-nl/moneybird_php_api

Get all invoices waar een invoice tussen staat met een onvolledige betaling geeft NULL

Closed this issue · 6 comments

Als je een lijst facturen ophaalt op de manier zoals beschreven in de wiki waar een factuur tussen staat met een onvolledige betaling (in ons geval was het factuurbedrag 80 en was er een betaling geregistreerd van 15) krijg je NULL terug:

$invoiceService = $moneyBirdConnector->getService('Invoice');
$invoices = $invoiceService->getAll();

In dit geval is $invoices dus NULL. Voor zover wij in de code hebben gekeken zit het probleem ergens in XmlMapper.php bij de functie fromXml. Na het uitvoeren van die functie in de functie fromXmlString is waarde die wordt teruggegeven NULL.

Met de info die je geeft kan ik het probleem niet reproduceren. Kun je me de XML versie van de factuur mailen?
https://.moneybird.nl/invoices/.xml

Bij deze, ik heb alle informatie er uit gehaald, ik hoop dat je hier voldoende aan hebt, anders hoor ik het graag!

[knip]

Ik kan het nog steeds niet reproduceren. Ik vermoed eerder dat er iets anders aan de hand is. Misschien dat je zelf nog wat verder kan zoeken naar het probleem.

Ik heb je XML weggehaald, er stond nog een e-mailadres van de klant in

We hadden geen payment method ingevuld bij de betaling en deze wordt in Payment\Abstract.php gecontroleerd of hij NULL is of in de array payment methods staat. In ons geval was de payment een lege string en kregen we een Payment_InvalidMethodException.

Voor nu hebben we zelf de code even aangepast om het te laten werken, misschien een goede suggestie? Regel 52 t/m 54:

if ($value !== null && $value !== "" && !in_array($value, $this->_paymentMethods)) {
    throw new Payment_InvalidMethodException('Invalid payment method: ' . $value);
}

Ik had hetzelfde probleem, zowel met een lege string "" als de method "reversal". Waarom zit deze check er op? Is het niet handiger om gewoon geen payment te zetten indien deze ongeldig is?

fixed in ac698af

De check zit er op om ongeldige requests richting Moneybird te voorkomen.