package br.com.centralit.citcorpore.negocio; import java.util.Collection; import java.util.Iterator; import br.com.centralit.citcorpore.bean.MarcoPagamentoPrjDTO; import br.com.centralit.citcorpore.integracao.MarcoPagamentoPrjDao; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; 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 MarcoPagamentoPrjServiceEjb extends CrudServiceImpl implements MarcoPagamentoPrjService { private MarcoPagamentoPrjDao dao; @Override protected MarcoPagamentoPrjDao getDao() { if (dao == null) { dao = new MarcoPagamentoPrjDao(); } return dao; } @Override public Collection findByIdProjeto(final Integer parm) throws Exception { try { return this.getDao().findByIdProjeto(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByIdProjeto(final Integer parm) throws Exception { try { this.getDao().deleteByIdProjeto(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void saveFromCollection(final Collection colItens, final Integer idProjetoParm) throws ServiceException, LogicException { // Instancia Objeto controlador de transacao final MarcoPagamentoPrjDao crudDao = new MarcoPagamentoPrjDao(); final TransactionControler tc = new TransactionControlerImpl(crudDao.getAliasDB()); try { // Seta o TransactionController para os DAOs crudDao.setTransactionControler(tc); // Inicia transacao tc.start(); for (final Iterator it = colItens.iterator(); it.hasNext();) { MarcoPagamentoPrjDTO model = (MarcoPagamentoPrjDTO) it.next(); model.setDataUltAlteracao(UtilDatas.getDataAtual()); final String hora = UtilDatas.getHoraHHMM(UtilDatas.getDataHoraAtual()).replaceAll(":", ""); model.setHoraUltAlteracao(hora); model.setUsuarioUltAlteracao(usuario.getNomeUsuario()); if (model.getIdMarcoPagamentoPrj() != null && model.getIdMarcoPagamentoPrj().intValue() > 0) { // Faz validacao, caso exista. this.validaUpdate(model); // Executa operacoes pertinentes ao negocio. crudDao.updateNotNull(model); } else { model.setSituacao("E"); // Faz validacao, caso exista. this.validaCreate(model); // Executa operacoes pertinentes ao negocio. model = (MarcoPagamentoPrjDTO) crudDao.create(model); } } crudDao.deleteByIdProjetoNotIn(idProjetoParm, colItens); // Faz commit e fecha a transacao. tc.commit(); tc.close(); } catch (final Exception e) { this.rollbackTransaction(tc, e); } } }