Загальний огляд Інформаційного Повідомлення

Мета створення та нормативні засади

Відповідно до ЗУ “Про приватизацію державного і комунального майна” та постанови КМУ від 10.05.2018 року № 432 “Про затвердження Порядку проведення електронних аукціонів для продажу об’єктів малої приватизації та визначення додаткових умов продажу” розробити функціонал реєстру інформаційних повідомлень. В рамках Prozorro.Sale буде реалізовано сутність announcement.

Документ з вимогами до майданчиків

TODO

Особливості реєстру

Особливості реєстру Інформаційних Повідомлень у ЦБД-2 (оновленій)

  1. Створення та робота із Інформаційним Повідомленням:
  • При створенні Інформаційного Повідомлення має відбуватись перевірка, чи не задіяний пов'язаний Asset у інших сутностях Інформаційних Повідомлень, Пріоритетного Викупу, які перебувають на момент створення у активному стані;
  • При створенні Інфорамаційного Повідомлення має відбуватись перевірка:
    • якщо обраний для створення ІП Asset має itemType == ‘asset’, то чи додані у Asset.documents.documentType == 'Illustration'. Створити Asset є можливість без документів illustration, але створити ІП із Asset, який не має таких документів - не має бути можливості.
  • При створенні Інформаційного Повідомлення в ньому зберігається посилання на Об’єкт реєстру (announcement.relatedEntities.type == asset), в Об’єкт реєстру передається посилання на Інформаційне Повідомлення;
  • Зміни полів та документів Об'єкта реєстру, зберігаються як окремі версії Об’єкта;
  • Інформаційне Повідомлення має поле announcement.relatedEntities.archiveId - це версія Об’єкта реєстру, яка була останньою на момент створення Інформаційного Повідомлення.
  • Гарантійний внесок може бути автоматично перерахований, якщо будь-які 2 попередні Процедури не відбулись з причини дискваліфікації учасників.
  • Обов'язкові для заповнення при Публікації Announcement всі три initialProps.bankAccounts.accountType: guarantee, registrationFee та payment
  1. Створення та робота із Процедурою та Аукціоном (МА):
  • В Інформаційному Повідомленні зберігаються ідентифікатори Процедур, які оголошені по цьому Об'єкту реєстру МП (producedEntities.type == procedure);
  • Лацюжок Процедур складається з трьох та може бути розширений четвертою, якщо третій аукціон не відбувся з причини дискваліфікації учасників.
  1. Виконання умов приватизації (контрактинг):
  • При створенні сутності Execution (Контрактинг) в ньому зберігається посилання на пов'язане Інформаційне Повідомлення (execution.relatedEntities.type == execution), а у пов'язаного Інформаційного Повідомлення має створитись посилання на сутність Контрактингу (announcement.relatedEntities.type == execution).
  • Інформаційне повідомлення перебуває у статусі active_contracting протягом всього періоду виконання умов приватизації і автоматично має змінити статус з active_contracting на sold як тільки пов'язана сутність Execution набула успішного Термінального статусу execution.status == sold.

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

Посилання на схему

Класифікатори та словники

Інформаційне Повідомлення має посилання (relatedEntities) на пов’язаний Об’єкт реєстру МП. При створенні Об’єкту реєстру МП використовуються обов’язкові словники: - основний класифікатор: CAV - додатковий класифікатор державного майна: dm

Логіка роботи з Класифікаторами описана у ТЗ по Об’єктам реєстру МП:
Посилання на ТЗ по Об'єкта реєстру МП

Періоди і статуси

Конфігураційний файл з періодами и статусами

Загальна схема процесу публікації Інформаційного Повідомлення

Схема “Загальний процес продажу об'єктів малої приватизації”

Функціонал ролей в рамках періодів

Timeline

Схема “Timeline Інформаційного Повідомлення”

Статуси Інформаційного Повідомлення

