from odoo import api, fields, models class AccountCfdiLine(models.Model): _name = 'account.cfdi.line' _description = 'Linea de complemento CFDI' sequence = fields.Integer(string='Secuencia') name = fields.Char() cfdi_id = fields.Many2one(comodel_name="account.cfdi", string="CFDI") company_id = fields.Many2one(comodel_name='res.company', string='Empresa', related='cfdi_id.company_id') code_cfdi = fields.Char(string='UUID') date = fields.Date(string='Fecha') folio = fields.Char(string='Folio') payment_method = fields.Char(string='Forma de pago') location = fields.Char(string='Lugar de expedición') payment_type = fields.Selection(string='Método de pago', selection=[('PPD', 'PPD'), ('PUE', 'PUE')]) currency = fields.Char(string='Moneda') certificate_number = fields.Char(string='Nro. de certificado') stamp = fields.Char(string='Sello') serie = fields.Char(string='Serie') subtotal = fields.Float(string='Subtotal') cfdi_type = fields.Selection(selection=[ ('I', u'Facturas de clientes'), ('SI', u'Facturas de proveedor'), ('E', u'Notas de crédito cliente'), ('SE', u'Notas de crédito proveedor'), ('P', u'REP de clientes'), ('SP', u'REP de proveedores'), ('N', u'Nóminas de empleados'), ('SN', u'Nómina propia'), ('T', u'Factura de traslado cliente'), ('ST', u'Factura de traslado proveedor'), ], string='Tipo de comprobante', index=True) total = fields.Float(string='Total', readonly=True) version = fields.Char(string='Versión', readonly=True) emitter_id = fields.Many2one(comodel_name='res.partner', string='Emisor') receiver_id = fields.Many2one(comodel_name='res.partner', string='Receptor') quantity = fields.Float(string='Cantidad', digits='Product Unit of Measure') product_code = fields.Char(string='Clave') uom_code = fields.Char(string='Clave unidad') description = fields.Char(string='Descripción') discount = fields.Float(string='Descuento') amount = fields.Float(string='Importe') unit_price = fields.Float(string='Valor unitario', digits='Product Price') no_identification = fields.Char(string='Identificación', readonly=True) uom = fields.Char(string='Unidad', readonly=True) uom_id = fields.Many2one(comodel_name='uom.uom', string='Unidad de medida') unspsc_product_category_id = fields.Many2one(comodel_name='product.unspsc.code', string='Categoria') product_tmpl_id = fields.Many2one(comodel_name='product.template', string='Plantilla del producto') product_id = fields.Many2one(comodel_name='product.product', string='Producto') account_id = fields.Many2one(comodel_name='account.account', string='Cuenta contable') account_analytic_account_id = fields.Many2one(comodel_name='account.analytic.account', string='Cuenta analítica') analytic_distribution = fields.Json(string="Distribución analítica") analytic_precision = fields.Integer(string="Precisión analítica", store=False, default=lambda self: self.env['decimal.precision'].precision_get("Percentage Analytic")) tax_ids = fields.One2many('account.cfdi.tax', 'concept_id', string='Impuestos')