company.py 4.2 KB

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