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.citajax.html.HTMLForm; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citajax.html.HTMLTable; import br.com.centralit.citcorpore.bean.AvaliacaoColetaPrecoDTO; import br.com.centralit.citcorpore.bean.ColetaPrecoDTO; import br.com.centralit.citcorpore.bean.CotacaoDTO; import br.com.centralit.citcorpore.bean.CriterioAvaliacaoDTO; import br.com.centralit.citcorpore.bean.CriterioItemCotacaoDTO; import br.com.centralit.citcorpore.bean.FornecedorCotacaoDTO; import br.com.centralit.citcorpore.bean.FornecedorDTO; import br.com.centralit.citcorpore.bean.ItemCotacaoDTO; import br.com.centralit.citcorpore.bean.UploadDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.AvaliacaoColetaPrecoService; import br.com.centralit.citcorpore.negocio.ColetaPrecoService; import br.com.centralit.citcorpore.negocio.CotacaoService; import br.com.centralit.citcorpore.negocio.CriterioAvaliacaoService; import br.com.centralit.citcorpore.negocio.CriterioItemCotacaoService; import br.com.centralit.citcorpore.negocio.FornecedorCotacaoService; import br.com.centralit.citcorpore.negocio.FornecedorService; import br.com.centralit.citcorpore.negocio.ItemCotacaoService; import br.com.centralit.citcorpore.util.Enumerados.SituacaoCotacao; import br.com.centralit.citcorpore.util.WebUtil; import br.com.centralit.citged.bean.ControleGEDDTO; import br.com.centralit.citged.negocio.ControleGEDService; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilI18N; public class ColetaPreco extends AjaxFormAction { @SuppressWarnings("rawtypes") public Class getBeanClass() { return ColetaPrecoDTO.class; } private void configuraBotoes(DocumentHTML document, HttpServletRequest request, ColetaPrecoDTO coletaPrecoBean) throws Exception { if (coletaPrecoBean.getIdCotacao() == null) return; CotacaoDTO cotacaoDto = new CotacaoDTO(); cotacaoDto.setIdCotacao(coletaPrecoBean.getIdCotacao()); CotacaoService cotacaoService = (CotacaoService) ServiceLocator.getInstance().getService(CotacaoService.class, null); cotacaoDto = (CotacaoDTO) cotacaoService.restore(cotacaoDto); if (cotacaoDto == null) return; document.executeScript("document.getElementById('btnGravar').style.display = 'none'"); document.executeScript("document.getElementById('btnLimpar').style.display = 'none'"); document.executeScript("document.getElementById('btnExcluir').style.display = 'none'"); SituacaoCotacao situacao = SituacaoCotacao.valueOf(cotacaoDto.getSituacao()); if (situacao.equals(SituacaoCotacao.EmAndamento)) { document.executeScript("document.getElementById('btnGravar').style.display = 'block'"); document.executeScript("document.getElementById('btnLimpar').style.display = 'block'"); if (coletaPrecoBean.getIdColetaPreco() != null) document.executeScript("document.getElementById('btnExcluir').style.display = 'block'"); } } public void carregaCombos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response, ColetaPrecoDTO coletaPrecoDto) throws Exception { HTMLSelect idFornecedor = (HTMLSelect) document.getSelectById("idFornecedor"); idFornecedor.removeAllOptions(); idFornecedor.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); FornecedorCotacaoService fornecedorCotacaoService = (FornecedorCotacaoService) ServiceLocator.getInstance().getService(FornecedorCotacaoService.class, null); Collection<FornecedorCotacaoDTO> colFornecedorCotacao = fornecedorCotacaoService.findByIdCotacao(coletaPrecoDto.getIdCotacao()); if (colFornecedorCotacao != null) { Collection<FornecedorDTO> colFornecedores = new ArrayList(); FornecedorService fornecedorService = (FornecedorService) ServiceLocator.getInstance().getService(FornecedorService.class, null); for (FornecedorCotacaoDTO fornecedorCotacaoDto : colFornecedorCotacao) { FornecedorDTO fornecedorDto = new FornecedorDTO(); fornecedorDto.setIdFornecedor(fornecedorCotacaoDto.getIdFornecedor()); fornecedorDto = (FornecedorDTO) fornecedorService.restore(fornecedorDto); if (fornecedorDto != null) colFornecedores.add(fornecedorDto); } String id = null; if (coletaPrecoDto.getIdFornecedor() != null) id = ""+coletaPrecoDto.getIdFornecedor(); idFornecedor.addOptions(colFornecedores, "idFornecedor", "identificacao", id); } montaItensFornecedor(document,request,response); configuraBotoes(document, request, coletaPrecoDto); } public void montaItensFornecedor(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); HTMLSelect idItemCotacao = (HTMLSelect) document.getSelectById("idItemCotacao"); idItemCotacao.removeAllOptions(); idItemCotacao.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); ItemCotacaoService itemCotacaoService = (ItemCotacaoService) ServiceLocator.getInstance().getService(ItemCotacaoService.class, null); Collection<ItemCotacaoDTO> colItens = itemCotacaoService.findByIdCotacao(coletaPrecoDto.getIdCotacao()); if (colItens == null || colItens.isEmpty()) return; Integer idFornecedor = coletaPrecoDto.getIdFornecedor(); String id = null; if (coletaPrecoDto.getIdItemCotacao() != null) id = ""+coletaPrecoDto.getIdItemCotacao(); if (idFornecedor == null) { idItemCotacao.addOptions(colItens, "idItemCotacao", "identificacao", id); }else{ ColetaPrecoService coletaPrecoService = (ColetaPrecoService) ServiceLocator.getInstance().getService(ColetaPrecoService.class, WebUtil.getUsuarioSistema(request)); for (ItemCotacaoDTO itemCotacaoDto : colItens) { if (coletaPrecoService.findByIdItemCotacaoAndIdFornecedor(idFornecedor, itemCotacaoDto.getIdItemCotacao()) == null) idItemCotacao.addOption(""+itemCotacaoDto.getIdItemCotacao(), itemCotacaoDto.getIdentificacao()); } if (id != null) idItemCotacao.setValue(id); } } public void atualiza(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { try{ UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); carregaCombos(document,request,response,coletaPrecoDto); }finally{ document.executeScript("habilitaDesabilitaCampos()"); document.executeScript("parent.escondeJanelaAguarde()"); } } public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { request.getSession(true).setAttribute("colUploadsGED", null); try{ UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); carregaCombos(document,request,response,coletaPrecoDto); request.setAttribute("idCotacao", ""+coletaPrecoDto.getIdCotacao()); exibeColetasPreco(document,request,coletaPrecoDto); restore(document,request,response); }finally{ document.executeScript("parent.escondeJanelaAguarde()"); } } public void exibeCriteriosVariaveis(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); if (coletaPrecoDto.getIdItemCotacao() == null) return; exibeCriteriosVariaveis(document, request, coletaPrecoDto); } public void exibeEspecificacoesItem(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); if (coletaPrecoDto.getIdItemCotacao() == null) return; ItemCotacaoService itemCotacaoService = (ItemCotacaoService) ServiceLocator.getInstance().getService(ItemCotacaoService.class, null); ItemCotacaoDTO itemCotacaoDto = new ItemCotacaoDTO(); itemCotacaoDto.setIdItemCotacao(coletaPrecoDto.getIdItemCotacao()); itemCotacaoDto = (ItemCotacaoDTO) itemCotacaoService.restore(itemCotacaoDto); if (itemCotacaoDto != null) { itemCotacaoDto.setQuantidadeCotada(itemCotacaoDto.getQuantidade()); HTMLForm form = document.getForm("form"); form.setValues(itemCotacaoDto); } } private void exibeCriteriosVariaveis(DocumentHTML document, HttpServletRequest request, ColetaPrecoDTO coletaPrecoDto) throws Exception { document.executeScript("limpaDivCriterios();"); CriterioItemCotacaoService criterioItemCotacaoService = (CriterioItemCotacaoService) ServiceLocator.getInstance().getService(CriterioItemCotacaoService.class, null); Collection<CriterioItemCotacaoDTO> colCriterios = criterioItemCotacaoService.findByIdItemCotacao(coletaPrecoDto.getIdItemCotacao()); if (colCriterios != null){ CriterioAvaliacaoService criterioAvaliacaoService = (CriterioAvaliacaoService) ServiceLocator.getInstance().getService(CriterioAvaliacaoService.class, null); AvaliacaoColetaPrecoService avaliacaoColetaService = (AvaliacaoColetaPrecoService) ServiceLocator.getInstance().getService(AvaliacaoColetaPrecoService.class, null); int i = 0; for (CriterioItemCotacaoDTO criterioItemCotacaoDto : colCriterios) { i++; CriterioAvaliacaoDTO criterioDto = new CriterioAvaliacaoDTO(); criterioDto.setIdCriterio(criterioItemCotacaoDto.getIdCriterio()); criterioDto = (CriterioAvaliacaoDTO) criterioAvaliacaoService.restore(criterioDto); if (criterioDto == null) return; String value = ""; if (coletaPrecoDto.getIdColetaPreco() != null) { AvaliacaoColetaPrecoDTO avaliacaoColetaDto = new AvaliacaoColetaPrecoDTO(); avaliacaoColetaDto.setIdColetaPreco(coletaPrecoDto.getIdColetaPreco()); avaliacaoColetaDto.setIdCriterio(criterioDto.getIdCriterio()); avaliacaoColetaDto = (AvaliacaoColetaPrecoDTO) avaliacaoColetaService.restore(avaliacaoColetaDto); if (avaliacaoColetaDto != null) value = " "+avaliacaoColetaDto.getAvaliacao(); } document.executeScript("criaCampoCriterio("+i+","+criterioDto.getIdCriterio()+",'"+criterioDto.getDescricao()+" "+UtilI18N.internacionaliza(request, "cotacao.valoresCriterio")+"','"+value+"');"); } } } private void exibeColetasPreco(DocumentHTML document, HttpServletRequest request, ColetaPrecoDTO coletaPrecoDto) throws Exception { HTMLTable tblColetasPreco = document.getTableById("tblColetasPreco"); tblColetasPreco.deleteAllRows(); ColetaPrecoService coletaPrecoService = (ColetaPrecoService) ServiceLocator.getInstance().getService(ColetaPrecoService.class, null); Collection<ColetaPrecoDTO> colColetas = coletaPrecoService.findByIdCotacao(coletaPrecoDto.getIdCotacao()); if (colColetas != null && !colColetas.isEmpty()) { tblColetasPreco.addRowsByCollection(colColetas, new String[] {"","idColetaPreco","descricaoItem","nomeFornecedor"}, null, null, new String[] {"gerarImgAlteracaoColeta"}, "exibirColetaPrecos", null); } } public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); request.getSession(true).setAttribute("colUploadsGED", null); document.executeScript("uploadAnexos.refresh()"); HTMLForm form = document.getForm("form"); form.clear(); if (coletaPrecoDto.getIdColetaPreco() != null) { Integer idCotacao = coletaPrecoDto.getIdCotacao(); ColetaPrecoService coletaPrecoService = (ColetaPrecoService) ServiceLocator.getInstance().getService(ColetaPrecoService.class, WebUtil.getUsuarioSistema(request)); coletaPrecoDto = (ColetaPrecoDTO) coletaPrecoService.restore(coletaPrecoDto); coletaPrecoDto.setIdCotacao(idCotacao); exibeCriteriosVariaveis(document, request, coletaPrecoDto); restaurarAnexos(request, coletaPrecoDto.getIdColetaPreco()); } configuraBotoes(document, request, coletaPrecoDto); form.setValues(coletaPrecoDto); } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); Collection<UploadDTO> anexos = (Collection<UploadDTO>) request.getSession(true).getAttribute("colUploadsGED"); coletaPrecoDto.setAnexos(anexos); ColetaPrecoService coletaPrecoService = (ColetaPrecoService) ServiceLocator.getInstance().getService(ColetaPrecoService.class, WebUtil.getUsuarioSistema(request)); if (coletaPrecoDto.getValorAcrescimo() == null) coletaPrecoDto.setValorAcrescimo(new Double(0)); if (coletaPrecoDto.getIdColetaPreco() != null) { coletaPrecoService.update(coletaPrecoDto); }else{ coletaPrecoDto.setIdResponsavel(usuario.getIdEmpregado()); coletaPrecoService.create(coletaPrecoDto); } exibeColetasPreco(document,request,coletaPrecoDto); document.alert(UtilI18N.internacionaliza(request, "coletaPreco.mensagemAtualizacao")); document.executeScript("limpar();"); } public void delete(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); document.executeScript("window.location = '" + Constantes.getValue("SERVER_ADDRESS") + request.getContextPath() + "'"); return; } ColetaPrecoDTO coletaPrecoDto = (ColetaPrecoDTO) document.getBean(); if (coletaPrecoDto.getIdColetaPreco() != null) { ColetaPrecoService coletaPrecoService = (ColetaPrecoService) ServiceLocator.getInstance().getService(ColetaPrecoService.class, WebUtil.getUsuarioSistema(request)); coletaPrecoService.delete(coletaPrecoDto); exibeColetasPreco(document,request,coletaPrecoDto); document.alert(UtilI18N.internacionaliza(request, "coletaPreco.mensagemExclusao")); document.executeScript("limpar();"); } } protected void restaurarAnexos(HttpServletRequest request, Integer idColetaPreco) throws ServiceException, Exception { ControleGEDService controleGedService = (ControleGEDService) ServiceLocator.getInstance().getService(ControleGEDService.class, null); Collection colAnexos = controleGedService.listByIdTabelaAndID(ControleGEDDTO.TABELA_COLETAPRECOS, idColetaPreco); Collection colAnexosUploadDTO = controleGedService.convertListControleGEDToUploadDTO(colAnexos); request.getSession(true).setAttribute("colUploadsGED", colAnexosUploadDTO); } }