Кількість кроків для 3го та 4го аукціонів ланцюжка малої приватизації


byPO

Detailed Description

В рамках постанови КМУ від 23 травня 2025 р. №602 було внесено зміни у постанову №432 про порядок продажу об'єктів малої приватизації.

Зміни передбачають, що для об'єктів державної власності загальна кількість кроків, на які знижується стартова ціна, становить 50 кроків, а у разі проведення повторного аукціону за методом покрокового зниження стартової ціни та подальшого подання цінових пропозицій загальна кількість кроків, на які знижується стартова ціна лота, становить 99 кроків.

Для об'єктів комунальної власності органами приватизації територіальних громад може встановлюватися загальна кількість кроків, на які знижується стартова ціна об'єкта приватизації, до 99 включно.

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


AR (actual result):

  • Для JAS при публікації організатор вказує кількість кроків голланського аукціону. Ця кількість однакова для 3го і 4го аукціона ланцюжка

ER (expected result):

  • для JAS при публікації вказати окремо кількість кроків для 3го та 4го аукціону в діапазоні 1-99.
  • Обовʼязкове заповнення обох полів для публікації ІП

Other :

  • послідовность ланцюжка процедур не змінюється
  • внести зміни у вимоги для майданчиків та повідомити у описі релізів/releasescope

Context (Environment)

  • Інформаційні повідомлення малої приватизації, голландські аукціони малої приватизації (JAS, SPD)

Requestor & Contact

byAnalyst

AR:

При публікації обʼєкта Announcement, організатор передає поля

initialProps.dutchStep.dutchStepQuantity

в цьому полі організатор передає кількість кроків для голландських аукціонів (третього в ланцюжку і четвертого)

ER:

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

Одним із рішень є:

  1. Існуюче поле initialProps.dutchStep.dutchStepQuantity залишаємо в структурі (всі поля initialProps залишаються, як є), без змін в їх логіці роботи. Тобто, Організатору при публікації ІП потрібно обовʼязково їх заповнити і передати згідно поточної логіки, тут нічого не міняється для Організатора.
  2. Створюємо нові поля в

extraSpecs[].dutchStep.dutchStepQuantity

Логіка для extraSpecs[] така, що в масиві завжди присутні чотири обʼєкта і кожен обʼєкт відповідає за процедуру в тій самій послідовності ланцюжка.

Наприклад, зараз Майданчик при публікації передає periods[] для кожної процедури так:

    "extraSpecs": [
        {
            "periods": [
                {
                    "periodName": "auctionPeriod",
                    "startDate": "2025-06-20T10:00:00.000Z"
                }
            ]
        },
        {
            "periods": [
                {
                    "periodName": "tenderPeriod",
                    "duration": [
                        {
                            "quantity": 5,
                            "unit": "b_day"
                        }
                    ]
                }
            ]
        },
        {
            "periods": [
                {
                    "periodName": "tenderPeriod",
                    "duration": [
                        {
                            "quantity": 4,
                            "unit": "b_day"
                        }
                    ]
                }
            ]
        },
        {
            "periods": [
                {
                    "periodName": "tenderPeriod",
                    "duration": [
                        {
                            "quantity": 6,
                            "unit": "b_day"
                        }
                    ]
                }
            ]
        }
    ],

Можна додати до третьої і четвертої процедур обовʼязкові для заповнення поля dutchStep.dutchStepQuantity

Тоді Майданчик буде при публікації передавати так:

   "extraSpecs": [
    {
        "periods": [
            {
                "periodName": "auctionPeriod",
                "startDate": "2025-06-20T10:00:00.000Z"
            }
        ]
    },
    {
        "periods": [
            {
                "periodName": "tenderPeriod",
                "duration": [
                    {
                        "quantity": 5,
                        "unit": "b_day"
                    }
                ]
            }
        ]
    },
    {
        "periods": [
            {
                "periodName": "tenderPeriod",
                "duration": [
                    {
                        "quantity": 4,
                        "unit": "b_day"
                    }
                ]
            }
        ],
        "dutchStep": {
            "dutchStepQuantity": 50
         }
    },
    {
        "periods": [
            {
                "periodName": "tenderPeriod",
                "duration": [
                    {
                        "quantity": 6,
                        "unit": "b_day"
                    }
                ]
            }
        ],
        "dutchStep": {
            "dutchStepQuantity": 99
         }
    }
],

