mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import * as Yup from 'yup';
|
|
import intl from 'react-intl-universal';
|
|
import { DATATYPES_LENGTH } from '@/constants/dataTypes';
|
|
|
|
const Schema = Yup.object().shape({
|
|
journal_number: Yup.string()
|
|
.required()
|
|
.min(1)
|
|
.max(DATATYPES_LENGTH.STRING)
|
|
.label(intl.get('journal_number_')),
|
|
journal_type: Yup.string()
|
|
.required()
|
|
.min(1)
|
|
.max(DATATYPES_LENGTH.STRING)
|
|
.label(intl.get('journal_type')),
|
|
date: Yup.date().required().label(intl.get('date')),
|
|
currency_code: Yup.string().max(3),
|
|
publish: Yup.boolean(),
|
|
branch_id: Yup.string(),
|
|
reference: Yup.string().nullable().min(1).max(DATATYPES_LENGTH.STRING),
|
|
description: Yup.string().min(1).max(DATATYPES_LENGTH.STRING).nullable(),
|
|
exchange_rate: Yup.number(),
|
|
entries: Yup.array().of(
|
|
Yup.object().shape({
|
|
credit: Yup.number().nullable(),
|
|
debit: Yup.number().nullable(),
|
|
account_id: Yup.number()
|
|
.nullable()
|
|
.when(['credit', 'debit'], {
|
|
is: (credit, debit) => credit || debit,
|
|
then: Yup.number().required(),
|
|
}),
|
|
contact_id: Yup.number().nullable(),
|
|
contact_type: Yup.string().nullable(),
|
|
project_id: Yup.number().nullable(),
|
|
note: Yup.string().max(DATATYPES_LENGTH.TEXT).nullable(),
|
|
}),
|
|
),
|
|
});
|
|
|
|
export const CreateJournalSchema = Schema;
|
|
export const EditJournalSchema = Schema;
|