Skip to content

Commit c086102

Browse files
committed
[IMP] donation_direct_debit: improve code and chatter message
1 parent 3124fc2 commit c086102

File tree

1 file changed

+21
-28
lines changed

1 file changed

+21
-28
lines changed

donation_direct_debit/models/donation.py

+21-28
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ def validate(self):
7878
an existing draft Direct Debit pay order"""
7979
res = super().validate()
8080
apoo = self.env["account.payment.order"].sudo()
81+
aplo = self.env["account.payment.line"].sudo()
8182
for donation in self:
8283
if (
8384
donation.payment_mode_id
@@ -86,40 +87,32 @@ def validate(self):
8687
and donation.payment_mode_id.payment_method_code == "sepa_direct_debit"
8788
and donation.move_id
8889
):
89-
payorders = apoo.search(
90-
[
91-
("state", "=", "draft"),
92-
("company_id", "=", donation.company_id.id),
93-
("payment_mode_id", "=", donation.payment_mode_id.id),
94-
]
95-
)
96-
msg = False
97-
if payorders:
98-
payorder = payorders[0]
99-
else:
100-
payorder_vals = donation._prepare_payment_order()
101-
payorder = apoo.create(payorder_vals)
102-
msg = _(
103-
"A new draft direct debit order "
104-
"<a href=# data-oe-model=account.payment.order "
105-
"data-oe-id=%d>%s</a> has been automatically created"
106-
) % (payorder.id, payorder.name)
107-
# add payment line
10890
match_account_id = (
10991
donation.payment_mode_id.fixed_journal_id.donation_debit_order_account_id.id
11092
)
11193
for mline in donation.move_id.line_ids:
11294
if mline.account_id.id == match_account_id:
113-
mline.sudo().create_payment_line_from_move_line(payorder)
95+
payorder = apoo.search(
96+
[
97+
("state", "=", "draft"),
98+
("company_id", "=", donation.company_id.id),
99+
("payment_mode_id", "=", donation.payment_mode_id.id),
100+
],
101+
limit=1,
102+
)
103+
if not payorder:
104+
payorder_vals = donation._prepare_payment_order()
105+
payorder = apoo.create(payorder_vals)
106+
payline_vals = mline._prepare_payment_line_vals(payorder)
107+
payline = aplo.create(payline_vals)
108+
msg = _(
109+
"A new payment line %s has been automatically added "
110+
"to the draft direct debit order "
111+
"<a href=# data-oe-model=account.payment.order "
112+
"data-oe-id=%d>%s</a>."
113+
) % (payline.name, payorder.id, payorder.name)
114+
donation.message_post(body=msg)
114115
break
115-
if not msg:
116-
msg = _(
117-
"A new payment line has been automatically added "
118-
"to the existing draft direct debit order "
119-
"<a href=# data-oe-model=account.payment.order "
120-
"data-oe-id=%d>%s</a>."
121-
) % (payorder.id, payorder.name)
122-
donation.message_post(body=msg)
123116
return res
124117

125118
def done2cancel(self):

0 commit comments

Comments
 (0)