open-contracting / bi.dream.gov.ua

DREAM Analytics
https://bi.dream.gov.ua
Apache License 2.0
1 stars 0 forks source link

Сторінка: Деталі фінансових програм #154

Open ndrhzn opened 1 month ago

ndrhzn commented 1 month ago

За аналогією із сторінкою "Деталі проєктів", нам потрібно зробити сторінку "Деталі фінансових програм" / Financial programs details.

Сторінка має бути доступна за посиланням /finProgramsDetails, посилання на цю сторінку має бути доступно у лівій панелі модуля аналітики після посилання на "Бюджетування" і перед посиланням на "Наповнення". Іконка для цієї сторінки може бути на зразок такої.

З правого боку сторінки має бути панель вибору стовпчиків для відображення за аналогією з тим, як це реалізовано на сторінці "Деталі проєктів". Видимість за замовчуванням зафіксована у таблиці нижче у стовпчику default_state.

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

Фінансова програма FInancial program
Область Region
Громада Community
Сектор Sector

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

Ми можемо дізнатися, чи має проєкт звʼязок із фінансовою програмою через елемент cdu_response/approaches/budget/finance/relatedProcesses. Там можна дивитися на cdu_response/approaches/budget/finance/relatedProcesses/identifier де cdu_response/approaches/budget/finance/relatedProcesses/scheme = "fundingProgram".

Логіка доволі проста - ми обираємо проєкти, у яких в структурі фінансування є звʼязок із фінансовою програмою (станом на сьогодні їх має бути 42 - для перевірки).

Сама таблиця має містити наступні стовпчики

