Fix :data types variables.

This commit is contained in:
elforjani3
2020-11-21 20:51:13 +02:00
parent b9e61461ae
commit 4b1f562587
17 changed files with 309 additions and 179 deletions

View File

@@ -1,7 +1,8 @@
import * as Yup from 'yup';
import { formatMessage } from 'services/intl';
import { DATATYPES_LENGTH } from 'common/dataTypes';
const Schema = Yup.object().shape({
const Schema = Yup.object().shape({
customer_id: Yup.number()
.label(formatMessage({ id: 'customer_name_' }))
.required(),
@@ -13,38 +14,40 @@ const Schema = Yup.object().shape({
.label(formatMessage({ id: 'expiration_date_' })),
estimate_number: Yup.string()
.nullable()
.max(DATATYPES_LENGTH.STRING)
.label(formatMessage({ id: 'estimate_number_' })),
reference: Yup.string().min(1).max(255).nullable(),
reference: Yup.string().min(1).max(DATATYPES_LENGTH.STRING).nullable(),
note: Yup.string()
.trim()
.min(1)
.max(1024)
.max(DATATYPES_LENGTH.STRING)
.label(formatMessage({ id: 'note' })),
terms_conditions: Yup.string()
.trim()
.min(1)
.max(1024)
.max(DATATYPES_LENGTH.TEXT)
.label(formatMessage({ id: 'note' })),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()
.nullable()
.max(DATATYPES_LENGTH.INT_10)
.when(['rate'], {
is: (rate) => rate,
then: Yup.number().required(),
}),
rate: Yup.number().nullable(),
rate: Yup.number().nullable().max(DATATYPES_LENGTH.INT_10),
item_id: Yup.number()
.nullable()
.when(['quantity', 'rate'], {
is: (quantity, rate) => quantity || rate,
then: Yup.number().required(),
}),
discount: Yup.number().nullable().min(0).max(100),
description: Yup.string().nullable(),
discount: Yup.number().nullable().min(0).max(DATATYPES_LENGTH.INT_10),
description: Yup.string().nullable().max(DATATYPES_LENGTH.TEXT),
}),
),
});
export const CreateEstimateFormSchema = Schema;
export const EditEstimateFormSchema = Schema;
export const EditEstimateFormSchema = Schema;

View File

@@ -1,5 +1,6 @@
import * as Yup from 'yup';
import { formatMessage } from 'services/intl';
import { DATATYPES_LENGTH } from 'common/dataTypes';
const Schema = Yup.object().shape({
customer_id: Yup.string()
@@ -12,39 +13,40 @@ const Schema = Yup.object().shape({
.required()
.label(formatMessage({ id: 'due_date_' })),
invoice_no: Yup.string()
.label(formatMessage({ id: 'invoice_no_' })),
reference_no: Yup.string().min(1).max(255),
.max(DATATYPES_LENGTH.STRING)
.label(formatMessage({ id: 'invoice_no_' })),
reference_no: Yup.string().min(1).max(DATATYPES_LENGTH.STRING),
status: Yup.string().required(),
invoice_message: Yup.string()
.trim()
.min(1)
.max(1024)
.max(DATATYPES_LENGTH.TEXT)
.label(formatMessage({ id: 'note' })),
terms_conditions: Yup.string()
.trim()
.min(1)
.max(1024)
.max(DATATYPES_LENGTH.TEXT)
.label(formatMessage({ id: 'note' })),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()
.nullable()
.nullable().max(DATATYPES_LENGTH.INT_10)
.when(['rate'], {
is: (rate) => rate,
then: Yup.number().required(),
}),
rate: Yup.number().nullable(),
rate: Yup.number().nullable().max(DATATYPES_LENGTH.INT_10),
item_id: Yup.number()
.nullable()
.when(['quantity', 'rate'], {
is: (quantity, rate) => quantity || rate,
then: Yup.number().required(),
}),
discount: Yup.number().nullable().min(0).max(100),
description: Yup.string().nullable(),
discount: Yup.number().nullable().min(0).max(DATATYPES_LENGTH.INT_10),
description: Yup.string().nullable().max(DATATYPES_LENGTH.TEXT),
}),
),
});
export const CreateInvoiceFormSchema = Schema;
export const EditInvoiceFormSchema = Schema;
export const EditInvoiceFormSchema = Schema;

View File

