package br.com.centralit.citcorpore.ajaxForms; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; 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.citcorpore.bean.AcordoNivelServicoContratoDTO; import br.com.centralit.citcorpore.bean.ContratoDTO; import br.com.centralit.citcorpore.bean.FaturaApuracaoANSDTO; import br.com.centralit.citcorpore.bean.FaturaDTO; import br.com.centralit.citcorpore.bean.FormulaDTO; import br.com.centralit.citcorpore.bean.GlosaOSDTO; import br.com.centralit.citcorpore.bean.GrupoEmpregadoDTO; import br.com.centralit.citcorpore.bean.MoedaDTO; import br.com.centralit.citcorpore.bean.OSDTO; import br.com.centralit.citcorpore.bean.PerfilAcessoGrupoDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.metainfo.script.ScriptRhinoJSExecute; import br.com.centralit.citcorpore.metainfo.util.RuntimeScript; import br.com.centralit.citcorpore.negocio.AcordoNivelServicoContratoService; import br.com.centralit.citcorpore.negocio.ContratoService; import br.com.centralit.citcorpore.negocio.FaturaApuracaoANSService; import br.com.centralit.citcorpore.negocio.FaturaService; import br.com.centralit.citcorpore.negocio.FormulaService; import br.com.centralit.citcorpore.negocio.GlosaOSService; import br.com.centralit.citcorpore.negocio.GrupoEmpregadoService; import br.com.centralit.citcorpore.negocio.MoedaService; import br.com.centralit.citcorpore.negocio.OSService; import br.com.centralit.citcorpore.negocio.PerfilAcessoGrupoService; import br.com.centralit.citcorpore.negocio.PerfilAcessoSituacaoFaturaService; import br.com.centralit.citcorpore.util.Enumerados.TipoDate; import br.com.centralit.citcorpore.util.FormulasUtil; import br.com.centralit.citcorpore.util.WebUtil; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilFormatacao; import br.com.citframework.util.UtilHTML; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; @SuppressWarnings({ "rawtypes", "unchecked" }) public class Fatura extends AjaxFormAction { @Override public Class getBeanClass() { return FaturaDTO.class; } @Override public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO usuario = WebUtil.getUsuario(request); if (usuario == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.sessaoExpirada")); return; } FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); AcordoNivelServicoContratoService acordoNivelServicoContratoService = (AcordoNivelServicoContratoService) ServiceLocator.getInstance() .getService(AcordoNivelServicoContratoService.class, null); Collection col = acordoNivelServicoContratoService.findByIdContrato(faturaDTO.getIdContrato()); if (col != null) { for (Iterator it = col.iterator(); it.hasNext();) { AcordoNivelServicoContratoDTO acordoNivelServicoContratoDTO = (AcordoNivelServicoContratoDTO) it.next(); if (acordoNivelServicoContratoDTO.getDataFim() == null || acordoNivelServicoContratoDTO.getDataFim().after(UtilDatas.getDataAtual())) { document.executeScript("GRID_ITENS.addRow()"); document.executeScript("seqSelecionada = NumberUtil.zerosAEsquerda(GRID_ITENS.getMaxIndex(),5)"); String strDet = acordoNivelServicoContratoDTO.getDescricaoAcordo(); if (strDet != null) { strDet = strDet.replaceAll("'", ""); } else { strDet = ""; } String strCompl = UtilI18N.internacionaliza(request, "visao.valorLimite") + ": " + UtilFormatacao.formatDouble(acordoNivelServicoContratoDTO.getValorLimite(), 2) + " " + UtilStrings.nullToVazio(acordoNivelServicoContratoDTO.getUnidadeValorLimite()); String detAcordo = acordoNivelServicoContratoDTO.getDetalhamentoAcordo(); if (detAcordo != null) { detAcordo = detAcordo.replaceAll("'", ""); } else { detAcordo = ""; } detAcordo = br.com.citframework.util.WebUtil.codificaEnter(detAcordo); document.executeScript("setaRestoreDesc('" + strDet + "','" + strCompl + "', '" + detAcordo + "', '" + acordoNivelServicoContratoDTO.getIdAcordoNivelServicoContrato() + "')"); } } } PerfilAcessoSituacaoFaturaService perfilAcessoSituacaoFaturaService = (PerfilAcessoSituacaoFaturaService) ServiceLocator.getInstance() .getService(PerfilAcessoSituacaoFaturaService.class, null); GrupoEmpregadoService grupoEmpregadoService = (GrupoEmpregadoService) ServiceLocator.getInstance().getService(GrupoEmpregadoService.class, null); PerfilAcessoGrupoService perfilAcessoGrupoService = (PerfilAcessoGrupoService) ServiceLocator.getInstance().getService(PerfilAcessoGrupoService.class, null); Collection colSituacoesPermitidasFinal = new ArrayList(); Collection<GrupoEmpregadoDTO> colGruposUsuario = null; if (usuario != null) { // Retorna as permiss�es do usu�rio colSituacoesPermitidasFinal = perfilAcessoSituacaoFaturaService.getSituacoesFaturaPermitidasByUsuario(usuario); // Retorna os grupos do usu�rio colGruposUsuario = grupoEmpregadoService.findByIdEmpregado(usuario.getIdEmpregado()); if (colGruposUsuario != null) { Collection<Integer> colSituacoesPermitidasTemp = null; for (GrupoEmpregadoDTO grupoEmpregadoDTO : colGruposUsuario) { PerfilAcessoGrupoDTO perfilAcessoGrupoDTO = new PerfilAcessoGrupoDTO(); perfilAcessoGrupoDTO.setIdGrupo(grupoEmpregadoDTO.getIdGrupo()); perfilAcessoGrupoDTO = perfilAcessoGrupoService.listByIdGrupo(perfilAcessoGrupoDTO); colSituacoesPermitidasTemp = perfilAcessoSituacaoFaturaService.getSituacoesFaturaPermitidasByGrupo(perfilAcessoGrupoDTO); // Percorre tempor�rio e verifica se j� existe na lista final, se n�o existir adiciona if (colSituacoesPermitidasTemp != null) { for (Integer object : colSituacoesPermitidasTemp) { if (colSituacoesPermitidasFinal == null) { colSituacoesPermitidasFinal = new ArrayList(); colSituacoesPermitidasFinal.add(object); } else if (!colSituacoesPermitidasFinal.contains(object)) { colSituacoesPermitidasFinal.add(object); } } } } } } generateComboSituacoes(document, request, colSituacoesPermitidasFinal); document.focusInFirstActivateField(null); if (faturaDTO.getIdFatura() != null) { restore(document, request, response); } } public void generateComboSituacoes(DocumentHTML document, HttpServletRequest request, Collection colSituacoesPermitidas) throws Exception { document.getSelectById("situacaoFatura").addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); if (colSituacoesPermitidas == null) { return; } for (Iterator it = colSituacoesPermitidas.iterator(); it.hasNext();) { Integer situacao = (Integer) it.next(); FaturaDTO faturaDTO = new FaturaDTO(); faturaDTO.setSituacaoFatura(situacao.toString()); document.getSelectById("situacaoFatura").addOption("" + situacao.toString(), faturaDTO.getDescricaoSituacaoFatura(request)); } } public void save(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); FaturaService faturaService = (FaturaService) ServiceLocator.getInstance().getService(FaturaService.class, null); ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null); Collection colItens = br.com.citframework.util.WebUtil.deserializeCollectionFromRequest(FaturaApuracaoANSDTO.class, "colItens_Serialize", request); Integer idContrato = -1; try { idContrato = Integer.parseInt((String) request.getSession(true).getAttribute("NUMERO_CONTRATO_EDICAO")); } catch (Exception e) { } if (idContrato == -1) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.naoIdentificaContrato")); return; } faturaDTO.setIdContrato(idContrato); faturaDTO.setColItens(colItens); faturaDTO.setDataUltModificacao(UtilDatas.getDataAtual()); boolean bAlterar = false; ContratoDTO contratoDto = new ContratoDTO(); contratoDto.setIdContrato(idContrato); contratoDto = (ContratoDTO) contratoService.restore(contratoDto); faturaDTO.setValorCotacaoMoeda(contratoDto.getCotacaoMoeda()); if (faturaDTO.getIdFatura() == null || faturaDTO.getIdFatura().intValue() == 0) { faturaDTO.setDataCriacao(UtilDatas.getDataAtual()); faturaService.create(faturaDTO); } else { faturaService.update(faturaDTO); bAlterar = true; } HTMLForm form = document.getForm("form"); form.clear(); document.executeScript("GRID_ITENS.deleteAllRows()"); document.alert(UtilI18N.internacionaliza(request, "periodica.registro_gravado_sucesso")); document.executeScript("parent.atualizaFaturas()"); document.executeScript("parent.fecharVisaoFatura()"); } public void updateSituacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); if (faturaDTO.getIdFatura() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.informeIdentificacaoFatura")); return; } if (faturaDTO.getSituacaoFatura() == null) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.informeSituacaoFatura")); return; } FaturaService faturaService = (FaturaService) ServiceLocator.getInstance().getService(FaturaService.class, null); faturaService.updateSituacao(faturaDTO.getIdFatura(), faturaDTO.getSituacaoFatura(), faturaDTO.getAprovacaoGestor(), faturaDTO.getAprovacaoFiscal()); document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.situacaoAlteradaSucesso")); document.executeScript("parent.atualizaFaturas()"); document.executeScript("parent.fecharVisaoFatura()"); } public void restore(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); FaturaService faturaService = (FaturaService) ServiceLocator.getInstance().getService(FaturaService.class, null); FaturaApuracaoANSService faturaApuracaoANSService = (FaturaApuracaoANSService) ServiceLocator.getInstance().getService(FaturaApuracaoANSService.class, null); AcordoNivelServicoContratoService acordoNivelServicoContratoService = (AcordoNivelServicoContratoService) ServiceLocator.getInstance() .getService(AcordoNivelServicoContratoService.class, null); faturaDTO = (FaturaDTO) faturaService.restore(faturaDTO); HTMLForm form = document.getForm("form"); form.clear(); form.setValues(faturaDTO); document.executeScript("GRID_ITENS.deleteAllRows()"); if (faturaDTO != null) { int i = 0; Collection col = faturaApuracaoANSService.findByIdFatura(faturaDTO.getIdFatura()); if (col != null) { for (Iterator it = col.iterator(); it.hasNext();) { i++; FaturaApuracaoANSDTO faturaApuracaoANSDTO = (FaturaApuracaoANSDTO) it.next(); AcordoNivelServicoContratoDTO acordoNivelServicoContratoDTO = new AcordoNivelServicoContratoDTO(); acordoNivelServicoContratoDTO.setIdAcordoNivelServicoContrato(faturaApuracaoANSDTO.getIdAcordoNivelServicoContrato()); acordoNivelServicoContratoDTO = (AcordoNivelServicoContratoDTO) acordoNivelServicoContratoService.restore(acordoNivelServicoContratoDTO); document.executeScript("GRID_ITENS.addRow()"); document.executeScript("seqSelecionada = NumberUtil.zerosAEsquerda(GRID_ITENS.getMaxIndex(),5)"); String strValorApurado = UtilFormatacao.formatDouble(faturaApuracaoANSDTO.getValorApurado(), 2); String strPerc = UtilFormatacao.formatDouble(faturaApuracaoANSDTO.getPercentualGlosa(), 2); String strValorGlosa = UtilFormatacao.formatDouble(faturaApuracaoANSDTO.getValorGlosa(), 2); String strDet = faturaApuracaoANSDTO.getDetalhamento(); String strDescricao = acordoNivelServicoContratoDTO.getDescricaoAcordo(); if (strDet != null) { strDet = strDet.replaceAll("'", ""); } else { strDet = ""; } if (strDescricao != null) { strDescricao = strDescricao.replaceAll("'", ""); } else { strDescricao = ""; } String strCompl = "Valor limite: " + UtilFormatacao.formatDouble(acordoNivelServicoContratoDTO.getValorLimite(), 2) + " " + UtilStrings.nullToVazio(acordoNivelServicoContratoDTO.getUnidadeValorLimite()); String detAcordo = acordoNivelServicoContratoDTO.getDetalhamentoAcordo(); if (detAcordo != null) { detAcordo = detAcordo.replaceAll("'", ""); detAcordo = br.com.citframework.util.WebUtil.codificaEnter(detAcordo); } document.executeScript("setaRestoreItem(" + "'" + br.com.citframework.util.WebUtil.codificaEnter(strDescricao) + "'," + "'" + br.com.citframework.util.WebUtil.codificaEnter(strDet) + "'," + "'" + strValorApurado + "'," + "'" + UtilStrings.nullToVazio(strPerc) + "'," + "'" + UtilStrings.nullToVazio(strValorGlosa) + "', " + "'" + UtilStrings.nullToVazio(strCompl) + "', '" + UtilStrings.nullToVazio(detAcordo) + "', " + "'" + acordoNivelServicoContratoDTO.getIdAcordoNivelServicoContrato() + "'" + ")"); } } } document.executeScript("chamaAssociarOS()"); if (faturaDTO != null) { if (faturaDTO.getSituacaoFatura() != null && !faturaDTO.getSituacaoFatura().equalsIgnoreCase(FaturaDTO.EM_CRIACAO)) { // Se n�o estiver em CRIA��O, a tela fica bloqueada! form.lockForm(); document.getElementById("btnAddListaOSFaturamento").setVisible(false); document.getElementById("pareceres").setVisible(true); document.getSelectById("situacaoFatura").setDisabled(false); document.getElementById("idFatura").setDisabled(false); document.getElementById("divBotaoGravar").setVisible(false); document.getElementById("divBotaoGravarSituacao").setVisible(true); document.getElementById("btnGravarSituacao").setDisabled(false); if (faturaDTO.getSituacaoFatura().equalsIgnoreCase(FaturaDTO.AGUARDANDO_APROVACAO)) { document.executeScript("HTMLUtils.unlockField(document.form.aprovacaoGestor)"); document.executeScript("HTMLUtils.unlockField(document.form.aprovacaoFiscal)"); } } } if (faturaDTO != null) { document.getElementById("valorReceberOS").setValue(UtilFormatacao.formatDouble(faturaDTO.getValorReceberOS(), 2)); } // document.alert("Registro recuperado !"); } public void listOSParaFaturamento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { // FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); Integer idContrato = -1; try { idContrato = Integer.parseInt((String) request.getSession(true).getAttribute("NUMERO_CONTRATO_EDICAO")); } catch (Exception e) { } if (idContrato == -1) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.naoIdentificaContrato")); return; } OSService oSService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null); ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null); MoedaService moedaService = (MoedaService) ServiceLocator.getInstance().getService(MoedaService.class, null); GlosaOSService glosaOSService = (GlosaOSService) ServiceLocator.getInstance().getService(GlosaOSService.class, null); Collection colOsNaoAssociadasFatura = oSService.listOSHomologadasENaoAssociadasFatura(idContrato); ContratoDTO contratoDto = new ContratoDTO(); contratoDto.setIdContrato(idContrato); contratoDto = (ContratoDTO) contratoService.restore(contratoDto); String nomeMoeda = ""; if (contratoDto.getIdMoeda() != null) { MoedaDTO moedaDto = new MoedaDTO(); moedaDto.setIdMoeda(contratoDto.getIdMoeda()); moedaDto = (MoedaDTO) moedaService.restore(moedaDto); if (moedaDto != null) { nomeMoeda = " (" + moedaDto.getNomeMoeda() + ")"; } } String strTable = "<table width='98%'>"; strTable += "<tr>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += " "; strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "agenda.numeroOS"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.servico"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.datainicio"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.datafim"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.situacao"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.custo") + nomeMoeda; strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "visao.glosa") + nomeMoeda; strTable += "</td>"; strTable += "</tr>"; if (colOsNaoAssociadasFatura != null && colOsNaoAssociadasFatura.size() > 0) { for (Iterator itOs = colOsNaoAssociadasFatura.iterator(); itOs.hasNext();) { OSDTO osDto = (OSDTO) itOs.next(); strTable += "<tr>"; strTable += "<td>"; strTable += "<input type='checkbox' name='idOSFatura' value='" + osDto.getIdOS() + "'/>"; strTable += "</td>"; strTable += "<td>"; strTable += osDto.getNumero() + "/" + osDto.getAno(); strTable += "</td>"; strTable += "<td>"; strTable += UtilHTML.encodeHTML(osDto.getNomeServico()); strTable += "</td>"; strTable += "<td>"; strTable += UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, osDto.getDataInicio(), WebUtil.getLanguage(request)); strTable += "</td>"; strTable += "<td>"; strTable += UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, osDto.getDataFim(), WebUtil.getLanguage(request)); strTable += "</td>"; strTable += "<td>"; strTable += UtilStrings.nullToVazio(osDto.getDescricaoSituacaoOS()); strTable += "</td>"; strTable += "<td>"; if (osDto.getCustoOS() != null) { strTable += UtilFormatacao.formatDouble(osDto.getCustoOS(), 2); } else { strTable += "--"; } strTable += "</td>"; strTable += "<td>"; Double valorGlosado = 0.0; // if (osDto.getGlosaOS() != null) { // valorGlosado = osDto.getGlosaOS().doubleValue(); // } Collection colGlosasOS = glosaOSService.findByIdOs(osDto.getIdOS()); if (colGlosasOS != null) { for (Iterator it = colGlosasOS.iterator(); it.hasNext();) { GlosaOSDTO glosaOSDTO = (GlosaOSDTO) it.next(); if (glosaOSDTO.getCustoGlosa() != null) { valorGlosado = valorGlosado + glosaOSDTO.getCustoGlosa(); } } } if (valorGlosado > 0) { strTable += UtilFormatacao.formatDouble(valorGlosado, 2); } else { strTable += "--"; } strTable += "</td>"; strTable += "</tr>"; } } else { strTable += "<tr>"; strTable += "<td colspan='20'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.naoAhOSHolologadasAssociarFatura"); strTable += "</td>"; strTable += "</tr>"; } strTable += "</table>"; document.getElementById("divOsSelecao").setInnerHTML(strTable); } public void associarOSParaFaturamento(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); Integer idContrato = -1; try { idContrato = Integer.parseInt((String) request.getSession(true).getAttribute("NUMERO_CONTRATO_EDICAO")); } catch (Exception e) { } if (idContrato == -1) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.naoIdentificaContrato")); return; } OSService oSService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null); FaturaService faturaService = (FaturaService) ServiceLocator.getInstance().getService(FaturaService.class, null); ContratoService contratoService = (ContratoService) ServiceLocator.getInstance().getService(ContratoService.class, null); MoedaService moedaService = (MoedaService) ServiceLocator.getInstance().getService(MoedaService.class, null); GlosaOSService glosaOSService = (GlosaOSService) ServiceLocator.getInstance().getService(GlosaOSService.class, null); Collection colOSs = null; if (faturaDTO.getIdOSFatura() != null) { colOSs = oSService.listOSByIds(idContrato, faturaDTO.getIdOSFatura()); } if (faturaDTO.getIdFatura() != null) { Collection colOSJaAssociadass = oSService.listOSAssociadasFatura(faturaDTO.getIdFatura()); if (colOSJaAssociadass != null) { if (colOSs == null) { colOSs = new ArrayList(); } colOSs.addAll(colOSJaAssociadass); } } boolean permiteExclusaoOS = true; if (faturaDTO.getIdFatura() != null) { FaturaDTO faturaAux = (FaturaDTO) faturaService.restore(faturaDTO); if (faturaAux != null && faturaAux.getSituacaoFatura() != null && !faturaAux.getSituacaoFatura().equalsIgnoreCase(FaturaDTO.EM_CRIACAO)) { permiteExclusaoOS = false; } } ContratoDTO contratoDto = new ContratoDTO(); contratoDto.setIdContrato(idContrato); contratoDto = (ContratoDTO) contratoService.restore(contratoDto); String nomeMoeda = ""; if (contratoDto.getIdMoeda() != null) { MoedaDTO moedaDto = new MoedaDTO(); moedaDto.setIdMoeda(contratoDto.getIdMoeda()); moedaDto = (MoedaDTO) moedaService.restore(moedaDto); if (moedaDto != null) { nomeMoeda = " (" + moedaDto.getNomeMoeda() + ")"; } } String strTable = "<table width='98%'>"; strTable += "<tr>"; strTable += "<td class='linhaSubtituloGrid'>"; if (permiteExclusaoOS) { strTable += "A��o"; } else { strTable += " "; } strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "agenda.numeroOS"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.servico"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.datainicio"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.datafim"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.situacao"); strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.custo") + nomeMoeda; strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.executado") + nomeMoeda; strTable += "</td>"; strTable += "<td class='linhaSubtituloGrid'>"; strTable += UtilI18N.internacionaliza(request, "visao.glosa") + nomeMoeda; strTable += "</td>"; strTable += "</tr>"; if (colOSs != null && colOSs.size() > 0) { for (Iterator itOs = colOSs.iterator(); itOs.hasNext();) { OSDTO osDto = (OSDTO) itOs.next(); if (faturaDTO.getIdOSExcluir() != null) { if (faturaDTO.getIdOSExcluir().intValue() == osDto.getIdOS().intValue()) { continue; } } strTable += "<tr>"; strTable += "<td>"; if (permiteExclusaoOS) { strTable += "<img src='" + Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/imagens/excluirPeq.gif' border='0' title='" + UtilI18N.internacionaliza(request, "citcorpore.comum.excluiOSFatura") + "' onclick='retiraOSDaFatura(\"" + osDto.getIdOS() + "\")' style='cursor:pointer'/>"; } else { strTable += " "; } strTable += "</td>"; strTable += "<td>"; strTable += "<input type='hidden' name='idOSFatura' value='" + osDto.getIdOS() + "'/>"; // strTable += osDto.getNumero() + "/" + osDto.getAno(); strTable += osDto.getNumero(); strTable += "</td>"; strTable += "<td>"; strTable += UtilHTML.encodeHTML(osDto.getNomeServico()); strTable += "</td>"; strTable += "<td>"; strTable += UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, osDto.getDataInicio(), WebUtil.getLanguage(request)); strTable += "</td>"; strTable += "<td>"; strTable += UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, osDto.getDataFim(), WebUtil.getLanguage(request)); strTable += "</td>"; strTable += "<td>"; strTable += UtilStrings.nullToVazio(osDto.getDescricaoSituacaoOS()); strTable += "</td>"; strTable += "<td>"; if (osDto.getCustoOS() != null) { strTable += UtilFormatacao.formatDouble(osDto.getCustoOS(), 2); } else { strTable += "--"; } strTable += "</td>"; strTable += "<td>"; if (osDto.getExecutadoOS() != null) { strTable += UtilFormatacao.formatDouble(osDto.getExecutadoOS(), 2); } else { strTable += "--"; } strTable += "</td>"; strTable += "<td>"; Double valorGlosado = 0.0; // if (osDto.getGlosaOS() != null) { // valorGlosado = osDto.getGlosaOS().doubleValue(); // } Collection colGlosasOS = glosaOSService.findByIdOs(osDto.getIdOS()); if (colGlosasOS != null) { for (Iterator it = colGlosasOS.iterator(); it.hasNext();) { GlosaOSDTO glosaOSDTO = (GlosaOSDTO) it.next(); if (glosaOSDTO.getCustoGlosa() != null) { valorGlosado = valorGlosado + glosaOSDTO.getCustoGlosa(); } } } if (valorGlosado > 0) { strTable += UtilFormatacao.formatDouble(valorGlosado, 2); } else { strTable += "--"; } strTable += "</td>"; strTable += "</tr>"; } } else { strTable += "<tr>"; strTable += "<td colspan='20'>"; strTable += UtilI18N.internacionaliza(request, "citcorpore.comum.naoHaOSAssociadasFatura"); strTable += "</td>"; strTable += "</tr>"; } strTable += "</table>"; document.getElementById("divOsSelecionadas").setInnerHTML(strTable); document.getJanelaPopupById("POPUP_LISTA_OS_FATURAMENTO").hide(); } public void calculaFormulaANS(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.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } FaturaDTO faturaDTO = (FaturaDTO) document.getBean(); Integer idContrato = -1; try { idContrato = Integer.parseInt((String) request.getSession(true).getAttribute("NUMERO_CONTRATO_EDICAO")); } catch (Exception e) { } if (idContrato == -1) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.naoIdentificaContrato")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } AcordoNivelServicoContratoService acordoNivelServicoContratoService = (AcordoNivelServicoContratoService) ServiceLocator.getInstance() .getService(AcordoNivelServicoContratoService.class, null); FormulaService formulaService = (FormulaService) ServiceLocator.getInstance().getService(FormulaService.class, null); OSService oSService = (OSService) ServiceLocator.getInstance().getService(OSService.class, null); GlosaOSService glosaOSService = (GlosaOSService) ServiceLocator.getInstance().getService(GlosaOSService.class, null); AcordoNivelServicoContratoDTO acordoNivelServicoDTO = new AcordoNivelServicoContratoDTO(); acordoNivelServicoDTO.setIdAcordoNivelServicoContrato(faturaDTO.getIdANS()); acordoNivelServicoDTO = (AcordoNivelServicoContratoDTO) acordoNivelServicoContratoService.restore(acordoNivelServicoDTO); if (acordoNivelServicoDTO != null) { if (acordoNivelServicoDTO.getIdFormula() == null) { document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } Collection colOSs = oSService.listOSByIds(faturaDTO.getIdContrato(), faturaDTO.getIdOSFatura()); double valorPrevistoOS = 0; double valorExecutadoOS = 0; Double valorGlosado = 0.0; if (colOSs != null) { for (Iterator itOs = colOSs.iterator(); itOs.hasNext();) { OSDTO osDto = (OSDTO) itOs.next(); // if (osDto.getGlosaOS() != null) { // valorGlosado = osDto.getGlosaOS(); // } if (osDto.getCustoOS() != null) { valorPrevistoOS = valorPrevistoOS + osDto.getCustoOS().doubleValue(); } if (osDto.getExecutadoOS() != null) { valorExecutadoOS = valorExecutadoOS + osDto.getExecutadoOS().doubleValue(); } Collection colGlosasOS = glosaOSService.findByIdOs(osDto.getIdOS()); if (colGlosasOS != null) { for (Iterator it = colGlosasOS.iterator(); it.hasNext();) { GlosaOSDTO glosaOSDTO = (GlosaOSDTO) it.next(); if (glosaOSDTO.getCustoGlosa() != null) { valorGlosado = valorGlosado + glosaOSDTO.getCustoGlosa().doubleValue(); } } } } } faturaDTO.setValorSomaGlosasOS(valorGlosado); faturaDTO.setValorPrevistoSomaOS(valorPrevistoOS); faturaDTO.setValorExecutadoSomaOS(valorExecutadoOS); FormulaDTO formulaDto = new FormulaDTO(); formulaDto.setIdFormula(acordoNivelServicoDTO.getIdFormula()); formulaDto = (FormulaDTO) formulaService.restore(formulaDto); if (formulaDto != null) { ScriptRhinoJSExecute scriptExecute = new ScriptRhinoJSExecute(); RuntimeScript runtimeScript = new RuntimeScript(); Context cx = Context.enter(); Scriptable scope = cx.initStandardObjects(); scope.put("document", scope, document); scope.put("request", scope, request); scope.put("response", scope, response); scope.put("faturaDTO", scope, faturaDTO); scope.put("FormulasUtil", scope, new FormulasUtil()); scope.put("acordoNivelServicoDTO", scope, acordoNivelServicoDTO); scope.put("ACTION", scope, "calculaFormulaANS"); scope.put("userLogged", scope, usuario); scope.put("RuntimeScript", scope, runtimeScript); try { Object retorno = scriptExecute.processScript(cx, scope, formulaDto.getConteudo(), Fatura.class.getName() + "_calculaFormulaANS"); } catch (Exception e) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.erroExecutarFormula")); e.printStackTrace(); } } } document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } }