orders.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from .template import Template
  2. class Orders(models.Model):
  3. """
  4. Orders - таблица с заказами
  5. """
  6. id = models.IntegerField(
  7. primary_key=True
  8. )
  9. # ID METASERVICE
  10. id_metaservice = Template.id_metaservice
  11. # DATA
  12. status = models.CharField(
  13. max_length=150,
  14. help_text="текущий статус заказа из возможных на платформе"
  15. )
  16. title = models.CharField(
  17. max_length=150,
  18. help_text="заголовок заказа",
  19. default='Заголовок'
  20. )
  21. note = models.CharField(
  22. max_length=150,
  23. help_text="задание к заказу",
  24. default='Записи'
  25. )
  26. time_created = models.DateTimeField(
  27. auto_now_add=True,
  28. help_text="время создания заказа"
  29. )
  30. time_placed = models.DateTimeField(
  31. help_text="время размещения заказа"
  32. )
  33. time_start = models.DateTimeField(
  34. null=True,
  35. help_text="время начала оказания услуги"
  36. )
  37. time_start_real = models.DateTimeField(
  38. null=True,
  39. help_text=""
  40. )
  41. time_start_predicted = models.DateTimeField(
  42. null=True,
  43. help_text=""
  44. )
  45. time_finish_real = models.DateTimeField(
  46. null=True,
  47. help_text="фактическое время окончания (точное установленное время)"
  48. )
  49. time_finish_predicted = models.DateTimeField(
  50. help_text="предварительное/расчетное время до окончания оказания услуги"
  51. )
  52. real_price = models.FloatField(
  53. help_text="цена с учетом тарифа поставщика услуг по факту оказания услуги"
  54. )
  55. predicted_price = models.FloatField(
  56. help_text="расчетная цена с учетом тарифа поставщика услуг"
  57. )
  58. asap = models.BooleanField(
  59. default=False,
  60. help_text="Срочный ли заказ"
  61. )
  62. # OTHER
  63. is_global = Template.is_global
  64. is_visible = Template.is_visible
  65. # FK
  66. ticket = models.ForeignKey(
  67. Ticket,
  68. null=True,
  69. on_delete=models.DO_NOTHING
  70. )
  71. service = models.ForeignKey(
  72. Service,
  73. null=True,
  74. on_delete=models.DO_NOTHING,
  75. help_text="спецификатор услуги провайдера, нужен для установления цены (id_service - уникальный идентификатор шаблона услуги, необходим для установления цены и исполнителей."
  76. )
  77. service_type = models.ForeignKey(
  78. ServiceType,
  79. null=True,
  80. on_delete=models.DO_NOTHING,
  81. help_text="тип заказа по классификатору услу"
  82. )
  83. client = models.ForeignKey(
  84. Client,
  85. null=True,
  86. on_delete=models.DO_NOTHING,
  87. help_text="клиент/аккаунт, который оплачивает все оказанные услуги"
  88. )
  89. provider = models.ForeignKey(
  90. Provider,
  91. null=True,
  92. on_delete=models.DO_NOTHING,
  93. help_text="уникальный идентификатор поставщика услуги/аккаунта, который оказывает услугу. Если несколько провайдеров собираются мета-сервисом в цепочку, где на уровне связи с клиентом нельзя установить одно ответственное лицо, то указывается вспомогательный мета-провайдер сервиса, и это означает, что мета-сервис несет ответственность перед пользователем за сборку услуги воедино."
  94. )
  95. receiver = models.ForeignKey(
  96. get_user_model(),
  97. null=True,
  98. related_name="user_id",
  99. on_delete=models.DO_NOTHING,
  100. help_text="пользователь/аккаунт, который принимает оказываемые услуги"
  101. )
  102. company = models.ForeignKey(
  103. Company,
  104. on_delete=models.DO_NOTHING,
  105. null=True,
  106. help_text="Идентификатор компании, к которой относится документ, если таковая есть (может не быть)"
  107. )