Схема “Модель статусів Інформаційного Повідомлення”

  • Опубліковано Інформаційне Повідомлення

    • Технічний ідентифікатор: pending
    • Функціонал Організатора:
      • Редагування полів опублікованого Інформаційного Повідомлення протягом 48 годин (rectificationPeriod). Для збереження змін потрібно завантажити документ announcement.documents.documentType: clarifications
      • Редагування полів пов’язаного Об’єкту реєстру (asset.status: active_rectification) через інтерфейс Інформаційного Повідомлення на Майданчику протягом announcement.rectificationPeriod
      • Завантаження або заміна документів Інформаційного Повідомлення та Об’єкта реєстру через інтерфейс Інформаційного Повідомлення на Майданчику протягом announcement.rectificationPeriod
      • Розформування Інформаційного Повідомлення (завантажувати документи не потрібно)
    • Умови набуття статусу: натискання Організатором кнопки “Опублікувати Інформаційне Повідомлення”. ЦБД валідує всі обов’язкові поля та документи та публікує Інформаційне Повідомлення у статусі announcement.status: pending.
    • Умови зміни статусу: - Автоматично після завершення announcement.rectificationPeriod (48 годин) та створення Першої Процедури з ланцюжка статус ІП зміниться з pending на active_auction; - Ручна дія. Натискання кнопки "Розформувати Інформаційне Повідомлення" змінить статус ІП з pending на deleted.
    • Опис: після набуття статусу pending Інформаційне Повідомлення стає доступним для всіх Спостерігачів
    • Коментар:
      • При публікації Інформаційного Повідомлення у ЦБД до Об’єкта реєстру МП повинно передаватись посилання на створене ІП (asset.relatedEntities.type == announcement);
      • Одночасно у Об’єкта МП може бути тільки одне Інформаційне Повідомлення у статусі pending, active_auction, active_contracting, sold та необмежена кількість у статусах deleted та dissolved.
  • Проведення Аукціону

    • Технічний ідентифікатор: active_auction
    • Функціонал Організатора: функціонал відсутній
    • Умови набуття статусу: - По настанню announcement.rectificationPeriod.endDate автоматично створюється Перша Процедура із ланцюжка і Інформаційне Повідомлення набуває статусу active_auction.
    • Умови зміни статусу: - Статус ІП змінюється з active_auction на active_contracting автоматично після зміни статусу будь-якої Процедури з ланцюжка на complete; - Статус ІП змінюється з active_auction на dissolved автоматично після зміни статусу Останньої Процедури із ланцюжка на unsuccessful; - Статус ІП змінюється з active_auction на deleted автоматично після зміни статусу будь-якої Процедури із ланцюжка на cancelled.
    • Опис: Організатор не взаємодіє з ІП. Всі дії відбуваються у активній Процедурі.
    • Коментар: Інформаційне Повідомлення перебуває у статусі active_auction протягом всього періоду аукціонів.
  • у ланцюжку ІП анонсується три Процедури. Але четверта може згенеруватися автоматично за умови, що третій Аукціон завершився з причини дискваліфікації всіх учасників.

  • Виконання умов приватизації

    • Технічний ідентифікатор: active_contracting
    • Функціонал Організатора: функціонал відсутній
    • Умови набуття статусу: статус ІП змінюється на active_contracting автоматично після набуття статусу complete будь-якої Процедури з ланцюжка ІП.
    • Умови зміни статусу:
      • Автоматично, як тільки сутність execution набуває статусу execution.status: sold, статус Інформаційного Повідомлення набуває статусу sold;
      • Автоматично, як тільки сутність execution набуває статусу execution.status: deleted, статус Інформаційного Повідомлення набуває статусу deleted;
    • Опис: Організатор не взаємодіє з ІП. Всі дії відбуваються у сутності Контрактинг (execution).
  • Об'єкт продано

    • Технічний ідентифікатор: sold
    • Функціонал Організатора: функціонал відсутній
    • Умови набуття статусу: Автоматично, як тільки сутність execution набуває статусу execution.status: complete.
    • Умови зміни статусу: термінальний статус
    • Опис: Приватизація успішно завершена, умови приватизації виконані.
  • Об’єкт не продано

    • Технічний ідентифікатор: dissolved
    • Функціонал Організатора: функціонал відсутній
    • Умови набуття статусу:
      • Автоматично, коли остання Процедура із ланцюжка Інформаційних Повідомлень набула статусу procedure.status: unsuccessful;
    • Умови зміни статусу: термінальний статус
    • Опис: статус відповідає Інформаційному Повідомленню у якому продаж не відбувся. При набутті Інформаційним Повідомленням статусу dissolved статус Об'єкта реєстру автоматично змінюється на pending;
  • Інформаційне Повідомлення розформовано

    • Технічний ідентифікатор: deleted
    • Функціонал Організатора: функціонал відсутній
    • Умови набуття статусу:
      - Ручная дія. Натискання кнопки "Розформувати Інформаційне Повідомлення". Дія можлива до моменту створення Першої Процедури у ланцюжку Інформаційного Повідомлення; Не обов'язкова дія - завантаження документу cancellations.documents.documentType: cancellationDetails;
      - Автоматично, коли будь-яка Процедура із ланцюжка Інформаційних Повідомлень набула статусу procedure.status: cancelled;
      - Автоматично, як тільки сутність Контрактингу (Execution) набула статусу Execution.status: deleted
    • Умови зміни статусу: термінальний статус
    • Опис: статус відповідає розформованому Інформаційному Повідомленню. При набутті Інформаційним Повідомленням статусу deleted статус Об'єкта реєстру автоматично змінюється на pending;

