# -*- coding: utf-8 -*- from openerp import models, fields, api from openerp.exceptions import except_orm, Warning, RedirectWarning class CarCarModify(models.Model): _inherit = 'car.car' name = fields.Many2one('car.service', string='Nombre del vehiculo', required=True) agent_id = fields.Many2one('res.partner', string='Agente de Seguro') policy = fields.Boolean() @api.one @api.onchange('name') def onchange_name(self): self.partner_id = self.name.partner_id.id self.agent_id = self.name.agent_id.id self.policy = self.name.policy date_in = fields.Date('Fecha de entrada', default=fields.Date.today()) date_out = fields.Date('Fecha de Salida') image_medium = fields.Binary('Binary File', related="name.logo") @api.multi def unlink(self): for project in self: if project.state in ('close'): raise Warning('No puedes borrar un proyecto en estado cerrado') if len(project.task_ids) > 0: raise Warning('No puedes borrar un proyecto que tiene tareas') return super(CarCarModify, self).unlink() def on_change_vehicle(self): if not self.name: return {} model = self.pool.get('car.service').browse(self.name) return { 'value': { 'image_medium': model.logo, } } class CarWorkshopModify(models.Model): _inherit = 'car.workshop' invoice_ids = fields.One2many('account.invoice', 'work_invoice_id') invoice_count = fields.Integer( string='Facturas', compute='_get_invoice_count', ) @api.one @api.depends('invoice_ids','state') def _get_invoice_count(self): self.invoice_count = len(self.invoice_ids) @api.multi def button_draft(self): if self.invoice_count > 0: raise Warning('Esta tarea tiene una factura asociada') if self.invoice_count == 0: for work in self: work.write({'state': 'waiting'}) return True @api.multi def unlink(self): for task in self: if task.state in ('workshop_create_invoices'): raise Warning(('No puedes borrar una tarea ya facturada')) if len(task.planned_works)>0: raise Warning(('No puedes borrar una tarea que tiene actividades')) return super(CarWorkshopModify, self).unlink() class AccountInvoiceModify(models.Model): _inherit = 'account.invoice' work_invoice_id = fields.Many2one('car.workshop')