Merge pull request #258 in TEA/mina-sidor-fa-web from bugfix/TV-889-avrop-model to develop
Squashed commit of the following:
commit 8e98b79d711a708eec7908417506d8f707d023b4
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date: Fri Nov 12 10:16:54 2021 +0100
Added personnummer to deltagare avrop
commit 6ac1849fa61b65346084c2304339a628844a7617
Merge: 095585ff 0cf61c0b
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date: Fri Nov 12 09:52:10 2021 +0100
Merged develop and fixed conflicts
commit 095585ffa78b25f5d5ddd6987dcd3702c78bb494
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date: Thu Nov 11 09:07:46 2021 +0100
Updated avrop model for nya deltagare
This commit is contained in:
@@ -10,48 +10,53 @@
|
||||
(change)="emitToggle($event.target.checked)"
|
||||
></digi-form-checkbox>
|
||||
</div>
|
||||
<dl class="avrop-row__name">
|
||||
<dt class="avrop-table__label">Namn:</dt>
|
||||
<dd *ngIf="avrop.fullName; else emptyText">{{avrop.fullName}}</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__tjanst">
|
||||
<dt class="avrop-table__label">Tjänst:</dt>
|
||||
<dd *ngIf="avrop.tjanst; else emptyText">{{avrop.tjanst}}</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__start">
|
||||
<dt class="avrop-table__label">Startdatum:</dt>
|
||||
<dd>
|
||||
<digi-typography-time
|
||||
*ngIf="avrop.startDate; else emptyText"
|
||||
[afDateTime]="avrop.startDate"
|
||||
></digi-typography-time>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__end">
|
||||
<dt class="avrop-table__label">Slutdatum:</dt>
|
||||
<dd>
|
||||
<digi-typography-time *ngIf="avrop.endDate; else emptyText" [afDateTime]="avrop.endDate"></digi-typography-time>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__translator">
|
||||
<dt class="avrop-table__label">Språkstöd/Tolk:</dt>
|
||||
<dd>{{avrop.sprakstod || '- '}}/{{avrop.tolkbehov || ' -'}}</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__address">
|
||||
<dt class="avrop-table__label">Utförande adress:</dt>
|
||||
<dd *ngIf="avrop.utforandeAdress; else emptyText">{{avrop.utforandeAdress + ', ' + avrop.kommun}}</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__level">
|
||||
<dt class="avrop-table__label">Spår/nivå:</dt>
|
||||
<dd *ngIf="avrop.trackCode; else emptyText">{{avrop.trackName}}</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt class="avrop-table__label">Genomförandereferens:</dt>
|
||||
<dd *ngIf="avrop.genomforandeReferens; else emptyText">{{avrop.genomforandeReferens}}</dd>
|
||||
</dl>
|
||||
<dl class="avrop-row__handledare" *ngIf="isLocked">
|
||||
<dt class="avrop-table__label">Vald handledare:</dt>
|
||||
<dd *ngIf="handledare?.fullName; else emptyText">{{handledare?.fullName}}</dd>
|
||||
<dl class="avrop-row__description-list">
|
||||
<div class="avrop-row__name">
|
||||
<dt>Namn:</dt>
|
||||
<dd><ng-container *ngIf="avrop.fullName; else emptyText">{{avrop.fullName}}</ng-container></dd>
|
||||
</div>
|
||||
<div class="avrop-row__tjanst">
|
||||
<dt>Tjänst:</dt>
|
||||
<dd><ng-container *ngIf="avrop.tjanst; else emptyText">{{avrop.tjanst}}</ng-container></dd>
|
||||
</div>
|
||||
<div class="avrop-row__start">
|
||||
<dt>Startdatum:</dt>
|
||||
<dd>
|
||||
<digi-typography-time
|
||||
*ngIf="avrop.startDate; else emptyText"
|
||||
[afDateTime]="avrop.startDate"
|
||||
></digi-typography-time>
|
||||
</dd>
|
||||
</div>
|
||||
<div class="avrop-row__end">
|
||||
<dt>Slutdatum:</dt>
|
||||
<dd>
|
||||
<digi-typography-time
|
||||
*ngIf="avrop.endDate; else emptyText"
|
||||
[afDateTime]="avrop.endDate"
|
||||
></digi-typography-time>
|
||||
</dd>
|
||||
</div>
|
||||
<div class="avrop-row__translator">
|
||||
<dt>Språkstöd/Tolk:</dt>
|
||||
<dd>{{avrop.sprakstod || '- '}}/{{avrop.tolkbehov || ' -'}}</dd>
|
||||
</div>
|
||||
<div class="avrop-row__address">
|
||||
<dt>Utförande adress:</dt>
|
||||
<dd *ngIf="avrop.utforandeAdress; else emptyText">{{avrop.utforandeAdress + ', ' + avrop.kommun}}</dd>
|
||||
</div>
|
||||
<div class="avrop-row__level">
|
||||
<dt>Spår/nivå:</dt>
|
||||
<dd *ngIf="avrop.trackName; else emptyText">{{avrop.trackName}}</dd>
|
||||
</div>
|
||||
<div class="avrop-row__genomforandereferens">
|
||||
<dt>Genomförandereferens:</dt>
|
||||
<dd *ngIf="avrop.genomforandeReferens; else emptyText">{{avrop.genomforandeReferens}}</dd>
|
||||
</div>
|
||||
<div class="avrop-row__handledare" *ngIf="isLocked">
|
||||
<dt>Vald handledare:</dt>
|
||||
<dd *ngIf="handledare?.fullName; else emptyText">{{handledare?.fullName}}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
<div *ngIf="isLocked" class="avrop-row__delete">
|
||||
<digi-button
|
||||
|
||||
@@ -9,20 +9,22 @@
|
||||
gap: var(--digi--layout--gutter) $digi--layout--gutter--l;
|
||||
grid-template-areas:
|
||||
'select name start translator level'
|
||||
'select tjanst end address handledare';
|
||||
'select genomforandereferens tjanst end address';
|
||||
|
||||
&--locked {
|
||||
grid-template-columns: repeat(4, 1fr) 7.5rem;
|
||||
grid-template-areas:
|
||||
'name start translator level delete'
|
||||
'tjanst end address handledare delete';
|
||||
'genomforandereferens tjanst end address handledare';
|
||||
}
|
||||
|
||||
&__description-list {
|
||||
display: contents;
|
||||
}
|
||||
|
||||
&__select {
|
||||
grid-area: select;
|
||||
margin-right: var(--digi--layout--gutter);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@@ -50,6 +52,9 @@
|
||||
&__handledare {
|
||||
grid-area: handledare;
|
||||
}
|
||||
&__genomforandereferens {
|
||||
grid-area: genomforandereferens;
|
||||
}
|
||||
&__delete {
|
||||
grid-area: delete;
|
||||
display: flex;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
|
||||
@Component({
|
||||
selector: 'msfa-report-description-list',
|
||||
@@ -8,5 +8,5 @@ import { Avrop } from '@msfa-models/avrop.model';
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class ReportDescriptionListComponent {
|
||||
@Input() avrop: Avrop;
|
||||
@Input() avrop: DeltagareAvrop;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
|
||||
@Component({
|
||||
selector: 'msfa-report-layout',
|
||||
@@ -13,6 +13,6 @@ export class ReportLayoutComponent {
|
||||
@Input() description: string;
|
||||
@Input() startDate: string;
|
||||
@Input() endDate: string;
|
||||
@Input() avrop: Avrop;
|
||||
@Input() avrop: DeltagareAvrop;
|
||||
@Input() showAvropDetails = true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { ContactInformation } from '@msfa-models/contact-information.model';
|
||||
import { Handledare } from '@msfa-models/handledare.model';
|
||||
import { Role } from '@msfa-models/role.model';
|
||||
@@ -18,7 +18,7 @@ export class DeltagareTabPersonalInformationComponent {
|
||||
@Input() userRoles: Role[];
|
||||
@Input() handledarePickerVisible: boolean;
|
||||
|
||||
avropInformation$: Observable<Avrop> = this.deltagareCardService.avropInformation$;
|
||||
avropInformation$: Observable<DeltagareAvrop> = this.deltagareCardService.avropInformation$;
|
||||
contactInformation$: Observable<ContactInformation> = this.deltagareCardService.contactInformation$;
|
||||
availableHandledare$: Observable<Handledare[]> = this.avropInformation$.pipe(
|
||||
distinctUntilChanged((prevAvrop, currAvrop) => prevAvrop.id === currAvrop.id),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { Disability } from '@msfa-models/disability.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { combineLatest, Observable } from 'rxjs';
|
||||
@@ -17,7 +17,7 @@ export class DeltagareTabSensitiveInformationComponent {
|
||||
genomforandereferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map(({ genomforandeReferens }) => +genomforandeReferens)
|
||||
);
|
||||
avropInformation$: Observable<Avrop> = this.deltagareCardService.avropInformation$;
|
||||
avropInformation$: Observable<DeltagareAvrop> = this.deltagareCardService.avropInformation$;
|
||||
workLanguages$: Observable<string[]> = this.genomforandereferens$.pipe(
|
||||
switchMap(genomforandeReferens =>
|
||||
genomforandeReferens ? this.deltagareApiService.fetchWorkLanguages$(genomforandeReferens) : null
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { ContactInformation } from '@msfa-models/contact-information.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { HandledareService } from '@msfa-services/handledare.service';
|
||||
@@ -30,7 +30,7 @@ export class DeltagareCardService {
|
||||
shareReplay(1)
|
||||
);
|
||||
|
||||
avropInformation$: Observable<Avrop> = combineLatest([
|
||||
avropInformation$: Observable<DeltagareAvrop> = combineLatest([
|
||||
this.currentGenomforandeReferens$,
|
||||
this.avropNeedsUpdate$,
|
||||
]).pipe(
|
||||
|
||||
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/
|
||||
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AvvikelseReportRequest, AvvikelseRequest } from '@msfa-models/api/avvikelse-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { AvvikelseQuestion } from '@msfa-models/avvikelse-question.model';
|
||||
import { AvvikelseReason } from '@msfa-models/avvikelse-reason.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
@@ -46,7 +46,7 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
genomforandeReferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map((params: Params) => +params.genomforandeReferens)
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.genomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.genomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens => this.avvikelseReportFormService.fetchAvropInformation$(genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
@@ -143,11 +143,11 @@ export class AvvikelseReportFormComponent implements OnInit, OnDestroy {
|
||||
return lastPossibleReportDay > new Date();
|
||||
}
|
||||
|
||||
isAllowedToReport(avrop: Avrop): boolean {
|
||||
isAllowedToReport(avrop: DeltagareAvrop): boolean {
|
||||
return this._isAfterStartDate(avrop.startDate) && this._isBeforeLastPossibleReportDay(avrop.endDate);
|
||||
}
|
||||
|
||||
notAllowedToReportWarning(avrop: Avrop): string {
|
||||
notAllowedToReportWarning(avrop: DeltagareAvrop): string {
|
||||
if (!this._isBeforeLastPossibleReportDay(avrop.endDate)) {
|
||||
return 'Det går inte att göra Avvikelserapport (avvikelse) eftersom tjänsten har avslutats.';
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { AvvikelseReportRequest } from '@msfa-models/api/avvikelse-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { AvvikelseQuestion } from '@msfa-models/avvikelse-question.model';
|
||||
import { AvvikelseReason, sortAvvikelseReasons } from '@msfa-models/avvikelse-reason.model';
|
||||
import { AvvikelseApiService } from '@msfa-services/api/avvikelse-api.service';
|
||||
@@ -14,10 +14,9 @@ export class AvvikelseReportFormService {
|
||||
.fetchAvvikelseQuestions$()
|
||||
.pipe(shareReplay(1));
|
||||
|
||||
fetchAvvikelseReasons$: Observable<AvvikelseReason[]> = this.avvikelseApiService.fetchAvvikelseReasons$()
|
||||
.pipe(
|
||||
map(reasons => sortAvvikelseReasons(reasons))
|
||||
);
|
||||
fetchAvvikelseReasons$: Observable<AvvikelseReason[]> = this.avvikelseApiService
|
||||
.fetchAvvikelseReasons$()
|
||||
.pipe(map(reasons => sortAvvikelseReasons(reasons)));
|
||||
|
||||
constructor(private avvikelseApiService: AvvikelseApiService, private deltagareApiService: DeltagareApiService) {}
|
||||
|
||||
@@ -25,7 +24,7 @@ export class AvvikelseReportFormService {
|
||||
return this.avvikelseApiService.createAvvikelse$(avvikelse);
|
||||
}
|
||||
|
||||
fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { ActivatedRoute } from '@angular/router';
|
||||
import { ANNAN_ORSAK_ID } from '@msfa-constants/franvaro-reasons';
|
||||
import { OrsaksKoderKanda } from '@msfa-enums/orsaks-koder-kanda.enum';
|
||||
import { FranvaroReportRequest } from '@msfa-models/api/franvaro-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { FranvaroReason, setKnownReason, sortFranvaroReasons } from '@msfa-models/franvaro-reason.model';
|
||||
import { Franvaro } from '@msfa-models/franvaro.model';
|
||||
@@ -45,15 +45,15 @@ export class FranvaroReportFormComponent {
|
||||
currentGenomforandeReferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map(params => +params.genomforandeReferens)
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.currentGenomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.currentGenomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens => this.franvaroReportFormService.fetchAvropInformation$(genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
reasons$: Observable<FranvaroReason[]> = this.franvaroReportFormService.reasons$;
|
||||
allReasons$: Observable<FranvaroReason[]> = combineLatest([this.reasons$, this.franvaroReportFormService.otherKnownReasons$])
|
||||
.pipe(
|
||||
map(([reasons, otherKnownReasons]) => sortFranvaroReasons(reasons.concat(otherKnownReasons)))
|
||||
)
|
||||
allReasons$: Observable<FranvaroReason[]> = combineLatest([
|
||||
this.reasons$,
|
||||
this.franvaroReportFormService.otherKnownReasons$,
|
||||
]).pipe(map(([reasons, otherKnownReasons]) => sortFranvaroReasons(reasons.concat(otherKnownReasons))));
|
||||
otherKnownReasons$: Observable<FranvaroReason[]> = this.franvaroReportFormService.otherKnownReasons$;
|
||||
|
||||
wholeDayOrPartOfDayRadiobuttons: Radiobutton[] = [
|
||||
@@ -123,11 +123,11 @@ export class FranvaroReportFormComponent {
|
||||
return lastPossibleReportDay > new Date();
|
||||
}
|
||||
|
||||
isAllowedToReport(avrop: Avrop): boolean {
|
||||
isAllowedToReport(avrop: DeltagareAvrop): boolean {
|
||||
return this._isAfterStartDate(avrop.startDate) && this._isBeforeLastPossibleReportDay(avrop.endDate);
|
||||
}
|
||||
|
||||
notAllowedToReportWarning(avrop: Avrop): string {
|
||||
notAllowedToReportWarning(avrop: DeltagareAvrop): string {
|
||||
if (!this._isBeforeLastPossibleReportDay(avrop.endDate)) {
|
||||
return 'Det går inte att göra Avvikelserapport (frånvaro) eftersom tjänsten har avslutats.';
|
||||
}
|
||||
@@ -197,9 +197,9 @@ export class FranvaroReportFormComponent {
|
||||
slutTid: this.showTimePickers ? endTime : '23:59', // BÄR doesn't accept empty string or null
|
||||
alternativForKandaOrsaker: this.isOtherKnownReason
|
||||
? {
|
||||
typ: reason,
|
||||
motivering: this.showKnownReasonTextArea ? knownReasonComment : '',
|
||||
}
|
||||
typ: reason,
|
||||
motivering: this.showKnownReasonTextArea ? knownReasonComment : '',
|
||||
}
|
||||
: null,
|
||||
forvantadNarvaro: {
|
||||
startTid: expectedPresenceStartTime,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { FranvaroReportRequest } from '@msfa-models/api/franvaro-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { FranvaroReason } from '@msfa-models/franvaro-reason.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { FranvaroReportApiService } from '@msfa-services/api/franvaro-report.api.service';
|
||||
@@ -16,7 +16,7 @@ export class FranvaroReportFormService {
|
||||
private deltagareApiService: DeltagareApiService
|
||||
) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Activity } from '@msfa-models/activity.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import {
|
||||
GemensamPlanering,
|
||||
@@ -36,7 +36,7 @@ export class GemensamPlaneringFormComponent {
|
||||
currentGenomforandeReferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map(params => +params.genomforandeReferens)
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.currentGenomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.currentGenomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens => this.gemensamPlaneringFormService.fetchAvropInformation$(genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
@@ -158,11 +158,11 @@ export class GemensamPlaneringFormComponent {
|
||||
return lastPossibleReportDay > new Date();
|
||||
}
|
||||
|
||||
isAllowedToReport(avrop: Avrop): boolean {
|
||||
isAllowedToReport(avrop: DeltagareAvrop): boolean {
|
||||
return this._isAfterStartDate(avrop.startDate) && this._isBeforeLastPossibleReportDay(avrop.endDate);
|
||||
}
|
||||
|
||||
notAllowedToReportWarning(avrop: Avrop): string {
|
||||
notAllowedToReportWarning(avrop: DeltagareAvrop): string {
|
||||
if (!this._isBeforeLastPossibleReportDay(avrop.endDate)) {
|
||||
return 'Det går inte att göra Gemensam planering eftersom tjänsten har avslutats.';
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Activity } from '@msfa-models/activity.model';
|
||||
import { GemensamPlaneringPostRequest } from '@msfa-models/api/gemensam-planering.request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
@@ -11,7 +11,7 @@ export class GemensamPlaneringFormService {
|
||||
|
||||
constructor(private gemensamPlaneringApiService: GemensamPlaneringApiService) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.gemensamPlaneringApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { FormControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { InformativRapportCategory, InformativRapportCategoryKey } from '@msfa-enums/informativ-rapport-category.enum';
|
||||
import { InformativRapportRequest } from '@msfa-models/api/informativ-rapport.request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { RequiredValidator } from '@msfa-utils/validators/required.validator';
|
||||
import { BehaviorSubject, combineLatest, Observable } from 'rxjs';
|
||||
@@ -28,7 +28,7 @@ export class InformativRapportFormComponent {
|
||||
genomforandeReferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map(params => +params.genomforandeReferens)
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.genomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.genomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens => this.informativRapportFormService.fetchAvropInformation$(genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { InformativRapportRequest } from '@msfa-models/api/informativ-rapport.request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { InformativRapportApiService } from '@msfa-services/api/informativ-rapport.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -16,7 +16,7 @@ export class InformativRapportFormService {
|
||||
return this.informativRapportApiService.postInformativRapport$(requestData);
|
||||
}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
PeriodiskRedovisningRequest,
|
||||
} from '@msfa-models/api/periodisk-redovisning.request.model';
|
||||
import { AvropPeriod } from '@msfa-models/avrop-period.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { capitalizeWords } from '@msfa-utils/capitalize-words.util';
|
||||
import { formatDate, formatToDate } from '@msfa-utils/format-to-date.util';
|
||||
@@ -53,7 +53,7 @@ export class PeriodiskRedovisningFormComponent implements OnInit {
|
||||
genomforandeReferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map((params: Params) => +params.genomforandeReferens)
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.genomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.genomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens =>
|
||||
this.periodiskRedovisningFormService.fetchAvropInformation$(genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { Activity, mapResponseToActivity } from '@msfa-models/activity.model';
|
||||
import { PeriodiskRedovisningRequest } from '@msfa-models/api/periodisk-redovisning.request.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
import { PeriodiskRedovisningApiService } from '@msfa-services/api/periodisk-redovisning.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
import { PeriodiskRedovisningRequest } from '@msfa-models/api/periodisk-redovisning.request.model';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { Activity, mapResponseToActivity } from '@msfa-models/activity.model';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
|
||||
@Injectable()
|
||||
export class PeriodiskRedovisningFormService {
|
||||
@@ -16,7 +16,7 @@ export class PeriodiskRedovisningFormService {
|
||||
private gemensamPlaneringApiService: GemensamPlaneringApiService
|
||||
) {}
|
||||
|
||||
fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { FormControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { SignalRequest } from '@msfa-models/api/signal.request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { Signal } from '@msfa-models/signal.model';
|
||||
import { formatDate } from '@msfa-utils/format-to-date.util';
|
||||
@@ -39,7 +39,7 @@ export class SignalFormComponent {
|
||||
currentGenomforandeReferens$: Observable<number> = this.activatedRoute.params.pipe(
|
||||
map(params => +params.genomforandeReferens)
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.currentGenomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.currentGenomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens => this.signalFormService.fetchAvropInformation$(genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { SignalRequest } from '@msfa-models/api/signal.request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { SignalApiService } from '@msfa-services/api/signal.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -13,7 +13,7 @@ export class SignalFormService {
|
||||
return this.signalApiService.postSignal$(requestData);
|
||||
}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { slutredovisningFormDataToSlutredovisningRequest } from '../utils/form-data-to-slutredovisning.util';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
import { SlutredovisningFormService } from '../slutredovisning-form.service';
|
||||
import { SlutredovisningResponseMainOccupationDetails } from '@msfa-models/api/slutredovisning.response.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError } from '@msfa-models/error/custom-error';
|
||||
import { MainOccupation, Slutredovisning } from '@msfa-models/slutredovisning.model';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { SlutredovisningFormData } from '../models/slutredovisning-form-data.model';
|
||||
import { SlutredovisningFormService } from '../slutredovisning-form.service';
|
||||
import { slutredovisningFormDataToSlutredovisningRequest } from '../utils/form-data-to-slutredovisning.util';
|
||||
|
||||
@Component({
|
||||
selector: 'msfa-slutredovisning-form-step3',
|
||||
@@ -17,7 +17,7 @@ import { SlutredovisningFormData } from '../models/slutredovisning-form-data.mod
|
||||
export class SlutredovisningFormStep3Component {
|
||||
@Output() backClick = new EventEmitter<void>();
|
||||
@Input() slutredovisningFormData: SlutredovisningFormData;
|
||||
@Input() avrop: Avrop;
|
||||
@Input() avrop: DeltagareAvrop;
|
||||
|
||||
submitIsLoading$ = new BehaviorSubject<boolean>(false);
|
||||
submitError$ = new BehaviorSubject<CustomError>(null);
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';
|
||||
import { AbstractControl, FormGroup } from '@angular/forms';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { addDays } from 'date-fns';
|
||||
import { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
import { SlutredovisningFormService } from './slutredovisning-form.service';
|
||||
import { addDays } from 'date-fns';
|
||||
import { SlutredovisningStep } from './slutredovisning-form.model';
|
||||
import { SlutredovisningFormData } from './models/slutredovisning-form-data.model';
|
||||
import { SlutredovisningStep0FormData } from './slutredovisning-form-step0/slutredovisning-form-step0.component';
|
||||
import { SlutredovisningStep1FormData } from './slutredovisning-form-step1/slutredovisning-form-step1.component';
|
||||
import { SlutredovisningStep2FormData } from './slutredovisning-form-step2/slutredovisning-form-step2.component';
|
||||
import { SlutredovisningStep } from './slutredovisning-form.model';
|
||||
import { SlutredovisningFormService } from './slutredovisning-form.service';
|
||||
import { formsToSlutredovisningFormData } from './utils/form-data-to-slutredovisning.util';
|
||||
import { SlutredovisningFormData } from './models/slutredovisning-form-data.model';
|
||||
|
||||
interface Params {
|
||||
genomforandeReferens: string;
|
||||
@@ -54,7 +54,7 @@ export class SlutredovisningFormComponent implements OnDestroy {
|
||||
)
|
||||
);
|
||||
|
||||
avrop$: Observable<Avrop> = this.genomforandeReferens$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.genomforandeReferens$.pipe(
|
||||
switchMap(genomforandeReferens => this.slutredovisningFormService.fetchAvropInformation$(genomforandeReferens)),
|
||||
shareReplay(1)
|
||||
);
|
||||
@@ -80,11 +80,11 @@ export class SlutredovisningFormComponent implements OnDestroy {
|
||||
return lastPossibleReportDay > new Date();
|
||||
}
|
||||
|
||||
isAllowedToReport(avrop: Avrop): boolean {
|
||||
isAllowedToReport(avrop: DeltagareAvrop): boolean {
|
||||
return this._isAfterStartDate(avrop.startDate) && this._isBeforeLastPossibleReportDay(avrop.endDate);
|
||||
}
|
||||
|
||||
notAllowedToReportWarning(avrop: Avrop): string {
|
||||
notAllowedToReportWarning(avrop: DeltagareAvrop): string {
|
||||
if (!this._isBeforeLastPossibleReportDay(avrop.endDate)) {
|
||||
return 'Det går inte att göra Slutredovisning eftersom tjänsten har avslutats.';
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Activity, mapResponseToActivity } from '@msfa-models/activity.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { SlutredovisningRequest } from '@msfa-models/api/slutredovisning.request.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { mapResponseToYrkesomrade, Yrkesomrade, yrkeToTextMap } from '@msfa-models/yrkesomrade.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
@@ -9,9 +10,8 @@ import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { map, shareReplay } from 'rxjs/operators';
|
||||
import { SlutredovisningStep0FormData } from './slutredovisning-form-step0/slutredovisning-form-step0.component';
|
||||
import { SlutredovisningStep1FormData } from './slutredovisning-form-step1/slutredovisning-form-step1.component';
|
||||
import { SlutredovisningStep } from './slutredovisning-form.model';
|
||||
import { SlutredovisningStep2FormData } from './slutredovisning-form-step2/slutredovisning-form-step2.component';
|
||||
import { SlutredovisningRequest } from '@msfa-models/api/slutredovisning.request.model';
|
||||
import { SlutredovisningStep } from './slutredovisning-form.model';
|
||||
|
||||
@Injectable()
|
||||
export class SlutredovisningFormService {
|
||||
@@ -49,7 +49,7 @@ export class SlutredovisningFormService {
|
||||
return this.slutredovisningApiService.submitSlutredovisning$(slutredovisning);
|
||||
}
|
||||
|
||||
fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { AvvikelseReport } from '@msfa-models/avvikelse.model';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
@@ -20,7 +20,7 @@ export class AvvikelseReportViewComponent {
|
||||
genomforandeReferens: params.genomforandeReferens as string,
|
||||
}))
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.params$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.params$.pipe(
|
||||
switchMap(({ genomforandeReferens }) =>
|
||||
this.avvikelseReportViewService.fetchAvropInformation$(+genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { AvvikelseQuestion } from '@msfa-models/avvikelse-question.model';
|
||||
import { AvvikelseReason } from '@msfa-models/avvikelse-reason.model';
|
||||
import { AvvikelseReport, mapResponseToAvvikelse } from '@msfa-models/avvikelse.model';
|
||||
import { AvvikelseApiService } from '@msfa-services/api/avvikelse-api.service';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { HandlingarApiService } from '@msfa-services/api/handlingar.api.service';
|
||||
import { combineLatest, Observable } from 'rxjs';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { filter, map, switchMap } from 'rxjs/operators';
|
||||
import { AvvikelseReason } from '@msfa-models/avvikelse-reason.model';
|
||||
import { AvvikelseQuestion } from '@msfa-models/avvikelse-question.model';
|
||||
import { AvvikelseApiService } from '@msfa-services/api/avvikelse-api.service';
|
||||
|
||||
@Injectable()
|
||||
export class AvvikelseReportViewService {
|
||||
@@ -20,7 +20,7 @@ export class AvvikelseReportViewService {
|
||||
private avvikelseApiService: AvvikelseApiService
|
||||
) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { FranvaroReport } from '@msfa-models/franvaro.model';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
@@ -20,7 +20,7 @@ export class FranvaroReportViewComponent {
|
||||
genomforandeReferens: params.genomforandeReferens as string,
|
||||
}))
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.params$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.params$.pipe(
|
||||
switchMap(({ genomforandeReferens }) =>
|
||||
this.franvaroReportViewService.fetchAvropInformation$(+genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { FranvaroReason } from '@msfa-models/franvaro-reason.model';
|
||||
import { FranvaroReport, mapResponseToFranvaro } from '@msfa-models/franvaro.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { FranvaroReportApiService } from '@msfa-services/api/franvaro-report.api.service';
|
||||
import { HandlingarApiService } from '@msfa-services/api/handlingar.api.service';
|
||||
import { combineLatest, Observable } from 'rxjs';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { FranvaroReason } from '@msfa-models/franvaro-reason.model';
|
||||
import { FranvaroReportApiService } from '@msfa-services/api/franvaro-report.api.service';
|
||||
import { filter, map, switchMap } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
@@ -21,7 +21,7 @@ export class FranvaroReportViewService {
|
||||
private deltagareApiService: DeltagareApiService
|
||||
) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { GemensamPlaneringDetailed } from '@msfa-models/gemensam-planering.model';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
@@ -20,7 +20,7 @@ export class GemensamPlaneringViewComponent {
|
||||
genomforandeReferens: params.genomforandeReferens as string,
|
||||
}))
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.params$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.params$.pipe(
|
||||
switchMap(({ genomforandeReferens }) =>
|
||||
this.gemensamPlaneringViewService.fetchAvropInformation$(+genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { Activity } from '@msfa-models/activity.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import {
|
||||
GemensamPlaneringDetailed,
|
||||
mapResponseToGemensamPlaneringDetailed,
|
||||
} from '@msfa-models/gemensam-planering.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
import { HandlingarApiService } from '@msfa-services/api/handlingar.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { map, switchMap } from 'rxjs/operators';
|
||||
import { Activity } from '@msfa-models/activity.model';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
|
||||
@Injectable()
|
||||
export class GemensamPlaneringViewService {
|
||||
@@ -21,7 +21,7 @@ export class GemensamPlaneringViewService {
|
||||
private gemensamPlaneringApiService: GemensamPlaneringApiService
|
||||
) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { InformativRapport } from '@msfa-models/informativ-rapport.model';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
@@ -20,7 +20,7 @@ export class InformativRapportViewComponent {
|
||||
genomforandeReferens: params.genomforandeReferens as string,
|
||||
}))
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.params$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.params$.pipe(
|
||||
switchMap(({ genomforandeReferens }) =>
|
||||
this.informativRapportViewService.fetchAvropInformation$(+genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { InformativRapport, mapResponseToInformativRapport } from '@msfa-models/informativ-rapport.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { HandlingarApiService } from '@msfa-services/api/handlingar.api.service';
|
||||
@@ -10,7 +10,7 @@ import { map } from 'rxjs/operators';
|
||||
export class InformativRapportViewService {
|
||||
constructor(private handlingarApiService: HandlingarApiService, private deltagareApiService: DeltagareApiService) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { PeriodiskRedovisning, PeriodiskRedovisningActivity } from '@msfa-models/periodisk-redovisning.model';
|
||||
import { capitalizeWords } from '@msfa-shared/utils/capitalize-words.util';
|
||||
import { formatDate, formatToDate } from '@msfa-shared/utils/format-to-date.util';
|
||||
@@ -22,7 +22,7 @@ export class PeriodiskRedovisningViewComponent {
|
||||
genomforandeReferens: params.genomforandeReferens as string,
|
||||
}))
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.params$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.params$.pipe(
|
||||
switchMap(({ genomforandeReferens }) =>
|
||||
this.periodiskRedovisningViewService.fetchAvropInformation$(+genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Activity } from '@msfa-models/activity.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { mapResponseToPeriodiskRedovisning, PeriodiskRedovisning } from '@msfa-models/periodisk-redovisning.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { GemensamPlaneringApiService } from '@msfa-services/api/gemensam-planering-api.service';
|
||||
@@ -18,7 +18,7 @@ export class PeriodiskRedovisningViewService {
|
||||
private deltagareApiService: DeltagareApiService
|
||||
) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { Slutredovisning } from '@msfa-models/slutredovisning.model';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, shareReplay, switchMap } from 'rxjs/operators';
|
||||
import { SlutredovisningViewService } from './slutredovisning-view.service';
|
||||
import { Slutredovisning } from '@msfa-models/slutredovisning.model';
|
||||
|
||||
@Component({
|
||||
selector: 'msfa-slutredovisning-view',
|
||||
@@ -20,7 +20,7 @@ export class SlutredovisningViewComponent {
|
||||
genomforandeReferens: params.genomforandeReferens as string,
|
||||
}))
|
||||
);
|
||||
avrop$: Observable<Avrop> = this.params$.pipe(
|
||||
avrop$: Observable<DeltagareAvrop> = this.params$.pipe(
|
||||
switchMap(({ genomforandeReferens }) =>
|
||||
this.slutredovisningViewService.fetchAvropInformation$(+genomforandeReferens)
|
||||
),
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { SlutredovisningResponse } from '@msfa-models/api/slutredovisning.response.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { HandlingarApiService } from '@msfa-services/api/handlingar.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { SlutredovisningApiService } from '@msfa-services/api/slutredovisning.api.service';
|
||||
import { SlutredovisningResponse } from '@msfa-models/api/slutredovisning.response.model';
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class SlutredovisningViewService {
|
||||
constructor(
|
||||
private handlingarApiService: HandlingarApiService,
|
||||
private deltagareApiService: DeltagareApiService,
|
||||
private gemensamPlaneringApiService: SlutredovisningApiService
|
||||
) {}
|
||||
constructor(private handlingarApiService: HandlingarApiService, private deltagareApiService: DeltagareApiService) {}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { PaginationMeta } from '@msfa-models/pagination-meta.model';
|
||||
|
||||
export interface AvropResponse {
|
||||
export interface DeltagareAvropResponse {
|
||||
id: string;
|
||||
fullName: string;
|
||||
tjanst: string;
|
||||
@@ -19,8 +19,49 @@ export interface AvropResponse {
|
||||
handledare: string;
|
||||
hasAvbrott: boolean;
|
||||
hasGemensamPlanering: boolean;
|
||||
kommun: string;
|
||||
personnummer: string;
|
||||
}
|
||||
|
||||
//personnummer: string;
|
||||
export interface AvropResponse {
|
||||
id: string;
|
||||
deltagare: string;
|
||||
genomforandeReferens: number;
|
||||
kommun: string;
|
||||
adress: string;
|
||||
tjansteNamn: string;
|
||||
startdatumAvrop: Date;
|
||||
slutdatumAvrop: Date;
|
||||
tolkbehov: string | null;
|
||||
sprakstod: string | null;
|
||||
sparkod: string;
|
||||
|
||||
// These are not used, but are available inside the response
|
||||
leverantorId: number;
|
||||
organisationsnummer: string;
|
||||
utforandeVerksamhetId: number;
|
||||
utforandeverksamhet: string;
|
||||
kommunKod: string;
|
||||
utforandeAdressId: number;
|
||||
bokningsId: number;
|
||||
ordernummer: string;
|
||||
personnummer: string;
|
||||
sokandeId: number;
|
||||
tjanstekod: string;
|
||||
deltagandeGrad: number;
|
||||
sparNamn: string;
|
||||
aktnummerDiariet: string;
|
||||
handledareCiamUserId: string | null;
|
||||
handledare: string | null;
|
||||
exported: boolean;
|
||||
avbrottHandelseId: string | null;
|
||||
avbrottHandelse: string | null;
|
||||
handelser: unknown[] | null;
|
||||
handlingar: unknown[] | null;
|
||||
recievedTimestamp: Date;
|
||||
isDeltagare: boolean;
|
||||
hasGemensamPlanering: boolean;
|
||||
hasAvbrott: boolean;
|
||||
}
|
||||
|
||||
export interface AvropAndMetaResponse {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { PaginationMeta } from '@msfa-models/pagination-meta.model';
|
||||
import { AvropResponse } from './avrop.response.model';
|
||||
import { DeltagareAvropResponse } from './avrop.response.model';
|
||||
import { ContactInformationResponse } from './contact-information.response.model';
|
||||
import { DisabilitiesResponse } from './disabilities.response.model';
|
||||
import { DriversLicenseResponse } from './drivers-license.response.model';
|
||||
@@ -32,7 +32,7 @@ export interface DeltagareResponse {
|
||||
workLanguages: WorkLanguagesResponse;
|
||||
disabilities: DisabilitiesResponse;
|
||||
workExperiences: WorkExperiencesResponse;
|
||||
avropInformation: AvropResponse;
|
||||
avropInformation: DeltagareAvropResponse;
|
||||
}
|
||||
|
||||
export interface DeltagareCompactApiResponse {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { TrackName } from '@msfa-enums/track-name.enum';
|
||||
import { AvropResponse } from './api/avrop.response.model';
|
||||
import { mapStringToSsn } from '@msfa-shared/utils/map-string-to-ssn.util';
|
||||
import { AvropResponse, DeltagareAvropResponse } from './api/avrop.response.model';
|
||||
import { PaginationMeta } from './pagination-meta.model';
|
||||
|
||||
export interface Avrop {
|
||||
export interface DeltagareAvrop {
|
||||
id: string;
|
||||
fullName: string;
|
||||
tjanst: string;
|
||||
@@ -22,9 +23,22 @@ export interface Avrop {
|
||||
receivedTimestamp: Date;
|
||||
hasGemensamPlanering: boolean;
|
||||
hasAvbrott: boolean;
|
||||
|
||||
ssn: string; // personnummer
|
||||
kommun: string;
|
||||
ssn: string;
|
||||
}
|
||||
|
||||
export interface Avrop {
|
||||
id: string;
|
||||
fullName: string;
|
||||
tjanst: string;
|
||||
startDate: Date;
|
||||
endDate: Date;
|
||||
sprakstod: string;
|
||||
tolkbehov: string;
|
||||
utforandeAdress: string;
|
||||
kommun: string;
|
||||
trackName: TrackName;
|
||||
genomforandeReferens: number;
|
||||
}
|
||||
|
||||
export interface AvropAndMeta {
|
||||
@@ -32,7 +46,37 @@ export interface AvropAndMeta {
|
||||
meta: PaginationMeta;
|
||||
}
|
||||
|
||||
export function mapAvropResponseToAvrop(data: AvropResponse): Avrop {
|
||||
export function mapResponseToAvrop(data: AvropResponse): Avrop {
|
||||
const {
|
||||
id,
|
||||
deltagare,
|
||||
tjansteNamn,
|
||||
startdatumAvrop,
|
||||
slutdatumAvrop,
|
||||
sprakstod,
|
||||
tolkbehov,
|
||||
adress,
|
||||
kommun,
|
||||
sparkod,
|
||||
genomforandeReferens,
|
||||
} = data;
|
||||
|
||||
return {
|
||||
id,
|
||||
fullName: deltagare,
|
||||
tjanst: tjansteNamn,
|
||||
startDate: new Date(startdatumAvrop),
|
||||
endDate: new Date(slutdatumAvrop),
|
||||
sprakstod,
|
||||
tolkbehov,
|
||||
utforandeAdress: adress,
|
||||
kommun,
|
||||
trackName: (TrackName[sparkod] || TrackName.UNKNOWN) as TrackName,
|
||||
genomforandeReferens,
|
||||
};
|
||||
}
|
||||
|
||||
export function mapResponseToDeltagareAvrop(data: DeltagareAvropResponse): DeltagareAvrop {
|
||||
const {
|
||||
id,
|
||||
fullName,
|
||||
@@ -52,9 +96,8 @@ export function mapAvropResponseToAvrop(data: AvropResponse): Avrop {
|
||||
handledare,
|
||||
hasAvbrott,
|
||||
hasGemensamPlanering,
|
||||
|
||||
// kommun
|
||||
// personnummer,
|
||||
kommun,
|
||||
personnummer,
|
||||
} = data;
|
||||
|
||||
return {
|
||||
@@ -68,12 +111,10 @@ export function mapAvropResponseToAvrop(data: AvropResponse): Avrop {
|
||||
sprakstod,
|
||||
utforandeVerksamhet,
|
||||
utforandeAdress,
|
||||
// kommun,
|
||||
kommun: '',
|
||||
kommun: kommun || '',
|
||||
trackCode: sparkod,
|
||||
trackName: (TrackName[sparkod] || TrackName.UNKNOWN) as TrackName,
|
||||
// ssn: mapStringToSsn(personnummer),
|
||||
ssn: '',
|
||||
ssn: mapStringToSsn(personnummer),
|
||||
genomforandeReferens,
|
||||
participationFrequency,
|
||||
handledareCiamUserId,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Address } from './address.model';
|
||||
import { DeltagareCompactResponse, DeltagareResponse } from './api/deltagare.response.model';
|
||||
import { Avrop, mapAvropResponseToAvrop } from './avrop.model';
|
||||
import { DeltagareAvrop, mapResponseToDeltagareAvrop } from './avrop.model';
|
||||
import { mapResponseToContactInformation } from './contact-information.model';
|
||||
import { Disability, mapResponseToDisability } from './disability.model';
|
||||
import { DriversLicense, mapResponseToDriversLicense } from './drivers-license.model';
|
||||
@@ -42,7 +42,7 @@ export interface Deltagare {
|
||||
disabilities: Disability[];
|
||||
workLanguages: string[];
|
||||
workExperiences: WorkExperience[];
|
||||
avropInformation: Avrop;
|
||||
avropInformation: DeltagareAvrop;
|
||||
}
|
||||
|
||||
export interface DeltagareCompactData {
|
||||
@@ -105,6 +105,6 @@ export function mapResponseToDeltagare(data: DeltagareResponse): Deltagare {
|
||||
workExperiences:
|
||||
workExperiences &&
|
||||
workExperiences.arbetslivserfarenheter.map(workExperience => mapResponseToWorkExperience(workExperience)),
|
||||
avropInformation: avropInformation && mapAvropResponseToAvrop(avropInformation),
|
||||
avropInformation: avropInformation && mapResponseToDeltagareAvrop(avropInformation),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,9 +5,8 @@ import { AvropFilterResponse } from '@msfa-models/api/avrop-filter.response.mode
|
||||
import { AvropAndMetaResponse } from '@msfa-models/api/avrop.response.model';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { AvropFilter, mapResponseToAvropFilter } from '@msfa-models/avrop-filter.model';
|
||||
import { Avrop, AvropAndMeta, mapAvropResponseToAvrop } from '@msfa-models/avrop.model';
|
||||
import { Avrop, AvropAndMeta, mapResponseToAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError, errorToCustomError } from '@msfa-models/error/custom-error';
|
||||
import { Handledare } from '@msfa-models/handledare.model';
|
||||
import { BehaviorSubject, Observable, of } from 'rxjs';
|
||||
import { catchError, filter, map } from 'rxjs/operators';
|
||||
|
||||
@@ -17,7 +16,6 @@ import { catchError, filter, map } from 'rxjs/operators';
|
||||
export class AvropApiService {
|
||||
private _apiBaseUrl = `${environment.api.url}/avrop`;
|
||||
private _lockedAvropSnapshot$ = new BehaviorSubject<Avrop[]>(null);
|
||||
private _availableHandledareSnapshot$ = new BehaviorSubject<Handledare[]>(null);
|
||||
private _showUnauthorizedError$ = new BehaviorSubject<boolean>(false);
|
||||
public showUnauthorizedError$: Observable<boolean> = this._showUnauthorizedError$.asObservable();
|
||||
|
||||
@@ -31,14 +29,14 @@ export class AvropApiService {
|
||||
return this.httpClient
|
||||
.get<AvropAndMetaResponse>(`${this._apiBaseUrl}`, { params })
|
||||
.pipe(
|
||||
map(({ data, meta }) => ({ data: data.map(avrop => mapAvropResponseToAvrop(avrop)), meta })),
|
||||
map(({ data, meta }) => ({ data: data.map(avrop => mapResponseToAvrop(avrop)), meta })),
|
||||
catchError((error: Error & { status: number }) => {
|
||||
if (error.status === 403) {
|
||||
this._showUnauthorizedError$.next(true);
|
||||
return of(null as null);
|
||||
} else {
|
||||
throw new CustomError(
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta deltagare.\n\n${error.message}` })
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta nya deltagare.\n\n${error.message}` })
|
||||
);
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { environment } from '@msfa-environment';
|
||||
import { AvropResponse } from '@msfa-models/api/avrop.response.model';
|
||||
import { DeltagareAvropResponse } from '@msfa-models/api/avrop.response.model';
|
||||
import { ContactInformationResponse } from '@msfa-models/api/contact-information.response.model';
|
||||
import { DeltagareCompactApiResponse } from '@msfa-models/api/deltagare.response.model';
|
||||
import { DisabilityResponse } from '@msfa-models/api/disability.response.model';
|
||||
@@ -13,7 +13,7 @@ import { ReportsDataResponse } from '@msfa-models/api/report.response.model';
|
||||
import { TranslatorResponse } from '@msfa-models/api/translator.response.model';
|
||||
import { WorkExperiencesResponse } from '@msfa-models/api/work-experiences.response.model';
|
||||
import { WorkLanguagesResponse } from '@msfa-models/api/work-languages.response.model';
|
||||
import { Avrop, mapAvropResponseToAvrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop, mapResponseToDeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { ContactInformation, mapResponseToContactInformation } from '@msfa-models/contact-information.model';
|
||||
import { DeltagareCompactData, mapResponseToDeltagareCompact } from '@msfa-models/deltagare.model';
|
||||
import { Disability, mapResponseToDisability } from '@msfa-models/disability.model';
|
||||
@@ -217,14 +217,16 @@ export class DeltagareApiService {
|
||||
);
|
||||
}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
return this.httpClient.get<{ data: AvropResponse }>(`${this._apiBaseUrl}/${genomforandeReferens}/avrop`).pipe(
|
||||
map(({ data }) => mapAvropResponseToAvrop(data)),
|
||||
catchError((error: Error) => {
|
||||
throw new CustomError(
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta avropsinformation.\n\n${error.message}` })
|
||||
);
|
||||
})
|
||||
);
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.httpClient
|
||||
.get<{ data: DeltagareAvropResponse }>(`${this._apiBaseUrl}/${genomforandeReferens}/avrop`)
|
||||
.pipe(
|
||||
map(({ data }) => mapResponseToDeltagareAvrop(data)),
|
||||
catchError((error: Error) => {
|
||||
throw new CustomError(
|
||||
errorToCustomError({ ...error, message: `Kunde inte hämta avropsinformation.\n\n${error.message}` })
|
||||
);
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { ErrorType } from '@msfa-enums/error-type.enum';
|
||||
import { environment } from '@msfa-environment';
|
||||
import { FranvaroReasonResponse } from '@msfa-models/api/franvaro-reason.response.model';
|
||||
import { FranvaroReportRequest } from '@msfa-models/api/franvaro-request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError, errorToCustomError } from '@msfa-models/error/custom-error';
|
||||
import { FranvaroReason, mapResponseToFranvaroReason } from '@msfa-models/franvaro-reason.model';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
@@ -44,7 +44,7 @@ export class FranvaroReportApiService {
|
||||
);
|
||||
}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { environment } from '@msfa-environment';
|
||||
import { Activity, mapResponseToActivity } from '@msfa-models/activity.model';
|
||||
import { ActivityResponse } from '@msfa-models/api/activity.response.model';
|
||||
import { GemensamPlaneringPostRequest } from '@msfa-models/api/gemensam-planering.request.model';
|
||||
import { Avrop } from '@msfa-models/avrop.model';
|
||||
import { DeltagareAvrop } from '@msfa-models/avrop.model';
|
||||
import { CustomError, errorToCustomError } from '@msfa-models/error/custom-error';
|
||||
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -31,7 +31,7 @@ export class GemensamPlaneringApiService {
|
||||
);
|
||||
}
|
||||
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<Avrop> {
|
||||
public fetchAvropInformation$(genomforandeReferens: number): Observable<DeltagareAvrop> {
|
||||
return this.deltagareApiService.fetchAvropInformation$(genomforandeReferens);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user