Coins Discount
Target release | 2024/04/26 |
Document owner | Vu |
Developer | Quốc Trung |
QA | Vu |
Mục tiêu/ý nghĩa của Coins Discount là ko muốn phải thối tiền lẻ lại cho khách hàng, Release này sẽ cố gắng hoàn tất các happy Case trước cho kịp, đồng thời ko test trên file Custom Fee 4_0 vì đây là build đặc biệt đã bị delay rất lâu rồi chưa được merge code lại chung với build Stable
Các Logic cần lưu ý của Coins Discount:
1. Chỉ áp dụng duy nhất cho phương thức thanh toán là Cash
2. Có config ở POS Dashboard để setting apply Coins Discount hay ko

#### 3. Khi thanh toán ticket có Total by Cash là số thập phân (vd $10.99) thì sẽ được apply Coins Discount amount = 0.99 nếu thanh toán bằng Cash => số tiền phải trả bằng Cash sẽ tròn $10 thay vì là $10.99 Note: $0.99 Coins discount này khi show chi tiết trên report là sẽ được tính(trừ) vào item hoặc modifier cuối cùng(theo thứ tự add của ticket) với điều kiện là item hoặc modifier đó phải có Subtotal(ko bao gồm Tax/VAT) lớn hơn Coins Discount amount, nếu ko thỏa được điều kiện này thi tiếp tục tính vào item hoặc modifier kế tiếp ở trên

#### 4. Khi thanh toán ticket bằng Cash và có thêm Tip thì Tip sẽ được enter số lẻ thoải mái, logic Coins Discount chỉ apply trên Total by Cash thôi, không apply lên Tip #### 5. Khi thanh toán 1 phần nhiều lần bằng Cash thì sẽ chỉ apply Coins Discount vào duy nhất lần thanh toán cuối cùng lúc finish ticket bằng Cash (những lần thanh toán 1 phần trước đó muốn enter số lẻ/số thập phân bao nhiêu thì cũng vẫn giữ nguyên amount lẻ đó) , tuy nhiên nếu lần thanh toán cuối cùng mà ko phải Cash thì cũng sẽ ko được apply Coins Discount cho ticket này luôn

#### 6. Case chặn ko cho thanh toán bằng Cash: Total ticket khi thanh toán bằng Non-Credit Method là $29.9, nếu thanh toán bằng Cash sẽ được apply Coins Discount là còn $29, trường hợp cố tình thanh toán $29 bằng Custom Method(Non-Credit) thì sẽ còn $0.9 nhưng thanh toán bằng Cash sẽ là $0.00 => cho nên trường hợp này sẽ show thông báo ko cho phép thanh toán bằng Cash và show thông báo “Cash payment is not allowed. The Coins Discount has been applied. If paying in Cash, the balance due must exceed $1.00.”. Tương tự như vậy, nếu ticket Total là $29.9 -> discount $29 còn $0.9 thì cũng ko cho thanh toán bằng Cash luôn, cho dù cố tình enter vào $1.00 cũng chặn và show thông báo

