company.py 4.5 KB

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