orders.py 3.6 KB

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