Опис періодів

  • Період редагування інформаційного повідомлення: rectificationPeriod
    • Статус Інформаційного Повідомлення: pending
    • Умови формування дати початку та кінця періоду:
      • Дата початку: може припадати на неробочий день, відповідає даті та часу публікації Інформаційного Повідомлення в ЦБД;
      • Дата завершення: може припадати на неробочий день, завершується через 48 годин після публікації Інформаційного Повідомлення.
    • Функціонал Організатора:
      • Редагування полів Інформаційного Повідомлення та полів Об’єкта реєстру (перелік вказано нижче);
      • Завантаження або заміна документів Інформаційного Повідомлення;
      • Редагування полів Об'єкта реєстру;
      • Завантаження нових документів до Об’єкта реєстру;
      • Розформування Інформаційного Повідомлення;
  • Поля, які доступні для редагування протягом announcement.rectificationPeriod:
    • У Об’єкта реєстра МП:

      • title
      • description
      • ownershipType
      • assetHolder та всі дочірні не технічні поля
      • assetCustodian та всі дочірні не технічні поля
      • documents та всі дочірні не технічні поля
      • items та всі дочірні не технічні поля
    • У Інформаційного Повідомлення

      • title
      • description
      • documents та всі дочірні не технічні поля
      • initialProps.value
      • initialProps.guarantee
      • initialProps.minimalStep
      • initialProps.dutchStep.dutchStepQuantity
      • initialProps.bankAccounts та всі дочірні не технічні поля
      • initialProps.accessDetails
      • decisions
      • extraSpecs.auctionPeriod_startDate
      • extraSpecs.tenderPeriodDuration

Типи, опис документів та робота з ними

Під час публікації Інформаційного Повідомлення або під час періода виправлення помилок (rectificationPeriod), окрім додавання нових документів або заміни раніше доданих документів безпосередньо у Інформаційне Повідомлення, доступна можливість додати нові або оновити існуючі документи Об'єкта реєстру МП.

  • Документи Інформаційного повідомлення:

    • notice
      • Legal Name UA - Інформаційне повідомлення
      • Legal Name EN - Auction notice
      • Опис - Інформаційне повідомлення про приватизацію об'єкта малої приватизації
      • Обов'язковість - Ні
      • Публічність - Так
    • evaluationCriteria
      • Legal Name UA - Рішення про затвердження умов продажу
      • Legal Name EN - Evaluation criteria
      • Опис - Рішення аукціонної комісії про затвердження умов продажу
      • Обов'язковість - Ні
      • Публічність - Так
    • contractProforma
      • Legal Name UA - Проєкт договору
      • Legal Name EN - Contract proforma
      • Опис - Документ містить умови договору
      • Обов'язковість - Ні
      • Публічність - Так
    • clarifications
      • Legal Name UA - Рішення про виправлення технічних помилок
      • Legal Name EN - Decision on correction of technical errors
      • Опис - Рішення про виправлення технічних помилок, що були виявлені після публікації інформаційного повідомлення
      • Обов'язковість - Ні. Так, при редагуванні Інформаційного Повідомлення під час rectificationPeriod
      • Публічність - Так
    • redemptionPreContract
      • Legal Name UA - Попередній договір
      • Legal Name EN - Preliminary contract
      • Опис - Попередній договір
      • Обов'язковість - Ні
      • Публічність - Так
    • cancellations.documents.documentType: cancellationDetails
      • Legal Name UA - Legal Name UA - Рішення про скасування інформаційного повідомлення
      • Legal Name EN - Decision to cancel the announcement
      • Опис - Рішення про скасування інформаційного повідомлення
      • Обов'язковість - Ні
      • Публічність - Так
  • Документи Об'єкта реєстру МП:

  • Наступні типи документів Об'єкта реєстру можуть бути додані до Об’єкта або замінені у Об’єкті під час публікації Інформаційного Повідомлення або під час rectificationPeriod Інформаційного Повідомлення:

    • illustration
      • Legal Name UA - Ілюстрації
      • Legal Name EN - Illustration
      • Опис - Зображення, що можуть додаватися Організатором до оголошення
      • Обов'язковість - Так (для оголошень із Типом активу itemType == ‘asset’ (Майно) - обов’язково, для всіх інших Типів активів - не обов’язково)
      • Публічність - Так
    • technicalSpecifications
      • Legal Name UA - Інформація про об’єкт малої приватизації
      • Legal Name EN - Technical specifications
      • Опис - Детальна інформація про об’єкт малої приватизації
      • Обов'язковість - Ні
      • Публічність - Так
    • x_presentation
      • Legal Name UA - Презентація
      • Legal Name EN - Presentation
      • Опис - Презентація
      • Обов'язковість - Ні
      • Публічність - Так
  • Загальні документи:

    • digitalSignature
      • Legal Name UA - Цифровий підпис
      • Legal Name EN - Digital signature
      • Опис - Цифровий підпис
      • Обов'язковість - Ні
      • Публічність - Набуває значення документу з яким пов'язаний

Загальні документи по розробці

Особливості роботи із сутностями та документами Особливості роботи із цифровим підписом

Схеми по роботі з Інформаційним Повідомленням

Схема “Загальний процес”

Порядок малої приватизації під час дії воєного стану

Повідомлення

Повідомлення щодо публікації інформаційного повідомлення

  • Організатору
    • Коли - після створення Інформаційного Повідомлення в ЦБД та набуття їм статуса “Опубліковано” (pending)
    • Що - Інформаційне повідомлення опубліковане. Ви можете виправити технічні помилки протягом 48 годин після публікації.
    • Коментарі - Повідомлення надходить протягом 5 хв.

