/**
* CentralIT - CITSmart.
*/
package br.com.centralit.citcorpore.negocio;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringEscapeUtils;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citcorpore.bean.CaracteristicaDTO;
import br.com.centralit.citcorpore.bean.CaracteristicaTipoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.TipoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.integracao.CaracteristicaTipoItemConfiguracaoDAO;
import br.com.centralit.citcorpore.integracao.TipoItemConfiguracaoDAO;
import br.com.centralit.citcorpore.util.WebUtil;
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.util.UtilDatas;
/**
* EJB de Tipo Item Configura��o.
*
* @author valdoilo.damasceno
*/
public class TipoItemConfiguracaoServiceEjb extends CrudServiceImpl implements TipoItemConfiguracaoService {
private TipoItemConfiguracaoDAO dao;
@Override
protected TipoItemConfiguracaoDAO getDao() {
if (dao == null) {
dao = new TipoItemConfiguracaoDAO();
}
return dao;
}
private CaracteristicaTipoItemConfiguracaoDAO caracteristicaTipoItemConfiguracaoDao;
private TipoItemConfiguracaoDTO tipoItemConfiguracaoBean;
/*
* (non-Javadoc)
* @see br.com.centralit.citcorpore.negocio.TipoItemConfiguracaoService#create (br.com.citframework.dto.IDto, javax.servlet.http.HttpServletRequest)
*/
@Override
public IDto create(final IDto tipoItemConfiguracao, final HttpServletRequest request) throws ServiceException, LogicException {
this.setTipoItemConfiguracaoBean(tipoItemConfiguracao);
final TransactionControler tc = new TransactionControlerImpl(this.getDao().getAliasDB());
try {
this.validaCreate(this.getTipoItemConfiguracaoBean());
this.getDao().setTransactionControler(tc);
this.getCaracteristicaTipoItemConfiguracaoDao().setTransactionControler(tc);
tc.start();
this.getTipoItemConfiguracaoBean().setDataInicio(UtilDatas.getDataAtual());
this.getTipoItemConfiguracaoBean().setIdEmpresa(WebUtil.getIdEmpresa(request));
this.getDao().create(tipoItemConfiguracao);
this.criarEAssociarCaracteristicaAoTipoItemConfiguracao();
tc.commit();
tc.close();
} catch (final Exception e) {
e.printStackTrace();
this.rollbackTransaction(tc, e);
}
return this.getTipoItemConfiguracaoBean();
}
/*
* (non-Javadoc)
* @see br.com.citframework.service.CrudServicePojoImpl#update(br.com.citframework .dto.IDto)
*/
@Override
public void update(final IDto tipoItemConfiguracao) throws ServiceException, LogicException {
this.setTipoItemConfiguracaoBean(tipoItemConfiguracao);
try {
this.criarEAssociarCaracteristicaAoTipoItemConfiguracao();
} catch (final Exception e) {
e.printStackTrace();
}
super.update(this.getTipoItemConfiguracaoBean());
}
/**
* Associa Caracter�stica ao Tipo Item Configura��o.
*
* @throws Exception
* @author valdoilo.damasceno
*/
private void criarEAssociarCaracteristicaAoTipoItemConfiguracao() throws Exception {
if (this.getTipoItemConfiguracaoBean().getCaracteristicas() != null && !this.getTipoItemConfiguracaoBean().getCaracteristicas().isEmpty()) {
for (int i = 0; i < this.getTipoItemConfiguracaoBean().getCaracteristicas().size(); i++) {
final Integer idCaracteristica = ((CaracteristicaDTO) this.getTipoItemConfiguracaoBean().getCaracteristicas().get(i)).getIdCaracteristica();
final CaracteristicaTipoItemConfiguracaoDTO caracteristicaTipoItemConfiguracaoBean = new CaracteristicaTipoItemConfiguracaoDTO();
if (!this.getCaracteristicaTipoItemConfiguracaoDao().existeAssociacaoComCaracteristica(idCaracteristica, this.getTipoItemConfiguracaoBean().getId())) {
caracteristicaTipoItemConfiguracaoBean.setIdTipoItemConfiguracao(this.getTipoItemConfiguracaoBean().getId());
caracteristicaTipoItemConfiguracaoBean.setIdCaracteristica(idCaracteristica);
caracteristicaTipoItemConfiguracaoBean.setDataInicio(UtilDatas.getDataAtual());
this.getCaracteristicaTipoItemConfiguracaoDao().create(caracteristicaTipoItemConfiguracaoBean);
// throw new LogicException("teste");
}
}
}
}
@Override
public void restaurarGridCaracteristicas(final DocumentHTML document, final Collection<CaracteristicaDTO> caracteristicas) {
if (caracteristicas != null && !caracteristicas.isEmpty()) {
int count = 0;
document.executeScript("countCaracteristica = 0");
for (final CaracteristicaDTO caracteristicaBean : caracteristicas) {
count++;
document.executeScript("restoreRow()");
document.executeScript("seqSelecionada = " + count);
String caracteristica = caracteristicaBean.getNome() != null ? caracteristicaBean.getNome() : "";
String tag = caracteristicaBean.getTag() != null ? caracteristicaBean.getTag() : "";
String valor = caracteristicaBean.getValorString() != null ? caracteristicaBean.getValorString() : "";
String descricao = caracteristicaBean.getDescricao() != null ? caracteristicaBean.getDescricao() : "";
final String idEmpresa = caracteristicaBean.getIdEmpresa().toString() != null ? caracteristicaBean.getIdEmpresa().toString() : "";
final String dataInicio = caracteristicaBean.getDataInicio().toString() != null ? caracteristicaBean.getDataInicio().toString() : "";
final String dataFim = caracteristicaBean.getDataFim() != null ? caracteristicaBean.getDataFim().toString() : "";
if (caracteristica != null) {
caracteristica = caracteristica.replaceAll("'", "");
}
if (tag != null) {
tag = tag.replaceAll("'", "");
}
if (valor != null) {
valor = valor.replaceAll("'", "");
}
if (descricao != null) {
descricao = descricao.replaceAll("'", "");
}
document.executeScript("setRestoreCaracteristica('" + caracteristicaBean.getIdCaracteristica() + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(caracteristica) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(tag) + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(StringEscapeUtils.escapeJavaScript(valor)) + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(descricao) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(idEmpresa) + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(dataInicio) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(dataFim) + "')");
}
document.executeScript("exibeGrid()");
} else {
document.executeScript("ocultaGrid()");
}
}
@Override
public void restaurarGridCaracteristicasItemConfiguracaoFilho(final DocumentHTML document, final Collection<CaracteristicaDTO> caracteristicas) {
if (caracteristicas != null && !caracteristicas.isEmpty()) {
int count = 0;
document.executeScript("countCaracteristica = 0");
for (final CaracteristicaDTO caracteristicaBean : caracteristicas) {
count++;
document.executeScript("restoreRowCaracteristicaItemFilho()");
document.executeScript("seqSelecionada = " + count);
String caracteristica = caracteristicaBean.getNome() != null ? caracteristicaBean.getNome() : "";
String tag = caracteristicaBean.getTag() != null ? caracteristicaBean.getTag() : "";
String valor = caracteristicaBean.getValorString() != null ? caracteristicaBean.getValorString() : "";
String descricao = caracteristicaBean.getDescricao() != null ? caracteristicaBean.getDescricao() : "";
final String idEmpresa = caracteristicaBean.getIdEmpresa().toString() != null ? caracteristicaBean.getIdEmpresa().toString() : "";
final String dataInicio = caracteristicaBean.getDataInicio().toString() != null ? caracteristicaBean.getDataInicio().toString() : "";
final String dataFim = caracteristicaBean.getDataFim() != null ? caracteristicaBean.getDataFim().toString() : "";
if (caracteristica != null) {
caracteristica = caracteristica.replaceAll("'", "");
}
if (tag != null) {
tag = tag.replaceAll("'", "");
}
if (valor != null) {
valor = valor.replaceAll("'", "");
}
if (descricao != null) {
descricao = descricao.replaceAll("'", "");
}
document.executeScript("setRestoreCaracteristicaItemConfiguracaoFilho('" + caracteristicaBean.getIdCaracteristica() + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(caracteristica) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(tag) + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(valor) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(descricao) + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(idEmpresa) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(dataInicio) + "'," + "'"
+ br.com.citframework.util.WebUtil.codificaEnter(dataFim) + "')");
}
document.executeScript("exibeGridPatrimonioItemFilho()");
} else {
document.executeScript("ocultaGridPatrimonioItemFilho()");
}
}
/**
* @return valor do atributo caracteristicaTipoItemConfiguracaoDao.
* @author valdoilo.damasceno
*/
private CaracteristicaTipoItemConfiguracaoDAO getCaracteristicaTipoItemConfiguracaoDao() {
if (caracteristicaTipoItemConfiguracaoDao == null) {
caracteristicaTipoItemConfiguracaoDao = new CaracteristicaTipoItemConfiguracaoDAO();
}
return caracteristicaTipoItemConfiguracaoDao;
}
/**
* Retorna Tipo Item Configura��o.
*
* @return TipoItemConfiguracaoDTO
* @author VMD
*/
private TipoItemConfiguracaoDTO getTipoItemConfiguracaoBean() {
return tipoItemConfiguracaoBean;
}
/**
* Configura Tipo Item Configura��o.
*
* @param tipoItemConfiguracao
* IDto
* @author VMD
*/
private void setTipoItemConfiguracaoBean(final IDto tipoItemConfiguracao) {
tipoItemConfiguracaoBean = (TipoItemConfiguracaoDTO) tipoItemConfiguracao;
}
@Override
public boolean verificarSeTipoItemConfiguracaoExiste(final TipoItemConfiguracaoDTO tipoItemConfiguracao) throws PersistenceException {
final TipoItemConfiguracaoDAO tipoItemConfiguracaoDao = new TipoItemConfiguracaoDAO();
return tipoItemConfiguracaoDao.verificarSeTipoItemConfiguracaoExiste(tipoItemConfiguracao);
}
@Override
public boolean verificaAssociacaoItemConfiguracao(final TipoItemConfiguracaoDTO tipoItemConfiguracao) throws PersistenceException {
final TipoItemConfiguracaoDAO tipoItemConfiguracaoDAO = new TipoItemConfiguracaoDAO();
return tipoItemConfiguracaoDAO.verificaAssociacaoTipoConfiguracao(tipoItemConfiguracao);
}
}