Skip to content

Commit

Permalink
Merge branch 'develop' into pdf-rivirajoitus
Browse files Browse the repository at this point in the history
  • Loading branch information
solita-staskila committed Sep 18, 2024
2 parents c25243f + ebc8dbc commit ae7f394
Show file tree
Hide file tree
Showing 24 changed files with 1,219 additions and 104 deletions.
164 changes: 164 additions & 0 deletions cypress/e2e/mhu_kustannussuunnitelma-24.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
import {avaaKustannussuunnittelu} from "../support/kustannussuunnitelmaFns.js";
import * as ks from "../support/kustannussuunnitelmaFns.js";

const indeksit = [];

function alustaSuomussalmenUrakka() {
ks.alustaKanta('POP MHU Suomussalmi 2024-2029');
}

describe('Johto- & Hallintokorvaukset, 2024->', () => {
before(function () {
alustaSuomussalmenUrakka();
avaaKustannussuunnittelu('POP MHU Suomussalmi 2024-2029', 'Pohjois-Pohjanmaa', indeksit);
})

describe('Vakiotoimenkuvat', () => {
it('Vakiotoimenkuvat ovat oikein', () => {
cy.intercept('POST', '_/tallenna-budjettitavoite').as('tallenna-budjettitavoite');
cy.intercept('POST', '_/tallenna-johto-ja-hallintokorvaukset').as('tallenna-jhk')

// Varmistetaan, että vuonna 2024 alkavilla urakoilla on kaikki niille määritellyt toimenkuvat
cy.get('#toimenkuvat-taulukko').contains('Valmistelukausi ennen urakka-ajan alkua');
cy.get('#toimenkuvat-taulukko').contains('Vastuunalainen työnjohtaja');
cy.get('#toimenkuvat-taulukko').contains('2. työnjohtaja');
cy.get('#toimenkuvat-taulukko').contains('3. työnjohtaja');
cy.get('#toimenkuvat-taulukko').contains('Viherhoidosta vastaava henkilö');
cy.get('#toimenkuvat-taulukko').contains('Harjoittelija');
})

it('Vakiotoimenkuvien summia voi syöttää kuukausille erikseen', () => {
cy.get('#toimenkuvat-taulukko')
.contains('2. työnjohtaja')
.next().click()
cy.get('#toimenkuvat-taulukko')
.contains('2. työnjohtaja')
.parent()
.next()
.contains('Suunnittele maksuerät kuukausittain')
.click()
cy.get('#toimenkuvat-taulukko')
.contains('2. työnjohtaja')
.parent()
.next()
.contains('Lokakuu 2024')
.next()
.find('input')
.clear()
.type('100')
.blur()
cy.intercept('POST', '_/tallenna-budjettitavoite')
.as('tallenna-budjettitavoite');
cy.intercept('POST', '_/tallenna-johto-ja-hallintokorvaukset')
.as('tallenna-jhk')
cy.wait('@tallenna-jhk')
.its('response.statusCode')
.should('equal', 200)
cy.wait('@tallenna-budjettitavoite')
.its('response.statusCode')
.should('equal', 200)
})
})

describe('Omat toimenkuvat', () => {
it('Omien toimenkuvien nimet voi vaihtaa', () => {
cy.intercept('POST', '_/tallenna-toimenkuva').as('tallenna-toimenkuva');

cy.get('#toimenkuvat-taulukko')
.contains('Harjoittelija')
.parent()
.next().next()
.find('input')
.first()
.clear()
.type('4. työnjohtaja')
.blur()
cy.get('#toimenkuvat-taulukko')
.contains('Harjoittelija')
.parent()
.next().next()
.next().next()
.find('input')
.first()
.clear()
.type('5. työnjohtaja')
.blur()

cy.wait('@tallenna-toimenkuva')
.its('response.statusCode').should('equal', 200)
})
it('Omien toimenkuvien vuosisummat voi syöttää', () => {
cy.intercept('POST', '_/tallenna-toimenkuva').as('tallenna-toimenkuva');
cy.intercept('POST', '_/tallenna-budjettitavoite').as('tallenna-budjettitavoite');
cy.intercept('POST', '_/tallenna-johto-ja-hallintokorvaukset').as('tallenna-jhk')

cy.get('#toimenkuvat-taulukko')
.contains('Harjoittelija')
.parent()
.next().next()
.find('td')
.first()
.next().next()
.find('input')
.clear()
.type('1200')
.blur()
cy.get('#toimenkuvat-taulukko')
.contains('Harjoittelija')
.parent()
.next().next()
.next().next()
.find('td')
.first()
.next().next()
.find('input')
.clear()
.type('1200')
.blur()

cy.wait('@tallenna-toimenkuva')
.its('response.statusCode').should('equal', 200)
cy.wait('@tallenna-jhk')
.its('response.statusCode').should('equal', 200)
cy.wait('@tallenna-budjettitavoite')
.its('response.statusCode').should('equal', 200)
})
it('Omien toimenkuvien vuosisummia voi muokata', () => {
cy.intercept('POST', '_/tallenna-toimenkuva').as('tallenna-toimenkuva');
cy.intercept('POST', '_/tallenna-budjettitavoite').as('tallenna-budjettitavoite');
cy.intercept('POST', '_/tallenna-johto-ja-hallintokorvaukset').as('tallenna-jhk')

cy.get('#toimenkuvat-taulukko')
.contains('Harjoittelija')
.parent()
.next().next()
.find('td')
.first()
.next().next()
.find('input')
.clear()
.type('1400')
.blur()
cy.get('#toimenkuvat-taulukko')
.contains('Harjoittelija')
.parent()
.next().next()
.next().next()
.find('td')
.first()
.next().next()
.find('input')
.clear()
.type('1400')
.blur()

cy.wait('@tallenna-toimenkuva')
.its('response.statusCode').should('equal', 200)
cy.wait('@tallenna-jhk')
.its('response.statusCode').should('equal', 200)
cy.wait('@tallenna-budjettitavoite')
.its('response.statusCode').should('equal', 200)
})
})

})
2 changes: 1 addition & 1 deletion dev-resources/less/pages/lupaus_tyylit.less
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ input.kuukausipisteet {
font-size: 14px;
}

