car_services.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # -*- encoding: utf-8 -*-
  2. from openerp import models, fields, api, tools
  3. from openerp.exceptions import ValidationError
  4. class CarService(models.Model):
  5. _name = 'car.service'
  6. name=fields.Char('Modelo y Número de chapa', required=True)
  7. logo = fields.Binary('Logo File')
  8. partner_id = fields.Many2one(
  9. 'res.partner',
  10. string='Cliente',
  11. ondelete='restrict'
  12. )
  13. description = fields.Text('Description', translate=True)
  14. policy = fields.Boolean()
  15. agent_id = fields.Many2one(
  16. 'res.partner',
  17. string='Agente',
  18. ondelete='restrict'
  19. )
  20. secure_id = fields.Many2one(
  21. 'res.partner',
  22. string='Aseguradora',
  23. ondelete='restrict'
  24. )
  25. odometer = fields.Float('Odometro')
  26. car_value = fields.Float('Valor del vehiculo')
  27. transmission = fields.Selection([('manual','Manual'), ('automatic','Automatico')], string="Tipo de transmision")
  28. fuel_type = fields.Selection([('gasoline','Gasolina'), ('diesel','Diesel'), ('electric','Electrico'), ('hybrid','Hibrido')], string="Tipo de combustible")
  29. seats = fields.Integer('Nro. de asientos')
  30. doors = fields.Integer('Nro. de puertas')
  31. car_brand_id = fields.Many2one(
  32. 'car.brand',
  33. string='Marca'
  34. )
  35. @api.one
  36. @api.constrains('name')
  37. def _controla_ruc(self):
  38. part_obj = self.env['car.service'].search([('name','=',self.name)])
  39. if len(part_obj) > 1:
  40. raise ValidationError('La chapa del vehículo debe ser único')
  41. class CarBrand(models.Model):
  42. _name = 'car.brand'
  43. name = fields.Char('Brand Name', required=True)
  44. description = fields.Text('Description', translate=True)
  45. logo = fields.Binary('Logo File')
  46. car_ids = fields.One2many(
  47. 'car.service',
  48. 'car_brand_id',
  49. )
  50. car_count = fields.Integer(
  51. string='Numero de autos',
  52. compute='_get_car_count',
  53. )
  54. @api.one
  55. @api.depends('car_ids')
  56. def _get_car_count(self):
  57. self.car_count = len(self.car_ids)