Files
odoo-usability/sale_down_payment/models/account_payment.py
2024-03-15 15:23:43 +01:00

34 lines
1.2 KiB
Python

# Copyright 2019-2024 Akretion France (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class AccountPayment(models.Model):
_inherit = 'account.payment'
sale_id = fields.Many2one('sale.order', string='Sale Order')
def _prepare_move_line_default_vals(self, write_off_line_vals=None):
line_vals_list = super()._prepare_move_line_default_vals(
write_off_line_vals=write_off_line_vals)
# Add to the receivable/payable line
if (
self.sale_id and
len(line_vals_list) >= 2 and
line_vals_list[1].get('account_id') == self.destination_account_id.id):
line_vals_list[1]['sale_id'] = self.sale_id.id
return line_vals_list
def action_post(self):
super().action_post()
for pay in self:
if pay.sale_id and pay.payment_type == 'inbound':
pay._sale_down_payment_hook()
def _sale_down_payment_hook(self):
# can be used for notifications
# WAS on account.move.line on v12 ; is on account.payment on v14
self.ensure_one()