Search in sources :

Example 1 with PeriodicalAccountEntryBean

use of com.autentia.tnt.bean.account.PeriodicalAccountEntryBean in project TNTConcept by autentia.

the class PeriodicalAccountEntryValidator method validate.

/**
 */
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
    log.info("validate - value = " + value);
    if (value != null) {
        // Check if value is a BigDecimal
        if (!(value instanceof BigDecimal)) {
            log.info("validate - value is not a BigDecimal (" + value.getClass().getName() + ")");
            throw new ValidatorException(new FacesMessage("Las cantidades monetarias deben ser de tipo BigDecimal"));
        }
        // Check if it has no more than 2 decimal digits
        BigDecimal bd = (BigDecimal) value;
        if (bd.scale() > 2) {
            log.info("validate - value has more than 2 decimals (" + value + ")");
            throw new ValidatorException(new FacesMessage("Las cantidades monetarias no pueden tener mas de dos decimales"));
        }
        PeriodicalAccountEntryBean bean = (PeriodicalAccountEntryBean) FacesUtils.getBean("periodicalAccountEntryBean");
        AccountEntryType type = bean.getType();
        AccountEntryGroup group = type.getGroup();
        if (group.getId() == ConfigurationUtil.getDefault().getCostId()) {
            if (bd.signum() != -1) {
                log.info("validate - value cost is negative (" + value + ")");
                throw new ValidatorException(new FacesMessage("La cantidad debe ser negativa"));
            }
        }
        if (group.getId() == ConfigurationUtil.getDefault().getIncomeId()) {
            if (bd.signum() != 1) {
                log.info("validate - value incom is positive (" + value + ")");
                throw new ValidatorException(new FacesMessage("La cantidad debe ser positiva"));
            }
        }
    }
}
Also used : PeriodicalAccountEntryBean(com.autentia.tnt.bean.account.PeriodicalAccountEntryBean) AccountEntryType(com.autentia.tnt.businessobject.AccountEntryType) AccountEntryGroup(com.autentia.tnt.businessobject.AccountEntryGroup)

Aggregations

PeriodicalAccountEntryBean (com.autentia.tnt.bean.account.PeriodicalAccountEntryBean)1 AccountEntryGroup (com.autentia.tnt.businessobject.AccountEntryGroup)1 AccountEntryType (com.autentia.tnt.businessobject.AccountEntryType)1