Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ok 540 paatosmaksullisen hakemuksen kasittely #1605

Open
wants to merge 8 commits into
base: OK-485-form-payment-properties
Choose a base branch
from
Open
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
12 changes: 6 additions & 6 deletions resources/ataru-oph.properties
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,13 @@ url.valintalaskenta-ui.valintojen-toteuttaminen.hakemus = ${valintalaskenta-ui.b

maksut-service = ${url-virkailija}/maksut

maksut-service.hakija-get-by-secret = ${url-hakija}/maksut/?secret=$1&locale=$2
maksut-service.hakija-create = ${url-hakija}/maksut/api/lasku-tutu
maksut-service.hakija-get-by-secret = ${url-hakija}/maksut-ui?secret=$1&locale=$2
maksut-service.hakija-create = ${url-hakija}/maksut/api/lasku

maksut-service.virkailija-create = ${url-virkailija}/maksut/api/lasku-tutu
maksut-service.virkailija-list = ${url-virkailija}/maksut/api/lasku-tutu/$1
maksut-service.virkailija-receipt = ${url-virkailija}/maksut/api/kuitti/$1
maksut-service.background-lasku-status = ${url-virkailija}/maksut/api/lasku-check-tutu
maksut-service.virkailija-create = ${maksut-service}/api/lasku
maksut-service.virkailija-list = ${maksut-service}/api/lasku/$1
maksut-service.virkailija-receipt = ${maksut-service}/api/kuitti/$1
maksut-service.background-lasku-status = ${maksut-service}/api/lasku-check

valpas.baseUrl = ${url-virkailija}/valpas
front.valpas.hakutilanne = ${valpas.baseUrl}/virkailija/hakutilanne/$1
26 changes: 16 additions & 10 deletions src/clj/ataru/hakija/hakija_application_service.clj
Original file line number Diff line number Diff line change
Expand Up @@ -470,25 +470,31 @@
job-runner
application-id))

