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 :
+
+
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érent |
+ ID du référé |
+ Date de début |
+ Date 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);
}
}