@bjsdistribution/dms-client-return 0.1.21-dev → 0.1.21-prod
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/date-picker/header/ClearDate.d.ts +1 -1
- package/dist/components/client-portal/ReturnRTFilters.d.ts +3 -0
- package/dist/components/order-daily-overview/header/route-header/ClientRouterHeader.d.ts +11 -0
- package/dist/components/order-daily-overview/table-view/TableStyle.d.ts +4 -4
- package/dist/components/order-view/types.d.ts +6 -0
- package/dist/components/order-view/utils.d.ts +8 -2
- package/dist/components/order-view/view-reminder/ViewReminder.d.ts +0 -2
- package/dist/components/store.d.ts +1 -1
- package/dist/dms-client-return.cjs.development.js +2962 -3216
- package/dist/dms-client-return.cjs.development.js.map +1 -1
- package/dist/dms-client-return.cjs.production.min.js +1 -1
- package/dist/dms-client-return.cjs.production.min.js.map +1 -1
- package/dist/dms-client-return.esm.js +2999 -3253
- package/dist/dms-client-return.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/client-portal/DateFilterStore.ts +45 -0
- package/src/components/client-portal/OutstandingTable.tsx +3 -2
- package/src/components/client-portal/ReturnAfterSearchBar.tsx +2 -1
- package/src/components/client-portal/ReturnOverview.tsx +11 -2
- package/src/components/client-portal/ReturnRTFilters.tsx +140 -41
- package/src/components/client-portal/ReturnSearchBar.tsx +3 -3
- package/src/components/client-portal/ReturnStatus.tsx +4 -2
- package/src/components/client-portal/return-confirm/ReturnConfirmedTable.tsx +1 -1
- package/src/components/order-daily-overview/header/route-header/ClientRouterHeader.tsx +166 -0
- package/src/components/order-daily-overview/header/route-header/RouterHeader.tsx +1 -78
- package/src/components/order-daily-overview/header-filters/SelectionFilter.tsx +5 -2
- package/src/components/order-daily-overview/index.tsx +3 -3
- package/src/components/order-view/order-actions/actions/confirm-order/index.tsx +0 -29
- package/src/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.tsx +35 -20
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.tsx +11 -62
- package/src/components/order-view/order-actions/index.tsx +1 -5
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactHome.tsx +102 -45
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactMobile.tsx +93 -34
- package/src/components/order-view/order-details/expanded-content/customer-section/contact-info/ContactWork.tsx +88 -31
- package/src/components/order-view/order-details/expanded-content/footer/index.tsx +52 -83
- package/src/components/order-view/order-details/expanded-content/services-section/AssemblyType.tsx +9 -91
- package/src/components/order-view/order-details/expanded-content/services-section/OrderServices.tsx +10 -182
- package/src/components/order-view/store.ts +6 -0
- package/src/components/order-view/types.ts +6 -0
- package/src/components/order-view/utils.ts +12 -33
- package/src/components/order-view/view-reminder/ViewReminder.tsx +0 -2
- package/src/components/store.ts +1 -1
- package/src/index.tsx +17 -2
- package/dist/components/order-view/order-actions/actions/log-service-refusal/DeliveryPoint.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/log-service-refusal/Notes.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/log-service-refusal/OrderServices.d.ts +0 -7
- package/dist/components/order-view/order-actions/actions/log-service-refusal/helper.d.ts +0 -3
- package/dist/components/order-view/order-actions/actions/log-service-refusal/index.d.ts +0 -3
- package/src/components/order-view/order-actions/actions/log-service-refusal/DeliveryPoint.tsx +0 -50
- package/src/components/order-view/order-actions/actions/log-service-refusal/Notes.tsx +0 -50
- package/src/components/order-view/order-actions/actions/log-service-refusal/OrderServices.tsx +0 -57
- package/src/components/order-view/order-actions/actions/log-service-refusal/helper.ts +0 -26
- package/src/components/order-view/order-actions/actions/log-service-refusal/index.tsx +0 -130
package/src/components/order-view/order-details/expanded-content/services-section/OrderServices.tsx
CHANGED
|
@@ -4,16 +4,12 @@ import ServiceSlider from '../../../../../common/services-slider/ServiceSlider';
|
|
|
4
4
|
import {
|
|
5
5
|
useOrderDetails,
|
|
6
6
|
useOrderStaticData,
|
|
7
|
-
usePrevOrderDetails,
|
|
8
7
|
} from '../../../store';
|
|
9
|
-
import {
|
|
8
|
+
import { OrdersType } from '../../../types';
|
|
10
9
|
|
|
11
10
|
function OrderServices() {
|
|
12
11
|
const [orderStaticData] = useOrderStaticData();
|
|
13
12
|
const [orderDetails, setOrderDetails] = useOrderDetails();
|
|
14
|
-
const [prevOrderDetails] = usePrevOrderDetails();
|
|
15
|
-
const orderServices = orderDetails?.order_services;
|
|
16
|
-
const prevOrderServices = prevOrderDetails?.order_services;
|
|
17
13
|
|
|
18
14
|
const orderServicesOptions = orderStaticData?.order_service_list;
|
|
19
15
|
|
|
@@ -30,190 +26,22 @@ function OrderServices() {
|
|
|
30
26
|
});
|
|
31
27
|
|
|
32
28
|
const toggleServices = (id: number) => {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
(s: OrderServiceType) => s?.order_service_list_id === id
|
|
29
|
+
const selectedService = orderServicesOptions?.find(
|
|
30
|
+
(item: any) => item.id === id
|
|
36
31
|
);
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
const assemblyTypeService = clone?.find(
|
|
45
|
-
(x: any) => x?.order_service_list_id === assembleOrderService?.id
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
const disassemblyTypeService = clone?.find(
|
|
49
|
-
(x: any) => x?.order_service_list_id === disassembleOrderService?.id
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
if (selectedService !== undefined) {
|
|
53
|
-
const isAssembleService =
|
|
54
|
-
assembleOrderService?.id === selectedService?.order_service_list_id;
|
|
55
|
-
|
|
56
|
-
const isDisassembleService =
|
|
57
|
-
disassembleOrderService?.id === selectedService?.order_service_list_id;
|
|
58
|
-
|
|
59
|
-
if (selectedService.new_id) {
|
|
60
|
-
const updatedOrderServices = clone.filter(
|
|
61
|
-
(service: OrderServiceType) => service.id !== selectedService.id
|
|
62
|
-
);
|
|
63
|
-
const newData = {
|
|
64
|
-
...orderDetails,
|
|
65
|
-
order_services: updatedOrderServices,
|
|
66
|
-
};
|
|
67
|
-
setOrderDetails(newData);
|
|
68
|
-
} else {
|
|
69
|
-
let updatedSelectedService = {
|
|
70
|
-
...selectedService,
|
|
71
|
-
is_deleted: !selectedService.is_deleted,
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
let updatedOrderServices = [];
|
|
75
|
-
let newUpdatedOrderServices: any = [];
|
|
76
|
-
|
|
77
|
-
updatedOrderServices = clone.filter(
|
|
78
|
-
(service: OrderServiceType) => service.id !== selectedService.id
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
updatedOrderServices.push(updatedSelectedService);
|
|
82
|
-
if (
|
|
83
|
-
(isAssembleService &&
|
|
84
|
-
updatedSelectedService?.is_deleted === true &&
|
|
85
|
-
(disassemblyTypeService?.is_deleted === true ||
|
|
86
|
-
disassemblyTypeService === undefined ||
|
|
87
|
-
disassemblyTypeService === null)) ||
|
|
88
|
-
(isDisassembleService &&
|
|
89
|
-
updatedSelectedService?.is_deleted === true &&
|
|
90
|
-
(assemblyTypeService?.is_deleted === true ||
|
|
91
|
-
assemblyTypeService === undefined ||
|
|
92
|
-
assemblyTypeService === null))
|
|
93
|
-
) {
|
|
94
|
-
const prevSelectedService = prevOrderServices?.find(
|
|
95
|
-
(s: OrderServiceType) => s?.order_service_list_id === id
|
|
96
|
-
);
|
|
97
|
-
updatedSelectedService = {
|
|
98
|
-
...selectedService,
|
|
99
|
-
is_deleted: true,
|
|
100
|
-
service_category_id: prevSelectedService?.service_category_id,
|
|
101
|
-
};
|
|
102
|
-
updatedOrderServices = clone.filter(
|
|
103
|
-
(service: OrderServiceType) => service.id !== selectedService.id
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
updatedOrderServices.push(updatedSelectedService);
|
|
107
|
-
// new cases
|
|
108
|
-
if (
|
|
109
|
-
isAssembleService &&
|
|
110
|
-
disassemblyTypeService?.is_deleted === true &&
|
|
111
|
-
disassemblyTypeService !== undefined &&
|
|
112
|
-
disassemblyTypeService !== null
|
|
113
|
-
) {
|
|
114
|
-
const newUpdatedSelectedService = {
|
|
115
|
-
...disassemblyTypeService,
|
|
116
|
-
is_deleted: true,
|
|
117
|
-
service_category_id: prevSelectedService?.service_category_id,
|
|
118
|
-
};
|
|
119
|
-
newUpdatedOrderServices = updatedOrderServices?.filter(
|
|
120
|
-
(service: OrderServiceType) =>
|
|
121
|
-
service.id !== disassemblyTypeService.id
|
|
122
|
-
);
|
|
123
|
-
newUpdatedOrderServices?.push(newUpdatedSelectedService);
|
|
124
|
-
}
|
|
125
|
-
// new cases
|
|
126
|
-
if (
|
|
127
|
-
isDisassembleService &&
|
|
128
|
-
assemblyTypeService?.is_deleted === true &&
|
|
129
|
-
assemblyTypeService !== undefined &&
|
|
130
|
-
assemblyTypeService !== null
|
|
131
|
-
) {
|
|
132
|
-
const newUpdatedSelectedService = {
|
|
133
|
-
...assemblyTypeService,
|
|
134
|
-
is_deleted: true,
|
|
135
|
-
service_category_id: prevSelectedService?.service_category_id,
|
|
136
|
-
};
|
|
137
|
-
newUpdatedOrderServices = updatedOrderServices?.filter(
|
|
138
|
-
(service: OrderServiceType) =>
|
|
139
|
-
service.id !== assemblyTypeService.id
|
|
140
|
-
);
|
|
141
|
-
newUpdatedOrderServices?.push(newUpdatedSelectedService);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
const newData = {
|
|
146
|
-
...orderDetails,
|
|
147
|
-
order_services:
|
|
148
|
-
newUpdatedOrderServices.length > 0
|
|
149
|
-
? newUpdatedOrderServices
|
|
150
|
-
: updatedOrderServices,
|
|
151
|
-
};
|
|
152
|
-
setOrderDetails(newData);
|
|
153
|
-
}
|
|
154
|
-
} else {
|
|
155
|
-
// service not exist case
|
|
156
|
-
// if not matched then treat it as an new service
|
|
157
|
-
let largestId: number;
|
|
158
|
-
if (clone === undefined || clone.length === 0) {
|
|
159
|
-
largestId = 0;
|
|
160
|
-
} else {
|
|
161
|
-
largestId = Math.max(
|
|
162
|
-
...clone?.map((o: OrderServiceType) => +o?.order_service_list_id!)
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
let service: OrderServiceType = {};
|
|
167
|
-
// Normal service addition
|
|
168
|
-
service = {
|
|
169
|
-
is_deleted: false,
|
|
170
|
-
order_service_list_id: id,
|
|
171
|
-
new_id:
|
|
172
|
-
largestId !== undefined && largestId !== null ? largestId + 1 : 1,
|
|
173
|
-
id: largestId !== undefined && largestId !== null ? largestId + 1 : 1,
|
|
174
|
-
};
|
|
175
|
-
// special case if assembly already exist and we are adding disassemble service and vice-versa
|
|
176
|
-
if (
|
|
177
|
-
assemblyTypeService?.is_deleted === false &&
|
|
178
|
-
disassembleOrderService?.id === id
|
|
179
|
-
) {
|
|
180
|
-
service = {
|
|
181
|
-
is_deleted: false,
|
|
182
|
-
order_service_list_id: id,
|
|
183
|
-
new_id:
|
|
184
|
-
largestId !== undefined && largestId !== null ? largestId + 1 : 1,
|
|
185
|
-
id: largestId !== undefined && largestId !== null ? largestId + 1 : 1,
|
|
186
|
-
service_category_id: assemblyTypeService?.service_category_id,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
if (
|
|
191
|
-
disassemblyTypeService?.is_deleted === false &&
|
|
192
|
-
assembleOrderService?.id === id
|
|
193
|
-
) {
|
|
194
|
-
service = {
|
|
195
|
-
is_deleted: false,
|
|
196
|
-
order_service_list_id: id,
|
|
197
|
-
new_id:
|
|
198
|
-
largestId !== undefined && largestId !== null ? largestId + 1 : 1,
|
|
199
|
-
id: largestId !== undefined && largestId !== null ? largestId + 1 : 1,
|
|
200
|
-
service_category_id: disassemblyTypeService?.service_category_id,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
clone.push(service);
|
|
204
|
-
const newData = { ...orderDetails, order_services: clone };
|
|
205
|
-
setOrderDetails(newData);
|
|
206
|
-
}
|
|
32
|
+
const key = selectedService?.type;
|
|
33
|
+
const value = !orderDetails[key as keyof OrdersType];
|
|
34
|
+
setOrderDetails(prev => ({
|
|
35
|
+
...prev,
|
|
36
|
+
[key]: value,
|
|
37
|
+
}));
|
|
207
38
|
};
|
|
208
39
|
const isDisabled = true;
|
|
209
40
|
|
|
210
41
|
return (
|
|
211
42
|
<Container disabled={isDisabled}>
|
|
212
43
|
{sortedServices?.map((service: any) => {
|
|
213
|
-
const selected =
|
|
214
|
-
(s: OrderServiceType) =>
|
|
215
|
-
s?.order_service_list_id === service?.id && s.is_deleted === false
|
|
216
|
-
);
|
|
44
|
+
const selected = orderDetails[service?.type as keyof OrdersType];
|
|
217
45
|
return (
|
|
218
46
|
<ServiceSlider
|
|
219
47
|
serviceName={service?.type?.replaceAll('_', ' ')}
|
|
@@ -113,6 +113,12 @@ export const ordersInitialValue: OrdersType = {
|
|
|
113
113
|
order_type: {
|
|
114
114
|
type: null,
|
|
115
115
|
},
|
|
116
|
+
assemble: false,
|
|
117
|
+
disassemble: false,
|
|
118
|
+
unpack_items: false,
|
|
119
|
+
take_packaging_away: false,
|
|
120
|
+
collect_disposal: false,
|
|
121
|
+
assembly_type: null,
|
|
116
122
|
};
|
|
117
123
|
|
|
118
124
|
export const orderProductInitialvalue: CreateProduct = {
|
|
@@ -174,6 +174,12 @@ export interface OrdersType {
|
|
|
174
174
|
postcode: any;
|
|
175
175
|
carrier_id: number | null;
|
|
176
176
|
order_type: orderType;
|
|
177
|
+
assemble: boolean;
|
|
178
|
+
disassemble: boolean;
|
|
179
|
+
unpack_items: boolean;
|
|
180
|
+
take_packaging_away: boolean;
|
|
181
|
+
collect_disposal: boolean;
|
|
182
|
+
assembly_type: string | null;
|
|
177
183
|
}
|
|
178
184
|
|
|
179
185
|
export type DeleteProds = {
|
|
@@ -2,7 +2,6 @@ import {
|
|
|
2
2
|
OrderRecipientType,
|
|
3
3
|
OrderRouteType,
|
|
4
4
|
OrderServicesDetailType,
|
|
5
|
-
OrderServiceType,
|
|
6
5
|
OrdersType,
|
|
7
6
|
} from './types';
|
|
8
7
|
|
|
@@ -146,6 +145,18 @@ export const getCookie = (name: string): string | null => {
|
|
|
146
145
|
};
|
|
147
146
|
|
|
148
147
|
export const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
|
|
148
|
+
// Allow common shortcuts like Ctrl+V, Ctrl+C, Ctrl+A, etc.
|
|
149
|
+
if (e.ctrlKey || e.metaKey) {
|
|
150
|
+
if (
|
|
151
|
+
e.key.toLowerCase() === 'v' || // Paste
|
|
152
|
+
e.key.toLowerCase() === 'c' || // Copy
|
|
153
|
+
e.key.toLowerCase() === 'x' || // Cut
|
|
154
|
+
e.key.toLowerCase() === 'a' // Select All
|
|
155
|
+
) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
149
160
|
// Allowed keys: numbers (0-9), '.', '-', '+'
|
|
150
161
|
const allowedKeys = [
|
|
151
162
|
'0',
|
|
@@ -277,14 +288,12 @@ export const compareOrderDetailsStates = (
|
|
|
277
288
|
order_recipient: oldOrderRecipient,
|
|
278
289
|
order_routes: oldOrderRoutes,
|
|
279
290
|
order_services_detail: oldOrderServicesDetail,
|
|
280
|
-
order_services: oldOrderServices,
|
|
281
291
|
...oldRequiredData
|
|
282
292
|
} = oldData;
|
|
283
293
|
const {
|
|
284
294
|
order_recipient: newOrderRecipient,
|
|
285
295
|
order_routes: newOrderRoutes,
|
|
286
296
|
order_services_detail: newOrderServicesDetail,
|
|
287
|
-
order_services: newOrderServices,
|
|
288
297
|
...newRequiredData
|
|
289
298
|
} = newData;
|
|
290
299
|
|
|
@@ -307,33 +316,6 @@ export const compareOrderDetailsStates = (
|
|
|
307
316
|
newOrderServicesDetail
|
|
308
317
|
);
|
|
309
318
|
|
|
310
|
-
// need to remove id and new_id from new order_services
|
|
311
|
-
const filteredNewOrderServices = newOrderServices?.map((item: any) => {
|
|
312
|
-
if (item.new_id) {
|
|
313
|
-
const { id, new_id, ...newItem } = item;
|
|
314
|
-
return newItem;
|
|
315
|
-
} else {
|
|
316
|
-
return item;
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
|
|
320
|
-
const newOrderServicesWithoutId = filteredNewOrderServices.filter(
|
|
321
|
-
(service: OrderServiceType) => !service.id
|
|
322
|
-
);
|
|
323
|
-
const newOrderServicesWithId = filteredNewOrderServices.filter(
|
|
324
|
-
(service: OrderServiceType) => service.id
|
|
325
|
-
);
|
|
326
|
-
|
|
327
|
-
const payloadOrderServices: OrderServiceType[] = compareArrays(
|
|
328
|
-
oldOrderServices,
|
|
329
|
-
newOrderServicesWithId
|
|
330
|
-
);
|
|
331
|
-
|
|
332
|
-
const finalPayloadOrderServices = [
|
|
333
|
-
...payloadOrderServices,
|
|
334
|
-
...newOrderServicesWithoutId,
|
|
335
|
-
];
|
|
336
|
-
|
|
337
319
|
const finalPayload = {
|
|
338
320
|
...payloadWithId,
|
|
339
321
|
...(!isObjectEmpty(payloadOrderRecipient) && {
|
|
@@ -345,9 +327,6 @@ export const compareOrderDetailsStates = (
|
|
|
345
327
|
...(!isObjectEmpty(payloadOrderServicesDetail) && {
|
|
346
328
|
order_services_detail: payloadOrderServicesDetail,
|
|
347
329
|
}),
|
|
348
|
-
...(finalPayloadOrderServices.length > 0 && {
|
|
349
|
-
order_services: finalPayloadOrderServices,
|
|
350
|
-
}),
|
|
351
330
|
};
|
|
352
331
|
|
|
353
332
|
return finalPayload;
|
package/src/components/store.ts
CHANGED
|
@@ -263,7 +263,7 @@ export function useNewReturnOrderData() {
|
|
|
263
263
|
return useAtom(newReturnOrderData);
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
-
const isClientPortalAtom = atom<boolean>(
|
|
266
|
+
const isClientPortalAtom = atom<boolean | undefined>(undefined);
|
|
267
267
|
function useClientPortal() {
|
|
268
268
|
return useAtom(isClientPortalAtom);
|
|
269
269
|
}
|
package/src/index.tsx
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import React, { Suspense, useEffect } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Navigate,
|
|
4
|
+
Route,
|
|
5
|
+
Routes,
|
|
6
|
+
useLocation,
|
|
7
|
+
useSearchParams,
|
|
8
|
+
} from 'react-router-dom';
|
|
3
9
|
import ReturnTable from './components/order-daily-overview/return-order-table/ReturnTable';
|
|
4
10
|
import ReturnAfterTable from './components/order-daily-overview/return-after-table/ReturnAfterTable';
|
|
5
11
|
import {
|
|
@@ -28,6 +34,7 @@ import OrderViewQueryHandler from './OrderViewQueryHandler';
|
|
|
28
34
|
import OrderView from './components/order-view';
|
|
29
35
|
import ReturnOverview from './components/client-portal/ReturnOverview';
|
|
30
36
|
import RouterHeader from './components/order-daily-overview/header/route-header/RouterHeader';
|
|
37
|
+
import ClientRouterHeader from './components/order-daily-overview/header/route-header/ClientRouterHeader';
|
|
31
38
|
function ReturnClient() {
|
|
32
39
|
notification.config({
|
|
33
40
|
top: 80,
|
|
@@ -46,7 +53,7 @@ function ReturnClient() {
|
|
|
46
53
|
const [, setVisibilityData] = useVisibilityData();
|
|
47
54
|
const [, setOrderStaticData] = useOrderStaticData();
|
|
48
55
|
const [clientPortal, setClientPortal] = useClientPortal();
|
|
49
|
-
|
|
56
|
+
const location = useLocation();
|
|
50
57
|
const userType = JSON.parse(localStorage.getItem('user_type')!);
|
|
51
58
|
|
|
52
59
|
useEffect(() => {
|
|
@@ -117,14 +124,22 @@ function ReturnClient() {
|
|
|
117
124
|
}
|
|
118
125
|
}, [locationloading]);
|
|
119
126
|
|
|
127
|
+
const pathname = location.pathname;
|
|
128
|
+
const isViewPath = /^\/return\/view\/\d+$/.test(pathname);
|
|
129
|
+
|
|
120
130
|
return (
|
|
121
131
|
<>
|
|
132
|
+
{clientPortal && isViewPath && <ClientRouterHeader />}{' '}
|
|
122
133
|
{!clientPortal && <RouterHeader />}
|
|
123
134
|
<Suspense fallback={<LoadingMessage />}>
|
|
124
135
|
{clientPortal ? (
|
|
125
136
|
<Routes>
|
|
126
137
|
<Route path="" element={<Navigate to={'outstanding_return'} />} />
|
|
127
138
|
<Route path=":status" element={<ReturnOverview />} />
|
|
139
|
+
<Route
|
|
140
|
+
path="view/:id"
|
|
141
|
+
element={<OrderView locationloading={locationloading} />}
|
|
142
|
+
/>
|
|
128
143
|
</Routes>
|
|
129
144
|
) : (
|
|
130
145
|
<Routes>
|
package/src/components/order-view/order-actions/actions/log-service-refusal/DeliveryPoint.tsx
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import RadioButtonGroup from '../../../../../common/radio-group/RadioButtonGroup';
|
|
4
|
-
import { StandardOptionsType } from '@bjsdistribution/dms-component-library';
|
|
5
|
-
|
|
6
|
-
interface IProps {
|
|
7
|
-
refusedDelPointService: any;
|
|
8
|
-
setRefusedDelPointService: React.Dispatch<React.SetStateAction<any>>;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
const deliveryPoints: StandardOptionsType[] = [
|
|
12
|
-
{
|
|
13
|
-
label: 'Hallway',
|
|
14
|
-
value: 'hallway',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
label: 'ROC',
|
|
18
|
-
value: 'room_of_choice',
|
|
19
|
-
},
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
function DeliveryPoint(props: IProps) {
|
|
23
|
-
const radioGroupHandler = (event: React.ChangeEvent<HTMLInputElement>) => {
|
|
24
|
-
const service = event.target.value;
|
|
25
|
-
props?.setRefusedDelPointService(service);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<Container>
|
|
30
|
-
<RadioButtonGroup
|
|
31
|
-
heading="Delivery Point"
|
|
32
|
-
options={deliveryPoints || []}
|
|
33
|
-
onChange={radioGroupHandler}
|
|
34
|
-
direction="horizontal"
|
|
35
|
-
selectedValue={props?.refusedDelPointService}
|
|
36
|
-
required={false}
|
|
37
|
-
/>
|
|
38
|
-
</Container>
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const Container = styled.div`
|
|
43
|
-
display: flex;
|
|
44
|
-
/* height: 30px; */
|
|
45
|
-
padding: 1px;
|
|
46
|
-
align-items: flex-start;
|
|
47
|
-
align-self: stretch;
|
|
48
|
-
`;
|
|
49
|
-
|
|
50
|
-
export default DeliveryPoint;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { TextArea } from '@bjsdistribution/dms-component-library';
|
|
4
|
-
|
|
5
|
-
interface IProps {
|
|
6
|
-
refusedReason: string;
|
|
7
|
-
setRefusedReason: React.Dispatch<React.SetStateAction<string>>;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
function Notes(props: IProps) {
|
|
11
|
-
const handleTextChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {
|
|
12
|
-
props?.setRefusedReason(event.target.value);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
return (
|
|
16
|
-
<Container>
|
|
17
|
-
<div style={{ display: 'flex', flexDirection: 'row' }}>
|
|
18
|
-
<Label>Notes</Label> <RequiredAsterisk>*</RequiredAsterisk>
|
|
19
|
-
</div>
|
|
20
|
-
<TextArea
|
|
21
|
-
rows={15}
|
|
22
|
-
onChange={handleTextChange}
|
|
23
|
-
placeholder="Why did the customer refuse the selected service(s)? Add notes..."
|
|
24
|
-
value={props?.refusedReason}
|
|
25
|
-
/>
|
|
26
|
-
</Container>
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const RequiredAsterisk = styled.span`
|
|
31
|
-
color: red;
|
|
32
|
-
margin-left: 2px;
|
|
33
|
-
font-size: x-small;
|
|
34
|
-
`;
|
|
35
|
-
const Label = styled.span`
|
|
36
|
-
color: #6a7378;
|
|
37
|
-
font-family: 'Lato', sans-serif;
|
|
38
|
-
font-size: 14px;
|
|
39
|
-
font-style: normal;
|
|
40
|
-
font-weight: 500;
|
|
41
|
-
`;
|
|
42
|
-
|
|
43
|
-
const Container = styled.div`
|
|
44
|
-
display: flex;
|
|
45
|
-
gap: 5px;
|
|
46
|
-
flex-direction: column;
|
|
47
|
-
width: 100%;
|
|
48
|
-
`;
|
|
49
|
-
|
|
50
|
-
export default Notes;
|
package/src/components/order-view/order-actions/actions/log-service-refusal/OrderServices.tsx
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import Checkbox from '../../../../../common/checkbox';
|
|
4
|
-
import { getIcon } from './helper';
|
|
5
|
-
import { useOrderDetails, useOrderStaticData } from '../../../store';
|
|
6
|
-
import { OrderServiceType } from '../../../types';
|
|
7
|
-
interface IProps {
|
|
8
|
-
refusedServices: string[];
|
|
9
|
-
setRefusedServices: React.Dispatch<React.SetStateAction<string[]>>;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function OrderServices(props: IProps) {
|
|
13
|
-
const [orderStaticData] = useOrderStaticData();
|
|
14
|
-
const [orderDetails] = useOrderDetails();
|
|
15
|
-
const orderServices = orderDetails?.order_services;
|
|
16
|
-
const orderServicesOptions = orderStaticData?.order_service_list;
|
|
17
|
-
|
|
18
|
-
const onClick = (service: string) => {
|
|
19
|
-
if (props?.refusedServices?.includes(service)) {
|
|
20
|
-
const filteredServices = props?.refusedServices?.filter(
|
|
21
|
-
(item: string) => item !== service
|
|
22
|
-
);
|
|
23
|
-
props?.setRefusedServices(filteredServices);
|
|
24
|
-
} else {
|
|
25
|
-
props?.setRefusedServices((prev: string[]) => [...prev, service]);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<Container>
|
|
31
|
-
{orderServicesOptions.map((service: any) => {
|
|
32
|
-
const selected = !!orderServices?.find(
|
|
33
|
-
(s: OrderServiceType) =>
|
|
34
|
-
s?.order_service_list_id === service?.id && s.is_deleted === false
|
|
35
|
-
);
|
|
36
|
-
const isRefused = props?.refusedServices?.includes(service?.type);
|
|
37
|
-
return (
|
|
38
|
-
<Checkbox
|
|
39
|
-
checked={isRefused}
|
|
40
|
-
label={service?.type}
|
|
41
|
-
imageSrc={getIcon(service?.id)}
|
|
42
|
-
enabled={selected}
|
|
43
|
-
onClickCheckbox={onClick}
|
|
44
|
-
/>
|
|
45
|
-
);
|
|
46
|
-
})}
|
|
47
|
-
</Container>
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const Container = styled.div`
|
|
52
|
-
display: flex;
|
|
53
|
-
gap: 15px;
|
|
54
|
-
flex-wrap: wrap;
|
|
55
|
-
`;
|
|
56
|
-
|
|
57
|
-
export default OrderServices;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
const baseURL = "/assets/images/";
|
|
2
|
-
|
|
3
|
-
// export type ServiceOffered =
|
|
4
|
-
// | "Assemble"
|
|
5
|
-
// | "Take Packaging Away"
|
|
6
|
-
// | "Disassemble"
|
|
7
|
-
// | "Collect Disposal"
|
|
8
|
-
// | "Unpack Items";
|
|
9
|
-
|
|
10
|
-
export const paths: Record<number, string> = {
|
|
11
|
-
1: 'assembly.svg', //1
|
|
12
|
-
2: 'disassembly.svg', //2
|
|
13
|
-
3: 'unpack_items.svg', //3
|
|
14
|
-
4: 'packaging_removal.svg', //4
|
|
15
|
-
5: 'collect_disposal.svg', //5
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const getSubPath = (input: number): string => {
|
|
19
|
-
const result = paths[input];
|
|
20
|
-
return result;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const getIcon = (input: number): string => {
|
|
24
|
-
const subPath = getSubPath(input);
|
|
25
|
-
return `${baseURL}${subPath}`;
|
|
26
|
-
};
|