@bjsdistribution/dms-client-return 0.1.19-dev → 0.1.19-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/DateFilterStore.d.ts +15 -0
- package/dist/components/client-portal/OutstandingTable.d.ts +3 -0
- package/dist/components/client-portal/ReturnRTFilters.d.ts +3 -0
- package/dist/components/client-portal/ReturnStatus.d.ts +5 -0
- package/dist/components/client-portal/return-confirm/ConfirmedMain.d.ts +3 -0
- package/dist/components/client-portal/return-confirm/ReturnConfirmedTable.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/DynamicTable.d.ts +2 -1
- package/dist/components/order-view/general-information/Status.d.ts +1 -1
- package/dist/components/order-view/general-information/index.d.ts +1 -1
- package/dist/components/order-view/index.d.ts +1 -1
- package/dist/components/order-view/notes/AddNote.d.ts +1 -0
- package/dist/components/order-view/notes/order-dropdown/NewReturnDropdown.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.d.ts +4 -1
- package/dist/components/order-view/order-actions/actions/confirm-order/index.d.ts +4 -1
- package/dist/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.d.ts +7 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.d.ts +11 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/Selector.d.ts +11 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.d.ts +8 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.d.ts +7 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.d.ts +7 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.d.ts +7 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.d.ts +7 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/escalation/index.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/FlagsTemplate.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/notifications/index.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.d.ts +7 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/ZoneDropdown.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/index.d.ts +4 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.d.ts +3 -0
- package/dist/components/order-view/order-actions/actions/force-debrief/styles.d.ts +8 -0
- package/dist/components/order-view/order-actions/actions/hold-order/HoldOrderModal.d.ts +1 -0
- package/dist/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.d.ts +1 -1
- package/dist/components/order-view/order-actions/actions/unhold-order/UnholdOrder.d.ts +1 -0
- package/dist/components/order-view/order-actions/types.d.ts +3 -3
- package/dist/components/order-view/order-details/expanded-content/index.d.ts +1 -1
- package/dist/components/order-view/order-details/index.d.ts +1 -1
- package/dist/components/order-view/order-resources/expanded-content/index.d.ts +1 -1
- package/dist/components/order-view/products-info/expanded-content/index.d.ts +6 -1
- package/dist/components/order-view/products-info/index.d.ts +1 -1
- package/dist/components/order-view/return-client-products/ProductTable.d.ts +6 -1
- package/dist/components/order-view/return-client-products/product-table/ReturnProductTable.d.ts +6 -1
- package/dist/components/order-view/store.d.ts +15 -3
- package/dist/components/order-view/system-event-logs/expanded-content/index.d.ts +1 -1
- package/dist/components/order-view/types.d.ts +55 -1
- package/dist/components/order-view/utils.d.ts +11 -2
- package/dist/components/store.d.ts +6 -2
- package/dist/dms-client-return.cjs.development.js +9140 -5835
- 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 +7617 -4312
- package/dist/dms-client-return.esm.js.map +1 -1
- package/package.json +6 -4
- package/src/assets/icons/ActionIcon.tsx +1 -1
- package/src/assets/icons/ArrowDownIcon.tsx +2 -2
- package/src/components/client-portal/DateFilterStore.ts +139 -0
- package/src/components/client-portal/OutstandingTable.tsx +356 -0
- package/src/components/client-portal/ReturnAfterSearchBar.tsx +77 -17
- package/src/components/client-portal/ReturnOverview.tsx +15 -6
- package/src/components/client-portal/ReturnRTFilters.tsx +196 -80
- package/src/components/client-portal/ReturnSearchBar.tsx +64 -94
- package/src/components/client-portal/ReturnStatus.tsx +50 -66
- package/src/components/client-portal/return-confirm/ConfirmedMain.tsx +224 -0
- package/src/components/client-portal/return-confirm/ReturnConfirmedTable.tsx +327 -0
- package/src/components/order-daily-overview/header/route-header/ClientRouterHeader.tsx +166 -0
- package/src/components/order-daily-overview/header/route-header/RouterHeader.tsx +2 -86
- package/src/components/order-daily-overview/header-filters/SelectionFilter.tsx +46 -15
- package/src/components/order-daily-overview/index.tsx +23 -4
- package/src/components/order-daily-overview/return-after-table/ReturnAfterTable.tsx +23 -38
- package/src/components/order-daily-overview/return-after-table/table/OrderTable.tsx +21 -24
- package/src/components/order-daily-overview/return-after-table/table-filters/ReturnFilterStore.ts +36 -36
- package/src/components/order-daily-overview/return-after-table/table-filters/ReturnOrderFilter.tsx +12 -2
- package/src/components/order-daily-overview/return-order-table/ReturnTable.tsx +16 -0
- package/src/components/order-daily-overview/return-order-table/return-orders-filters/ReturnOrderTable.tsx +58 -155
- package/src/components/order-daily-overview/table/ReturnTable.tsx +8 -4
- package/src/components/order-view/DynamicTable.tsx +21 -8
- package/src/components/order-view/details-filters/left-side-filters/dropdowns/DropDowns.tsx +1 -1
- package/src/components/order-view/details-filters/left-side-filters/dropdowns/OptionsDropDown.tsx +9 -0
- package/src/components/order-view/details-filters/right-side-filters/Details.tsx +28 -3
- package/src/components/order-view/flags-action-modal/Dropdowns.tsx +2 -0
- package/src/components/order-view/general-information/Status.tsx +92 -18
- package/src/components/order-view/general-information/index.tsx +2 -2
- package/src/components/order-view/generic-table/AuditLogs.tsx +39 -12
- package/src/components/order-view/index.tsx +50 -8
- package/src/components/order-view/modalsPopup/ModalManager.tsx +1 -1
- package/src/components/order-view/notes/AddNote.tsx +95 -65
- package/src/components/order-view/notes/order-dropdown/NewReturnDropdown.tsx +8 -10
- package/src/components/order-view/notification/FlagTemplate.tsx +21 -10
- package/src/components/order-view/notification/OrderTemplate.tsx +192 -41
- package/src/components/order-view/notification/ReminderTemplate.tsx +28 -13
- package/src/components/order-view/notification/index.tsx +100 -55
- package/src/components/order-view/order-actions/actions/add-resources/DocFileUpload.tsx +92 -72
- package/src/components/order-view/order-actions/actions/add-resources/index.tsx +27 -10
- package/src/components/order-view/order-actions/actions/cancel-order/ReturnAction.tsx +25 -4
- package/src/components/order-view/order-actions/actions/cancel-order/ReturnReason.tsx +24 -4
- package/src/components/order-view/order-actions/actions/clear-booking-status/ClearBookingStatus.tsx +9 -2
- package/src/components/order-view/order-actions/actions/confirm-order/index.tsx +12 -35
- package/src/components/order-view/order-actions/actions/confirm-order/tables/NotesTable.tsx +1 -0
- package/src/components/order-view/order-actions/actions/create-task-reminder/CreateReminderModal.tsx +88 -30
- package/src/components/order-view/order-actions/actions/create-task-reminder/CreateTaskModal.tsx +5 -3
- package/src/components/order-view/order-actions/actions/create-task-reminder/TaskModal.tsx +2 -2
- package/src/components/order-view/order-actions/actions/force-debrief/BaseChargeConfirmationModal.tsx +94 -0
- package/src/components/order-view/order-actions/actions/force-debrief/ForceDebriefModal.tsx +635 -0
- package/src/components/order-view/order-actions/actions/force-debrief/Selector.tsx +65 -0
- package/src/components/order-view/order-actions/actions/force-debrief/charges/adhoc/index.tsx +94 -0
- package/src/components/order-view/order-actions/actions/force-debrief/charges/base-charge/index.tsx +106 -0
- package/src/components/order-view/order-actions/actions/force-debrief/charges/collection-add-ons/index.tsx +77 -0
- package/src/components/order-view/order-actions/actions/force-debrief/charges/delivery-add-ons/index.tsx +78 -0
- package/src/components/order-view/order-actions/actions/force-debrief/charges/disposal-charges/index.tsx +77 -0
- package/src/components/order-view/order-actions/actions/force-debrief/charges/order-charges/index.tsx +124 -0
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationCategory.tsx +92 -0
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationLevel.tsx +90 -0
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/EscalationReason.tsx +122 -0
- package/src/components/order-view/order-actions/actions/force-debrief/escalation/index.tsx +16 -0
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/FlagsTemplate.tsx +46 -0
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/OrderTemplate.tsx +117 -0
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/Tabs.tsx +32 -0
- package/src/components/order-view/order-actions/actions/force-debrief/notifications/index.tsx +180 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/RadioButtons.tsx +150 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/CancellationReasonDropdown.tsx +40 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/FailureReasonDropdown.tsx +108 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/OrderHoldReasonDropdown.tsx +37 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/StatusDropdown.tsx +48 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/dropdowns/ZoneDropdown.tsx +27 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/failure-content/index.tsx +187 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/index.tsx +55 -0
- package/src/components/order-view/order-actions/actions/force-debrief/order-info/success-content/index.tsx +221 -0
- package/src/components/order-view/order-actions/actions/force-debrief/styles.tsx +51 -0
- package/src/components/order-view/order-actions/actions/hold-order/HoldOrderModal.tsx +2 -0
- package/src/components/order-view/order-actions/actions/remove-from-route/RemoveFromRoute.tsx +7 -2
- package/src/components/order-view/order-actions/actions/unhold-order/UnholdOrder.tsx +2 -0
- package/src/components/order-view/order-actions/index.tsx +19 -10
- package/src/components/order-view/order-actions/store.ts +1 -1
- package/src/components/order-view/order-actions/types.ts +3 -3
- 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 +55 -80
- package/src/components/order-view/order-details/expanded-content/index.tsx +37 -16
- package/src/components/order-view/order-details/expanded-content/instruction-section/index.tsx +1 -1
- 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/order-details/expanded-content/services-section/ServiceLevel.tsx +3 -4
- package/src/components/order-view/order-details/index.tsx +5 -2
- package/src/components/order-view/order-resources/expanded-content/index.tsx +2 -2
- package/src/components/order-view/products-info/expanded-content/index.tsx +33 -11
- package/src/components/order-view/products-info/index.tsx +10 -6
- package/src/components/order-view/return-client-products/ProductTable.tsx +12 -2
- package/src/components/order-view/return-client-products/product-table/ReturnProductTable.tsx +73 -23
- package/src/components/order-view/store.ts +113 -1
- package/src/components/order-view/system-event-logs/expanded-content/index.tsx +6 -2
- package/src/components/order-view/types.ts +60 -1
- package/src/components/order-view/utils.ts +49 -33
- package/src/components/order-view/view-reminder/AssigneeDropdown.tsx +85 -26
- package/src/components/order-view/view-reminder/ViewReminder.tsx +31 -14
- package/src/components/store.ts +25 -2
- package/src/index.tsx +23 -5
- 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
|
@@ -70,12 +70,15 @@ const ViewReminderModal = (props: IProps) => {
|
|
|
70
70
|
const handleDateChange = (date: any | null) => {
|
|
71
71
|
if (date && date.isValid()) {
|
|
72
72
|
const selectedDate = date.toISOString();
|
|
73
|
-
|
|
74
73
|
setReminderPayload({
|
|
75
74
|
...reminderPayload,
|
|
76
75
|
due_datetime: selectedDate,
|
|
77
76
|
});
|
|
78
77
|
} else {
|
|
78
|
+
setReminderPayload({
|
|
79
|
+
...reminderPayload,
|
|
80
|
+
due_datetime: null,
|
|
81
|
+
});
|
|
79
82
|
}
|
|
80
83
|
};
|
|
81
84
|
|
|
@@ -177,12 +180,24 @@ const ViewReminderModal = (props: IProps) => {
|
|
|
177
180
|
}
|
|
178
181
|
};
|
|
179
182
|
|
|
183
|
+
const arraysEqual = (a: any = [], b: any = []) => {
|
|
184
|
+
if (a.length !== b.length) return false;
|
|
185
|
+
return a.every((val: any, index: any) => val === b[index]);
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const isSameDate = (d1: any, d2: any) => {
|
|
189
|
+
if (!d1 || !d2) return d1 === d2; // both null/undefined
|
|
190
|
+
const date1 = new Date(d1).toISOString();
|
|
191
|
+
const date2 = new Date(d2).toISOString();
|
|
192
|
+
return date1 === date2;
|
|
193
|
+
};
|
|
194
|
+
|
|
180
195
|
const hasReminderChanged = () => {
|
|
181
196
|
if (!reminderDataById || !reminderPayload) return false;
|
|
182
197
|
|
|
183
198
|
const original = {
|
|
184
199
|
due_datetime: reminderDataById?.due_datetime,
|
|
185
|
-
assigned_to: reminderDataById?.assigned_to,
|
|
200
|
+
assigned_to: reminderDataById?.assigned_to || [],
|
|
186
201
|
description: reminderDataById?.description?.trim(),
|
|
187
202
|
department: reminderDataById?.department,
|
|
188
203
|
status: reminderDataById?.status,
|
|
@@ -190,23 +205,23 @@ const ViewReminderModal = (props: IProps) => {
|
|
|
190
205
|
|
|
191
206
|
const updated = {
|
|
192
207
|
due_datetime: reminderPayload?.due_datetime,
|
|
193
|
-
assigned_to: reminderPayload?.assigned_to,
|
|
208
|
+
assigned_to: reminderPayload?.assigned_to || [],
|
|
194
209
|
description: reminderPayload?.description?.trim(),
|
|
195
210
|
department: reminderPayload?.department,
|
|
196
211
|
status: reminderPayload?.status,
|
|
197
212
|
};
|
|
198
213
|
|
|
199
214
|
const baseChanged =
|
|
200
|
-
original?.due_datetime
|
|
201
|
-
original?.assigned_to
|
|
215
|
+
!isSameDate(original?.due_datetime, updated?.due_datetime) ||
|
|
216
|
+
!arraysEqual(original?.assigned_to, updated?.assigned_to) ||
|
|
202
217
|
original?.description !== updated?.description ||
|
|
203
218
|
original?.status !== updated?.status;
|
|
204
219
|
|
|
205
220
|
const shouldCompareDept =
|
|
206
|
-
original
|
|
221
|
+
original?.department !== undefined && updated?.department !== undefined;
|
|
207
222
|
|
|
208
223
|
const departmentChanged = shouldCompareDept
|
|
209
|
-
? original
|
|
224
|
+
? original?.department !== updated?.department
|
|
210
225
|
: false;
|
|
211
226
|
|
|
212
227
|
return baseChanged || departmentChanged;
|
|
@@ -290,10 +305,12 @@ const ViewReminderModal = (props: IProps) => {
|
|
|
290
305
|
<DatePicker
|
|
291
306
|
format="DD/MM/YYYY HH:mm A"
|
|
292
307
|
value={
|
|
293
|
-
reminderPayload?.due_datetime
|
|
294
|
-
?
|
|
308
|
+
reminderPayload?.due_datetime !== undefined
|
|
309
|
+
? reminderPayload.due_datetime
|
|
310
|
+
? dayjs(reminderPayload.due_datetime)
|
|
311
|
+
: null
|
|
295
312
|
: reminderDataById?.due_datetime
|
|
296
|
-
? dayjs(reminderDataById
|
|
313
|
+
? dayjs(reminderDataById.due_datetime)
|
|
297
314
|
: null
|
|
298
315
|
}
|
|
299
316
|
onChange={handleDateChange}
|
|
@@ -318,13 +335,13 @@ const ViewReminderModal = (props: IProps) => {
|
|
|
318
335
|
name="text"
|
|
319
336
|
required
|
|
320
337
|
value={
|
|
321
|
-
reminderPayload?.description
|
|
322
|
-
|
|
323
|
-
|
|
338
|
+
reminderPayload?.description !== undefined
|
|
339
|
+
? reminderPayload.description
|
|
340
|
+
: reminderDataById?.description || ''
|
|
324
341
|
}
|
|
325
342
|
disabled={disabled}
|
|
326
343
|
onChange={onChangeDetails}
|
|
327
|
-
|
|
344
|
+
/>
|
|
328
345
|
</Right>
|
|
329
346
|
</ContentsContainer>
|
|
330
347
|
</OrderActionModal>
|
package/src/components/store.ts
CHANGED
|
@@ -125,8 +125,14 @@ function useSelectedClientPortOrders() {
|
|
|
125
125
|
return useAtom(selectedCPOrderlList);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
const selectedCPOrderAfterlList = atom<any[]>([]);
|
|
129
|
+
|
|
130
|
+
function useSelectedClientAfterOrders() {
|
|
131
|
+
return useAtom(selectedCPOrderAfterlList);
|
|
132
|
+
}
|
|
133
|
+
|
|
128
134
|
//start date and end date
|
|
129
|
-
const startCPDate = atom<dayjs.Dayjs | null>(
|
|
135
|
+
const startCPDate = atom<dayjs.Dayjs | null>(null);
|
|
130
136
|
|
|
131
137
|
function useStartDate() {
|
|
132
138
|
return useAtom(startCPDate);
|
|
@@ -156,6 +162,22 @@ export const useSearchAfterText = () => {
|
|
|
156
162
|
return useAtom(searchAfter);
|
|
157
163
|
};
|
|
158
164
|
|
|
165
|
+
const rclientReturnDataAtom = atom<any[]>([]);
|
|
166
|
+
export function useClientOutstandingReturnData() {
|
|
167
|
+
return useAtom(rclientReturnDataAtom);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const returnConfirmedOrderAtom = atom<any[]>([]);
|
|
171
|
+
|
|
172
|
+
export function useReturnConfirmedOrderData() {
|
|
173
|
+
return useAtom(returnConfirmedOrderAtom);
|
|
174
|
+
}
|
|
175
|
+
const statsCPCount = atom<any>(null);
|
|
176
|
+
|
|
177
|
+
export function useStatsCPCount() {
|
|
178
|
+
return useAtom(statsCPCount);
|
|
179
|
+
}
|
|
180
|
+
|
|
159
181
|
function useCustomerData() {
|
|
160
182
|
return useAtom(customerData);
|
|
161
183
|
}
|
|
@@ -241,7 +263,7 @@ export function useNewReturnOrderData() {
|
|
|
241
263
|
return useAtom(newReturnOrderData);
|
|
242
264
|
}
|
|
243
265
|
|
|
244
|
-
const isClientPortalAtom = atom<boolean>(
|
|
266
|
+
const isClientPortalAtom = atom<boolean | undefined>(undefined);
|
|
245
267
|
function useClientPortal() {
|
|
246
268
|
return useAtom(isClientPortalAtom);
|
|
247
269
|
}
|
|
@@ -283,4 +305,5 @@ export {
|
|
|
283
305
|
useSelectedClientPortOrders,
|
|
284
306
|
useStartDate,
|
|
285
307
|
useEndDate,
|
|
308
|
+
useSelectedClientAfterOrders,
|
|
286
309
|
};
|
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(() => {
|
|
@@ -70,7 +77,7 @@ function ReturnClient() {
|
|
|
70
77
|
}, [location.pathname, searchParams]);
|
|
71
78
|
|
|
72
79
|
//API for action type
|
|
73
|
-
const { data: fetchedStaticData, loading:
|
|
80
|
+
const { data: fetchedStaticData, loading: staticLoading } = useApiHook<
|
|
74
81
|
ApiResponse
|
|
75
82
|
>({
|
|
76
83
|
endpoint: `/orders/getStaticData/all/`,
|
|
@@ -110,21 +117,29 @@ function ReturnClient() {
|
|
|
110
117
|
fetchedStaticData?.data?.flatMap((i: any) => i?.assign_client)
|
|
111
118
|
);
|
|
112
119
|
}
|
|
113
|
-
}, [
|
|
120
|
+
}, [staticLoading]);
|
|
114
121
|
useEffect(() => {
|
|
115
122
|
if (fetchedLocationData && fetchedLocationData?.data) {
|
|
116
123
|
setLocationData(fetchedLocationData?.data);
|
|
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>
|
|
@@ -136,7 +151,10 @@ function ReturnClient() {
|
|
|
136
151
|
{/* for dev */}
|
|
137
152
|
<Route path="" element={<OrderViewQueryHandler />} />
|
|
138
153
|
<Route path="overview" element={<ReturnAfterTable />} />
|
|
139
|
-
<Route
|
|
154
|
+
<Route
|
|
155
|
+
path="/:id"
|
|
156
|
+
element={<OrderView locationloading={locationloading} />}
|
|
157
|
+
/>
|
|
140
158
|
{/* for local */}
|
|
141
159
|
{/* <Route path="/orders/view/return/filter" element={<ReturnTable />} /> */}
|
|
142
160
|
{/* for dev */}
|
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
|
-
};
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import OrderActionModal from '../../../../../common/modals/order-action-modal/OrderActionModal';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import DeliveryPoint from './DeliveryPoint';
|
|
5
|
-
import OrderServices from './OrderServices';
|
|
6
|
-
import Notes from './Notes';
|
|
7
|
-
import {
|
|
8
|
-
useCurrentAction,
|
|
9
|
-
useCustomerInfo,
|
|
10
|
-
useOrderDetails,
|
|
11
|
-
} from '../../../store';
|
|
12
|
-
import { useAxios } from '@bjsdistribution/dms-component-library';
|
|
13
|
-
import { ApiResponse } from '../../../types';
|
|
14
|
-
import { notification } from 'antd';
|
|
15
|
-
|
|
16
|
-
function LogServiceRefusal(props: any) {
|
|
17
|
-
const [, setCurrentAction] = useCurrentAction();
|
|
18
|
-
// Local States for handling service refusal
|
|
19
|
-
const [refusedReason, setRefusedReason] = useState<string>('');
|
|
20
|
-
const [refusedServices, setRefusedServices] = useState<string[]>([]);
|
|
21
|
-
const [refusedDelPointService, setRefusedDelPointService] = useState<any>('');
|
|
22
|
-
const [customerInfo] = useCustomerInfo();
|
|
23
|
-
const [orderDetails] = useOrderDetails();
|
|
24
|
-
const infoText = `${customerInfo?.recipient_name}, ${customerInfo?.postcode}`;
|
|
25
|
-
|
|
26
|
-
const { fetchData: callLogRefusalApi } = useAxios<{
|
|
27
|
-
data: ApiResponse[];
|
|
28
|
-
}>({
|
|
29
|
-
endpoint: `/v1/orders/log-refusal/`,
|
|
30
|
-
method: 'POST',
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const onClose = () => {
|
|
34
|
-
setCurrentAction(undefined);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const onSubmit = async () => {
|
|
38
|
-
const allServices =
|
|
39
|
-
refusedDelPointService?.length > 0
|
|
40
|
-
? [...refusedServices, refusedDelPointService]
|
|
41
|
-
: refusedServices;
|
|
42
|
-
const finalPayload = {
|
|
43
|
-
order_id: orderDetails?.id,
|
|
44
|
-
route_id: orderDetails?.order_routes?.route_id,
|
|
45
|
-
refused_reason: refusedReason,
|
|
46
|
-
service_name: allServices,
|
|
47
|
-
};
|
|
48
|
-
try {
|
|
49
|
-
let response = (await callLogRefusalApi({
|
|
50
|
-
payload: finalPayload,
|
|
51
|
-
})) as {
|
|
52
|
-
code: number | null;
|
|
53
|
-
error?: string | null | undefined;
|
|
54
|
-
[key: string]: any;
|
|
55
|
-
};
|
|
56
|
-
if (response.code == 200) {
|
|
57
|
-
notification.success({
|
|
58
|
-
message: 'Success',
|
|
59
|
-
description: `${response?.message}`,
|
|
60
|
-
});
|
|
61
|
-
props?.callOrdersApi();
|
|
62
|
-
} else {
|
|
63
|
-
notification.error({
|
|
64
|
-
message: 'Error',
|
|
65
|
-
description: `${response?.error}`,
|
|
66
|
-
});
|
|
67
|
-
onClose();
|
|
68
|
-
}
|
|
69
|
-
} catch (error) {}
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
const disableSubmitBtn =
|
|
73
|
-
refusedReason?.length === 0 ||
|
|
74
|
-
(refusedServices?.length === 0 && refusedDelPointService?.length === 0);
|
|
75
|
-
|
|
76
|
-
return (
|
|
77
|
-
<OrderActionModal
|
|
78
|
-
headerTitle="Service Refusal"
|
|
79
|
-
showAdditionalInfo
|
|
80
|
-
infoText={infoText}
|
|
81
|
-
submitBtnTitle="Log Refusal"
|
|
82
|
-
onCloseHeader={onClose}
|
|
83
|
-
onSubmit={onSubmit}
|
|
84
|
-
isSubmitDisabled={disableSubmitBtn}
|
|
85
|
-
>
|
|
86
|
-
<ContentContainer>
|
|
87
|
-
<Left>
|
|
88
|
-
<DeliveryPoint
|
|
89
|
-
refusedDelPointService={refusedDelPointService}
|
|
90
|
-
setRefusedDelPointService={setRefusedDelPointService}
|
|
91
|
-
/>
|
|
92
|
-
<OrderServices
|
|
93
|
-
refusedServices={refusedServices}
|
|
94
|
-
setRefusedServices={setRefusedServices}
|
|
95
|
-
/>
|
|
96
|
-
</Left>
|
|
97
|
-
<Right>
|
|
98
|
-
<Notes
|
|
99
|
-
refusedReason={refusedReason}
|
|
100
|
-
setRefusedReason={setRefusedReason}
|
|
101
|
-
/>
|
|
102
|
-
</Right>
|
|
103
|
-
</ContentContainer>
|
|
104
|
-
</OrderActionModal>
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const ContentContainer = styled.div`
|
|
109
|
-
display: flex;
|
|
110
|
-
padding: 0px 15px;
|
|
111
|
-
align-items: flex-start;
|
|
112
|
-
gap: 10px;
|
|
113
|
-
align-self: stretch;
|
|
114
|
-
`;
|
|
115
|
-
|
|
116
|
-
const Left = styled.div`
|
|
117
|
-
display: flex;
|
|
118
|
-
padding: 15px 12px;
|
|
119
|
-
flex-direction: column;
|
|
120
|
-
justify-content: center;
|
|
121
|
-
align-items: flex-start;
|
|
122
|
-
gap: 15px;
|
|
123
|
-
flex: 1 0 0;
|
|
124
|
-
border-radius: 15px;
|
|
125
|
-
background: #f8fafc;
|
|
126
|
-
`;
|
|
127
|
-
|
|
128
|
-
const Right = styled(Left)``;
|
|
129
|
-
|
|
130
|
-
export default LogServiceRefusal;
|