# -*- coding: utf-8 -*- from openerp import fields, models, api from openerp.exceptions import Warning as UserError class ProjectServiceCommission(models.Model): _name = 'project.service.commission' name = fields.Char(string='Nombre', compute="_get_commission_name", required=True) task_id = fields.Many2one('project.service.task', string='Tarea', required=True) activity_id = fields.Many2one('project.service.activity', string='Trabajo', required=True) user_id = fields.Many2one('res.users', string='Funcionario', required=True) amount = fields.Float(string='Commission', required=True) @api.one @api.depends('activity_id','user_id') def _get_commission_name(self): self.name = self.activity_id.name + ' / ' + self.user_id.name class ProjectServiceCommissionWizard(models.TransientModel): _name = 'project.service.commission.wizard' name = fields.Char('Nombre') task_id = fields.Many2one('project.service.task', string='Tarea') activity_id = fields.Many2one('project.service.activity', string='Trabajo', required=True, domain="[('task_id','=',task_id)]") user_id = fields.Many2one('res.users', string='Funcionario', required=True, domain="[('id','!=',1)]") amount = fields.Float('Commission', required=True) @api.one @api.onchange('activity_id') def onchange_activity(self): self.user_id = self.activity_id.user_id.id @api.one def add_commision(self): active_id = self._context['active_id'] task = self.env['project.service.task'].browse(active_id) val = { 'task_id': active_id, 'activity_id': self.activity_id.id, 'user_id': self.user_id.id, 'amount': self.amount, } self.env['project.service.commission'].create(val)