p.sisalto {
div.sisalto {
font-size: 16px;
}
}
Expand Down
18 changes: 6 additions & 12 deletions project.clj
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
[prismatic/schema "1.1.10"]
[org.clojure/core.async "0.3.443"]
;; Transit tietomuoto asiakkaan ja palvelimen väliseen kommunikointiin
[com.cognitect/transit-cljs "0.8.256"]
[com.cognitect/transit-clj "0.8.313"]
[com.cognitect/transit-cljs "0.8.280"]
[com.cognitect/transit-clj "0.8.319"]
;; Pätevä yksinkertainen työkalu esimerkiksi config-tiedostojen mergeämiseen
[meta-merge "1.0.0"]

Expand All @@ -45,13 +45,7 @@
;; -- HTTP palvelin, reititys ja kyselyiden cahetus
[cljs-http "0.1.48"]
[http-kit "2.5.3"]
;; Compojuren mukana tulee liian vanha commons-fileupload
;; Ja fileuploadin mukana liian vanha commons-io
[commons-io/commons-io "2.15.1"]
[commons-fileupload/commons-fileupload "1.5"]
[compojure "1.7.0"]
;; Ring tarvitsee
[javax.servlet/javax.servlet-api "3.1.0"]
[compojure "1.7.1"]
[hiccup "1.0.5"]

[org.clojure/core.cache "0.7.2"]
Expand Down Expand Up @@ -94,7 +88,7 @@


;; Ajax-kirjasto frontille
[cljs-ajax "0.8.0"]
[cljs-ajax "0.8.4"]

;; React-wrapper frontille
[reagent "0.9.1"]
Expand Down Expand Up @@ -122,7 +116,7 @@
[jarohen/chime "0.2.2"]

;; Pikkukuvien (thumbnail) muodostamiseen
[net.coobird/thumbnailator "0.4.8"]
[net.coobird/thumbnailator "0.4.20"]

;; JSON -validointikirjastot
[webjure/json-schema "0.7.4"]
Expand Down Expand Up @@ -195,7 +189,7 @@
[lein-ancient "0.6.15"]
[lein-codox "0.10.8" :exclusions [org.clojure/clojure]]
[lein-auto "0.1.3"]
[lein-doo "0.1.10" :exclusions [org.clojure/clojure]]]
[lein-doo "0.1.11" :exclusions [org.clojure/clojure]]]

