Alle releasenotes Alle releasenotes MplusKASSA API Service

Sorteer op invoertijdstip Filter op 'Vereist aandacht bij installatie' Filter op 'Uitgelicht' Start presentatie


  • Deze release is vervangen door v2.1.1.

    2.1.0
  • Attentie: Deze release is teruggetrokken vanwege een bug in de bugfix in payTableOrder in deze release.

    Vereist aandacht bij installatie
    1.7.7.4
  • Attentie: Deze release is teruggetrokken vanwege een probleem met het betalen van een splitsing.

    Vereist aandacht bij installatie
    1.7.7.3
  • Attentie: Deze release is teruggetrokken vanwege verkeerd ingevulde compatibilteit met databaseschema.

    Vereist aandacht bij installatie
    1.7.7.2
  • Attentie: Deze release is teruggetrokken vanwege verkeerd ingevulde compatibilteit met databaseschema.

    Vereist aandacht bij installatie
    1.7.7.1
  • Er is nu ook ondersteuning voor voorraadaantallen (quantity), klantensaldo's (balance) en kredietlimieten (creditLimit) hoger dan 2.147.483.647.

    2.1.1
  • Veel optimalisatie in het verwerken van orders en facturen. Dit zal de totale tijd die het kost om bijv. een tafelorder op te slaan verkorten.

    2.1.1
  • Het object Terminal bevat nu optioneel ook de eigenschappen terminalSoftwareName en terminalSoftwareVersion. Wanneer deze ingevuld worden bij de aanroep naar registerTerminal, dan wordt de inhoud van deze waarden geregistreerd bij de werkplek. Daarnaast wordt nu ook bijgehouden wanneer registerTerminal voor de laatste keer is aangeroepen.

    3.0.0
  • Bij het aanroepen van getProducts, getRelations en getEmployees en filterend op syncMarker worden de resultaten nu geretourneerd gesorteerd op syncMarker. Dit is iets dat je waarschijnlijk zelf ook al had moeten doen bij het verwerken.

    2.0.0
  • Als bij getProducts alle producten vanaf een bepaalde syncMarker worden opgevraagd, dan worden nu per product alle artikelen geretourneerd in de articleList, en niet meer alleen de artikelen vanaf de meegegeven syncMarker.

    2.0.0
  • getCashCountList vereist nu een WorkplaceYearNumber in plaats van een YearNumber als de derde, optionele parameter. Dit is zonder backwards-compatibility toegevoegd, omdat enkel een jaar en nummer niet uniek is voor alle kastellingen, en dus nooit goed is.

    1.8.8
  • De functie getArticleGroups retourneert nu per artikelgroep ook een lijst van alle productnummers die in die groep zitten.

    1.8.6
  • Versnelde implementatie van getReceipts toegevoegd.

    1.8.5
  • De functie payOrder met eigenschap prepay = TRUE ondersteunt nu ook een gedeeltelijke aanbetaling.

    1.8.6
  • Nieuwe functie setStock die een absolute waarde voor de voorraad accepteert.

    1.8.6
  • De parameter dataType van het object CustomField is nu optioneel. Bij het opsturen naar de API hoef je deze niet per se op te geven, want in de database is bekend welk type deze velden hebben.

    1.8.6
  • Het object Article bevat nu ook changeTimestamp en createTimestamp die respectievelijk aangeven wanneer een artikel voor de laatste keer is gewijzigd en wanneer het is aangemaakt.

    1.8.6
  • Als je geen productNumber meegeeft aan een aanroep van updateProduct, zal nu geprobeerd worden het juiste productNumber te bepalen aan de hand van de meegegeven articleNumbers.

    1.8.6
  • Het aantal kassabonnen dat getReceipts teruggeeft als je zoekt vanaf een bepaald syncMarker is nu ook configureerbaar via de parameter --sync_marker_limit. Standaardwaarde is 1000.

    1.7.7.8
  • getActiveEmployeeList() retourneert nu per medewerker ook de volgende autorisatie-opties: allowNextCourse, allowSplit en allowPay.

    1.8.2
  • Relation bevat nu ook de eigenschap relationCode waarmee het veld relatiecode van de relatiekaart ingelezen en gemanipuleerd kan worden. Maximale lengte van dit veld is 128 alfanumerieke karakters.

    1.8.2
  • Het Transaction object bevat nu ook de eigenschap extBranchId.

    1.8.2
  • Het VatGroup object bevat nu ook de eigenschap extBranchId.

    1.8.2
  • De Order, Invoice en Receipt objecten bevatten nu ook de volgende eigenschappen: entryExtBranchId en financialExtBranchId.

    1.8.2
  • Het Payment object in een paymentList bevat nu ook de eigenschappen entryTimestamp, branchNumber, extBranchId, workplaceNumber, employeeNumber en employeeName.

    1.8.2
  • getProducts() ondersteunt nu ook de onlyActive parameter. Wanneer deze op TRUE staat, worden alleen de actieve artikelen geretourneerd.

    1.8.2
  • getTerminalSettings() retourneert nu ook unknownTableAction. Deze eigenschap geeft aan wat er gedaan moet worden als er een onbekende tafel gekozen wordt.

    1.8.2
  • allowTableRetour toegevoegd aan EmployeeName

    1.8.2
  • Bij het aanroepen van getJournals(), getFinancialJournal() en getFinancialJournalByCashCount() wordt nu altijd opgeslagen welke data gediend heeft als bron voor het antwoord. Eventueel kan de aanvrager een eigen referentie meegeven.

    1.8.2
  • payInvoice() geeft nu goed aan als een betaling niet kan worden uitgevoerd omdat de gewenste betaalwijze is uitgeschakeld.

    1.8.2
  • Nieuwe functie requestTableOrderCourse() waarmee een gewenste gang voor een bepaalde tafel kan worden uitgevraagd.

    1.8.2
  • Nieuwe functie logMistake() die gebruikt kan worden om een foutaanslag op bijv. een handheld te registreren.

    1.8.2
  • Nieuwe functie getTableOrderCourseList() waarmee voor een bepaald filiaal- en tafelnummer de op dat moment aanwezige en uitgevraagde gangen kunnen worden opgevraagd.

    1.8.2
  • Gangen hebben nieuwe eigenschappen: sequenceNumber, isPresent en isRequested.

    1.8.2
  • Nieuwe functie getCardCategories waarmee de categorieën van de artikel-, relatie- en medewerkerkaarten opgevraagd kunnen worden. Bij relaties gaat het bijvoorbeeld om de categorieën "Klant" en "Leverancier".

    1.8.2
  • De BPE-informatie (Breuk/Promotie/Eigen gebruik) wordt nu ook aan artikelregels meegegeven. Zo kan er onderscheid gemaakt worden tussen echte korting en "korting" vanwege BPE. De gebruikte eigenschappen zijn bpeId (interne identificatie), bpeDescription (toonbare omschrijving), bpeAmount (bedrag incl. BTW), bpeAmountExcl (bedrag excl BTW).

    1.8.2
  • Nieuwe API-functie getWordAliases die ingestelde woordaliassen kan teruggeven. Kan bijvoorbeeld gebruikt worden om een woord altijd te vertalen naar een ander woord, zoals "Klant" naar "Gast".

    1.8.2
  • Bij het opvragen van factuurinformatie wordt nu ook evt. meegegeven of de factuur vergrendeld is (finalized) en wanneer (finalizedTimestamp).

    1.8.2
  • Bij het versturen van een bericht via sendMessage kan nu ook de sender en messageType worden meegegeven. Kies uit OK, INFO of WARNING.

    1.8.2
  • Bij het opvragen van een kastelling via getCashCountList wordt nu ook het rekeningnummer waarop het kasverschil wordt gestort teruggegeven via de parameter differenceAccountNumber. Ook wordt het rekeningnummer van de afstortrekening teruggegeven via de parameter depositAccountNumber.

    1.8.2
  • Je kunt nu ook de parameter sinceCashCountNumber invullen om alle kastellingen sinds een bepaalde kastelling op te vragen.

    1.8.2
  • De functie getJournals retourneert nu per betalingswijze ook het betalingswijzesoort, zoals: "BETAAL", "EFT", "TUSSEN", "AFSTORT", "BPE".

    1.8.2
  • De finalizeInvoices parameter kan worden toegevoegd aan een getInvoices aanvraag om de facturen die opgehaald zijn te vergrendelen. Gebruik dit wanneer de facturen eenmalig geëxporteerd dienen te worden naar een extern systeem, zoals een boekhoudpakket. Het voorkomt namelijk dat de factuur daarna nog verder gewijzigd kan worden in de kassa.

    1.8.2
  • Bij het opvragen van het versienummer van de API via getApiVersion wordt nu ook de ingestelde datum van de API-server teruggegeven via de parameter serverDate. Dit kan gebruikt worden om externe apparaten te synchroniseren met de server.

    1.8.2
  • Bij het opvragen van kastellingen via getCashCountList wordt nu ook de eerste en laatste id's van de achterliggende kassabonnen meegegeven, via de eigenschappen shiftFirstReceiptId en shiftLastReceiptId. Daarnaast bevat de eerste en laatste transactie (shiftFirstTransaction en shiftLastTransaction) nu ook het transactielabel via de eigenschap transactionString.

    1.8.2
  • Attentie: Deze release werkt wel met het juiste databaseschema, in tegenstelling tot de teruggetrokken v1.7.7.2 die per ongeluk op een versie te ver was uitgegeven.

    Vereist aandacht bij installatie
    1.7.7.5
  • De volgende objecten bevatten nu ook het extBranchId (externe referentie voor het filiaal): Branch, CashCount, Journal, FinancialGroup en Shift.

    1.8.2
  • De API-functie getEmployees kan nu ook worden gebruikt met een syncMarker. Lees de Sync Marker Tutorial (Engels) voor een uitgebreide uitleg.

    1.8.2
  • De API-functie getTurnoverGroups retourneert nu ook de ingestelde externe rekeningnummers per filiaal, via de lijst branchAccountNumberList.

    1.8.2
  • API-functies die werken met betaalwijzen per filiaal, zoals getFinancialJournal en getFinancialJournalByCashCount, retourneren nu ook het juiste rekeningnummer in het veld accountNumber als deze afwijkt van het standaard rekeningnummer.

    1.8.2
  • API-functies die werken met omzetgroepen per filiaal, zoals getFinancialJournal en getFinancialJournalByCashCount, retourneren nu ook het juiste rekeningnummer in het veld accountNumber als deze afwijkt van het standaard rekeningnummer.

    1.8.2
  • Wanneer een API-functie wordt gebruikt met klantvelden (zoals createProduct, createRelation of createEmployee) en de klantvelden zijn verplicht, maar deze worden niet meegegeven en hebben ook geen standaardwaarde, dan wordt er een duidelijke foutmelding teruggegeven.

    1.8.2
  • getFinancialJournal geeft nu ook aan of de periode waarover een financieel journaal is aangevraagd al officieel is afgesloten, door middel van het veld financialPeriodClosed. Het kan namelijk voorkomen dat een boekingsdag pas afloopt om 6 uur 's ochtends, in plaats van exact middernacht.

    1.8.2
  • Medewerkers kunnen nu ook per stuk opgehaald worden via getEmployee, daarnaast worden daarbij nu ook de klantvelden (de customFieldList) en de volgende standaardvelden meegegeven: syncMarker, changeTimestamp, createTimestamp, extraText, categoryId, personNumber.

    1.8.2
  • Dealers

    Bij het aanroepen van getRelations, getEmployees en getProducts wordt nu in het logboek getoond welke filters zijn toegepast, bijvoorbeeld: 000039cc 2016-06-30 12:03:59.974 INFO [main.requests]: Filtered on syncMarker groter of gelijk aan 338498

    2.0.0
  • Dealers

    Bij het opgeven van het opstartargument --debug moet je nu ook direct de locatie van het logbestand erachter zetten. Het debug-bestand wordt dus niet meer standaard naar logs/debug.txt weggeschreven.

    2.0.0
  • Dealers

    De API geeft nu elke tien minuten een statusmelding in het logbestand waarin staat op welke poort de API draait en òf en met welke database de API verbonden is.

    Voorbeelden:

    API Service running on port 18083 and connected to database qline@127.0.0.1

    API Service running on port 18083 and NOT connected to database qline@127.0.0.1

    1.8.8
  • Dealers

    Bij het afrekenen van een afsplitsing via payTableOrder werd de nieuwe bestelling met daarin de afsplitsing niet goed opgeslagen, waardoor de API een foutmelding teruggaf. Hier liep vooral de Android Kassa tegenaan.

    1.7.7.4
  • Dealers

    Bij het afrekenen van een afsplitsing via payTableOrder werd de nieuwe bestelling met daarin de afsplitsing niet goed opgeslagen, waardoor de API een foutmelding teruggaf. Hier liep vooral de Android Kassa tegenaan.

    1.8.2
  • Zoals ingesteld onder "Kassa > Tafels > Tafelomschrijving behouden" wordt de naam nu wel of niet bewaard na het afhandelen van de tafel.

    2.1.1
  • Het is nu mogelijk om bestellingen bestaande uit alleen maar tekstregels af te rekenen.

    3.0.0
  • De functies getRelations, getProducts, getEmployees, getOrders, getInvoices en getReceipts worden nu allemaal gelimiteerd door de ingestelde standaard --sync_marker_limit. Daarnaast is het ook mogelijk deze limiet te overschrijven tijdens de aanvraag door middel van de meegegeven syncMarkerLimit. Vanzelfsprekend werkt syncMarkerLimit alleen in combinatie met syncMarker.

    2.0.4
  • De functies getRelations, getProducts, getEmployees, getOrders, getInvoices en getReceipts worden nu allemaal gelimiteerd door de ingestelde --sync_marker_limit. Daarnaast is het ook mogelijk deze limiet te overschrijven tijdens de aanvraag door middel van de meegegeven syncMarkerLimit. Vanzelfsprekend werkt syncMarkerLimit alleen in combinatie met syncMarker.

    1.8.10
  • Versnelde implementatie van getReceipts, welke niet alleen veel sneller is dan de oude implementatie, maar ook een gelimiteerd aantal kassabonnen teruggeeft, om geheugenproblemen te voorkomen.

    1.7.7.7
  • getTableList() retourneert nu ook de informatie over de hoogst uitgevraagde gang van elke tafel, dit gebeurt via de eigenschappen courseNumber, courseName en courseAbbreviation.

    1.8.2
  • getJournals kan nu aangeroepen worden zonder filiaalfilter. In dat geval worden alle aanwezige filialen geretourneerd.

    1.8.2
  • Bij het aanmaken van een relatie wordt het meegegeven relationNumber nu ook gebruikt als relatienummer voor de nieuwe relatie, in plaats van het genereren van een nieuw relatienummer.

    1.7.7.6
  • Probleem opgelost dat soms optrad bij findRelation waardoor een relatie niet werd geretourneerd ook al bestond die wel.

    2.0.4
  • Elke imageList bevat nu (logischerwijs) niet meer de afbeeldingen die verwijderd zijn.

    2.1.2
  • Probleem opgelost uit v2.1.0 waardoor omzetgroepen altijd op 0 gezet werden als ze niet geconfigureerd waren onder Beheer.

    2.1.1
  • Probleem opgelost uit v2.1.0 met het opslaan van verkooporders.

    2.1.1
  • Probleem opgelost waardoor de imageList van een article soms meerdere keren dezelfde afbeelding bevatte.

    2.1.1
  • Probleem opgelost bij bereidingswijzen die een artikelnummer hoger dan 2.147.483.647 hebben.

    2.1.1
  • Probleem opgelost waardoor overboekingen van betaalwijzen niet goed in de dagtotalen werden teruggegeven. Dit had invloed op getJournals.

    1.8.12
  • Zowel bij getInvoices als getReceipts kwam het probleem naar voren dat als je een syncMarker hoger dan de hoogste waarde in de database meegaf, hij het hele syncMarker filter negeerde en gewoon weer van voren af aan begon met de resultaten.

    1.8.12
  • Probleem opgelost waardoor overboekingen van betaalwijzen niet goed in de dagtotalen werden teruggegeven. Dit had invloed op getJournals.

    2.0.6
  • Zowel bij getInvoices als getReceipts kwam het probleem naar voren dat als je een syncMarker hoger dan de hoogste waarde in de database meegaf, hij het hele syncMarker filter negeerde en gewoon weer van voren af aan begon met de resultaten.

    2.0.5
  • Via de eigenschap active en de functie updateProduct kan aangegeven worden of een artikel op actief of niet-actief moet staan.

    1.8.8
  • Een fout opgelost in de API-functies updateProduct, updateRelation en updateEmployee die recentelijk geïntroduceerd was.

    1.8.8
  • createProduct en updateProduct verwerken nu goed de customFieldList.

    1.8.4
  • Bij het volledig verplaatsen van een tafel via de API functie moveTableOrder wordt nu ook zoals verwacht de verplaatsbon afgedrukt op elke printerlocatie waarvan artikelen in de tafelbestelling aanwezig zijn.

    1.8.8
  • Na het uitvoeren van updateOrder was het mogelijk dat de API probeerde een printopdracht te genereren voor het afdrukken van de order. Hierbij werd echter het verkeerde id meegegeven aan de printopdracht, waardoor updateOrder met een exceptie tot stilstand kwam.

    1.8.2
  • Kortingspercentage werd per ongeluk ook omgekeerd bij het opslaan van een tegenboeking. Dit gaf problemen in bijv. totaalberekening van een regel.

    1.8.2
  • Negatieve decimale aantallen werden niet correct doorgegeven. Elk aantal werd afgerond doorgegeven.

    1.8.2
  • Bij het uitvoeren van getJournals met een filter op kassabonnen of facturen worden de lijst met betaalwijzen (paymentList) en BTW-groepen (vatGroupList) nu ook correct gefilterd.

    1.8.2
  • Bij het splitsen van een tafel via de API-functie moveTableOrder (welke vooral door de handheld gebruikt wordt), werd het werkpleknummer van de transactie altijd naar F1W1 gezet, in plaats van het werkpleknummer van de handheld. Dit veroorzaakte een synchronisatiefout in het geval van een Master/Slave-opstelling met meerdere Slaves.

    1.7.7.5
  • Dealers

    Probleem opgelost dat wellicht de oorzaak was van vastlopers zonder duidelijke oorzaak.

    Hier en daar werden in de onderliggende libraries foutdialogen getoond als er een query-fout optrad. Dit kon ervoor zorgen dat de API ogenschijnlijk zonder oorzaak vastliep, maar eigenlijk kwam dit doordat er een onzichtbaar dialoog moest worden weggeklikt. De onzichtbaarheid van dit dialoog maakte dit natuurlijk een grote uitdaging.

    1.8.9
  • Dealers

    Probleem opgelost dat wellicht de oorzaak was van vastlopers zonder duidelijke oorzaak.

    Hier en daar werden in de onderliggende libraries foutdialogen getoond als er een query-fout optrad. Dit kon ervoor zorgen dat de API ogenschijnlijk zonder oorzaak vastliep, maar eigenlijk kwam dit doordat er een onzichtbaar dialoog moest worden weggeklikt. De onzichtbaarheid van dit dialoog maakte dit natuurlijk een grote uitdaging.

    2.0.1
  • Dealers

    Bij het aanbetalen van een order via payTableOrder was het mogelijk dat de order van de tafel gehaald werd. Dit was een bug veroorzaakt door een eerdere bugfix in v1.7.7.4.

    Vereist aandacht bij installatie
    1.7.7.5