feat(franvaro-report-form): new list structure for displaying reasons (TV-820)

Squashed commit of the following:

commit 69ddfae6920c2d88b250b2d20040ef2b9442e077
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Nov 8 17:11:39 2021 +0100

    TV-820 renamed enum

commit 70387ddbfe54bc1cdd1186c6210049465dc2c0f8
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Fri Nov 5 09:27:34 2021 +0100

    TV-820 validation correction

commit bd6637bb7f09721ad9620fc08df8f4015bbf4c57
Merge: 024a015c b9a14ef3
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Fri Nov 5 08:36:54 2021 +0100

    Merge branch 'develop' into feature/TV-820

commit 024a015c47def0d57654d731b1243be7eaca2931
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Thu Nov 4 13:11:35 2021 +0100

    TV-820 set empty string as initial value for knownReasonComment

commit 8b3c13c94b54353dd62a6f10f26f42d0c9b0aae3
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Thu Nov 4 13:03:07 2021 +0100

    TV-820 put back 'other reason' with comment field

commit b153854fb7291ff2d173503aed82ae49e631c306
Merge: b9136b8d 28d128c1
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Thu Nov 4 11:04:14 2021 +0100

    Merge branch 'develop' into feature/TV-820

commit b9136b8d4293b7e7e3703601f783e41e43865c11
Merge: 6a611c0c ca0b8ec7
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Nov 3 16:18:33 2021 +0100

    Merge branch 'develop' into feature/TV-820

commit 6a611c0c84f75cf14789f72812d21196dd44609e
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Nov 2 13:28:14 2021 +0100

    TV-820 changed if to switch statement, some refactoring

commit a4190a0bbde25851cec38aafe4d88fae44b59230
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Nov 2 07:49:56 2021 +0100

    TV-820 refactoring

commit 5ec6680322208d8a5b7fe6a76db4cb2a3f524d62
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Nov 1 17:28:48 2021 +0100

    TV-820 sorting reasons, refactoring

commit d44a8548fd60b55d59630a4f5e8dde0c081315b5
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Nov 1 15:57:13 2021 +0100

    TV-820 new list structure for displaying reasons
This commit is contained in:
Nicolas Fuentes Maturana
2021-11-10 10:07:52 +01:00
parent df4dc427a4
commit 94cdff3d86
10 changed files with 159 additions and 98 deletions

View File

@@ -0,0 +1,7 @@
export enum OrsaksKoderAvvikelse {
TACKAT_NEJ_TILL_INSATS_ELLER_AKTIVITET = 19,
TACKAT_NEJ_TILL_ERBJUDET_ARBETE = 20,
KAN_INTE_TILLGODOGÖRA_SIG_PROGRAMMET = 21,
MISSKÖTT_SIG_ELLER_STÖRT_VERKSAMHETEN = 22,
SER_TILL_ATT_ERBJUDET_ARBETE_INTE_KOMMER_TILL_STÅND = 28
}

View File

@@ -0,0 +1,8 @@
export enum OrsaksKoderFranvaro {
SJUK = 15,
ARBETE = 16,
OKÄND_ORSAK = 17,
ANNAN_KÄND_ORSAK = 18,
VAB = 26,
UTBILDNING = 27
}

View File

@@ -1,4 +1,4 @@
export enum KandaOrsakerEnum {
export enum OrsaksKoderKanda {
LakarbesokTandlakarbesok = 1,
Familjeangelagenhet = 2,
MoteMedMyndighet = 3,

View File

@@ -1,8 +1,10 @@
import { OrsaksKoderAvvikelse } from '@msfa-enums/orsaks-koder-avvikelse.enum';
import { AvvikelseReasonResponse } from './api/avvikelse-reason.response.model';
export interface AvvikelseReason {
name: string;
id: number;
position?: number;
}
export function mapResponseToAvvikelseReason(data: AvvikelseReasonResponse): AvvikelseReason {
@@ -13,3 +15,30 @@ export function mapResponseToAvvikelseReason(data: AvvikelseReasonResponse): Avv
id,
};
}
export function sortAvvikelseReasons(reasons: AvvikelseReason[]): AvvikelseReason[] {
for (const reason of reasons) {
switch (reason.id) {
case OrsaksKoderAvvikelse.TACKAT_NEJ_TILL_INSATS_ELLER_AKTIVITET:
reason.position = 3
break;
case OrsaksKoderAvvikelse.TACKAT_NEJ_TILL_ERBJUDET_ARBETE:
reason.position = 2;
break;
case OrsaksKoderAvvikelse.KAN_INTE_TILLGODOGÖRA_SIG_PROGRAMMET:
reason.position = 1;
break;
case OrsaksKoderAvvikelse.MISSKÖTT_SIG_ELLER_STÖRT_VERKSAMHETEN:
reason.position = 5;
break;
case OrsaksKoderAvvikelse.SER_TILL_ATT_ERBJUDET_ARBETE_INTE_KOMMER_TILL_STÅND:
reason.position = 4;
break;
default:
break;
}
}
return reasons.sort((reasonA, reasonB) => reasonA.position - reasonB.position);
}

View File

@@ -1,8 +1,12 @@
import { ANNAN_KAND_ORSAK_ID } from '@msfa-constants/franvaro-reasons';
import { OrsaksKoderFranvaro } from '@msfa-enums/orsaks-koder-franvaro.enum';
import { OrsaksKoderKanda } from '@msfa-enums/orsaks-koder-kanda.enum';
import { FranvaroReasonResponse } from './api/franvaro-reason.response.model';
export interface FranvaroReason {
name: string;
value: number;
position?: number;
}
export function mapResponseToFranvaroReason(data: FranvaroReasonResponse): FranvaroReason {
@@ -13,3 +17,61 @@ export function mapResponseToFranvaroReason(data: FranvaroReasonResponse): Franv
value: id,
};
}
export function sortFranvaroReasons(reasons: FranvaroReason[]): FranvaroReason[] {
const filteredReasons = reasons.filter(reason =>
reason.value !== OrsaksKoderFranvaro.ANNAN_KÄND_ORSAK);
for (const reason of filteredReasons) {
switch (reason.value) {
case OrsaksKoderFranvaro.SJUK:
reason.position = 1;
break;
case OrsaksKoderFranvaro.ARBETE:
reason.position = 3;
break;
case OrsaksKoderFranvaro.OKÄND_ORSAK:
reason.position = 10;
break;
case OrsaksKoderFranvaro.VAB:
reason.position = 2;
break;
case OrsaksKoderFranvaro.UTBILDNING:
reason.position = 4;
break;
case OrsaksKoderKanda.LakarbesokTandlakarbesok:
reason.position = 6;
break;
case OrsaksKoderKanda.Familjeangelagenhet:
reason.position = 8;
break;
case OrsaksKoderKanda.MoteMedMyndighet:
reason.position = 7;
break;
case OrsaksKoderKanda.Anstallningsintervju:
reason.position = 5;
break;
case OrsaksKoderKanda.AnnanOrsak:
reason.position = 9;
break;
default:
break;
}
}
return filteredReasons.sort((reasonA, reasonB) => reasonA.position - reasonB.position);
}
export function setKnownReason(knownReason: string): string {
let reason: string;
for (const orsakskod in OrsaksKoderFranvaro) {
if (orsakskod === knownReason) {
return reason = knownReason;
} else {
reason = ANNAN_KAND_ORSAK_ID;
}
}
return reason;
}