Let op: In deze release wordt de versie van het API protocol geüpdate naar 1.0.0. Controleer de compatibiliteit van uw koppeling.
Het is nu mogelijk om de componenten van een samengesteld artikel uit te lezen, via de componentArticleList
. Het hoofdartikel zelf is ook altijd toegevoegd aan deze componentenlijst. Houd er rekening mee dat het BTW-percentage van de componenten van elkaar kan afwijken. Als dat zo is zal het hoofdartikel ook geen vatCode
bevatten, omdat je in dat geval naar de vatCode
's van de componenten moet kijken.
De prijs van het hoofdartikel bevat reeds de prijs van de componenten, dus bestaande koppelingen zullen zoveel mogelijk zoals verwacht blijven werken.
Bij het bestellen van een samengesteld artikel worden de componenten automatisch aan de order of factuur toegevoegd.
O.a. de functie getProducts
werkt niet goed.
Vereist minimaal Windows XP SP3.
Als er via de API al samengestelde artikelen aan een regel zijn toegevoegd, dan zullen die niet nogmaals door de API worden toegevoegd. Hiermee voorkomen we situaties waarin zowel de API samengestelde artikelen definieert, als dat deze ook worden toegevoegd omdat ze in Mplus ook op de artikelkaart staan.
Dit lost het probleem met EasyReservation op, die gebruik maakt van samengestelde artikelen voor het netjes doorgeven van arrangementen.
Probleem opgelost waardoor bereidingswijzen zonder gekoppeld artikel (dus alleen met een knoptekst) allemaal als één artikel werden doorgegeven.
Deze bug was veroorzaakt door de wijzigingen van http://mpluskassa.nl/qline/releasenotes/releases/details/1.6.7/2?releasenote=1694#releasenote-1694
Bij het inlezen van de artikelen op de snelknoppen via getArticlesInLayout
wordt nu een extra waarde (buttonText
) meegegeven aan de bereidingswijzen waarin de knoptekst staat. De waarde in name
bevat nu altijd de bontekst/omschrijving van de artikelkaart.
Dit lost een probleem op waarbij bereidingswijzen afgedrukt worden met hun knoptekst in plaats van hun bontekst.
Indien een BTW-percentage voor een bepaalde BTW-code niet goed is geconfigureerd in Mplus geeft de API nu de volgende foutmelding: The rate for VAT-code 2 is not properly configured. Please contact API support at dev@mpluskassa.nl.
Hiermee voorkomen we dat mensen dit over het hoofd zien en klakkeloos foute of ontbrekende BTW-percentages worden overgenomen door API-ontwikkelaars.
Verbeterd geheugengebruik.
Aanpassing in updateProduct
zodat artikeluitvoeringen eerst worden gewist en dan opnieuw aangemaakt, waardoor een databasefout wordt voorkomen.
Wanneer een tafelorder wordt afgerekend in de kassa, dan is het nu niet meer mogelijk om dezelfde order te openen, wijzigen of af te rekenen. Dit geldt alleen als de order in het betaalproces zit, dus bijv. tijdens de pintransactie. Dit geldt dus niet voor het afrekenscherm, op dat moment zijn wijzigingen nog gewoon mogelijk, die worden automatisch op de kassa gezien en doorgevoerd.
Bij het ophalen, invoeren en bewerken van relaties kan nu gewerkt worden met klantvelden (de customFieldList
) en de volgende standaardvelden: createTimestamp
, bankAccountNumber
, creditLimit
, paymentWithinDays
, vatNumber
, commerceNumber
, extraText
, defaultVatMethod
, neverPrintOrEmailReceipt
, alwaysPrintReceipt
, alwaysPrintLargeFormatReceipt
, alwaysEmailReceipt
, condenseCombinedInvoice
.
Wanneer de klant gebruik maakt van een Master/Slave opstelling is het nu mogelijk om een wachttijd in te stellen waarin de functie saveOrder
zal wachten totdat de Slave een filiaalorder heeft gesynchroniseerd. Standaard staat deze wachttijd op 0 seconden. In dat geval wordt er helemaal niet gewacht wordt. Er is ook een bovenlimiet van 5 minuten.
Aan het resultaat kun je aflezen of de order al naar de Slave gesynchroniseerd is. Als de parameter orderQueued
op TRUE
staat, moet de order nog gesynchroniseerd worden, als deze op FALSE
staat is hij al gesynchroniseerd en kun je ervan uitgaan dat de Slave de order ontvangen heeft.
De functionaliteit van queueBranchOrder
is nu gecombineerd met saveOrder
. De API-ontwikkelaar hoeft er daardoor niet meer voor te zorgen of de juiste functie wordt aangeroepen afhankelijk van of de kassa wel of niet een slave-kassa is. Indien de order in de wachtrij voor een slave-kassa geplaatst is, zal er een speciaal vlaggetje orderQueued
op TRUE
gezet worden.
Indien er een foutmelding terugkomt waarin staat dat de gebruiker van de API contact op moet nemen met API Support staat daar nu ook het juiste e-mailadres in, namelijk dev@mpluskassa.nl
.
Een aantal parameters van Line
zijn optioneel gemaakt, namelijk: lineId
, employeeNumber
, pluNumber
, en lineType
. Bij het weglaten van deze parameters worden de standaardwaardes van het bijbehorende artikel gebruikt.
Nieuwe functie queueBranchOrder
toegevoegd om filiaalorders toe te voegen op een API die aan een master/slave-configuratie gekoppeld zit.
Het is nu mogelijk om via payOrder
een aanbetaling van een verkooporder ongedaan te maken. Dit is mogelijk door het doen van een aanbetaling met het exacte negatieve bedrag.
Een aantal parameters van LineData
zijn optioneel gemaakt, namelijk: turnoverGroup
, vatCode
, vatPercentage
, pricePerQuantity
en siUnit
. Bij het weglaten van deze parameters worden de standaardwaardes van het bijbehorende artikel gebruikt.
Bij het beheren van orders via de API wordt nu ook gekeken naar vatCode
en turnoverGroup
voor eventueel afwijkende waarden. Houd hier rekening mee met het aanmaken en bijwerken van orders via de API.
Nieuwe functie getCurrentSyncMarkers
die de meest recente waardes van de verschillende syncMarker
s retourneert.
getReceipts
en getInvoices
retourneren nu ook de volgende artikeleigenschappen: supplierRelationNumber
(relatienummer leverancier), supplierRelationName
(naam leverancier) en supplierArticleNumber
(artikelnummer leverancier). Het is ook mogelijk om te filteren op relatienummer leverancier door middel van supplierRelationNumbers
.
De functie getFinancialJournalByCashCount
werkt nu weer. Deze was een tijdje uitgeschakeld omdat kastellingen tegenwoordig ook voor meerdere werkplekken tegelijk kunnen gelden, en de implementatie in de API service was daar nog niet op aangepast. De functie is nu ook verbeterd, omdat nu ook echt alleen het financiaal journaal van het filiaal waarop de telling betrekking had geretourneerd wordt.
getRelations
bevat nu een categoryId
filter.
Het is nu mogelijk een lijst van geconfigureerde salesprijzen op te vragen met de functie getSalesPriceList
.
Nieuwe functie: getPriceGroupList
. Retourneert een lijst van alle geconfigureerde prijsgroepen.
Bugfix bij updateProducts
waardoor je per keer maar één nieuw artikel kon toevoegen in een product.
Bij het opvragen van de omzetgroepen via getTurnoverGroups
worden nu ook de omzetgroepen teruggegeven die niet zijn geconfigureerd, maar al wel gebruikt zijn bij artikelen.
De service draait nu ook als er geen databaseverbinding is. In dat geval zal er bij elke aanvraag direct een SoapFault
worden geretourneerd waarin staat dat er geen databaseverbinding is. Mocht de database weer bereikbaar zijn, dan zal de API automatisch weer verbinding maken bij de volgende aanvraag.
Als van een artikel de inclusief prijs (priceIncl
) wel is ingevuld, maar de exclusief prijs (priceExcl
) niet, dan wordt deze nu ingevuld op basis van het BTW-percentage. Andersom geldt dit ook.
Indien ingevuld wordt het aantal gasten nu ook meegegeven bij een tafelorder, via de eigenschap numberOfGuests
. Het is ook mogelijk het aantal gasten te wijzigen via deze eigenschap.
Het is nu mogelijk om de prijsgroepen van artikelen uit te lezen. Hiervoor wordt de parameter priceGroupList
gebruikt.
Om te weten of een klant in aanmerking komt voor een bepaalde prijsgroep kun je gebruik maken van de parameter priceGroupNumber
die je ontvangt als je relaties opvraagt via bijv. getRelations
.
Bij het wijzigen van een factuur (via saveInvoice
of updateInvoice
) wordt niet meer alleen gekeken naar gewijzigde regels, maar ook naar wijzigingen in andere eigenschappen, zoals bijv. de klant (relationNumber
).
Bij een order kan nu ook een aflevertijdstip meegegeven worden, hiervoor zijn twee parameters te gebruiken: deliveryPeriodBegin
en deliveryPeriodEnd
. Door beide in te vullen kun je een periode definiëren waarbinnen de order afgeleverd dient te worden.
Als bij een betaling (via bijv. payOrder
, payInvoice
en payTableOrder
) een financialDate
wordt ingevuld die afwijkt van de huidige boekdag, dan wordt deze nu wel gebruikt in plaats van genegeerd.
Aan de imageList
in getProducts
wordt nu ook direct de imageUrl
en thumbUrl
toegevoegd, als die bekend zijn.
Het is nu mogelijk om via createProduct
en updateProduct
ook de klantvelden te wijzigen via het meegeven van de parameter customFieldList
.
Nieuwe functie updateTurnoverGroups
waarmee de omzetgroepen bijgewerkt kunnen worden.
Met de functies createProduct
en updateProduct
is het nu mogelijk om de categorie van een artikel te wijzigen via de eigenschap categoryId
.
Het certificaat op https://api.mpluskassa.nl is verlengd omdat het deze maand af zou lopen. Het nieuwe certificaat is weer geldig t/m 2018.
De functie getProducts
geeft nu ook per artikel een lijstje van bereidingswijzen terug.
Via de eigenschap active
en de functie updateRelation
kan aangegeven worden of een relatie op actief of niet-actief moet staan.
Bij het aanmaken of bijwerken van een order kun je nu ook de bezorgdatum opgeven via deliveryDate
.
Als payInvoice
wordt aangeroepen met een betaalwijze die nog niet in Mplus bestaat, dan wordt dat nu met een duidelijke foutmelding via de API aangegeven.
Nieuwe functie adjustPoints
voor het bijwerken van spaarpunten van een relatie.
Nieuwe functie printTableReceipt
om de tussenbon van een tafel af te drukken.
Compatibiliteit met het nieuwe databaseschema (1.22.0
) toegevoegd.
Nieuwe functie adjustPoints
voor het bijwerken van spaarpunten van een relatie.
Deze functie bleek per ongeluk nog gedeactiveerd te zijn in deze release. Update naar de nieuwste versie van de API om deze functie wel te kunnen gebruiken.
Bij het aanroepen van updateProduct worden nu ook de aangemaakte en bijgewerkte artikelnummers teruggegeven. Dit wordt gedaan via resp. de parameter newArticleNumbers
en existingArticleNumbers
.
Bij het aanroepen van createProduct
worden nu ook de aangemaakte artikelnummers teruggegeven, in plaats van alleen het aangemaakte productnummer. Dit wordt gedaan via de parameter articleNumbers
.
Bij het aanmaken of bijwerken van een relatie via resp. createRelation
en updateRelation
wordt de aangemaakt relatie nu altijd automatisch in de categorie "Klant" geplaatst.
Nieuwe functie payInvoice
om facturen af te rekenen.
Compatibiliteit met Q-line schema 1.20.0.
Bij het opslaan van een tafelorder (via saveTableOrder
) kan nu ook een tableDescription
worden meegegeven die wordt gebruikt als beschrijving van de tafel en getoond wordt naast of ipv. het tafelnummer in de kassa.
Nieuwe API-functie getDatabaseVersion
. Retourneert het versienummer van het databaseschema in formaat major
, minor
, revision
.
Verbeterde logging in het geval van bepaalde foutmeldingen.
Dit is een speciale bugfix release, die de volgende problemen oplost:
Het zipbestand met daarin het installatiescript voor de Mplus API Service is aangepast.
Je moet nu vòòr de eerste installatie een keuze maken tussen de configuratie voor 32-bits of 64-bits systemen.
install.bat
detecteert automatisch of de keuze gemaakt is en zal anders de volgende foutmelding tonen:
. ===================================================
.
. Installatie mislukt
. -------------------
.
. U moet nog de juiste winsw.xml kiezen.
. Hernoem winsw-x86.xml of winsw-x64.xml naar winsw.xml,
. afhankelijk van uw besturingssysteem.
.
. ===================================================
De controle op het versienummer van het databaseschema is gewijzigd, er wordt nu ook gekeken naar het revisienummer. Dat moet minimaal overeenkomen met het vereiste revisienummer.
Mogelijkheid om via het opstartargument --debug
een logbestand van alle communicatie weg te schrijven naar de locatie logs/debug.txt
. Heel geschikt voor het oplossen van problemen waarbij je graag wil weten wat er precies op SOAP/XML-niveau wordt verstuurd en ontvangen.
Bij het opstarten wordt nu de database waarmee verbonden wordt getoond in het logboek. Enkel de naam van de database en het hostadres, verder geen gebruikersnaam of wachtwoord.
Het aanmaken en bijwerken van producten via de API wordt nu via de standaard importfuncties gedaan, waardoor standaardwaardes e.d. van velden ook overgenomen en gecontroleerd worden.
Logboek uitgebreid: er wordt nu ook per request bijgehouden hoelang de database-queries geduurd hebben en hoeveel queries uitgevoerd werden.
Het is nu mogelijk om het pasnummer in te vullen en bij te werken via createRelation
en updateRelation
. Het veld heet cardNumber
.
Als er tijdens het afdrukken van een bon, verkooporder of andere printopdracht een fout optreedt, dan wordt nu niet meer de hele API-functie afgebroken met een exception
. De foutmelding die optrad tijdens het printen wordt in de errorMessage
parameter gezet, maar de rest van het resultaat van de functie is verder het normale resultaat alsof er geen printfout is opgetreden.
Dit geldt uiteraard niet voor functies die specifiek bedoeld zijn voor het printen van items, zoals printReceipt
en printTableReceipt
.
Geschikt gemaakt voor databaseschema 1.23.0.
createProduct
en updateProduct
vullen nu ook de kleur en maat in.
Probleem opgelost waardoor omzetgroepen met accenten en andere vreemde tekens in de naam niet konden worden opgevraagd.
Bij het bestellen van een order met daarin samengestelde artikelen werd de prijs van het samengestelde artikel niet goed berekend als het artikel oorspronkelijk geen samengestelde artikelen had, maar in de nieuwe order wel.
Probleem verholpen waardoor er weleens een cent te weining wisselgeld werd gegeven.
Waarschijnlijk probleem opgelost waardoor het betalen van tafels in bijzondere gevallen mislukte, zoals bij tafels waar aparte tekstregels opstonden.
Bij het opvragen van relaties wordt nu ook de eigenschappen active
, changeTimestamp
and syncMarker
goed ingevuld. Daarnaast is er ook een nieuw eigenschap, createTimestamp
.
Probleem opgelost in updateRelation
waardoor relaties niet goed konden worden bijgewerkt, o.a. wijzigen van de active
-parameter lukte niet goed.
Het was niet meer mogelijk om orderregels te verplaatsen naar een lege tafel via moveTableOrder
.
Indien er bij een order een regel met normale of BPE-korting wordt tegengeboekt, dan wordt de korting ook goed tegengeboekt, in plaats van verdubbeld.
getCurrentSyncMarkers
werkt nu ook als er van een bepaalde syncMarker
nog helemaal geen rijen zijn. Dan wordt er nu gewoon de waarde 0
teruggegeven.
Als je de financialDate
van een factuur invult wordt die ook daadwerkelijk gebruikt bij saveInvoice
(en createInvoice
en updateInvoice
).
Bij het uitlezen van de artikelen op de snelknoppen via getArticlesInLayout
wordt nu de bontekst gebruikt als de naam van het artikel Indien die niet is ingevuld wordt nog steeds teruggevallen op de omschrijving.
De parameter onlyWebshop
die kan worden meegegeven bij getProducts
wordt nu ook daadwerkelijk gecontroleerd en gebruikt. Als je deze waarde op TRUE
zet krijg je alleen de producten terug waarbij Webshop op 'Ja' staat.
Als bij het aanroepen van updateProduct
blijkt dat het meegegeven productnummer niet bestaat, dan komt nu de juiste foutmelding UPDATE_PRODUCT_RESULT_NOT_FOUND
terug, in plaats van het meer algemene UPDATE_PRODUCT_RESULT_FAILED
.
deliveryDate
wordt nu ook juist ingevuld als deze uitgevraagd wordt, door bijv. getOrder
, getOrders
of findOrder
.
Probleem opgelost waardoor soms de foutmelding "Werkplek is niet correct ingesteld." werd teruggegeven bij het aanmaken of bijwerken van een order.
Probleem opgelost bij createRelation
en updateRelation
betreffende actief
-waarde die als NULL
werd aangegeven.
MplusQservice 1.6.1 was niet helemaal goed gelukt, waardoor o.a. getProducts
niet goed werkte.
Probleem verholpen waardoor de API ongeldige XML terugstuurde als teksten in het bericht ongeldige tekens bevatten.
Bij het registeren van wisselgeld werd foutief gebruik gemaakt van de betaalwijze Contant
, terwijl dit CONTANT
moest zijn.
Registratie van tap-tick (taptik) werkt nu ook bij bestellingen die via de API service zijn toegevoegd.
Bij bepaalde storingen in het programma werd het programma niet netjes afgebroken, maar bleef het in een bevroren toestand staan. Evt. achterliggende databasetransacties zouden hierdoor nog steeds kunnen doorlopen en eventuele locks op tabellen in stand houden. Het programma wordt nu wel netjes afgebroken en daardoor automatisch herstart.
Ook zal het logboek nu veel meer kunnen melden over de locatie van de storing, zodat de achterliggende oorzaak ook kan worden opgelost.