name_ua name_en default_state path notes new or existing
Код проєкту Project code visible internal/code WHERE cdu_response/approaches/budget/finance/relatedProcesses = ‘fundingProgram’ existing
Посилання на проєкт URL internal/code https://dream.gov.ua/ua/project/DREAM-UA-{internal/code}/profile OR https://dream.gov.ua/project/DREAM-UA-{internal/code}/profile existing
Статус Status visible cdu_response/status existing
Назва проєкту Project title visible cdu_response/title/translation WHERE cdu_response/title/lang = 'uk' existing
Ініціатор Initiator hidden cdu_response/parties/identifier/legalName | cdu_response/parties/identifier/id WHERE cdu_response/parties/roles = 'initiator' existing
Орган управління Management body visible cdu_response/parties/identifier/legalName | cdu_response/parties/identifier/id companies endpoint, memberOf existing
Область Region visible cdu_response/locations/gazetteer/identifiers objects endpoint, WHERE cdu_response/locations/gazetteer/scheme=‘UA-CATOTTG’ existing
Сектор Sector visible cdu_response/additionalClassifications/id objects endpoint, WHERE cdu_response/additionalClassifications/scheme = "WB-ECO" existing
Фінансова програма Financial program visible cdu_response/approaches/budget/finance/classification/budgetProgramName new
Код бюджету, з якого здійснюється співфінансування проєкту Local budget code visible cdu_response/approaches/budget/finance/classification/localBudgetCode WHERE cdu_response/approaches/budget/finance/financeCategory = 'localBudget' & cdu_response/approaches/budget/finance/relatedProcesses = ‘fundingProgram’ new
Загальна кошторисна вартість Total estimated cost visible cdu_response/items/value/amount submissions endpoint, https://public-api.dream.gov.ua/marketplace/public/dream/submissions, WHERE cdu_response/relatedProcesses/scheme = “project” AND cdu_response/relatedProcesses/identifier = main/internal/id new
Загальний орієнтовний бюджет Overall estimated budget visible cdu_response/approaches/budget/budgetBreakdown/amount/amount existing
Кошторисна вартість за результатами проведених тендерів Overal contract value visible cdu_response_contractingProcesses/summary/contracts/value/amount WHERE status = != "cancelled" existing
Дата та номер рішення (розпорядження) про розподіл коштів бюджетам місцевого рівня Legal basis visible cdu_response_approaches/budget/finance/legalBasis WHERE cdu_response_approaches/budget/finance/financeCategory = ‘centralBudget’ AND cdu_response_approaches/budget/finance/status='commited' newish
Заплановано. Місцевий бюджет Commited. Local budget visible cdu_response/approaches/budget/finance/value/amount WHERE cdu_response_approaches/budget/finance/financeCategory = ‘localBudget’ newish
Заплановано. Державний бюджет (субвенція) Commited. Central budget visible cdu_response/approaches/budget/finance/value/amount WHERE cdu_response_approaches/budget/finance/financeCategory = ‘centralBudget’ newish
Заплановано. Інші джерела Commited. Other visible cdu_response/approaches/budget/finance/value/amount WHERE cdu_response_approaches/budget/finance/financeCategory NOT IN [‘centralBudget’, 'localBudget'] newish
Надійшло. Місцевий бюджет Disbursed. Local budget visible approaches[].implementation.financialProgress.breakdown[period:{}].measures.disbursed not available in API yet
Надійшло. Державний бюджет (субвенція) Disbursed. Cental budget visible approaches[].implementation.financialProgress.breakdown[period:{}].measures.disbursed not available in API yet
Надійшло. Інші джерела Disbursed. Other visible approaches[].implementation.financialProgress.breakdown[period:{}].measures.disbursed not available in API yet
Сума ще не виділених коштів. Місцевий бюджет Not allocated. Local budget visible Заплановано. Місцевий бюджет - Надійшло. Місцевий бюджет not available in API yet
Сума ще не виділених коштів. Державний бюджет (субвенція) Not allocated. Central budget visible Заплановано. Державний бюджет (субвенція) - Надійшло. Державний бюджет (субвенція) not available in API yet
Сума ще не виділених коштів. Інші джерела Not allocated. Other visible Заплановано. Інші джерела - Надійшло. Інші джерела not available in API yet
Витрачено. Місцевий бюджет Paid. Local budget visible contractingProcesses[].summary.contracts[].implementation.financialProgress.breakdown[period:{}], classifications.contractingFinanceId.measures.paid LINK THROUGH contractingProcesses[].summary.budget.finance.classifications.budgetFinanceId, not available in API yet
Витрачено. Державний бюджет (субвенція) Paid. Central budget visible contractingProcesses[].summary.contracts[].implementation.financialProgress.breakdown[period:{}], classifications.contractingFinanceId.measures.paid LINK THROUGH contractingProcesses[].summary.budget.finance.classifications.budgetFinanceId, not available in API yet
Витрачено. Інші джерела Paid. Other visible contractingProcesses[].summary.contracts[].implementation.financialProgress.breakdown[period:{}], classifications.contractingFinanceId.measures.paid LINK THROUGH contractingProcesses[].summary.budget.finance.classifications.budgetFinanceId, not available in API yet
Недофінансована частка проєкта Unfunded portion of the project visible Загальна кошторисна вартість - (Заплановано. Місцевий бюджет + Заплановано. Державний бюджет (субвенція) + Заплановано. Інші джерела)
Залишкова кошторисна вартість Estimated residual cost visible Загальна кошторисна вартість - (Витрачено. Місцевий бюджет + Витрачено. Державний бюджет (субвенція) + Витрачено. Інші джерела) not available in API yet
Дата та номер акта готовності об’єкта до експлуатації або сертифіката чи декларації про прийняття об’єкта в експлуатацію Date and document number of facility readiness for operation or certificate/declaration of facility acceptance for operation hidden ЄДЕССБ not yet available
Дата оголошення тендеру Tender announcement date hidden tender/tenderPeriod/startDate https://public-isb.dream.gov.ua/isb/tenders/{tender_id}, WHERE tender/procurementCategory='works' AND cdu_response/contractingProcesses/summary/status != ‘cancelled’
Дата підписання договору Contract signing date hidden period/startDate https://public-isb.dream.gov.ua/isb/contracts/{contract_id} using contracts/id https://public-isb.dream.gov.ua/isb/tenders/{tender_id}
Клас наслідків Consequence class hidden ЄДЕССБ not yet available
Дата подачі документів в ДІАМ для отримання дозволу про початок робіт Date of submission of documents to the DIAM for obtaining a permit to commence work hidden ЄДЕССБ not yet available
Будівельні роботи Construction hidden ЄДЕССБ not yet available
Відбувається коригування ПКД чи ні Is there adjustment of the PCP or not hidden ЄДЕССБ not yet available
Частка виконаних робіт hidden ЄДЕССБ not yet available
Плановий термін завершення виконання робіт (вказати планову дату) Planned completion date of work (specify planned date) hidden ЄДЕССБ not yet available
Дата подачі документів в ДІАМ на введення в експлуатацію. Date of documents submission to the DIAM for operation commencement hidden ЄДЕССБ not yet available
Фактична дата завершення, день, місяць, рік Actual completion date, day, month, year hidden ЄДЕССБ not yet available
Фактична дата введеня в експлуатацію Actual date of operation commencement hidden ЄДЕССБ not yet available
Примітка Note hidden ЄДЕССБ

