From a9c2a5c5f0b63b52e8d0072bd8eb601b32d28f0a Mon Sep 17 00:00:00 2001
From: elforjani13 <39470382+elforjani13@users.noreply.github.com>
Date: Mon, 28 Mar 2022 21:38:56 +0200
Subject: [PATCH] BIG-354: warehouse transfer validate.
---
.../WarehouseTransferForm.js | 20 +++++++++++++++----
src/lang/ar/index.json | 4 +++-
src/lang/en/index.json | 16 +++------------
3 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js
index c61ce2b92..7a9f77a34 100644
--- a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js
+++ b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js
@@ -1,7 +1,7 @@
import React from 'react';
import intl from 'react-intl-universal';
import { Formik, Form } from 'formik';
-import { isEmpty } from 'lodash';
+import { isEmpty, sumBy } from 'lodash';
import { Intent } from '@blueprintjs/core';
import { useHistory } from 'react-router-dom';
import { CLASSES } from 'common/classes';
@@ -20,7 +20,7 @@ import WarehouseTransferFormDialog from './WarehouseTransferFormDialog';
import withDashboardActions from 'containers/Dashboard/withDashboardActions';
import withSettings from 'containers/Settings/withSettings';
-import { AppToaster, } from 'components';
+import { AppToaster } from 'components';
import { useWarehouseTransferFormContext } from './WarehouseTransferFormProvider';
import { compose, orderingLinesIndexes, transactionNumber } from 'utils';
import { WarehouseTransferObserveItemsCost } from './components';
@@ -72,6 +72,18 @@ function WarehouseTransferForm({
// Handles form submit.
const handleSubmit = (values, { setSubmitting, setErrors, resetForm }) => {
setSubmitting(true);
+ const totalQuantity = sumBy(values.entries, 'quantity');
+
+ if (totalQuantity <= 0) {
+ AppToaster.show({
+ message: intl.get(
+ 'warehouse_transfer.quantity_cannot_be_zero_or_empty',
+ ),
+ intent: Intent.DANGER,
+ });
+ return;
+ }
+
// Transformes the values of the form to request.
const form = {
...transformValueToRequest(values),
@@ -119,7 +131,7 @@ function WarehouseTransferForm({
.catch(onError);
}
};
-
+
return (
-
+
diff --git a/src/lang/ar/index.json b/src/lang/ar/index.json
index 48edb6793..cf6eb0632 100644
--- a/src/lang/ar/index.json
+++ b/src/lang/ar/index.json
@@ -2005,5 +2005,7 @@
"receipt.warehouse_button.label": "المخزن: {label}",
"warehouse_transfer.empty_status.title": "إدارة عمليات النقل بين المستودعات",
"warehouse_transfer.empty_status.description": "غالبًا ماتحتاج الاعمال ذات مستودعات متعددة لطلبات نقل البضائع من مستودع إلى آخر عندما تكون في حاجة ماسة إلى البائعين.",
- "item.error.you_could_not_delete_item_has_associated": "لا يمكنك حذف العنصر لديه معاملات مرتبطة به "
+ "item.error.you_could_not_delete_item_has_associated": "لا يمكنك حذف العنصر لديه معاملات مرتبطة به ",
+ "warehouse_transfer.quantity_cannot_be_zero_or_empty": "لا يمكن أن تكون الكمية صفراً أو فارغة."
+
}
\ No newline at end of file
diff --git a/src/lang/en/index.json b/src/lang/en/index.json
index a14106e11..5911e4753 100644
--- a/src/lang/en/index.json
+++ b/src/lang/en/index.json
@@ -1440,7 +1440,7 @@
"AP_aging_summary.filter_options.label": "Filter vendors",
"item.error.type_cannot_change_with_item_has_transactions": "Cannot change item type to inventory with item has associated transactions.",
"item.error.cannot_change_inventory_account": "Cannot change item inventory account while the item has transactions.",
- "item.error.you_could_not_delete_item_has_associated":"You could not delete item that has associated transactions",
+ "item.error.you_could_not_delete_item_has_associated": "You could not delete item that has associated transactions",
"customer.link.customer_details": "Customer details ({amount})",
"bad_debt.dialog.written_off_amount": "Written-off amount",
"bad_debt.dialog.bad_debt": "Bad debt",
@@ -1776,13 +1776,10 @@
"profit_loss_sheet.percentage_of_row": "% of Row",
"profit_loss_sheet.percentage_of_expense": "% of Expense",
"profit_loss_sheet.percentage_of_income": "% of Income",
-
"report.balance_sheet_comparison.title": "Balance Sheet Comparison",
"report.balance_sheet_comparison.desc": "Reports a company's assets, liabilities and shareholders' equity compared to previous year.",
-
"report.profit_loss_sheet_comparison.title": "Profit/Loss Comparison",
"report.profit_loss_sheet_comparison.desc": "Reports the revenues, costs and expenses incurred at a specific point and compared to previous year.",
-
"the_vendor_has_been_inactivated_successfully": "The contact has been inactivated successfully.",
"vendor.alert.activated_message": "The vendor has been activated successfully.",
"vendor.alert.are_you_sure_want_to_inactivate_this_vendor": "Are you sure want to inactivate this vendor? You will to able to activate it later.",
@@ -1794,7 +1791,6 @@
"customer.alert.are_you_sure_want_to_inactivate_this_customer": "Are you sure want to inactivate this customer? You will to able to activate it later.",
"credit_note_preview.dialog.title": "Credit Note PDF Preview",
"payment_receive_preview.dialog.title": "Payment Receive PDF Preview",
-
"warehouses.label": "Warehouses",
"warehouses.label.new_warehouse": "New Warehouse",
"warehouse.dialog.label.new_warehouse": "New Warehouse",
@@ -1965,19 +1961,14 @@
"receipt_form.label.payment_amount": "Payment amount",
"receipt_form.label.receipt_message": "Receipt Message",
"receipt_form.receipt_message.placeholder": "This message will be displayed on the receipt.",
-
"receipt_form.label.terms_conditions": "Terms & Conditions",
"receipt_form.terms_and_conditions.placeholder": "Enter the terms and conditions of your business to be displayed on the receipt.",
-
"payment_receive_form.label.note": "Note",
"payment_receive_form.internal_note.placeholder": "Internal notes (Not visible to the customer).",
-
"payment_receive_form.message.label": "Payment Message",
"payment_receive_form.message.placeholder": "This message will be displayed on the payment receipt.",
-
"payment_receive_form.label.subtotal": "Subtotal",
"payment_receive_form.label.total": "TOTAL",
-
"bill_form.label.note": "Note",
"bill_form.label.note.placeholder": "Internal note (Not visible to the vendor).",
"bill_form.label.subtotal": "Subtotal",
@@ -2012,10 +2003,9 @@
"estimate.warehouse_button.label": "Warehouse: {label}",
"receipt.branch_button.label": "Branch: {label}",
"receipt.warehouse_button.label": "Warehouse: {label}",
-
"warehouse_transfer.empty_status.title": "Manage transfer orders between warehouses.",
"warehouse_transfer.empty_status.description": "Business with multiply warehouses often transfers items from on warehouse to another when they are in immediate need of vendors.",
-
"warehouse_transfer.form.reason.label": "Reason",
- "warehouse_transfer.form.reason.placeholder": "Enter the reason behind the transfer order."
+ "warehouse_transfer.form.reason.placeholder": "Enter the reason behind the transfer order.",
+ "warehouse_transfer.quantity_cannot_be_zero_or_empty": "Quantity cannot be zero or empty."
}
\ No newline at end of file