Cross Store Payments
The main purpose of this project is to enable the ability to create payments in a global cross-store organization, so that tickets from one store can be paid or returned in another store.
The user will be able to define a cross-store organization which needs to be in the same tree of all children organizations. All payment-related records which belong to a ticket of a different store will be created in this organization.
The receipt search component will be changed so that its filter will include not only the current store, but also stores which have the same cross-store organization.
Components which need to be changed
The main components which need to be changed are the following.
Configuration of the cross-store organization
The organization window must be changed to add the ability to define the cross-store organization
PaidReceipts component (receipt search)
The PaidReceipts.java and PaidReceiptsHeader.java components need to be changed so that they filter not just by the store organization, but also by all other organizations which have the same cross-store organization
This capability needs to be configurable at API level. This means that the PaidReceipt components will only work in this way if explicitly been told by an argument received in the request.
The OrderLoader must be changed so that the payments for receipts whose store is different from the store of the terminal are generated in the cross-store organization.
When processing the cashup, a reconciliation is created. This reconciliation must be created in the cross-store organization if there is at least one transaction created in the cross-store organization.
All receipt selectors
The Receipts and Verified Returns selectors need to be changed. If the store has a cross-store organization, the selector will now display a new checkbox which, if checked, will allow the user to search not only for tickets from this store, but also for tickets from other stores which share the same cross-store organization.