2ème MR à valider après Rework_referencement #18

Merged
AlexandreRuiz merged 3 commits from fix_dates_edit into develop 2 years ago
  1. 61
      src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html
  2. 54
      src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts
  3. 37
      src/app/components/periode-essai/periode-essai-edit/periode-essai-edit.component.html
  4. 29
      src/app/components/periode-essai/periode-essai-edit/periode-essai-edit.component.ts
  5. 23
      src/app/components/periode-essai/periode-essai.component.ts
  6. 16
      src/app/components/referencement/referencement-edit/referencement-edit.component.html
  7. 36
      src/app/components/referencement/referencement-edit/referencement-edit.component.ts

@ -1,19 +1,18 @@
<div *ngIf="collaborateur"> <div *ngIf="collaborateur">
<h2>{{collaborateur.name | uppercase}} {{collaborateur.firstName | uppercase}} </h2> <h2>{{collaborateur.name | uppercase}} {{collaborateur.firstName | uppercase}} </h2>
<div><label class="form-label">ID : </label>{{collaborateur.id}}</div> <div><label class="form-label">ID : </label>{{collaborateur.id}}</div>
<form *ngIf="collaborateurObservable | async;" <form [formGroup]="registerForm"
[formGroup]="registerForm" (ngSubmit)="onSubmit()">
(ngSubmit)="onSubmit()" >
<div class="row mb-2"> <div class="row mb-2">
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Nom</label> <label class="form-label">Nom</label>
<input class="form-control" formControlName="name" [ngClass]="{ 'is-invalid': submitted && f.name.errors }" [value]="collaborateur.name"> <input class="form-control" formControlName="name" [ngClass]="{ 'is-invalid': submitted && f.name.errors }"
[value]="collaborateur.name">
<div *ngIf="submitted && f.name.errors" class="invalid-feedback"> <div *ngIf="submitted && f.name.errors" class="invalid-feedback">
<div *ngIf="f.name.errors.required">Le nom d'un collaborateur est obligatoire</div> <div *ngIf="f.name.errors.required">Le nom d'un collaborateur est obligatoire</div>
</div> </div>
@ -21,7 +20,8 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Prénom</label> <label class="form-label">Prénom</label>
<input class="form-control" formControlName="firstName" [ngClass]="{ 'is-invalid': submitted && f.firstName.errors }" [value]="collaborateur.firstName"> <input class="form-control" formControlName="firstName"
[ngClass]="{ 'is-invalid': submitted && f.firstName.errors }" [value]="collaborateur.firstName">
<div *ngIf="submitted && f.firstName.errors" class="invalid-feedback"> <div *ngIf="submitted && f.firstName.errors" class="invalid-feedback">
<div *ngIf="f.firstName.errors.required">Le prénom d'un collaborateur est obligatoire</div> <div *ngIf="f.firstName.errors.required">Le prénom d'un collaborateur est obligatoire</div>
</div> </div>
@ -29,7 +29,9 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de naissance</label> <label class="form-label">Date de naissance</label>
<input type="date" class="form-control" formControlName="birthDate" (change)="onBirthDateChange($event)" [ngClass]="{ 'is-invalid': submitted && f.birthDate.errors }" [value]="collaborateur.birthDate"> <input type="date" [value]="collaborateur.birthDate | date:'yyyy-MM-dd'" class="form-control"
formControlName="birthDate" (change)="onBirthDateChange($event)"
[ngClass]="{ 'is-invalid': submitted && f.birthDate.errors }">
<div *ngIf="submitted && f.birthDate.errors" class="invalid-feedback"> <div *ngIf="submitted && f.birthDate.errors" class="invalid-feedback">
<div *ngIf="f.birthDate.errors.required">La date de naissance d'un collaborateur est obligatoire</div> <div *ngIf="f.birthDate.errors.required">La date de naissance d'un collaborateur est obligatoire</div>
</div> </div>
@ -37,7 +39,8 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Genre</label> <label class="form-label">Genre</label>
<select class="form-select" formControlName="gender" [ngClass]="{ 'is-invalid': submitted && f.gender.errors }" [value]="collaborateur.gender"> <select class="form-select" formControlName="gender" [ngClass]="{ 'is-invalid': submitted && f.gender.errors }"
[value]="collaborateur.gender">
<option value="" disabled selected>Genre</option> <option value="" disabled selected>Genre</option>
<option value="MASCULIN">Masculin</option> <option value="MASCULIN">Masculin</option>
<option value="FEMININ">Féminin</option> <option value="FEMININ">Féminin</option>
@ -54,7 +57,8 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Statut</label> <label class="form-label">Statut</label>
<select class="form-select" formControlName="status" [ngClass]="{ 'is-invalid': submitted && f.status.errors }" [value]="collaborateur.status"> <select class="form-select" formControlName="status" [ngClass]="{ 'is-invalid': submitted && f.status.errors }"
[value]="collaborateur.status">
<option value="" disabled selected>Statut</option> <option value="" disabled selected>Statut</option>
<option value="CADRE">Cadre</option> <option value="CADRE">Cadre</option>
<option value="NONCADRE">Non-cadre</option> <option value="NONCADRE">Non-cadre</option>
@ -68,7 +72,9 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Nombre d'enfants</label> <label class="form-label">Nombre d'enfants</label>
<input class="form-control" formControlName="childrenNumber" [ngClass]="{ 'is-invalid': submitted && f.childrenNumber.errors }" type="number" min="0" onkeyup="if(this.value<0){this.value= this.value * -1}" [value]="collaborateur.childrenNumber"> <input class="form-control" formControlName="childrenNumber"
[ngClass]="{ 'is-invalid': submitted && f.childrenNumber.errors }" type="number" min="0"
onkeyup="if(this.value<0){this.value= this.value * -1}" [value]="collaborateur.childrenNumber">
<div *ngIf="submitted && f.childrenNumber.errors" class="invalid-feedback"> <div *ngIf="submitted && f.childrenNumber.errors" class="invalid-feedback">
<div *ngIf="f.childrenNumber.errors.required">Le nombre d'enfant d'un collaborateur est obligatoire</div> <div *ngIf="f.childrenNumber.errors.required">Le nombre d'enfant d'un collaborateur est obligatoire</div>
</div> </div>
@ -76,7 +82,8 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Adresse</label> <label class="form-label">Adresse</label>
<input class="form-control" formControlName="address" [ngClass]="{ 'is-invalid': submitted && f.address.errors }" [value]="collaborateur.address"> <input class="form-control" formControlName="address"
[ngClass]="{ 'is-invalid': submitted && f.address.errors }" [value]="collaborateur.address">
<div *ngIf="submitted && f.address.errors" class="invalid-feedback"> <div *ngIf="submitted && f.address.errors" class="invalid-feedback">
<div *ngIf="f.address.errors.required">L'adresse d'un collaborateur est obligatoire</div> <div *ngIf="f.address.errors.required">L'adresse d'un collaborateur est obligatoire</div>
</div> </div>
@ -84,7 +91,8 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Téléphone</label> <label class="form-label">Téléphone</label>
<input class="form-control" formControlName="telephone" [ngClass]="{ 'is-invalid': submitted && f.telephone.errors }" [value]="collaborateur.telephone"> <input class="form-control" formControlName="telephone"
[ngClass]="{ 'is-invalid': submitted && f.telephone.errors }" [value]="collaborateur.telephone">
<div *ngIf="submitted && f.telephone.errors" class="invalid-feedback"> <div *ngIf="submitted && f.telephone.errors" class="invalid-feedback">
<div *ngIf="f.telephone.errors.required">Le numéro de téléphone d'un collaborateur est obligatoire</div> <div *ngIf="f.telephone.errors.required">Le numéro de téléphone d'un collaborateur est obligatoire</div>
</div> </div>
@ -98,31 +106,39 @@
<label class="form-label" style="padding-right: 5px">Mail personnel</label> <label class="form-label" style="padding-right: 5px">Mail personnel</label>
<small>(pas Apside)</small> <small>(pas Apside)</small>
</div> </div>
<input type="email" class="form-control" formControlName="personalMail" [ngClass]="{ 'is-invalid': submitted && f.personalMail.errors }" placeholder="prenom.nom@example.com" [value]="collaborateur.personalMail"> <input type="email" class="form-control" formControlName="personalMail"
[ngClass]="{ 'is-invalid': submitted && f.personalMail.errors }" placeholder="prenom.nom@example.com"
[value]="collaborateur.personalMail">
<div *ngIf="submitted && f.personalMail.errors" class="invalid-feedback"> <div *ngIf="submitted && f.personalMail.errors" class="invalid-feedback">
<div *ngIf="f.personalMail.errors.required">Le mail personnel d'un collaborateur est obligatoire</div> <div *ngIf="f.personalMail.errors.required">Le mail personnel d'un collaborateur est obligatoire</div>
<div *ngIf="f.personalMail.errors.pattern">Le mail personnel d'un collaborateur doit être au format "exemple@nom.de.domaine"</div> <div *ngIf="f.personalMail.errors.pattern">Le mail personnel d'un collaborateur doit être au format
"exemple@nom.de.domaine"
</div>
</div> </div>
</div> </div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Mail Apside</label> <label class="form-label">Mail Apside</label>
<input type="email" class="form-control" formControlName="apsideMail" [ngClass]="{ 'is-invalid': (submitted && f.apsideMail.errors) || errorValue==1 }" placeholder="prenom.nom@apside-groupe.com" [value]="collaborateur.apsideMail"> <input type="email" class="form-control" formControlName="apsideMail"
[ngClass]="{ 'is-invalid': (submitted && f.apsideMail.errors) || errorValue==1 }"
placeholder="prenom.nom@apside-groupe.com" [value]="collaborateur.apsideMail">
<div *ngIf="submitted && f.apsideMail.errors" class="invalid-feedback"> <div *ngIf="submitted && f.apsideMail.errors" class="invalid-feedback">
<div *ngIf="f.apsideMail.errors.required">Le mail Apside d'un collaborateur est obligatoire</div> <div *ngIf="f.apsideMail.errors.required">Le mail Apside d'un collaborateur est obligatoire</div>
<div *ngIf="f.apsideMail.errors.pattern">Le mail Apside d'un collaborateur doit être au format "exemple@apside-groupe.com" ou "exemple@apside.fr"</div> <div *ngIf="f.apsideMail.errors.pattern">Le mail Apside d'un collaborateur doit être au format
"exemple@apside-groupe.com" ou "exemple@apside.fr"
</div>
</div> </div>
<div *ngIf="submitted && errorValue==1" class="invalid-feedback"> <div *ngIf="submitted && errorValue==1" class="invalid-feedback">
<div *ngIf="errorValue==1">Le mail Apside que vous avez entré est déjà utilisé pour un autre collaborateur</div> <div *ngIf="errorValue==1">Le mail Apside que vous avez entré est déjà utilisé pour un autre collaborateur
</div>
</div> </div>
</div> </div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de départ</label> <label class="form-label">Date de départ</label>
<input type="date" class="form-control" formControlName="resignationDate" (change)="onResignationDateChange($event)" [ngClass]="{ 'is-invalid': submitted && f.resignationDate.errors }" [value]="collaborateur.resignationDate"> <input type="date" [value]="collaborateur.resignationDate | date:'yyyy-MM-dd'" class="form-control"
<div *ngIf="submitted && f.resignationDate.errors" class="invalid-feedback"> formControlName="resignationDate" (change)="onResignationDateChange($event)"
<div *ngIf="f.resignationDate.errors.required">La date de départ d'un collaborateur est obligatoire</div> [ngClass]="{ 'is-invalid': submitted && f.resignationDate.errors }">
</div>
</div> </div>
</div> </div>
@ -131,7 +147,8 @@
<div class="form-group col-12 col-md-6"> <div class="form-group col-12 col-md-6">
<label class="form-label">Business Unit</label> <label class="form-label">Business Unit</label>
<select class="form-select" formControlName="businessUnitId" [ngClass]="{ 'is-invalid': submitted && f.businessUnitId.errors }"> <select class="form-select" formControlName="businessUnitId"
[ngClass]="{ 'is-invalid': submitted && f.businessUnitId.errors }">
<option value="" disabled selected>Choisissez une Business Unit pour le collaborateur</option> <option value="" disabled selected>Choisissez une Business Unit pour le collaborateur</option>
<option *ngFor="let businessUnit of businessUnits" [ngValue]="businessUnit.id">{{businessUnit.name}} </option> <option *ngFor="let businessUnit of businessUnits" [ngValue]="businessUnit.id">{{businessUnit.name}} </option>
</select> </select>

