package br.com.centralit.citcorpore.negocio;
import java.util.Iterator;
import br.com.centralit.citcorpore.bean.ImportConfigCamposDTO;
import br.com.centralit.citcorpore.bean.ImportConfigDTO;
import br.com.centralit.citcorpore.bean.ImportarDadosDTO;
import br.com.centralit.citcorpore.integracao.ImportConfigCamposDao;
import br.com.centralit.citcorpore.integracao.ImportConfigDao;
import br.com.citframework.dto.IDto;
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;
@SuppressWarnings("rawtypes")
public class ImportConfigServiceEjb extends CrudServiceImpl implements ImportConfigService {
private ImportConfigDao dao;
@Override
protected ImportConfigDao getDao() {
if (dao == null) {
dao = new ImportConfigDao();
}
return dao;
}
@Override
public IDto create(IDto model) throws ServiceException, LogicException {
// Instancia Objeto controlador de transacao
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
final ImportConfigDTO importConfigDTO = (ImportConfigDTO) model;
final ImportConfigCamposDao importConfigCamposDao = new ImportConfigCamposDao();
try {
// Faz validacao, caso exista.
this.validaCreate(model);
// Instancia ou obtem os DAOs necessarios.
// Seta o TransactionController para os DAOs
this.getDao().setTransactionControler(tc);
importConfigCamposDao.setTransactionControler(tc);
// Inicia transacao
tc.start();
// Executa operacoes pertinentes ao negocio.
model = this.getDao().create(model);
if (importConfigDTO.getColDadosCampos() != null) {
for (final Iterator it = importConfigDTO.getColDadosCampos().iterator(); it.hasNext();) {
final ImportConfigCamposDTO importConfigCamposDTO = (ImportConfigCamposDTO) it.next();
importConfigCamposDTO.setIdImportConfig(importConfigDTO.getIdImportConfig());
importConfigCamposDao.create(importConfigCamposDTO);
}
}
// 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 TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
final ImportConfigDTO importConfigDTO = (ImportConfigDTO) model;
final ImportConfigCamposDao importConfigCamposDao = new ImportConfigCamposDao();
try {
// Faz validacao, caso exista.
this.validaUpdate(model);
// Seta o TransactionController para os DAOs
this.getDao().setTransactionControler(tc);
importConfigCamposDao.setTransactionControler(tc);
// Inicia transacao
tc.start();
// Executa operacoes pertinentes ao negocio.
this.getDao().update(model);
importConfigCamposDao.deleteByIdImportConfig(importConfigDTO.getIdImportConfig());
if (importConfigDTO.getColDadosCampos() != null) {
for (final Iterator it = importConfigDTO.getColDadosCampos().iterator(); it.hasNext();) {
final ImportConfigCamposDTO importConfigCamposDTO = (ImportConfigCamposDTO) it.next();
importConfigCamposDTO.setIdImportConfig(importConfigDTO.getIdImportConfig());
importConfigCamposDao.create(importConfigCamposDTO);
}
}
// Faz commit e fecha a transacao.
tc.commit();
tc.close();
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
}
}
/**
* Exclui o registro ImportConfigDTO e seus itens ImportConfigCampos
*/
@Override
public void excluirRegistroESubItens(final ImportConfigDTO importConfigDTO) throws ServiceException, LogicException {
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
final ImportConfigCamposDao importConfigCamposDao = new ImportConfigCamposDao();
try {
// Seta o TransactionController para os DAOs
this.getDao().setTransactionControler(tc);
// importConfigCamposDao.setTransactionControler(tc);
// Inicia transacao
tc.start();
// Executa operacoes pertinentes ao negocio.
importConfigCamposDao.deleteByIdImportConfig(importConfigDTO.getIdImportConfig());
this.getDao().deleteByIdImportConfig(importConfigDTO.getIdImportConfig());
// Faz commit e fecha a transacao.
tc.commit();
tc.close();
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
}
}
@Override
public ImportConfigDTO consultarImportConfigDTO(final ImportarDadosDTO importarDadosDTO) throws Exception {
return this.getDao().consultarImportConfigDTO(importarDadosDTO);
}
/**
*
* Exclui o registro logicamente setando o campo dataFim com a data de execu��o
*
* @param importConfigDTO
* @throws ServiceException
* @throws LogicException
*/
@Override
public void excluirRegistroLogicamente(final Integer idImportarDados) throws ServiceException, LogicException {
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
final ImportConfigCamposDao importConfigCamposDao = new ImportConfigCamposDao();
try {
// Seta o TransactionController para os DAOs
this.getDao().setTransactionControler(tc);
importConfigCamposDao.setTransactionControler(tc);
// Inicia transacao
tc.start();
// Exclui logicamente o registro
importConfigCamposDao.deletarLogicamentePorIdImportarDados(idImportarDados);
// Faz commit e fecha a transacao.
tc.commit();
tc.close();
} catch (final Exception e) {
this.rollbackTransaction(tc, e);
}
}
}