https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42966
Bug ID: 42966
Summary: Migrate POS payment screen to Vue.js (pos/pay.pl)
Initiative type: ---
Sponsorship ---
status:
Product: Koha
Version: Main
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P5 - low
Component: Point of Sale
Assignee: [email protected]
Reporter: [email protected]
QA Contact: [email protected]
Depends on: 42962, 42964, 42965
Blocks: 42959
Target Milestone: ---
This is part of the Point of Sale to Vue migration tracked under bug 42959.
This patch replaces pos/pay.pl and pos/pay.tt with a Vue.js 3 application,
following the module/route/store/component pattern already established by the
ERM and Preservation modules under koha-tmpl/intranet-tmpl/prog/js/vue/.
This bug covers both the initial application scaffold (module entry point,
route definitions, Pinia store, API composables) and the payment screen itself,
since a bare scaffold with no visible UI is not meaningfully testable on its
own. Scope:
- Register selector
- Sellable debit types table (item selection), backed by bug 42964
- Running sale total / cart
- Payment collection form (tendered amount, change calculation, payment type),
backed by bug 42965
- Email receipt action
- Removal of the legacy pos/pay.pl controller and pos/pay.tt template once
parity is confirmed, including the cash_management: takepayment permission
check moving to the API layer
- Cypress coverage for the sale flow, included as part of this patchset
This is a rework, not a strict like-for-like port: minor UX improvements to the
flow are welcome as long as all existing end-user actions remain possible.
Larger UX ideas that surface during the work but are out of scope here should
be captured as follow-on bugs rather than expanding this one.
If gaps or reusable improvements in the shared Vue component library are
identified while building this (e.g. a generic money/currency input,
item-picker component, or form validation helper), split those out as separate
prerequisite bugs so they can land independently and be reused by other Vue
modules.
Test plan:
1. Enable EnablePointOfSale and UseCashRegisters.
2. Navigate to the new Vue-based POS payment screen and select a register.
3. Add one or more sellable items to the sale and confirm the running total
updates correctly.
4. Take payment, confirm change calculation, and confirm the resulting
accountlines match what the legacy pos/pay.pl produced.
5. Email a receipt and confirm delivery.
6. Confirm the cash_management: takepayment permission is enforced.
7. Run the included Cypress spec.
Referenced Bugs:
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42959
[Bug 42959] Migrate staff interface functionality from CGI controller +
Template Toolkit to REST API + Vue.js
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42962
[Bug 42962] Expose cash register outstanding accountlines via REST API
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42964
[Bug 42964] Expose sellable debit types scoped by library via REST API
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42965
[Bug 42965] REST API: Endpoint to record an anonymous or patron-optional POS
sale
--
You are receiving this mail because:
You are the assignee for the bug.
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/