Як має працювати логіка:

  1. Якщо Організатор передав тільки initialProps.dutchStep.dutchStepQuantity, та для обох процедур і НЕ передав extraSpecs[].dutchStep.dutchStepQuantity, то

    • Обидві голландські процедури створяться з кількістю кроків, яка вказана в initialProps.dutchStep.dutchStepQuantity
  2. Якщо Організатор передав заповнене initialProps.dutchStep.dutchStepQuantity, а також заповнені

    extraSpecs[].dutchStep.dutchStepQuantity для третьої і четвертої процедури, то значення

    initialProps.dutchStep.dutchStepQuantity НЕ враховується. Вважається, що вказанням кількості кроків в extraSpecs[] Організатор перевизначив кількість кроків для третьої і четвертої процедури.

    • Тобто, те, що вказується в initialProps - як default значення, яке за потреби можна перевизначити, вказавши значення в extraSpecs для кожної окремої процедури.
  3. Якщо Організатор передав заповнене initialProps.dutchStep.dutchStepQuantity, а також заповнив

    extraSpecs[2].dutchStep.dutchStepQuantity, але НЕ заповнив extraSpecs[3].dutchStep.dutchStepQuantity, то

    • Для першої голландської процедури кількість кроків буде та, яку вказали конкретно для неї в extraSpecs[2].dutchStep.dutchStepQuantity
    • Для другої голландської процедури кількість кроків буде та, яка вказана в initialProps.dutchStep.dutchStepQuantity (бо це як дефолтне значення, якщо не вказано конкретно для extraSpecs[3].)
  4. Якщо Організатор передав заповнене initialProps.dutchStep.dutchStepQuantity, а також НЕ заповнив extraSpecs[2].dutchStep.dutchStepQuantity, але ЗАПОВНИВ extraSpecs[3].dutchStep.dutchStepQuantity, то

    • Для першої голландської процедури кількість кроків буде та, яка вказана в initialProps.dutchStep.dutchStepQuantity, бо для неї НЕ перевизначили і не вказали іншої кількості кроків в extraSpecs[2].dutchStep.dutchStepQuantity
    • Для другої голландської процедури кількість кроків буде та, яка вказана в extraSpecs[3].dutchStep.dutchStepQuantity, бо Організатор конкретно для неї перевизначив і вказав окрему кількість кроків.

ЧОМУ ЛОГІКА САМЕ ТАКА:

  1. При такій реалізації не потрібна міграція всіх існуючих announcement, бо
    • в існуючих обʼєкта не буде додаватися ніяких нових полів, вони пройшли чи пройдуть (ті, які не в термінальному статусі) по default значенням кількості кроків, яка вказана в initialProps
    1. В коді логіка приблизно така: "якщо вказана кількість кроків в extraSpecs, то бери це значення для відповідної процедури, інакше заберай кількість кроків із initialProps"

ДЛЯ МАЙДАНЧИКІВ

Потрібно реалізувати на інтерфейсі можливість для користувача вказати окремо в двох різних полях кількість кроків для першого голландського аукціону і для другого голландського аукціона

Ораганізатор заповнює на інтерфейсі обидва поля, наприклад:

  • Кількість кроків першого Голландського аукціону: 50
  • Кількість кроків другого Голландського аукціону: 99

При публікації Майданчик передає ці значення в наступних полях:

  1. extraSpecs[2].dutchStep.dutchStepQuantity == 50 (те, що Організатор вказав для першого Голландського аукціону)
  2. extraSpecs[3].dutchStep.dutchStepQuantity == 99 (те, що Організатор вказав для другого Голландського аукціону)
  3. initialProps.dutchStep.dutchStepQuantity == 50 (те, що Організатор вказав для першого Голландського аукціону) (дублюємо, бо поле обовʼязково)

В даному випадку ці поля будуть виглядати так:

  "extraSpecs": [
{
    "periods": [
        {
            "periodName": "auctionPeriod",
            "startDate": "2025-06-20T10:00:00.000Z"
        }
    ]
},
{
    "periods": [
        {
            "periodName": "tenderPeriod",
            "duration": [
                {
                    "quantity": 5,
                    "unit": "b_day"
                }
            ]
        }
    ]
},
{
    "periods": [
        {
            "periodName": "tenderPeriod",
            "duration": [
                {
                    "quantity": 4,
                    "unit": "b_day"
                }
            ]
        }
    ],
    "dutchStep": {
        "dutchStepQuantity": 50
     }
},
{
    "periods": [
        {
            "periodName": "tenderPeriod",
            "duration": [
                {
                    "quantity": 6,
                    "unit": "b_day"
                }
            ]
        }
    ],
    "dutchStep": {
        "dutchStepQuantity": 99
     }
},
"initialProps": {
    "dutchStep": {
        "dutchStepQuantity": 50
     },
      ...
}

ДАНЕ ПОЛЕ ПОТРІБНО БУДЕ НАЛАШТУВАТИ НА ПОРТАЛІ Prozorro.sale !!!

АЛЬТЕРНАТИВНИЙ ВАРІАНТ

НЕ ПОГОДИЛИ

Не вносити ніяких змін в Announcement

Внести зміну в процедуру SPD, а саме дозволити редагувати поле dutchStep.dutchStepQuantity після того, як процедура створилася і до завершення clarificationPeriod

Вимога така, що потрібно на майданчиках, а також у нас відображати в ІП одразу кількість кроків для 3 і 4 голландця. І ця кількість має бути коректною.

Не можна відображати спочатку некоректну кількість кроків, а потім, після редагування - коректну.

Edited by Philip