From cb4686765b1abe1c1a2091646e9fb498b53f90fd Mon Sep 17 00:00:00 2001 From: sanchezvem Date: Sat, 20 Dec 2025 16:46:46 +0100 Subject: [PATCH] created function for create delivery note --- .../deliverery-note-form.ts | 4 +- .../deliverery-note-table.html | 26 ---------- .../deliverery-note-table.ts | 4 +- .../purchase-order-table.html | 2 +- .../purchase-order-table.ts | 51 +++++++++++++++++-- .../pages/delivery-note/delivery-note.html | 4 -- src/app/pages/delivery-note/delivery-note.ts | 2 - .../api/model/get-product-delivery-dto.ts | 4 +- 8 files changed, 54 insertions(+), 43 deletions(-) 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;