src/models/financialTaxes.js
import { DEFAULT_LATEST } from 'constants/dateLimits'
const taxFailureTypes = [
'File',
'Pay',
'Both',
]
const financialTaxes = {
Failure: {
presence: true,
hasValue: {
validator: {
inclusion: taxFailureTypes,
},
},
},
Year: (value, attributes, attributeName, options = {}) => {
const { applicantBirthdate } = options
return {
presence: true,
date: {
requireMonth: false,
requireDay: false,
earliest: applicantBirthdate,
latest: DEFAULT_LATEST,
},
}
},
Reason: { presence: true, hasValue: true },
Agency: { presence: true, hasValue: true },
TaxType: { presence: true, hasValue: true },
Amount: {
presence: true,
hasValue: {
validator: {
numericality: {
greaterThan: 0,
},
},
},
},
Date: (value, attributes = {}) => {
const { DateNotApplicable, Year } = attributes
if (DateNotApplicable && DateNotApplicable.applicable === false) {
return {}
}
const dateLimits = { latest: DEFAULT_LATEST }
if (Year) dateLimits.earliest = Year
return {
presence: true,
date: { requireDay: false, ...dateLimits },
}
},
Description: { presence: true, hasValue: true },
}
export default financialTaxes