orders.py 4.2 KB

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