talonario (copia).py 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields, api, tools, api, _
  3. from openerp.exceptions import ValidationError
  4. from datetime import datetime
  5. class Talonario(models.Model):
  6. _name = 'talonario'
  7. _description = 'Talonario para Facturación Electrónica'
  8. name = fields.Char(string='Nombre del Talonario', required=True)
  9. nombre_documento = fields.Char(string='Descripción del documento')
  10. tipo_documento = fields.Selection([
  11. ('1', 'Factura'),
  12. ('2', 'Factura electrónica de exportación'),
  13. ('3', 'Factura electrónica de importación')
  14. ], 'Tipo documento', required=True)
  15. timbrado_electronico = fields.Selection([
  16. ('1', 'Factura electrónica'),
  17. ('2', 'Factura electrónica de exportación'),
  18. ('3', 'Factura electrónica de importación'),
  19. ('4', 'Autofactura electrónica'),
  20. ('5', 'Nota de crédito electrónica'),
  21. ('6', 'Nota de débito electrónica'),
  22. ('7', 'Nota de remisión electrónica'),
  23. ('8', 'Comprobante de retención electrónico')
  24. ], 'Tipo de documento electrónico')
  25. invoice_ids = fields.One2many('account.invoice', 'talonario_id', string='Facturas', readonly=True, copy=False)
  26. # actividad_economica = fields.Char(string='Actividad económica')
  27. # codigo_actividad = fields.Char(string='Código de actividad económica')
  28. # fecha_inicio = fields.Date(string='Fecha de Inicio', required=True)
  29. # fecha_final = fields.Date(string='Fecha Final', required=True)
  30. # suc = fields.Char(string='Sucursal', required=True)
  31. # sec = fields.Char(string='Punto de Expedición', required=True)
  32. # nro_ini = fields.Integer(string='Número Inicial', required=True)
  33. # nro_fin = fields.Integer(string='Número Final', required=True)
  34. # ultimo_nro_utilizado = fields.Integer(string='Último Número Utilizado', default=0)
  35. # activo = fields.Boolean(string='Activo', default=True)
  36. # company_id = fields.Many2one('res.company', string='Compania', required=True)
  37. # journal_id = fields.Many2one('account.journal', string='Diario', required=True)
  38. # company_name = fields.Char(string='Empresa', related='company_id.name', readonly=True)
  39. # user_ids = fields.Many2many('res.users', 'talonario_res_users_rel', 'talonario_id', 'user_id', string='Usuarios')
  40. # @api.constrains('ultimo_nro_utilizado')
  41. # def _check_secuencia_limite(self):
  42. # for record in self:
  43. # if record.ultimo_nro_utilizado >= record.nro_fin:
  44. # raise ValidationError(_('El número de factura ha alcanzado el límite del timbrado. Solicite un nuevo timbrado para continuar.'))
  45. class AccountInvoice(models.Model):
  46. _inherit = 'account.invoice'
  47. talonario_id = fields.Many2one('talonario', string='Talonario')
  48. # @api.model
  49. # def create(self, vals):
  50. # talonario = self.env['talonario'].browse(vals.get('talonario_id'))
  51. # if talonario.ultimo_nro_utilizado >= talonario.nro_fin:
  52. # raise ValidationError(_('El talonario seleccionado ha alcanzado su límite. Solicite uno nuevo.'))
  53. # # Incrementa el último número utilizado
  54. # talonario.ultimo_nro_utilizado += 1
  55. # return super(AccountInvoice, self).create(vals)