models.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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, max_length=100, verbose_name=u'来源', related_name='customer_source',
  23. on_delete=models.PROTECT)
  24. project = models.ForeignKey(Option, max_length=100, verbose_name=u'项目', related_name='customer_category',
  25. on_delete=models.PROTECT)
  26. notes = models.CharField(max_length=500, verbose_name=u"备注", null=True)
  27. report_status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'报备状态', default=NOT_CHECKED)
  28. check_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'审核人', related_name='customer_check_user',
  29. on_delete=models.PROTECT,null=True)
  30. check_time = models.DateTimeField(verbose_name=u'审核时间', editable=False, null=True)
  31. class Meta:
  32. db_table = 'report_customer'
  33. verbose_name = u'客户报备'
  34. ordering = ['-id']
  35. default_permissions = ()
  36. permissions = [
  37. ('view_customer', u'查看'),
  38. ('add_customer', u'添加'),
  39. ('update_customer', u'更新'),
  40. ('delete_customer', u'删除'),
  41. ('check_customer', u'审核'),
  42. ]
  43. def check_customer(self, user):
  44. # 审核
  45. if self.report_status == ReportCustomer.REPEAT_REPORT:
  46. raise CustomError('当前客户报备状态为重复报备!')
  47. if self.report_status == ReportCustomer.NOT_CHECKED:
  48. self.check_user = user
  49. self.report_status = ReportCustomer.CHECKED
  50. self.check_time = timezone.now()
  51. self.save()
  52. # if self.report_status == Customer.CHECKED:
  53. # # 撞单