mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
import * as Yup from 'yup';
|
|
import intl from 'react-intl-universal';
|
|
import { DATATYPES_LENGTH } from 'common/dataTypes';
|
|
import { isBlank } from 'utils';
|
|
|
|
const Schema = Yup.object().shape({
|
|
beneficiary: Yup.string().label(intl.get('beneficiary')),
|
|
payment_account_id: Yup.number()
|
|
.required()
|
|
.label(intl.get('payment_account_')),
|
|
payment_date: Yup.date().required().label(intl.get('payment_date_')),
|
|
reference_no: Yup.string().min(1).max(DATATYPES_LENGTH.STRING).nullable(),
|
|
currency_code: Yup.string()
|
|
.nullable()
|
|
.max(3)
|
|
.label(intl.get('currency_code')),
|
|
description: Yup.string()
|
|
.trim()
|
|
.min(1)
|
|
.max(DATATYPES_LENGTH.TEXT)
|
|
.nullable()
|
|
.label(intl.get('description')),
|
|
publish: Yup.boolean(),
|
|
categories: Yup.array().of(
|
|
Yup.object().shape({
|
|
index: Yup.number().min(1).max(DATATYPES_LENGTH.INT_10).nullable(),
|
|
amount: Yup.number().nullable(),
|
|
expense_account_id: Yup.number()
|
|
.nullable()
|
|
.when(['amount'], {
|
|
is: (amount) => !isBlank(amount),
|
|
then: Yup.number().required(),
|
|
}),
|
|
landed_cost: Yup.boolean(),
|
|
description: Yup.string().max(DATATYPES_LENGTH.TEXT).nullable(),
|
|
}),
|
|
),
|
|
});
|
|
|
|
export const CreateExpenseFormSchema = Schema;
|
|
export const EditExpenseFormSchema = Schema;
|