mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
@@ -83,11 +83,8 @@ class AccountPaymentOrder(models.Model):
|
||||
priority = payment_line.priority
|
||||
local_instrument = payment_line.local_instrument
|
||||
categ_purpose = payment_line.category_purpose
|
||||
# The field line.date is the requested payment date
|
||||
# taking into account the 'date_prefered' setting
|
||||
# cf account_banking_payment_export/models/account_payment.py
|
||||
# in the inherit of action_open()
|
||||
key = (line.date, priority, local_instrument, categ_purpose)
|
||||
# The field line.payment_line_date is the requested payment date
|
||||
key = (line.payment_line_date, priority, local_instrument, categ_purpose)
|
||||
if key in lines_per_group:
|
||||
lines_per_group[key].append(line)
|
||||
else:
|
||||
|
||||
@@ -93,11 +93,8 @@ class AccountPaymentOrder(models.Model):
|
||||
)
|
||||
% payment_line.mandate_id.unique_mandate_reference
|
||||
)
|
||||
# The field line.date is the requested payment date
|
||||
# taking into account the 'date_preferred' setting
|
||||
# cf account_banking_payment_export/models/account_payment.py
|
||||
# in the inherit of action_open()
|
||||
key = (line.date, priority, categ_purpose, seq_type, scheme)
|
||||
# The field line.payment_line_date is the requested payment date
|
||||
key = (line.payment_line_date, priority, categ_purpose, seq_type, scheme)
|
||||
if key in lines_per_group:
|
||||
lines_per_group[key].append(line)
|
||||
else:
|
||||
|
||||
@@ -11,6 +11,7 @@ class AccountPayment(models.Model):
|
||||
|
||||
payment_order_id = fields.Many2one(comodel_name="account.payment.order")
|
||||
payment_line_ids = fields.Many2many(comodel_name="account.payment.line")
|
||||
payment_line_date = fields.Date(compute="_compute_payment_line_date")
|
||||
# Compatibility with previous approach for returns - To be removed on v16
|
||||
old_bank_payment_line_name = fields.Char()
|
||||
|
||||
@@ -45,6 +46,11 @@ class AccountPayment(models.Model):
|
||||
)
|
||||
return res
|
||||
|
||||
@api.depends("payment_line_ids", "payment_line_ids.date")
|
||||
def _compute_payment_line_date(self):
|
||||
for item in self:
|
||||
item.payment_line_date = item.payment_line_ids[:1].date
|
||||
|
||||
def _prepare_move_line_default_vals(self, write_off_line_vals=None):
|
||||
"""Overwrite date_maturity of the move_lines that are generated when related
|
||||
to a payment order.
|
||||
|
||||
@@ -145,11 +145,13 @@ class TestPaymentOrderInbound(TestPaymentOrderInboundBase):
|
||||
self.assertEqual(len(self.payment_order_obj.search(self.domain)), 0)
|
||||
|
||||
@freeze_time("2024-04-01")
|
||||
def test_creation_transfer_move_date(self):
|
||||
def test_creation_transfer_move_date_01(self):
|
||||
self.inbound_order.date_prefered = "fixed"
|
||||
self.inbound_order.date_scheduled = "2024-06-01"
|
||||
self.inbound_order.draft2open()
|
||||
payment_move = self.inbound_order.payment_ids.move_id
|
||||
payment = self.inbound_order.payment_ids
|
||||
self.assertEqual(payment.payment_line_date, date(2024, 6, 1))
|
||||
payment_move = payment.move_id
|
||||
self.assertEqual(payment_move.date, date(2024, 4, 1)) # now
|
||||
self.assertEqual(
|
||||
payment_move.line_ids.mapped("date_maturity"),
|
||||
@@ -159,7 +161,35 @@ class TestPaymentOrderInbound(TestPaymentOrderInboundBase):
|
||||
self.inbound_order.open2generated()
|
||||
self.inbound_order.generated2uploaded()
|
||||
self.assertEqual(self.inbound_order.state, "uploaded")
|
||||
payment_move = self.inbound_order.payment_ids.move_id
|
||||
payment = self.inbound_order.payment_ids
|
||||
self.assertEqual(payment.payment_line_date, date(2024, 6, 1))
|
||||
payment_move = payment.move_id
|
||||
self.assertEqual(payment_move.date, date(2024, 4, 1)) # now
|
||||
self.assertEqual(
|
||||
payment_move.line_ids.mapped("date_maturity"),
|
||||
[date(2024, 6, 1), date(2024, 6, 1)],
|
||||
)
|
||||
|
||||
@freeze_time("2024-04-01")
|
||||
def test_creation_transfer_move_date_02(self):
|
||||
# Simulate that the invoice had a different due date
|
||||
self.inbound_order.payment_line_ids.ml_maturity_date = "2024-06-01"
|
||||
self.inbound_order.draft2open()
|
||||
payment = self.inbound_order.payment_ids
|
||||
self.assertEqual(payment.payment_line_date, date(2024, 6, 1))
|
||||
payment_move = payment.move_id
|
||||
self.assertEqual(payment_move.date, date(2024, 4, 1)) # now
|
||||
self.assertEqual(
|
||||
payment_move.line_ids.mapped("date_maturity"),
|
||||
[date(2024, 6, 1), date(2024, 6, 1)],
|
||||
)
|
||||
self.assertEqual(self.inbound_order.payment_count, 1)
|
||||
self.inbound_order.open2generated()
|
||||
self.inbound_order.generated2uploaded()
|
||||
self.assertEqual(self.inbound_order.state, "uploaded")
|
||||
payment = self.inbound_order.payment_ids
|
||||
self.assertEqual(payment.payment_line_date, date(2024, 6, 1))
|
||||
payment_move = payment.move_id
|
||||
self.assertEqual(payment_move.date, date(2024, 4, 1)) # now
|
||||
self.assertEqual(
|
||||
payment_move.line_ids.mapped("date_maturity"),
|
||||
|
||||
Reference in New Issue
Block a user