Probleem opgelost waardoor handmatige prijsaanpassingen weer ongedaan gemaakt werden als je een verkooporder of bestelling wijzigde.
Deze versie verwacht ten onrechte database schema versie 45. Gebruik 46.0.1
getTableOrderV3
heeft nu een extra eigenschap uncondensedLines
waarmee je kunt aangeven of de regels altijd onverdicht geretourneerd moeten worden.
Diverse functies toegevoegd en aangepast voor het werken met afbeeldingen van artikelen, relaties en medewerkers.
createImage
en createImageFromUrl
kunnen nu als de image direct gelinkt wordt ook meteen de gewenste labels instellen.getCardImageLabels
toegevoegd om de beschikbaar labels en de restricties daarvan op te vragen.getCardImages
kan voor meerdere kaarten de images opvragen.saveCardImages
werkt van meerdere kaarten de bijbehorende lijst van afbeeldingen bij, afbeeldingen die niet in de aanroep staan worden verwijderd.moveTableOrderv3
idempotente call toegevoegd
Deze call is ook makkelijker te gebruiken doordat niet alle details van de order meegegeven hoeven te worden. Alleen orderId is voldoende. Wanneer een deel verplaatst moet worden is meegeven van alleen de lineId
's en eventueel quantity
voldoende.
Het is nu mogelijk om via de Server-Timing
response header gedetailleerde informatie te krijgen over hoe lang verschillende processen binnen de API duren.
Als er bijv. door de API een webhook wordt aangeroepen, krijg je een aparte benchmark met de duur van de webhook. En als de webhook endpoint zelf ook Server-Timing
informatie teruggeeft, dan wordt dat ook toegevoegd aan de Server-Timing
header van de API.
cancelOrderV2
welke meer soorten orders kan cancellen waaronder ook tafelorders en ook beter rekening houdt met of hij op een slave draait of niet.
De calls savePurchaseOrderV2
en savePurchaseDeliveryV2
hebben nu ondersteuning voor toevoegen van regels via supplierArticleNumber
of barcode
, naast articleNumber
of pluNumber
. Het is dan niet nodig om articleVariantId
mee tegeven, die wordt automatisch geselecteerd op basis van supplierArticleNumber
of barcode
.
Ook is het mogelijk om de aantallen door te via quantityOfPackagesOrdered
of quantityOfPackagesDelivered
, intern wordt dit automatisch omgerekend naar de basisaantallen voor de desbetreffende uitvoering.
Nieuwe API call printTableReceiptV3
, met de volgende verbeteringen tov. printTableReceiptV2
:
Nieuwe API call printReceiptV2
, met de volgende verbeteringen tov. printReceipt
:
Nieuwe API call getGksInformation
waarmee je voor een bepaalde werkplek het GKS productienummer kan opvragen.
De tafellijst api calls kunnen nu een extra state teruggeven TABLE-STATUS-RECENTLY-PAID
deze wordt gebruikt om aan te geven dat de tafel recentelijk betaald is.
Nieuwe functie performBpeBudgetChecks
Hiermee kan in een enkele aanroep voor een enkele medewerker meerdere BPE limiet checks gedaan worden. Hij retourneert per BPE:
Bestellingen die geannuleerd worden via de API (via cancelOrder
of cancelTableOrder
) worden nu ook geregistreerd in het annuleringslogboek.
Het is nu mogelijk om een externalPaymentId
mee te geven aan een Payment
. Als het desbetreffende ID daadwerkelijk overeenkomt met een bestaande ExternalPayment, wordt de betaling gekoppeld aan deze ExternalPayment.
Het is nu mogelijk om via de browser
property van een Webhook request (zoals startExternalPaymentV2
) door te geven welke browser gebruikt wordt om de webhooks te triggeren.
Een webhook endpoint kan op basis hiervan zijn antwoorden aanpassen.
https://developers.mpluskassa.nl/webhooks/json-definitions/#sender
Nieuwe api call getScheduledMealPlans
kan gebruikt worden om de ingeplande menuplanning van een bepaald filiaal in de meegegeven periode op te vragen.
Nieuwe api call getMealplanMomentsConfiguration
deze call kan gebruikt worden om de configuratie van de maaltijd labels op te vragen.
Waar mogelijk wordt deliveryAddress
en invoiceAddress
nu ook gevuld met de desbetreffende gegevens van de gekoppelde relatiekaart.
Nieuwe API-functie saveGiftcards
waarmee je de reference
(Referentie) van een cadeaukaart kunt bijwerken.
De functies getGiftcards
en getGiftcard
retourneren nu ook de reference
(Referentie) van de cadeaukaart.
Twee nieuwe properties IsPosGroup
en IsOnlineGroup
toegevoegd aan de api calls getPreparationMethodGroups
en savePreparationMethodGroup
Probleem opgelost in createOrderV2
waardoor applySalesAndActions
altijd FALSE werd als je hem niet meegaf, in plaats van dat hij naar de instelling keek.
getActiveEmployeeList
call retourneert nu alleen nog medewerkers die de "Toegang tot android handheld" autorisatie hebben.
Twee nieuwe API calls setRelationPresence
en getRelationPresence
Met de setRelationPresence
call kun je een relatie aanmelden bij een filiaal en optioneel meegeven op welke tafel deze zit.
Met de getRelationsPresence
kun je de laatst bekende status van de relatie opvragen.
getNutritionalCharacteristics
kan nu ook op basis van syncMarker werken.
Per kaart wordt altijd de complete lijst geretourneerd als kenmerken weggehaald worden komt de kaart dus terug met alle overgebleven kenmerken.
getOverview
heeft nu een extra veld bereidingswijze_groepen
die de nummers van de gekoppelde bereidingswijzen als json array retourneerd.
Dit nieuwe veld en multi selectie velden retourneren nu als ze leeg zijn een lege json array ipv een json null waarde.
GKS ondertekening toegevoegd aan deliverOrder(V2)
en saveInvoice
.
Verbeteringen aan saveButtonLayoutGroupDetails
Verhelpt probleem waardoor api kon crashen bij onvoldoende geheugen beschikbaar.
createImageFromUrl
functie toegevoegd. Deze voegt een afbeelding toe door hem te downloaden van de opgegeven URL.
De afbeelding kan ook direct aan artikelen, relaties of medewerkers gekoppeld worden.
createImage
heeft ook de mogelijkheid gekregen ze direct te koppelen.
Deze functies kunnen alleen gebruikt worden als het gebruik van de Mplus Image Service geactiveerd is.
Bugfix voor getGiftcards
, waardoor je de call nu ook weer kunt uitvoeren zonder cardTypeId
.
Bug opgelost in het toepassen van BPE via verscheidene API calls, zoals placeTableOrder
.
Via placeTableOrder
kunnen nu ook externe EFT transactiedetails doorgegeven worden, via eftTransactionDetails
.
getTableOrderCourseListV3
heeft nu de eigenschappen:
Bij het maken van een kassabon werd het EJ al beschreven voordat de betalingen gekoppeld waren, daardoor ontbraken de betalingen in het EJ. Ook werd een aanbetaling van een bestelling nog totaal niet naar het EJ geschreven.
Extra veld quantityOfPackagesOrdered
toegevoegd aan de getPurchaseOrder
en getPurchaseOrderV2
api calls
De api calls die een ns__Address
object teruggeven kunnen nu ook een extra veld label
bevatten
De api call 'saveButtonLayoutGroupDetails' geeft nu de nieuwe of aangepaste 'buttonLayoutGroupId' terug.
getOverview
kan nu virtueel componenten
veld ophalen welke gevuld met een array van json objecten met informatie over de componenten.
changeTableProperty
kan nu de subTableCount
instellen
Bij reconnect pogingen na het verliezen van een werkende database verbinding, worden deze pogingen niet gelogd. Dit voorkomt dat de logs vol geschreven worden met de zelfde meldingen. Er wordt wel gelogd op welk moment de verbinding verloren is en wanneer deze weer terug is.
getTableListV3 geeft nu ook de relatie terug wanneer deze aan een tafel gekoppeld is zonder dat er nog artikelen op geboekt zijn.
De getCurrentSyncMarkers
en getCurrentSyncMarkersV2
geven nu ook de preparationMethodGroupSyncMarker
, articleNutritionalCharacteristicsSyncMarker
en relationNutritionalCharacteristicsSyncMarker
terug.
De api call getCardCategories
geeft nu ook door of de ingestelde categorie een vip categorie is (isVipGroup
).
De api call getOverviewFields
bevat nu 2 extra velden in de response containsPersonalData
en showInInfoPopup
De functie createOrder(V2)
retourneert nu ook het orderId
van een evt. reeds bestaande extOrderId
. Die hoef je dan dus niet zelf apart op te zoeken met findOrder
.
getPreparationMethodGroups
kan nu aangeroepen worden met een syncMarker
in de request. Hij zal op volgorde van syncMarker
de groepen vanaf de opgegeven syncMarker
retourneren en niet meer groupen dan limit
.
Zonder syncMarker
retourneerd hij alle niet verwijderde groepen. Met syncMarker
worden ook verwijderde groepen geretourneerd te herkennen aan deletedOn
. De call geeft nu ook buttonColour
terug met de kleuren die ingesteld zijn in de qline.
savePreparationMethodGroup
kan nu ook kleuren opslaan. Als buttonColour
of translation
niet meegegeven worden dan blijft bij bestaande items die inhoud ongewijzigd en nieuwe items krijgen standaard grijze kleur.
De API vereist dat als er een entryBranchNumber
wordt meegegeven er ook een workplaceNumber
wordt meegegeven.
getVatGroupList
uitbreiding en documentatie.
Gedocumenteerd dat hij de huidige tarieven voor alle filialen retourneerd en dat hij nooit de bedrag velden zal vullen.
De landcode
van het filiaal toegevoegd en het accountNumber
wordt nu gevuld.
createOrder
doet nu ook GKS ondertekening als de GKS module aanstaat.
Verder ook bij de diverse order varianten gecontroleerd dat er correct transacties gebruikt worden zodat een order niet zonder ondertekening opgeslagen kan worden. Wanneer de GKS ondertekening mislukt wordt dit gelogd.
De placeTableOrder
heeft nu een extra parameter bpeAccordationEmployeeNumber
hier geef je het medewerker nummer op dat de BPE geaccordeerd heeft. Het BPE budget van deze medewerker wordt dan gebruikt.
Mogelijkheid om naar A4 te printen.
LETOP de printers moeten ingesteld worden met een qline die op de zelfde computer draait als de api.
De api call 'SaveButtonLayoutGroupDetailsResponse' gaat nu goed om met de property 'isTableComment'
Lost probleem op dat knop na wijziging in online opeens een Tafelopmerking werd.
getOverview
retourneerd nu de bereidingswijze_groep
nummers in de juiste volgorde.
getOverview
retourneerd nu de bereidingswijze_groep
nummers in de juiste volgorde.
setStock
heeft nu verbeterde validatie waardoor hij niet meer OK geeft bij ontbrekende input maar duidelijk meld wat er mis is.
Verhelp probleem dat getOverview
crasht als hij BTW tarief voor een artikel niet kan vinden.
Verhelpt probleem dat getOverviewFields
een numericPrecision
van 14 retourneerde voor velden met het type
DATA-TYPE-STRING
De functie createRelation
in combinatie met condenseCombinedInvoice
werkt nu goed.
Wanner getPreparationMethodGroups
met een syncMarker werd aangeroepen miste voor sommige groepen de elementen.
De functie getPackingSlips
retourneert nu altijd alleen echte pakbonnen, en geen uitgiftes meer. Voorheen was het mogelijk om ook uitgiftes op te vragen als je niet filterde op syncMarker
.
payTableOrder mislukte als het om een splitsing ging, de Android bestel app had hier last van.
De verschillendegetOrders
, getReceipts
, getInvoices
calls (die meerdere orders/kassabonnen/facturen inlezen) gaven andere totalen in de bereidingswijzen terug dan de calls die enkele tegelijk inlezen.
Het gedrag van de "meervoudige" calls is nu gelijkgetrokken aan het gedrag van de "enkelvoudige" calls.
Omdat sommige koppelingen mogelijk wel uitgingen van de foute resultaten, kun je via een speciale header (MPLUS-RETURN-COMBINED-PREPARATION-LIST
) het oude gedrag weer activeren.
Foutmelding verholpen die kon voorkomen bij het queuen van een verkoop order voor een slave kassa.
Als je via savePurchaseOrder(V2)
of savePurchaseDelivery(V2)
een bestaande inkoopopdracht of levering bijwerkt, dan blijven de niet-meegegeven eigenschappen, zoals besteleenheid of gekozen uitvoering, nu bewaard.
getButtonLayoutGroupDetails
retourneert nu correcte posities voor subgroepen met meerdere "rijen" die aan de rechterkant staan.
Dit verhelpt ook problemen met het opslaan van snelknoppen in online omdat saveButtonLayoutGroupDetails
deze foute data niet accepteerd.
Voorheen werden de coördinaten uitgerekend alsof de subknoppen boven de layout stonden. Deze aanpassing heeft een minimale kans dat de subgroepen op de Android handheld nu iets anders staan. Dit zal alleen gebeuren als ze meerdere subgroep rijen hebben, deze rechts staan en het aantal artikelknop rijen niet gelijk is aan het aantal artikelknop kolommen.
Strictere validatie van row
en column
in saveButtonLayoutGroupDetails
zodat het duidelijk gemeld kan worden aan de aanroeper wanneer deze verkeerde coordinaten meegeeft.
LETOP: de row
en column
van hoofd en subgroepen zijn altijd alsof deze bovenaan staan.
Als je op de plek van een decimal
string een verkeerd geformatteerde waarde meegeeft, dan krijg je dat nu netjes terug gemeld in de response. Voorheen kreeg je dan gewoon geen reactie meer.
Als je getOrders
aanroept met een syncMarker
, dan wordt deze nu altijd gebruikt. Ook als de waarde 0
is. Dit voorkomt dat een eerste sync die je (per ongeluk) met 0
ipv. 1
aanroept, gelijk een resultaat van álle orders probeert te retourneren.
Vrije voorraad is nu altijd gebaseerd op dezelfde formule, namelijk aantal
minus verkooporder
minus interfiliale opdracht
. Dit zorgt voor correcte vrije voorraad bij de getStock
functie.
Tweede bestelling voor een keukenbon zal de bestelling niet meer naar de prullenbak sturen.
Bug fix voor de melding database error on server bij de volgende API calls getCurrentTableOrders
, getInvoices
, getPackingSlips
.
In een aantal plaatsen werd alleen een eventuele originele prijs inclusief BTW overgenomen maar werd het genegeerd als de exclusieve was opgegeven.
De getOverview gaf een foutmelding wanneer alleen de brutoprijs of alleen de verkoopprijs werd opgevraagd.
Wanneer een medewerker geen gekoppelde autorisatie groepen heeft gaf de GetEmployeeAuthorizationGroups
call een lijst van alle filialen terug, nu geeft die dan niks terug.
Als je savePurchaseDeliveryV2
aanroept met een fromPurchaseOrder
, dan heb je nu niet meer het probleem dat "In order" onterecht blijft ophogen.
Sommige calls gaven geen foutmeldingen terug als je invoer niet klopte, in plaats daarvan bleef de call hangen.
Voorbeeld hiervan was bijv. savePurchaseDeliveryV2
die geen foutmeldingen gaf als je bijv. een onbekend relationNumber
opgaf.
Het meegeven van een onbekend medewerkernummer in de Mplus-Employee
header zorgt niet meer voor een foutmelding in de API.
De functie sendMessage
geeft geen foutmelding meer als je een onbekend werkpleknummer (terminalNumber
) opgeeft.
Fixes voor gevallen waar de sync_marker van de artikelen niet altijd ge-update werden.
Over het algemeen ging het wel goed als je deze dingen aanpaste via bewerken van een artikelkaart maar niet via andere routes.
getArticleGroup
en getArticleGroupChanges
geven nu ook informatie over verwijderde groepen.
Bij getArticleGroup
is het hiervoor wel nodig om een syncMarker mee te geven. Bevat tevens diverse performance verbeteringen.
Een tegelijkertijd uitgevoerde placeTableOrder
op dezelfde tafel zal nu niet meer veroorzaken dat de laatste binnenkomende bestelling de eerdere weer laat verdwijnen.
Problemen met het splitsen van tafels.
Betreft zowel de " relation number does not exist" melding als de onterechte melding "U kunt alleen maar splitsen van een tafel naar een andere tafel".
saveOrder
probleem opgelost dat ervoor zorgde dat een meegegeven prijs niet toegepast werd.
saveOrder
probleem opgelost dat ervoor zorgde dat een meegegeven prijs niet toegepast werd.
Fix dat versie 46.0.0. database schema 45 verwachte.
Verhelp probleem met getProduct
waardoor de course van een article voor een paar velden foutieve data bevatte.
Verhelp probleem met getProduct
waardoor de course van een article voor een paar velden foutieve data bevatte.
Verhelp probleem met getProduct
waardoor de course van een article voor een paar velden foutieve data bevatte.
Verhelp probleem met getProduct
waardoor de course van een article voor een paar velden foutieve data bevatte.
Lost probleem op waardoor onder andere saveOrder de prijzen kon resetten naar de prijs van de artikelkaart.
Bug opgelost in het filteren op articleNumber via getPurchaseOrders en getPurchaseDeliveries.
updateBatch
zal nu bij het wijzigen van het autorisatie profiel van een medewerker de autorisaties van de medewerker ook updaten voor zover de medewerker die opgegeven is met de Mplus-Employee
header hiervoor rechten heeft.
Wanneer er meer dan één custom field in de updateRelation meegegeven was werd alleen de eerste bijgewerkt. Nu zal die ze allemaal bijwerken Hetzelfde probleem was aanwezig in de createArticle, createRelation en createEmployee calls
Wanneer je via een handheld een tweede menu toevoegde aan een tafel, dan werd de berekende toeslag/korting van het eerste menu vergeten. Dit zal nu goed onthouden worden.