diff --git a/src/app/components/deliverery-note-form/deliverery-note-form.ts b/src/app/components/deliverery-note-form/deliverery-note-form.ts
index 9ee8ec5..06dd7a1 100644
--- a/src/app/components/deliverery-note-form/deliverery-note-form.ts
+++ b/src/app/components/deliverery-note-form/deliverery-note-form.ts
@@ -63,8 +63,8 @@ export class DelivereryNoteForm implements OnInit {
this.deliveryNoteForm.patchValue({
trackingNumber: this.deliveryNote().trackingNumber,
expeditionDate: this.deliveryNote().expeditionDate,
- realDeliveryDate: this.deliveryNote().expeditionDate,
- estimatedDate: this.deliveryNote().expeditionDate,
+ realDeliveryDate: this.deliveryNote().realDeliveryDate,
+ estimatedDate: this.deliveryNote().estimateDeliveryDate,
delivererId: this.deliveryNote().delivererId
});
}
diff --git a/src/app/components/deliverery-note-table/deliverery-note-table.html b/src/app/components/deliverery-note-table/deliverery-note-table.html
index c16ebd3..1189394 100644
--- a/src/app/components/deliverery-note-table/deliverery-note-table.html
+++ b/src/app/components/deliverery-note-table/deliverery-note-table.html
@@ -9,7 +9,6 @@
Date d'expédition |
Date de livraison estimée |
Date de livraison réelle |
- Produits |
Action |
@@ -21,31 +20,6 @@
{{deliveryNote.expeditionDate | date: 'dd/MM/yyyy'}} |
{{deliveryNote.estimateDeliveryDate | date: 'dd/MM/yyyy'}} |
{{deliveryNote.realDeliveryDate | date: 'dd/MM/yyyy'}} |
-
-
-
-
-
-
- | Réference |
- Nom |
- Quantité |
-
-
-
- @for (product of deliveryNote.products; track product.productId) {
-
- | {{product.productReference}} |
- {{product.productName}} |
- {{product.quantity}} |
-
- }
-
-
-
-
- |
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 4a31036..c717d0a 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,5 @@
import {Component, inject, OnInit, signal, viewChild} from '@angular/core';
import {DatePipe} from "@angular/common";
-import {ModalButton} from "../modal-button/modal-button";
import {ModalNav} from "../modal-nav/modal-nav";
import {NzDividerComponent} from "ng-zorro-antd/divider";
import {NzIconDirective} from "ng-zorro-antd/icon";
@@ -15,7 +14,6 @@ import {FileService} from "../../services/file.service";
@Component({
selector: 'app-deliverery-note-table',
imports: [
- ModalButton,
ModalNav,
NzDividerComponent,
NzIconDirective,
@@ -41,7 +39,7 @@ export class DelivereryNoteTable implements OnInit {
async fetchDeliveryNotes() {
this.deliveryNotesLoading.set(true)
try {
- const deliveryNotes = await firstValueFrom(this.deliveryNotesService.getAllDeliveryNoteEndpoint())
+ const deliveryNotes = await firstValueFrom(this.deliveryNotesService.getAllDeliveryNoteEndpoint());
this.deliveryNotes.set(deliveryNotes);
} catch (e) {
this.notificationService.error(
diff --git a/src/app/components/purchase-order-table/purchase-order-table.html b/src/app/components/purchase-order-table/purchase-order-table.html
index 97c9acd..49e5ff8 100644
--- a/src/app/components/purchase-order-table/purchase-order-table.html
+++ b/src/app/components/purchase-order-table/purchase-order-table.html
@@ -62,7 +62,7 @@
-
+
|
diff --git a/src/app/components/purchase-order-table/purchase-order-table.ts b/src/app/components/purchase-order-table/purchase-order-table.ts
index 49f4e3b..6210d50 100644
--- a/src/app/components/purchase-order-table/purchase-order-table.ts
+++ b/src/app/components/purchase-order-table/purchase-order-table.ts
@@ -6,6 +6,9 @@ import {NzTableComponent} from "ng-zorro-antd/table";
import {PurchaseOrderForm} from "../purchase-order-form/purchase-order-form";
import {ModalButton} from "../modal-button/modal-button";
import {
+ CreateDeliveryNoteDto,
+ DeliverynotesService,
+ GetDeliveryNoteDto, GetProductDeliveryDto,
GetPurchaseOrderDto,
GetPurchaseProductDto,
PurchaseordersService,
@@ -15,6 +18,7 @@ import {NzNotificationService} from "ng-zorro-antd/notification";
import {firstValueFrom} from "rxjs";
import {FileService} from "../../services/file.service";
import {QuantityForm} from "../quantity-form/quantity-form";
+import {PurchaseOrder} from "../../pages/purchase-order/purchase-order";
@Component({
selector: 'app-purchase-order-table',
@@ -34,7 +38,8 @@ export class PurchaseOrderTable implements OnInit {
private purchaseOrdersService = inject(PurchaseordersService);
private notificationService = inject(NzNotificationService);
private fileService = inject(FileService);
- private purchaseProductService = inject(PurchaseproductsService)
+ private purchaseProductService = inject(PurchaseproductsService);
+ private deliveryNoteService = inject(DeliverynotesService);
purchaseOrders = signal([]);
purchaseOrdersLoading = signal(false);
modal = viewChild.required('modalNav');
@@ -93,10 +98,50 @@ export class PurchaseOrderTable implements OnInit {
this.purchaseOrdersLoading.set(false)
}
- transfer() {
- return
+ async transfer(purchaseOrder: GetPurchaseOrderDto) {
+ this.purchaseOrdersLoading.set(true);
+ try {
+ const today = new Date();
+ const date = today.toISOString().split('T')[0]; // yyyy-mm-dd
+
+ const futureDate = new Date(today);
+ futureDate.setMonth(today.getMonth() + 2);
+ const yyyy = futureDate.getFullYear();
+ const mm = (futureDate.getMonth() + 1).toString().padStart(2, '0');
+ const dd = futureDate.getDate().toString().padStart(2, '0');
+ const estimateDate = `${yyyy}-${mm}-${dd}`;
+
+ let trackingValue = 'TRK-';
+ const idStr = purchaseOrder.id?.toString() ?? '';
+ if (idStr.length < 2) trackingValue += '00' + idStr + '-' + date;
+ else if (idStr.length < 3) trackingValue += '0' + idStr + '-' + date;
+ else trackingValue += idStr.substring(0, 3) + date.replace(/-/g, '');
+
+ const productQuantities: Record = {};
+ purchaseOrder.products?.forEach(p => {
+ if(p.productId != null && p.quantity != null) {
+ productQuantities[p.productId] = p.quantity;
+ }
+ });
+
+ const deliveryNoteDto: CreateDeliveryNoteDto = {
+ trackingNumber: trackingValue,
+ expeditionDate: date,
+ estimateDeliveryDate: estimateDate,
+ delivererId: 1,
+ productQuantities: productQuantities
+ };
+
+ await firstValueFrom(this.deliveryNoteService.createDeliveryNoteEndpoint(deliveryNoteDto));
+ this.notificationService.success('Succès', 'Bon de livraison créé avec succès');
+ } catch (e) {
+ console.error(e);
+ this.notificationService.error('Erreur', 'Erreur lors du transfert');
+ }
+ this.purchaseOrdersLoading.set(false);
}
+
async edit(id: number, updatePurchaseOrderComponent: PurchaseOrderForm) {
if (updatePurchaseOrderComponent.purchaseOrderForm.invalid) {
this.notificationService.error(
diff --git a/src/app/pages/delivery-note/delivery-note.html b/src/app/pages/delivery-note/delivery-note.html
index 1524126..ac33ecb 100644
--- a/src/app/pages/delivery-note/delivery-note.html
+++ b/src/app/pages/delivery-note/delivery-note.html
@@ -1,8 +1,4 @@
-
-
-
-
diff --git a/src/app/pages/delivery-note/delivery-note.ts b/src/app/pages/delivery-note/delivery-note.ts
index 2183f24..26e00a0 100644
--- a/src/app/pages/delivery-note/delivery-note.ts
+++ b/src/app/pages/delivery-note/delivery-note.ts
@@ -8,8 +8,6 @@ import {Search} from "../../components/search/search";
selector: 'app-delivery-note',
imports: [
DelivereryNoteTable,
- ModalButton,
- DelivereryNoteForm,
Search
],
templateUrl: './delivery-note.html',
diff --git a/src/app/services/api/model/get-product-delivery-dto.ts b/src/app/services/api/model/get-product-delivery-dto.ts
index 5363cef..3bcbb83 100644
--- a/src/app/services/api/model/get-product-delivery-dto.ts
+++ b/src/app/services/api/model/get-product-delivery-dto.ts
@@ -11,11 +11,11 @@
export interface GetProductDeliveryDto {
productId?: number;
- productReference?: number;
+ productReference?: string | null;
productName?: string | null;
productDuration?: number;
productCaliber?: number;
- productApprovalNumber?: number;
+ productApprovalNumber?: string | null;
productWeight?: number;
productNec?: number;
productImage?: string | null;