Note: Tuy nhiên khi Refund hoặc Refund old ticket thì sẽ ko chặn vì ý nghĩa của refund là trả lại tiền cho khách hàng chứ ko phải khách hàng trả tiền cho tiệm #### 7. Đối với trường hợp Split Evenly thì sẽ apply Coins Discount trên từng phần split evenly ra (vì sẽ có trường hợp khách hàng đưa dư Cash và tiệm phải thối lại tiền lẻ), đồng thời nếu trên từng phần split evenly mà thanh toán nhiều lần thì cũng chỉ apply Coins Discount vào duy nhất lần thanh toán cuối cùng lúc finish ticket bằng Cash(y như logic thanh toán 1 phần nhiều lần) – anh Khánh đã confirm #### 8. Thêm Option cho Guest Check “Print Coins Discount” (check/uncheck) cho cả 2 mode Custom Fee và Dual Price để show/hide dòng Coins Discount trên Guest check tương tự như Cash Discount #### 9. Refund new ticket thì sẽ ko apply Coins Discount, nhưng Refund from old ticket thì sẽ apply theo Coins Discount amount của ticket cũ NOTE: tuy nhiên release này sẽ tạm thời chỉ apply Coins Discount khi refund bằng Cash thôi, nếu refund bằng Credit thì vẫn giữ nguyên giá Credit (ko apply Coins Discount) #### 10. Mode Dual Price-Cash Default-apply Coins Discount, khi refund old ticket đã thanh toán bằng Cash trước đó và check Option show Coins Discount trên Customer screen thì sẽ show như sau: Total xx Coins Discount xx
Pay by Cash xx Hoặc trường hợp hide Coins Discount trên Customer screen thì sẽ chỉ show 1 dòng Total đã trừ Coins Discountnhư sau: Total xx <= Total này là amount cuối cùng sau khi đã trừ Coins Discount Còn đối với mode Dual Price-Credit Default-apply Coins Discount, khi refund old ticket đã thanh toán bằng Cash trước đó và check Option show Coins Discount trên Customer screen thì sẽ show như sau: Total xx Coins Discount xx
Pay by Cash xx Hoặc trường hợp hide Coins Discount trên Customer screen thì sẽ show như sau: Total xx
Pay by Cash xx #### 11. Mode Dual Price-Credit Price Default-Customize receipt->Print Guest Check include Pay by Cash khi apply config Coins Discount và check vào Option “print Coins Discount on Guest check” cũng sẽ ko in ra dòng Coins Discount trên Guest check mà chỉ in ra Cash Price thôi(vì làm như vậy cho đơn giản logic, và vì ticket của mode Credit Price Default chỉ show item bằng giá Credit cho nên dù có in ra đầy đủ Cash Total, Coins Discount, Final Cash Total thì cũng ko có cách nào để tính ra được những amount bằng Cash này) – Đã confirm với Tuấn, chị Thảo, Trung(POS) #### 12. Tương tự như số 11 Mode Dual Price-Credit Price Default-> Customer screen uncheck Option “show Coins Discount”thì sẽ chỉ show giá Credit và giá Cash sau khi đã trừ Coins Discount ra thôi cho đơn giản logic – Đã confirm với chị Thảo, Trung #### 13. Employee Sale report sẽ trừ thẳng Coins Discount vào Subtotal luôn và thêm dòng chú thích cho rõ ràng “Subtotal already excluded Coins Discount” (tạm thời sẽ làm vậy cho nhanh để kịp release, sau này khi có thời gian sẽ fix lại và thêm thông tin Coins Discount 1 dòng riêng cho đúng hơn) – Đã confirm với Tuấn, chị Thảo, Trung(POS) (Ghi nhận) #### 14. Tương tự như số 11(Employee Sale report) nên Sale receipt report cũng sẽ trừ thẳng Coins Discount vào Subtotal luôn và thêm dòng chú thích cho rõ ràng “Subtotal already excluded Coins Discount” – Tuấn, Trung đã confirm #### 15. Refund from old ticket tạm thời trong release này sẽ chỉ apply Coins Discount khi Refund bằng Cash, Credit vẫn giữ nguyên giá (Release sau sẽ update thêm case này, tạm thời ghi nhận) – Đã confirm với Tuấn, chị Thảo, Trung(POS) VD : Total ticket là $10.11, thanh toán bằng Cash nên được apply Coins Discount nên còn tròn $10. Khi Refund from Old ticket bằng Cash thì sẽ apply Coins Discount là $10 nhưng nếu refund bằng Credit thì sẽ là $10.11 #### 16. Partial refund tạm thời chưa fix, để release sau sẽ fix luôn cho trường hợp có Cash discount, hiện tại thì tuy show amount trên UI chưa đúng(hiện tại đang show amount chưa trừ Coins Discount ra) nhưng sau khi thực hiện Refund Partial thì vẫn ra đúng Total amount trên receipt - đã confirm với Tuấn, Trung #### 17. Payout item: ticket có Payout item,Negative item, modifier Negative price và Total là số âm thi sẽ ko apply Coins Discount #### 18. Ticket sau khi thanh toán 1 phần in Sale receipt hoăc recall lại in tạm tính thì chỉ show Coins Discount cho phần Balance thôi, vì Coins Discount amount của ticket gốc có thể sẽ thay đổi sau khi thanh toán 1 phần, show nhiều chỗ sẽ gây confuse hơn khi xem ticket, logic của Coins Discount khi thanh toán nhiều lần là chỉ apply ở lần thanh toán cuối cùng khi finish ticket bằng Cash(note logic thứ 5) => cho nên dựa theo logic này thì sẽ chỉ show Coins Discount trên receipt ở phần Balance thôi cho đơn giản (áp dụng cho tất cả mode)