orders.py 4.4 KB

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