Zoals gevraagd vind u hier de de code die gebruikt word om de aankoopfacturen op te vragen. Dit staat ondertussen al meer dan 3 jaar in productie zonder problemen, alles is begonnen wanneer we een nieuw boekjaar (2021) hebben aangemaakt.
PurchaseModule.cs
Hier worden de HTTP requests afgehandeld en word FindPurchaseById
aangesproken om de aankoop factuur op te halen.
Purchase.cs
Het purchase model.
SDK.cs
Hier bevind zich de methode FindPurchaseById
.
Indien nodig kan ik nog enkele andere classes toevoegen aan dit document die gebruikt worden voor authenticatie en om het project te bootstrappen, maar deze lijken mij hier overbodig.
Een factuur opvragen uit het nieuwe boekjaar (AKP1, doc_num 26) werkt perfect.
curl https://d3venice.3d-apps.be/venice/purchases/2021/AKP1/26
{
"doc_num":26,
"sup_num":197,
"sys_num":"319",
"book":"AKP1",
"exp_date":"1/19/2021 12:00:00 AM",
"doc_date":"1/9/2021 12:00:00 AM",
"book_date":"1/31/2021 12:00:00 AM",
"is_ticked":true,
"doc_type":0,
"remark":"",
"totalDocC":-185.51,
"tsm_num":"710145418788",
"vat_0":0.0,
"vat_6":0.0,
"vat_12":0.0,
"normalDetail4DocC":-153.31,
"vatDedInvNormDocC":-32.2,
"reference":"",
"baseNormalDocC":-153.31,
"baseIcServicesDocC":0.0,
"vatDueInvIcDocC":0.0,
"vatDueCreNormDocC":0.0,
"pdf":null,
"pdfName":null,
"details":null
}
Een aankoop factuur opvragen uit 2020 dat niet overgedragen is naar 2021. Hier ziet u dat alle waardes terugkomen als 0 of als null.
curl https://d3venice.3d-apps.be/venice/purchases/2020/AKP09/40
[
"doc_num" => 0,
"sup_num" => 0,
"sys_num" => null,
"book" => null,
"exp_date" => null,
"doc_date" => null,
"book_date" => null,
"is_ticked" => false,
"doc_type" => 0,
"remark" => null,
"totalDocC" => 0.0,
"tsm_num" => null,
"vat_0" => 0.0,
"vat_6" => 0.0,
"vat_12" => 0.0,
"normalDetail4DocC" => 0.0,
"vatDedInvNormDocC" => 0.0,
"reference" => null,
"baseNormalDocC" => 0.0,
"baseIcServicesDocC" => 0.0,
"vatDueInvIcDocC" => 0.0,
"vatDueCreNormDocC" => 0.0,
"pdf" => null,
"pdfName" => null,
"details" => null,
]
Als ik hetzelfde factuur opvraag uit onze testomgeving voor het nieuwe boekjaar is aangemaakt komt dit wel juist terug, nadat ik een nieuw boekjaar aanmaak faalt het terug. Als ik een backup uit productie gebruik nadat 2021 is aangemaakt, de named database
schrap en opnieuw aanmaak, dan komt dit factuur ook juist terug. Doe ik deze stappen in productie lost dit niets op. (Laurent heeft dit ook geprobeerd na enkele SQL errors)
Als ik een factuur opvraag in de gui van Venice of via een query in PSQL word de data gevonden. Het probleem doet zich enkel voor bij het opvragen van het factuur via de SDK.
Het enige grote verschil tussen de testomgeving en productie omgeving is dat de PSQL versie verschilt. (v14 test, v11 prod)
Hieruit concludeer ik dat er echt iets mis is met de data in onze Venice installatie na het aanmaken van het nieuwe boejaar, we zitten hier al weken op te zoeken zonder enig resultaat. Indien nodig kan ik enkele test cases opmaken die het probleem zeer duidelijk illustreren met een demonstratie van wat er hier is uitgelegd.
UPDATE:
In de testomgeving waren de problemen met aankoopfacturen initieel ook met de backup uit productie. ODBC gaf de melding de huidige inhoud van de named database kon niet bepaald worden
. Na het schrappen van de named database en het opnieuw aanmaken was dit opgelost. Als ik het dossier verwijder en de backup terugplaats is komen de aankoopfacturen nog juist terug.
Als venice volledig word verwijderd en opnieuw word geinstalleerd geeft ODBC terug de melding de huidige inhoud van de named database kon niet bepaald worden
, maar de aankoopfacturen komen wel juist terug. De problematiek valt niet meer te hercreeeren in de testomgeving...