Логіка відображення списку Процедур (минулих, поточних, майбутніх) у Інформаційному Повідомленні
Є вимога бізнесу, відображати у Інформаційному Повідомленні інформацію про першу, другу і третю Процедуру. Користувач зробивши запит по ІП має отримати інформацію про:
1. Коли тільки створено ІП (announcement.status: pending), відповідь на запит по ІП має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (calculatedProps.tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус кожної Процедури - scheduled; (calculatedProps.status)
- sellingMethod (calculatedProps.sellingMethod):
- Перша Процедура - smallPrivatization-english
- Друга Процедура - smallPrivatization-english
- Третя Процедура - smallPrivatization-dutch
- Стартова ціна Об'єкта (calculatedProps.value):
- Перша Процедура - announcement.initialProps.value
- Друга Процедура - 50% від announcement.initialProps.value
- Третя Процедура - 50% від announcement.initialProps.value
- Крок аукціону (calculatedProps.minimalStep):
- Для Першої і Другої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
- Для Третьої Процедури - значення == 0
- Дата проведення аукціону (calculatedProps.periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі extraSpecs.periods.auctionPeriod.startDate при створенні ІП
- Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
- tenderPeriod кожної Прцедури (calculatedProps.periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у extraSpecs.periods.periodName:tenderPeriod.duration
- Розмір гарантійного внеску (calculatedProps.guarantee):
- Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee
- Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
2. Коли створено Першу Процедуру (announcement.status: active_auction), відповідь має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (calculatedProps.tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (calculatedProps.status):
- Перша Процедура - active
- Друга і Третя Процедура - scheduled
- sellingMethod (calculatedProps.sellingMethod):
- Перша Процедура - smallPrivatization-english
- Друга Процедура - smallPrivatization-english
- Третя Процедура - smallPrivatization-dutch
- Стартова ціна Об'єкта (calculatedProps.value):
- Перша Процедура - announcement.initialProps.value
- Друга Процедура - 50% від announcement.initialProps.value
- Третя Процедура - 50% від announcement.initialProps.value
- Крок аукціону (calculatedProps.minimalStep):
- Для Першої і Другої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
- Для Третьої Процедури - значення == 0
- Дата проведення аукціону (calculatedProps.periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
- Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
- tenderPeriod кожної Прцедури (calculatedProps.periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
- Розмір гарантійного внеску (calculatedProps.guarantee):
- Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee
- Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
- auctionID створеної Першої Процедури (calculatedProps.relatedEntities)
- Для першої Процедури вказано
- Для другої і третьої - ні
3. Коли створено Другу Процедуру (announcement.status: active_auction), відповідь має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (calculatedProps.tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (calculatedProps.status):
- Перша Процедура - unsuccessful
- Друга Процедура - active
- Третя Процедура - scheduled
- sellingMethod (calculatedProps.sellingMethod):
- Перша Процедура - smallPrivatization-english
- Друга Процедура - smallPrivatization-english
- Третя Процедура - smallPrivatization-dutch
- Стартова ціна Об'єкта (calculatedProps.value):
- Перша Процедура - announcement.initialProps.value
- Друга Процедура - 50% від announcement.initialProps.value
- Третя Процедура - 50% від announcement.initialProps.value
- Крок аукціону (calculatedProps.minimalStep):
- Для Першої і Другої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
- Для Третьої Процедури - значення == 0
- Дата проведення аукціону (calculatedProps.periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
- Для Другої і Третьої Процедури поле виводити не потрібно.
- tenderPeriod кожної Прцедури (calculatedProps.periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
- Розмір гарантійного внеску (calculatedProps.guarantee):
- Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Першій Процедурі протягом Procedure.clarificationPeriod.
- Для Другої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Другій Процедурі протягом Procedure.clarificationPeriod.
- Для Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
- auctionID створеної Першої Процедури (calculatedProps.relatedEntities)
- Для першої і другої Процедури вказано
- Для третьої - ні
4. Коли створено Третю Процедуру (announcement.status: active_auction), відповідь має містити:
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (calculatedProps.tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (calculatedProps.status):
- Перша Процедура - unsuccessful
- Друга Процедура - unsuccessful
- Третя Процедура - active
- sellingMethod (calculatedProps.sellingMethod):
- Перша Процедура - smallPrivatization-english
- Друга Процедура - smallPrivatization-english
- Третя Процедура - smallPrivatization-dutch
- Стартова ціна Об'єкта (calculatedProps.value):
- Перша Процедура - announcement.initialProps.value
- Друга Процедура - 50% від announcement.initialProps.value
- Третя Процедура - 50% від announcement.initialProps.value
- Крок аукціону (calculatedProps.minimalStep):
- Для Першої і Другої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
- Для Третьої Процедури - значення == 0
- Дата проведення аукціону (calculatedProps.periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
- Для Другої і Третьої Процедури поле виводити не потрібно.
- tenderPeriod кожної Прцедури (calculatedProps.periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
- Розмір гарантійного внеску (calculatedProps.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), відповідь має містити:
- Кількість Процедур у ланцюжку - чотири;
- Порядковий номер кожної процедури (calculatedProps.tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Для Четвертої Процедури tenderAttempts == 4
- Статус Процедури (calculatedProps.status):
- Перша Процедура - unsuccessful
- Друга Процедура - unsuccessful
- Третя Процедура - unsuccessful
- Четверта Процедура - active
- sellingMethod (calculatedProps.sellingMethod):
- Перша Процедура - smallPrivatization-english
- Друга Процедура - smallPrivatization-english
- Третя Процедура - smallPrivatization-dutch
- Четверта Процедура - smallPrivatization-dutch
- Стартова ціна Об'єкта (calculatedProps.value):
- Перша Процедура - announcement.initialProps.value
- Друга Процедура - 50% від announcement.initialProps.value
- Третя Процедура - 50% від announcement.initialProps.value
- Четверта Процедура - 50% від announcement.initialProps.value
- Крок аукціону (calculatedProps.minimalStep):
- Для Першої і Другої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
- Для Третьої і Четвертої Процедури - значення == 0
- Дата проведення аукціону (calculatedProps.periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod.startDate при створенні ІП
- Для Другої, Третьої і Четвертої Процедури поле виводити не потрібно.
- Розмір гарантійного внеску (calculatedProps.guarantee):
- Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee АБО значення guarantee, що відредагував Організатор у створеній Першій Процедурі протягом Procedure.clarificationPeriod.
- Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value) АБО значення guarantee, що відредагував Організатор у створеній Четвертій Процедурі протягом Procedure.clarificationPeriod.
- tenderPeriod кожної Прцедури (calculatedProps.periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої, Третьої і Четвертої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
6. Коли Перша, Друга або Третя Процедура переходить у статус complete
- Кількість Процедур у ланцюжку - три;
- Порядковий номер кожної процедури (calculatedProps.tenderAttempts):
- Для Першої Процедури tenderAttempts == 1
- Для Другої Процедури tenderAttempts == 2
- Для Третьої Процедури tenderAttempts == 3
- Статус Процедури (calculatedProps.status):
- Процедура, яка набула статус complete у блоці calculatedProps статус complete;
- Всі Процедури, які НЕ створилися у ланцюжку ІП статус - cancelled;
- Всі НЕуспішно завершені Процедури залишають статус - unsuccessful.
- sellingMethod (calculatedProps.sellingMethod):
- Перша Процедура - smallPrivatization-english
- Друга Процедура - smallPrivatization-english
- Третя Процедура - smallPrivatization-dutch
- Стартова ціна Об'єкта (calculatedProps.value):
- Перша Процедура - announcement.initialProps.value
- Друга Процедура - 50% від announcement.initialProps.value
- Третя Процедура - 50% від announcement.initialProps.value
- Крок аукціону (calculatedProps.minimalStep):
- Для Першої і Другої Процедури - значення, що вказав Організатор при створенні ІП у announcement.initialProps.minimalStep
- Для Третьої Процедури - значення == 0
- Дата проведення аукціону (calculatedProps.periods.periodName:auctionPeriod:startDate):
- Для Першої Процедури це дата, яку вказав Організатор у полі auctionPeriod_startDate при створенні ІП
- Для Другої і Третьої Процедури ця дата не визначена і поле виводити не потрібно.
- tenderPeriod кожної Прцедури (calculatedProps.periods.periodName:tenderPeriod.duration):
- Для Першої Процедури - відсутній
- Для Другої і Третьої Процедури значення, що вказав Організатор при створенні ІП у announcement.tenderPeriodDuration
- Розмір гарантійного внеску (calculatedProps.guarantee):
- Для Першої Процедури значення, що Організатор вніс у announcement.initialProps.guarantee
- Для Другої і Третьої Процедури по формулі: announcement.initialProps.guarantee == 20% від (50% від announcement.initialProps.value)
Приклад відображення можна подивитись тут:
https://prozorro.sale/planning/UA-LR-SSP-2018-08-22-000004-2
Розділ "Інформація про аукціон"
Тут у JSON: https://public.api.ea2.openprocurement.net/api/2/lots/1aca87d3cda24567868d6df2af81ddf5
поле "auctions"