Open ndrhzn opened 4 hours ago
У нас вже є фільтр "Наявність ПКД", однак після того, як ми реалізуємо цю нову логіку, цей фільтр втратить актуальність. В оригінальній імплементації цього фільтру ми використовували досить спрощену і не зовсім коректну логіку.
На сторінку "Всі фільтри" нам потрібно додати новий блок фільтрів.
Назва блоку - "Проєктно-кошторисна документація" / Design documentation Розташування блоку - під блоком "Документи та класифікатори"
Перелік фільтрів
Життєвий цикл
Процедура
Перевірити, чи має проєкт завдання на проєктування
Тобто, на рівні даних проєкту ми дивимось в елемент
approaches/items/additionalClassifications/id
деapproaches/items/additionalClassifications/scheme="UA-SESC"
.Якщо елемент з такою схемою є, і цей елемент починається з літер ZP, тоді ми знаємо, що цей елемент містить код завдання на проєктування. У цьому елементі можуть бути коди, які починаються з інших літер, оскільки раніше валідації на внесенні даних не було. Саме тому нам і потрібно застосовувати цю перевірку.
Наприклад, на рівні проєкту 0056k0ts-0975-4721-at3e-p5qd0ie31psa ми маємо обʼєкт інвестицій (item) із потрібною нам схемою класифікації.
Перевірити, чи створена проєктна документація
Якщо у нас є код завдання на проєктування, тоді ми можемо з ним звернутися до design-documentation endpoint у форматі
https://public-isb.dream.gov.ua/isb/e-construction/design-documentation?design-task-code={design-task-code}
.Тобто, з нашим реальним кодом з попереднього етапу, запит виглядатиме як
https://public-isb.dream.gov.ua/isb/e-construction/design-documentation?design-task-code=ZP01:1742-7151-0066-1612
Якщо за цим завданням на проєктування ще немає проєктної документації, тоді АРІ поверне 404. Але якщо проєктна документація вже є, тоді ми маємо отримати JSON, у котрому буде міститись код проєктної документації.
Наприклад, за наведеним вище запитом, ми отримаємо
Якщо у відповіді є елемент
designDocumentation/code
, ми можемо зробити висновок про наявність проєктної документації.Перевірити, чи проєктна документація затверджена
Аби перевірити, чи проєктна документація вже затверджена, нам потрібно подивитись, чи наявний у відповіді milestone із типом approve.
У нашому прикладі це виглядає ось так:
Якщо milestone з таким типом є, тоді ми можемо зробити висновок, що проєктна документація затверджена.
Перевірити, чи наявна експертиза проєктної документації
Аби перевірити, чи проєктна документація вже пройшла експертизу, нам потрібно подивитися, чи наявний у відповіді milestone із типом expertise.
У нашому випадку це виглядає наступним чином:
Якщо milestone з таким типом є, тоді ми можемо зробити висновок, що проєктна документація отримала експертний висновок.
Перевірити, чи наявний дозвіл на будівництво
Аби перевірити, чи вже є дозвіл на будівництво, потрібно подивитися, чи наявний у відповіді milestone із типом constructionPermission.
У нашому випадку це виглядає наступним чином:
Якщо milestone з таким типом є, тоді ми можемо зробити висновок, що за цим завданням на проєктування вже є дозвіл на будівництво.
Нюанси даних
Завдання на проєктування у нас привʼязуються до обʼєктів інвестицій (items). Технічне рішення у проєкті (approaches) може мати декілька обʼєктів інвестицій, однак не всі з них можуть потребувати завдання на проєктування, оскільки проєктна документація потрібна лише для тих обʼєктів інвестицій, що передбачають будівництво.
Для імплементації фільтрів нам це не дуже важливо. Ми перевіряємо не те, чи всі обʼєкти інвестицій, котрі можуть мати завдання на проєктування, справді його мають, а радше, чи бодай один обʼєкт інвестицій має завдання на проєктування. Однак для інших задач нам цей нюанс буде важливий.