Skip to content
This repository has been archived by the owner on Feb 7, 2024. It is now read-only.

AE-1980: Add document flag to osapuoli-specific-data in SakkoPaatosKuulemiskirjeData #1059

Merged
merged 1 commit into from
Dec 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@
(def KaskypaatosTiedoksiantoHaastemiesData
{:osapuoli-specific-data [KaskypaatosTiedoksiantoHaastemiesOsapuoliSpecificData]})

(def SakkoPaatosKuulemiskirjeData {:fine common-schema/NonNegative})
(def SakkoPaatosKuulemiskirjeData {:fine common-schema/NonNegative
:osapuoli-specific-data [{:osapuoli OsapuoliSpecificDataOsapuoli
:document schema/Bool}]})

(def SakkopaatosVarsinainenPaatosOsapuoliSpecificData
(schema/conditional
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@
[toimenpide osapuolet]
(if ((some-fn toimenpide/kaskypaatos-varsinainen-paatos?
toimenpide/kaskypaatos-haastemies-tiedoksianto?
toimenpide/sakkopaatos-kuulemiskirje?
toimenpide/sakkopaatos-varsinainen-paatos?
toimenpide/sakkopaatos-haastemies-tiedoksianto?) toimenpide)
(let [osapuolet-with-document (->> toimenpide
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
(:require
[clojure.java.jdbc :as jdbc]
[clojure.test :as t]
[jsonista.core :as j]
[ring.mock.request :as mock]
[solita.common.time :as time]
[solita.etp.document-assertion :refer [html->pdf-with-assertion]]
Expand Down Expand Up @@ -36,22 +37,172 @@
:sukunimi "Talonomistaja"
:postinumero "00100"
:henkilotunnus "000000-0000"
:rooli-description ""
:rooli-description "Omistaja"
:etunimi "Testi"
:vastaanottajan-tarkenne nil
:maa "FI"})
new-toimenpide {:type-id 14
:deadline-date (str (LocalDate/of 2023 11 4))
:template-id 7
:description "Tehdään sakkopäätöksen kuulemiskirje"
:type-specific-data {:fine 9000}}
:type-specific-data {:fine 9000
:osapuoli-specific-data [{:osapuoli {:id osapuoli-id
:type "henkilo"}
:document true}]}}
response (ts/handler (-> (mock/request :post (format "/api/private/valvonta/kaytto/%s/toimenpiteet/henkilot/%s/preview" valvonta-id osapuoli-id))
(mock/json-body new-toimenpide)
(test-kayttajat/with-virtu-user)
(mock/header "Accept" "application/json")))]
(t/is (= (:status response) 200))))

(t/testing "Sakkopäätös / kuulemiskirje toimenpide is created successfully for yksityishenkilö and document is generated with correct information"
;; Add the valvonta and previous toimenpides
(let [valvonta-id (valvonta-service/add-valvonta! ts/*db* {:katuosoite "Testitie 5"
:postinumero "90100"
:ilmoituspaikka-id 0})
kehotus-timestamp (-> (LocalDate/of 2023 6 12)
(.atStartOfDay (ZoneId/systemDefault))
.toInstant)
varoitus-timestamp (-> (LocalDate/of 2023 7 13)
(.atStartOfDay (ZoneId/systemDefault))
.toInstant)
kuulemiskirje-timestamp (-> (LocalDate/of 2023 8 13)
(.atStartOfDay (ZoneId/systemDefault))
.toInstant)
varsinainen-paatos-timestamp (-> (LocalDate/of 2023 9 13)
(.atStartOfDay (ZoneId/systemDefault))
.toInstant)
html->pdf-called? (atom false)
;; Add osapuoli to the valvonta
osapuoli-id (valvonta-service/add-henkilo!
ts/*db*
valvonta-id
{:toimitustapa-description nil
:toimitustapa-id 0
:email nil
:rooli-id 0
:jakeluosoite "Testikatu 12"
:postitoimipaikka "Helsinki"
:puhelin nil
:sukunimi "Talonomistaja"
:postinumero "00100"
:henkilotunnus "000000-0000"
:rooli-description "Omistaja"
:etunimi "Testi"
:vastaanottajan-tarkenne nil
:maa "FI"})]
;; Add kehotus-toimenpide to the valvonta
(jdbc/insert! ts/*db* :vk_toimenpide {:valvonta_id valvonta-id
:type_id 2
:create_time kehotus-timestamp
:publish_time kehotus-timestamp
:deadline_date (LocalDate/of 2023 7 12)})
;; Add varoitus-toimenpide to the valvonta
(jdbc/insert! ts/*db* :vk_toimenpide {:valvonta_id valvonta-id
:type_id 3
:create_time varoitus-timestamp
:publish_time varoitus-timestamp
:deadline_date (LocalDate/of 2023 8 13)})

;; Add käskypäätös / kuulemiskirje toimenpide to the valvonta
(jdbc/insert! ts/*db* :vk_toimenpide {:valvonta_id valvonta-id
:type_id 7
:create_time kuulemiskirje-timestamp
:publish_time kuulemiskirje-timestamp
:deadline_date (LocalDate/of 2023 8 27)
:type_specific_data {:fine 9000}
:diaarinumero "ARA-05.03.01-2023-159"})
;; Add käskypäätös / varsinainen päätös toimenpide to the valvonta
(jdbc/insert! ts/*db* :vk_toimenpide {:valvonta_id valvonta-id
:type_id 8
:create_time varsinainen-paatos-timestamp
:publish_time varsinainen-paatos-timestamp
:deadline_date (LocalDate/of 2023 10 4)
:template_id 6
:description "Tehdään varsinainen päätös, omistaja vastasi kuulemiskirjeeseen"
:type_specific_data {:fine 857
:osapuoli-specific-data [{:osapuoli {:id osapuoli-id
:type "henkilo"}
:hallinto-oikeus-id 1
:document true
:recipient-answered true
:answer-commentary-fi "En tiennyt, että todistus tarvitaan :("
:answer-commentary-sv "Jag visste inte att ett intyg behövs :("
:statement-fi "Tämän kerran annetaan anteeksi, kun hän ei tiennyt."
:statement-sv "Han vet inte. Vi förlotar."}]
:department-head-title-fi "Apulaisjohtaja"
:department-head-title-sv "Apulaisjohtaja på svenska"
:department-head-name "Yli Päällikkö"}})

;; Mock the current time to ensure that the document has a fixed date
(with-bindings {#'time/clock (Clock/fixed (-> (LocalDate/of 2023 10 5)
(.atStartOfDay time/timezone)
.toInstant)
time/timezone)
#'pdf/html->pdf (partial html->pdf-with-assertion
"documents/sakkopaatos-kuulemiskirje-yksityishenkilo.html"
html->pdf-called?)}
(let [new-toimenpide {:type-id 14
:deadline-date (str (LocalDate/of 2023 11 4))
:template-id 7
:description "Tehdään sakkopäätöksen kuulemiskirje"
:type-specific-data {:fine 9000
:osapuoli-specific-data [{:osapuoli {:id osapuoli-id
:type "henkilo"}
:document true}]}}
response (ts/handler (-> (mock/request :post (format "/api/private/valvonta/kaytto/%s/toimenpiteet" valvonta-id))
(mock/json-body new-toimenpide)
(test-kayttajat/with-virtu-user)
(mock/header "Accept" "application/json")))]
(t/is (true? @html->pdf-called?))
(t/is (= (:status response) 201))))

(t/testing "Toimenpide is returned through the api"
(let [response (ts/handler (-> (mock/request :get (format "/api/private/valvonta/kaytto/%s/toimenpiteet" valvonta-id))
(test-kayttajat/with-virtu-user)
(mock/header "Accept" "application/json")))
response-body (j/read-value (:body response) j/keyword-keys-object-mapper)]
(t/is (= (:status response) 200))
(t/is (= (count response-body) 5))

(t/is (= (->> response-body
(map #(dissoc % :publish-time :create-time))
last)
{:author {:etunimi "Asian"
:id 1
:rooli-id 2
:sukunimi "Tuntija"}
:deadline-date "2023-11-04"
:description "Tehdään sakkopäätöksen kuulemiskirje"
:diaarinumero "ARA-05.03.01-2023-159"
:filename "sakkopaatos-kuulemiskirje.pdf"
:henkilot [{:email nil
:etunimi "Testi"
:henkilotunnus "000000-0000"
:id 2
:jakeluosoite "Testikatu 12"
:maa "FI"
:postinumero "00100"
:postitoimipaikka "Helsinki"
:puhelin nil
:rooli-description "Omistaja"
:rooli-id 0
:sukunimi "Talonomistaja"
:toimitustapa-description nil
:toimitustapa-id 0
:valvonta-id 2
:vastaanottajan-tarkenne nil}]
:id 5
:template-id 7
:type-id 14
:type-specific-data {:fine 9000
:osapuoli-specific-data [{:document true
:osapuoli {:id 2
:type "henkilo"}}]}
:valvonta-id 2
:yritykset []}))))))

(t/testing "Sakkopäätös / kuulemiskirje toimenpide is created successfully but no document is generated as it's marked false for the osapuoli"
;; Add the valvonta and previous toimenpides
(let [valvonta-id (valvonta-service/add-valvonta! ts/*db* {:katuosoite "Testitie 5"
:postinumero "90100"
Expand Down Expand Up @@ -135,17 +286,19 @@
(.atStartOfDay time/timezone)
.toInstant)
time/timezone)
#'pdf/html->pdf (partial html->pdf-with-assertion
"documents/sakkopaatos-kuulemiskirje-yksityishenkilo.html"
html->pdf-called?)}
#'pdf/html->pdf (fn [_ _]
(reset! html->pdf-called? true))}
(let [new-toimenpide {:type-id 14
:deadline-date (str (LocalDate/of 2023 11 4))
:template-id 7
:description "Tehdään sakkopäätöksen kuulemiskirje"
:type-specific-data {:fine 9000}}
:type-specific-data {:fine 9000
:osapuoli-specific-data [{:osapuoli {:id osapuoli-id
:type "henkilo"}
:document false}]}}
response (ts/handler (-> (mock/request :post (format "/api/private/valvonta/kaytto/%s/toimenpiteet" valvonta-id))
(mock/json-body new-toimenpide)
(test-kayttajat/with-virtu-user)
(mock/header "Accept" "application/json")))]
(t/is (true? @html->pdf-called?))
(t/is (false? @html->pdf-called?))
(t/is (= (:status response) 201)))))))
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,10 @@
:template_id 7
:description "Tehdään sakkopäätöksen kuulemiskirje"
:diaarinumero "ARA-05.03.01-2023-159"
:type_specific_data {:fine 9000}})
:type_specific_data {:fine 9000
:osapuoli-specific-data [{:osapuoli {:id osapuoli-id
:type "henkilo"}
:document true}]}})

;; Mock the current time to ensure that the document has a fixed date
(with-bindings {#'time/clock (Clock/fixed (-> (LocalDate/of 2023 11 25)
Expand Down Expand Up @@ -323,7 +326,10 @@
:template_id 7
:description "Tehdään sakkopäätöksen kuulemiskirje"
:diaarinumero "ARA-05.03.01-2023-159"
:type_specific_data {:fine 932}})
:type_specific_data {:fine 932
:osapuoli-specific-data [{:osapuoli {:id osapuoli-id
:type "yritys"}
:document true}]}})

;; Mock the current time to ensure that the document has a fixed date
(with-bindings {#'time/clock (Clock/fixed (-> (LocalDate/of 2023 11 28)
Expand Down