@@ -26,6 +26,10 @@ import withPaymentReceiveDetail from './withPaymentReceiveDetail';
import withPaymentReceives from './withPaymentReceives';
import withSettings from 'containers/Settings/withSettings';
import withDashboardActions from 'containers/Dashboard/withDashboardActions';
import {
EditPaymentReceiveFormSchema,
CreatePaymentReceiveFormSchema,
} from './PaymentReceiveForm.schema';
import { AppToaster } from 'components';
import { compose } from 'utils';
@@ -64,7 +68,7 @@ function PaymentReceiveForm({
const [clearFormAlert, setClearFormAlert] = useState(false);
const { formatMessage } = useIntl();
const isNewMode = !paymentReceiveId;
const [localPaymentEntries, setLocalPaymentEntries] = useState(
paymentReceiveEntries,
);
@@ -96,37 +100,10 @@ function PaymentReceiveForm({
}, [localPaymentEntries, paymentReceiveEntries]);
// Form validation schema.
const validationSchema = Yup.object().shape({
customer_id: Yup.string()
.label(formatMessage({ id: 'customer_name_' }))
.required(),
payment_date: Yup.date()
.required()
.label(formatMessage({ id: 'payment_date_' })),
deposit_account_id: Yup.number()
.required()
.label(formatMessage({ id: 'deposit_account_' })),
full_amount: Yup.number().nullable(),
payment_receive_no: Yup.string().label(
formatMessage({ id: 'payment_receive_no_' }),
),
reference_no: Yup.string().min(1).max(255).nullable(),
description: Yup.string().nullable(),
entries: Yup.array().of(
Yup.object().shape({
id: Yup.number().nullable(),
due_amount: Yup.number().nullable(),
payment_amount: Yup.number().nullable().max(Yup.ref('due_amount')),
invoice_id: Yup.number()
.nullable()
.when(['payment_amount'], {
is: (payment_amount) => payment_amount,
then: Yup.number().required(),
}),
}),
),
});
const validationSchema = isNewMode
? CreatePaymentReceiveFormSchema
: EditPaymentReceiveFormSchema;
// Default payment receive entry.
const defaultPaymentReceiveEntry = {
id: null,
@@ -354,7 +331,6 @@ function PaymentReceiveForm({
changePageSubtitle,
]);
const handlePaymentReceiveNumberChanged = useCallback(
(payment_receive_no) => {
changePageSubtitle(`No.${payment_receive_no}`);

View File

@@ -0,0 +1,37 @@
import * as Yup from 'yup';
import { formatMessage } from 'services/intl';
import { DATATYPES_LENGTH } from 'common/dataTypes';
const Schema = Yup.object().shape({
customer_id: Yup.string()
.label(formatMessage({ id: 'customer_name_' }))
.required(),
payment_date: Yup.date()
.required()
.label(formatMessage({ id: 'payment_date_' })),
deposit_account_id: Yup.number()
.required()
.label(formatMessage({ id: 'deposit_account_' })),
full_amount: Yup.number().nullable(),
payment_receive_no: Yup.string()
.max(DATATYPES_LENGTH.STRING)
.label(formatMessage({ id: 'payment_receive_no_' })),
reference_no: Yup.string().min(1).max(DATATYPES_LENGTH.STRING).nullable(),
description: Yup.string().nullable().max(DATATYPES_LENGTH.TEXT),
entries: Yup.array().of(
Yup.object().shape({
id: Yup.number().nullable(),
due_amount: Yup.number().nullable(),
payment_amount: Yup.number().nullable().max(Yup.ref('due_amount')),
invoice_id: Yup.number()
.nullable()
.when(['payment_amount'], {
is: (payment_amount) => payment_amount,
then: Yup.number().required(),
}),
}),
),
});
export const CreatePaymentReceiveFormSchema = Schema;
export const EditPaymentReceiveFormSchema = Schema;

View File

@@ -1,5 +1,6 @@
import * as Yup from 'yup';
import { formatMessage } from 'services/intl';
import { DATATYPES_LENGTH } from 'common/dataTypes';
const Schema = Yup.object().shape({
customer_id: Yup.string()
@@ -10,38 +11,40 @@ const Schema = Yup.object().shape({
.label(formatMessage({ id: 'receipt_date_' })),
receipt_number: Yup.string()
.nullable()
.max(DATATYPES_LENGTH.STRING)
.label(formatMessage({ id: 'receipt_no_' })),
deposit_account_id: Yup.number()
.required()
.label(formatMessage({ id: 'deposit_account_' })),
reference_no: Yup.string().min(1).max(255),
reference_no: Yup.string().min(1).max(DATATYPES_LENGTH.STRING),
receipt_message: Yup.string()
.trim()
.min(1)
.max(1024)
.max(DATATYPES_LENGTH.STRING)
.label(formatMessage({ id: 'receipt_message_' })),
statement: Yup.string()
.trim()
.min(1)
.max(1024)
.max(DATATYPES_LENGTH.TEXT)
.label(formatMessage({ id: 'note' })),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()
.nullable()
.max(DATATYPES_LENGTH.INT_10)
.when(['rate'], {
is: (rate) => rate,
then: Yup.number().required(),
}),
rate: Yup.number().nullable(),
rate: Yup.number().nullable().max(DATATYPES_LENGTH.INT_10),
item_id: Yup.number()
.nullable()
.when(['quantity', 'rate'], {
is: (quantity, rate) => quantity || rate,
then: Yup.number().required(),
}),
discount: Yup.number().nullable().min(0).max(100),
description: Yup.string().nullable(),
discount: Yup.number().nullable().min(0).max(DATATYPES_LENGTH.INT_10),
description: Yup.string().nullable().max(DATATYPES_LENGTH.TEXT),
}),
),
});