odoo18/addons/l10n_es_pos/models/pos_order.py

37 lines
1.5 KiB
Python

from odoo import api, fields, models
class PosOrder(models.Model):
_inherit = "pos.order"
is_l10n_es_simplified_invoice = fields.Boolean("Simplified invoice")
l10n_es_simplified_invoice_number = fields.Char("Simplified invoice number", compute="_compute_l10n_es_simplified_invoice_number")
@api.depends("account_move")
def _compute_l10n_es_simplified_invoice_number(self):
for order in self:
if order.is_l10n_es_simplified_invoice:
order.l10n_es_simplified_invoice_number = order.account_move.name
else:
order.l10n_es_simplified_invoice_number = False
def _generate_pos_order_invoice(self):
# Extend 'point_of_sale'
# Add the simplified partner in case we do a simplified invoice and no partner is set
if not self.config_id.is_spanish:
return super()._generate_pos_order_invoice()
for order in self:
if order.account_move or not order.to_invoice or not order.is_l10n_es_simplified_invoice:
continue
if not order.partner_id:
order.partner_id = self.config_id.simplified_partner_id
return super()._generate_pos_order_invoice()
def _prepare_invoice_vals(self):
res = super()._prepare_invoice_vals()
if self.config_id.is_spanish and self.is_l10n_es_simplified_invoice:
res["journal_id"] = self.config_id.l10n_es_simplified_invoice_journal_id.id
return res
def get_invoice_name(self):
return self.account_move.name