12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # -*- coding: utf-8 -*-
- from openerp import models, fields, api, tools, api, _
- from openerp.exceptions import ValidationError
- from datetime import datetime
- class Talonario(models.Model):
- _name = 'talonario'
- _description = 'Talonario para Facturación Electrónica'
- name = fields.Char(string='Nombre del Talonario', required=True)
- nombre_documento = fields.Char(string='Descripción del documento')
- tipo_documento = fields.Selection([
- ('1', 'Factura'),
- ('2', 'Factura electrónica de exportación'),
- ('3', 'Factura electrónica de importación')
- ], 'Tipo documento', required=True)
- timbrado_electronico = fields.Selection([
- ('1', 'Factura electrónica'),
- ('2', 'Factura electrónica de exportación'),
- ('3', 'Factura electrónica de importación'),
- ('4', 'Autofactura electrónica'),
- ('5', 'Nota de crédito electrónica'),
- ('6', 'Nota de débito electrónica'),
- ('7', 'Nota de remisión electrónica'),
- ('8', 'Comprobante de retención electrónico')
- ], 'Tipo de documento electrónico')
- invoice_ids = fields.One2many('account.invoice', 'talonario_id', string='Facturas', readonly=True, copy=False)
- # actividad_economica = fields.Char(string='Actividad económica')
- # codigo_actividad = fields.Char(string='Código de actividad económica')
- # fecha_inicio = fields.Date(string='Fecha de Inicio', required=True)
- # fecha_final = fields.Date(string='Fecha Final', required=True)
- # suc = fields.Char(string='Sucursal', required=True)
- # sec = fields.Char(string='Punto de Expedición', required=True)
- # nro_ini = fields.Integer(string='Número Inicial', required=True)
- # nro_fin = fields.Integer(string='Número Final', required=True)
- # ultimo_nro_utilizado = fields.Integer(string='Último Número Utilizado', default=0)
- # activo = fields.Boolean(string='Activo', default=True)
- # company_id = fields.Many2one('res.company', string='Compania', required=True)
- # journal_id = fields.Many2one('account.journal', string='Diario', required=True)
- # company_name = fields.Char(string='Empresa', related='company_id.name', readonly=True)
- # user_ids = fields.Many2many('res.users', 'talonario_res_users_rel', 'talonario_id', 'user_id', string='Usuarios')
- # @api.constrains('ultimo_nro_utilizado')
- # def _check_secuencia_limite(self):
- # for record in self:
- # if record.ultimo_nro_utilizado >= record.nro_fin:
- # raise ValidationError(_('El número de factura ha alcanzado el límite del timbrado. Solicite un nuevo timbrado para continuar.'))
- class AccountInvoice(models.Model):
- _inherit = 'account.invoice'
- talonario_id = fields.Many2one('talonario', string='Talonario')
- # @api.model
- # def create(self, vals):
- # talonario = self.env['talonario'].browse(vals.get('talonario_id'))
- # if talonario.ultimo_nro_utilizado >= talonario.nro_fin:
- # raise ValidationError(_('El talonario seleccionado ha alcanzado su límite. Solicite uno nuevo.'))
- # # Incrementa el último número utilizado
- # talonario.ultimo_nro_utilizado += 1
- # return super(AccountInvoice, self).create(vals)
|