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