Skip to content

Commit

Permalink
VA-448: add new columns for loppuselvitys excel
Browse files Browse the repository at this point in the history
  • Loading branch information
horttanainen committed Feb 17, 2025
1 parent 7e3cfc6 commit 3b0c59f
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ test('excel contains at least one row after submitting loppuselvitys', async ({
A: `1/${hakuProps.registerNumber}`,
B: hakuProps.avustushakuName,
C: 'Akaan kaupunki',
D: 99999,
D: '2050864-5',
E: 'kunta_kirkko',
F: 'Kainuu',
G: '',
H: 99999,
})
})
})
Expand Down Expand Up @@ -94,7 +98,11 @@ test('at least one loppuselvitys is not asiatarkastettu', async ({
A: `1/${hakuProps.registerNumber}`,
B: hakuProps.avustushakuName,
C: 'Akaan kaupunki',
D: 99999,
D: '2050864-5',
E: 'kunta_kirkko',
F: 'Kainuu',
G: '',
H: 99999,
})
})
})
Expand All @@ -103,11 +111,15 @@ function expectHakemusSheetHeaders(sheet: xlsx.WorkSheet) {
expect(sheet['A1'].v).toEqual('Hakemuksen asiatunnus')
expect(sheet['B1'].v).toEqual('Avustushaun nimi')
expect(sheet['C1'].v).toEqual('Hakijaorganisaatio')
expect(sheet['D1'].v).toEqual('Myönnetty avustus')
expect(sheet['D1'].v).toEqual('Y-tunnus')
expect(sheet['E1'].v).toEqual('Omistajatyyppi')
expect(sheet['F1'].v).toEqual('Maakunta')
expect(sheet['G1'].v).toEqual('Hakijan ensisijainen kotikunta')
expect(sheet['H1'].v).toEqual('Myönnetty avustus')
}

type AsiatarkastamatonRow = { A: number; B: number; C: string }
type HakemuksetRow = { A: string; B: string; C: string; D: number }
type HakemuksetRow = { A: string; B: string; C: string; D: string; E: string; F: string; G: string; H: number; }
type Row = AsiatarkastamatonRow | HakemuksetRow

function expectToFindRowInSheet(sheet: xlsx.WorkSheet, expectedRow: Row) {
Expand All @@ -122,6 +134,10 @@ function expectToFindRowInSheet(sheet: xlsx.WorkSheet, expectedRow: Row) {
return {
...row,
D: sheet[`D${index}`].v,
E: sheet[`E${index}`].v,
F: sheet[`F${index}`].v,
G: sheet[`G${index}`].v,
H: sheet[`H${index}`].v,
}
}
return row
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
(ns oph.va.virkailija.reports.loppuselvitysraportti
(:require [dk.ative.docjure.spreadsheet :as spreadsheet]
[oph.soresu.form.formhandler :as formhandler]
[oph.soresu.common.db :refer [query]])
(:import (java.io ByteArrayOutputStream)))

Expand Down Expand Up @@ -56,14 +57,72 @@ left join taloustarkastetut_loppuselvitykset tl on tl.year = l.year
(mapv vals rows))

(defn- get-hakemukset-rows []
(query "
select ha.register_number, a.content->'name'->'fi', organization_name, va.budget_granted
from hakija.hakemukset ha
join virkailija.arviot va on va.hakemus_id = ha.id
join hakija.avustushaut a on ha.avustushaku = a.id
where version_closed is null
and ha.status in ('submitted', 'pending_change_request', 'officer_edit')
" {}))
(query
"
with ha as (
select h.register_number as register_number,
a.content->'name'->'fi' as avustushaun_nimi,
h.organization_name as organization_name,
va.budget_granted as budget_granted,
form_submission_id,
form_submission_version
from hakija.hakemukset h
join virkailija.arviot va on va.hakemus_id = h.id
join hakija.avustushaut a on h.avustushaku = a.id
where version_closed is null
and h.status in ('submitted', 'pending_change_request', 'officer_edit')
),
b as (
SELECT id, version, elem->>'value' as business_id
FROM hakija.form_submissions, jsonb_array_elements(answers->'value') elem
WHERE elem->>'key' = 'business-id'
),
o as (
SELECT id, version, elem->>'value' as owner_type
FROM hakija.form_submissions, jsonb_array_elements(answers->'value') elem
WHERE elem->>'key' = 'radioButton-0'
),
m as (
SELECT id, version, elem->>'value' as maakunta_code
FROM hakija.form_submissions, jsonb_array_elements(answers->'value') elem
WHERE elem->>'key' = 'koodistoField-1'
),
k as (
SELECT id, version, elem->>'value' as kotikunta_code
FROM hakija.form_submissions, jsonb_array_elements(answers->'value') elem
WHERE elem->>'key' = 'avustushakemusAlueKunnat'
)
select register_number, avustushaun_nimi, organization_name, business_id, owner_type, maakunta_code, kotikunta_code, budget_granted
FROM ha
LEFT JOIN b ON b.id = ha.form_submission_id AND b.version = ha.form_submission_version
LEFT JOIN o ON o.id = b.id AND o.version = b.version
LEFT JOIN m ON m.id = b.id AND m.version = b.version
LEFT JOIN k ON k.id = b.id AND k.version = b.version
"{}))

(defn- get-koodisto-name-for-maakunta-code [maakunta-code]
(if (not (string? maakunta-code))
""
(formhandler/find-koodisto-value-name maakunta-code {:uri "maakunta" :version 1})))

(defn- get-koodisto-name-for-kotikunta-code [kotikunta-code]
(if (not (string? kotikunta-code))
""
(formhandler/find-koodisto-value-name kotikunta-code {:uri "kotikunnat" :version 1})))

(defn- kunta-codes-into-readable-names [row]
(let [kotikunta-name (get-koodisto-name-for-kotikunta-code (:kotikunta-code row))
maakunta-name (get-koodisto-name-for-maakunta-code (:maakunta-code row))]
{
:register_number (:register-number row)
:avustushaun_nimi (:avustushaun-nimi row)
:organization_name (:organization-name row)
:business_id (:business-id row)
:owner_type (:owner-type row)
:maakunta maakunta-name
:kotikunta kotikunta-name
:budget_granted (:budget-granted row)
}))

(defn export-loppuselvitysraportti []
(let [asiatarkastettu-rows (get-loppuselvitys-tarkastetut-rows)
Expand All @@ -81,7 +140,7 @@ left join taloustarkastetut_loppuselvitykset tl on tl.year = l.year
(make-loppuselvitysraportti-rows asiatarkastamatta-rows))
"Hakemukset"
(concat
[["Hakemuksen asiatunnus" "Avustushaun nimi" "Hakijaorganisaatio" "Myönnetty avustus"]]
(make-loppuselvitysraportti-rows hakemukset-rows)))]
[["Hakemuksen asiatunnus" "Avustushaun nimi" "Hakijaorganisaatio" "Y-tunnus" "Omistajatyyppi" "Maakunta" "Hakijan ensisijainen kotikunta" "Myönnetty avustus"]]
(make-loppuselvitysraportti-rows (mapv kunta-codes-into-readable-names hakemukset-rows))))]
(.write wb output)
(.toByteArray output)))

0 comments on commit 3b0c59f

Please sign in to comment.