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/

Reply via email to