Ik was vandaag bezig met het verwerken van enige betalingen van mijn facturatie systeem Client Exec, waarbij ik een eigen output systeem (.pdf) gemaakt heb. Nu kwam ik iets geks tegen.
Bij sommige facturen (als het aantal centen > 70 is, geloof ik) rond het systeem het verkeerd af. Al zie ik op dit moment niet in hoe dat komt, omdat het allemaal basis functies zijn.
Ik denk persoonlijk niet dat het aan mij ligt meer, maar dat er iets met PHP aan de hand is.
Als voorbeeld heb ik een factuur genomen:
Subtotaal = € 462,50
Iedereen weet dus dat je de btw hiervan kan uitrekenen door subtotaal * 0,19 (19% is btw percentage hier), daar komt dus uit 87,875 op mijn rekenmachine.
PHP daarentegen weet het heel anders te doen; PHP komt namelijk uit op 87,78 (afgerond dmv number_format()).
Wat doe ik hier verkeerd ?
Ik kan ook niet het tarief met 10 cent ophogen, omdat het niet bij iedere factuur zo is.
Mijn code:
Hierbij is $tSubTotaal het subtotaal van 462,50. De $tempInvoice variabele vraagt aan ClientExec het BTW percentage aan, doordat dit niet overal hetzelfde is.
Ik moet eerlijk zeggen dat ik het nut van de 2e regel hier niet inzie, maar het resultaat is hetzelfde zonder deze regel.
Ik weet dat ik erg graag haakjes gebruik, maar dat zou geen probleem moeten zijn.
Wat ook gek is, is dat het bedrag wel klopt bij het eind totaal, maar dat komt doordat die het weer direct vanuit de db trekt met de variabele '$tempInvoice->getPrice()'
Wat gaat er hier verkeerd ?
Wie kan mij helpen ?
Het is nogal vervelend hier achter te komen tijdens het bijwerken van het orderboek...
Bij sommige facturen (als het aantal centen > 70 is, geloof ik) rond het systeem het verkeerd af. Al zie ik op dit moment niet in hoe dat komt, omdat het allemaal basis functies zijn.
Ik denk persoonlijk niet dat het aan mij ligt meer, maar dat er iets met PHP aan de hand is.
Als voorbeeld heb ik een factuur genomen:
Subtotaal = € 462,50
Iedereen weet dus dat je de btw hiervan kan uitrekenen door subtotaal * 0,19 (19% is btw percentage hier), daar komt dus uit 87,875 op mijn rekenmachine.
PHP daarentegen weet het heel anders te doen; PHP komt namelijk uit op 87,78 (afgerond dmv number_format()).
Wat doe ik hier verkeerd ?
Ik kan ook niet het tarief met 10 cent ophogen, omdat het niet bij iedere factuur zo is.
Mijn code:
PHP:
1
2
3
| $tTaxTotal = (($tSubTotal*($tempInvoice->GetTax()/100))); $tTaxTotal = sprintf("%.2f", $tTaxTotal); $tTaxTotal = number_format($tTaxTotal, 2, ',', '.'); |
Hierbij is $tSubTotaal het subtotaal van 462,50. De $tempInvoice variabele vraagt aan ClientExec het BTW percentage aan, doordat dit niet overal hetzelfde is.
Ik moet eerlijk zeggen dat ik het nut van de 2e regel hier niet inzie, maar het resultaat is hetzelfde zonder deze regel.
Ik weet dat ik erg graag haakjes gebruik, maar dat zou geen probleem moeten zijn.
Wat ook gek is, is dat het bedrag wel klopt bij het eind totaal, maar dat komt doordat die het weer direct vanuit de db trekt met de variabele '$tempInvoice->getPrice()'
Wat gaat er hier verkeerd ?
Wie kan mij helpen ?
Het is nogal vervelend hier achter te komen tijdens het bijwerken van het orderboek...