company.py 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. repr_id = models.ForeignKey(
  11. get_user_model(),
  12. on_delete=models.DO_NOTHING,
  13. help_text="уникальный идентификатор представителя компании. Это обязательно пользователь-провайдер определенного типа. То есть нельзя назначить ответственного, который не может быть ответственным."
  14. )
  15. requirements = models.CharField(
  16. "Ограничения",
  17. max_length=150,
  18. help_text="код необходимого (самый строгий) для того, чтобы ресурс мог стать активным. Оно вставляется автоматом, в соответствии с профилем метасервиса. Далее, если кому-то из партнеров или пользователей надо строже - применяется более строгий вариант на данную связь."
  19. )
  20. status = models.CharField(
  21. "Статус",
  22. max_length=150,
  23. help_text="статус обработки заявки в системе заявок"
  24. )
  25. ticket_status = models.ForeignKey(
  26. Ticket,
  27. on_delete=models.DO_NOTHING,
  28. help_text="id заявки, по которой происходит проверка статуса relationship. State меняется только в результате изменений в заявке."
  29. )
  30. inn = models.CharField(
  31. "ИНН компании",
  32. max_length=12,
  33. unique=True,
  34. )
  35. kpp = models.CharField(
  36. "КПП компании",
  37. max_length=9,
  38. )
  39. ogrn = models.CharField(
  40. "ОГРН компании",
  41. max_length=15,
  42. )
  43. bank_name = models.CharField(
  44. "Название банка",
  45. max_length=150,
  46. help_text="Название банка с расчетным счетом"
  47. )
  48. bik = models.CharField(
  49. "БИК компании",
  50. max_length=9,
  51. )
  52. rs = models.CharField(
  53. "Расчетный счет",
  54. max_length=50,
  55. )
  56. ks = models.CharField(
  57. "Корреспондентский счет",
  58. max_length=50,
  59. help_text="Корреспондентский счёт (счёт, открываемый банковской организацией в подразделении самого банка)"
  60. )
  61. address = models.CharField(
  62. "Юридический адрес",
  63. max_length=150,
  64. help_text="Юридический адрес"
  65. )
  66. is_global = models.BooleanField(
  67. default=False,
  68. help_text="доступно ли для хранения в глобальном сервисе/нужна синхронизация данных"
  69. )
  70. is_visible = models.BooleanField(
  71. default=False,
  72. help_text="доступно ли для планирования в цепочке с другими услугами в глобальном сервисе"
  73. )
  74. id_metaservice = models.BigIntegerField(
  75. null=True,
  76. help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких мета-сервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер."
  77. )
  78. class Meta:
  79. db_table = "company"
  80. verbose_name = "Компания"
  81. verbose_name_plural = "Компании"