* Refactoring: Move AppItem to Client lib and use the class for item list
This makes it available for the app, which would otherwise have to replicate the model. Also uses the proper class for the item/perk list of the app models.
* Remove unused app item payment methods property
* Do not ignore nullable values in JSON
* Revert to use Newtonsoft types
* POS: Fix accounting for manually entered keypad amounts
For keypad orders where there are products AND manual amount entries, we didn't account for the latter.
Fixes#6168.
* Adjust wording: "Manual entry" becomes "Custom Amount"
* Improve receipt info display
Displays the info in correct order and adds optional info if tip was given with a percentage.
* Test fix
---------
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
* POS: Backwards-compatible price parsing
Fixes#5159 and a regression introduced in bbff9710bf: The price in posData needs to be parsed in a backwards-compatible manner, as the old format of price as an object exists in the invoice metadata.
* Test corner cases
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Remove Order ID link
* Add separate print version for receipt
* Fix POS number handling and add keypad test
Fixes#5056.
* Add formatting function
* Remove OrderUrl for POS, bring back order link for receipt
* Update BTCPayServer/Plugins/PointOfSale/Controllers/UIPointOfSaleController.cs
* Editorconfig: Add space_before_self_closing setting
This was a difference between the way dotnet-format and Rider format code. See https://www.jetbrains.com/help/rider/EditorConfig_Index.html
* Editorconfig: Keep 4 spaces indentation for Swagger JSON files
They are all formatted that way, let's keep it like that.
* Apply dotnet-format, mostly white-space related changes