umwd-components 0.1.721 → 0.1.723

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.
Files changed (47) hide show
  1. package/dist/cjs/src/components/e-commerce/iro/IroItemDisplay.js +1 -1
  2. package/dist/cjs/src/components/e-commerce/iro/IroItemUpdater.js +1 -1
  3. package/dist/cjs/src/components/e-commerce/iro/ManageIROForm.js +1 -1
  4. package/dist/cjs/src/components/e-commerce/iro/RmaForm.js +1 -1
  5. package/dist/cjs/src/components/e-commerce/iro/TextualIROItemUpdater.js +1 -1
  6. package/dist/cjs/src/components/e-commerce/iro/TextualManageIROForm.js +1 -1
  7. package/dist/cjs/src/components/e-commerce/opo/ManageOpoForm.js +1 -1
  8. package/dist/cjs/src/components/e-commerce/opo/OpoItemDisplay.js +1 -1
  9. package/dist/cjs/src/components/e-commerce/opo/OpoItemUpdater.js +1 -1
  10. package/dist/cjs/src/components/e-commerce/opo/OpoSummary.js +1 -1
  11. package/dist/cjs/src/components/e-commerce/opo/TextualManageOpoForm.js +1 -1
  12. package/dist/cjs/src/components/e-commerce/opo/TextualOpoItemUpdater.js +1 -1
  13. package/dist/cjs/src/components/logistics/ipo/IPOItemUpdater.js +1 -1
  14. package/dist/cjs/src/components/logistics/ipo/ManageIPOForm.js +1 -1
  15. package/dist/cjs/src/components/logistics/ipo/TextualIPOItemUpdater.js +1 -1
  16. package/dist/cjs/src/components/logistics/ipo/TextualManageIPOForm.js +1 -1
  17. package/dist/cjs/src/data/loaders/e-commerce/getAllOpos.js +1 -1
  18. package/dist/cjs/src/data/loaders/e-commerce-loaders.js +1 -1
  19. package/dist/cjs/src/lib/isEORIValid.js +1 -1
  20. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  21. package/dist/esm/src/components/e-commerce/iro/IroItemDisplay.js +1 -1
  22. package/dist/esm/src/components/e-commerce/iro/IroItemUpdater.js +5 -5
  23. package/dist/esm/src/components/e-commerce/iro/ManageIROForm.js +3 -3
  24. package/dist/esm/src/components/e-commerce/iro/RmaForm.js +1 -1
  25. package/dist/esm/src/components/e-commerce/iro/TextualIROItemUpdater.js +8 -8
  26. package/dist/esm/src/components/e-commerce/iro/TextualManageIROForm.js +15 -15
  27. package/dist/esm/src/components/e-commerce/opo/ManageOpoForm.js +5 -5
  28. package/dist/esm/src/components/e-commerce/opo/OpoItemDisplay.js +1 -1
  29. package/dist/esm/src/components/e-commerce/opo/OpoItemUpdater.js +8 -7
  30. package/dist/esm/src/components/e-commerce/opo/OpoSummary.js +2 -2
  31. package/dist/esm/src/components/e-commerce/opo/TextualManageOpoForm.js +12 -12
  32. package/dist/esm/src/components/e-commerce/opo/TextualOpoItemUpdater.js +8 -8
  33. package/dist/esm/src/components/logistics/ipo/IPOItemUpdater.js +5 -5
  34. package/dist/esm/src/components/logistics/ipo/ManageIPOForm.js +4 -4
  35. package/dist/esm/src/components/logistics/ipo/TextualIPOItemUpdater.js +8 -8
  36. package/dist/esm/src/components/logistics/ipo/TextualManageIPOForm.js +12 -12
  37. package/dist/esm/src/data/loaders/e-commerce/getAllOpos.js +1 -1
  38. package/dist/esm/src/data/loaders/e-commerce-loaders.js +0 -1
  39. package/dist/esm/src/lib/isEORIValid.js +0 -1
  40. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  41. package/dist/esm/types/data/services/archive-service.d.ts +2 -2
  42. package/dist/esm/types/data/services/common/cancellation-service.d.ts +1 -1
  43. package/dist/esm/types/data/services/common/confirmation-service.d.ts +1 -1
  44. package/dist/esm/types/types/e-commerce/iro/types.d.ts +5 -9
  45. package/dist/esm/types/types/e-commerce/opo/types.d.ts +5 -9
  46. package/dist/esm/types/types/logistics/Ipo.d.ts +5 -9
  47. package/package.json +1 -1
