5.06 Release Notes
Please see: Client & Server Release Hotfix 5.06.x
Client Release (POS, KDS, KIOSK)
POS
Custom Authorization Receipt
CONSR-1516
Description
Users with the Punchh Integration enabled on POS will now have the ability to print both the Punchh trailer message and barcode on the authorization receipt when users select the "Print Receipt" button. This functionality allows customers to scan the printed Punchh barcode to earn reward points after paying.
Capture Name on Card in Freedom Pay Portal
STR-2926
Description
We will now be displaying the ‘Name on Card’ for FreedomPay transactions in the Freedom Pay Portal. Displaying this information will help users identify a customer's name when revisiting the charges at a later date.
New Gift Card Flow
STR-2408 & STR-2850
Description
We have modified the gift card flow to separate the operations (i.e. load/reload/wipe) from the gift card payment process.
We have added the action and related description to the gift card dialog box so users are able to track the success or failure of the gift card operation. Once the operation is complete, the user will get a success message in the description section of the dialog box “i.e. Card Reloaded”;
In case that the gift card operation fails, it will be shown in the error dialog box:
Once the gift card is reloaded, the customer will be able to proceed with payment. Should a gift card not be paid for, the check will not close.
Olo Refund Permission
STR-2969
Description
With this feature update, we have updated the Olo refund functionality for users to perform the Olo refunds. If both the site and the user have the Olo refund permission, the POS will display the refund button, and when the user taps on it, it will successfully allow the user to refund the Olo payment.
Permission: OloRefund
According to this modification, users will now see a toast notification when attempting to perform an Olo refund for a site that does not have the necessary permissions.
HQ
Reorder Alphabetically Button for Reordering Modifiers
ENT-1577
Description
We have created a "Reorder Alphabetically" button in the “Reorder Modifier” dialog box that, once selected, will automatically re-order modifiers in a modifier group alphabetically. This feature is available both at the node and the site level.
Auto-Populate Store Discounts from Enterprise Node
ENT-1296
Description
This feature automatically populates the existing discounts from the Enterprise Node to the Store Level for each newly created site.
3 CTAs Added to Site Selector in Menu and Product Push
ENT-1672
Description
We have added 3 CTA buttons on the top of the Site Selector in the Menu and Product Push UI. This functionality enables a user to copy products or menus directly from a node to a specific node or sites under sub-nodes without underlying the sites or vice-versa.
Bugs Fixes
Client Release (POS, KDS, KIOSK)
KIOSK
Incorrect discount application at Kiosk
CONSR-1515
Symptom
If discounted items are removed without removing the applicable discount first, all other items in the cart get discounted to $0.
Steps to reproduce
X for X discount --------------
- Create x for x discount - buy one omelet and get a discount on 2 beverages (we can modify the discount type from Amount/Percentage/Free to check other scenarios in the same discount).
- Add one omelet and add more than 2 beverages to cart, apply the newly created discount and verify it is applied correctly.
- Now remove any one discounted item and verify at-least 2 eligible items in the cart gets discounted, if there is only one eligible item in the cart then discount should be applied to only one item.
- Remove the last eligible discounted item and verify that promo code is also removed.
Now Similarly, test negative scenarios where you do not add omelet instead add some other item and add beverages to cart, verify that discount does not apply.
Now Similarly, create another X for X discount where we do not include or exclude any item, perform the same steps mentioned above, this time the highest price item will be the required item and 2nd and 3rd highest price item will be treated as discounted ones.
Try removing discounted items one by one and the discount will shift to another item until we have only one item in the cart when the promo code will be removed automatically since we do not have any eligible items in the cart now.
Item Level Discount -----------
Same as X for X, you can create item level discount and perform the same steps to verify.
Order level discount ---------------
Same as X for X, you can create order level discounts and perform the same steps to verify.
Resolution
We have added the functionality that verifies if the remaining items in the cart are eligible for a discount when the discounted items are removed from the cart. Based on the status of the re-verification, the promo code is automatically removed if the eligible items are no longer in the cart.
Server
HQ
Switching Employee Status Doesn't Paginate Correctly
ENT-1698
Symptom
Staff numbers do not always appear correctly when selecting different quantities. Furthermore, when you apply the inactive filter, scroll to the next page, or change the items per page, the status filter is reset back to active.
Steps to reproduce
- Log in to the HQ with valid credentials
- Navigate to the Site_Pepole_In Store_Staff tab.
- Try to fetch Active staff details
- Try to select 25, 50, and All view links.
- Here it is not showing the correct total data based on selected (25, 50, and All) links.
- Here observed one more issue that is, Select In Active staff and select All links. Here In Active filter changes back to Active.
Resolution
For the default filter or status='active' filter it was pulling all the records(active + inactive) so 25 records of both active and inactive but it was showing only active records.
Fixed to fetch only active records for active filter and inactive records for inactive filter and fetch both active and inactive for both the filters.
Staff Summary Report does not include transactions outside of employee shift
STR-1782
Symptom
Staff Summary Report does not include the payments and tips taken for staff members outside of their shifts if the shifts are adjusted for that user. The missing transactions can be found in the TRAY Payments report but need to be included in SSR.
Steps to reproduce
- Day starts at 10 am.
- Clocked in on 22 March at 10 am.
- Completed 8 hrs of shift+Overtime.
- Clocked out with declared tips on 23 March at 11 am.
- Made some transactions(between clock-in & clock-out duration).
- Total hrs worked= 25 hrs( including overtime).
- Generated Time entries & Staff summary report for the particular date & staff.
- Validated the "Sales" & "Tips" data in Staff summary report.
- Then in the "Time entries" report, edit the working hours of staff from 25 hrs to 12 hrs and save the entry.
- Validated the "Sales" & "Tips" data in Staff summary report.
- Observed that the checks that started after the shift time are still in his shift that started the previous day.
- Clocked in again on 23 March at 12 pm.
- Made some transactions.
- Validated the "Sales" & "Tips" data in Staff summary report.
- Observed that the checks which started after a new shift begin are in the new shift record (current shift) only.
Resolution
- Previously, we only considered payments and tips for a staff member between their clock-in/clock out time in the Staff Summary Report .
- As part of this ticket, we now include the payments and tips taken outside of their shift duration. (i.e. till next clock-in) This applies to both the Staff Summary Report in HQ and Printed Staff Summary Report on the POS. Payments outside of a shift can occur due to shift editing or payments taken by a manager for that user.
Inconsistency of the total hours of an employee across different reports
STR-2870
Symptom
The total hours worked for an employee differ by 0.01 for Time Card, Labour, and Staff summary reports.
Steps to reproduce
- Clock in with a staff role.
- After some time , Click on the Break button.
- Select unpaid break.
- End the Break.
- Now clock out for the staff role.
- On HQ , check Timecard, Labor, and Staff Summary reports.
- Observe the discrepancy of .01 in the Staff summary Report.
Resolution
Previously we didn't use "seconds" to calculate total hours/break time hrs, which resulted in discrepancies across reports like Time Card, Labour, and Staff summary reports.
We have now fixed the issue by considering "Seconds" for calculating total hours/break time hrs.
The DSR's Check/Guest Count is Incorrect
STR-2845
Symptom
The ‘guest count total’ and the ‘check count total’ differ by a count of 1 if the filter checks are voided as false.
Steps to reproduce
- Place some orders on POS using comp/discount /void.
- Pay for some checks , via cash/Gift Card.
- Send and hold some orders.
- Complete orders.
- On HQ go to DSR reports.
- Observe count of Checks begun and Checks.
- Verify API response for each check.
Resolution
Previously, checks with the gift card items were not included in ‘total checks’ count in the ‘Order Types’ section of the Daily Sales Report. The checks with GIFT CARD items are now counted as part of the overall checks in the DSR.
SVS Gift Card Cashout Records Positive & Negative ‘No Sale’ Simultaneously
STR-2578
Symptom
Positive & Negative No Sale Values appear simultaneously for SVS Gift Card Cashout transactions.
Steps to reproduce
- Login to POS > Functions.
- Perform Cash out in POS.
- Validate in no sale reports.
Resolution
We fixed the issue by calling “NoSale API” again on the client side, which was already handled by the server when we used to call the gift card/wipeCard API.
FM Report does not format properly if "Week Starts On" is not set to Monday
ENT-1624
Symptom
When entering the date manually in the Financial Management Report, the FM Report does not display the correct data for the selected dates.
Steps to reproduce
- On the HQ home page Reports Menu select Sales -> Financial Management report.
- From the Period drop-down list choose the Week Starting From option.
- Choose the Site.
- The start date will be changed, according to the Site Settings (Site Settings -> Operations: Week Starts On).
- Run the report.
- The first column of the report will be the day of the week set on the Site Settings.
Resolution
We have fixed the issue by configuring the start date of the week per the week’s start date for the selected site, leading to the report displaying the correct dates.
For example
Site A - week starts on monday (20th march)
Site B - week starts on Friday (17th march)
Consider Current date is 23rd march
When Site A is selected, start date will default to 20th march
When Site B is selected, the start date will default to 17th march.
DSR discrepancies
STR-2434
Symptom
Discrepancy between Checks Begun count and amount as compared with Checks Paid on DSR report.
Steps to reproduce
- Login to POS.
- Add some items in the cart.
- Place an order.
- Make a full payment for 2 or 3 orders.
- Again place an order.
- Do not make payment for 2-3 orders.
- Go to HQ.
- Run DSR report.
- Observe the Checks Begun and Checks Paid.
Note: Checks that are completely paid will be calculate & displayed in Checks Paid and the checks which are not paid will be calculated in Checks Begun along with the checks paid
For eg: Make 6 transactions with 3 fully paid and the remaining non-paid.
Calculation:
checks begun=6
checks paid= 3
Resolution
Checks that are added but have a zero sum are counted in the Checks Paid section.
Tax exempt tenders from OLO do not remove tax from checks
STR-2583
Symptom
It appears that tax-exempt tenders (uber, door dash, etc.) are not removing tax from the orders on the check; for orders placed via Olo.
In the check report, checks were not balanced and had a discrepancy equal to the tax amount.
Steps to reproduce
- Place an Olo order which has external tender in it and the tender is tax-exempt.
- Check the Payments and Orders report. The payments report shows the correct data (tax = 0) but in the Orders report orders had tax in them even though tender is tax-exempt.
Resolution
Whenever new taxation is enabled :
For the orders placed via Olo with tax-exempt tenders, then we will consider the tax amount as 0$ and zero sales tax in validateApi.
Client & Server Release Hotfix 5.06.x
POS 5.06
Reverting Freedom Pay Library to 1.24.3 from 1.26
Symptom
Making payments from devices using the Ingenico Moby 5500 Credit Card reader is crashing the device when the FreedomPay Library version is updated to 1.26.
Steps to Reproduce
- Log into Moby Device
- Open a Check
- Attempt to process a Credit Card Authorization or Capture
- POS should display successful authorization and not crash
Resolution
Reverting the FreedomPay Library back to 1.24.3 resolved the issue and payment was successfully captured. This build differs from POS 5.06 - 511608 only in that we have reverted the FreedomPay Library to a prior version.
HQ 5.06.1
INFRAP-1929 Integrate optimized DSR report queries
Symptoms
DSR Report running slowly or not at all for Beta sites.
Steps to Reproduce
- Validate optimisation of DSR report
- Validate DSR report load timing before and after DB changes
- Validate each functionality of DSR report should match before and after optimization
Resolution
Low-Risk Deployment to HQ 4/27:
- Load testing results displayed above
- Testing completed with Site 5418 with prod data + server size comparison
- Before it took >20 minutes
- Now with optimization it takes between 5 second to ~1 minute (depending on DoW and concurrency load)
- Alternatively deploy HQ 5.06.1 + POS/KDS 5.06.1 on Monday
POS 5.06.1
STR-3199 Duplicate Time Entries
Symptoms
Some sites are still showing duplicate time entries.
Steps to Reproduce
- Time Entries reports showing multiple clock in for a server for a single day
Resolution
Reconfiguring device time and time zone resolves the issue.
INFRAP-2084 Kiosk is prompting to print guest receipt after the receipt is automatically printed [POS]
Symptoms
When completing an order from the kiosk, a prompt shows up after you put in a name for the order, but the receipt still prints before anything is selected. Expected behavior is to have the ticket automatically print (no option to NOT print).
Steps to Reproduce
- Complete order from the kiosk
- Put name in for the order
- Receipt prints before anything is selected
- Prompt pops up asking if you want to print receipt
- Prompt disappears after 5 seconds
- If you hit the X, the prompt goes away right away.
- If you hit print it will ask for the name again but that window will almost immediately go away too.
Expected Behavior
Expected behavior is to have the ticket automatically print (no option to NOT print).
Resolution
Removed dialog and receipt prints automatically.
KDS 5.06.1
STR-3264 Tablet/POS Experiencing Delayed Printing
Symptoms
Remote printing from tablets is causing printing to be delayed.
Steps to Reproduce
- Open any check from a device that supports remote printing functionality
- Print Check
- Observe Error Message ‘Exception while printing on Device’
- Printing initiated on a failover printer
- Once printed, checks have no data
Resolution
Enabled ‘GetTabDetail’ feature flag for sites which resolved the delay.
POS/KDS 5.06.2 - 514077
STR-3351 Menu Optimization
Symptoms
Spike in memory when you are navigating to different parts of the menu leading to delayed POS/KDS responses.
Steps to Reproduce
1. Login into any iHop store
2. Select 55+/kids menu
3. Select breakfast sampler item multiple times
4. You can see the ANR in the device after that
Note: Attached video in google drive link
Resolution
Optimization of menu leading to menu, modifier and modifier groups loading faster and menu navigation more efficient by addressing memory leaks across POS and KDS.
May 11, 2023
HQ 5.06.2
Infrap-2167 OLO Receipts not printing relevant OLO information [DSP]
Symptoms of the Bug
Olo receipts do not include relevant information when printing or reprinting the Olo ticket
Steps to Reproduce
1. Place an olo order (using curbside) and observe that delivery info is missing in the printed receipt.
Resolution Note
Earlier KDS was calling /tray/v2/orders/orderDetails API to fetch the details and print the receipt. In that api server is sending "deliveryInfo" key which is having all the information.
As part of recent optimization, KDS will be calling v2/checks API (optimized getTabDetails API) to fetch the details. Currently server is not sending "deliveryInfo" in v2/checks API, that's why delivery info is not printed in the receipt.
We've added "deliveryInfo" in v2/checks which will be used by KDS to print delivery information.
POS 5.06.3 - 514320
STR-3351 Menu Optimization [Carry over from POS/KDS 5.06.2 - 514077; version continuity to match KDS]
Symptoms
Spike in memory when you are navigating to different parts of the menu leading to delayed POS/KDS responses.
Steps to Reproduce
1. Login into any iHop store
2. Select 55+/kids menu
3. Select breakfast sampler item multiple times
4. You can see the ANR in the device after that
Note: Attached video in google drive link
Resolution
Optimization of menu leading to menu, modifier and modifier groups loading faster and menu navigation more efficient by addressing memory leaks across POS and KDS.
Removed Datadog Library
KDS 5.06.3 - 514320
STR-3465 Revert Datadog from POS & KDS
KDS 5.06.3 - 514414
Infrap-2167 OLO Receipts not printing relevant OLO information; DSP
Symptoms of the Bug
Olo receipts do not include relevant information when printing or reprinting the Olo ticket
Steps to Reproduce
1. Place an olo order (using curbside) and observe that delivery info is missing in the printed receipt.
Resolution Note
Earlier KDS was calling /tray/v2/orders/orderDetails API to fetch the details and print the receipt. In that api server is sending "deliveryInfo" key which has all the delivery information.
As part of recent optimization, KDS will be calling v2/checks API (optimized getTabDetails API) to fetch the details. Currently the server is not sending "deliveryInfo" in v2/checks API, that's why delivery info is not printed in the receipt.
We've added "deliveryInfo" in v2/checks which will be used by KDS to print delivery information.
KDS 5.06.4 - 514496
Revert CONSR-1269 Pay n’ Go Enhanced QR Code
Symptoms of the Bug
Pay-n-go QR code is not scanning, QR code shows invalid error message. We reverted CONSR-1269, which resolved the issue.
Steps to Reproduce
- Print a receipt with Pay-n-go enabled
- Notice Pay-n-go QR Code prints
- Scan Pay-n-go QR Code to redeem points for order
Note: code will no longer be valid after redeemed.
Resolution Note
Pay-n-go functions correctly on KDS 5.02.3, hence the reason for rolling back.
POS 5.06.5
Version: POS 5.06.5 - 516795
Implementation: Scheduled Esper Deployment by Dine Team
Rollout Plan: Deployment Monday, Jun 12, 2023 1:30am-2:30am CST [deployment window] to all 24hr. Sites
Impact: 0 downtime; 24 hr. Sites [Production & Beta] - list provided for MySQL8 Upgrade
Rollback Plan: POS r.5.06.4 - 516811
Reason for Change: Deploying POS 5.06.5 to all 24hr. sites will allow us to put sites into Offline Mode and pull sites back online as needed.
Precipitating Event: MySQL8 Upgrade
Justification for Emergency Change: This functionality will allow us to pull sites into offline/online mode without having to rely on sites to do this step themselves. This was identified by the Dine team as a mandatory requirement prior to adding DB Index.
INFRAP-2386 Fix Remote Offline Mode for POS
Description
This method would be invoked on HQ on the Server with the Venue ID. The server sends the call to all of the devices and determines “online” : true/false
the request is a POST request with the expected input parameters in the body of the request:
{
"venueId": "100644",
"online": true,
"apiVersion": "5",
"reqFrom": "consumer"
}
or in defining contract definition
{
"venueId": "{{LONG_VENUE_ID}}", // if actual venue id is 341 put 100341 here. if actual venue id is 48 put 100048 here. if actual venue id is 2035 put 102035 here.
"online": {{ONLINE_STATE}}, // online state is true without quoation marks , offline state is false without quotation marks
"apiVersion": "5",
"reqFrom": "consumer"
}
NOTE : this API requires a authentication session. You can use Auth header with the global token with setting the auth header to Authorization: Basic QXBpLUtleTpFN2x6QW5RR0NMV3IybkJQZmxmNU1uRWdxM3lxTHVQTw==
Remote offline functionality is not working properly in some scenarios on the POS. This fix will add API functionality that can be triggered to put devices into offline mode and pull them back into online mode. As there have been concerns about determining the state of devices at the store, the information displayed in the offline mode dashboard has been passed in the headers of the TRAY health check API so TRAY can help DINE identify stores that may have problems with offline mode.
Test Cases
1. Confirm that the above API works properly and it puts the KDS and POS application in offline and online mode.
2. Confirm that current flow for putting devices in offline mode/online mode still works as expected.
3. Test that offline mode device state information is displayed in the headers on the server logs for the TRAY health check API.
Results
This API will allow us to trigger devices into Offline Mode and then pull them into Online Mode
HQ 5.06.5
Version: HQ 5.06.5
Implementation: TRAY DevOps
Rollout Plan:
- QA Deployment: Friday, Jun 9, 2023 1:30am-2:30am CST [deployment window]
- Beta Deployment: Tuesday, Jun 13, 2023 1:30am-2:30am CST [deployment window]
- GA Deployment: Wednesday,Jun 14, 2023 1:30am-2:30am CST [deployment window]
Server: beta-hq.ihop.tray.com; hq.dine.tray.com
Rollback Plan: HQ 5.06.3
Precipitating Event: Outage from 5/20 and 5/21 [reference TRAY RCA documentation]
Reason for Change: The following server hotfix outline documents the server-checkout & 40-column optimizations required to improve performance and reduce risk of outage.
Impact: No system downtime [deployed during deployment window]; prerequisite DB Index Addition is 1hr. Downtime for 24hr sites. The risk of delaying HQ 5.06.5 deployment is increased risk of an outage similar to the precipitating event.
INFRAP-2253 Redirect labor related queries (saveTimeEntries) to transactional reader in order to avoid Writer DB spike.
AND
INFRAP-2255 Reduce Timeframe of Time Entries Report from 72 hrs. > 32 hrs. to Reduce Load on the Database
Description
In these two stories we optimized the way the Time Entries report works to minimize the impact on the database. Currently:
- The Time Entry report is using the DB writer which causes some spikes during operation hour as this process competes with regular transactions. To alleviate this load on the DB writer we are rerouting the query to use the DB reader which don’t have the same load during operation.
- The Time Entries report retrieves 72 hours of data which is not necessary. To minimize the load on the database, we are instead retrieving 32 hours of data which is sufficient for users to see and update their time entry.
Test that the report works properly
Retrieve 32 hours worth of data:
- Clock In with users having different roles (i.e. server, host, manager, cook, etc.)
- Login using Manager quick code. Verify with a single user as well.
- Navigate to the Employee-related tab and check for the list of clockedin users.
- Validate the time taken to load the data.
- Validate the data in logs, verified if any particular user is having more than 32 hours of duration.
- Checked the performance with old and new war.
Tests to verify that the Time Entry works properly
Prerequisite: Create a staff having active printers assigned. Make sure, there is an active routing rule with working printers added.
Validate the timings, Staff name, venue details in the printed chit:
- Clock in as a Staff, validate that clock-in chit is printed.
- Take an unpaid break, validate that the break chit is printed.
- End the break and validate that chit is printed. Notice that Break-in and Break-out time is recorded.
- Perform some sales and hit on the Clock-out button, validate that chit is printed.
Paid break:
- Clock in as a Staff, validate that clock-in chit is printed.
- Take a paid break, validate that the break chit is printed.
- End the break and validate that chit is printed. Notice that Break-in and Break-out time is recorded.
- Perform some sales and hit on the Clock-out button, validate that chit is printed.
Unpaid break:
- Clock in as a Staff, validate that clock-in chit is printed.
- Take an unpaid break, validate that the break chit is printed.
- Clock out without ending break, validate that Clock-out chit is printed.
No break:
- Clock in as a Staff, validate that clock-in chit is printed.
- Perform some sales and hit on the Clock-out button, validate that chit is printed.
Break in between sales:
- Clock in as a Staff, validate that clock-in chit is printed.
- Take a paid break, validate that the break chit is printed.
- End the break and validate that chit is printed. Notice that Break-in and Break-out time is recorded.
- Perform some sales and take an unpaid break and validate the break chit is printed.
- End the break.
- Perform some sales and hit on the Clock-out button, validate that chit is printed.
Verify cockout time:
- Clock in as a Manager, validate that clock-in chit is printed.
- Navigate to the Employee-related tab, hit Clock-out for existing staff.
- Click on ‘Time Clock Report’ , validate that all the clocked in staff are printed in chit and correct duration is printed for each staff.
Results
Unit testing performance comparison writer vs. readers
Execution of the Time Entry report:
- On the writer: average of 351 ms
- On the reader: average of 325 ms
Concurrency Tests
The below table and graphs show a concurrency where 200, 500 and 1,000 requests of the time entry report are made at the same time
Concurrency Level | Start Time | % Errors rate |
200 | 2023-05-24 18:21:52 | 0% |
500 | 2023-05-24 18:25:17 | 0% |
1,000 | 2023-05-24 19:14:59 | 0% |
1,500 | 2023-05-24 19:25:29 | 0% |
We were able to run up to 1,500 concurrent requests of the Time Entry report without any issues with 0% error/failure rate..
The graphs below shows the CPU utilization % while the concurrency tests above were ran:
The CPU of the reader remains below 1% while the performance tests are running.
Comparison of execution plan on the reader vs. writer
Execution plan on the writer
Execution plan on the reader
There is no change in execution plan when we switch from the writer to the reader.
Conclusion
By rerouting the execution of the Time Entry report from the writer to the reader and reducing the hours retrieved on the Time Entry report, we don’t see any impact on this report:
- Performance remains the same
- Concurrency of 1,500 was achieved with not failure
- The execution plan and result remain unchanged
INFRAP-2269 Remove unused columns/db hits from on getPOSActiveOrders API
Description
By removing several response parameters in the getPOSActiveOrders API that are not used anymore, we reduce 10-15 DB hits for each call. This positively impacts the state of the database as it reduces traffic making more resources available for other queries..
Validation that there are no impact of the functionalities
The getPOSActiveOrders API is used in the following test cases:
POS Actions | KDS Updates |
Place order with minimum Items and Discount applied after place order |
Bump Order No Duplicates |
place order with huge items and apply item level discount on one item after place order |
No Duplicates bump order and un-bump order after few mins |
place Order with huge items include modifiers and apply Order level Flat discount | No Duplicates and order is capture correctly; discount applied to items correctly |
Place Order with multiple items and comp one item after place order | No duplicates in KDS |
Place Order with multiple items and void one item after place order | No duplicates in KDS |
Place Order with multiple items and void one item after place order | Duplicate order fired after applying order level discount |
Place order with zero cook time item and configure Service with auto advance for KDS Order states New Auto TimeOut = 1 Mins Accepted Auto TimeOut = 2 Mins Completed Auto TimeOut = 1 Mins |
Order Auto Advance Order fired time: 5:01 Order moved ot accepted state time: 5:02 Order vanished from KDS when click on Ready bump button |
Place order with zero cook time item and configure Service with auto advance for KDS Order states New Auto TimeOut = Skip Accepted Auto TimeOut = Skip Completed Auto TimeOut = Skip |
Order Auto Advance Order directly moved to Done State in KDS |
Optimization Results
Before Optimisation
There are a total of 52,507 rows retrieved.
After Optimisation
There are a total of 949 rows retrieved.
INFRAP-2077 Optimize Queries behind getPOSActiveOrders and getPOSActiveOrdersCompact
Description
While reviewing logs in AWS we noticed that the following two APIs could be optimized improving performance:
- getPOSActiveOrders
- getPOSActiveOrdersCompact
These two APIs are used by many functionalities
Functional tests after optimization
86/Un-86 Items
|
|
Updated Order status as NO SHOW (by applying for discount,void, comp, transfer) | |
Opened a check offline, applied a discount then synced back to online |
Results
Validated that the above mentioned impact areas [86/un-86 items, updating order status, opening a check offline and applying a discount, validating in Open Search/ELK].
INFRAP-2126 Partially Optimize Server Checkout Report and the 40 Column Report
Description
As part of this change, we’ve optimized and merged below queries -
1. GET_CARD_PAYMENTS_SALES_EMAIL_KDS_CARD
2. GET_CARD_PAYMENTS_SALES_BY_CARD_TYPE
3. GET EXTERNAL PAYMENT TYPES
4. GET_CASH_PAYMENTS_FOR_TRADING_DATE_FOR_SCR
New Queries -
1. GET_CREDIT_CARD_PAYMENTS_BY_TYPE (combination of 1st and 2nd)
2. GET_EXTERNAL_PAYMENT_TYPES
3. GET_CASH_PAYMENTS_FOR_A_TRADING_DAY
Steps to Reproduce
Server Checkout Report |
Server Checkout form POS Functions>Employees Related Tab>Click Checkout Report |
Server Checkout form POS Functions>Employees Related Tab>Click Checkout Report |
Server Checkout form POS Home Screen> Click Checkout Button |
40 Column Report |
40 Column Report from POS Functions>Employees Related Tab>Click Full Report |
40 Column Report from POS Functions>Employees Related Tab>Click Full Report |
40 Column Report from POS>Functions>Click Sales Report |
40 Column Report from POS>Functions>Click Sales Report |
40 Column Report from KDS>Reports>Click Print |
40 Column Report from KDS>Reports>Click Print |
Optimization Results
Below is the result of execution time of the Server Checkout and the 40 Columns reports.
Unit test performance result
Reports | Query used in the Reports | Existing Performance | Queries with Indexes & Optimization |
Server Checkout Report | |||
Get Credit card payments | 12 sec | 0.01 sec (two queries merged) |
|
Get Credit card sales by card type | 19 sec | ||
Get External Payment Types | 2 sec | 0.0 sec | |
Get Sales By staff by category | 1 min 07 sec | 0.76 sec | |
Total | 1 min 33 sec | < 1 sec | |
40 Columns Report | |||
Get Sales by Daypart | 5 min 8 sec | 3 sec | |
Get Voided Orders Summary | 4 sec | 2 sec | |
Total | 6 min 46 sec | 5 sec |
Concurrent test performance result
Server Checkout Report
Server Checkout Report (concurrency 200) | Existing Performance | Queries with Indexes & Optimization |
Average Execution Time | 23.23 sec with failure* of 36% | 3.38 sec with failure of 0% |
Other concurrency test results for that report:
40 Column
40 Columns (concurrency 200) |
Existing Performance | Queries with Indexes & Optimization |
Average Execution Time | 211.41 sec; failure* of 31% | 32.41 sec; failure 0% |
* % Failure is the percentage of reports that fail to execute timing out or erroring out.
Other concurrency test results for that report:
Comments
0 comments
Article is closed for comments.