- | {{data.trackingNumber}} |
- {{data.deliverer}} |
- {{data.expeditionDate | date: 'dd/MM/yyyy'}} |
- {{data.estimateDeliveryDate | date: 'dd/MM/yyyy'}} |
- {{data.realDeliveryDate | date: 'dd/MM/yyyy'}} |
+ {{deliveryNote.trackingNumber}} |
+ {{deliveryNote.delivererTransporter}} |
+ {{deliveryNote.expeditionDate | date: 'dd/MM/yyyy'}} |
+ {{deliveryNote.estimateDeliveryDate | date: 'dd/MM/yyyy'}} |
+ {{deliveryNote.realDeliveryDate | date: 'dd/MM/yyyy'}} |
-
+
| Réference |
@@ -30,10 +33,10 @@
- @for (product of data.productDelivery; track product) {
+ @for (product of deliveryNote.products; track product.productId) {
- | {{product.product.reference}} |
- {{product.product.name}} |
+ {{product.productReference}} |
+ {{product.productName}} |
{{product.quantity}} |
}
@@ -49,11 +52,11 @@
-
+
-
+
diff --git a/src/app/components/deliverery-note-table/deliverery-note-table.ts b/src/app/components/deliverery-note-table/deliverery-note-table.ts
index 6a1df24..302c950 100644
--- a/src/app/components/deliverery-note-table/deliverery-note-table.ts
+++ b/src/app/components/deliverery-note-table/deliverery-note-table.ts
@@ -1,6 +1,4 @@
-import { Component } from '@angular/core';
-import {DeliveryNoteInfo} from "../../interfaces/delivery-note.interface";
-import {ProductTable} from "../product-table/product-table";
+import {Component, inject, OnInit, signal} from '@angular/core';
import {DatePipe} from "@angular/common";
import {ModalButton} from "../modal-button/modal-button";
import {ModalNav} from "../modal-nav/modal-nav";
@@ -8,6 +6,9 @@ import {NzDividerComponent} from "ng-zorro-antd/divider";
import {NzIconDirective} from "ng-zorro-antd/icon";
import {NzTableComponent} from "ng-zorro-antd/table";
import {DelivereryNoteForm} from "../deliverery-note-form/deliverery-note-form";
+import {DeliverynotesService, GetDeliveryNoteDto} from "../../services/api";
+import {NzNotificationService} from "ng-zorro-antd/notification";
+import {firstValueFrom} from "rxjs";
@Component({
selector: 'app-deliverery-note-table',
@@ -23,135 +24,48 @@ import {DelivereryNoteForm} from "../deliverery-note-form/deliverery-note-form";
templateUrl: './deliverery-note-table.html',
styleUrl: './deliverery-note-table.css',
})
-export class DelivereryNoteTable {
- deliveryNotes: DeliveryNoteInfo[] = [
- {
- trackingNumber: 'DLV-1000',
- deliverer: 'Transporteur 1',
- estimateDeliveryDate: new Date('2025-11-20'),
- expeditionDate: new Date('2025-11-15'),
- realDeliveryDate: new Date('2025-11-19'),
- productDelivery: [
- { product: ProductTable.listOfProducts[0], quantity: 5 },
- { product: ProductTable.listOfProducts[1], quantity: 3 },
- { product: ProductTable.listOfProducts[2], quantity: 7 },
- ],
- },
- {
- trackingNumber: 'DLV-1001',
- deliverer: 'Transporteur 1',
- estimateDeliveryDate: new Date('2025-11-22'),
- expeditionDate: new Date('2025-11-16'),
- realDeliveryDate: new Date('2025-11-21'),
- productDelivery: [
- { product: ProductTable.listOfProducts[3], quantity: 2 },
- { product: ProductTable.listOfProducts[4], quantity: 4 },
- { product: ProductTable.listOfProducts[5], quantity: 6 },
- ],
- },
- {
- trackingNumber: 'DLV-1002',
- deliverer: 'Transporteur 2',
- estimateDeliveryDate: new Date('2025-11-23'),
- expeditionDate: new Date('2025-11-17'),
- realDeliveryDate: new Date('2025-11-22'),
- productDelivery: [
- { product: ProductTable.listOfProducts[6], quantity: 3 },
- { product: ProductTable.listOfProducts[7], quantity: 8 },
- { product: ProductTable.listOfProducts[8], quantity: 5 },
- ],
- },
- {
- trackingNumber: 'DLV-1003',
- deliverer: 'Transporteur 2',
- estimateDeliveryDate: new Date('2025-11-24'),
- expeditionDate: new Date('2025-11-18'),
- realDeliveryDate: new Date('2025-11-23'),
- productDelivery: [
- { product: ProductTable.listOfProducts[9], quantity: 4 },
- { product: ProductTable.listOfProducts[10], quantity: 6 },
- { product: ProductTable.listOfProducts[11], quantity: 7 },
- ],
- },
- {
- trackingNumber: 'DLV-1004',
- deliverer: 'Transporteur 3',
- estimateDeliveryDate: new Date('2025-11-25'),
- expeditionDate: new Date('2025-11-19'),
- realDeliveryDate: new Date('2025-11-24'),
- productDelivery: [
- { product: ProductTable.listOfProducts[12], quantity: 2 },
- { product: ProductTable.listOfProducts[13], quantity: 5 },
- { product: ProductTable.listOfProducts[14], quantity: 6 },
- ],
- },
- {
- trackingNumber: 'DLV-1005',
- deliverer: 'Transporteur 3',
- estimateDeliveryDate: new Date('2025-11-26'),
- expeditionDate: new Date('2025-11-20'),
- realDeliveryDate: new Date('2025-11-25'),
- productDelivery: [
- { product: ProductTable.listOfProducts[15], quantity: 3 },
- { product: ProductTable.listOfProducts[16], quantity: 7 },
- { product: ProductTable.listOfProducts[17], quantity: 4 },
- ],
- },
- {
- trackingNumber: 'DLV-1006',
- deliverer: 'Transporteur 4',
- estimateDeliveryDate: new Date('2025-11-27'),
- expeditionDate: new Date('2025-11-21'),
- realDeliveryDate: new Date('2025-11-26'),
- productDelivery: [
- { product: ProductTable.listOfProducts[18], quantity: 5 },
- { product: ProductTable.listOfProducts[19], quantity: 6 },
- { product: ProductTable.listOfProducts[20], quantity: 7 },
- ],
- },
- {
- trackingNumber: 'DLV-1007',
- deliverer: 'Transporteur 4',
- estimateDeliveryDate: new Date('2025-11-28'),
- expeditionDate: new Date('2025-11-22'),
- realDeliveryDate: new Date('2025-11-27'),
- productDelivery: [
- { product: ProductTable.listOfProducts[21], quantity: 3 },
- { product: ProductTable.listOfProducts[22], quantity: 5 },
- { product: ProductTable.listOfProducts[23], quantity: 4 },
- ],
- },
- {
- trackingNumber: 'DLV-1008',
- deliverer: 'Transporteur 5',
- estimateDeliveryDate: new Date('2025-11-29'),
- expeditionDate: new Date('2025-11-23'),
- realDeliveryDate: new Date('2025-11-28'),
- productDelivery: [
- { product: ProductTable.listOfProducts[24], quantity: 6 },
- { product: ProductTable.listOfProducts[25], quantity: 7 },
- { product: ProductTable.listOfProducts[26], quantity: 3 },
- ],
- },
- {
- trackingNumber: 'DLV-1009',
- deliverer: 'Transporteur 5',
- estimateDeliveryDate: new Date('2025-11-30'),
- expeditionDate: new Date('2025-11-24'),
- realDeliveryDate: new Date('2025-11-29'),
- productDelivery: [
- { product: ProductTable.listOfProducts[27], quantity: 5 },
- { product: ProductTable.listOfProducts[28], quantity: 4 },
- { product: ProductTable.listOfProducts[29], quantity: 6 },
- ],
- },
- ];
+export class DelivereryNoteTable implements OnInit {
+ private DeliveryNotesService = inject(DeliverynotesService);
+ private notificationService = inject(NzNotificationService)
+ deliveryNotes = signal([]);
+ deliveryNotesLoading = signal(false);
- delete() {
- return
+ async ngOnInit() {
+ await this.fetchDeliveryNotes();
}
- export() {
+ async fetchDeliveryNotes() {
+ this.deliveryNotesLoading.set(true)
+
+ try {
+ const deliveryNotes = await firstValueFrom(this.DeliveryNotesService.getAllDeliveryNoteEndpoint())
+ this.deliveryNotes.set(deliveryNotes);
+ } catch (e) {
+ this.notificationService.error(
+ 'Erreur',
+ 'Erreur de communication avec l\'API'
+ )
+ }
+ this.deliveryNotesLoading.set(false)
+ }
+
+ async delete(deliveryNote:number) {
+ try {
+ await firstValueFrom(this.DeliveryNotesService.deleteDeliveryNoteEndpoint(deliveryNote));
+ this.notificationService.success(
+ 'Success',
+ 'Suppression effectuée'
+ )
+ } catch (e) {
+ this.notificationService.error(
+ 'Erreur',
+ 'Impossible de supprimer la ligne'
+ )
+ }
+ await this.fetchDeliveryNotes();
+ }
+
+ export(deliveryNote: number) {
return
}
}
diff --git a/src/app/components/user-table/user-table.ts b/src/app/components/user-table/user-table.ts
index 8a5c86f..82b0c8c 100644
--- a/src/app/components/user-table/user-table.ts
+++ b/src/app/components/user-table/user-table.ts
@@ -2,8 +2,6 @@ import {Component, inject, OnInit, signal, viewChild} from '@angular/core';
import {ModalNav} from "../modal-nav/modal-nav";
import {NzIconDirective} from "ng-zorro-antd/icon";
import {NzTableComponent} from "ng-zorro-antd/table";
-import {StockForm} from "../stock-form/stock-form";
-import {UserInfo} from "../../interfaces/user.interface";
import {ProfilForm} from "../profil-form/profil-form";
import {NzDividerComponent} from "ng-zorro-antd/divider";
import {GetUserDto, UsersService} from "../../services/api";
diff --git a/src/app/interfaces/deliverer.interface.ts b/src/app/interfaces/deliverer.interface.ts
deleted file mode 100644
index d5222fd..0000000
--- a/src/app/interfaces/deliverer.interface.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import {DeliveryNoteInfo} from "./delivery-note.interface";
-
-export interface DelivererInfo {
- transporter: string;
- deliveryNote: DeliveryNoteInfo[];
-}
\ No newline at end of file
diff --git a/src/app/interfaces/product-order.interface.ts b/src/app/interfaces/product-order.interface.ts
deleted file mode 100644
index 13bcf8c..0000000
--- a/src/app/interfaces/product-order.interface.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import {ProductInfo} from "./product.interface";
-
-export interface ProductOrderInfo {
- product: ProductInfo;
- quantity: number;
- price: number;
-}
\ No newline at end of file
diff --git a/src/app/interfaces/purchase-order.interface.ts b/src/app/interfaces/purchase-order.interface.ts
deleted file mode 100644
index bb9a995..0000000
--- a/src/app/interfaces/purchase-order.interface.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import {ProductOrderInfo} from "./product-order.interface";
-import {SupplierInfo} from "./supplier.interface";
-
-export interface PurchaseOrderInfo {
- purchaseCondition: string;
- productOrder: ProductOrderInfo[];
- supplier: SupplierInfo;
-}
\ No newline at end of file
diff --git a/src/app/interfaces/quotation.interface.ts b/src/app/interfaces/quotation.interface.ts
deleted file mode 100644
index 1d8c87e..0000000
--- a/src/app/interfaces/quotation.interface.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import {ProductOrderInfo} from "./product-order.interface";
-import {SupplierInfo} from "./supplier.interface";
-
-export interface QuotationInfo {
- saleCondition: string;
- message: string;
- productOrder: ProductOrderInfo[];
- supplier: SupplierInfo;
-}
\ No newline at end of file
diff --git a/src/app/interfaces/stock.interface.ts b/src/app/interfaces/stock.interface.ts
deleted file mode 100644
index 5d9439d..0000000
--- a/src/app/interfaces/stock.interface.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import {ProductInfo} from "./product.interface";
-
-export interface StockInfo {
- id: number;
- product: ProductInfo;
- quantity: number;
-}
\ No newline at end of file
diff --git a/src/app/interfaces/supplier.interface.ts b/src/app/interfaces/supplier.interface.ts
deleted file mode 100644
index 1949a51..0000000
--- a/src/app/interfaces/supplier.interface.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import {ProductInfo} from "./product.interface";
-
-export interface SupplierInfo {
- name: string;
- email: string;
- phone: string;
- address: string;
- zipCode: string;
- city: string;
- deliveryDelay: number;
- products: ProductInfo[];
-}
\ No newline at end of file
diff --git a/src/app/services/api/api/deliverynotes.service.ts b/src/app/services/api/api/deliverynotes.service.ts
index 8b73f81..a2d7d7b 100644
--- a/src/app/services/api/api/deliverynotes.service.ts
+++ b/src/app/services/api/api/deliverynotes.service.ts
@@ -103,6 +103,59 @@ export class DeliverynotesService extends BaseService {
);
}
+ /**
+ * @endpoint delete /API/deliveryNotes/{id}
+ * @param id
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
+ * @param reportProgress flag to report request and response progress.
+ */
+ public deleteDeliveryNoteEndpoint(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable;
+ public deleteDeliveryNoteEndpoint(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable>;
+ public deleteDeliveryNoteEndpoint(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable>;
+ public deleteDeliveryNoteEndpoint(id: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable {
+ if (id === null || id === undefined) {
+ throw new Error('Required parameter id was null or undefined when calling deleteDeliveryNoteEndpoint.');
+ }
+
+ let localVarHeaders = this.defaultHeaders;
+
+ const localVarHttpHeaderAcceptSelected: string | undefined = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept([
+ ]);
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
+ }
+
+ const localVarHttpContext: HttpContext = options?.context ?? new HttpContext();
+
+ const localVarTransferCache: boolean = options?.transferCache ?? true;
+
+
+ let responseType_: 'text' | 'json' | 'blob' = 'json';
+ if (localVarHttpHeaderAcceptSelected) {
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
+ responseType_ = 'text';
+ } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
+ responseType_ = 'json';
+ } else {
+ responseType_ = 'blob';
+ }
+ }
+
+ let localVarPath = `/API/deliveryNotes/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "number", dataFormat: "int32"})}`;
+ const { basePath, withCredentials } = this.configuration;
+ return this.httpClient.request('delete', `${basePath}${localVarPath}`,
+ {
+ context: localVarHttpContext,
+ responseType: responseType_,
+ ...(withCredentials ? { withCredentials } : {}),
+ headers: localVarHeaders,
+ observe: observe,
+ ...(localVarTransferCache !== undefined ? { transferCache: localVarTransferCache } : {}),
+ reportProgress: reportProgress
+ }
+ );
+ }
+
/**
* @endpoint get /API/deliveryNotes
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|