From ffd6629b805e26ce46262d0c18889d8edafd6d62 Mon Sep 17 00:00:00 2001
From: elforjani13 <39470382+elforjani13@users.noreply.github.com>
Date: Tue, 22 Feb 2022 15:37:03 +0200
Subject: [PATCH] feat(warehousetTransfer ): add warehouse status.
---
.../TransferredWarehouseTransferAlert.js | 71 ++++++++++++++
.../WarehouseMarkPrimaryAlert.js | 0
.../WarehouseTransferDeleteAlert.js | 0
.../WarehouseTransferInitiateAlert.js | 71 ++++++++++++++
.../WarehouseTransferFloatingActions.js | 96 ++++++++++++++-----
.../WarehouseTransferForm.js | 6 +-
.../WarehouseTransferForm.schema.js | 2 +
.../WarehouseTransferForm/utils.js | 2 +
.../WarehouseTransfersDataTable.js | 11 +++
.../WarehouseTransfersLanding/components.js | 66 +++++++++++--
.../WarehousesTransfersAlerts.js | 20 +++-
src/hooks/query/warehouses.js | 47 +++++++++
src/lang/en/index.json | 13 ++-
13 files changed, 369 insertions(+), 36 deletions(-)
create mode 100644 src/containers/Alerts/WarehousesTransfer/TransferredWarehouseTransferAlert.js
rename src/containers/Alerts/{Warehouses => WarehousesTransfer}/WarehouseMarkPrimaryAlert.js (100%)
rename src/containers/Alerts/{Warehouses => WarehousesTransfer}/WarehouseTransferDeleteAlert.js (100%)
create mode 100644 src/containers/Alerts/WarehousesTransfer/WarehouseTransferInitiateAlert.js
diff --git a/src/containers/Alerts/WarehousesTransfer/TransferredWarehouseTransferAlert.js b/src/containers/Alerts/WarehousesTransfer/TransferredWarehouseTransferAlert.js
new file mode 100644
index 000000000..a649c44b0
--- /dev/null
+++ b/src/containers/Alerts/WarehousesTransfer/TransferredWarehouseTransferAlert.js
@@ -0,0 +1,71 @@
+import React from 'react';
+import { FormattedMessage as T } from 'components';
+import intl from 'react-intl-universal';
+import { Intent, Alert } from '@blueprintjs/core';
+
+import { useTransferredWarehouseTransfer } from 'hooks/query';
+import { AppToaster } from 'components';
+
+import withAlertStoreConnect from 'containers/Alert/withAlertStoreConnect';
+import withAlertActions from 'containers/Alert/withAlertActions';
+
+import { compose } from 'utils';
+
+/**
+ * warehouse transfer transferred alert.
+ * @returns
+ */
+function TransferredWarehouseTransferAlert({
+ name,
+
+ // #withAlertStoreConnect
+ isOpen,
+ payload: { warehouseTransferId },
+
+ // #withAlertActions
+ closeAlert,
+}) {
+ const { mutateAsync: transferredWarehouseTransferMutate, isLoading } =
+ useTransferredWarehouseTransfer();
+
+ // handle cancel alert.
+ const handleCancelAlert = () => {
+ closeAlert(name);
+ };
+
+ // Handle confirm alert.
+ const handleConfirmTransferred = () => {
+ transferredWarehouseTransferMutate(warehouseTransferId)
+ .then(() => {
+ AppToaster.show({
+ message: intl.get('warehouse_transfer.alert.transferred_warehouse'),
+ intent: Intent.SUCCESS,
+ });
+ })
+ .catch((error) => {})
+ .finally(() => {
+ closeAlert(name);
+ });
+ };
+
+ return (
+ }
+ confirmButtonText={}
+ intent={Intent.WARNING}
+ isOpen={isOpen}
+ onCancel={handleCancelAlert}
+ onConfirm={handleConfirmTransferred}
+ loading={isLoading}
+ >
+
- {/* ----------- Save and New ----------- */}
+ {/* ----------- Save Intitate & transferred ----------- */}
: }
+ text={}
/>
}
- onClick={handleSubmitAndNewClick}
- />
- }
- // onClick={handleSubmitContinueEditingBtnClick}
+ text={}
+ onClick={handleSubmitTransferredBtnClick}
/>
}
@@ -92,12 +110,44 @@ export default function WarehouseTransferFloatingActions() {
+ {/* ----------- Save As Draft ----------- */}
+
+ }
+ />
+
+ }
+ onClick={handleSubmitDraftAndNewBtnClick}
+ />
+ }
+ onClick={handleSubmitDraftContinueEditingBtnClick}
+ />
+
+ }
+ minimal={true}
+ interactionKind={PopoverInteractionKind.CLICK}
+ position={Position.BOTTOM_LEFT}
+ >
+ }
+ />
+
+
+
{/* ----------- Clear & Reset----------- */}
:
}
+ text={warehouseTransfer ?
:
}
/>
{/* ----------- Cancel ----------- */}
diff --git a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js
index 1e35320a4..86b4e5eb0 100644
--- a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js
+++ b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js
@@ -68,7 +68,11 @@ function WarehouseTransferForm({
const handleSubmit = (values, { setSubmitting, setErrors, resetForm }) => {
setSubmitting(true);
// Transformes the values of the form to request.
- const form = transformValueToRequest(values);
+ const form = {
+ ...transformValueToRequest(values),
+ transfer_initiated: submitPayload.initiate,
+ transfer_delivered: submitPayload.deliver,
+ };
// Handle the request success.
const onSuccess = () => {
diff --git a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.schema.js b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.schema.js
index 5f7ed3e06..026bc5e20 100644
--- a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.schema.js
+++ b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.schema.js
@@ -14,6 +14,8 @@ const Schema = Yup.object().shape({
.min(1)
.max(DATATYPES_LENGTH.STRING)
.label(intl.get('reason')),
+ transfer_initiated: Yup.boolean(),
+ transfer_delivered: Yup.boolean(),
entries: Yup.array().of(
Yup.object().shape({
item_id: Yup.number().nullable(),
diff --git a/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js b/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js
index a0d3aefef..015ed1976 100644
--- a/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js
+++ b/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js
@@ -48,6 +48,8 @@ export const defaultWarehouseTransfer = {
from_warehouse_id: '',
to_warehouse_id: '',
reason: '',
+ transfer_initiated: '',
+ transfer_delivered: '',
entries: [...repeatValue(defaultWarehouseTransferEntry, MIN_LINES_NUMBER)],
};
diff --git a/src/containers/WarehouseTransfers/WarehouseTransfersLanding/WarehouseTransfersDataTable.js b/src/containers/WarehouseTransfers/WarehouseTransfersLanding/WarehouseTransfersDataTable.js
index a6dd9c907..2f98bc0ba 100644
--- a/src/containers/WarehouseTransfers/WarehouseTransfersLanding/WarehouseTransfersDataTable.js
+++ b/src/containers/WarehouseTransfers/WarehouseTransfersLanding/WarehouseTransfersDataTable.js
@@ -91,6 +91,15 @@ function WarehouseTransfersDataTable({
openAlert('warehouse-transfer-delete', { warehouseTransferId: id });
};
+ // Handle initiate warehouse transfer.
+ const handleInitateWarehouseTransfer = ({ id }) => {
+ openAlert('warehouse-transfer-initate', { warehouseTransferId: id });
+ };
+ // Handle transferred warehouse transfer.
+ const handleTransferredWarehouseTransfer = ({ id }) => {
+ openAlert('transferred-warehouse-transfer', { warehouseTransferId: id });
+ };
+
// Handle cell click.
const handleCellClick = (cell, event) => {
openDrawer('warehouse-transfer-detail-drawer', {
@@ -127,6 +136,8 @@ function WarehouseTransfersDataTable({
onViewDetails: handleViewDetailWarehouseTransfer,
onDelete: handleDeleteWarehouseTransfer,
onEdit: handleEditWarehouseTransfer,
+ onInitate: handleInitateWarehouseTransfer,
+ onTransfer: handleTransferredWarehouseTransfer,
}}
/>
diff --git a/src/containers/WarehouseTransfers/WarehouseTransfersLanding/components.js b/src/containers/WarehouseTransfers/WarehouseTransfersLanding/components.js
index b7b9ee167..ed40920e2 100644
--- a/src/containers/WarehouseTransfers/WarehouseTransfersLanding/components.js
+++ b/src/containers/WarehouseTransfers/WarehouseTransfersLanding/components.js
@@ -22,7 +22,7 @@ import {
} from 'components';
export function ActionsMenu({
- payload: { onEdit, onDelete, onViewDetails, onPrint },
+ payload: { onEdit, onDelete, onViewDetails, onInitate, onTransfer },
row: { original },
}) {
return (
@@ -38,6 +38,22 @@ export function ActionsMenu({
text={intl.get('warehouse_transfer.action.edit_warehouse_transfer')}
onClick={safeCallback(onEdit, original)}
/>
+
+
+ }
+ text={intl.get('warehouse_transfer.action.initiate_transfer')}
+ onClick={safeCallback(onInitate, original)}
+ />
+
+
+ }
+ text={intl.get('warehouse_transfer.action.mark_as_transferred')}
+ onClick={safeCallback(onTransfer, original)}
+ />
+
+