Waarschijnlijk geeft deze versie altijd een fout bij het opslaan van een bestelling. Het is aan te raden te updaten naar 0.0.10.
In de bijlage zitten een voorbeeld batch-bestand voor automatisch opstarten van de service en een voorbeeld configuratiebestand.
Snelknoppen die gemaakt zijn in versie 1.17.1+ van de Q-line werken niet in deze versie van de API service en dus ook niet in de handheld-applicaties. Gebruik versie 1.2.3+.
Deze nieuwe versie van de API installeert zichzelf in een submap van de normale installatiemap.
De installatielocatie zal daardoor bijv. C:\Program Files (x86)\MplusQservice\0.6.4 worden.
Hierdoor zullen bestaande snelknoppelingen voor het opstarten van de service aangepast moeten worden.
We denken na over een betere oplossing voor de toekomst.
Deze nieuwe versie van de API installeert zichzelf in een submap van de normale installatiemap.
De installatielocatie zal daardoor bijv. C:\Program Files (x86)\MplusQservice\0.6.1 worden.
Hierdoor zullen bestaande snelknoppelingen voor het opstarten van de service aangepast moeten worden.
We denken na over een betere oplossing voor de toekomst.
Deze nieuwe versie van de API installeert zichzelf in een submap van de normale installatiemap.
De installatielocatie zal daardoor bijv. C:\Program Files (x86)\MplusQservice\0.6.0 worden.
Hierdoor zullen bestaande snelknoppelingen voor het opstarten van de service aangepast moeten worden.
We denken na over een betere oplossing voor de volgende release.
Als saveInvoice
een extOrderId
meekrijgt die al bestaat, dan wordt die extOrderId
nu zelf ook in de foutmelding getoond.
Bij het opslaan van een bestelling via saveTableOrder
of saveOrder
wordt nu ook rekening gehouden met de evt. ingestelde standaard BTW-wisselkeuze "Hier opeten" of "Meenemen".
De functie saveTableOrder
sluit nu ook de tafel als er geen regels meer over zijn.
getArticlesInLayout
geeft nu ook samengestelde artikelen terug, via ArticleSimple
.componentArticles
.
Als een bereidingswijze in getArticlesInLayout
geen opmerking bevat, dan wordt het veld PreparationMethodSimple
.name
nu gevuld met de omschrijving van het evt. bijbehorende artikel.
quantity
wordt nu vergezeld van decimalPlaces
om zo ook decimale getallen door te kunnen geven. decimalPlaces
geeft aan met hoeveel posities de komma moet worden opgeschoven.
Stel dat het getal 1,55 moet worden doorgegeven: quantity = 155 decimalPlaces = 2
Of het getal 935,401: quantity = 935401 decimalPlaces = 3
Tenslotte, een geheel getal, 50: quantity = 50 decimalPlaces = 0
Het Table
object dat bijv. in getTableList
gebruikt wordt retourneert nu ook evt. het relationNumber
en de relationName
op die tafel.
Het is nu mogelijk een gedeelte van een tafelbestelling te betalen (payTableOrder
). De overgebleven artikelen blijven dan op de tafelbestelling staan.
Het is nu mogelijk artikelen van de ene tafel naar de andere tafel te verplaatsen (moveTableOrder
).
Ondersteunt de GET requests ?wsdl
en ?docs
die respectievelijk de WSDL en de documentatie gegenereerd vanuit de WSDL retourneren.
Bij het opvragen van producten (getProducts
) kan nu aangegeven worden vanaf welk tijdstip de laatste wijziging gedaan moet zijn.
Het is nu mogelijk van verkooporders een pakbon te maken (deliverOrder
).
Het is nu mogelijk verkooporders te betalen (payOrder
).
Daarbij kan gekozen worden voor een aanbetaling of een factuur.
Het is nu mogelijk afbeeldingen op te vragen (getImages
), inclusief de data van de afbeelding, zodat synchronisatie van de afbeeldingen via de API kan verlopen.
Het is nu mogelijk de urenregistratie op te vragen op basis van gewerkte diensten (getShifts
).
Het is nu mogelijk alle medewerkers op te vragen (getEmployees
).
Bij de artikelen (ArticleSimple
) van een snelknoppenindeling (getArticlesInLayout
) staat nu ook het PLU-nummer en of de bereidingswijzen direct getoond moeten worden.
Compatibiliteit toegevoegd met schema 1.12.0.
Compatibiliteit toegevoegd met schema 1.11.0.
Het versienummer van de API is vanaf dit moment onafhankelijk van het versienummer van de API Service. Hierdoor kunnen we dit programma updaten, zonder dat daardoor per se de API van versienummer verandert.
Compatibiliteit toegevoegd met schema 1.10.0.
Nieuwe functie: cancelOrder()
Nieuwe functie: getProducts()
Nieuwe functie: findOrder()
Nieuwe functie: updateOrder()
Nieuwe functie: createOrder()
Nieuwe functie: getRelation()
Nieuwe functie: createRelation()
Nieuwe functie: findRelation()
Bij een databasefout wordt de tekst van de fout nu getoond, zodat de oorzaak makkelijker op te sporen is.
Nieuwe functie: getTableList()
Nieuwe functie: getApiVersion()
Bij elke aanroep wordt nu gecontroleerd of er geldige credentials meegestuurd worden.
Mogelijkheid om --nossl
toe te voegen aan programma waardoor geforceerd zonder SSL kan worden opgestart.
Ondersteunt nu SSL in standalone modus. Hiervoor moet in de %ProgramData%\MplusQservice
map het bestand global.ini
aangemaakt worden met daarin
[SSL]
ServerCert=<pad en bestandsnaam van certificaat>
ServerCertPassword=<evt benodigd wachtwoord>
De Installatiehandleiding laat nu ook zien hoe het batchbestand voor de API service onzichtbaar kan worden uitgevoerd.
Algemene optimalisatie ter verbetering van de snelheid van de API.
De functies createOrder
, updateOrder
en saveOrder
zullen nu ook een orderbon afdrukken.
De functie getArticlesInLayout
geeft nu ook bereidingswijzeregels zonder artikel door.
De aanroep getAvailableTerminalList
kijkt nu of de database een master of een slave is en retourneert alleen werkplekken die mogen verbinden met deze database.
Dit houdt in dat wanneer hij verbind met de master-database hij geen werkplekken terug zal geven voor welke er een slave-database is en als hij met een slave is verbonden retourneert hij alleen werkplekken die met die specifieke slave mogen verbinden.
createOrder
controleert nu of het meegegeven employeeNumber
daadwerkelijk bestaat, om zo een databasefout te voorkomen.
getTableOrder
zal nu ook de lineId
's van de regels vullen, ook al gaat het hier om verdichte regels. De ingevulde lineId
's zullen gewoon beginnen bij 1 en vanaf daar optellen.
Het object ButtonLayout_Button
dat via getButtonLayout
is op te vragen bevat twee nieuwe eigenschappen:
askForText
: Geeft aan of bij het aanslaan van dit artikel om een tekst gevraagd moet worden, die vervolgens als naam van de regel gebruikt moet worden.isPreparationMethod
: Geeft aan of het gaat om een bereidingswijze, die toegepast moet worden op de laatst geselecteerde artikelregel.relationNumber
in Order
is nu optioneel en daarnaast is ook relationName
toegevoegd.
Elke exceptie wordt nu teruggegeven als een SOAP-foutmelding, i.p.v. dat ze stilletjes het programma doen crashen.
Article
bevat nu ook het webshop
veld.
Als de versie van de database niet wordt ondersteund, dan wordt dat met uitgebreide foutcodes weergegeven. Bijv. dat de versie van de database te hoog of te laag is.
Wanneer de API geen configuratie heeft ingeladen of verbonden is met een niet ondersteunde databaseversie, dan wordt dit nu via een SoapFault teruggestuurd naar de API client. Voorheen kreeg je gewoon geen antwoord.
getProducts()
: Retourneert de producten nu ingepakt in een productList
variabele. De variabele waarin de artikelen van een product werden ingepakt is hernoemd van articles
naar articleList
om consistenter te zijn met de rest van de API.
createOrder()
: Geeft in het antwoord een orderUuid
terug ipv. een orderId
.
findOrder()
: Toegevoegd: orderDeliveryState
/orderCancelState
/orderCompleteState
createRelation()
: Ondersteuning toegevoegd voor afleveradres, mobiel en contactpersoon.
updateOrder()
: Werkplek is nu gebaseerd op het filiaalnummer uit de order.
Wist niet meer alle regels, maar werkt de regels bij gebaseerd op het artikelnummer.
Houd rekening met AantalGereed.
De functie getButtonLayout()
stuurt nu ook de ingestelde kolommen en rijen mee.
De installer is aangepast zodat hij vanaf nu de service in een map met het versienummer installeert en niet meer de oude versie upgrade.
Vereist nu ook in standalone modus een ident
+ secret
.
Bij het opslaan van een order (via saveTableOrder
, createOrder
, updateOrder
, saveOrder
) worden evt. kortingsbedragen nu goed omgezet van centen naar euro's. Dit lost het probleem met steeds groter wordende kortingsbedragen op.
Verbetering in de stabiliteit van o.a. getTableOrder
.
Probleem opgelost bij moveTableOrder
of payTableOrder
waardoor een AccessViolation kon optreden.
Probleem opgelost bij het uitvoeren van payTableOrder
waardoor soms ten onrechte geprobeerd werd de bestelling te splitsen, wat een crash tot gevolg had.
Bij payTableOrder
wordt nu beter gecontroleerd of een binnengekomen order gelijk is aan de bestaande order.
saveTableOrder
zal nu identieke regels die los van elkaar staan op de juiste manier samenvoegen en niet een gedeelte weglaten.
Wanneer updateRelation
wordt aangeroepen zonder relationNumber
krijg je dat nu (zoals was bedoeld) als foutmelding terug, in plaats van dat de service crasht.
Aanpassing gemaakt waardoor het plaatsen van een tafelbestelling via de API niet meer tot twee actieve orders op één tafel zou mogen leiden.
getInvoices
vult nu ook de transactionString
van de geretourneerde facturen.
Wanneer er op een snelknoppen indeling een standaard hoofd- en subgroep was ingesteld en vervolgens groepen verwijderd werden kon u in de situatie komen waar er fout optrad omdat de software een standaard subgroep probeerde in te stellen voor een niet bestaande hoofdgroep. Het programma zet de standaard subgroep nu dan automatisch uit.
De functie saveTableOrder
en saveOrder
zal tekstregels niet meer van bestellingen afgooien.
Probleem opgelost in saveOrder
en saveTableOrder
waardoor een bestelling die onverdicht binnenkomt niet in de exacte volgorde van binnenkomst werd opgeslagen.
Binnenkomende teksten worden goed geconverteerd vanuit UTF-8.
De functie getButtonLayout
gebruikt nu juiste UTF-8 codering zodat speciale tekens goed worden doorgegeven.
Wanneer payTableOrder
wordt uitgevoerd met een gedeelte van de bestelling wordt er nu goed gecontroleerd op de inhoud van de regels, i.p.v. enkel een vergelijking van het aantal regels. Dat leverde namelijk problemen op als het gedeelte van de bestelling evenveel regels had als de gehele bestelling, maar met andere aantallen.
Afbeeldingen bij getProducts
worden nu gesorteerd op volgnummer, ipv. volgorde van toevoegen. Op die manier worden wijzigingen in die volgorde goed doorgegeven.
Wanneer saveTableOrder
een order binnenkrijgt waarin geen wijzigingen zijn te vinden, dan wordt de order nu niet alsnog opgeslagen.
Zo voorkomen we dat er steeds identieke bestelbonnetjes uit de printer komen.
Bij het opslaan en betalen van tafelbestellingen wordt nu het volledige tijdstip gebruikt, ipv. slechts de boekdag.
Snelknoppen die gemaakt zijn in versie 1.17.1+ van de Q-line werken nu ook weer in de API service en dus ook in handheld-applicaties.
Foutmeldingen over incorrecte databaseschemaversies worden nu niet meer in een dialoog getoond maar net zoals de rest van de uitvoer naar de console of het log gestuurd. (Het probleem met de dialoog was dat je hem niet zag als het programma als service draaide.)
Ondersteuning voor databases met spaties in de naam.