Повідомлення щодо редагування Інформаційного Повідомлення

  • Організатору
    • Коли - після збереження змін у Інформаційному Повідомленні або Об’єкті, які зроблені протягом rectificationPeriod
    • Що - Зміни в Інформаційному Повідомленні успішно виконані
    • Коментарі - Повідомлення надходить протягом 5 хв.

Повідомлення щодо розформування Інформаційного Повідомлення

  • Організатору
    • Коли - після набуття Інформаційним Повідомленням статусу “Об’єкт не продано” (dissolved)
    • Що - Інформаційне повідомлення розформовано. Для продовження продажу Об'єкта малої приватизації створіть нове Інформаційне Повідомлення
    • Коментарі - Повідомлення надходить протягом 5 хв.

Послідовність створення ланцюжка Процедур аукціонів

Послідовність та кількість аукціонів

Діаграма “Ланцюжок аукціонів для Малої приватизації під час воєнного стану”

Для продажу Об'єктів малої приватизації під час воєнного стану визначена наступна послідовність аукціонів та типи аукціонів: - Перший аукціон - англійський - Другий аукціон - англійський - Третій аукціон - голландський - Четвертий аукціон - голландський

Умови для створення наступної Процедури

  • Перша Процедура створюється автоматично по завершенню announcement.rectificationPeriod (Як тільки наступає announcement.rectificationPeriod.endDate)

  • Друга, Третя та можлива Четверта Процедура аукціону автоматично створюється одразу, якщо попередня Процедура набула статусу unsuccessful.

  • Четверта Процедура аукціону створюється тільки у випадку, коли третя Процедура аукціону перейшла в unsuccessful внаслідок дискваліфікації учасників з будь-якої причини. Якщо на етапі кваліфікації award-ів відбулася дискваліфікація переможця, а можливий наявний другий учасник сам відмовився від очікування (award.status:cancelled),то такий аукціон вважається зірваним і це є причиною створення четвертої Процедури. Тобто, логіка наступна: якщо Процедура-3 має статус unsuccessful і у неї є хоч один award у статусі unsuccessful, то має створитись Процедура-4.

  • Якщо статус Процедури змінено на cancelled, то наступна Процедура не створюється, а Інформаційне Повідомлення автоматично набуває статусу dissolved.

  • За замовчанням кількість аукціонів - 3. Мінімальна кількість -1 (якщо Перша процедура успішна).

  • Можливий Четвертий аукціон за умови, що Третій завершився з причини дискваліфікації Учасників.

  • В залежності від значення tenderAttempts, відображати назву аукціону:

    • 1 - "Аукціон без умов або аукціон з умовами"
    • 2 - "Аукціон із зниженням стартової ціни"
    • 3 - "Аукціон за методом покрокового зниження стартової ціни та подальшого подання цінових пропозицій"
    • 4 - "Повторний аукціон за методом покрокового зниження стартової ціни та подальшого подання цінових пропозицій"

Особливості часових параметрів

Для автоматичного створення та публікації Процедур аукціонів використовуються наступні параметри:

  • Дата початку Першого аукціону (extraSpecs.periods.periodName: auctionPeriod startDate)
    • Особливості:
      • Дата аукціону визначається Організатором;
      • Час аукціону визначається ЦБД в період з 11:00 - 13:00 при автоматичному створенні Першої Процедури;
      • Перша Процедура буде буде створена автоматично, як тільки завершиться announcement.rectificationPeriod. Модуль Аукціону буде запущено у дату, яку вказав Організатор у Дата початку Першого аукціону та час визначений ЦБД при створенні процедури. У період між датою створення Першої Процедури і “Дата початку Першого аукціону” триває tenderPeriod Першої Процедури, який завершується о 20:00 дня, що передує дню “Дата початку Першого аукціону”.
      • Період між створенням Першої Процедури і “Дата початку Першого аукціону” не може бути менше 4 робочих днів (auctionPeriod_startDate >= currentDate + 4 wd);
      • Максимальна кількість днів між створенням Першої Процедури і “Дата початку Першого аукціону” 366 календарних днів.
      • Друга та наступні Процедури створюються автоматично одразу, тільки якщо попередня Процедура із ланцюжка ІП набула статусу Procedure.status: unsuccessful;

Приклад: якщо Перша Процедура набула статусу Procedure.status: unsuccessful, то Друга Процедура буде створена автоматично одразу.

  • Період на подачу пропозицій (робочих днів) (extraSpecs[].periods.periodName: tenderPeriod duration)
    • Особливості:
      • Визначається Організатором;
      • Значення загальне для 2-, 3-, 4-ї* Процедури із ланцюжка;
      • Період на подачу пропозицій - це tenderPeriod, який буде мати 2-,3-,4-та Процедура.
      • ЦБД валідує тільки нижнє значення tenderPeriodDuration >= 3 р.д.;
      • ЦБД не валідує верхнє значення tenderPeriodDuration.
    • Технічна особливість: На інтерфейсі Майданчика при створенні ІП має бути одне поле, в якому Організатор може вказати тривалість "Періоду прийняття пропозицій".Органіщатор вказує кількість в днях один раз на інтерфейсі.
    • Але коли Майданчик передає запит на ЦБД, то має це значення закопіювати і передати в трьох місцях: extraSpecs[1].periods.periodName: tenderPeriod duration, extraSpecs[2].periods.periodName: tenderPeriod duration, extraSpecs[3].periods.periodName: tenderPeriod duration

