models.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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',
  23. on_delete=models.PROTECT)
  24. project = models.ManyToManyField(Option, verbose_name=u'项目', related_name='customer_category', editable=False, 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. class Meta:
  31. db_table = 'report_customer'
  32. verbose_name = u'客户报备'
  33. ordering = ['-id']
  34. default_permissions = ()
  35. permissions = [
  36. ('view_customer', u'查看'),
  37. ('add_customer', u'添加'),
  38. ('update_customer', u'更新'),
  39. ('delete_customer', u'删除'),
  40. ('check_customer', u'审核'),
  41. ]
  42. def check_customer(self, user):
  43. # 审核
  44. if self.report_status == ReportCustomer.REPEAT_REPORT:
  45. raise CustomError('当前客户报备状态为重复报备!')
  46. if self.report_status == ReportCustomer.NOT_CHECKED:
  47. self.check_user = user
  48. self.report_status = ReportCustomer.CHECKED
  49. self.check_time = timezone.now()
  50. self.save()
  51. # if self.report_status == Customer.CHECKED:
  52. # # 撞单