models.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # coding=utf-8
  2. from django.db import models
  3. from django.conf import settings
  4. from django.utils import timezone
  5. from apps.option.models import Option
  6. from apps.customer.models import NewCustomer
  7. from utils.format import strftime
  8. class Order(models.Model):
  9. NORMAL = 1
  10. ABANDONED = 2
  11. WAIT_DISPATCH = 3
  12. STATUS_CHOICES = (
  13. (NORMAL, u'正常'),
  14. (ABANDONED, u'放弃'),
  15. (WAIT_DISPATCH, u'进度待分配'),
  16. )
  17. no = models.CharField(max_length=50, verbose_name='单号', blank=True)
  18. project = models.ManyToManyField(Option, verbose_name=u'项目', related_name='order_category', editable=False)
  19. stage_progress = models.ForeignKey(Option, verbose_name=u'阶段进度', related_name='order_stage_progress',
  20. on_delete=models.PROTECT)
  21. customer = models.ForeignKey(NewCustomer, related_name='order_customer', verbose_name=u"订单客户",
  22. on_delete=models.PROTECT)
  23. service_user = models.ForeignKey(settings.AUTH_USER_MODEL,related_name='order_service_user', verbose_name=u"服务人员",
  24. on_delete=models.PROTECT)
  25. create_time = models.DateTimeField(verbose_name=u'下单时间', auto_now_add=True, editable=False)
  26. status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u"订单状态", default=NORMAL)
  27. notes = models.CharField(max_length=500, verbose_name=u"备注", null=True)
  28. class Meta:
  29. db_table = "order"
  30. verbose_name = u"订单管理"
  31. ordering = ('-id',)
  32. default_permissions = ()
  33. permissions = [
  34. ('view_order', u'查看'),
  35. ('update_order_process', u'更新进度'),
  36. ('order_process_dispatch', u'进度分配'),
  37. ]
  38. def get_no(self):
  39. now = timezone.now()
  40. no = '%s%d-%s' % ('DD', self.service_user.id, now.strftime('%Y%m%d%H%M%S'))
  41. return no
  42. class ProgressDetails(models.Model):
  43. order = models.ForeignKey(Order, verbose_name=u'订单', on_delete=models.PROTECT)
  44. operation = models.CharField(max_length=500, verbose_name='操作')
  45. user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"操作人", on_delete=models.PROTECT,
  46. editable=False)
  47. notes = models.CharField(max_length=500, verbose_name='备注', null=True)
  48. operation_time = models.DateTimeField(verbose_name='操作时间', auto_now_add=True)
  49. class Meta:
  50. db_table = 'progress_details'
  51. verbose_name = '进度明细'
  52. ordering = ('-id', )
  53. default_permissions = ()
  54. def get_details(self,):
  55. dict = {
  56. 'operation': self.operation,
  57. 'user': self.user.name,
  58. 'notes': self.notes,
  59. 'operation_time': strftime(self.operation_time),
  60. }
  61. return dict