orders.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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. help_text=HelpTexts.note,
  42. default='Записи'
  43. )
  44. time_created = models.DateTimeField(
  45. auto_now_add=True,
  46. help_text=HelpTexts.time_created
  47. )
  48. time_placed = models.DateTimeField(
  49. help_text=HelpTexts.time_placed
  50. )
  51. time_start = models.DateTimeField(
  52. null=True,
  53. help_text=HelpTexts.time_start
  54. )
  55. time_start_real = models.DateTimeField(
  56. null=True,
  57. help_text=HelpTexts.time_start_real
  58. )
  59. time_start_predicted = models.DateTimeField(
  60. null=True,
  61. help_text=HelpTexts.time_start_predicted
  62. )
  63. time_finish_real = models.DateTimeField(
  64. null=True,
  65. help_text=HelpTexts.time_finish_real
  66. )
  67. time_finish_predicted = models.DateTimeField(
  68. help_text=HelpTexts.time_finish_predicted
  69. )
  70. real_price = models.FloatField(
  71. help_text=HelpTexts.real_price
  72. )
  73. predicted_price = models.FloatField(
  74. help_text=HelpTexts.predicted_price
  75. )
  76. # NOTE: Возможно в будующем можнос сделать символом
  77. asap = models.BooleanField(
  78. default=False,
  79. help_text=HelpTexts.asap
  80. )
  81. # OTHER
  82. is_global = models.CharField(
  83. max_length=1,
  84. default="f",
  85. choices = list(dicts.is_global_by_code.items()),
  86. help_text=HelpTexts.is_global
  87. )
  88. is_visible = models.CharField(
  89. max_length=1,
  90. default="f",
  91. choices = list(dicts.is_visible_by_code.items()),
  92. help_text=HelpTexts.is_visible
  93. )
  94. # FK
  95. ticket = models.ForeignKey(
  96. Ticket,
  97. null=True,
  98. on_delete=models.DO_NOTHING,
  99. help_text=HelpTexts.ticket
  100. )
  101. service = models.ForeignKey(
  102. Service,
  103. null=True,
  104. on_delete=models.DO_NOTHING,
  105. help_text=HelpTexts.service
  106. )
  107. service_category = models.ForeignKey(
  108. ServiceCategory,
  109. null=True,
  110. on_delete=models.DO_NOTHING,
  111. help_text=HelpTexts.service_category
  112. )
  113. client = models.ForeignKey(
  114. Client,
  115. null=True,
  116. on_delete=models.DO_NOTHING,
  117. help_text=HelpTexts.client
  118. )
  119. provider = models.ForeignKey(
  120. Provider,
  121. null=True,
  122. on_delete=models.DO_NOTHING,
  123. help_text=HelpTexts.provider
  124. )
  125. receiver = models.ForeignKey(
  126. get_user_model(),
  127. null=True,
  128. related_name="user",
  129. on_delete=models.DO_NOTHING,
  130. help_text=HelpTexts.receiver
  131. )
  132. company = models.ForeignKey(
  133. Company,
  134. on_delete=models.DO_NOTHING,
  135. null=True,
  136. help_text=HelpTexts.company
  137. )
  138. class Meta:
  139. db_table = "orders"
  140. verbose_name = "Заказ"
  141. verbose_name_plural = "Заказы"