(defn- tutu-form? [form]
(or (= "payment-type-tutu" (get-in form [:properties :payment :type]))
(let [tutu-keys (string/split (-> config :tutkintojen-tunnustaminen :maksut :form-keys) #",")]
(boolean
(and (some? tutu-keys) (some #(= (:key form) %) tutu-keys))))))

(defn- handle-tutu-form [form-by-id-cache id application]
(let [app-key (-> (application-store/get-application id) :key)
form (:form application)
tutu-keys (string/split (-> config :tutkintojen-tunnustaminen :maksut :form-keys) #",")
form-key (when (some? form)
(-> (cache/get-from form-by-id-cache (str form)) :key))
tutu-form? (boolean
(and (some? tutu-keys) (some #(= form-key %) tutu-keys)))

form-id (:form application)
form (when (some? form-id)
(-> (cache/get-from form-by-id-cache (str form-id))))
get-field (fn [key] (->> (:answers application)
(filter #(= key (:key %)))
(map :value)
first))
req-fn (fn [] {:application-key app-key
amount (or (get-in form [:properties :payment :processing-fee])
(-> config :tutkintojen-tunnustaminen :maksut :decision-amount))
req-fn (fn [] {:reference app-key
:origin "tutu"
:due-days 14
:first-name (get-field "first-name")
:last-name (get-field "last-name")
:email (get-field "email")
:amount (-> config :tutkintojen-tunnustaminen :maksut :decision-amount)})]
{:tutu-form? tutu-form?
:amount amount})]
{:tutu-form? (tutu-form? form)
:req-fn req-fn
:lang (:lang application)}))

Expand Down
8 changes: 4 additions & 4 deletions src/clj/ataru/virkailija/virkailija_routes.clj
Original file line number Diff line number Diff line change
Expand Up @@ -1045,10 +1045,10 @@
{:error (str "Hakemukseen " application-key " liittyviä laskuja ei löydy")}))))

(api/POST "/maksupyynto" {session :session}
:body [input maksut-schema/TutuLaskuCreate]
:body [input maksut-schema/LaskuCreate]
:summary "Välittää maksunluonti-pyynnön Maksut -palvelulle"

(let [{:keys [application-key locale message]} input
(let [{:keys [reference locale message]} input
lasku-input (-> input
(dissoc :message)
(dissoc :locale))
Expand All @@ -1060,15 +1060,15 @@
(if-let [result (application-service/payment-triggered-processing-state-change
application-service
session
application-key
reference
message
payment-url
"decision-fee-outstanding")]
(do
(log/warn "Review result" result)
(response/ok result))
(response/unauthorized {:error (str "Hakemuksen "
(:application-key application-key)
(:application-key reference)
" käsittely ei ole sallittu")})))))

(api/context "/tulos-service" []
Expand Down
32 changes: 30 additions & 2 deletions src/cljc/ataru/application/review_states.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,38 @@
["processing-fee-paid" (:processing-fee-paid state-translations)]
["decision-fee-outstanding" (:decision-fee-outstanding state-translations)]
["decision-fee-overdue" (:decision-fee-overdue state-translations)]
["decision-fee-invoiced" (:decision-fee-invoiced state-translations)]
["decision-fee-paid" (:decision-fee-paid state-translations)]])

(def tutu-processing-state
(def normal-processing-state-removals
#{"processing-fee-overdue"
"processing-fee-paid"
"decision-fee-outstanding"
"decision-fee-overdue"
"decision-fee-invoiced"
"decision-fee-paid"})

(def application-hakukohde-processing-states-normal
(reduce (fn [acc [k v]]
(if (tutu-processing-state k)
(if (normal-processing-state-removals k)
acc
(conj acc [k v])))
[]
application-hakukohde-processing-states))

(def astu-processing-state-removals
#{"processing-fee-overdue"
"processing-fee-paid"
"invited-to-interview"
"invited-to-exam"
"evaluating"
"valintaesitys"
"decision-fee-invoiced"
"decision-fee-paid"})

(def application-hakukohde-processing-states-astu
(reduce (fn [acc [k v]]
(if (astu-processing-state-removals k)
acc
(conj acc [k v])))
[]
Expand Down Expand Up @@ -141,6 +161,14 @@
[:payment-obligation (:payment-obligation state-translations) application-payment-obligation-states]
[:selection-state (:selection-state state-translations) application-hakukohde-selection-states]])

(def hakukohde-review-types-astu
[[:processing-state (:processing-state state-translations) application-hakukohde-processing-states-astu]
[:language-requirement (:language-requirement state-translations) application-hakukohde-review-states]
[:degree-requirement (:degree-requirement state-translations) application-hakukohde-review-states]
[:eligibility-state (:eligibility-state state-translations) application-hakukohde-eligibility-states]
[:payment-obligation (:payment-obligation state-translations) application-payment-obligation-states]
[:selection-state (:selection-state state-translations) application-hakukohde-selection-states]])

(def hakukohde-review-types-map
(util/group-by-first first hakukohde-review-types))

Expand Down
22 changes: 15 additions & 7 deletions src/cljc/ataru/schema/maksut_schema.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,16 @@
"sv"
"en"))

(s/defschema Origin
(s/enum
"tutu"
"astu"))

(s/defschema LaskuStatus
{:order_id s/Str
:reference s/Str
:status PaymentStatus})
:status PaymentStatus
:origin Origin})

(s/defschema Lasku
{:order_id s/Str
Expand All @@ -33,16 +39,18 @@
(s/defschema Laskut
[Lasku])

(s/defschema TutuLaskuCreate
{:application-key s/Str
:first-name s/Str
(s/defschema LaskuCreate
{:first-name s/Str
:last-name s/Str
:email s/Str
:amount s/Str
(s/optional-key :due-date) (s/maybe s/Str) ;If not defined, then due-days used
:due-days (s/constrained s/Int #(> % 0) 'positive-due-days)
:origin Origin
:reference s/Str
:index (s/constrained s/Int #(<= 1 % 2) 'valid-tutu-maksu-index)
(s/optional-key :locale) (s/maybe Locale)
(s/optional-key :due-date) (s/maybe s/Str)
(s/optional-key :message) (s/maybe s/Str)
:index (s/constrained s/Int #(<= 1 % 2) 'valid-tutu-maksu-index)})
(s/optional-key :message) (s/maybe s/Str)})

(s/defschema TutuProcessingEmailRequest
{:application-key s/Str
Expand Down
Loading
Loading