@ -1,8 +1,8 @@
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {Collaborateur} from "../../../interfaces/collaborateur"; import {Collaborateur} from "../../../interfaces/collaborateur";
import { ActivatedRoute } from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import { Location } from '@angular/common'; import {Location} from '@angular/common';
import { CollaborateurService} from "../../../services/collaborateur.service"; import {CollaborateurService} from "../../../services/collaborateur.service";
import {BusinessunitService} from "../../../services/businessunit.service"; import {BusinessunitService} from "../../../services/businessunit.service";
import {FormBuilder, FormGroup, Validators} from "@angular/forms"; import {FormBuilder, FormGroup, Validators} from "@angular/forms";
import {Businessunit} from "../../../interfaces/businessunit"; import {Businessunit} from "../../../interfaces/businessunit";
@ -17,17 +17,13 @@ import {ToastrService} from "ngx-toastr";
}) })
export class CollaborateurEditComponent implements OnInit { export class CollaborateurEditComponent implements OnInit {
collaborateurObservable! : Observable<Collaborateur>; collaborateurObservable!: Observable<Collaborateur>;
id: number; id: number;
collaborateur = {} as Collaborateur; collaborateur = {} as Collaborateur;
businessUnit = {} as Businessunit ; collaborateurs: Collaborateur[] = [];
collaborateurs : Collaborateur[] = []; businessUnits: Businessunit[] = [];
businessUnits : Businessunit[] = []; errorValue: number = 0;
errorValue : number = 0;
rDate : String = "";
bDate : String = "";
registerForm!: FormGroup; registerForm!: FormGroup;
submitted = false; submitted = false;
@ -55,27 +51,21 @@ export class CollaborateurEditComponent implements OnInit {
childrenNumber: ['', Validators.required], childrenNumber: ['', Validators.required],
address: ['', Validators.required], address: ['', Validators.required],
telephone: ['', Validators.required], telephone: ['', Validators.required],
personalMail: ['',Validators.compose([Validators.required,Validators.pattern(".+@[a-z]*\.[a-z]*")])], personalMail: ['', Validators.compose([Validators.required, Validators.pattern(".+@[a-z]*\.[a-z]*")])],
apsideMail: ['', Validators.compose([Validators.required,Validators.pattern(".+@apside-groupe\.com|.*@apside\.fr")])], apsideMail: ['', Validators.compose([Validators.required, Validators.pattern(".+@apside-groupe\.com|.*@apside\.fr")])],
resignationDate: [''], resignationDate: [],
businessUnitId: ['', Validators.required], businessUnitId: ['', Validators.required],
}); });
this.collaborateurObservable = this.collaborateurService.getCollaborateur(this.id).pipe(tap(collaborateur => this.registerForm.patchValue(collaborateur))) this.collaborateurObservable = this.collaborateurService.getCollaborateur(this.id).pipe(tap(collaborateur => this.registerForm.patchValue(collaborateur)))
this.collaborateur = await this.collaborateurObservable.pipe(take(1)).toPromise() this.collaborateur = await this.collaborateurObservable.pipe(take(1)).toPromise()
if (this.collaborateur.resignationDate) {
this.rDate = new Date(this.collaborateur.resignationDate).toISOString().split('T')[0];
}
if (this.collaborateur.birthDate) {
this.bDate = new Date(this.collaborateur.birthDate).toISOString().split('T')[0];
}
} }
getCollaborateurs():void { getCollaborateurs(): void {
this.collaborateurService.getCollaborateurs() this.collaborateurService.getCollaborateurs()
.subscribe(collaborateurs => this.collaborateurs = collaborateurs); .subscribe(collaborateurs => this.collaborateurs = collaborateurs);
} }
getBusinessunits():void { getBusinessunits(): void {
this.businessunitService.getBusinessunits() this.businessunitService.getBusinessunits()
.subscribe(businessunits => this.businessUnits = businessunits); .subscribe(businessunits => this.businessUnits = businessunits);
} }
@ -84,10 +74,10 @@ export class CollaborateurEditComponent implements OnInit {
this.location.back(); this.location.back();
} }
delete():void { delete(): void {
if (this.collaborateur){ if (this.collaborateur) {
this.collaborateurService.deleteCollaborateur(this.collaborateur) this.collaborateurService.deleteCollaborateur(this.collaborateur)
.subscribe(()=>this.goBack()); .subscribe(() => this.goBack());
} }
} }
@ -102,7 +92,6 @@ export class CollaborateurEditComponent implements OnInit {
this.collaborateur.firstName = this.registerForm.value.firstName this.collaborateur.firstName = this.registerForm.value.firstName
this.collaborateur.birthDate = this.registerForm.value.birthDate this.collaborateur.birthDate = this.registerForm.value.birthDate
this.collaborateur.gender = this.registerForm.value.gender this.collaborateur.gender = this.registerForm.value.gender
this.collaborateur.resignationDate = this.registerForm.value.resignationDate
this.collaborateur.businessUnitId = this.registerForm.value.businessUnitId this.collaborateur.businessUnitId = this.registerForm.value.businessUnitId
this.collaborateur.apsideMail = this.registerForm.value.apsideMail this.collaborateur.apsideMail = this.registerForm.value.apsideMail
this.collaborateur.personalMail = this.registerForm.value.personalMail this.collaborateur.personalMail = this.registerForm.value.personalMail
@ -111,10 +100,13 @@ export class CollaborateurEditComponent implements OnInit {
this.collaborateur.childrenNumber = this.registerForm.value.childrenNumber this.collaborateur.childrenNumber = this.registerForm.value.childrenNumber
this.collaborateur.status = this.registerForm.value.status this.collaborateur.status = this.registerForm.value.status
if (this.registerForm.value.resignationDate == undefined) {
this.collaborateur.resignationDate = new Date();
}
if (this.collaborateur) { if (this.collaborateur) {
this.collaborateurService.updateCollaborateur(this.collaborateur).subscribe(() => { this.collaborateurService.updateCollaborateur(this.collaborateur).subscribe(() => {
this.showSuccess(); this.showSuccess();
this.goBack();
}, },
() => { () => {
this.showError() this.showError()
@ -124,18 +116,20 @@ export class CollaborateurEditComponent implements OnInit {
} }
get f() { return this.registerForm.controls; } get f() {
return this.registerForm.controls;
}
onReset() { onReset() {
this.submitted = false; this.submitted = false;
this.registerForm.reset(); this.registerForm.reset();
} }
onResignationDateChange($event: any):void { onResignationDateChange($event: any): void {
this.collaborateur.resignationDate = new Date($event.target.value); this.collaborateur.resignationDate = new Date($event.target.value);
} }
onBirthDateChange($event: any):void { onBirthDateChange($event: any): void {
this.collaborateur.birthDate = new Date($event.target.value); this.collaborateur.birthDate = new Date($event.target.value);
} }

@ -1,25 +1,30 @@
<div xmlns=""> <div xmlns="">
<h3>Ajouter une Période d'Essai : </h3> <h3>Modifier une Période d'essai : </h3>
<form *ngIf="periodeEssaiObservable | async;" <form [formGroup]="registerForm"
[formGroup]="registerForm" (ngSubmit)="onSubmit()">
(ngSubmit)="onSubmit()" >
<div class="form-group col-12 col-md-6"> <div class="form-group col-12 col-md-6">
<label class="form-label">Collaborateur</label> <label class="form-label">Collaborateur</label>
<select class="form-select" formControlName="collaborateurId" id="collaborateur-select" [ngClass]="{ 'is-invalid': submitted && f.collaborateurId.errors }"> <select class="form-select" formControlName="collaborateurId" id="collaborateur-select"
[ngClass]="{ 'is-invalid': submitted && f.collaborateurId.errors }">
<option value="" disabled selected>Choisissez le collaborateur concerné par cette période d'essai</option> <option value="" disabled selected>Choisissez le collaborateur concerné par cette période d'essai</option>
<option *ngFor="let collaborateur of collaborateurs" [ngValue]="collaborateur.id">{{collaborateur.name}}</option> <option *ngFor="let collaborateur of collaborateurs"
[ngValue]="collaborateur.id">{{collaborateur.name}} {{collaborateur.firstName}}</option>
</select> </select>
<div *ngIf="submitted && f.collaborateurId.errors" class="invalid-feedback"> <div *ngIf="submitted && f.collaborateurId.errors" class="invalid-feedback">
<div *ngIf="f.collaborateurId.errors.required">Vous devez choisir le collaborateur concerné par cette période d'essai </div> <div *ngIf="f.collaborateurId.errors.required">Vous devez choisir le collaborateur concerné par cette période
d'essai
</div>
</div> </div>
</div> </div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de début</label> <label class="form-label">Date de début</label>
<input type="date" class="form-control" formControlName="startingDate" (change)="onStartingDateChange($event)" [ngClass]="{ 'is-invalid': submitted && f.startingDate.errors }"> <input type="date" [value]="periodeEssai.startingDate | date:'yyyy-MM-dd'" class="form-control"
formControlName="startingDate" (change)="onStartingDateChange($event)"
[ngClass]="{ 'is-invalid': submitted && f.startingDate.errors }">
<div *ngIf="submitted && f.startingDate.errors" class="invalid-feedback"> <div *ngIf="submitted && f.startingDate.errors" class="invalid-feedback">
<div *ngIf="f.startingDate.errors.required">La date de début d'une période d'essai est obligatoire</div> <div *ngIf="f.startingDate.errors.required">La date de début d'une période d'essai est obligatoire</div>
</div> </div>
@ -27,15 +32,21 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de fin prévue</label> <label class="form-label">Date de fin prévue</label>
<input type="date" class="form-control" formControlName="plannedEndingDate" (change)="onPlannedEndingDateChange($event)" [ngClass]="{ 'is-invalid': submitted && f.plannedEndingDate.errors }"> <input type="date" [value]="periodeEssai.plannedEndingDate | date:'yyyy-MM-dd'" class="form-control"
formControlName="plannedEndingDate"
(change)="onPlannedEndingDateChange($event)"
[ngClass]="{ 'is-invalid': submitted && f.plannedEndingDate.errors }">
<div *ngIf="submitted && f.plannedEndingDate.errors" class="invalid-feedback"> <div *ngIf="submitted && f.plannedEndingDate.errors" class="invalid-feedback">
<div *ngIf="f.plannedEndingDate.errors.required">La date de fin prévue d'une période d'essai est obligatoire</div> <div *ngIf="f.plannedEndingDate.errors.required">La date de fin prévue d'une période d'essai est obligatoire
</div>
</div> </div>
</div> </div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de fin réelle</label> <label class="form-label">Date de fin réelle</label>
<input type="date" class="form-control" formControlName="realEndingDate" (change)="onRealEndingDateChange($event)" [ngClass]="{ 'is-invalid': submitted && f.realEndingDate.errors }"> <input type="date" [value]="periodeEssai.realEndingDate | date:'yyyy-MM-dd'" class="form-control"
formControlName="realEndingDate" (change)="onRealEndingDateChange($event)"
[ngClass]="{ 'is-invalid': submitted && f.realEndingDate.errors }">
<div *ngIf="submitted && f.realEndingDate.errors" class="invalid-feedback"> <div *ngIf="submitted && f.realEndingDate.errors" class="invalid-feedback">
<div *ngIf="f.realEndingDate.errors.required">La date de fin réelle d'une période d'essai est obligatoire</div> <div *ngIf="f.realEndingDate.errors.required">La date de fin réelle d'une période d'essai est obligatoire</div>
</div> </div>
@ -58,8 +69,8 @@
</div> </div>
<div> <div>
<button type="submit">Sauvegarder les changements</button> <button type="submit" (click)="onSubmit()">Sauvegarder les changements</button>
<button (click)="delete()">Supprimer la période d'essai</button> <button type="button" (click)="delete()">Supprimer la période d'essai</button>
<button type="reset" (click)="onReset()">Effacer</button> <button type="reset" (click)="onReset()">Effacer</button>
<button (click)="goBack()">Retour</button> <button (click)="goBack()">Retour</button>
</div> </div>

@ -29,10 +29,6 @@ export class PeriodeEssaiEditComponent implements OnInit {
registerForm!: FormGroup; registerForm!: FormGroup;
submitted = false; submitted = false;
startingDate : String = "";
plannedEndingDate : String = "";
realEndingDate : String = "";
constructor( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private location: Location, private location: Location,
@ -46,6 +42,7 @@ export class PeriodeEssaiEditComponent implements OnInit {
async ngOnInit() { async ngOnInit() {
this.getCollaborateurs(); this.getCollaborateurs();
this.getPeriodeEssais();
this.registerForm = this.formBuilder.group({ this.registerForm = this.formBuilder.group({
comment: ['', Validators.required], comment: ['', Validators.required],
collaborateurId: ['',Validators.required], collaborateurId: ['',Validators.required],
@ -54,17 +51,8 @@ export class PeriodeEssaiEditComponent implements OnInit {
realEndingDate: ['',Validators.required], realEndingDate: ['',Validators.required],
startingDate: ['',Validators.required] startingDate: ['',Validators.required]
}); });
this.periodeEssaiObservable = this.periodeEssaiService.getPeriodeEssai(this.id).pipe(tap(periodeEssai => this.registerForm.patchValue(periodeEssai))) this.periodeEssaiObservable = this.periodeEssaiService.getPeriodeEssai(this.id).pipe(tap(pe => this.registerForm.patchValue(pe)))
this.periodeEssai = await this.periodeEssaiObservable.pipe(take(1)).toPromise() this.periodeEssai = await this.periodeEssaiObservable.pipe(take(1)).toPromise()
if (this.periodeEssai.startingDate) {
this.startingDate = new Date(this.periodeEssai.startingDate).toISOString().split('T')[0];
}
if (this.periodeEssai.plannedEndingDate) {
this.plannedEndingDate = new Date(this.periodeEssai.plannedEndingDate).toISOString().split('T')[0];
}
if (this.periodeEssai.realEndingDate) {
this.realEndingDate = new Date(this.periodeEssai.realEndingDate).toISOString().split('T')[0];
}
} }
getCollaborateurs():void { getCollaborateurs():void {
@ -72,6 +60,11 @@ export class PeriodeEssaiEditComponent implements OnInit {
.subscribe(collaborateurs => this.collaborateurs = collaborateurs); .subscribe(collaborateurs => this.collaborateurs = collaborateurs);
} }
getPeriodeEssais() {
this.periodeEssaiService.getPeriodeEssais()
.subscribe(periodeEssais => this.periodeEssais = periodeEssais);
}
goBack(): void { goBack(): void {
this.location.back(); this.location.back();
} }
@ -92,15 +85,17 @@ export class PeriodeEssaiEditComponent implements OnInit {
this.periodeEssai.comment = this.registerForm.value.comment this.periodeEssai.comment = this.registerForm.value.comment
this.periodeEssai.collaborateurId = this.registerForm.value.collaborateurId this.periodeEssai.collaborateurId = this.registerForm.value.collaborateurId
this.periodeEssai.issue = this.registerForm.value.issue this.periodeEssai.issue = this.registerForm.value.issue
this.periodeEssai.plannedEndingDate = this.registerForm.value.plannedEndingDate
this.periodeEssai.realEndingDate = this.registerForm.value.realEndingDate this.periodeEssai.realEndingDate = this.registerForm.value.realEndingDate
this.periodeEssai.startingDate = this.registerForm.value.startingDate this.periodeEssai.startingDate = this.registerForm.value.startingDate
if (this.registerForm.value.plannedEndingDate == undefined) {
this.periodeEssai.plannedEndingDate = new Date();
}
if (this.periodeEssai){ if (this.periodeEssai){
this.periodeEssaiService.updatePeriodeEssai(this.periodeEssai) this.periodeEssaiService.updatePeriodeEssai(this.periodeEssai)
.subscribe(() => { .subscribe(() => {
this.showSuccess(); this.showSuccess();
this.goBack();
}, },
() => { () => {
this.showError() this.showError()
@ -132,7 +127,7 @@ export class PeriodeEssaiEditComponent implements OnInit {
} }
showError() { showError() {
this.toastr.error('Modification échouée', 'Collaborateur'); this.toastr.error('Modification échouée', 'Période d\'essai');
} }
} }

@ -23,10 +23,6 @@ export class PeriodeEssaiComponent implements OnInit {
registerForm!: FormGroup; registerForm!: FormGroup;
submitted = false; submitted = false;
startingDate : String = "";
plannedEndingDate : String = "";
realEndingDate : String = "";
constructor( constructor(
private http : HttpClient, private http : HttpClient,
private collaborateurService: CollaborateurService, private collaborateurService: CollaborateurService,
@ -46,15 +42,6 @@ export class PeriodeEssaiComponent implements OnInit {
realEndingDate: ['',Validators.required], realEndingDate: ['',Validators.required],
startingDate: ['',Validators.required] startingDate: ['',Validators.required]
}); });
if (this.periodeEssai.startingDate) {
this.startingDate = new Date(this.periodeEssai.startingDate).toISOString().split('T')[0];
}
if (this.periodeEssai.plannedEndingDate) {
this.plannedEndingDate = new Date(this.periodeEssai.plannedEndingDate).toISOString().split('T')[0];
}
if (this.periodeEssai.realEndingDate) {
this.realEndingDate = new Date(this.periodeEssai.realEndingDate).toISOString().split('T')[0];
}
} }
getCollaborateurs():void { getCollaborateurs():void {
@ -62,6 +49,11 @@ export class PeriodeEssaiComponent implements OnInit {
.subscribe(collaborateurs => this.collaborateurs = collaborateurs); .subscribe(collaborateurs => this.collaborateurs = collaborateurs);
} }
getPeriodeEssais() {
this.periodeEssaiService.getPeriodeEssais()
.subscribe(periodeEssais => this.periodeEssais = periodeEssais);
}
add(periodeEssai: PeriodeEssai): void { add(periodeEssai: PeriodeEssai): void {
this.periodeEssaiService.addPeriodeEssai(periodeEssai) this.periodeEssaiService.addPeriodeEssai(periodeEssai)
.subscribe(periodeEssai => { .subscribe(periodeEssai => {
@ -102,10 +94,7 @@ export class PeriodeEssaiComponent implements OnInit {
this.periodeEssai.realEndingDate = new Date($event.target.value); this.periodeEssai.realEndingDate = new Date($event.target.value);
} }
getPeriodeEssais() {
this.periodeEssaiService.getPeriodeEssais()
.subscribe(periodeEssais => this.periodeEssais = periodeEssais);
}
showSuccess() { showSuccess() {
this.toastr.success('Création réussie', 'Collaborateur'); this.toastr.success('Création réussie', 'Collaborateur');

@ -1,4 +1,4 @@
<h3>Modifier un collaborateur : </h3> <h3>Modifier un référencement : </h3>
<form [formGroup]="registerForm" (ngSubmit)="onSubmit()"> <form [formGroup]="registerForm" (ngSubmit)="onSubmit()">
@ -6,14 +6,16 @@
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de début</label> <label class="form-label">Date de début</label>
<input type="date" class="form-control" formControlName="startingDate" <input type="date" [value]="referencement.startingDate | date:'yyyy-MM-dd'" class="form-control"
formControlName="startingDate"
(change)="onStartingDateChange($event)" (change)="onStartingDateChange($event)"
[ngClass]="{ 'is-invalid': submitted && form.startingDate.errors }"> [ngClass]="{ 'is-invalid': submitted && form.startingDate.errors }">
</div> </div>
<div class="form-group col-12 col-sm-6 col-md-4 col-lg-3"> <div class="form-group col-12 col-sm-6 col-md-4 col-lg-3">
<label class="form-label">Date de fin</label> <label class="form-label">Date de fin</label>
<input type="date" class="form-control" formControlName="endingDate" <input type="date" [value]="referencement.endingDate | date:'yyyy-MM-dd'" class="form-control"
formControlName="endingDate"
(change)="onEndingDateChange($event)" (change)="onEndingDateChange($event)"
[ngClass]="{ 'is-invalid': submitted && form.endingDate.errors }"> [ngClass]="{ 'is-invalid': submitted && form.endingDate.errors }">
</div> </div>
@ -27,7 +29,8 @@
<select class="form-select" formControlName="referrerId" <select class="form-select" formControlName="referrerId"
[ngClass]="{ 'is-invalid': submitted && form.referrerId.errors }"> [ngClass]="{ 'is-invalid': submitted && form.referrerId.errors }">
<option value="" disabled selected>Choisissez le référent du référencement</option> <option value="" disabled selected>Choisissez le référent du référencement</option>
<option *ngFor="let collaborateur of collaborateurs" [ngValue]="collaborateur.id">{{collaborateur.name}} {{collaborateur.firstName}}</option> <option *ngFor="let collaborateur of collaborateurs"
[ngValue]="collaborateur.id">{{collaborateur.name}} {{collaborateur.firstName}}</option>
</select> </select>
<div *ngIf="submitted && form.referrerId.errors" class="invalid-feedback"> <div *ngIf="submitted && form.referrerId.errors" class="invalid-feedback">
<div *ngIf="form.referrerId.errors.required">Vous devez préciser le référent du référencement</div> <div *ngIf="form.referrerId.errors.required">Vous devez préciser le référent du référencement</div>
@ -39,7 +42,8 @@
<select class="form-select" formControlName="referredId" <select class="form-select" formControlName="referredId"
[ngClass]="{ 'is-invalid': submitted && form.referredId.errors }"> [ngClass]="{ 'is-invalid': submitted && form.referredId.errors }">
<option value="" disabled selected>Choisissez le référé du référencement</option> <option value="" disabled selected>Choisissez le référé du référencement</option>
<option *ngFor="let collaborateur of collaborateurs" [ngValue]="collaborateur.id">{{collaborateur.name}} {{collaborateur.firstName}}</option> <option *ngFor="let collaborateur of collaborateurs"
[ngValue]="collaborateur.id">{{collaborateur.name}} {{collaborateur.firstName}}</option>
</select> </select>
<div *ngIf="submitted && form.referredId.errors" class="invalid-feedback"> <div *ngIf="submitted && form.referredId.errors" class="invalid-feedback">
<div *ngIf="form.referredId.errors.required">Vous devez préciser le référent du référencement</div> <div *ngIf="form.referredId.errors.required">Vous devez préciser le référent du référencement</div>
@ -49,7 +53,7 @@
</div> </div>
<div> <div>
<button type="submit" (click)="onSubmit()">Sauvegarder les changements</button> <button type="submit">Sauvegarder les changements</button>
<button type="button" (click)="delete()">Supprimer le référencement</button> <button type="button" (click)="delete()">Supprimer le référencement</button>
<button type="reset" (click)="onReset()">Effacer</button> <button type="reset" (click)="onReset()">Effacer</button>
<button (click)="goBack()">Retour</button> <button (click)="goBack()">Retour</button>

@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {Collaborateur} from "../../../interfaces/collaborateur"; import {Collaborateur} from "../../../interfaces/collaborateur";
import {Referencement} from "../../../interfaces/referencement"; import {Referencement} from "../../../interfaces/referencement";
import {FormBuilder, FormGroup, Validators} from "@angular/forms"; import {FormBuilder, FormGroup, Validators} from "@angular/forms";
@ -18,17 +18,14 @@ import {take, tap} from "rxjs/operators";
}) })
export class ReferencementEditComponent implements OnInit { export class ReferencementEditComponent implements OnInit {
referencementObservable! : Observable<Referencement>; referencementObservable!: Observable<Referencement>;
id: number; id: number;
collaborateurs: Collaborateur[] = []; collaborateurs: Collaborateur[] = [];
collaborateur = {} as Collaborateur;
referencements: Referencement[] = [];
referencement = {} as Referencement; referencement = {} as Referencement;
errorValue: number = 0; errorValue: number = 0;
rDate: String = "";
bDate: String = "";
registerForm!: FormGroup; registerForm!: FormGroup;
submitted = false; submitted = false;
@ -45,7 +42,6 @@ export class ReferencementEditComponent implements OnInit {
async ngOnInit() { async ngOnInit() {
this.getCollaborateurs(); this.getCollaborateurs();
this.getReferencements();
this.registerForm = this.formBuilder.group({ this.registerForm = this.formBuilder.group({
referredId: ['', Validators.required], referredId: ['', Validators.required],
referrerId: ['', Validators.required], referrerId: ['', Validators.required],
@ -56,12 +52,6 @@ export class ReferencementEditComponent implements OnInit {
this.referencementObservable = this.referencementService.getReferencement(this.id).pipe(tap(ref => this.registerForm.patchValue(ref))) this.referencementObservable = this.referencementService.getReferencement(this.id).pipe(tap(ref => this.registerForm.patchValue(ref)))
this.referencement = await this.referencementObservable.pipe(take(1)).toPromise() this.referencement = await this.referencementObservable.pipe(take(1)).toPromise()
if (this.referencement.startingDate) {
this.rDate = new Date(this.referencement.startingDate).toISOString().split('T')[0];
}
if (this.referencement.endingDate) {
this.bDate = new Date(this.referencement.endingDate).toISOString().split('T')[0];
}
} }
getCollaborateurs(): void { getCollaborateurs(): void {
@ -69,22 +59,18 @@ export class ReferencementEditComponent implements OnInit {
.subscribe(collaborateurs => this.collaborateurs = collaborateurs); .subscribe(collaborateurs => this.collaborateurs = collaborateurs);
} }
getReferencements(): void {
this.referencementService.getReferencements()
.subscribe(referencement => this.referencements = referencement);
}
onSubmit() { onSubmit() {
this.submitted = true; this.submitted = true;
if (this.registerForm.invalid) { if (this.registerForm.invalid) {
return; return;
} }
this.referencement.referredId = this.registerForm.value.referredId this.referencement.referredId = this.registerForm.value.referredId
this.referencement.referrerId = this.registerForm.value.referrerId this.referencement.referrerId = this.registerForm.value.referrerId
this.referencement.startingDate = this.registerForm.value.startingDate this.referencement.startingDate = this.registerForm.value.startingDate
if(this.registerForm.value.endingDate != undefined){ if (this.registerForm.value.endingDate == undefined) {
this.referencement.referredId = this.registerForm.value.referredId this.referencement.endingDate = new Date()
} }
if (this.referencement) { if (this.referencement) {
@ -108,11 +94,11 @@ export class ReferencementEditComponent implements OnInit {
} }
onStartingDateChange($event: any): void { onStartingDateChange($event: any): void {
this.collaborateur.resignationDate = new Date($event.target.value); this.referencement.startingDate = new Date($event.target.value);
} }
onEndingDateChange($event: any): void { onEndingDateChange($event: any): void {
this.collaborateur.birthDate = new Date($event.target.value); this.referencement.endingDate = new Date($event.target.value);
} }
showSuccess() { showSuccess() {
@ -127,10 +113,10 @@ export class ReferencementEditComponent implements OnInit {
this.location.back(); this.location.back();
} }
delete():void { delete(): void {
if (this.referencement){ if (this.referencement) {
this.referencementService.deleteReferencement(this.referencement) this.referencementService.deleteReferencement(this.referencement)
.subscribe(()=>this.goBack()); .subscribe(() => this.goBack());
} }
} }

Loading…
Cancel
Save