@@ -78,47 +78,41 @@ 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
84
85
and donation .payment_mode_id .payment_type == "inbound"
85
86
and donation .payment_mode_id .payment_order_ok
87
+ and donation .payment_mode_id .payment_method_code == "sepa_direct_debit"
86
88
and donation .move_id
87
89
):
88
- payorders = apoo .search (
89
- [
90
- ("state" , "=" , "draft" ),
91
- ("company_id" , "=" , donation .company_id .id ),
92
- ("payment_mode_id" , "=" , donation .payment_mode_id .id ),
93
- ]
94
- )
95
- msg = False
96
- if payorders :
97
- payorder = payorders [0 ]
98
- else :
99
- payorder_vals = donation ._prepare_payment_order ()
100
- payorder = apoo .create (payorder_vals )
101
- msg = _ (
102
- "A new draft direct debit order "
103
- "<a href=# data-oe-model=account.payment.order "
104
- "data-oe-id=%d>%s</a> has been automatically created"
105
- ) % (payorder .id , payorder .name )
106
- # add payment line
107
90
match_account_id = (
108
91
donation .payment_mode_id .fixed_journal_id .donation_debit_order_account_id .id
109
92
)
110
93
for mline in donation .move_id .line_ids :
111
94
if mline .account_id .id == match_account_id :
112
- 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 )
113
115
break
114
- if not msg :
115
- msg = _ (
116
- "A new payment line has been automatically added "
117
- "to the existing draft direct debit order "
118
- "<a href=# data-oe-model=account.payment.order "
119
- "data-oe-id=%d>%s</a>."
120
- ) % (payorder .id , payorder .name )
121
- donation .message_post (body = msg )
122
116
return res
123
117
124
118
def done2cancel (self ):
0 commit comments