Приклад:

  • Перша Процедура набула статусу Procedure.status: unsuccessful у п’ятницю 16.09.2022
  • Друга Процедура буде автоматично створена у п'ятницю 16.09.2022 одразу.
  • У Другої Процедури розпочинається tenderPeriod, який буде тривати таку кількість робочих днів, яку вказав Організатор у полі “Період на подачу пропозицій”. День створення Другої Процедури не враховується.
    • Якщо Організатор вказав extraSpecs.periods.periodName: tenderPeriod duration == 20 днів, то tenderPeriod починається у дату створення Процедури, але відрахунок 20-ти днів має починатися з 19.09.2022 (понеділок);
    • Якщо Дата початку Модулю Аукціону припадає на вихідний або святковий день, то Аукціон буде перенесений вперед на найближчий робочий день.

Стартова ціна

  • Для аукціонів з продажу об’єктів малої приватизації під час воєнного стану визначені наступні розміри стартової ціни:
    • Перший аукціон - стартова ціна першого аукціона вважається 100%
    • Другий аукціон - 50% стартової ціни першого аукціону
    • Третій аукціон - 50% стартової ціни першого аукціону
    • Четвертий аукціон - 50% стартової ціни першого аукціону

Організатор задає значення стартової ціни першого аукціону (допускається тільки валюта - ГРН). Стартові ціни для наступних аукціонів розраховуються автоматично без можливості редагування.

Автоматичний перерахунок гарантійних внесків

  • При створенні ІП у запиті на ЦБД мають передаватись заповнені поля guarantee. Їх заповнює Організатор.

  • На стороні ЦБД валідація лише на "обов'язковість заповнення".

  • На майданчику можна пропонувати Організатору автозаповнення полей guarantee, що == 20% стартової ціни поточного аукціона (20% від announcement.InitialProps.value).

  • Протягом 48 годин, доки у ІП триває rectificationPeriod поле guarantee можна редагувати.

  • Для першої процедури у ланцюжку ГВ завжди копіюється із announcement.initialProps.guarantee.

  • Для другої і наступних Процедур у ланцюжку, якщо будь які попередні два аукціона* з продажу цього Об’єкта не відбулись (статус процедури “unsuccessful”) з наступних причин дискваліфікації учасників (статус аварду “unsuccessful”):

    • Не відповідає вимогам статті 8 ЗУ "Про приватизацію державного і комунального майна”;
    • Не подав документи або відомості, обов’язкове подання яких передбачено ЗУ “Про приватизацію державного і комунального майна”;
    • Подав неправдиві відомості про себе;
    • Відмовився від підписання протоколу про результати електронного аукціону;
    • Відмовився від укладення договору;
    • Відмовився від підписання протоколу аукціону або договору купівлі-продажу щодо того самого об’єкта приватизації, що підтверджується відповідним актом;
    • Не сплатив ціну продажу об’єкта приватизації у встановлений строк щодо того самого об’єкта приватизації, що підтверджується відповідним актом;
    • Не сплатив ціну продажу об'єкта приватизації у встановлений строк.

то розмір ГВ розраховується як:

  • 50% стартової ціни поточного аукціону АБО
  • 30 мін заробітних плат станом на 01.01. року, у якому оприлюднюється Інформаційне Повідомлення; треба обрати більше з двох значень.

Має відбуватись перевірка: якщо дві будь-які Процедури по одному asset у всіх повʼязаних ІП знаходяться у статусі unsuccessful і обидві мають хоч один award у статусі unsuccessful, то має відпрацьовувати механіз перерахунку ГВ для всіх Процедур, окрім першої (бо для першої завжди == announcement.initialProps.guarantee ).

*- враховуються будь які попередні 2 аукціона з продажу об'єкта протягом поточного та всіх попередніх ІП Гарантійний внесок також може бути відредагований вручну Організатором безпосередньо у Процедурі (для другої та наступних процедур ланцюжка) під час clarificationPeriod (48 годин після публікації процедури)

  • Логіка розрахунку guarantee при створенні Процедур у ланцюжку ІП:
  1. У Announcement Організатор заповняє поля guarantee
  2. При автоматичному створенні 1-ї Процедури SPE поля guarantee мають скопіюватись у SPE.
  3. В нас закладено, що у Першій Процедурі не має бути можливості редагувати поля guarantee, які скопіювались із Announcement
  4. При автоматичному створенні 2-ї Процедури SPE поле guarantee має == 20% від Поточної ціни Аукціона (поточна ціна == 50% від Стартової)
  5. В нас закладено, що у Організатора має бути можливість редагувати поля guarantee у другій Процедурі SPE. Тобто, значення guarantee, яке ми заклали, - дефолтне, з можливістю змінити.
  6. При автоматичному створенні 3-ї Процедури SPD поле guarantee має == 20% від Поточної ціни лота (поточна ціна == 50% від Стартової)
  7. В нас закладено, що у Організатора має бути можливість редагувати поля guarantee у третій Процедурі SPD. Тобто, значення guarantee, яке ми заклали, - дефолтне, з можливістю змінити.
  8. При автоматичному створенні 4-ї Процедури SPD поле guarantee має == 20% від Поточної ціни лота (поточна ціна == 50% від Стартової)
  9. В нас закладено, що у Організатора має бути можливість редагувати поля guarantee у четвертій Процедурі SPD. Тобто, значення guarantee, яке ми заклали, - дефолтне, з можливістю змінити.

