Мета

Задача полягає в тому, щоб впровадити поле additional information, а також керування ним в адмінці ЦБД, в asset, execution (registry), announcement, redemption (jobber). 

Опис

Необхідно додати в об'єкти asset, execution (registry), announcement, redemption (jobber) додаткову інформацію. За своєю сутністю додаткова інформація в цих об'єктах є повною копією додаткової інформації, яку ми додавали в процедури. Вона необхідна для того, щоб ми мали змогу швидше і простіше мігрувати процедури з ЦБД2 на ЦБД3, а також є і бізнесовий запит. Може відбутися кейс, коли організатору необхідно додати до об'єктів в термінальних статусах нові дані або документи. Це пов'язано з подіями, які відбуваються поза системою, і які прямо впливають на об'єкти в термінальних статусах (наприклад, рішення комісії з розгляду скарг, виконавчої дирекції організатора, людський фактор (помилково завантажені документи)  або судових органів). 

Щодо структури, то структуру необхідно повністю клонувати з процедури. Для зручності нижче додано структуру. 

Щодо можливостей в панелі адміністратора, то також необхідно клонувати всі доступні дії для процедури.

Фактично задача полягає в тому, щоб повністю клонувати функціонал додаткової інформації, який є в процедурі, для сервісів registry, jobber. 

User stories

Як СА Прозорро.Продажі, я хочу додати поле до об'єктів asset, execution (registry), announcement, redemption (jobber), щоб успішно мігрувати процедури з ЦБД2 на ЦБД3.

Як адміністратор Прозорро.Продажі, я хочу додавати інформацію або документи до об'єктів asset, execution (registry), announcement, redemption (jobber), щоб мати змогу відобразити інфо та/або документи на порталі та майданчиках. 

Як організатор процедур, я хочу додавати інформацію до об'єктів asset, execution (registry), announcement, redemption (jobber), щоб надати більше деталей та/або завантажити документи.

Як учасник, я хочу бачити додаткову інформацію про asset, execution (registry), announcement, redemption (jobber), щоб отримати краще розуміння та актуальну інформацію щодо вказаних об'єктів. 

Структура даних

Структура даних не має відрізнятись від структури, яка зараз наявна в процедурі. 

additionalInformation[
x-format: list-object

default: List []

readOnly: true

x-legalNameUa: Додаткова інформація

x-legalNameEn: Additional information
base.AdditionalInformation{
idstring
readOnly: true

x-legalNameUa: Ідентифікатор об'єкту додаткової інформації

x-legalNameEn: Additional information ID

x-default: hex
ownerstring
readOnly: true

x-legalNameUa: Ідентифікатор власника об'єкта додаткової інформації

x-legalNameEn: Owner ID
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата публікації

x-legalNameEn: Publish date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата модифікації

x-legalNameEn: Modification date
description*base.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name

x-legalNameUa"Опис додаткової інформації"
x-legalNameEn"Additional information description"
}
initiator*string
x-dictionaries: List [ "additional_info_initiators" ]

x-legalNameUa: Ініціатор публікації додаткової інформації

x-legalNameEn: Additional information initiator

обирається зі словника https://procedure-sandbox.prozorro.sale/api/dictionaries/additional_info_initiators

initiatorOtherbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name

x-legalNameUa"Ініціатор публікації"
x-legalNameEn"Initiator"
}
reason*string
x-dictionaries: List [ "additional_info_reason" ]

x-legalNameUa: Причина публікації додаткової інформації

x-legalNameEn: Additional information reason

обирається зі словника https://procedure-sandbox.prozorro.sale/api/dictionaries/additional_info_reason

