diadoc / diadocsdk-csharp

Official Diadoc SDK for C#
MIT License
34 stars 64 forks source link

Отсутствие различий между неактивными организациями и теми, кто еще не обменивался документами #1040

Closed IverCold closed 1 year ago

IverCold commented 1 year ago

В структуре Organization есть поле IsActive. По нему мы определяем возможно ли с организацией установить партнёрские отношения (тоже происходит при помощи API). Но дело в том, что под false в этом флаге попадает и ситуация, когда организация "Еще не обменивалась документами в Диадоке" (скриншот ниже). В такой ситуации из веб-интерфейса Диадока можно послать организации-контрагент у приглашение, и при этом она сразу перейдёт в активную. Но через API нельзя определить, что она активная, но просто еще не взаимодействовала ни с кем. Как быть в этом случае?

Дополнительное пояснение. У нас в организации написан свой веб-интерфейс для отправки/обработки приглашений (интерфейс Диадока не может обеспечить наших конкретных нужд). И поэтому нужно выводить только те организации, которым имеет смысл посылать приглашение (то есть активным).

еще_не_обменивались

ilzag commented 1 year ago

Добрый день!

Но через API нельзя определить, что она активная, но просто ещё не взаимодействовала ни с кем.

Какой признак для вас означал бы, что организация активная? Дело в том, что IsActive — признак того, что организация в Диадоке подписала или отправила хотя бы один документ.

IverCold commented 1 year ago

Добрый день!

Но через API нельзя определить, что она активная, но просто ещё не взаимодействовала ни с кем.

Какой признак для вас означал бы, что организация активная? Дело в том, что IsActive — признак того, что организация в Диадоке подписала или отправила хотя бы один документ.

Дело в том, что организация, которая была отключена и организация, которая еще не обменивалась документами, не имеют отличий между собой. Например, флаг IsNew мог бы помочь различать их.

ilzag commented 1 year ago

Если добавить флаг IsNew, это не гарантирует того результата, который вы ожидаете. Перед фиксацией этого флага в качестве пожелания необходимо ответить на следующие вопросы:

Флаг IsActive сообщает об активности в прошлом. Вывод о том, будет ли организация обмениваться документами в будущем, вам необходимо сделать самостоятельно. Как показывает практика, лучше контрагента никто не знает о его намерении работать в ЭДО.

IverCold commented 1 year ago

@ilzag Смотрите, мне нужен способ отличать организации, которым можно отправить приглашение от тех, кому нельзя. Я использовал для этого флаг IsActive. Он позволял (на мой взгляд) убрать неактуальные/нерабочие организации (или вернее даже ящики) из выборки. Напомню, что мы используем кастомное решение отправки и получения приглашения от КА на основе методов вашего API.

Если же IsActive не на что не влияет, то я зря на него ориентировался. Например, 7812014560 ПАО "МЕГАФОН" имеет 24 активные и 5 неактивных организаций. Плашка "Требуется настройка для обмена документами" есть и там, и там. У 4205101670 ООО "ЭЛЕКТРОМАШИНА" и активная и неактивная организации ликвидированы. Но было бы неплохо иметь возможность понимать разницу между рабочей организацией (но просто свежей) и той, что действительно неактивна. Если неактивной для посыла приглашения считается только организация, которая имеет дату ликвидации, то буду ориентироваться только на неё.

ilzag commented 7 months ago

@ZiCold Флаг IsActive отвечает только за наличие факта подписания или отправки документа. Не исключаем, что формулировка "IsActive" может на первый взгляд ввести в заблуждение, но для проверки ликвидированности есть соответствующий флаг. То есть IsActive - это не консолидированный статус, основанный на совокупности других. Поэтому возможна ситуация, когда у ящика есть флаг и о ликвидации, и IsActive.