Виключення: якщо два будь-які попередні Аукціони у ланцюжку (навіть не підряд, а, наприклад, Перший і Третій) завершилися з причини дискваліфікації Bid-ів, то ми маємо підставити дефолтне значення guarantee, яке == 50% від Поточної ціни лота АБО 30 мінімальних заробітніх плат (обирається більше значення)

  • На прикладі:
  1. При створенні ІП Організатор вказав стартову ціну (value) == 1 000 000 грн і guarantee == 200 000 грн
  2. При автоматичному створенні Першої Процедури SPE у ній guarantee == 200 000 грн. Організатор НЕ може вносити змін у це поле.
  3. При автоматичному створенні Другої Процедури SPE у ній guarantee == 100 000 грн. (бо ціна у \SPE_2 == 500 000 грн і 20% == 100 000 грн). Організатор може вносити зміни у це поле протягом періоду редагування.
  4. При автоматичному створенні Третьої Процедури SPD має відбутись перевірка, чи перші два аукціони мають дискваліфікованих бідів (з будь-якої причини):
  • якщо НІ: guarantee == 100 000 грн. (бо ціна у \SPD_3 == 500 000 грн і 20% == 100 000 грн.) Організатор може вносити зміни у це поле протягом періоду редагування.
  • якщо ТАК: guarantee == 250 000 грн (бо ціна у SPD_3 == 500 000 грн і 50% == 250 000 грн.) Організатор може вносити зміни у це поле протягом періоду редагування.
  1. При автоматичному створенні Четвертої Процедури SPD має відбутись перевірка, чи серед попередньо проведених трьох аукціонах, хоча б два аукціони мають дискваліфікованих бідів (з будь-якої причини):
  • якщо НІ: guarantee == 100 000 грн. (бо ціна у SPD_4 == 500 000 грн і 20% == 100 000 грн.) Організатор може вносити зміни у це поле протягом періоду редагування.
  • якщо ТАК: guarantee == 250 000 грн (бо ціна у SPD_4 == 500 000 грн і 50% == 250 000 грн.) Організатор може вносити зміни у це поле протягом періоду редагування.

Якщо в результаті дій Організатора виявилося, що guarantee перерахувалося згідно логіки Автоматичний перерахунок гарантійних внесків, то відповідні значення мають змінитись і в _specs.pipeline.stages[].calculatedData.guarantee.
Тобто, значення параметрів мають бути однакові в Процедурі і в Інформаційному повідомленні.

  • Виключення: Якщо при створенні Announcement Організатор вказав стартову ціну (value) == 1 000 000 грн і guarantee == 300 000 грн то Перша Процедура має створитися з guarantee == 300 000 грн

Логіка для розрахунку guarantee у наступних процедурах не міняється.

Правила заокруглення

У разі автоматичного розрахунку суми плат та/або внесків у випадках, якщо розмір відповідної суми включає числове значення менше копійки, ЦБД автоматично заокруглює відповідну суму за такими правилами: сума, що закінчується від 0,0001 до 0,4999 копійки, заокруглюється в бік зменшення до найближчої суми, яка дорівнює цілій копійці; сума, що закінчується від 0,5 до 0,9999 копійок, заокруглюється в бік збільшення до найближчої суми, яка дорівнює цілій копійці.

Логіка відображення створених та не створених Процедур у структурі відповіді Інформаційного Повідомлення (_specs.calculatedData)

1. Коли тільки створено ІП (announcement.status: pending), відповідь на запит по ІП має містити:

  • Кількість Процедур у ланцюжку - три;
  • Порядковий номер кожної процедури:
    • Для Першої Процедури tenderAttempts == 1
    • Для Другої Процедури tenderAttempts == 2
    • Для Третьої Процедури tenderAttempts == 3
  • Статус кожної Процедури - scheduled;
  • sellingMethod:
    • Перша Процедура - smallPrivatization-english
    • Друга Процедура - smallPrivatization-english
    • Третя Процедура - smallPrivatization-dutch
  • Стартова ціна Об'єкта (value):
    • Перша Процедура - announcement.initialProps.value
    • Друга Процедура - 50% від announcement.initialProps.value
    • Третя Процедура - 50% від announcement.initialProps.value
  • Крок аукціону (minimalStep):
    • Для Першої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
  • Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
    • Для Першої Процедури це дата, яку вказав Організатор у полі extraSpecs.periods.auctionPeriod.startDate при створенні ІП
    • Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
  • Період між аукціонами (periods.periodName:tenderPeriod.duration):
    • Для Першої Процедури - відсутній
    • Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у extraSpecs.periods.periodName:tenderPeriod.duration
  • Розмір гарантійного внеску (guarantee):
    • Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee
    • Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)

