package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoDTO; import br.com.centralit.citcorpore.bean.RequisicaoLiberacaoItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.RequisicaoMudancaDTO; import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService; import br.com.centralit.citcorpore.negocio.RequisicaoLiberacaoItemConfiguracaoService; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; /** * @author breno.guimaraes * */ @SuppressWarnings("rawtypes") public class RequisicaoLiberacaoItemConfiguracao extends AjaxFormAction implements IRequisicaoMudancaRelacionamento{ private RequisicaoLiberacaoItemConfiguracaoService requisicaoLiberacaoItemConfiguracaoService; private ItemConfiguracaoService itemConfiguracaoService; @Override public Class getBeanClass() { return RequisicaoLiberacaoItemConfiguracaoDTO.class; } @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { } /** * Registra os ics relacionados na entidade relacionamento * * @param idRequisicaoLiberacao * @param listaICsDeserializada * @author murilo.pacheco * @throws Exception * @throws ServiceException * @throws LogicException */ @SuppressWarnings("unchecked") public void gravarRelacionamentos(Integer idRequisicaoLiberacao, Collection listaDeserializada) throws LogicException, ServiceException, Exception{ ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> ics = (ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO>) listaDeserializada; ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> icsBanco = null; RequisicaoLiberacaoItemConfiguracaoDTO aux = null; if(listaDeserializada != null){ //se n�o existir no banco, cria, caso contr�rio, atualiza for(RequisicaoLiberacaoItemConfiguracaoDTO i : ics){ i.setIdRequisicaoLiberacao(idRequisicaoLiberacao); aux = (RequisicaoLiberacaoItemConfiguracaoDTO) getRequisicaoLiberacaoItemConfiguracaoService().restoreByChaveComposta(i); if(aux == null){ getRequisicaoLiberacaoItemConfiguracaoService().create(i); } else { getRequisicaoLiberacaoItemConfiguracaoService().update(aux); } } } //confere se existe algo no banco que n�o est� na lista salva, e deleta icsBanco = getRequisicaoLiberacaoItemConfiguracaoService().listByIdRequisicaoLiberacao(idRequisicaoLiberacao); if (icsBanco != null) { for(RequisicaoLiberacaoItemConfiguracaoDTO i : icsBanco){ if(!requisicaoMudancaICExisteNaLista(i, ics)){ getRequisicaoLiberacaoItemConfiguracaoService().delete(i); } } } } /** * Verifica se o item existe na lista. * * @param item * @param lista * @return */ private boolean requisicaoMudancaICExisteNaLista(RequisicaoLiberacaoItemConfiguracaoDTO item, ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> lista){ if(lista == null) return false; for(RequisicaoLiberacaoItemConfiguracaoDTO l : lista){ //equals sobrescrito if(l.equals(item)){ return true; } } return false; } /** * Lista os ics relacionados a requisi��o de mudan�a * e atribui o nome do item de configura��o para correta * restaura��o de suas informa��es na table * * @param requisicaoMudancaItemConfiguracaoDTO * @throws ServiceException * @throws Exception */ public ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> listItensRelacionadosRequisicaoMudanca(RequisicaoLiberacaoDTO requisicaoLiberacaoDTO) throws ServiceException, Exception{ ItemConfiguracaoDTO ic = null; ArrayList<RequisicaoLiberacaoItemConfiguracaoDTO> listaReqLiberacaoIC = getRequisicaoLiberacaoItemConfiguracaoService().listByIdRequisicaoLiberacao(requisicaoLiberacaoDTO.getIdRequisicaoLiberacao()); //atribui nome para os itens retornados if(listaReqLiberacaoIC != null){ for(RequisicaoLiberacaoItemConfiguracaoDTO r : listaReqLiberacaoIC){ ic = getItemConfiguracaoService().restoreByIdItemConfiguracao(r.getIdItemConfiguracao()); if(ic != null){ r.setNomeItemConfiguracao(ic.getIdentificacao()); } } } return listaReqLiberacaoIC; } /** * @param document * @param request * @param response * @throws Exception * @author breno.guimaraes */ public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { } /** * @return RequisicaoMudancaItemConfigurcaoService * @throws ServiceException * @throws Exception * @author breno.guimaraes */ private RequisicaoLiberacaoItemConfiguracaoService getRequisicaoLiberacaoItemConfiguracaoService() throws ServiceException, Exception{ if(requisicaoLiberacaoItemConfiguracaoService == null){ requisicaoLiberacaoItemConfiguracaoService = (RequisicaoLiberacaoItemConfiguracaoService) ServiceLocator.getInstance().getService(RequisicaoLiberacaoItemConfiguracaoService.class, null); } return requisicaoLiberacaoItemConfiguracaoService ; } /** * @return EmpregadoService * @throws ServiceException * @throws Exception * @author breno.guimaraes */ private ItemConfiguracaoService getItemConfiguracaoService() throws ServiceException, Exception{ if(itemConfiguracaoService == null){ itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null); } return itemConfiguracaoService; } @Override public ArrayList listItensRelacionadosRequisicaoMudanca( RequisicaoMudancaDTO requisicaoMudancaDTO) throws ServiceException, Exception { // TODO Auto-generated method stub return null; } }