De placeTableOrder
call geeft een foutmelding in de handheld als de instelling Aantal gasten verplicht
aan staat
placeTableOrder
ondersteunt nu het automatisch proberen te maken van menu's voor het nieuwe menu systeem. Wel moet daarvoor automaticNewMenus
aangezet worden, wat standaard uit staat. Aangeraden is om dit niet te gebruiken, maar menuId
en menuLinesId
te zetten op de regels.
Voor Android Handheld
getReceipts
en getInvoices
geven nu in hun resultaat terug van welke kassabon/factuur de eventuele creditering gemaakt is.
Zie ns__Receipt::creditedReceiptId
en ns__Invoice::creditedInvoiceId
Het is nu mogelijk om met findRelation
een relatie te zoeken op custom velden.
Het is nu mogelijk om aan placeTableOrder
en andere API calls die een order aanmaken/aanpassen een fooi/toeslag artikel toe te voegen. Het is de bedoeling dat dan alleen het artikelnummer en prijs van de fooi/toeslag ingevuld wordt. De overige regel waarden wordt automatisch door de API ingevuld.
Ondersteuning toegevoegd voor externalDiscount
die vanuit een webhook kan worden meegegeven.
Nieuwe instelling toegevoegd waarmee aangegeven kan worden of de filiaalspecifieke artikel omschrijving aangepast mag worden met de saveArticleBranchDeviations
call.
Als dit niet mag, zal de oude filiaalspecifieke omschrijving gebruikt worden, of zal er geen omschrijving gezet worden indien die er nog niet was.
API Service: getOrderHistory
: medewerker die betaling heeft gedaan toegevoegd
ns__Line
bevat nu ook retourReason
. Verkooptypen die retourneren ondersteunen vullen in hun calls retourReason
in.
getInvoices
geeft nu ook onderstaande velden terug:
- orderCategoryNumber
- creditedReason
- sessionId
Update 20-8-2024:
In de response van elke API call die een ns__Line
teruggeeft, wordt ns__Line::suppressDisposableComponent
en ns__Line::tempId
weglaten indien ze geen waarde hebben.
Nieuwe idempotente API call toegevoegd: createInvoiceFromPackingSlips
. Deze API call kan gebruikt worden om van één of meerdere pakbonnen een factuur te maken.
Het is nu mogelijk om proposalIds
of proposalNumbers
mee te geven aan getProposals
. Daarnaast bevat ns__Proposal
nu orderCategoryNumber
.
Twee nieuwe API calls: getMainTableList
en getSubTableList
. De calls kunnen gebruikt worden om een tafellijst op te bouwen, i.p.v. getTableListV3
te gebruiken. getMainTableList
geeft de hoofdtafels terug van het meegegeven filiaal met de absolute basis data. getSubTableList
geeft alle subtafels terug die afwijken van de standaard met hun specifieke data.
Nieuwe idempotente saveTodoListV2
die een todolijst zowel kan toevoegen (branchNumber
, category
en name
vereist) en als bijwerken (id
vereist).
Alle calls die een order retourneren, zoals getOrder(s) of findOrder, bevatten nu ook het "bestelnummer" dat ingevuld wordt door (tafel)bestelbonnen. In de API heet dit veld cateringOrderNumber
.
Nieuwe call linkGiftcardsToRelation
toegevoegd. Deze call kan gebruikt worden om een of meerdere cadeaupassen aan een relatie te koppelen.
Nieuwe functie payOrderV2
.
Deze is functioneel gelijk aan payOrder
, maar is idempotent waardoor je kunt garanderen dat de order maar één keer wordt aanbetaald, ook als je de request meerdere keren herhaalt.
Nieuwe functie createOrderV3
.
Deze is functioneel gelijk aan createOrderV2
, maar is idempotent waardoor je kunt garanderen dat de order maar één keer wordt aangemaakt, ook als je de request meerdere keren herhaalt.
Het is nu mogelijk om met getEmployeeAuthorizationGroups
de filiaal en filiaalgroep gekoppelde autorisatiegroepen los op te vragen. Doe dit door de optionele request parameter separateBranchesAndBranchGroups
op true te zetten.
Uitbreiding van getArticleVariants
. ArticleVariant
bevat nu een lijst van leveranciers (suppliers
) welke relationNumber
, isPreferredSupplier
en isPurchasable
bevatten.
Fix voor API request PayTableOrderV2: error: You're trying to move more articles than were in the original order.' als sales-en-acties actief is op artikelen
Ondersteuning toegevoegd om via de sendWebhook
call ook de startPayment
en cancelPayment
webhooks te triggeren.
Elke API-call retourneert nu het versienummer van de API in een aparte Mplus-Service-Version
response header.
Bijvoorbeeld:
Mplus-Service-Version: 57.2.0.0
Elke API-call retourneert nu het versienummer van de API in een aparte Mplus-Service-Version
response header.
Bijvoorbeeld:
Mplus-Service-Version: 56.3.0.0
De volgende API calls hebben nu ondersteuning om op basis van een of meerdere ids
of numbers
te filteren:
getPackingSlips.packingSlipIds
& packingSlipNumbers
getInvoices.invoiceIds
& invoiceNumbers
getOrders.orderIds
& orderNumbers
De functie createOrderV2
retourneert nu ook het ingevulde order
-object bij een filiaalorder (Slave-filiaal) die binnen de "Wachttijd synchronisatie Master naar Slave" verwerkt is, en bij het resultaat CREATE_ORDER_RESULT_EXT_ORDER_ID_ALREADY_EXISTS
.
Dit maakt het gedrag van de call weer consistent ongeacht of het filiaal toevallig een Slave is.
Optionele workplaceNumber
toegevoegd aan getButtonLayoutGroupDetails
, daarnaast is de al bestaande buttonLayoutGroupId
ook optioneel gemaakt. Wanneer er een workplaceNumber
en een branchNumber
wordt meegegeven, zal de snelknoppen indeling details van de huidig actieve snelknoppen lay-out voor de meegegeven werkplek teruggegeven worden.
getOverview
bevat nu twee nieuwe velden: owners
en owners_uuid
.
owners
geeft per medewerker het nummer van elk gekoppelde eigenaarslabel terug, owners_uuid
geeft gelijk de uuids terug van elk gekoppelde eigenaarslabel.
Er wordt nu rekening gehouden met filiaalgroepen en eigenaarslabels in:
- GetCardCategories
- GetButtonLayoutGrupsWithAssignedWorkplaces
- UpdateEmployeeAuthorizationGroups
- GetEmployeeAuthorizations
- GetEmployeeBranchAuthorizations
- GetEmployeeAuthorizationGroups
ownerFilter
en branchGroupFilter
toegevoegd aan:
- ReportArticlePerformance
- ReportAverageSpending
- ReportBPE
- ReportBranchPerformance
- ReportPaymentMethods
- ReportPrintableFinancialTotals
- ReportTables
- ReportTurnoverByActivity
- ReportTurnoverByArticle
- ReportTurnoverByBranch
- ReportTurnoverByEmployee
- ReportTurnoverByTurnoverGroup
- ReportTurnover
- ReportCancellations
- GetReceipts
API: Gefixed dat de wijziging voor het alternatieve btwcode veld ook wordt opgeslagen in de database
getBranches
geeft nu ook voor elke werkplek de externe referentie terug onder de naam extWorkplaceId
indien de externe referentie niet leeg is.
DeterminePricing
gaat nu correct om met arrangementen. Je kan nu een orderId
of table
meegeven, waarmee de bestaande order wordt bepaald, om die regels mee te nemen in de prijsberekening.
Daarnaast kan je nu aan elke regel een tempId
meegeven, die ook weer teruggegeven wordt, om gemakkelijker de regels te identificeren. Tenslotte wordt er nog een priceType
teruggegeven. Wanneer die op PRICE-TYPE-FIXED
staat, gaat het om een arrangement.
De API is nu zelf in staat om bij idempotente requests (zoals placeTableOrder
) zelf een aantal retries te proberen als er een concurrency issue voorkomt. Dit vermindert de kans dat de call mislukt door bijv. een detected deadlock.
De functie getPaymentMethodsV2
retourneert nu optioneel ook de bpeConfiguration
. Stel hiervoor in de request de parameter includeBpeConfiguration
in.
Ook is het nu mogelijk om in de request te filteren op paymentMethodTypes
.
De functie getPaymentMethodsV2
retourneert nu optioneel ook de bpeConfiguration
. Stel hiervoor in de request de parameter includeBpeConfiguration
in.
Ook is het nu mogelijk om in de request te filteren op paymentMethodTypes
.
De installer update nu automatisch de reeds geinstalleerde versie ook als deze in een afwijkende locatie is geinstalleerd.
Elke API is nu out-of-the-box in staat om tot drie parallele requests af te handelen.
(Voorheen was de standaard één)
Elke API is nu out-of-the-box in staat om tot drie parallele requests af te handelen.
(Voorheen was de standaard één)
De API heeft nu ondersteuning voor opstarten met een --connection
, welke verwijst naar een databaseconnectie in %PROGRAMDATA\MplusQ\database.dat
. Hierdoor hoeft de API niet meer een apart database.ini
bestand te hebben.
getFinancialJournal
geeft nu ook purchaseAmount
terug voor groep types anders dan BPE.
De idempotente calls placeTableOrder
en createOrderV3
doen nu geen lock meer op de transactietabel, maar vertrouwen op het retry-mechanisme van de API om bij een evt. conflict de order nogmaals proberen te plaatsen.
Alle idempotente requests hebben nu in principe ondersteuning voor het automatisch herhalen van een request als er tijdens de uitvoer een potentieel gelijktijdigheidsprobleem optreedt.
Dat wil niet automatisch betekenen dat vaker herhalen altijd het probleem zal oplossen.
getConfiguration
geeft nu ook per
terug, wat aangeeft of de instelling per kassa, filiaal of globaal ingesteld mag worden.
Als er geen credentials worden meegegeven retourneerd de api nu een HTTP Status 401 (was 500).
Dit helpt oa in .NET je kunt dan namelijk de credentials instellen op de client en deze zal wanneer deze de 401 ziet een Authentication header meesturen.
saveInvoice
geeft nu ook invoiceNumber
en invoiceBarcode
terug wanneer je een factuur aanmaakt, niet alleen wanneer je een factuur wijzigt.
getCardCategories
houdt nu rekening met eigenaarslabels als het eigenaarslabelssysteem en het filiaalgroepensysteem aan staan.
createImage
en createImageFromUrl
retourneren nu een aparte resultaatcode CREATE_IMAGE_NOT_SUPPORTED
als het uploaden van afbeeldingen via de API überhaupt niet ondersteund wordt, omdat MIS niet aan staat. Zo zien we het sneller in onze online apps.
De call getPackingSlips
retourneert nu ook:
packingSlipType
orderCategoryNr
vatMethod
sessionId
De functie placeTableOrder
ondersteunt nu ook het doorgeven van een levertijdstip (via deliveryPeriodBegin
).
GetBranchGroups
API call geeft nu ook per filiaalgroep ownerLabelId
terug, als het filiaalgroep een gekoppelde eigenaarslabel heeft.
De functie getAuthorizationTree
retourneert nu onlineAuthorizationsVersion
en de functie updateOnlineAuthorizationTree
accepteert nu onlineAuthorizationsVersion
. Op die wijze is snel te controleren of de autorisatieboom up-to-date is.
getButtonLayoutGroupForBranch
retourneert nu de knoptekst van de artikelkaart in articlesInLayouts.buttonText
.
Dit is tbv. de android handheld.
Probleem opgelost waardoor er via de android handheld geen (oude)menu artikelen geboekt konden worden wanneer het menu gebruik maakte van de optie op hoofdartikel boeken.
Foutmelding die dan in api log kwam was deze: msg: QCheckWerkplek(): Bij MplusQservice moet expliciet werkplek meegegeven worden (QGetHuidigeBoekDag())
Opgelost dat splitsen d.m.v. moveTableOrderV3
een SOAP exception gaf als de te splitsen tafel wijzigingen heeft gehad, door bijvoorbeeld meerdere keren artikelen op de tafel te boeken.
Gaf uiteindelijk deze foutmelding:
Het is niet mogelijk om af te splitsen vanwege een verschil.
Split NOT possible, divergent properties: (WijzigingsTeller: 0 <> 1)
Probleem opgelost in placeTableOrder
als je wel numberOfGuests
meegeeft, maar geen lineList
.
Veroorzaakt de Foutmelding in api log: SEVERE req: placeTableOrder, exception: EAccessViolationmsg: Access violation at address 00F4D9DA in module 'MplusQservice.exe'. Read of address 00000010 in het api logboek.
Op de handheld krijg je dan te zien: PIN betaling is GELUKT Bijwerken van tafel is mislukt.
Probleem opgelost in placeTableOrder
als je wel numberOfGuests
meegeeft, maar geen lineList
.
Veroorzaakt de Foutmelding in api log: SEVERE req: placeTableOrder, exception: EAccessViolationmsg: Access violation at address 00F4D9DA in module 'MplusQservice.exe'. Read of address 00000010 in het api logboek.
Op de handheld krijg je dan te zien: PIN betaling is GELUKT Bijwerken van tafel is mislukt.
Tijdelijk downgraden naar versie 1.41.2 werkt
Lost probleem op waardoor de API vooral voor online extra traag kon zijn als de optie "Mag een medewerker op meerdere werkplekken tegelijk ingelogd zijn?" aan stond.
Probleem opgelost waardoor je geen categorieën meer kon bijwerken via createProduct
, updateProduct
, createRelation
, updateRelation
, createEmployee
en updateEmployee
.
Order.reference
is nu niet meer verplicht bij het aanmaken/aanpassen van orders.
Als er ooit een artikel verkocht is met omzetgroep 0, geven de API-functies reportTurnoverByTurnoverGoup
, reportTurnoverByArticle
en reportBPE
nu geen foutmeldingen meer, in plaats daarvan retournerneren ze de standaardwaarde voor omzetgroep.
getRenderedPrintLayout
geeft nu een error terug als het om een bon print lay-out gaat, dat als PDF gerenderd dient te worden. Dit is alleen mogelijk voor grafische print lay-outs (A4).
Opgelost dat companyName
niet werd opgeslagen met UpdateRelation
.
Opgelost dat het aanpassen van een orderregel op een verkooporder er voor zorgt dat na het opslaan alle geleverde aantallen van de verkooporder verdwenen zijn.
Opgelost dat het verplaatsen van een volledige tafel order d.m.v. moveTableOrderV2
en moveTableOrderV3
de volgende foutmelding gaf als er gebruikt werd gemaakt van TSE:
Error on the server. Please contact API support at dev@mpluskassa.nl.
Voorwaarde niet voldaan: Order.VersieNr > 1
Opgelost dat placeTableOrder
niet meer TSE-data opstuurde.
Dit lost onder andere het probleem op dat een tafelorder doen en/of betalen met de Android handheld geen TSE-data opstuurt.
Opgelost dat priceType
van een determinePricing
regel een niet valide waarde bevatte als het om een tekstregel ging.
Bugfix updateProducts ging mis wanneer er alleen een update of een insert gedaan moest worden.
Gaf dan een UPDATE-PRODUCT-RESULT-FAILED
in de response.
getOrders
error opgelost:
Database error on the server. Please contact API support at dev@mpluskassa.nl.
getOrders
, getInvoices
en getPackingSlips
input validatie minder restrictief gemaakt. Het is daardoor nu weer mogelijk om een sync marker en datum filter toe te passen.
Opgelost dat kassabonnen/bestelbonnen niet uitgeprint werden wanneer er gebruik werd gemaakt van het nieuwe print lay-out systeem.
Probleem opgelost als je een order ging opslaan mét deliveryPeriodBegin maar zónder deliveryPeriodEnd.
CreateRelation nieuwe kaartnummer bepaling ging mis
Database connectie herstel werkt weer.
Opgelost dat wanneer met updateArticleGroup
d.m.v. sortOrder
een artikelgroep naar de één na laatste plek werd gesorteerd, de artikelgroep op de laatste plek terechtkwam.
Opgelost dat het uitvoeren van de getJournals of getFinancialJournal API call een foutmelding gaf.
Database error on the server. Please contact API support at dev@mpluskassa.nl.
Foutmelding opgelost als je in een GKS-administratie een tafel volledig wilde verplaatsen.
Het kassaldo en kasverschil dat geretourneerd wordt door reportPrintableFinancialTotals()
wordt nu niet meer verborgen, mits de medewerker daarvoor geautoriseerd is.
Als het nieuwe filiaalgroepen systeem aan staat, zal de getCardCategories
API call nu op basis van de Mplus-Employee
header de kaart categorieën ophalen, i.p.v. op basis van de Mplus-Workplace
header.
De functie updateProduct
geeft nu ook apart een foutmelding als een opgegeven artikelnummer al bestaat: UPDATE_PRODUCT_RESULT_FAILED_ARTICLE_NUMBER_ALREADY_TAKEN
Lost probleem op waardoor de API vooral voor online extra traag kon zijn als de optie "Mag een medewerker op meerdere werkplekken tegelijk ingelogd zijn?" aan stond.
getOverview
geeft nu de juiste minimumprijs terug.
Probleem verholpen met de webhooks (HTTP_PARSING_ERROR
).
Sinds een recente update ging de API waar mogelijk ineens onbedoeld proberen te communiceren via HTTP/2. Dit werd echter nog niet goed ondersteund door de rest van onze software. Daarom wordt nu geforceerd dat we altijd HTTP/1.1 gebruiken.
Probleem verholpen met de webhooks (HTTP_PARSING_ERROR
).
Sinds een recente update ging de API waar mogelijk ineens onbedoeld proberen te communiceren via HTTP/2. Dit werd echter nog niet goed ondersteund door de rest van onze software. Daarom wordt nu geforceerd dat we altijd HTTP/1.1 gebruiken.
Probleem verholpen met de webhooks (HTTP_PARSING_ERROR
).
Sinds een recente update ging de API waar mogelijk ineens onbedoeld proberen te communiceren via HTTP/2. Dit werd echter nog niet goed ondersteund door de rest van onze software. Daarom wordt nu geforceerd dat we altijd HTTP/1.1 gebruiken.
Gefixed dat de wijziging voor het alternatieve btwcode veld ook wordt opgeslagen in de database
Opgelost dat o.a. getOrders
, getInvoices
en getPackingSlips
de volgende foutmelding teruggaven:
Kolom niet gevonden: afl_adres_bedrijfsnaam
Eerdere fix uit 55.0.7 miste nog op 55.1.x
Opgelost dat o.a. getOrders
, getInvoices
en getPackingSlips
de volgende foutmelding teruggaven:
Kolom niet gevonden: afl_adres_bedrijfsnaam
Opgelost dat savePurchaseOrderV2
geen besteleenheden opsloeg, indien die op de artikelen ingesteld stonden. Daarnaast geeft getPurchaseOrdersV2
nu ook de besteleenheid terug onder de naam orderUnit
.
API call getArticlesInLayout
retourneert nu weer alleen daadwerkelijke bereidingswijzegroepen, en niet bijverkoop of vervangend artikelen.
API call getArticlesInLayout
retourneert nu weer alleen daadwerkelijke bereidingswijzegroepen, en niet bijverkoop of vervangend artikelen.
Opgelost dat reportTurnoverByEmployee
de volgende foutmelding gaf wanneer een omzet gemaakt was met een medewerker nummer hoger dan 2.147.483.647.
Database error on the server. Please contact API support at dev@mpluskassa.nl.
Elke tien minuten voert de API een statuscontrole van de databaseverbinding uit. Als er tijdens deze controle iets mis ging, dan werd de volgende controle direct uitgevoerd ipv. tien minuten later. Dat is nu opgelost.
Opgelost dat o.a. getOrders
, getInvoices
en getPackingSlips
de volgende foutmelding teruggaven:
Kolom niet gevonden: afl_adres_bedrijfsnaam