open-contracting / bi.dream.gov.ua

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

Bug: Проєкти з наявним фінансуванням, але без "Джерела фінансування" #226

Open ndrhzn opened 5 days ago

ndrhzn commented 5 days ago

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

Image

Проблема з такими проєктами полягає хоча б в тому, що на сторінці "Деталі фінансування" вони ніяк не фігурують. І через це у таблиці "Деталі фінансування" та на решті сторінок у нас не збігаються числа у показнику "Наявне фінансування". Скажімо, станом на зараз у таблиці "Деталі проєктів" ми маємо показник наявного фінансування - 68.8 млрд грн, а на сторінці "Деталі фінансування" - 56.7 млрд грн.

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

Що потрібно зробити:

Якщо у проєкту є наявне фінансування, але відсутній елемент financingParty/id, тоді замість financingParty/id ми можемо ставити N/A. Або ж ми можемо писати експліцитно "Джерело фінансування не зазначено" / Funding source is not specified.

ndrhzn commented 1 day ago

Наразі у тестовому середовищі ось так, тому я припускаю, що це in progress

Image

Втім, на цій сторінці нам не потрібно відображати проєкти, у котрих немає фінансування

andrzejbeletsky commented 23 hours ago

take a look

ndrhzn commented 20 hours ago

Дякую! Узгоджуємо із Проєктним офісом коректну назву для цієї категорії

ndrhzn commented 15 hours ago

Після консультацій з командою розробки та Проєктним офісом погодили для тих випадків, коли є фінансування, але немає financingParty/id, використовувати в якості альтернативи cdu_response/approaches/budget/finance/classification/budgetProgramKVK.

"classification": {
        "budgetProgramId": "1201010",
        "budgetProgramKVK": "120",
        "budgetProgramName": "Керівництво та управління у сфері економіки"
    }

Це поле має містити числовий код - наприклад, 120. Аби отримати назву організації, нам потрібно із цим числовим кодом звернутися до довідника.

https://public-isb.dream.gov.ua/isb/openbudget/classifiers/KVK?code=120

Цей запит поверне нам таку відповідь

{
  "data": [
    {
      "beginDate": "2011-01-14",
      "code": "221",
      "parentCode": null,
      "level": 1,
      "endDate": "2014-02-06",
      "name": "Міністерство освіти і науки, молоді та спорту України (загальнодержавні витрати)",
      "beginDoc": "Наказ Мінфіну № 11 від 14.01.11",
      "details": 1,
      "endDoc": "Наказ Мінфіну № 44 від 07.02.14"
    },
    {
      "beginDate": "2014-02-07",
      "code": "221",
      "parentCode": null,
      "level": 1,
      "endDate": "2017-12-31",
      "name": "Міністерство освіти і науки України (загальнодержавні витрати)",
      "beginDoc": "Наказ Мінфіну № 44 від 07.02.14",
      "details": 1,
      "endDoc": "Наказ Мінфіну № 1175 від 29.12.17"
    },
    {
      "beginDate": "2018-01-01",
      "code": "221",
      "parentCode": null,
      "level": 1,
      "endDate": null,
      "name": "Міністерство освіти і науки України (загальнодержавні видатки та кредитування)",
      "beginDoc": "Наказ Мінфіну № 1175 від 29.12.17",
      "details": 1,
      "endDoc": null
    }
  ]
}

Як бачимо, тут міститься декілька записів про назви організацій. Для нас ймовірно має сенс брати поточну. Тому можна взяти або обʼєкт із максимальним значенням beginDate, або ж обʼєкт без елементу endDate.

І у цьому обʼєкті нам потрібен елемент name.

Водночас, видається, що є сенс лишити N/A для тих випадків, коли ми не маємо ані financingParty/id, ані finance/classification/budgetProgramKVK, аби ми мали можливість діагностувати проблему.