orders.py 3.5 KB

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