1
0

company.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. from django.contrib.auth import get_user_model
  2. from django.db import models
  3. from tickets.models import Ticket
  4. from dbsynce.docs.database.company import Company as HelpTexts
  5. from core.settings_vars import METASERVICE_ID
  6. class Company(models.Model):
  7. """
  8. Company - это таблица с партнерами сервисов. Партнер сервиса -
  9. юридическое лицо или ИП, которое непосредственно организует работу с
  10. исполнителями и отвечает перед клиентами и перед сервисом за качество
  11. оказанных услуг. Юридически это лица, фактически оказывающие услуги
  12. по договору.
  13. """
  14. # ID METASERVICE
  15. # FIXME: id_metaservice должно принимать текущий идентификатор метасервиса, на котором происходит создание записи
  16. id_metaservice = models.PositiveIntegerField(
  17. default=METASERVICE_ID,
  18. help_text=HelpTexts.id_metaservice
  19. )
  20. # DATA
  21. requirements = models.CharField(
  22. "Ограничения",
  23. max_length=150,
  24. default="DS01y04y05y06y07yMPUCS13MPUB",
  25. help_text=HelpTexts.requirements
  26. )
  27. status = models.CharField(
  28. "Статус",
  29. max_length=150,
  30. default="deactivated",
  31. help_text=HelpTexts.status
  32. )
  33. legal_name = models.CharField(
  34. "Название организации",
  35. max_length=150,
  36. help_text=HelpTexts.legal_name
  37. )
  38. address = models.CharField(
  39. "Юридический адрес",
  40. max_length=150,
  41. help_text=HelpTexts.address
  42. )
  43. inn = models.CharField(
  44. "ИНН компании",
  45. max_length=12,
  46. unique=True,
  47. help_text=HelpTexts.inn
  48. )
  49. kpp = models.CharField(
  50. "КПП компании",
  51. max_length=9,
  52. help_text=HelpTexts.kpp
  53. )
  54. ogrn = models.CharField(
  55. "ОГРН компании",
  56. max_length=15,
  57. help_text=HelpTexts.ogrn
  58. )
  59. bank_name = models.CharField(
  60. "Название банка",
  61. max_length=150,
  62. help_text=HelpTexts.bank_name
  63. )
  64. bik = models.CharField(
  65. "БИК компании",
  66. max_length=11,
  67. help_text=HelpTexts.bik
  68. )
  69. rs = models.CharField(
  70. "Расчетный счет",
  71. max_length=20,
  72. help_text=HelpTexts.rs
  73. )
  74. ks = models.CharField(
  75. "Корреспондентский счет",
  76. max_length=20,
  77. help_text=HelpTexts.ks
  78. )
  79. tax_method = models.IntegerField(
  80. help_text=HelpTexts.tax_method
  81. )
  82. # OTHER
  83. is_global = models.CharField(
  84. max_length=1,
  85. default="f",
  86. help_text="Доступно ли для хранения в глобальном сервисе / Нужна синхронизация данных"
  87. )
  88. is_visible = models.CharField(
  89. max_length=1,
  90. default="f",
  91. help_text="Доступно ли для планирования в цепочке с другими услугами в глобальном сервисе"
  92. )
  93. # FK
  94. repr = models.ForeignKey(
  95. get_user_model(),
  96. blank=True,
  97. verbose_name="Представитель организации",
  98. on_delete=models.DO_NOTHING,
  99. help_text="Уникальный идентификатор представителя компании"
  100. )
  101. ticket_status = models.ForeignKey(
  102. Ticket,
  103. on_delete=models.SET_NULL,
  104. blank=True,
  105. null=True,
  106. help_text="ID заявки, привязанной к текущей записи",
  107. verbose_name="Связанный тикет"
  108. )
  109. def deactivate(self):
  110. self.status = "deactivated"
  111. self.save()
  112. class Meta:
  113. db_table = "company"
  114. verbose_name = "Компания"
  115. verbose_name_plural = "Компании"