project_service_commission.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. from openerp import fields, models, api
  3. from openerp.exceptions import Warning as UserError
  4. class ProjectServiceCommission(models.Model):
  5. _name = 'project.service.commission'
  6. name = fields.Char(string='Nombre', compute="_get_commission_name", required=True)
  7. task_id = fields.Many2one('project.service.task', string='Tarea', required=True)
  8. activity_id = fields.Many2one('project.service.activity', string='Trabajo', required=True)
  9. user_id = fields.Many2one('res.users', string='Funcionario', required=True)
  10. amount = fields.Float(string='Commission', required=True)
  11. @api.one
  12. @api.depends('activity_id','user_id')
  13. def _get_commission_name(self):
  14. self.name = self.activity_id.name + ' / ' + self.user_id.name
  15. class ProjectServiceCommissionWizard(models.TransientModel):
  16. _name = 'project.service.commission.wizard'
  17. name = fields.Char('Nombre')
  18. task_id = fields.Many2one('project.service.task', string='Tarea')
  19. activity_id = fields.Many2one('project.service.activity', string='Trabajo', required=True, domain="[('task_id','=',task_id)]")
  20. user_id = fields.Many2one('res.users', string='Funcionario', required=True, domain="[('id','!=',1)]")
  21. amount = fields.Float('Commission', required=True)
  22. @api.one
  23. @api.onchange('activity_id')
  24. def onchange_activity(self):
  25. self.user_id = self.activity_id.user_id.id
  26. @api.one
  27. def add_commision(self):
  28. active_id = self._context['active_id']
  29. task = self.env['project.service.task'].browse(active_id)
  30. val = {
  31. 'task_id': active_id,
  32. 'activity_id': self.activity_id.id,
  33. 'user_id': self.user_id.id,
  34. 'amount': self.amount,
  35. }
  36. self.env['project.service.commission'].create(val)