/**
* CentralIT - CITSmart.
*/
package br.com.centralit.citcorpore.negocio;
import java.util.List;
import br.com.centralit.citcorpore.bean.BaseItemConfiguracaoDTO;
import br.com.centralit.citcorpore.integracao.BaseItemConfiguracaoDAO;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.PersistenceException;
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.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
/**
* Service EJB de BaseItemConfiguracao.
*
* @author valdoilo.damasceno
*
*/
public class BaseItemConfiguracaoServiceEjb extends CrudServiceImpl implements BaseItemConfiguracaoService {
private BaseItemConfiguracaoDAO dao;
@Override
protected BaseItemConfiguracaoDAO getDao() {
if (dao == null) {
dao = new BaseItemConfiguracaoDAO();
}
return dao;
}
@Override
public IDto[] create(final BaseItemConfiguracaoDTO[] baseItemConfiguracao) throws ServiceException, LogicException {
final TransactionControler transactionControler = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
this.getDao().setTransactionControler(transactionControler);
transactionControler.start();
baseItemConfiguracao[0].setDataInicio(UtilDatas.getDataAtual());
baseItemConfiguracao[0] = (BaseItemConfiguracaoDTO) this.getDao().create(baseItemConfiguracao[0]);
for (int i = 1; i < baseItemConfiguracao.length; i++) {
if (baseItemConfiguracao[i] != null) {
baseItemConfiguracao[i].setIdBaseItemConfiguracaoPai(baseItemConfiguracao[0].getId());
baseItemConfiguracao[i] = (BaseItemConfiguracaoDTO) this.getDao().create(baseItemConfiguracao[i]);
}
}
transactionControler.commit();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transactionControler, e);
} finally {
try {
transactionControler.close();
} catch (final PersistenceException e) {
e.printStackTrace();
}
}
return baseItemConfiguracao;
}
@Override
public void update(final BaseItemConfiguracaoDTO[] vetorBaseItemConfiguracao) throws ServiceException, LogicException {
final TransactionControler transactionControler = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
this.getDao().setTransactionControler(transactionControler);
transactionControler.start();
final List<IDto> filhos = this.restoreChildren(vetorBaseItemConfiguracao[0]);
this.getDao().update(vetorBaseItemConfiguracao[0]);
for (int i = 1; i < vetorBaseItemConfiguracao.length; i++) {
if (vetorBaseItemConfiguracao[i] != null) {
vetorBaseItemConfiguracao[i].setIdBaseItemConfiguracaoPai(vetorBaseItemConfiguracao[0].getId());
for (final IDto iDto : filhos) {
final BaseItemConfiguracaoDTO dto = (BaseItemConfiguracaoDTO) iDto;
if (dto.getTipoexecucao().equals(vetorBaseItemConfiguracao[i].getTipoexecucao())) {
vetorBaseItemConfiguracao[i].setId(dto.getId());
break;
}
}
if (vetorBaseItemConfiguracao[i].getId() != null) {
this.getDao().update(vetorBaseItemConfiguracao[i]);
} else {
this.getDao().create(vetorBaseItemConfiguracao[i]);
}
}
}
transactionControler.commit();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(transactionControler, e);
} finally {
transactionControler.closeQuietly();
}
}
/*
* @Override
* public IDto create(BaseItemConfiguracaoDTO baseItemConfiguracaoBean, HttpServletRequest request) throws ServiceException, LogicException {
* this.setBaseItemConfiguracaoBean(baseItemConfiguracaoBean);
* TransactionControler transactionControler = new TransactionControlerImpl(this.getBaseItemConfiguracaoDao().getAliasDB());
* try {
* this.validaCreate(this.getBaseItemConfiguracaoBean());
* this.getBaseItemConfiguracaoDao().setTransactionControler(transactionControler);
* this.getValorDao().setTransactionControler(transactionControler);
* transactionControler.start();
* this.getBaseItemConfiguracaoBean().setDataInicio(UtilDatas.getDataAtual());
* this.setBaseItemConfiguracaoBean((BaseItemConfiguracaoDTO) this.getBaseItemConfiguracaoDao().create(this.getBaseItemConfiguracaoBean()));
* this.criarEAssociarValorDaCaracteristicaAoItemConfiguracao();
* transactionControler.commit();
* transactionControler.close();
* } catch (Exception e) {
* e.printStackTrace();
* this.rollbackTransaction(transactionControler, e);
* }
* return this.getBaseItemConfiguracaoBean();
* }
*/
@Override
public List<IDto> restoreChildren(final BaseItemConfiguracaoDTO baseItemConfiguracaoBean) throws Exception {
return this.getDao().restoreFilhos(baseItemConfiguracaoBean);
}
/*
* @Override
* public void update(IDto baseItemConfiguracao) throws ServiceException, LogicException {
* this.setBaseItemConfiguracaoBean(baseItemConfiguracao);
* try {
* this.getBaseItemConfiguracaoBean().setTipoexecucao("I");
* this.criarEAssociarValorDaCaracteristicaAoItemConfiguracao();
* } catch (Exception e) {
* e.printStackTrace();
* }
* super.update(baseItemConfiguracao);
* }
*/
/**
* Cria ou Atualiza associa��o do Valor da Caracter�stica ao �tem de Configura��o.
*
* @throws Exception
* @author valdoilo.damasceno
*/
/*
* private void criarEAssociarValorDaCaracteristicaAoItemConfiguracao() throws Exception {
* if(this.getBaseItemConfiguracaoBean().getTipoItemConfiguracao() != null){
* if (this.getBaseItemConfiguracaoBean().getTipoItemConfiguracao().getCaracteristicas() != null
* && !this.getBaseItemConfiguracaoBean().getTipoItemConfiguracao().getCaracteristicas().isEmpty()) {
* for (int i = 0; i < this.getBaseItemConfiguracaoBean().getTipoItemConfiguracao().getCaracteristicas().size(); i++) {
* ValorDTO valor = this.getValorService().restore(this.getBaseItemConfiguracaoBean().getId(),
* this.getCaracteristicaBean(i).getIdCaracteristica());
* if (valor != null) {
* valor.setValorStr(this.getCaracteristicaBean(i).getValorString());
* valor.setValorLongo(this.getCaracteristicaBean(i).getValorString());
* this.getValorService().update(valor);
* } else {
* valor = new ValorDTO();
* valor.setIdBaseItemConfiguracao(this.getBaseItemConfiguracaoBean().getId());
* valor.setIdCaracteristica(this.getCaracteristicaBean(i).getIdCaracteristica());
* valor.setValorStr(this.getCaracteristicaBean(i).getValorString());
* valor.setValorLongo(this.getCaracteristicaBean(i).getValorString());
* this.getValorDao().create(valor);
* }
* }
* }
* }
* }
*/
/**
* Cria nova inst�ncia de TransactionController.
*
* @author valdoilo.damasceno
* @throws ServiceException
* @author valdoilo.damasceno
*/
// public void setTransactionControler() throws ServiceException {
// this.transactionControler = new TransactionControlerImpl(this.getBaseItemConfiguracaoDao().getAliasDB());
// }
//
// /**
// * Retorna TransactionControler.
// *
// * @return TransactionControler
// * @author valdoilo.damasceno
// */
// public TransactionControler getTransactionControler() {
// return this.transactionControler;
// }
/**
* Retorna Bean de BaseItemConfiguracao.
*
* @return valor do atributo baseItemConfiguracaoBean.
* @author valdoilo.damasceno
*/
/*
* public BaseItemConfiguracaoDTO getBaseItemConfiguracaoBean() {
* return baseItemConfiguracaoBean;
* }
*/
/**
* Retorna DAO de Valor.
*
* @return valor do atributo valorDao.
* @author valdoilo.damasceno
*/
/*
* public ValorDao getValorDao() {
* return valorDao;
* }
*/
/**
* Retorna Service de Valor.
*
* @return ValorService
* @throws ServiceException
* @throws Exception
* @author valdoilo.damasceno
*/
public ValorService getValorService() throws ServiceException, Exception {
return (ValorService) ServiceLocator.getInstance().getService(ValorService.class, null);
}
@Override
public boolean existBaseItemConfiguracao(final BaseItemConfiguracaoDTO dto) throws Exception {
return this.getDao().existBaseItemConfiguracao(dto);
}
}