Не всі елементи даних походять з ideas або objects endpoint. Для деяких стовпчиків нам потрібно буде забирати дані із нових ендпойнтів, інформація про це міститься у стовпчику notes.

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

andrzejbeletsky commented 1 month ago

in progress

ndrhzn commented 1 month ago

Для показника "Дата оголошення тендеру" нам потрібно брати ідентифікатор тендеру з елементу cdu_response/contractingProcesses/summary/tender/id

Якщо у тендері procurementCategory = “works”, тоді можна брати tenderPeriod/startDate (втім, дати початку може не бути)

ndrhzn commented 1 month ago

Для показника "Клас наслідків" нам потрібно

ndrhzn commented 1 month ago

Елемента даних для показника “Дата подачі документів в ДІАМ для отримання дозволу про початок робіт” у нас наразі немає. Ми можемо залишити цей стовпчик порожнім, але поруч з ним додати стовпчик “Дата отримання дозволу на початок робіт” / The date of obtaining a construction permit.

ndrhzn commented 1 month ago

Хоча фактично все, що я написав у попередньому повідомленні, стосується стовпчика "Будівельні роботи". Отже, створювати новий елемент не потрібно, просто потрібно наповнити той, що вже є у таблиці

ndrhzn commented 1 month ago

Там в структуру таблиці помилково додали стовпчик "Примітка", котрий в середовищі BI не дуже має сенс. Давайте його приберемо @andrzejbeletsky

ndrhzn commented 1 month ago

Щодо самої таблиці у нас, здається, є ще декілька стовпчиків де ми можемо додати дані

З рештою будемо розбиратися мірою появи даних в АРІ

Також попросили сортувати таблицю за стовпчиком “Заплановано. Державний бюджет (субвенція)” від найбільшого до найменшого

ndrhzn commented 1 month ago

Також давайте зараз зробимо все, що після стовпчика "Заплановано. Інші джерела" прихованим за замовчуванням. Видається, що у нас там немає даних зовсім, і мало цінності в тому, аби показувати цю структуру із суцільними NA. Потім мірою надходження даних в АРІ, будемо робити видимими за замовчуваннями окремі стовпчики

andrzejbeletsky commented 1 month ago

Зроблено "Дата оголошення тендеру"

andrzejbeletsky commented 1 month ago

Зроблено "Дата підписання договору"

andrzejbeletsky commented 1 month ago

На dev зроблено "Клас наслідків"

andrzejbeletsky commented 4 weeks ago

На dev зроблено "Будівельні роботи"

ndrhzn commented 3 weeks ago

"Клас наслідків" та "Будівельні роботи" можна релізити на прод

ndrhzn commented 3 weeks ago

Щодо "Дата оголошення тендеру" та "Дата підписання договору" - здається, коли їх тільки зробили, то там були записи із датами. А зараз всі записи порожні (-). Щось змінилося у обробці даних?

ndrhzn commented 3 weeks ago

Наразі фільтр "Фінансова програма" працює таким чином, що якщо його застосувати, то зникають показники з частини стовпчиків

Фільтр не застосований

зображення

Фільтр застосований

зображення

Видається, що це не дуже правильна поведінка. Як це має працюєвати - уявімо, що у нас в цій таблиці є дані щодо 10 різних фінансових програм, нам потрібно обрати лише ті проєкти, які мають фінансування в рамках якоїсь фінансової програми.

Отже, коли ми обираємо щось у фільтрі "Фінансова програма", фільтрація має застосовуватись насамперед до проєктів, а не до окремих стовпчиків, що стосуються фінансування.

Чи це має сенс, @andrzejbeletsky? Можу винести це окремою задачею

ndrhzn commented 3 weeks ago

[Надійшло / Disbursed]

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

Потрібні нам дані містяться в елементі cdu_response/approaches/implementation/financialProgress/breakdown

