package br.com.centralit.citcorpore.negocio; import br.com.centralit.citcorpore.bean.ParecerDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.integracao.ParecerDao; import br.com.citframework.excecao.LogicException; import br.com.citframework.integracao.TransactionControler; import br.com.citframework.service.CrudServiceImpl; import br.com.citframework.util.UtilDatas; public class ParecerServiceEjb extends CrudServiceImpl implements ParecerService { private ParecerDao dao; @Override protected ParecerDao getDao() { if (dao == null) { dao = new ParecerDao(); } return dao; } public ParecerDTO create(final TransactionControler tc, final UsuarioDTO usuario, final Integer idJustificativa, final String complementoJustificativa, String aprovado) throws Exception { if (aprovado == null) { aprovado = "N"; } if (aprovado.equalsIgnoreCase("N") && idJustificativa == null) { throw new LogicException("Justificativa n�o informada"); } final ParecerDao parecerDao = new ParecerDao(); parecerDao.setTransactionControler(tc); final ParecerDTO parecerDto = new ParecerDTO(); parecerDto.setIdResponsavel(usuario.getIdEmpregado()); parecerDto.setIdJustificativa(idJustificativa); parecerDto.setComplementoJustificativa(complementoJustificativa); parecerDto.setAprovado(aprovado); parecerDto.setDataHoraParecer(UtilDatas.getDataHoraAtual()); return (ParecerDTO) parecerDao.create(parecerDto); } public ParecerDTO createOrUpdate(final TransactionControler tc, final Integer idParecer, final UsuarioDTO usuario, final Integer idJustificativa, final String complementoJustificativa, String aprovado) throws Exception { final ParecerDao parecerDao = new ParecerDao(); parecerDao.setTransactionControler(tc); ParecerDTO parecerDto = new ParecerDTO(); if (idParecer != null && idParecer.intValue() > 0) { parecerDto.setIdParecer(idParecer); parecerDto = (ParecerDTO) parecerDao.restore(parecerDto); if (parecerDto.getIdResponsavel().intValue() != usuario.getIdEmpregado().intValue()) { parecerDto = new ParecerDTO(); } } if (aprovado == null) { aprovado = "N"; } if (aprovado.equalsIgnoreCase("N") && idJustificativa == null) { throw new LogicException("Justificativa n�o informada"); } parecerDto.setIdResponsavel(usuario.getIdEmpregado()); parecerDto.setIdJustificativa(idJustificativa); parecerDto.setComplementoJustificativa(complementoJustificativa); parecerDto.setAprovado(aprovado); parecerDto.setDataHoraParecer(UtilDatas.getDataHoraAtual()); if (parecerDto.getIdParecer() != null) { parecerDao.update(parecerDto); } else { parecerDto = (ParecerDTO) parecerDao.create(parecerDto); } return parecerDto; } @Override public boolean verificarSeExisteJustificativaParecer(final ParecerDTO obj) throws Exception { return this.getDao().verificarSeExisteJustificativaParecer(obj); } }