2. Коли створено Першу Процедуру (announcement.status: active_auction), відповідь має містити:

  • Кількість Процедур у ланцюжку - три;
  • Порядковий номер кожної процедури (tenderAttempts):
    • Для Першої Процедури tenderAttempts == 1
    • Для Другої Процедури tenderAttempts == 2
    • Для Третьої Процедури tenderAttempts == 3
  • Статус Процедури (status):
    • Перша Процедура - active
    • Друга і Третя Процедура - scheduled
  • sellingMethod (sellingMethod):
    • Перша Процедура - smallPrivatization-english
    • Друга Процедура - smallPrivatization-english
    • Третя Процедура - smallPrivatization-dutch
  • Стартова ціна Об'єкта (value):
    • Перша Процедура - announcement.initialProps.value
    • Друга Процедура - 50% від announcement.initialProps.value
    • Третя Процедура - 50% від announcement.initialProps.value
  • Крок аукціону (minimalStep):
    • Для Першої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
  • Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
    • Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
    • Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
  • Період між аукціонами (periods.periodName:tenderPeriod.duration):
    • Для Першої Процедури - відсутній
    • Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
  • Розмір гарантійного внеску (guarantee):
    • Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Першій Процедурі протягом Procedure.clarificationPeriod.
    • Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
  • auctionID створеної Першої Процедури (relatedEntities)
    • Для першої Процедури вказано
    • Для другої і третьої - ні

3. Коли створено Другу Процедуру (announcement.status: active_auction), відповідь має містити:

  • Кількість Процедур у ланцюжку - три;
  • Порядковий номер кожної процедури (tenderAttempts):
    • Для Першої Процедури tenderAttempts == 1
    • Для Другої Процедури tenderAttempts == 2
    • Для Третьої Процедури tenderAttempts == 3
  • Статус Процедури (status):
    • Перша Процедура - unsuccessful
    • Друга Процедура - active
    • Третя Процедура - scheduled
  • sellingMethod (sellingMethod):
    • Перша Процедура - smallPrivatization-english
    • Друга Процедура - smallPrivatization-english
    • Третя Процедура - smallPrivatization-dutch
  • Стартова ціна Об'єкта (value):
    • Перша Процедура - announcement.initialProps.value
    • Друга Процедура - 50% від announcement.initialProps.value
    • Третя Процедура - 50% від announcement.initialProps.value
  • Крок аукціону (minimalStep):
    • Для Першої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
  • Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
    • Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
    • Для Другої і Третьої Процедури поле виводити не потрібно.
  • Період між аукціонами (periods.periodName:tenderPeriod.duration):
    • Для Першої Процедури - відсутній
    • Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
  • Розмір гарантійного внеску (guarantee):
    • Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Першій Процедурі протягом Procedure.clarificationPeriod.
    • Для Другої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Другій Процедурі протягом Procedure.clarificationPeriod.
    • Для Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
  • auctionID створеної Першої Процедури (relatedEntities)
    • Для першої і другої Процедури вказано
    • Для третьої - ні

4. Коли створено Третю Процедуру (announcement.status: active_auction), відповідь має містити:

  • Кількість Процедур у ланцюжку - три;
  • Порядковий номер кожної процедури (tenderAttempts):
    • Для Першої Процедури tenderAttempts == 1
    • Для Другої Процедури tenderAttempts == 2
    • Для Третьої Процедури tenderAttempts == 3
  • Статус Процедури (status):
    • Перша Процедура - unsuccessful
    • Друга Процедура - unsuccessful
    • Третя Процедура - active
  • sellingMethod (sellingMethod):
    • Перша Процедура - smallPrivatization-english
    • Друга Процедура - smallPrivatization-english
    • Третя Процедура - smallPrivatization-dutch
  • Стартова ціна Об'єкта (value):
    • Перша Процедура - announcement.initialProps.value
    • Друга Процедура - 50% від announcement.initialProps.value
    • Третя Процедура - 50% від announcement.initialProps.value
  • Крок аукціону (minimalStep):
    • Для Першої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
  • Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
    • Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
    • Для Другої і Третьої Процедури поле виводити не потрібно.
  • Період між аукціонами (periods.periodName:tenderPeriod.duration):
    • Для Першої Процедури - відсутній
    • Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
  • Розмір гарантійного внеску (guarantee):
    • Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Першій Процедурі протягом Procedure.clarificationPeriod.
    • Для Другої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Другій Процедурі протягом Procedure.clarificationPeriod.
    • Для Третьої Процедури по формулі:
      • Якщо у обох (Першій і Другій Процедурі) були дискваліфіковані Біди, то announcement.initialProps.guarantee == 50% від (50% від announcement.initialProps.value)
      • Якщо у будь-якій (Першій або Другій Процедурі) НЕ було дискваліфікованих Бідів, то announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
      • АБО значення guarantee, що відредагував Організатор у створеній Третій Процедурі протягом Procedure.clarificationPeriod.
  • auctionID Першої Процедури, auctionID Другої Процедури і auctionID створеної Третьої Процедури