;; Näitä cljsbuild tarvitsee testaamista varten doo:n kanssa.
:cljsbuild {:builds [{:id "test"
Expand Down
Binary file modified resources/roolit.xlsx
Binary file not shown.
67 changes: 65 additions & 2 deletions src/clj/harja/kyselyt/lupaus_kyselyt.sql
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ SELECT l.id AS "lupaus-id",
LEFT JOIN lupaus_vaihtoehto lv ON lv.id = vas."lupaus-vaihtoehto-id"
JOIN lupausryhma_urakka lu ON r.id = lu."lupausryhma_id"
WHERE lu."urakka_id" = :urakka
GROUP BY l.id, sit.id, r.id;
GROUP BY l.id, sit.id, r.id
ORDER BY l.jarjestys, r.jarjestys;

-- name: hae-lupaus-vaihtoehdot
SELECT
Expand All @@ -65,7 +66,8 @@ FROM
left JOIN lupaus_vaihtoehto_ryhma lvr on
lv."vaihtoehto-ryhma-otsikko-id" = lvr.id
WHERE
lv."lupaus-id" = :lupaus-id;
lv."lupaus-id" = :lupaus-id
ORDER BY lv.id;

-- name: hae-lupaus-vaihtoehto
SELECT id, "lupaus-id", vaihtoehto, pisteet
Expand Down Expand Up @@ -220,3 +222,64 @@ SELECT lp.id, lp.pisteet, lp.kuukausi, lp.vuosi, lp."urakka-id", lp.luoja, lp.lu

-- name: hae-indeksikorotus-summalle
SELECT korotus FROM sanktion_indeksikorotus(:pvm::DATE, :indeksi,:maara::NUMERIC, :urakka-id::INTEGER, :sanktiolaji::sanktiolaji);


-- name: hae-puuttuvat-urakka-linkitykset
SELECT u.id,
u.nimi
FROM urakka u
WHERE u.tyyppi = 'teiden-hoito'
AND EXTRACT(
YEAR
FROM u.alkupvm
) >= 2021
EXCEPT
SELECT DISTINCT
urakka_id,
u.nimi
FROM lupausryhma_urakka lu
JOIN urakka u ON lu.urakka_id = u.id
WHERE u.tyyppi = 'teiden-hoito';

-- name: hae-rivin-tunnistin-selitteet
SELECT DISTINCT
lr."rivin-tunnistin-selite",
lr."urakan-alkuvuosi"
FROM lupausryhma lr
ORDER BY lr."urakan-alkuvuosi";

-- name: hae-kategorian-urakat
SELECT
DISTINCT
lu.urakka_id,
u.nimi
FROM
lupausryhma lr
LEFT JOIN lupausryhma_urakka lu ON
lr.id = lu.lupausryhma_id
LEFT JOIN urakka u ON
lu.urakka_id = u.id
WHERE (lr."rivin-tunnistin-selite" = :rivin-tunnistin-selite OR :rivin-tunnistin-selite::VARCHAR IS NULL)
AND lr."urakan-alkuvuosi" = :urakan-alkuvuosi;

-- name: hae-urakan-lupaukset
-- row-fn: muunna-lupaus
SELECT
r.otsikko,
r.jarjestys AS "lupausryhma-jarjestys",
l.id AS "lupaus-id",
l.kuvaus,
l.pisteet,
l.sisalto,
l.lupaustyyppi,
l."kirjaus-kkt",
l."joustovara-kkta",
l."paatos-kk"
FROM
lupausryhma r
JOIN lupaus l ON
r.id = l."lupausryhma-id"
JOIN lupausryhma_urakka lu ON
r.id = lu."lupausryhma_id"
WHERE
lu."urakka_id" = :urakka-id
4 changes: 4 additions & 0 deletions src/clj/harja/kyselyt/urakat.sql
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,10 @@ FROM (SELECT u.id as id,
(u.tyyppi IN ('hoito', 'teiden-hoito') AND
(u.alkupvm IS NULL OR u.alkupvm + interval '12 hour' <= current_timestamp)
AND (u.loppupvm IS NULL OR u.loppupvm + interval '36 hour' >= current_timestamp))
WHEN (:urakkatyyppi = 'paikkaus') THEN -- T-LOIK käyttää urakkatyyppiä paikkaus. Sampossa ja Harjassa urakkatyyppi on paallystys, sopimustyyppi on mpu eli maanteiden paikkausurakka.
(u.tyyppi = 'paallystys' :: urakkatyyppi
AND (u.alkupvm IS NULL OR u.alkupvm <= current_date)
AND (u.loppupvm IS NULL OR u.loppupvm >= current_date))
ELSE (u.tyyppi = :urakkatyyppi :: urakkatyyppi
AND (u.alkupvm IS NULL OR u.alkupvm <= current_date)
AND (u.loppupvm IS NULL OR u.loppupvm >= current_date))
Expand Down
6 changes: 6 additions & 0 deletions src/clj/harja/palvelin/main.clj
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@
[harja.palvelin.palvelut.hallinta.urakoiden-lyhytnimet :as urakoidenlyhytnimet-hallinta]
[harja.palvelin.palvelut.hallinta.tehtavat :as tehtavat-hallinta]
[harja.palvelin.palvelut.hallinta.tarjoushinnat :as tarjoushinnat-hallinta]
[harja.palvelin.palvelut.hallinta.lupaukset-palvelu :as lupaukset-hallinta]
[harja.palvelin.palvelut.hallinta.rahavaraukset :as rahavaraukset-hallinta]
[harja.palvelin.palvelut.hallinta.urakkahenkilot :as urakkahenkilot-hallinta]
[harja.palvelin.palvelut.selainvirhe :as selainvirhe]
Expand Down Expand Up @@ -811,6 +812,11 @@
(component/using
(tarjoushinnat-hallinta/->TarjoushinnatHallinta)
[:http-palvelin :db])

:lupaukset-hallinta
(component/using
(lupaukset-hallinta/->LupauksetHallinta)
[:http-palvelin :db])

:rahavaraukset-hallinta
(component/using
Expand Down
50 changes: 50 additions & 0 deletions src/clj/harja/palvelin/palvelut/hallinta/lupaukset_palvelu.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
(ns harja.palvelin.palvelut.hallinta.lupaukset-palvelu
(:require [com.stuartsierra.component :as component]
[harja.kyselyt.lupaus-kyselyt :as lupaus-kyselyt]
[harja.domain.oikeudet :as oikeudet]
[harja.palvelin.komponentit.http-palvelin :refer [julkaise-palvelu poista-palvelut]]
[taoensso.timbre :as log]))

(defn- hae-lupausten-linkitykset [db kayttaja]
(oikeudet/vaadi-lukuoikeus oikeudet/hallinta-lupaukset kayttaja)
{:puuttuvat-urakat (lupaus-kyselyt/hae-puuttuvat-urakka-linkitykset db)})


(defn- hae-rivin-tunnistin-selitteet [db kayttaja]
(oikeudet/vaadi-lukuoikeus oikeudet/hallinta-lupaukset kayttaja)
{:rivin-tunnistin-selitteet (lupaus-kyselyt/hae-rivin-tunnistin-selitteet db)})

(defn- hae-kategorian-urakat [db kayttaja {:keys [kategoria]}]
(oikeudet/vaadi-lukuoikeus oikeudet/hallinta-lupaukset kayttaja)
(log/debug "hae-kategorian-urakat :: kategoria" kategoria)
{:kategorian-urakat (lupaus-kyselyt/hae-kategorian-urakat db {:rivin-tunnistin-selite (:rivin-tunnistin-selite kategoria)
:urakan-alkuvuosi (:urakan-alkuvuosi kategoria)})})

(defn- hae-urakan-lupaukset [db kayttaja {:keys [urakka-id]}]
(oikeudet/vaadi-lukuoikeus oikeudet/hallinta-lupaukset kayttaja)
(log/debug "hae-urakan-lupaukset :: urakka-id " urakka-id)
{:urakan-lupaukset (lupaus-kyselyt/hae-urakan-lupaukset db {:urakka-id urakka-id})})

(defrecord LupauksetHallinta []
component/Lifecycle
(start [{:keys [http-palvelin db] :as this}]
(julkaise-palvelu http-palvelin :hae-lupausten-linkitykset
(fn [kayttaja _tiedot]
(hae-lupausten-linkitykset db kayttaja)))
(julkaise-palvelu http-palvelin :hae-rivin-tunnistin-selitteet
(fn [kayttaja _tiedot]
(hae-rivin-tunnistin-selitteet db kayttaja)))
(julkaise-palvelu http-palvelin :hae-kategorian-urakat
(fn [kayttaja tiedot]
(hae-kategorian-urakat db kayttaja tiedot)))
(julkaise-palvelu http-palvelin :hae-urakan-lupaukset
(fn [kayttaja tiedot]
(hae-urakan-lupaukset db kayttaja tiedot)))
this)
(stop [{:keys [http-palvelin] :as this}]
(poista-palvelut http-palvelin
:hae-lupausten-linkitykset
:hae-rivin-tunnistin-selitteet
:hae-kategorian-urakat
:hae-urakan-lupaukset)
this))
Loading

0 comments on commit ae7f394

Please sign in to comment.