bemade-addons/replace_invoicing_user/wizard/sale_order.py
2025-05-29 21:35:47 -04:00

46 lines
No EOL
1.9 KiB
Python

from odoo import models, fields, api, _
class SaleOrder(models.Model):
_inherit = "sale.order"
def _prepare_invoice(self):
invoice_vals = super()._prepare_invoice()
# Get configuration parameters
use_current_user = self.env['ir.config_parameter'].sudo().get_param(
'current_user_as_invoice_user.use_current_user', 'True'
).lower() == 'true'
specific_user_id = int(self.env['ir.config_parameter'].sudo().get_param(
'current_user_as_invoice_user.specific_user_id', '0'
))
# Determine which user to use
if use_current_user:
user_id = self.env.user.id
else:
user_id = specific_user_id if specific_user_id else self.env.user.id
# Ne pas tracker les followers si on n'utilise pas l'utilisateur courant
# Cette valeur sera lue depuis le contexte par le modèle account.move
self = self.with_context(no_follower_tracking=True, specific_invoice_user_id=specific_user_id)
invoice_vals.update({
'invoice_user_id': user_id,
'user_id': user_id,
})
return invoice_vals
def _create_invoices(self, grouped=False, final=False, date=None):
# Si on utilise un utilisateur spécifique, il faut aussi passer le contexte ici
use_current_user = self.env['ir.config_parameter'].sudo().get_param(
'current_user_as_invoice_user.use_current_user', 'True'
).lower() == 'true'
if not use_current_user:
specific_user_id = int(self.env['ir.config_parameter'].sudo().get_param(
'current_user_as_invoice_user.specific_user_id', '0'
))
self = self.with_context(no_follower_tracking=True, specific_invoice_user_id=specific_user_id)
return super()._create_invoices(grouped=grouped, final=final, date=date)