company.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. class Company(models.Model):
  6. """
  7. Company - это таблица с партнерами сервисов. Партнер сервиса -
  8. юридическое лицо или ИП, которое непосредственно организует работу с
  9. исполнителями и отвечает перед клиентами и перед сервисом за качество
  10. оказанных услуг. Юридически это лица, фактически оказывающие услуги
  11. по договору.
  12. """
  13. id = models.IntegerField(
  14. primary_key=True
  15. )
  16. # ID METASERVICE
  17. # FIXME: id_metaservice должно принимать текущий идентификатор метасервиса, на котором происходит создание записи
  18. id_metaservice = models.PositiveIntegerField(
  19. default=1,
  20. help_text=HelpTexts.id_metaservice
  21. )
  22. # DATA
  23. requirements = models.CharField(
  24. "Ограничения",
  25. max_length=150,
  26. default="DS01y04y05y06y07yMPUCS13MPUB",
  27. help_text=HelpTexts.requirements
  28. )
  29. status = models.CharField(
  30. "Статус",
  31. max_length=150,
  32. default="deactivated",
  33. help_text=HelpTexts.status
  34. )
  35. legal_name = models.CharField(
  36. "Название организации",
  37. max_length=150,
  38. help_text=HelpTexts.legal_name
  39. )
  40. address = models.CharField(
  41. "Юридический адрес",
  42. max_length=150,
  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=11,
  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. help_text="Доступно ли для хранения в глобальном сервисе / Нужна синхронизация данных"
  89. )
  90. is_visible = models.CharField(
  91. max_length=1,
  92. default="f",
  93. help_text="Доступно ли для планирования в цепочке с другими услугами в глобальном сервисе"
  94. )
  95. # FK
  96. repr = models.ForeignKey(
  97. get_user_model(),
  98. blank=True,
  99. verbose_name="Представитель организации",
  100. on_delete=models.DO_NOTHING,
  101. help_text="Уникальный идентификатор представителя компании"
  102. )
  103. ticket_status = models.ForeignKey(
  104. Ticket,
  105. on_delete=models.SET_NULL,
  106. blank=True,
  107. null=True,
  108. help_text="ID заявки, привязанной к текущей записи",
  109. verbose_name="Связанный тикет"
  110. )
  111. def deactivate(self):
  112. self.status = "deactivated"
  113. self.save()
  114. class Meta:
  115. db_table = "company"
  116. verbose_name = "Компания"
  117. verbose_name_plural = "Компании"