From f3a986258b546554932021c460ae6ff70760b162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9rik=20BENOIST?= Date: Mon, 15 Jan 2024 00:23:43 +0100 Subject: [PATCH] feat: Order preparation and reception --- src/models/Order.ts | 77 ++++++++ src/pages/obi/order/details/[id].vue | 31 ++- src/pages/obi/order/list/index.vue | 14 +- .../pages/order/view/OrderTabGeneralH.vue | 10 + .../pages/order/view/OrderTabPreparationH.vue | 185 ++++++++++++++++++ .../pages/order/view/OrderTabReceptionH.vue | 164 ++++++++++++++++ themeConfig.ts | 2 +- 7 files changed, 470 insertions(+), 13 deletions(-) create mode 100644 src/views/pages/order/view/OrderTabPreparationH.vue create mode 100644 src/views/pages/order/view/OrderTabReceptionH.vue diff --git a/src/models/Order.ts b/src/models/Order.ts index 9bae701..68a431e 100644 --- a/src/models/Order.ts +++ b/src/models/Order.ts @@ -55,11 +55,88 @@ interface History { fdateCreation: Date } +export interface PreparationLines { + lineFulfillId: number + lineOrderId: number + prepIntId: number + orderId: string + requestId: number + transactionDate: Date + lineItemNo: number + itemId: string + lineItemOms: string + fulfillQty: number + validatedFulfillQty: number + fulfillmentSystemCd: string + fulfillmentLocationCd: string + status: string + numeroExpedition: string + seasonCode: string + finitionSpeciale: string + carrier: string + trackingCode: string + trackingUrl: string + fdateCreation: Date + fdateModification: Date + toOrlixConsumed: boolean + restockingCode: string +} + +export interface Preparation { + prepIntId: number + prepId: number + orderId: string + requestId: number + transactionDate: Date + fulfillmentSystemCd: string + fulfillmentLocationCd: string + status: string + datePreparation: Date + fdateCreation: Date + lines: PreparationLines[] +} + +export interface ReceptionLines { + lineIntransitId: number + intransitIntId: number + lineFulfillId: number + transactionDate: Date + lineItemNo: number + itemId: string + intransitQty: number + validatedIntransitQty: number + intransitSystemCd: string + intransitLocationCd: string + status: string + colisId: string + fdateCreation: Date + fdateReceipt: Date + orderLineShipWeight: number + trackingNumber: string +} + +export interface Reception { + intransitIntId: number + intransitId: string + prepIntId: number + orderId: string + requestId: number + status: string + transactionDate: Date + intransitSystemCd: string + intransitLocationCd: string + fdateReceipt: Date + fdateCreation: Date + lines: ReceptionLines[] +} + export interface Order { meta: meta common: Common lines: Lines[] history: History[] + preparations: Preparation[] + receptions: Reception[] } export interface OrderOms { diff --git a/src/pages/obi/order/details/[id].vue b/src/pages/obi/order/details/[id].vue index d504584..41ad0c2 100644 --- a/src/pages/obi/order/details/[id].vue +++ b/src/pages/obi/order/details/[id].vue @@ -2,6 +2,8 @@ import type { Order } from '@/models/Order' import OrderPanel from '@/views/pages/order/view/OrderPanel.vue' import OrderTabGeneral from '@/views/pages/order/view/OrderTabGeneralH.vue' +import OrderTabPreparation from '@/views/pages/order/view/OrderTabPreparationH.vue' +import OrderTabReception from '@/views/pages/order/view/OrderTabReceptionH.vue' const { t } = useI18n() @@ -31,6 +33,19 @@ const refreshData = async () => { } handleData() + +const resolveStatus = (status: string) => { + if (status === 'fulfilled') + return { text: status, color: 'success' } + else if (status === 'polled') + return { text: status, color: 'info' } + else if (status === 'intransit polled') + return { text: status, color: 'warning' } + else if (status === 'cancelled' || status === 'unfulfillable') + return { text: status, color: 'error' } + else + return { text: status, color: 'primary' } +}