Declare Tender form can't open on offline MPOS if no currency is set up on the store.


Symptoms


Customer only uses Pay by Cash operation and doesn't use Pay by Currency, as there's no multiple currencies for the store. As such there won't be any record created in table RetailChannelCurrency for the newly created channel.

Based on above configuration, MPOS can successfully open Declare Tender form when it's online mode. However, after switch MPOS to offline mode, Declare Tender form can't open due to no record in this table. This doesn't make sense because MPOS behaves inconsistently between online and offline modes.

Resolution


If no currency is set up on the store and the database is disconnect, the variable value will be null and the variable currencyAmounts will be set value with the variable value. So it will throw a error" 0x800a138f - JavaScript runtime error: Unable to get property 'forEach' of undefined or null reference: when the variable calles the method forEach(), which is the root cause. So we just need to add a if statement to validate whether the variable currencyAmounts is null or undefined.

More information


Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained here in is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.