"implementation": {
    "financialProgress": {
      "breakdown": [
        {
          "id": "0235c342-4781-4e83-8e31-699d4c171903",
          "period": {
            "endDate": "2024-05-31",
            "startDate": "2024-05-01"
          },
          "measures": {
            "disbursed": 21127088
          },
          "classifications": {
            "budgetFinanceId": "76467cb0-1f42-c8d5-f4f1-5dcae53eecdb"
          }
        },
        {
          "id": "4d90b9df-886a-4b0c-872e-a47c78dc24f6",
          "period": {
            "endDate": "2024-06-30",
            "startDate": "2024-06-01"
          },
          "measures": {
            "disbursed": 35211813
          },
          "classifications": {
            "budgetFinanceId": "76467cb0-1f42-c8d5-f4f1-5dcae53eecdb"
          }
        },
        {
          "id": "70d50484-3cc3-47ab-b670-c9b025795c2b",
          "period": {
            "endDate": "2024-08-31",
            "startDate": "2024-08-01"
          },
          "measures": {
            "disbursed": 11510589
          },
          "classifications": {
            "budgetFinanceId": "76467cb0-1f42-c8d5-f4f1-5dcae53eecdb"
          }
        },
        {
          "id": "80b31c62-c16c-4d2d-bcb0-a6f11d33dae0",
          "period": {
            "endDate": "2024-07-31",
            "startDate": "2024-07-01"
          },
          "measures": {
            "disbursed": 35211813
          },
          "classifications": {
            "budgetFinanceId": "76467cb0-1f42-c8d5-f4f1-5dcae53eecdb"
          }
        }
      ]
    }
  }

cdu_response/approaches/implementation/financialProgress/breakdown/measures/disbursed - вказує на те, скільки коштів надійшло

cdu_response/approaches/implementation/financialProgress/breakdown/classifications/budgetFinanceId - вказує на те, з якого джерела даних походять кошти

Тобто, аби визначити, чи це "Надійшло. Державний бюджет", чи "Надійшло. Місцевий бюджет", нам потрібно звʼязати cdu_response/approaches/implementation/financialProgress/breakdown/classifications/budgetFinanceId із cdu_response/approaches/budget/finance/id.

Скажімо, у цьому прикладі у нас cdu_response/approaches/implementation/financialProgress/breakdown/classifications/budgetFinanceId = "76467cb0-1f42-c8d5-f4f1-5dcae53eecdb".

Якщо ми подивимось у елемент cdu_response/approaches/budget/finance, там можна знайти запис із відповідним id

{
    "id": "76467cb0-1f42-c8d5-f4f1-5dcae53eecdb",
    "value": {
      "amount": 103061303,
      "currency": "UAH"
    },
    "period": {
      "endDate": "2024-12-31",
      "startDate": "2024-01-01"
    },
    "status": "committed",
    "measures": {
      "fiscalYear": 2024,
      "relatedItem": "498d8222-a541-4b7a-9073-c5775ba2ef84"
    },
    "legalBasis": "Постанова Кабінету Міністрів України від 28 квітня 2023 р. № 419 (зі змінами)",
    "financeType": "stateFunds",
    "classification": {
      "budgetProgramId": "2211310",
      "budgetProgramKVK": "221",
      "budgetProgramName": "Субвенція з державного бюджету місцевим бюджетам на облаштування безпечних умов у закладах, що надають загальну середню освіту"
    },
    "financeCategory": "centralBudget",
    "relatedProcesses": [
      {
        "id": "rje2f34f-gac0-4mfc-8n39-7w00ze6p30gg",
        "scheme": "UA-DREAM",
        "identifier": "8w2ht6q5-613z-4td5-9rin-1s28he8p11e9",
        "relationship": "fundingProgram"
      }
    ]
  }

В цьому елементі ми також можемо подивитися financeCategory і встановити, що це кошти державного бюджету. Отже, надходження ми можемо кваліфікувати як "Надійшло. Державний бюджет". За цим же принципом ми можемо ідентифікувати і "Надійшло. Місцевий бюджет" та "Надійшло. Інші джерела"

ndrhzn commented 3 weeks ago

Щодо "Дата оголошення тендеру" та "Дата підписання договору" - здається, коли їх тільки зробили, то там були записи із датами. А зараз всі записи порожні (-). Щось змінилося у обробці даних?

Схоже, що зламалося через те, що в АРІ змінили модель даних. Розберуся, як потрібно змінити шляхи до потрібних елементів даних та задокументую тут

ndrhzn commented 3 weeks ago

Документую тут, що у нас виявили помилку в розрахунках показника "Загальна кошторисна вартість", яка походить з того, що до одного проєкту можуть бути підвʼязані декілька заявок у різних статусах. Зафіксували, що для цього показника нам потрібно брати лише ті заявки, що мають статус active.

Також домовились перейменувати цей показник на "Сума фінансового запиту" / Amount of money requested, оскільки це буде більш коректним описом цього елемента даних.

Показник "Загальна кошторисна вартість" ми додамо згодом - за ним потрібно буде звертатися до даних ЄДЕССБ.

Виправлення розрахунку та перейменування в прогресі