viam-projectv-scan
Version:
ViaCheck deposit application
164 lines (148 loc) • 5.42 kB
JavaScript
const CASH = 'CASH';
const BATCH_NUMBER = 21;
export const isPayableToCash = payee => {
let isCashPayee = 'false';
if (payee.toUpperCase().indexOf(CASH) > -1) {
isCashPayee = 'true';
}
return isCashPayee;
};
export const getHoldValidationFromResponse = checksOnHoldArray => {
const newHoldArray = [];
let batch = 0;
// console.log(checksOnHoldArray);
if (checksOnHoldArray !== undefined && checksOnHoldArray !== null) {
checksOnHoldArray.forEach(function getHoldRestriction(restrictions) {
if (restrictions !== undefined && restrictions !== null) {
if (restrictions.batchId !== 0) batch = restrictions.batchId;
if (
restrictions.onHoldValidations !== undefined &&
restrictions.onHoldValidations !== null
) {
restrictions.onHoldValidations.forEach(function getHolds(
holdsValidation
) {
newHoldArray.push(holdsValidation);
});
}
}
});
}
return { newHoldArray, batch };
};
export const restartSentHold = checksArray => {
const newcheckarray = checksArray;
newcheckarray.forEach(check => {
const newCheck = check;
newCheck.isSentHold = false;
});
return newcheckarray;
};
export const isAllArrayHoldProcess = checksArray => {
const newcheckarray = checksArray.filter(function getElement(check) {
return check.isSentHold === false;
});
return newcheckarray;
};
export const setSentHold = (checksArray, scanOrder) => {
const newCheck = checksArray.filter(function getElement(check) {
return check.scanOrder === scanOrder;
});
newCheck[0].isSentHold = true;
};
export const createNewArrayOnHoldRestrictions = (checksArray, holdsArray) => {
const newHoldArray = [];
let limit = 0;
const sysDate = new Date();
sysDate.setMonth(sysDate.getMonth() - 6);
holdsArray.forEach(check => {
const newCheck = check;
limit += 1;
if (limit < BATCH_NUMBER && !newCheck.isDeposit) {
setSentHold(checksArray, check.scanOrder);
newHoldArray.push({
id: check.scanOrder,
agencyID: check.agencyName,
userName: check.userName,
checkItem: {
amount: check.amount.toString(),
accountNumber: check.account,
transit: check.routing,
checkType: check.checkType,
payableToChash:
check.payee !== '' ? isPayableToCash(check.payee) : 'false',
state: check.stateCode,
mva: check.mva,
license: check.ownLicense.toString(),
bank: check.bank,
handWritten: check.scoreFields.mircLine.toString(),
checkNumberScore: check.scoreFields.checkNumber.toString(),
amountScore: check.scoreFields.amount.toString(),
dateScore: check.scoreFields.checkDate.toString(),
holdModified: check.modified.toString(),
hasSignature: check.signature,
isWrongCheckDate: (
check.checkDate === '' ||
check.checkDate === '0/0/0' ||
Number.isNaN(Date.parse(check.checkDate))
).toString(),
sysDate: `${sysDate.getMonth() +
1}/${sysDate.getDate()}/${sysDate.getFullYear()}`,
checkDate:
check.checkDate === '' ||
check.checkDate === '0/0/0' ||
Number.isNaN(Date.parse(check.checkDate))
? '1/1/0001'
: check.checkDate
}
});
}
});
return { newHoldArray, checksArray };
};
export const createArrayOnHoldRestrictions = checksArray => {
const checksOnHoldArray = [];
checksArray.forEach(element => {
const sysDate = new Date();
sysDate.setMonth(sysDate.getMonth() - 6);
checksOnHoldArray.push({
id: element.scanOrder,
agencyID: element.agencyName,
userName: element.userName,
checkItem: {
amount: element.amount.toString(),
accountNumber: element.account,
transit: element.routing,
checkType: element.checkType,
payableToChash:
element.payee !== '' ? isPayableToCash(element.payee) : 'false',
state: element.stateCode,
mva: element.mva,
license: element.ownLicense.toString(),
bank: element.bank,
handWritten: element.writeType === 'Printed' ? 'false' : 'true',
routingScore: element.scoreFields.mircLine.toString(),
checkNumberScore: element.scoreFields.checkNumber.toString(),
amountScore: element.scoreFields.amount.toString(),
dateScore: element.scoreFields.checkDate.toString(),
holdModified: element.modified.toString(),
hasSignature: element.signature,
isWrongCheckDate: (
element.checkDate === '' ||
element.checkDate === '0/0/0' ||
Number.isNaN(Date.parse(element.checkDate))
).toString(),
sysDate: `${sysDate.getMonth() +
1}/${sysDate.getDate()}/${sysDate.getFullYear()}`,
checkDate:
element.checkDate === '' ||
element.checkDate === '0/0/0' ||
Number.isNaN(Date.parse(element.checkDate))
? '1/1/0001'
: element.checkDate
}
});
});
return checksOnHoldArray;
};
export default createArrayOnHoldRestrictions;