models.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # coding=utf-8
  2. from django.db import models
  3. from django.conf import settings
  4. from django.utils import timezone
  5. from utils.exceptions import CustomError
  6. from apps.option.models import Option
  7. class ReportCustomer(models.Model):
  8. NOT_CHECKED = 0
  9. CHECKED = 1
  10. REPEAT_REPORT = 2
  11. STATUS_CHOICES = (
  12. (NOT_CHECKED, '待审核'),
  13. (CHECKED, '已审核'),
  14. (REPEAT_REPORT, '重复报备')
  15. )
  16. name = models.CharField(max_length=100, verbose_name=u"姓名")
  17. tel = models.CharField(max_length=50, verbose_name=u'电话')
  18. gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u'性别',
  19. default=settings.MALE)
  20. village = models.CharField(max_length=100, verbose_name=u'小区')
  21. address = models.CharField(max_length=100, verbose_name=u'地址')
  22. source = models.ForeignKey(Option, verbose_name=u'来源', related_name='customer_source', on_delete=models.PROTECT)
  23. project = models.ManyToManyField(Option, verbose_name=u'项目', related_name='customer_category', editable=False,
  24. null=True,blank=True)
  25. notes = models.CharField(max_length=500, verbose_name=u"备注", null=True)
  26. report_status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'报备状态', default=NOT_CHECKED)
  27. check_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'审核人', related_name='customer_check_user',
  28. on_delete=models.PROTECT, null=True)
  29. check_time = models.DateTimeField(verbose_name=u'审核时间', null=True)
  30. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'添加人', related_name='customer_create_user',
  31. editable=False, on_delete=models.PROTECT)
  32. create_time = models.DateTimeField(verbose_name=u'添加时间', auto_now_add=True, editable=False)
  33. class Meta:
  34. db_table = 'report_customer'
  35. verbose_name = u'客户报备'
  36. ordering = ['-id']
  37. default_permissions = ()
  38. permissions = [
  39. ('view_report_customer', u'查看'),
  40. ('add_report_customer', u'添加'),
  41. ('update_report_customer', u'更新'),
  42. ('delete_report_customer', u'删除'),
  43. ('check_report_customer', u'审核'),
  44. ]
  45. # def check_customer(self, user):
  46. # # 审核
  47. # if self.report_status == ReportCustomer.REPEAT_REPORT:
  48. #
  49. #
  50. # if self.report_status == ReportCustomer.NOT_CHECKED:
  51. # self.check_user = user
  52. # self.report_status = ReportCustomer.CHECKED
  53. # self.check_time = timezone.now()
  54. # self.save()
  55. # # if self.report_status == Customer.CHECKED:
  56. # # # 撞单
  57. class NewCustomer(models.Model):
  58. report_customer = models.ForeignKey(ReportCustomer, verbose_name=u'报备客户信息', related_name='customer_source',
  59. on_delete=models.PROTECT)
  60. potential_level = models.ForeignKey(Option, verbose_name=u'潜客级别', related_name='potential_level',
  61. on_delete=models.PROTECT)
  62. stage_progress = models.ForeignKey(Option, verbose_name=u'阶段进度', related_name='stage_progress',
  63. on_delete=models.PROTECT)
  64. track_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'跟踪人', related_name='track_user',
  65. editable=False, on_delete=models.PROTECT)
  66. end_time = models.DateTimeField(verbose_name=u'最后跟踪时间', null=True)
  67. next_time = models.DateTimeField(verbose_name=u'下次跟踪时间', null=True)
  68. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'建档人', related_name='newcustomer_create_user',
  69. editable=False, on_delete=models.PROTECT)
  70. create_time = models.DateTimeField(verbose_name=u'建档时间', auto_now_add=True, editable=False)
  71. class Meta:
  72. db_table = 'new_customer'
  73. verbose_name = u'客户跟踪信息'
  74. ordering = ['-id']
  75. default_permissions = ()
  76. permissions = [
  77. ('view_new_customer', u'查看'),
  78. ('update_new_customer', u'更新'),
  79. ('delete_new_customer', u'删除'),
  80. ]