package br.com.centralit.citcorpore.negocio; import java.sql.Date; import java.util.Collection; import br.com.centralit.citcorpore.bean.ContratoQuestionariosDTO; import br.com.centralit.citcorpore.bean.ControleQuestionariosDTO; import br.com.centralit.citcorpore.integracao.ContratoQuestionariosDao; import br.com.centralit.citcorpore.integracao.ControleQuestionariosDao; import br.com.centralit.citquestionario.integracao.RespostaItemQuestionarioDao; import br.com.centralit.citquestionario.negocio.RespostaItemQuestionarioServiceBean; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.integracao.CrudDAO; import br.com.citframework.integracao.TransactionControler; import br.com.citframework.integracao.TransactionControlerImpl; import br.com.citframework.service.CrudServiceImpl; import br.com.citframework.util.UtilDatas; public class ContratoQuestionariosServiceEjb extends CrudServiceImpl implements ContratoQuestionariosService { private ContratoQuestionariosDao dao; @Override protected ContratoQuestionariosDao getDao() { if (dao == null) { dao = new ContratoQuestionariosDao(); } return dao; } @Override public Collection listByIdContratoAndAba(final Integer idContrato, final String aba) throws Exception { return this.getDao().listByIdContratoAndAba(idContrato, aba); } @Override public Collection listByIdContratoAndAbaOrdemCrescente(final Integer idContrato, final String aba) throws Exception { return this.getDao().listByIdContratoAndAbaOrdemCrescente(idContrato, aba); } @Override public ContratoQuestionariosDTO getUltimoByIdContratoAndAba(final Integer idContrato, final String aba) throws Exception { return this.getDao().getUltimoByIdContratoAndAba(idContrato, aba); } @Override public ContratoQuestionariosDTO getUltimoByIdContratoAndAbaAndPeriodo(final Integer idContrato, final String aba, final Date dataInicio, final Date dataFim) throws Exception { return this.getDao().getUltimoByIdContratoAndAbaAndPeriodo(idContrato, aba, dataInicio, dataFim); } @Override public Collection listByIdContratoAndQuestionario(final Integer idQuestionario, final Integer idContrato) throws Exception { return this.getDao().listByIdContratoAndQuestionario(idQuestionario, idContrato); } @Override public Collection listByIdContrato(final Integer idContrato) throws Exception { return this.getDao().listByIdContrato(idContrato); } @Override public Collection listByIdContratoOrderDecrescente(final Integer idContrato) throws Exception { return this.getDao().listByIdContratoOrderDecrescente(idContrato); } @Override public Collection listByIdContratoOrderIdDecrescente(final Integer idContrato) throws Exception { return this.getDao().listByIdContratoOrderIdDecrescente(idContrato); } @Override public ContratoQuestionariosDTO getQuantidadeByIdDepEstabAndAba(final Integer idDepartamento, final Integer idEstabelecimento, final Integer idCargo, final String aba) throws Exception { return this.getDao().getQuantidadeByIdDepEstabAndAba(idDepartamento, idEstabelecimento, idCargo, aba); } @Override public ContratoQuestionariosDTO getQuantidadeByIdDepEstabAndAbaAndPeriodo(final Integer idDepartamento, final Integer idEstabelecimento, final Integer idCargo, final String aba, final Date dataInicio, final Date dataFim) throws Exception { return this.getDao().getQuantidadeByIdDepEstabAndAbaAndPeriodo(idDepartamento, idEstabelecimento, idCargo, aba, dataInicio, dataFim); } @Override public ContratoQuestionariosDTO getQuantidadeByIdDepEstabAndAbaAndPeriodoFinalizados(final Integer idDepartamento, final Integer idEstabelecimento, final Integer idCargo, final String aba, final Date dataInicio, final Date dataFim) throws Exception { return this.getDao().getQuantidadeByIdDepEstabAndAbaAndPeriodoFinalizados(idDepartamento, idEstabelecimento, idCargo, aba, dataInicio, dataFim); } @Override public ContratoQuestionariosDTO getQuantidadeByIdDepEstabFuncaoAndAbaAndPeriodo(final Integer idDepartamento, final Integer idEstabelecimento, final Integer idCargo, final Integer idFuncao, final String aba, final Date dataInicio, final Date dataFim) throws Exception { return this.getDao().getQuantidadeByIdDepEstabFuncaoAndAbaAndPeriodo(idDepartamento, idEstabelecimento, idCargo, idFuncao, aba, dataInicio, dataFim); } @Override public IDto create(IDto model) throws ServiceException, LogicException { // Instancia Objeto controlador de transacao final CrudDAO crudDao = this.getDao(); final ControleQuestionariosDao controleQuestionariosDao = new ControleQuestionariosDao(); final TransactionControler tc = new TransactionControlerImpl(crudDao.getAliasDB()); final ContratoQuestionariosDTO contratoQuestionariosDTO = (ContratoQuestionariosDTO) model; final RespostaItemQuestionarioServiceBean respostaItemQuestionarioServiceBean = new RespostaItemQuestionarioServiceBean(); try { // Faz validacao, caso exista. this.validaCreate(model); // Seta o TransactionController para os DAOs crudDao.setTransactionControler(tc); controleQuestionariosDao.setTransactionControler(tc); // Inicia transacao tc.start(); ControleQuestionariosDTO controleQuestionariosDto = new ControleQuestionariosDTO(); controleQuestionariosDto = (ControleQuestionariosDTO) controleQuestionariosDao.create(controleQuestionariosDto); contratoQuestionariosDTO.setIdContratoQuestionario(controleQuestionariosDto.getIdControleQuestionario()); // Executa operacoes pertinentes ao negocio. contratoQuestionariosDTO.setDatahoragrav(UtilDatas.getDataHoraAtual()); model = crudDao.create(model); final Integer idIdentificadorResposta = contratoQuestionariosDTO.getIdContratoQuestionario(); respostaItemQuestionarioServiceBean.processCollection(tc, contratoQuestionariosDTO.getColValores(), contratoQuestionariosDTO.getColAnexos(), idIdentificadorResposta, null); // Faz commit e fecha a transacao. tc.commit(); tc.close(); return model; } catch (final Exception e) { this.rollbackTransaction(tc, e); } return model; } @Override public void update(final IDto model) throws ServiceException, LogicException { // Instancia Objeto controlador de transacao final CrudDAO crudDao = this.getDao(); final TransactionControler tc = new TransactionControlerImpl(crudDao.getAliasDB()); final RespostaItemQuestionarioDao respostaItemDao = new RespostaItemQuestionarioDao(); final ContratoQuestionariosDTO contratoQuestionariosDTO = (ContratoQuestionariosDTO) model; final RespostaItemQuestionarioServiceBean respostaItemQuestionarioServiceBean = new RespostaItemQuestionarioServiceBean(); try { // Faz validacao, caso exista. this.validaUpdate(model); // Seta o TransactionController para os DAOs crudDao.setTransactionControler(tc); respostaItemDao.setTransactionControler(tc); final Integer idIdentificadorResposta = contratoQuestionariosDTO.getIdContratoQuestionario(); // Inicia transacao tc.start(); respostaItemDao.deleteByIdIdentificadorResposta(idIdentificadorResposta); // Executa operacoes pertinentes ao negocio. contratoQuestionariosDTO.setDatahoragrav(UtilDatas.getDataHoraAtual()); crudDao.update(model); respostaItemQuestionarioServiceBean.processCollection(tc, contratoQuestionariosDTO.getColValores(), contratoQuestionariosDTO.getColAnexos(), idIdentificadorResposta, null); // Faz commit e fecha a transacao. tc.commit(); tc.close(); } catch (final Exception e) { this.rollbackTransaction(tc, e); } } @Override public void updateConteudoImpresso(final Integer idPessQuest, final String conteudoImpresso) throws Exception { this.getDao().updateConteudoImpresso(idPessQuest, conteudoImpresso); } }