crm_task.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # -*- coding:utf-8 -*-
  2. from openerp import fields, models, api
  3. from datetime import datetime
  4. class CrmTask(models.Model):
  5. _name="crm.task"
  6. name = fields.Char(string="Actividad")
  7. date_action_next = fields.Datetime('Fecha Prox. Accion')
  8. user_id = fields.Many2one('res.users', 'Responsable')
  9. partner_id = fields.Many2one('res.partner', 'Cliente')
  10. company_id = fields.Many2one('res.company', 'Compañia')
  11. description = fields.Text('Descripción')
  12. state = fields.Selection([
  13. ('pending', 'Pendiente'),
  14. ('done', 'Realizado'),
  15. ('cancel','Cancelado')],
  16. string='Estado', track_visibility='onchange', default='pending')
  17. priority = fields.Selection([('0','P'), ('1','Poco'),('2','Normal'), ('3','Alto')], 'Prioridad')
  18. date_closed = fields.Datetime('Cerrado', readonly=True)
  19. opportunity_id = fields.Many2one ('crm.lead', 'Oportunidad')
  20. create_date = fields.Datetime('Fecha de creación')
  21. task_type_id = fields.Many2one('crm.task.type',
  22. string="Tipo de Tarea", track_visibility='onchange')
  23. hex_value = fields.Char(
  24. string="Hex Value",
  25. related="task_type_id.color",
  26. store=False,
  27. size=7)
  28. def onchange_stage_id(self, cr, uid, ids, stage_id, context=None):
  29. return {'state': stage_id}
  30. def onchange_task_type(self, cr, uid, ids, task_type_id, context=None):
  31. return {'task_type_id': task_type_id}
  32. @api.one
  33. def action_done(self):
  34. if self.state == 'pending':
  35. self.state = 'done'
  36. # self.hex_value='#58ACFA'
  37. else:
  38. self.state = 'pending'
  39. # self.hex_value='#FA5858'
  40. @api.one
  41. def action_cancel(self):
  42. self.state = 'cancel'
  43. # self.hex_value='#A4A4A4'
  44. @api.multi
  45. def unlink(self):
  46. for all_id in self:
  47. res= self.env.cr.execute("DELETE FROM crm_task WHERE id= %s" % (all_id.id))
  48. return res
  49. # @api.multi
  50. # def write(self, vals):
  51. # vals = {
  52. # 'name': self.name,
  53. # 'date_action_next':self.date_action_next,
  54. # 'user_id': self.user_id.id,
  55. # 'partner_id': self.partner_id.id,
  56. # 'company_id': self.company_id.id,
  57. # 'description': self.description,
  58. # 'state': self.state,
  59. # 'priority': self.priority,
  60. # 'date_closed':self.date_closed,
  61. # 'opportunity_id':self.opportunity_id.id,
  62. # 'task_type_id': self.task_type_id.id,
  63. # 'hex_value': self.hex_value
  64. # }
  65. # res = super(CrmTask, self).create(vals)
  66. # return res
  67. @api.one
  68. def _current_datetime(self):
  69. now = datetime.now()
  70. if self.date_action_next < now.strftime("%Y-%m-%d %H:%M:00"):
  71. self.expired_date = True
  72. expired_date = fields.Boolean(string="Fecha Vencida", compute="_current_datetime", store=False)
  73. # @api.model
  74. # def create(self, vals):
  75. # return super(CrmTask, self).create(vals)