orders.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. from django.contrib.auth import get_user_model
  2. from django.db import models
  3. from dbsynce.models.client import Client
  4. from dbsynce.models.company import Company
  5. from dbsynce.models.provider import Provider
  6. from dbsynce.models.service import Service
  7. from dbsynce.models.service_category import ServiceCategory
  8. from tickets.models import Ticket
  9. from dbsynce.docs.database.orders import Orders as HelpTexts
  10. from core.settings_vars import METASERVICE_ID
  11. from dbsynce.lib import dicts
  12. #from tickets.lib import tickets_dicts
  13. class Orders(models.Model):
  14. """
  15. Orders - таблица с заказами
  16. """
  17. # ID METASERVICE
  18. id_metaservice = models.PositiveIntegerField(
  19. default=METASERVICE_ID,
  20. help_text=HelpTexts.id_metaservice
  21. )
  22. # DATA
  23. status = models.CharField(
  24. max_length=1,
  25. default="1",
  26. #TODO - maybe a key? What is the meaning?
  27. #choices = list(tickets_dicts.service_request_type_by_code.items())
  28. help_text=HelpTexts.status
  29. )
  30. title = models.CharField(
  31. max_length=150,
  32. help_text=HelpTexts.title,
  33. default='Заголовок'
  34. )
  35. note = models.CharField(
  36. max_length=150,
  37. help_text=HelpTexts.note,
  38. default='Записи'
  39. )
  40. time_created = models.DateTimeField(
  41. auto_now_add=True,
  42. help_text=HelpTexts.time_created
  43. )
  44. time_placed = models.DateTimeField(
  45. help_text=HelpTexts.time_placed
  46. )
  47. time_start = models.DateTimeField(
  48. null=True,
  49. help_text=HelpTexts.time_start
  50. )
  51. time_start_real = models.DateTimeField(
  52. null=True,
  53. help_text=HelpTexts.time_start_real
  54. )
  55. time_start_predicted = models.DateTimeField(
  56. null=True,
  57. help_text=HelpTexts.time_start_predicted
  58. )
  59. time_finish_real = models.DateTimeField(
  60. null=True,
  61. help_text=HelpTexts.time_finish_real
  62. )
  63. time_finish_predicted = models.DateTimeField(
  64. help_text=HelpTexts.time_finish_predicted
  65. )
  66. real_price = models.FloatField(
  67. help_text=HelpTexts.real_price
  68. )
  69. predicted_price = models.FloatField(
  70. help_text=HelpTexts.predicted_price
  71. )
  72. # NOTE: Возможно в будующем можнос сделать символом
  73. asap = models.BooleanField(
  74. default=False,
  75. help_text=HelpTexts.asap
  76. )
  77. # OTHER
  78. is_global = models.CharField(
  79. max_length=1,
  80. default="f",
  81. choices = list(dicts.is_global_by_code.items()),
  82. help_text=HelpTexts.is_global
  83. )
  84. is_visible = models.CharField(
  85. max_length=1,
  86. default="f",
  87. choices = list(dicts.is_visible_by_code.items()),
  88. help_text=HelpTexts.is_visible
  89. )
  90. # FK
  91. ticket = models.ForeignKey(
  92. Ticket,
  93. null=True,
  94. on_delete=models.DO_NOTHING,
  95. help_text=HelpTexts.ticket
  96. )
  97. service = models.ForeignKey(
  98. Service,
  99. null=True,
  100. on_delete=models.DO_NOTHING,
  101. help_text=HelpTexts.service
  102. )
  103. service_category = models.ForeignKey(
  104. ServiceCategory,
  105. null=True,
  106. on_delete=models.DO_NOTHING,
  107. help_text=HelpTexts.service_category
  108. )
  109. client = models.ForeignKey(
  110. Client,
  111. null=True,
  112. on_delete=models.DO_NOTHING,
  113. help_text=HelpTexts.client
  114. )
  115. provider = models.ForeignKey(
  116. Provider,
  117. null=True,
  118. on_delete=models.DO_NOTHING,
  119. help_text=HelpTexts.provider
  120. )
  121. receiver = models.ForeignKey(
  122. get_user_model(),
  123. null=True,
  124. related_name="user",
  125. on_delete=models.DO_NOTHING,
  126. help_text=HelpTexts.receiver
  127. )
  128. company = models.ForeignKey(
  129. Company,
  130. on_delete=models.DO_NOTHING,
  131. null=True,
  132. help_text=HelpTexts.company
  133. )
  134. class Meta:
  135. db_table = "orders"
  136. verbose_name = "Заказ"
  137. verbose_name_plural = "Заказы"