viam-projectv-scan
Version:
ViaCheck deposit application
196 lines (186 loc) • 6.37 kB
JavaScript
// eslint-disable-next-line react/prefer-stateless-function
import React from 'react';
// const CheckRules = require('../../js/checks/checkRules');
const Utilities = require('../../js/checks/utilities');
const CheckStatusRules = require('../../js/checks/checkStatusRules');
const columnNumber = 7;
const checkTableRow = ({
index,
d,
onHandleKeyBoardTable,
onSetFocusRow,
onSetRef,
onChangeValue,
onSelectCheck,
validateRouting,
validateAccount,
validateCheckNumber,
validateAmount,
deleteCheck,
validateCheckDate,
onClickCheckTable,
checkSelected
}) => (
<tr
key={index}
className={CheckStatusRules.getStyleCheck(d, checkSelected)}
onKeyUp={event => onHandleKeyBoardTable(event, index)}
ref={onSetRef(`tr${index}`)}
onClick={() => onClickCheckTable(index)}
>
<td>
{d.isVerify ? (
<div className={CheckStatusRules.getClassNameGVerify(d.colorVerify)} />
) : (
<input
id={`txt${index * columnNumber + 1}`}
data-focus={index * columnNumber + 1}
type="checkbox"
aria-label="check-check"
className="select-check input-move"
// tabIndex = {index * columnNumber + 1}
checked={d.selected}
onChange={() => onSelectCheck(index)}
// onFocus={() => onSetFocusRow(index, 1)}
// ref={onSetRef(`txt${index * columnNumber + 1}`)}
/>
)}
</td>
<td className="date-width">
<input
id={`txt${index * columnNumber + 2}`}
data-focus={index * columnNumber + 2}
type="text"
// onFocus={() => onSetFocusRow(index, 2)}
onChange={event => onChangeValue(event, 2)}
value={d.checkDate}
onBlur={event => validateCheckDate(event)}
className={
(d.scoreFields.checkDate < d.limitDateScore ||
!d.validFields.date ||
d.scoreFields.checkDate === 0) &&
!d.isModifiedFields.checkDate &&
d.isOcr
? 'error-value input-move'
: 'creation-date lato-font text-center text-blue input-move'
}
tabIndex={index * columnNumber + 1}
onKeyPress={event => Utilities.isDate(event)}
// ref={onSetRef(`txt${index * columnNumber + 2}`)}
disabled={d.disableCell}
/>
</td>
<td>
<input
id={`txt${index * columnNumber + 3}`}
data-focus={index * columnNumber + 3}
maxLength="15"
size="16"
onChange={event => onChangeValue(event, 3)}
value={d.checkNumber}
className={
(d.scoreFields.checkNumber < d.limitCheckNumberScore ||
d.scoreFields.checkNumber === 0 ||
!d.validFields.checkNumber) &&
!d.isModifiedFields.checkNumber &&
d.isOcr
? 'error-value input-move'
: 'input-move'
}
tabIndex={index * columnNumber + 1}
// onFocus={() => onSetFocusRow(index, 3)}
// ref={onSetRef(`txt${index * columnNumber + 3}`)}
onKeyPress={event => Utilities.isNumeric(event)}
onBlur={event => validateCheckNumber(event)}
disabled={d.disableCell}
/>
</td>
<td>
<input
id={`txt${index * columnNumber + 4}`}
data-focus={index * columnNumber + 4}
maxLength="9"
size="13"
onChange={event => onChangeValue(event, 4)}
value={d.routing}
className={
(d.scoreFields.routing < d.limitRoutingScore ||
d.scoreFields.routing === 0 ||
!d.validFields.routing) &&
!d.isModifiedFields.routing &&
d.isOcr
? 'error-value input-move'
: 'input-move'
}
tabIndex={index * columnNumber + 1}
// onFocus={() => onSetFocusRow(index, 4)}
// ref={onSetRef(`txt${index * columnNumber + 4}`)}
onKeyPress={event => Utilities.isNumeric(event)}
onBlur={event => validateRouting(event)}
disabled={d.disableCell}
/>
</td>
<td>
<input
id={`txt${index * columnNumber + 5}`}
data-focus={index * columnNumber + 5}
maxLength="18"
size="18"
// type="number"
onChange={event => onChangeValue(event, 5)}
className={
(d.scoreFields.mircLine < d.limitAccountScore ||
!d.validFields.account ||
d.scoreFields.mircLine === 0) &&
!d.isModifiedFields.account &&
d.isOcr
? 'error-value input-move'
: 'input-move'
}
tabIndex={index * columnNumber + 1}
value={d.account}
// onFocus={() => onSetFocusRow(index, 5)}
// ref={onSetRef(`txt${index * columnNumber + 5}`)}
onKeyPress={event => Utilities.isNumeric(event)}
onBlur={event => validateAccount(event)}
disabled={d.disableCell}
/>
</td>
<td>
<input
id={`txt${index * columnNumber + 6}`}
data-focus={index * columnNumber + 6}
type="text"
size="10"
onChange={event => onChangeValue(event, 6)}
className={
(d.scoreFields.amount < d.limitAmountScore ||
!d.validFields.amount ||
d.scoreFields.amount === 0) &&
!d.isModifiedFields.amount &&
d.isOcr
? 'error-value input-move'
: 'money-count text-green lato-font input-move'
}
tabIndex={index * columnNumber + 1}
value={d.isEditing ? d.amount : Utilities.setAmountFormat(d.amount)}
onBlur={event => validateAmount(event)}
onFocus={() => onSetFocusRow(index, 6)}
disabled={d.disableCell}
onKeyPress={event => Utilities.isDecimal(event)}
/>
</td>
<td className="check-option grey-line">
<button
id={`txt${index * columnNumber + 7}`}
type="button"
className="btn item-delete text-muted lato-font"
data-focus={index * columnNumber + 7}
onClick={() => deleteCheck()}
ref={onSetRef(`txt${index * columnNumber + 7}`)}
disabled={d.disableCell}
/>
</td>
</tr>
);
export default checkTableRow;