@@ -78,6 +78,7 @@ def validate(self):
78
78
an existing draft Direct Debit pay order"""
79
79
res = super ().validate ()
80
80
apoo = self .env ["account.payment.order" ].sudo ()
81
+ aplo = self .env ["account.payment.line" ].sudo ()
81
82
for donation in self :
82
83
if (
83
84
donation .payment_mode_id
@@ -86,40 +87,32 @@ def validate(self):
86
87
and donation .payment_mode_id .payment_method_code == "sepa_direct_debit"
87
88
and donation .move_id
88
89
):
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
108
90
match_account_id = (
109
91
donation .payment_mode_id .fixed_journal_id .donation_debit_order_account_id .id
110
92
)
111
93
for mline in donation .move_id .line_ids :
112
94
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 )
114
115
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 )
123
116
return res
124
117
125
118
def done2cancel (self ):
0 commit comments