Коли завершується неуспішно Третя Процедура (Procedure.status: unsuccessful) із Ланцюжка, то необхідно перевірити, чи були у Третій Процедурі дискваліфіковані Біди і якщо Так, то створюється Четверта Процедура

У відповідь ІП необхідно додати інформацію про Четверту Процедуру:
5. Коли створено Четверту Процедуру (announcement.status: active_auction), відповідь має містити:

  • Кількість Процедур у ланцюжку - чотири;
  • Порядковий номер кожної процедури (tenderAttempts):
    • Для Першої Процедури tenderAttempts == 1
    • Для Другої Процедури tenderAttempts == 2
    • Для Третьої Процедури tenderAttempts == 3
    • Для Четвертої Процедури tenderAttempts == 4
  • Статус Процедури (status):
    • Перша Процедура - unsuccessful
    • Друга Процедура - unsuccessful
    • Третя Процедура - unsuccessful
    • Четверта Процедура - active
  • sellingMethod (sellingMethod):
    • Перша Процедура - smallPrivatization-english
    • Друга Процедура - smallPrivatization-english
    • Третя Процедура - smallPrivatization-dutch
    • Четверта Процедура - smallPrivatization-dutch
  • Стартова ціна Об'єкта (value):
    • Перша Процедура - announcement.initialProps.value
    • Друга Процедура - 50% від announcement.initialProps.value
    • Третя Процедура - 50% від announcement.initialProps.value
    • Четверта Процедура - 50% від announcement.initialProps.value
  • Крок аукціону (minimalStep):
    • Для Першої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
    • Для Четвертої Процедури - значення, що дорівнює 1% від value Поточної Четвертої Процедури
  • Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
    • Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
    • Для Другої, Третьої і Четвертої Процедури поле виводити не потрібно.
  • Розмір гарантійного внеску (guarantee):
    • Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Першій Процедурі протягом Procedure.clarificationPeriod.
    • Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value) АБО значення guarantee, що відредагував Організатор у створеній Четвертій Процедурі протягом Procedure.clarificationPeriod.
  • Період між аукціонами (periods.periodName:tenderPeriod.duration):
    • Для Першої Процедури - відсутній
    • Для Другої, Третьої і Четвертої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration

6. Коли Перша, Друга або Третя Процедура переходить у статус complete (Announcement.status:active_contracting)

  • Кількість Процедур у ланцюжку - три;
  • Порядковий номер кожної процедури (tenderAttempts):
    • Для Першої Процедури tenderAttempts == 1
    • Для Другої Процедури tenderAttempts == 2
    • Для Третьої Процедури tenderAttempts == 3
  • Статус Процедури (status):
    • Процедура, яка набула статус complete у блоці _specs статус complete;
    • Всі Процедури, які НЕ створилися у ланцюжку ІП статус - cancelled;
    • Всі НЕуспішно завершені Процедури залишають статус - unsuccessful.
  • sellingMethod (sellingMethod):
    • Перша Процедура - smallPrivatization-english
    • Друга Процедура - smallPrivatization-english
    • Третя Процедура - smallPrivatization-dutch
  • Стартова ціна Об'єкта (value):
    • Перша Процедура - announcement.initialProps.value
    • Друга Процедура - 50% від announcement.initialProps.value
    • Третя Процедура - 50% від announcement.initialProps.value
  • Крок аукціону (minimalStep):
    • Для Першої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
    • Для Другої Процедури - значення, що дорівнює 1% від value Поточної Другої Процедури.
    • Для Третьої Процедури - значення, що дорівнює 1% від value Поточної Третьої Процедури.
    • Для Четвертої Процедури - значення, що дорівнює 1% від value Поточної Четвертої Процедури
  • Дата проведення аукціону (periods.periodName:auctionPeriod:startDate):
    • Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod_startDate при створенні ІП
    • Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
  • Період між аукціонами (periods.periodName:tenderPeriod.duration):
    • Для Першої Процедури - відсутній
    • Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
  • Розмір гарантійного внеску (guarantee):
    • Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee
    • Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value) АБО виключення описані в розділі Автоматичний перерахунок гарантійних внесків

Якщо в результаті дій Організатора виявилося, що guarantee перерахувалося згідно логіки Автоматичний перерахунок гарантійних внесків, то відповідні значення мають змінитись і в _specs.pipeline.stages[].calculatedData.guarantee.
Тобто, значення параметрів мають бути однакові в Процедурі і в Інформаційному повідомленні.

pipelineMethod

  • announcement - rectificationPeriod: 2days, процедура smallPrivatization-english
  • announcement-fast - rectificationPeriod: 2mins, процедура smallPrivatization-english-fast
  • announcement-manual - rectificationPeriod: 10mins, процедура smallPrivatization-english-manual
  • announcement-ultrafast - rectificationPeriod: 5secs, процедура smallPrivatization-english-fast

Зв'язок статусів усіх сутностей процесу малої приватизації

Матриця статусів

  • No labels