@@ -23,23 +23,23 @@ function TextualIPOItemUpdater({ item, index, handleAddReport, handleUpdateQuant
23
23
  const { line_item_number, product, ordered_quantity, received_quantity, registered_quantity, released_quantity, reports, } = item;
24
24
  const [open, setOpen] = useState(false);
25
25
  // these values where wrapped with useMemo before but that did not work well while updating values
26
- reports?.data !== undefined && reports.data.length > 0
27
- ? reports.data
26
+ reports !== undefined && reports.length > 0
27
+ ? reports
28
28
  .filter((report) => report.type === "received")
29
29
  .reduce((a, b) => a + b.quantity, 0)
30
30
  : 0;
31
- const registered_reports_quantity = reports?.data !== undefined && reports.data.length > 0
32
- ? reports.data
31
+ const registered_reports_quantity = reports !== undefined && reports.length > 0
32
+ ? reports
33
33
  .filter((report) => report.type === "registered")
34
34
  .reduce((a, b) => a + b.quantity, 0)
35
35
  : 0;
36
- reports?.data !== undefined && reports.data.length > 0
37
- ? reports.data
36
+ reports !== undefined && reports.length > 0
37
+ ? reports
38
38
  .filter((report) => report.type === "released")
39
39
  .reduce((a, b) => a + b.quantity, 0)
40
40
  : 0;
41
- const dbReports = item.reports?.data?.filter((report) => "id" in report) || [];
42
- const preReports = item.reports?.data?.filter((report) => Boolean("id" in report) === false) ||
41
+ const dbReports = item.reports?.filter((report) => "id" in report) || [];
42
+ const preReports = item.reports?.filter((report) => Boolean("id" in report) === false) ||
43
43
  [];
44
44
  return (jsx(Stack, { spacing: 1, children: item && (jsxs(Fragment, { children: [jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { mb: 1 }, children: [jsxs(Typography, { variant: "body1", children: ["Line Item Number: ", line_item_number] }), jsxs(Typography, { variant: "body1", children: ["Part Number: ", product?.product_number] }), image && (jsx(Fragment, { children: jsx(ImagePreviewTooltip, { image: image, label: item.product?.title }) }))] }), jsx(Divider, { sx: { mb: 1 } }), showing && showing.includes("received") && (jsxs(Fragment, { children: [jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { mb: 1 }, children: [jsx(Typography, { variant: "body2", children: "Received" }), jsx(TextualAmountUpdater, { label: "Received", currentValue: received_quantity, totalValue: ordered_quantity, minNewValue: 0 + registered_quantity, maxNewValue: ordered_quantity, color: "info", handleChange: (newValue) => {
45
45
  handleUpdateQuantity(newValue, item.id, "received_quantity");
@@ -100,7 +100,7 @@ function CancelIpoDialog({ open, handleClose, orderID, revalidateCallback, }) {
100
100
  function TextualManageIPOForm({ data, sx, revalidateCallback, handleClose, role, }) {
101
101
  const [formState, formAction] = useFormState((prevState, formData) => updateIpoAction(data.id, prevState, formData), INITIAL_STATE);
102
102
  const { handleAddMessage } = useSnackbar();
103
- const [items, setItems] = useState(data.items.data ? data.items.data : []);
103
+ const [items, setItems] = useState(data.items ? data.items : []);
104
104
  const [confirmDialogOpen, setConfirmDialogOpen] = useState(false);
105
105
  const [cancelDialogOpen, setCancelDialogOpen] = useState(false);
106
106
  const [showing, setShowing] = useState(["received", "registered", "released", "reports"]);
@@ -138,7 +138,7 @@ function TextualManageIPOForm({ data, sx, revalidateCallback, handleClose, role,
138
138
  received_quantity: item.received_quantity,
139
139
  registered_quantity: item.registered_quantity,
140
140
  released_quantity: item.released_quantity,
141
- reports: item.reports?.data?.map((report) => {
141
+ reports: item.reports?.map((report) => {
142
142
  return {
143
143
  id: "id" in report ? report.id : undefined,
144
144
  quantity: report.quantity,
@@ -161,23 +161,23 @@ function TextualManageIPOForm({ data, sx, revalidateCallback, handleClose, role,
161
161
  const handleAddReport = (report, itemID) => {
162
162
  const newItems = [...items];
163
163
  const index = newItems.findIndex((item) => item.id === itemID);
164
- const reportsOnItem = newItems[index]?.reports?.data || [];
164
+ const reportsOnItem = newItems[index]?.reports || [];
165
165
  const newReports = [...reportsOnItem, report];
166
166
  if (newItems[index]?.reports == undefined) {
167
- newItems[index] = { ...newItems[index], reports: { data: [] } };
167
+ newItems[index] = { ...newItems[index], reports: [] };
168
168
  }
169
- newItems[index].reports.data = newReports;
169
+ newItems[index].reports = newReports;
170
170
  setItems(newItems);
171
171
  };
172
172
  const handleRemoveReportAtIndex = (itemID, index) => {
173
173
  const newItems = [...items];
174
174
  const itemIndex = newItems.findIndex((item) => item.id === itemID);
175
- const reportsOnItem = newItems[itemIndex]?.reports?.data || [];
175
+ const reportsOnItem = newItems[itemIndex]?.reports || [];
176
176
  const dbReports = reportsOnItem.filter((report) => "id" in report);
177
177
  const preReports = reportsOnItem.filter((report) => !("id" in report));
178
178
  preReports.splice(index, 1);
179
179
  const newReports = [...dbReports, ...preReports];
180
- newItems[itemIndex].reports.data = newReports;
180
+ newItems[itemIndex].reports = newReports;
181
181
  setItems(newItems);
182
182
  };
183
183
  useEffect(() => {
@@ -200,20 +200,20 @@ function TextualManageIPOForm({ data, sx, revalidateCallback, handleClose, role,
200
200
  }, [formState?.strapiErrors]);
201
201
  useEffect(() => {
202
202
  console.log("data", data);
203
- if (data.items?.data) {
204
- setItems(data.items.data ? data.items.data : []);
203
+ if (data.items) {
204
+ setItems(data.items ? data.items : []);
205
205
  }
206
206
  }, [data]);
207
207
  return (jsx(Box, { sx: [
208
208
  // You cannot spread `sx` directly because `SxProps` (typeof sx) can be an array.
209
209
  ...(Array.isArray(sx) ? sx : [sx]),
210
210
  ], children: jsxs(Grid, { container: true, spacing: 2, children: [jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 2, children: [jsxs(Stack, { direction: "row", spacing: 2, justifyContent: "space-between", children: [jsxs(Stack, { spacing: 2, children: [jsx(Typography, { variant: "h3", component: "h1", children: "Management Inbound Purchase Order" }), jsx(Typography, { variant: "body1", children: "Manage arrival, registration and recieval of purchase order" })] }), jsx(NoteTakingComponent, { content: "", related: [{ id: data.id, __type: "api::logistics.ipo" }], revalidateCallback: revalidateCallback })] }), jsx(Divider, {})] }) }), jsx(Grid, { item: true, xs: 12, children: jsx(Typography, { variant: "h5", sx: { py: 1 }, children: "Details" }) }), jsx(Grid, { item: true, xs: 6, children: jsx(Paper, { elevation: 2, sx: { p: 2, height: "100%" }, children: jsxs(Stack, { spacing: 2, children: [jsxs(Stack, { direction: "row", spacing: 2, alignItems: "center", children: [jsx(NumbersIcon, { color: "primary" }), jsx(Typography, { variant: "subtitle1", color: "text.secondary", width: "200px", children: "Purchase Order Number" }), jsx(Typography, { variant: "body1", fontWeight: "medium", children: data.ipo_number })] }), jsxs(Stack, { direction: "row", spacing: 2, alignItems: "center", children: [jsx(DescriptionIcon, { color: "primary" }), jsx(Typography, { variant: "subtitle1", color: "text.secondary", width: "200px", children: "Custom Reference" }), jsx(Typography, { variant: "body1", fontWeight: "medium", children: data.customer_reference })] }), jsxs(Stack, { direction: "row", spacing: 2, alignItems: "center", children: [jsx(CalendarTodayIcon, { color: "primary" }), jsx(Typography, { variant: "subtitle1", color: "text.secondary", width: "200px", children: "Order Date" }), jsx(Typography, { variant: "body1", fontWeight: "medium", children: data.order_date })] }), jsxs(Stack, { direction: "row", spacing: 2, alignItems: "center", children: [jsx(BusinessIcon, { color: "primary" }), jsx(Typography, { variant: "subtitle1", color: "text.secondary", width: "200px", children: "Supplier" }), jsx(Typography, { variant: "body1", fontWeight: "medium", children: data.vendor_profile?.business_credentials?.company_name })] }), jsxs(Stack, { direction: "row", spacing: 2, alignItems: "center", children: [jsx(UpdateIcon, { color: "primary" }), jsx(Typography, { variant: "subtitle1", color: "text.secondary", width: "200px", children: "Order Status" }), jsx(IpoStatusIndicator, { status: data.internal_status })] })] }) }) }), role === "enduser" && (jsx(Grid, { item: true, xs: 6, children: jsx(Paper, { elevation: 2, sx: { p: 2, height: "100%" }, children: jsxs(Stack, { spacing: 2, children: [(data.internal_status === "placed" ||
211
- data.internal_status === "released_on_stock") && (jsxs(Fragment, { children: [jsx(Button, { variant: "contained", color: "primary", onClick: () => setConfirmDialogOpen(true), children: "Confirm order" }), jsx(Alert, { severity: "warning", children: "Please confirm the order as soon as possible, only upon confirmation this order will be available to the dispatcher" }), jsx(ConfirmFormDialog, { open: confirmDialogOpen, handleClose: () => setConfirmDialogOpen(false), orderID: data.id, currentStatus: data.internal_status, revalidateCallback: revalidateCallback })] })), (data.internal_status === "placed" ||
212
- data.internal_status === "ordered") && (jsxs(Fragment, { children: [jsx(Button, { variant: "contained", color: "error", onClick: () => setCancelDialogOpen(true), children: "Cancel order" }), jsx(CancelIpoDialog, { open: cancelDialogOpen, handleClose: () => setCancelDialogOpen(false), orderID: data.id, revalidateCallback: revalidateCallback })] }))] }) }) })), jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 2, children: [jsx(Typography, { variant: "h5", children: "Documents" }), jsx(Paper, { sx: { p: 2 }, children: jsxs(Stack, { spacing: 1, children: [role === "enduser" && (jsx(Fragment, { children: data.order_confirmation ? (jsxs(Fragment, { children: [jsx(Typography, { variant: "h6", children: "Order Confirmation" }), jsx(Typography, { children: data.order_confirmation?.name }), jsx(Button, { variant: "contained", onClick: () => {
211
+ data.internal_status === "released_on_stock") && (jsxs(Fragment, { children: [jsx(Button, { variant: "contained", color: "primary", onClick: () => setConfirmDialogOpen(true), children: "Confirm order" }), jsx(Alert, { severity: "warning", children: "Please confirm the order as soon as possible, only upon confirmation this order will be available to the dispatcher" }), jsx(ConfirmFormDialog, { open: confirmDialogOpen, handleClose: () => setConfirmDialogOpen(false), orderID: data.documentId, currentStatus: data.internal_status, revalidateCallback: revalidateCallback })] })), (data.internal_status === "placed" ||
212
+ data.internal_status === "ordered") && (jsxs(Fragment, { children: [jsx(Button, { variant: "contained", color: "error", onClick: () => setCancelDialogOpen(true), children: "Cancel order" }), jsx(CancelIpoDialog, { open: cancelDialogOpen, handleClose: () => setCancelDialogOpen(false), orderID: data.documentId, revalidateCallback: revalidateCallback })] }))] }) }) })), jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 2, children: [jsx(Typography, { variant: "h5", children: "Documents" }), jsx(Paper, { sx: { p: 2 }, children: jsxs(Stack, { spacing: 1, children: [role === "enduser" && (jsx(Fragment, { children: data.order_confirmation ? (jsxs(Fragment, { children: [jsx(Typography, { variant: "h6", children: "Order Confirmation" }), jsx(Typography, { children: data.order_confirmation?.name }), jsx(Button, { variant: "contained", onClick: () => {
213
213
  downloadBase64File(`api/ipos/${data.id}`, "order_confirmation");
214
214
  }, children: "Download" })] })) : (jsxs(Fragment, { children: [jsx(Typography, { variant: "h5", children: "Order Confirmation" }), jsx(Typography, { variant: "body1", children: "Here you can upload the the order confirmation for this order" }), jsx(Typography, { variant: "body1", children: "FileUpload" }), jsx(Divider, {}), jsx(UploadBase64MediaForm /* This form manages it's own state internally */, { reference: "api::logistics.ipo", refID: data.id, field: "order_confirmation", multiple: false, accept: "text/*,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document", path: "api/ipos", componentName: "order_confirmation", componentReference: "common.base64-encoded-media", revalidateCallback: revalidateCallback })] })) })), data.delivery_note ? (jsxs(Fragment, { children: [jsx(Typography, { variant: "h6", children: "Delivery Note" }), jsx(Typography, { children: data.delivery_note?.name }), jsx(Button, { variant: "contained", onClick: () => {
215
215
  downloadBase64File(`api/ipos/${data.id}`, "delivery_note");
216
- }, children: "Download" })] })) : (jsxs(Fragment, { children: [jsx(Typography, { variant: "h5", children: "Delivery Note" }), jsx(Typography, { variant: "body1", children: "Here you can upload the the delivery note for this order" }), jsx(Divider, {}), jsx(UploadBase64MediaForm, { reference: "api::logistics.ipo", refID: data.id, field: "delivery_note", multiple: false, accept: "text/*,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document", path: "api/ipos", componentName: "delivery_note", componentReference: "common.base64-encoded-media", revalidateCallback: revalidateCallback })] }))] }) })] }) }), data?.notes?.data?.length > 0 && (jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 2, children: [jsx(Typography, { variant: "h5", children: "Notes" }), jsx(NotesDisplay, { notes: data.notes.data }), jsx(Divider, {})] }) })), jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 1, children: [jsx(Typography, { variant: "h5", children: "Items" }), jsxs(Stack, { direction: "row", alignItems: "center", justifyContent: "flex-end", spacing: 2, component: Paper, p: 1, sx: {
216
+ }, children: "Download" })] })) : (jsxs(Fragment, { children: [jsx(Typography, { variant: "h5", children: "Delivery Note" }), jsx(Typography, { variant: "body1", children: "Here you can upload the the delivery note for this order" }), jsx(Divider, {}), jsx(UploadBase64MediaForm, { reference: "api::logistics.ipo", refID: data.id, field: "delivery_note", multiple: false, accept: "text/*,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document", path: "api/ipos", componentName: "delivery_note", componentReference: "common.base64-encoded-media", revalidateCallback: revalidateCallback })] }))] }) })] }) }), data?.notes?.length > 0 && (jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 2, children: [jsx(Typography, { variant: "h5", children: "Notes" }), jsx(NotesDisplay, { notes: data.notes }), jsx(Divider, {})] }) })), jsx(Grid, { item: true, xs: 12, children: jsxs(Stack, { spacing: 1, children: [jsx(Typography, { variant: "h5", children: "Items" }), jsxs(Stack, { direction: "row", alignItems: "center", justifyContent: "flex-end", spacing: 2, component: Paper, p: 1, sx: {
217
217
  bgcolor: "background.default",
218
218
  border: "1px solid",
219
219
  borderColor: "divider",
@@ -68,7 +68,7 @@ filters = {}) {
68
68
  },
69
69
  },
70
70
  iros: {
71
- fields: ["id", "uuid", "status"],
71
+ fields: ["id", "uuid", "internal_status"],
72
72
  },
73
73
  },
74
74
  pagination: {
@@ -9,7 +9,6 @@ import qs from '../../../node_modules/qs/lib/index.js';
9
9
  import { fetchData } from './loaders.js';
10
10
  import { getStrapiURL } from '../../lib/utils.js';
11
11
  import { unstable_noStore } from 'next/cache';
12
- import '../services/get-user-me-loader.js';
13
12
 
14
13
  const baseUrl = getStrapiURL();
15
14
  // this function should not be deleted because it is used in for the front-end
@@ -11,7 +11,6 @@ function isEORIValid(businessCredentials) {
11
11
  statusDescr: "Valid",
12
12
  };
13
13
  const valid = Boolean(response.status === "0" && response.statusDescr === "Valid");
14
- console.log("isEORIValid", valid);
15
14
  return valid;
16
15
  }
17
16
  else {