37 lines
1.5 KiB
Python
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
|