reasonOtherbase.MultiLang{
description:

Multi language string model

uk_UA*string
minLength: 1

x-legalNameUa: Назва українською

x-legalNameEn: Ukrainian name
en_USstring
x-legalNameUa: Назва англійською

x-legalNameEn: English name

x-legalNameUa"Причина публікації"
x-legalNameEn"Reason"
}
documents[
x-format: list-object

default: List []

x-legalNameUa: Документи додаткової інформації

x-legalNameEn: Additional information Documents
base.Document{
description:

Document model
Містить дані щодо структури документу та є складовою моделей процедури (Items, Bid, Award, Contract, Cancellation, Pocedure)

idstring
readOnly: true

x-default: hex

x-legalNameUa: Ідентифікатор документу

x-legalNameEn: Document ID
title*base.MultiLang{...}
descriptionbase.MultiLang{...}
urlstring
readOnly: true

example: http://string.com

x-format: ds-url

x-legalNameUa: Посилання на документ

x-legalNameEn: Document link
relatedDocumentstring
example: 5e300ec4080b60d45dc28bb8

x-legalNameUa: Пов'язаний документ

x-legalNameEn: Related document

Ідентифікатор, що відображається тільки в документі digitalSignature та використовується
для відображення зв'язку між цифровим підписом та документом сутності процедури.

documentOf*string
readOnly: true
Enum:
Array [ 1 ]
documentTypestringEnum:
Array [ 1 ]
datePublishedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Дата публікації документу

x-legalNameEn: Document publishing date
dateModifiedstring($date-time)
readOnly: true

x-default: now

x-legalNameUa: Остання дата редагування документу

x-legalNameEn: Document modified date
indexinteger($int64)
x-legalNameUa: Параметр сортування ілюстрацій

x-legalNameEn: Document index

Чим менше значення поля, тим вище документ буде при відображенні на майданчиках.
Основним документом вважається документ з мінімальним значенням індексу.
Якщо параметр не зазначений, документи будуть виводитись останніми у переліку.
Якщо кілька документів мають однакове значення параметру, порядок сортування буде залежати від dateModified,
Пріоритет у документів доданих раніше.

formatstring
readOnly: true

x-legalNameUa: Формат документу

x-legalNameEn: Document format
languagestring
x-legalNameUa: Мова документу

x-legalNameEn: Document language
hashstring
x-legalNameUa: Хеш документу

x-legalNameEn: Document hash
_Document__addedInQualificationStateboolean

Індикатор, який вказує, чи був документ доданий у статусі qualification

tokenstring
_ds_idstring
readOnly: true

Ідентифікатор документа в document service

_ds_scopestring
readOnly: true

Тип документа за доступом [public/private]

}]

Панель адміністратора ЦБД

Для того, щоб мати можливість керувати додатковою інформацією, необхідно додати можливість адміністратору виновувати наступні дії: 

  1. Додати додаткову інформацію 
  2. Переглядати додаткову інформацію
  3. Редагувати додаткову інформацію

Дії, які адміністратор не має виконувати: 

  1. Видалення додаткової інформації 
  2. Видалення (редагування) файлів додаткової інформації

Користувач

Для того, щоб користувач мав змогу отримати і побачити цю додаткову інформацію, необхідно додати відповідні ендпоінти до кожної сутності (asset, execution (registry), announcement, redemption (jobber)), а саме: 

  • GET/api​/{{entity_name}}​/{entity_id}​/additionalInformation​​/history
  • GET/api​/{{entity_name}}​/{entity_id}​/additionalInformation​/{add_info_id}​/history
  • GET/api​/{{entity_name}}​/{entity_id}}​/additionalInformation​/{add_info_id}​/documents​/history
  • GET/api​/{{entity_name}}​/{entity_id}​/additionalInformation​/{add_info_id}​/documents​/{doc_id}​/history

Процесс

Користувачем в цьому процесі є адміністратор. 

  1. Логіниться в панель адміністратора
  2. Обирає оточення
  3. В бічному меню в пункті меню "commands" бачить команди: 
    1. Add additional information to procedure
    2. Add additional information to asset
    3. Add additional information to execution
    4. Add additional information to announcement
    5. Add additional information to redemption
  4. Біля кожної команди бачить кнопки:
    1. Add (перенаправляє на сторінку додавання ДІ)
    2. View (перенаправляє на сторінку перегляду історії додавання ДІ)

Add

При натисканні на кнопку add, адміністратора перенаправляє на сторінку додавання нової додаткової інформації. 

  1. Має можливість знайти об'єкт
    1. asset за
      1. _id
      2. assetId
      3. owner
      4. status
    2. execution за
      1. _id
      2. executionId
      3. owner
      4. status
    3. announcement за
      1. _id
      2. objectId
      3. owner
      4. status
    4. redemption за
      1. _id
      2. objectId
      3. owner
      4. status
  2. Заповнити наступні поля: 
    1. Additional information initiator
    2. Additional information reason
    3. Reason
  3. Додати файли (за потреби). Завантаження файлів відбувається згідно стандартного флоу і валідацій. 
  4. Ввести OTP
  5. Підтвердити публікацію додаткової інформації

Важливо, що система має згенерувати дані для наступних полів: 

  1. owner
  2. datePublished
  3. dateModified

View

При натисканні на кнопку view, адміністратора має перенаправити на сторінку перегляду події додавання додаткової інформації. У вікні необхідно відобразити наступні дані: 

  1. id
  2. description
  3. initiator
  4. initiator other
  5. addInfo reason
  6. addInfo reason other
  7. reason
  8. created at
  9. created by
  10. files
  11. command results

Edit

Для редагування також треба додати команди в бічне меню, а саме:  

    1. Add additional information to procedure
    2. Add additional information to asset
    3. Add additional information to execution
    4. Add additional information to announcement
    5. Add additional information to redemption

При редагуванні адміністратор має знайти сутність. в якій є об'єкт додаткової інформації, після чого обрати який саме об'єкт додаткової інформації буде редагуватись. 

History

Кожну зміну, яка відбувається з об'єктом, необхідно зберігати і в подальшому відображати в history. 


  • No labels