|
@@ -9,6 +9,12 @@ class Template():
|
|
"доступно ли для планирования в цепочке "
|
|
"доступно ли для планирования в цепочке "
|
|
"с другими услугами в глобальном сервисе"
|
|
"с другими услугами в глобальном сервисе"
|
|
)
|
|
)
|
|
|
|
+ id_metaservice = (
|
|
|
|
+ "уникальный идентификатор мета-сервиса, необходимый для "
|
|
|
|
+ "синхронизации данных. Если при синхронизации возникает конфликт "
|
|
|
|
+ "(несовместимость) с другим сервисом, предлагается или форсировать "
|
|
|
|
+ "изменения везде (если возможно), либо is_global выставляется как false."
|
|
|
|
+ )
|
|
|
|
|
|
|
|
|
|
class Client():
|
|
class Client():
|
|
@@ -17,14 +23,6 @@ class Client():
|
|
"в системе, который по логике получает услугу."
|
|
"в системе, который по логике получает услугу."
|
|
)
|
|
)
|
|
|
|
|
|
- # ID METASERVICE
|
|
|
|
- id_metaservice = (
|
|
|
|
- "уникальный идентификатор мета-сервиса, необходимый для "
|
|
|
|
- "синхронизации данных. Если при синхронизации возникает конфликт "
|
|
|
|
- "(несовместимость) с другим сервисом, предлагается или форсировать "
|
|
|
|
- "изменения везде (если возможно), либо is_global выставляется как false."
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
# DATA
|
|
# DATA
|
|
requirements = "требования для того, чтобы можно было получать услуги как клиент"
|
|
requirements = "требования для того, чтобы можно было получать услуги как клиент"
|
|
|
|
|
|
@@ -38,14 +36,12 @@ class Client():
|
|
ticket_status = (
|
|
ticket_status = (
|
|
"id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю."
|
|
"id последнего актуального тикета, касающийся статуса. Если он меняет статус на закрытый - вызывается проверка, которая смотрит, нет ли другого открытого по пользователю."
|
|
)
|
|
)
|
|
- user = models.ForeignKey(
|
|
|
|
- get_user_model(),
|
|
|
|
- on_delete=models.DO_NOTHING,
|
|
|
|
- help_text="пользователь, которому соответствует роль клиента"
|
|
|
|
|
|
+ user = (
|
|
|
|
+ "пользователь, которому соответствует роль клиента"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
-class Company(models.Model):
|
|
|
|
|
|
+class Company():
|
|
"""
|
|
"""
|
|
Company - это таблица с партнерами сервисов. Партнер сервиса -
|
|
Company - это таблица с партнерами сервисов. Партнер сервиса -
|
|
юридическое лицо или ИП, которое непосредственно организует работу с
|
|
юридическое лицо или ИП, которое непосредственно организует работу с
|
|
@@ -54,109 +50,34 @@ class Company(models.Model):
|
|
по договору.
|
|
по договору.
|
|
"""
|
|
"""
|
|
|
|
|
|
- id = models.IntegerField(
|
|
|
|
- primary_key=True
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- # ID METASERVICE
|
|
|
|
- # FIXME: id_metaservice должно принимать текущий идентификатор метасервиса, на котором происходит создание записи
|
|
|
|
- id_metaservice = models.PositiveIntegerField(
|
|
|
|
- default=1,
|
|
|
|
- help_text="Уникальный идентификатор метасервиса, необходимый для синхронизации данных. Один и тот же провайдер может быть для нескольких метасервисов, соответственно если происходят изменения в одном, то либо форсируется изменение во всех (если возможно), либо снимается is_global. Соответственно при изменении is_global в true должно происходить согласование с остальными копиями в других сервисах. Нужен в том числе для того, чтобы выяснять, в каких еще сервисах есть этот провайдер."
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
# DATA
|
|
# DATA
|
|
- requirements = models.CharField(
|
|
|
|
- "Ограничения",
|
|
|
|
- max_length=150,
|
|
|
|
- default="DS01y04y05y06y07yMPUCS13MPUB",
|
|
|
|
- help_text="Код необходимый для того, чтобы ресурс мог стать активным"
|
|
|
|
- )
|
|
|
|
- status = models.CharField(
|
|
|
|
- "Статус",
|
|
|
|
- max_length=150,
|
|
|
|
- default="deactivated",
|
|
|
|
- help_text="Cтатус обработки заявки"
|
|
|
|
- )
|
|
|
|
- legal_name = models.CharField(
|
|
|
|
- "Название организации",
|
|
|
|
- max_length=150,
|
|
|
|
- help_text="Настоящее имя юридического лица"
|
|
|
|
- )
|
|
|
|
- address = models.CharField(
|
|
|
|
- "Юридический адрес",
|
|
|
|
- max_length=150
|
|
|
|
- )
|
|
|
|
- inn = models.CharField(
|
|
|
|
- "ИНН компании",
|
|
|
|
- max_length=12,
|
|
|
|
- unique=True
|
|
|
|
- )
|
|
|
|
- kpp = models.CharField(
|
|
|
|
- "КПП компании",
|
|
|
|
- max_length=9
|
|
|
|
- )
|
|
|
|
- ogrn = models.CharField(
|
|
|
|
- "ОГРН компании",
|
|
|
|
- max_length=15
|
|
|
|
- )
|
|
|
|
- bank_name = models.CharField(
|
|
|
|
- "Название банка",
|
|
|
|
- max_length=150,
|
|
|
|
- help_text="Название банка с расчетным счетом"
|
|
|
|
- )
|
|
|
|
- bik = models.CharField(
|
|
|
|
- "БИК компании",
|
|
|
|
- max_length=11
|
|
|
|
- )
|
|
|
|
- rs = models.CharField(
|
|
|
|
- "Расчетный счет",
|
|
|
|
- max_length=20
|
|
|
|
- )
|
|
|
|
- ks = models.CharField(
|
|
|
|
- "Корреспондентский счет",
|
|
|
|
- max_length=20,
|
|
|
|
- help_text="Корреспондентский счет (счет, открываемый банковской организацией в подразделении самого банка)"
|
|
|
|
- )
|
|
|
|
- tax_method = models.IntegerField(
|
|
|
|
- help_text="Система налогооблажения"
|
|
|
|
- )
|
|
|
|
|
|
+ requirements = (
|
|
|
|
+ "Код необходимый для того, чтобы ресурс мог стать активным"
|
|
|
|
+ )
|
|
|
|
+ status = "Cтатус обработки заявки"
|
|
|
|
+ legal_name = "Настоящее имя юридического лица"
|
|
|
|
+ address = "Юридический адрес"
|
|
|
|
+ inn = "ИНН компании"
|
|
|
|
+ kpp = "КПП компании"
|
|
|
|
+ ogrn = "ОГРН компании"
|
|
|
|
+ bank_name = "Название банка с расчетным счетом"
|
|
|
|
+ bik = "БИК компании"
|
|
|
|
+ rs = "Расчетный счет"
|
|
|
|
+ ks = (
|
|
|
|
+ "Корреспондентский счет (счет, открываемый банковской организацией в подразделении самого банка)"
|
|
|
|
+ )
|
|
|
|
+ tax_method = "Система налогооблажения"
|
|
|
|
|
|
# OTHER
|
|
# OTHER
|
|
- is_global = models.CharField(
|
|
|
|
- max_length=1,
|
|
|
|
- default="f",
|
|
|
|
- help_text="Доступно ли для хранения в глобальном сервисе / Нужна синхронизация данных"
|
|
|
|
- )
|
|
|
|
- is_visible = models.CharField(
|
|
|
|
- max_length=1,
|
|
|
|
- default="f",
|
|
|
|
- help_text="Доступно ли для планирования в цепочке с другими услугами в глобальном сервисе"
|
|
|
|
- )
|
|
|
|
|
|
+ is_global = Template.is_global
|
|
|
|
+ is_visible = Template.is_visible
|
|
|
|
|
|
# FK
|
|
# FK
|
|
- repr = models.ForeignKey(
|
|
|
|
- get_user_model(),
|
|
|
|
- blank=True,
|
|
|
|
- verbose_name="Представитель организации",
|
|
|
|
- on_delete=models.DO_NOTHING,
|
|
|
|
- help_text="Уникальный идентификатор представителя компании"
|
|
|
|
- )
|
|
|
|
- ticket_status = models.ForeignKey(
|
|
|
|
- Ticket,
|
|
|
|
- on_delete=models.SET_NULL,
|
|
|
|
- blank=True,
|
|
|
|
- null=True,
|
|
|
|
- help_text="ID заявки, привязанной к текущей записи",
|
|
|
|
- verbose_name="Связанный тикет"
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- def deactivate(self):
|
|
|
|
- self.status = "deactivated"
|
|
|
|
- self.save()
|
|
|
|
|
|
+ repr = "Уникальный идентификатор представителя компании"
|
|
|
|
+ ticket_status = "ID заявки, привязанной к текущей записи",
|
|
|
|
|
|
|
|
|
|
-class Documents(models.Model):
|
|
|
|
|
|
+class Documents():
|
|
"""
|
|
"""
|
|
Documents - это одна таблица со всеми документами.
|
|
Documents - это одна таблица со всеми документами.
|
|
Вообще в концепции предполагалось, что таких таблиц должно быть много под каждый тип для удобства поиска.
|
|
Вообще в концепции предполагалось, что таких таблиц должно быть много под каждый тип для удобства поиска.
|
|
@@ -164,17 +85,6 @@ class Documents(models.Model):
|
|
Что пока непонятно - документов может быть много разных.
|
|
Что пока непонятно - документов может быть много разных.
|
|
"""
|
|
"""
|
|
|
|
|
|
- id = models.IntegerField(
|
|
|
|
- primary_key=True
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- # ID METASERVICE
|
|
|
|
- # FIXME: id_metaservice должно принимать текущий идентификатор метасервиса, на котором происходит создание записи
|
|
|
|
- id_metaservice = models.PositiveIntegerField(
|
|
|
|
- default=1,
|
|
|
|
- help_text="уникальный идентификатор мета-сервиса, необходимый для синхронизации данных. Если при синхронизации возникает конфликт (несовместимость) с другим сервисом, предлагается или форсировать изменения везде (если возможно), либо is_global выставляется как false."
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
# DATA
|
|
# DATA
|
|
check_date = models.DateTimeField(
|
|
check_date = models.DateTimeField(
|
|
auto_now_add=True,
|
|
auto_now_add=True,
|
|
@@ -190,7 +100,6 @@ class Documents(models.Model):
|
|
blank=True,
|
|
blank=True,
|
|
help_text="срок окончания действия документа."
|
|
help_text="срок окончания действия документа."
|
|
)
|
|
)
|
|
- # FIXME: status должен иметь другое значение поумолчанию
|
|
|
|
status = models.CharField(
|
|
status = models.CharField(
|
|
max_length=150,
|
|
max_length=150,
|
|
default="deactivated",
|
|
default="deactivated",
|