feat: Automatically adjust negative cash closing differences to prevent loss journal entries and increment module version.
This commit is contained in:
parent
8a57bbd7bb
commit
d2cac42d47
5
.gitignore
vendored
5
.gitignore
vendored
@ -64,3 +64,8 @@ session/
|
|||||||
# System
|
# System
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
# Editors
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# POS Cash Opening Adjustment
|
# POS Cash Opening Adjustment
|
||||||
|
|
||||||
**Version:** 17.0.1.0.0
|
**Version:** 17.0.1.1.0
|
||||||
**Author:** Suherdy Yacob
|
**Author:** Suherdy Yacob
|
||||||
**Category:** Point of Sale
|
**Category:** Point of Sale
|
||||||
**License:** LGPL-3
|
**License:** LGPL-3
|
||||||
@ -12,6 +12,7 @@ Prevent opening cash journal entries and exclude opening float from closing tota
|
|||||||
- **Opening Cash Adjustment:** Modifies how opening cash is handled to prevent unwanted journal entries.
|
- **Opening Cash Adjustment:** Modifies how opening cash is handled to prevent unwanted journal entries.
|
||||||
- **Closing Totals:** Excludes opening float from closing totals calculation.
|
- **Closing Totals:** Excludes opening float from closing totals calculation.
|
||||||
- **Zero-Amount Payment Cleanup:** Automatically removes `pos.payment` lines with `0.00` amount during session verification. This prevents the creation of "Difference at closing PoS session" journal items triggered by empty payments (e.g. from 100% discount or external payment edge cases).
|
- **Zero-Amount Payment Cleanup:** Automatically removes `pos.payment` lines with `0.00` amount during session verification. This prevents the creation of "Difference at closing PoS session" journal items triggered by empty payments (e.g. from 100% discount or external payment edge cases).
|
||||||
|
- **Negative Cash Closing Adjustment:** Automatically overrides the cashier's input to match the expected closing balance if a negative difference is detected, logging the action in the chatter and preventing a loss journal entry.
|
||||||
|
|
||||||
## Technical Details
|
## Technical Details
|
||||||
### Zero-Amount Payment Fix
|
### Zero-Amount Payment Fix
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "POS Cash Opening Adjustment",
|
"name": "POS Cash Opening Adjustment",
|
||||||
"summary": "Prevent opening cash journal entries and exclude opening float from closing totals while keeping reconciliation data.",
|
"summary": "Prevent opening cash journal entries and exclude opening float from closing totals while keeping reconciliation data.",
|
||||||
"version": "17.0.1.0.0",
|
"version": "17.0.1.1.0",
|
||||||
"category": "Point of Sale",
|
"category": "Point of Sale",
|
||||||
"author": "Suherdy Yacob",
|
"author": "Suherdy Yacob",
|
||||||
"depends": ["point_of_sale"],
|
"depends": ["point_of_sale"],
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -136,6 +136,18 @@ class PosSession(models.Model):
|
|||||||
|
|
||||||
def _validate_session(self, balancing_account=False, amount_to_balance=0, bank_payment_method_diffs=None):
|
def _validate_session(self, balancing_account=False, amount_to_balance=0, bank_payment_method_diffs=None):
|
||||||
for session in self:
|
for session in self:
|
||||||
|
if session.config_id.cash_control:
|
||||||
|
difference = session.cash_register_balance_end_real - session.cash_register_balance_end
|
||||||
|
if session.currency_id.compare_amounts(difference, 0.0) < 0:
|
||||||
|
session.message_post(body="Auto-adjustment: Cashier input %s overridden to expected %s to suppress negative difference of %s." % (
|
||||||
|
session.currency_id.format(session.cash_register_balance_end_real),
|
||||||
|
session.currency_id.format(session.cash_register_balance_end),
|
||||||
|
session.currency_id.format(difference)
|
||||||
|
))
|
||||||
|
session.write({'cash_register_balance_end_real': session.cash_register_balance_end})
|
||||||
|
if amount_to_balance:
|
||||||
|
amount_to_balance -= difference
|
||||||
|
|
||||||
for order in session.order_ids:
|
for order in session.order_ids:
|
||||||
for payment in order.payment_ids:
|
for payment in order.payment_ids:
|
||||||
if session.currency_id.is_zero(payment.amount):
|
if session.currency_id.is_zero(payment.amount):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user