company.py 4.5 KB

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