Merge PR #1311 into 14.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2024-07-10 15:56:25 +00:00
4 changed files with 43 additions and 13 deletions

View File

@@ -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:

View File

@@ -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:

View File

@@ -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.

View File

@@ -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"),