From 248ccc2e0cdf3920ef92b36a4da8d7e4192e4935 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Thu, 30 Jun 2022 11:25:32 +0200 Subject: [PATCH] =?UTF-8?q?r=C3=A9f=C3=A9rencement=20liste=20et=20edit=20O?= =?UTF-8?q?K?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../referencement-edit.component.html | 58 +++++++- .../referencement-edit.component.ts | 126 +++++++++++++++++- .../referencement.component.html | 36 ++++- .../referencement/referencement.component.ts | 18 ++- 4 files changed, 233 insertions(+), 5 deletions(-) diff --git a/src/app/components/referencement/referencement-edit/referencement-edit.component.html b/src/app/components/referencement/referencement-edit/referencement-edit.component.html index dbdcefe..d753bc2 100644 --- a/src/app/components/referencement/referencement-edit/referencement-edit.component.html +++ b/src/app/components/referencement/referencement-edit/referencement-edit.component.html @@ -1 +1,57 @@ -

referencement-edit works!

+

Ajouter un collaborateur :

+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ + +
+
Vous devez préciser le référent du référencement
+
+
+ +
+ + +
+
Vous devez préciser le référent du référencement
+
+
+ +
+ +
+ + + + +
+
diff --git a/src/app/components/referencement/referencement-edit/referencement-edit.component.ts b/src/app/components/referencement/referencement-edit/referencement-edit.component.ts index fcf6222..73ecc39 100644 --- a/src/app/components/referencement/referencement-edit/referencement-edit.component.ts +++ b/src/app/components/referencement/referencement-edit/referencement-edit.component.ts @@ -1,4 +1,15 @@ import { Component, OnInit } from '@angular/core'; +import {Collaborateur} from "../../../interfaces/collaborateur"; +import {Referencement} from "../../../interfaces/referencement"; +import {FormBuilder, FormGroup, Validators} from "@angular/forms"; +import {HttpClient} from "@angular/common/http"; +import {ReferencementService} from "../../../services/referencement.service"; +import {CollaborateurService} from "../../../services/collaborateur.service"; +import {ToastrService} from "ngx-toastr"; +import {Location} from "@angular/common"; +import {ActivatedRoute} from "@angular/router"; +import {Observable} from "rxjs"; +import {take, tap} from "rxjs/operators"; @Component({ selector: 'app-referencement-edit', @@ -7,9 +18,120 @@ import { Component, OnInit } from '@angular/core'; }) export class ReferencementEditComponent implements OnInit { - constructor() { } + referencementObservable! : Observable; + id: number; - ngOnInit(): void { + collaborateurs: Collaborateur[] = []; + collaborateur = {} as Collaborateur; + referencements: Referencement[] = []; + referencement = {} as Referencement; + + errorValue: number = 0; + rDate: String = ""; + bDate: String = ""; + + registerForm!: FormGroup; + submitted = false; + + constructor(private http: HttpClient, + private referencementService: ReferencementService, + private collaborateurService: CollaborateurService, + private formBuilder: FormBuilder, + private location: Location, + private route: ActivatedRoute, + private toastr: ToastrService) { + this.id = Number(this.route.snapshot.paramMap.get('id')) + } + + async ngOnInit() { + this.getCollaborateurs(); + this.getReferencements(); + this.registerForm = this.formBuilder.group({ + referredId: ['', Validators.required], + referrerId: ['', Validators.required], + startingDate: ['', Validators.required], + endingDate: [], + }); + + this.referencementObservable = this.referencementService.getReferencement(this.id).pipe(tap(ref => this.registerForm.patchValue(ref))) + 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 { + this.collaborateurService.getCollaborateurs() + .subscribe(collaborateurs => this.collaborateurs = collaborateurs); + } + + getReferencements(): void { + this.referencementService.getReferencements() + .subscribe(referencement => this.referencements = referencement); + } + + onSubmit() { + this.submitted = true; + if (this.registerForm.invalid) { + return; + } + this.referencement.referredId = this.registerForm.value.referredId + this.referencement.referrerId = this.registerForm.value.referrerId + this.referencement.startingDate = this.registerForm.value.startingDate + + if(this.registerForm.value.endingDate != undefined){ + this.referencement.referredId = this.registerForm.value.referredId + } + + if (this.referencement) { + this.referencementService.updateReferencement(this.referencement).subscribe(() => { + this.showSuccess(); + }, + () => { + this.showError() + }) + + } + } + + get form() { + return this.registerForm.controls; + } + + onReset() { + this.submitted = false; + this.registerForm.reset(); + } + + onStartingDateChange($event: any): void { + this.collaborateur.resignationDate = new Date($event.target.value); + } + + onEndingDateChange($event: any): void { + this.collaborateur.birthDate = new Date($event.target.value); + } + + showSuccess() { + this.toastr.success('Modification réussie', 'Référencement'); + } + + showError() { + this.toastr.error('Modification échouée', 'Référencement'); + } + + goBack(): void { + this.location.back(); + } + + delete():void { + if (this.referencement){ + this.referencementService.deleteReferencement(this.referencement) + .subscribe(()=>this.goBack()); + } } } diff --git a/src/app/components/referencement/referencement.component.html b/src/app/components/referencement/referencement.component.html index be015e7..e99fd38 100644 --- a/src/app/components/referencement/referencement.component.html +++ b/src/app/components/referencement/referencement.component.html @@ -1 +1,35 @@ -

referencement works!

+
+ +

Référencements

+ +
+

Pour ajouter un nouveau référencement, cliquez ici :

+ +
+ + +
+ + + + + + + + + + + + + + + + + + + +
Id du référentID du référéDate de débutDate de fin
{{referencement.referrerId}} {{referencement.referredId}} {{referencement.startingDate}} {{referencement.endingDate}} Modifier
+
+ + +
diff --git a/src/app/components/referencement/referencement.component.ts b/src/app/components/referencement/referencement.component.ts index 7c4acfd..682efa0 100644 --- a/src/app/components/referencement/referencement.component.ts +++ b/src/app/components/referencement/referencement.component.ts @@ -1,4 +1,7 @@ import { Component, OnInit } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {ReferencementService} from "../../services/referencement.service"; +import {Referencement} from "../../interfaces/referencement"; @Component({ selector: 'app-referencement', @@ -7,9 +10,22 @@ import { Component, OnInit } from '@angular/core'; }) export class ReferencementComponent implements OnInit { - constructor() { } + referencements: Referencement[] = []; + + constructor( + private http: HttpClient, + private referencementService: ReferencementService, + ) { + } ngOnInit(): void { + this.getReferencements(); + + } + + getReferencements(): void { + this.referencementService.getReferencements() + .subscribe(referencements => this.referencements = referencements); } }