From 20ae0d1f2faf1cc6a2838a4a50056d98ffee8ecc Mon Sep 17 00:00:00 2001 From: "Andrey Cunh@" Date: Fri, 8 May 2026 15:30:25 -0300 Subject: [PATCH] att --- .../Solicitação de transferência.png | Bin 0 -> 51955 bytes .../workflow/.resources/producao.ws.cache | 706 +++ .../workflow/.resources/producao.ws.cache.bkp | 729 +++ compras_digital/.vscode/servers.json | 4 +- compras_digital/datasets/dsComprasCotacao.js | 4 +- compras_digital/datasets/ds_consultaSC.js | 80 +- .../Compras_digital/Compras_digital.html | 644 ++- .../forms/Compras_digital/compras_digital.js | 376 +- .../Compras_digital/events/displayFields.js | 8 + .../Solicitação de compras V2.ecm30.xml | 915 +--- .../.resources/Solicitação de compras V2.png | Bin 61957 -> 42013 bytes ...Solicitação de compras V2.processimage.svg | 2 +- .../Solicitação de compras V2.process | 4476 ++++++++--------- ...olicitação de compras V2.servicetask114.js | 159 +- 14 files changed, 4600 insertions(+), 3503 deletions(-) create mode 100644 Transferência Ginseng/workflow/diagrams/workflow/.resources/Solicitação de transferência.png create mode 100644 Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache create mode 100644 Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache.bkp diff --git a/Transferência Ginseng/workflow/diagrams/workflow/.resources/Solicitação de transferência.png b/Transferência Ginseng/workflow/diagrams/workflow/.resources/Solicitação de transferência.png new file mode 100644 index 0000000000000000000000000000000000000000..c1329be0cf9bcb21992f0c0f8cb9460cc4fa8093 GIT binary patch literal 51955 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 literal 0 HcmV?d00001 diff --git a/Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache b/Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache new file mode 100644 index 0000000..8f35f24 --- /dev/null +++ b/Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache @@ -0,0 +1,706 @@ + + + + + volume + + + Default + + + + + expediente + + + Default + + + Expediente BackOffice, Logística e Motorista + + + Expediente Escritório Matriz + + + Expediente Lojas + + + + + mecanismo + + + + + Atribuição por Associação + + + Associado + + + + + + + Atribuição por Campo de Formulário + + + Campo Formulário + + + + + + + dpf_di_emp_filial_filtro + + + dpf_di_emp_filial_filtro + + + + + + + dpf_di_inicio_diadmissao + + + dpf_di_inicio_diadmissao + + + + + + + Atribuição por Executor de Atividade + + + Executor Atividade + + + + + + + Atribuição por Grupo + + + Grupo + + + + + + + Atribuição por Grupos do Colaborador + + + Grupos Colaborador + + + + + + + mecCustomAprov + + + mecCustomAprov + + + + + + + Atribuição por Papel + + + Papel + + + + + + + Atribuição para um Grupo + + + Pool Grupo + + + + + + + Atribuição para um Papel + + + Pool Papel + + + + + + + Atribuição por Usuário + + + Usuário + + + + + + + forms + + + + + FLUIGADHOC + + + FLUIGADHOC + + + 3 + + + + + + + FLUIGADHOCPROCESS + + + FLUIGADHOCPROCESS + + + 4 + + + + + + + totvsflow_dataset_tipo_ocorrencia + + + totvsflow_dataset_tipo_ocorrencia + + + 14 + + + + + + + totvsflow_abertura_chamado + + + totvsflow_abertura_chamado + + + 15 + + + + + + + DSFormulariodeAberturadechamado + + + Formulário de Abertura de chamado + + + 20 + + + + + + + Abertura_de_chamados + + + Solicitação de abertura de chamados + + + 21 + + + + + + + DSvistoriadeServico + + + vistoriadeServico + + + 24 + + + + + + + DSFormulariodeReservadesala + + + Formulário de Reserva de sala + + + 34 + + + + + + + totvsflow_dataset_centrocusto + + + totvsflow_dataset_centrocusto + + + 103 + + + + + + + totvsflow_dataset_cadastro_item + + + totvsflow_dataset_cadastro_item + + + 104 + + + + + + + totvsflow_dataset_estabelecimento + + + totvsflow_dataset_estabelecimento + + + 105 + + + + + + + totvsflow_solicitacao_compras + + + totvsflow_solicitacao_compras + + + 165 + + + + + + + aberturadechamado_manutencao + + + aberturadechamado_manutencao + + + 400 + + + + + + + Solicitacao_transferencia + + + Solicitacao_transferencia + + + 590 + + + + + + + recrutamento + + + recrutamento + + + 823 + + + + + + + kit_aniversariantes + + + Aniversariantes + + + 7690 + + + + + + + kit_cardapio + + + Cardápio do Dia + + + 7695 + + + + + + + kit_convenios + + + Convênios + + + 7703 + + + + + + + kit_news + + + Notícias + + + 7709 + + + + + + + compras_digital + + + compras_digital + + + 9305 + + + + + + + dpf_di_formulario_processo_admissao + + + Digte_Public_Form_Di_Formulario_Processo_Admissao_Protheus + + + 9626 + + + + + + + dpf_cadastro_status + + + Digte_Public_Form_Status + + + 9627 + + + + + + + dpf_configuracoes + + + Digte_Public_Form_Configuracoes + + + 9628 + + + + + + + dpf_cadastro_jornada + + + Digte_Public_Form_Jornada + + + 9629 + + + + + + + dpf_tipo_documento + + + Digte_Public_Form_Tipo_Documento + + + 9630 + + + + + + + dpf_dataset + + + Digte_Public_Form_Dataset + + + 9631 + + + + + + + dpf_di_configuracao + + + Digte_Public_Form_Di_Configuracoes + + + 9632 + + + + + + + dpf_di_beneficio + + + Digte_Public_Form_Di_Beneficios + + + 9633 + + + + + + + dpf_di_compl_contrato + + + Digte_Public_Form_Di_Comp_Contrato + + + 9634 + + + + + + + dpf_di_funcao_jornada + + + Digte_Public_Form_Di_Funcao_Jornada + + + 9635 + + + + + + + dpf_dataset_estrutura + + + Digte_Public_Form_Di_Dataset_Estrutura + + + 9636 + + + + + + + dpf_grupo_tipo_contrato + + + Digte_Public_Form_Grupo_Tipo_Contrato + + + 9637 + + + + + + + dpf_tipo_contrato + + + Digte_Public_Form_Tipo_Contrato + + + 9638 + + + + + + + dpf_di_traducao_campo_valor + + + Digte_Public_Form_Di_Traducao_Campo_Valor + + + 9639 + + + + + + + dpf_di_restricoes_cpf + + + Digte_Public_Form_Di_Formulario_Restricao_CPF + + + 9640 + + + + + + + dpf_di_compl_vt + + + Digte_Public_Form_Di_Compl_VT + + + 9641 + + + + + + + dpf_di_traducao_campo + + + Digte_Public_Form_Di_Traducao_Campo + + + 9995 + + + + + + + desligamento + + + desligamento + + + 12959 + + + + + + + checklist + + + checklist + + + 40213 + + + + + + + totvsflow_lancamento_documento + + + totvsflow_lancamento_documento + + + 41254 + + + + + + + transferenciav2 + + + transferência + + + 43582 + + + + + + + desligamentov2 + + + desligamentov2 + + + 46963 + + + + + + + diff --git a/Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache.bkp b/Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache.bkp new file mode 100644 index 0000000..de68bfa --- /dev/null +++ b/Transferência Ginseng/workflow/diagrams/workflow/.resources/producao.ws.cache.bkp @@ -0,0 +1,729 @@ + + + + + mecanismoGrupo + + + + + Tecnologia e Comunicação + + + TIC + + + + + + + Compras Indiretos + + + ComprasIndiretos + + + + + + + Obras e manutenção + + + Manutencao + + + + + + + Aprovadores Compras Nvl 3 + + + AprovadoresComprasNvl3 + + + + + + + Motoristas + + + Motoristas + + + + + + + Requisitantes de Vaga + + + Requisitantesdevaga + + + + + + + Recrutamento + + + Recrutamento + + + + + + + TODOS-TODOS-DIADMISSAO + + + TODOS-TODOS-DIADMISSAO + + + + + + + ResponsavelDesligamento + + + ResponsavelDesligamento + + + + + + + GENTE & CULTURA + + + GENTE_CULTURA + + + + + + + LOJA AL + + + LOJA_AL + + + + + + + CD + + + CD + + + + + + + ESPAÇO DO REVENDEDOR AL + + + ESPACO_DO_REVENDEDOR_AL + + + + + + + FINANCEIRO + + + FINANCEIRO + + + + + + + OPERAÇÕES + + + OPERACOES + + + + + + + AMG AL + + + AMG_AL + + + + + + + REGIONAL ALAGOAS + + + REGIONAL_ALAGOAS + + + + + + + PREVENÇÃO DE PERDA + + + PREVENCAO_DE_PERDA + + + + + + + MARKETING, TREINAMENTO + + + MARKETING_TREINAMENTO + + + + + + + SECRETARIA EXECUTIVA + + + SECRETARIA_EXECUTIVA + + + + + + + DIRETORIA EXECUTIVA + + + DIRETORIA_EXECUTIVA + + + + + + + INFRAESTRUTURA + + + INFRAESTRUTURA + + + + + + + ESPAÇO DO REVENDEDOR BA + + + ESPACO_DO_REVENDEDOR_BA + + + + + + + BUSINESS INTELLIGENCE + + + BUSINESS_INTELLIGENCE + + + + + + + DEPARTAMENTO PESSOAL + + + DEPARTAMENTO_PESSOAL + + + + + + + LOJA BA + + + LOJA_BA + + + + + + + TREINAMENTO + + + TREINAMENTO + + + + + + + AMG BA + + + AMG_BA + + + + + + + MARKETING + + + MARKETING + + + + + + + COMPRAS + + + COMPRAS + + + + + + + AMG SE + + + AMG_SE + + + + + + + LOJA SE + + + LOJA_SE + + + + + + + ESPAÇO DO REVENDEDOR SE + + + ESPACO_DO_REVENDEDOR_SE + + + + + + + VENDAS IN COMPANY + + + VENDAS_IN_COMPANY + + + + + + + REGIONAL BAHIA + + + REGIONAL_BAHIA + + + + + + + CANAL LOJA 01 + + + CANAL_LOJA_01 + + + + + + + AUDITORIA + + + AUDITORIA + + + + + + + CANAL LOJA 02 + + + CANAL_LOJA_02 + + + + + + + PLANEJAMENTO DE DEMANDAS + + + PLANEJAMENTO_DE_DEMANDAS + + + + + + + PROJETOS + + + PROJETOS + + + + + + + COMPLIANCE + + + COMPLIANCE + + + + + + + ESCRITÓRIO - MATRIZ + + + ESCRITORIO_MATRIZ + + + + + + + ESCRITÓRIO - CONQUISTA + + + ESCRITORIO_CONQUISTA + + + + + + + REGIONAL SERGIPE + + + REGIONAL_SERGIPE + + + + + + + Transferencia + + + Transferencia + + + + + + + Fiscal + + + Fiscal + + + + + + + motoristaAL + + + motoristaAL + + + + + + + motoristaBA + + + motoristaBA + + + + + + + motoristaSE + + + motoristaSE + + + + + + + expediente + + + Default + + + Expediente BackOffice, Logística e Motorista + + + Expediente Escritório Matriz + + + Expediente Lojas + + + + + camposFormulario, documentoId = 43582 + + + activity + + + analistasup + + + categoriaItem + + + centroCusto + + + chaveNfe + + + codigoItem + + + codigoProdutoItem + + + currentUserId + + + currentUsermail + + + currentUserName + + + dataAbertura + + + dataColeta + + + dataEmissaoApiNfe + + + dataEmissaoNfe + + + dataEntradaNfeConsulta + + + dataEntrega + + + dataValidacaoGestor + + + descAnexo_PlanilhaItens + + + descricao + + + emailSolicitante + + + estabelecimento + + + excelUpload + + + fdAnexo_Coleta + + + fdAnexo_Entrega + + + fdAnexo_recebimento + + + fnAnexo_Nfe + + + fnAnexo_PlanilhaItens + + + formMode + + + fornecedorNfeConsulta + + + gestorEmail + + + gestorEmailE + + + gestorNome + + + gestorNomeE + + + gestor_cc + + + gestor_cce + + + invoiceIdNfeConsulta + + + itensNfeConsulta + + + itensNfeJson + + + justificativa + + + justificativaDecisaoGestor + + + justificativaDecisaoItens + + + lojaNfeConsulta + + + motoristaColetaLogin + + + motoristaColetaNome + + + motoristaEntregaLogin + + + motoristaEntregaNome + + + motoristaEntregaSelecionado + + + nomerecebedor + + + numeroNfeConsulta + + + operacaoNfeConsulta + + + productIdItem + + + qtdDivergenciasGestor + + + qtdDivergenciasNfe + + + quantidadeAprovadaGestor + + + quantidadeItem + + + requesterId + + + requesterMail + + + requesterName + + + serieNfeConsulta + + + situacaoNfeConsulta + + + storeIdNfeConsulta + + + tipoMotoristaEntrega + + + ufDestino + + + ufOrigem + + + userValidacaoGestor + + + usuarioEmissorNfe + + + validacaoItens + + + valorNfeConsulta + + + WKNumProces + + + + + diff --git a/compras_digital/.vscode/servers.json b/compras_digital/.vscode/servers.json index 5ae09ec..934d36f 100644 --- a/compras_digital/.vscode/servers.json +++ b/compras_digital/.vscode/servers.json @@ -2,13 +2,13 @@ "version": "1.0.0", "configurations": [ { - "id": "uyzzp0mq8qomoutcaz19tssb58lcc7", + "id": "o9cixezp329movgapv2risawf8wvym", "name": "Ginseng Produção", "host": "comerciode188006.fluig.cloudtotvs.com.br", "ssl": true, "port": 443, "username": "andrey.cunha", - "password": "eyJpdiI6IjAyMjdkMjdmZDI1NTczYzFkZmUwMGU4ZWExMWRjZTBmIiwic2FsdCI6ImExMjJlYjdiZDA0MmM3ZGUzYjU3Y2I4YWU4NTUwYzE5IiwidGV4dCI6ImQ2Y2Q4ZjFhNjk0MmQ0MGFhMjQ0NzhjMzExODhiZGQ2In0=", + "password": "eyJpdiI6IjM5MGNhMzMwMWIyNWI2ZDMyYmVmM2FiNDg5NzQ3NzZhIiwic2FsdCI6ImU1ZWE3MDZhOWE0NGMyMjExNmE3NjIyYmRmZTdmMjNhIiwidGV4dCI6ImZkMTY4MTAwNjM0ZmQ3NmI5M2MwZjQ1YmE4NDJmMjRhIn0=", "userCode": "andrey.cunha", "confirmExporting": false, "hasBrowser": false, diff --git a/compras_digital/datasets/dsComprasCotacao.js b/compras_digital/datasets/dsComprasCotacao.js index 50674df..77eb365 100644 --- a/compras_digital/datasets/dsComprasCotacao.js +++ b/compras_digital/datasets/dsComprasCotacao.js @@ -11,6 +11,7 @@ function createDataset(fields, constraints, sortFields) { dataset.addColumn("C8_TOTAL"); dataset.addColumn("C8_FORNECE"); dataset.addColumn("C8_LOJA"); + dataset.addColumn("C8_FORNOME"); dataset.addColumn("C8_COND"); dataset.addColumn("C8_NUMSC"); dataset.addColumn("C8_ITEMSC"); @@ -32,7 +33,7 @@ function createDataset(fields, constraints, sortFields) { return [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", sucesso ? "true" : "false", erro || "" + "", "", "", sucesso ? "true" : "false", erro || "" ]; } @@ -144,6 +145,7 @@ function createDataset(fields, constraints, sortFields) { item.C8_TOTAL || "", item.C8_FORNECE || "", item.C8_LOJA || "", + item.C8_FORNOME || "", item.C8_COND || "", item.C8_NUMSC || "", item.C8_ITEMSC || "", diff --git a/compras_digital/datasets/ds_consultaSC.js b/compras_digital/datasets/ds_consultaSC.js index 6e9a04b..8a088f7 100644 --- a/compras_digital/datasets/ds_consultaSC.js +++ b/compras_digital/datasets/ds_consultaSC.js @@ -24,9 +24,20 @@ function createDataset(fields, constraints, sortFields) { dataset.addColumn("sucesso"); dataset.addColumn("COTACOES_JSON"); dataset.addColumn("COTACAO_ERRO"); + dataset.addColumn("PEDIDO_JSON"); + dataset.addColumn("PEDIDO_ERRO"); function emptyRow() { - return ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false", "", ""]; + return ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false", "", "", "", ""]; + } + + function documentoValido(valor) { + var v = String(valor || "").trim().toUpperCase(); + if (!v) return false; + if (/^0+$/.test(v)) return false; + if (/^X+$/.test(v)) return false; + if (v == "XXXX" || v == "XXXXXX") return false; + return true; } function consultarCotacao(clientService, cotacao) { @@ -80,6 +91,57 @@ function createDataset(fields, constraints, sortFields) { }; } + function consultarPedido(clientService, pedido) { + var endpoints = [ + "/UF_MATA120/" + pedido, + "/rest/UF_MATA120/" + pedido, + "/rest/uf_mata120/" + pedido + ]; + + var ultimoErro = ""; + for (var i = 0; i < endpoints.length; i++) { + try { + var dataPed = { + companyId: "1", + serviceCode: "Postprod", + endpoint: endpoints[i], + method: "get", + timeoutService: "60000", + headers: { + "Content-Type": "application/json" + } + }; + + var responsePed = clientService.invoke(JSON.stringify(dataPed)); + if (!responsePed || !responsePed.getResult()) { + ultimoErro = "Sem resposta ao consultar pedido"; + continue; + } + + var resultPed = JSON.parse(responsePed.getResult()); + if (resultPed && resultPed.sucesso && resultPed.pedidos && resultPed.pedidos.length > 0) { + return { + sucesso: true, + pedidos: resultPed.pedidos + }; + } + + if (resultPed && resultPed.message) { + ultimoErro = String(resultPed.message); + } else { + ultimoErro = "Pedido sem itens retornados"; + } + } catch (ePed) { + ultimoErro = String(ePed); + } + } + + return { + sucesso: false, + erro: ultimoErro || "Falha ao consultar pedido" + }; + } + try { var numeroSC = null; if (constraints != null) { @@ -130,6 +192,18 @@ function createDataset(fields, constraints, sortFields) { } } + var pedido = String(sc.C1_PEDIDO || "").trim(); + var pedidoJson = ""; + var pedidoErro = ""; + if (documentoValido(pedido)) { + var consultaPed = consultarPedido(clientService, pedido); + if (consultaPed.sucesso) { + pedidoJson = JSON.stringify(consultaPed.pedidos || []); + } else { + pedidoErro = consultaPed.erro || ""; + } + } + dataset.addRow([ sc.C1_FILIAL || "", sc.C1_NUM || "", @@ -153,7 +227,9 @@ function createDataset(fields, constraints, sortFields) { result.hora_consulta || "", "true", cotacoesJson, - cotacaoErro + cotacaoErro, + pedidoJson, + pedidoErro ]); } else { dataset.addRow(emptyRow()); diff --git a/compras_digital/forms/Compras_digital/Compras_digital.html b/compras_digital/forms/Compras_digital/Compras_digital.html index 7c4501e..f60c659 100644 --- a/compras_digital/forms/Compras_digital/Compras_digital.html +++ b/compras_digital/forms/Compras_digital/Compras_digital.html @@ -61,7 +61,7 @@ .sc-status-panel { margin-top: 15px; - padding: 18px; + padding: 10px; border: 1px solid #d8e1e8; border-radius: 12px; background: #f7fafc; @@ -71,27 +71,27 @@ .sc-primary-grid, .sc-secondary-grid { display: grid; - grid-template-columns: repeat(3, minmax(220px, 1fr)); - gap: 12px; + grid-template-columns: repeat(3, minmax(150px, 1fr)); + gap: 8px; } .sc-primary-grid { - margin-bottom: 12px; + margin-bottom: 8px; } .sc-secondary-grid { - gap: 8px 12px; + gap: 8px; } .sc-info { background: #fff; - border-radius: 10px; - padding: 12px 14px; - min-height: 72px; + border-radius: 8px; + padding: 8px 10px; + min-height: 52px; } .sc-info--primary { - border-left: 4px solid #04506b; + border-left: 3px solid #04506b; box-shadow: inset 0 0 0 1px #d9e4ec; } @@ -111,32 +111,39 @@ } .sc-label { - font-size: 11px; + font-size: 10px; color: #4d6073; letter-spacing: .04em; text-transform: uppercase; - margin-bottom: 4px; + margin-bottom: 3px; } .sc-value { - font-size: 15px; + font-size: 13px; font-weight: 600; color: #24313f; word-break: break-word; } .sc-info--primary .sc-value { - font-size: 30px; - line-height: 1.1; + font-size: 13px; + line-height: 1.25; color: #102a43; font-weight: 700; letter-spacing: .01em; } + .sc-info--secondary .sc-value { + font-size: 13px; + line-height: 1.25; + color: #173750; + font-weight: 700; + } + .sc-hint { display: block; - margin-top: 6px; - font-size: 11px; + margin-top: 4px; + font-size: 10px; color: #5f7386; letter-spacing: .02em; } @@ -144,14 +151,29 @@ .sc-value.badge { display: inline-flex; align-items: center; - min-height: 30px; - padding: 6px 12px; + min-height: 24px; + padding: 4px 10px; border-radius: 999px; - font-size: 12px; + font-size: 11px; font-weight: 700; line-height: 1; } + /* Exibe apenas texto (sem fundo) nos status resumidos */ + #statusSCProtheus_label, + #statusSC_label, + #cotacaoResultado_label { + background: transparent !important; + border-radius: 0 !important; + min-height: 0 !important; + padding: 0 !important; + display: inline !important; + font-size: 13px !important; + font-weight: 700 !important; + line-height: 1.25 !important; + color: #1f3f56 !important; + } + .sc-timeline-wrap { margin-top: 16px; padding-top: 0; @@ -166,11 +188,25 @@ .sc-timeline-wrap.is-open { padding-top: 14px; border-top-color: #d7e2eb; - max-height: 640px; + max-height: 3400px; opacity: 1; pointer-events: auto; } + .sc-timeline-layout { + display: grid; + grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); + gap: 12px; + align-items: start; + } + + .sc-timeline-panel { + padding: 12px; + border-radius: 10px; + background: #fff; + box-shadow: inset 0 0 0 1px #dfe8f0; + } + .sc-timeline-wrap.is-focus { background: #f2f9ff; border-radius: 8px; @@ -179,7 +215,7 @@ .sc-timeline-title { margin: 0 0 10px; color: #12344d; - font-size: 14px; + font-size: 13px; font-weight: 700; letter-spacing: .01em; } @@ -242,7 +278,7 @@ .sc-timeline-event { color: #18354f; - font-size: 14px; + font-size: 13px; font-weight: 700; } @@ -280,84 +316,218 @@ list-style: none; } - .sc-cotacao-item { - display: flex; - align-items: center; - justify-content: space-between; - gap: 10px; - padding: 8px 0; - border-top: 1px solid #edf2f7; + .sc-cotacao-kpis { + display: grid; + grid-template-columns: repeat(3, minmax(120px, 1fr)); + gap: 8px; + margin-bottom: 10px; } - .sc-cotacao-item:first-child { - border-top: 0; - padding-top: 0; + .sc-cotacao-kpi { + background: #f6f9fc; + border: 1px solid #e2eaf2; + border-radius: 8px; + padding: 8px 10px; } - .sc-cotacao-item:last-child { - padding-bottom: 0; + .sc-cotacao-kpi-label { + display: block; + font-size: 10px; + color: #65798c; + letter-spacing: .04em; + text-transform: uppercase; + margin-bottom: 3px; } - .sc-cotacao-item-info { - color: #324a5f; + .sc-cotacao-kpi-value { font-size: 13px; + font-weight: 700; + color: #102a43; } - .sc-cotacao-item-info strong { + .sc-cotacao-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 10px; + } + + .sc-cotacao-card { + border: 1px solid #dfe8f0; + border-left: 4px solid #8ea5b8; + border-radius: 10px; + padding: 10px 12px; + background: #fff; + } + + .sc-cotacao-card--winner { + border-left-color: #18aa46; + box-shadow: 0 0 0 1px rgba(24, 170, 70, .15); + } + + .sc-cotacao-card--homologado { + border-left-color: #20a7d8; + } + + .sc-cotacao-card--novo { + border-left-color: #2e86ff; + } + + .sc-cotacao-card--perdedor { + border-left-color: #e3a225; + } + + .sc-cotacao-top { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 8px; + } + + .sc-cotacao-top > div { + min-width: 0; + flex: 1 1 auto; + padding-right: 4px; + } + + .sc-cotacao-supplier { color: #20384d; + font-size: 13px; font-weight: 700; + line-height: 1.25; + overflow-wrap: anywhere; + word-break: break-word; } - #tbCotacao { - table-layout: fixed; - width: 100%; - margin-bottom: 0; + .sc-cotacao-code { + color: #62768a; + font-size: 12px; + margin-top: 2px; + overflow-wrap: anywhere; + word-break: break-word; } - #tbCotacao thead th { - background: #eef3f8; - color: #3b4d5f; + .sc-cotacao-top .badge { + align-self: start; + flex: 0 0 auto; + white-space: nowrap; + margin: 0 0 0 6px; + } + + .sc-cotacao-meta { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 8px; + margin-top: 8px; + } + + .sc-cotacao-meta-box { + background: #f8fbfd; + border: 1px solid #e6edf3; + border-radius: 8px; + padding: 7px 8px; + } + + .sc-cotacao-meta-label { + display: block; + font-size: 10px; + color: #6b7f92; + text-transform: uppercase; + letter-spacing: .04em; + margin-bottom: 2px; + } + + .sc-cotacao-meta-value { + font-size: 14px; font-weight: 700; + color: #1f384d; } - #tbCotacao tbody tr:nth-child(odd) { + .sc-cotacao-footer { + margin-top: 8px; + display: flex; + flex-wrap: wrap; + gap: 10px; + color: #4d6479; + font-size: 12px; + } + + .sc-cotacao-empty { + border: 1px dashed #c6d5e2; + border-radius: 8px; + padding: 10px; + font-size: 13px; + color: #4f657a; background: #f9fbfd; } - #tbCotacao tbody td, - #tbCotacao thead th, - #tbCotacao tfoot td { - vertical-align: middle; + .sc-pedido-track { + margin-top: 12px; + padding: 12px; + border-radius: 10px; + background: #fff; + box-shadow: inset 0 0 0 1px #dfe8f0; } - #tbCotacao th:nth-child(3), - #tbCotacao th:nth-child(4), - #tbCotacao th:nth-child(5), - #tbCotacao td:nth-child(3), - #tbCotacao td:nth-child(4), - #tbCotacao td:nth-child(5) { - text-align: right; + .sc-timeline-layout .sc-pedido-track { + margin-top: 0; } - #tbCotacao td:nth-child(3) input, - #tbCotacao td:nth-child(4) input, - #tbCotacao td:nth-child(5) input { - text-align: right; + .sc-pedido-resumo { + margin-top: 8px; + margin-bottom: 8px; + color: #26455d; + font-size: 13px; + line-height: 1.45; } - #tbCotacao tfoot .sc-total-label { - text-align: right; + .sc-pedido-assinaturas { + display: grid; + grid-template-columns: 1fr; + gap: 8px; + } + + .sc-pedido-ass-card { + border: 1px solid #e3ebf2; + border-left: 4px solid #90a8bd; + border-radius: 8px; + padding: 8px 10px; + background: #fbfdff; + } + + .sc-pedido-ass-card.aprovado { + border-left-color: #1aad4f; + } + + .sc-pedido-ass-card.pendente { + border-left-color: #e2a223; + } + + .sc-pedido-ass-card.bloqueado { + border-left-color: #d64f4f; + } + + .sc-pedido-ass-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + flex-wrap: wrap; + gap: 8px; + margin-bottom: 4px; + } + + .sc-pedido-ass-title { + color: #1f3f56; + font-size: 13px; font-weight: 700; - background: #edf3f8; - color: #324a60; } - #tbCotacao tfoot .sc-total-value { - background: #edf3f8; - color: #12344d; - font-size: 15px; - font-weight: 700; - text-align: right; + .sc-pedido-ass-meta { + display: flex; + flex-wrap: wrap; + gap: 10px; + color: #4b6176; + font-size: 12px; + line-height: 1.35; } @media (max-width: 992px) { @@ -365,6 +535,10 @@ .sc-secondary-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); } + + .sc-timeline-layout { + grid-template-columns: 1fr; + } } @media (max-width: 640px) { @@ -374,7 +548,19 @@ } .sc-info--primary .sc-value { - font-size: 24px; + font-size: 13px; + } + + .sc-info--secondary .sc-value { + font-size: 13px; + } + + .sc-cotacao-top { + flex-wrap: wrap; + } + + .sc-cotacao-top .badge { + margin-left: 0; } } @@ -410,6 +596,7 @@ + @@ -667,285 +854,76 @@ Clique para ver a linha do tempo
-
Status Cadastro
- - -
-
-
Andamento
- - -
- - -
-
-
Solicitante
-
-
-
-
-
Emissão
-
-
-
-
-
Qtd. Itens
-
-
-
-
-
Data do Cadastro
-
- às -
-
-
Cotação
-
-
+
Pedido
-
+
+
+
Status Cadastro
+ - +
+
+
Andamento
+ - +
+
+
Emissão
+
-
+
+
+
-

Linha do tempo da SC

-
    +
    +
    +

    Linha do tempo da SC

    +
      +
      + +
      +
      +

      Aprovação do pedido

      + Sem pedido +
      +
      Sem pedido vinculado.
      +
      +
      Sem assinaturas para exibir.
      +
      +
      +

      Acompanhamento da cotação

      Sem cotação
      -
        -
      • - Aguardando vínculo da cotação na SC. -
      • -
      -
      -
      -
      - - -
      -
      -
      -
      Consulta Cotação
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ItemProdutoQtdPreçoTotalSelecionar
      Total selecionadoR$ 0,00
      -
      -
      -
      - - -
      -
      -
      -

      Aprovar cotação

      -
      Análise da cotação
      -
      -
      - -
      -
      -
      -
      - - +
      +
      + Cotações + 0 +
      +
      + Com pedido + 0 +
      +
      + Menor total + - +
      -
      - - -
      -
      -
      -
      - -
      -
      -
      -
      - - - +
      +
      Aguardando vínculo da cotação na SC.
      - -
      -
      -
      -

      Aprovação do Gestor do C.Custo

      -
      Aprovação da cotação
      -
      -
      - -
      -
      -
      -
      - - -
      -
      - - -
      -
      -
      -
      - -
      -
      -
      -
      - - - -
      -
      - - -
      -
      -
      -
      -
      - -
      -
      -
      -

      Aprovação do Gerente Financeiro

      -
      Aprovação do Gerente Financeiro
      -
      -
      - -
      -
      -
      -
      - - -
      -
      - - -
      -
      -
      -
      - -
      -
      -
      -
      - - - -
      -
      - - -
      -
      - - -
      -
      -
      -
      -
      - -
      -
      -
      -

      Aprovação CEO

      -
      Aprovação do CEO
      -
      -
      - -
      -
      -
      -
      - - -
      -
      - - -
      -
      -
      -
      - -
      -
      -
      -
      - - - -
      -
      - - -
      -
      - - -
      -
      - - -
      -
      -
      -
      -
      +

      @@ -955,14 +933,6 @@
      -
      - -
      - ⏳ Aguardando geração do pedido... -
      -
      - -
      diff --git a/compras_digital/forms/Compras_digital/compras_digital.js b/compras_digital/forms/Compras_digital/compras_digital.js index 27fe6f4..80685a5 100644 --- a/compras_digital/forms/Compras_digital/compras_digital.js +++ b/compras_digital/forms/Compras_digital/compras_digital.js @@ -410,17 +410,29 @@ function badgeClassByStatus(status) { var s = String(status || "").toLowerCase(); if (!s) return "badge bg-secondary"; if (s.indexOf("erro") >= 0 || s.indexOf("reprov") >= 0 || s.indexOf("cancel") >= 0) return "badge bg-danger"; - if (s.indexOf("sucesso") >= 0 || s.indexOf("aprov") >= 0 || s.indexOf("gerad") >= 0 || s.indexOf("liberad") >= 0) return "badge bg-success"; if (s.indexOf("aguard") >= 0 || s.indexOf("pend") >= 0) return "badge bg-warning"; + if (s.indexOf("sucesso") >= 0 || s.indexOf("aprov") >= 0 || s.indexOf("gerad") >= 0 || s.indexOf("liberad") >= 0) return "badge bg-success"; + if (s.indexOf("bloque") >= 0 || s.indexOf("rejeit") >= 0) return "badge bg-danger"; return "badge bg-info"; } function setBadge(selector, valor) { var texto = String(valor || "").trim() || "-"; + var classe = badgeClassByStatus(texto); + var textoLower = texto.toLowerCase(); + + // Mantem os badges de resumo da SC sem destaque verde para sucesso/geracao. + if ( + (selector === "#statusSCProtheus_label" && textoLower.indexOf("sc cadastrada com sucesso") >= 0) || + (selector === "#statusSC_label" && textoLower.indexOf("pedido gerado") >= 0) + ) { + classe = "badge bg-info"; + } + $(selector) .text(texto) .removeClass("bg-secondary bg-success bg-danger bg-warning bg-info") - .addClass(badgeClassByStatus(texto)); + .addClass(classe); } function normalizarStatusCadastro(statusCadastro, numeroSC) { @@ -487,11 +499,35 @@ function possuiFornecedorCotacao(row) { return !!(fornece && loja); } +function textoUtilFornecedor(valor) { + var txt = String(valor || "").trim(); + if (!txt) return ""; + if (txt === "-" || txt === "--") return ""; + if (txt.toUpperCase() === "NULL") return ""; + return txt; +} + +function obterNomeFornecedorCompleto(row) { + var candidatos = [ + textoUtilFornecedor(row.C8_FORNOME), + textoUtilFornecedor(row.A2_NOME), + textoUtilFornecedor(row.A2_NREDUZ) + ].filter(function (v) { return !!v; }); + + if (!candidatos.length) return ""; + + candidatos.sort(function (a, b) { + if (b.length !== a.length) return b.length - a.length; + return a.localeCompare(b); + }); + return candidatos[0]; +} + function classificarLinhaCotacao(row) { var status = String(row.STATUS || "").trim().toUpperCase(); if (linhaCotacaoVencedora(row)) { - return { tipo: "PEDIDO_GERADO", label: "VENCEDOR", badge: "badge bg-success", tipoFornecedor: "Fornecedor homologado" }; + return { tipo: "PEDIDO_GERADO", label: "GANHOU", badge: "badge bg-success", tipoFornecedor: "Fornecedor homologado" }; } if (possuiFornecedorCotacao(row)) { @@ -499,7 +535,7 @@ function classificarLinhaCotacao(row) { } if (status.indexOf("PEDIDO_GERADO") >= 0) { - return { tipo: "PERDEDOR", label: "PERDEDOR", badge: "badge bg-warning", tipoFornecedor: "-" }; + return { tipo: "PERDEDOR", label: "", badge: "badge bg-warning", tipoFornecedor: "-" }; } if (!possuiFornecedorCotacao(row)) { @@ -515,6 +551,41 @@ function formatarValorCotacao(valor) { return floatToBRL(parseNumeroCotacao(txt)); } +function formatarDocumentoVisual(valor) { + var txt = String(valor || "").trim(); + if (!txt || documentoEhPlaceholder(txt)) return "-"; + return txt; +} + +function classeCardCotacao(tipo) { + if (tipo === "PEDIDO_GERADO") return "sc-cotacao-card sc-cotacao-card--winner"; + if (tipo === "FORNECEDOR_HOMOLOGADO") return "sc-cotacao-card sc-cotacao-card--homologado"; + if (tipo === "NOVO_FORNECEDOR") return "sc-cotacao-card sc-cotacao-card--novo"; + if (tipo === "PERDEDOR") return "sc-cotacao-card sc-cotacao-card--perdedor"; + return "sc-cotacao-card"; +} + +function renderizarResumoCotacao(totalCotacoes, totalComPedido, menorTotal) { + var alvo = $("#cotacaoResultadoResumo"); + if (!alvo.length) return; + + var menorTxt = (menorTotal !== null) ? floatToBRL(menorTotal) : "-"; + alvo.html([ + '
      ', + ' Quantidade', + ' ' + escapeHTML(String(totalCotacoes || 0)) + "", + "
      ", + '
      ', + ' Pedidos Gerados', + ' ' + escapeHTML(String(totalComPedido || 0)) + "", + "
      ", + '
      ', + ' Menor Valor', + ' ' + escapeHTML(menorTxt) + "", + "
      " + ].join("")); +} + function comporDataHora(data, hora) { var d = String(data || "").trim(); var h = String(hora || "").trim(); @@ -614,13 +685,14 @@ function renderizarResultadoCotacao(resumo) { if (!resumo || !resumo.detalhes || !resumo.detalhes.length) { setBadge("#cotacaoResultado_label", "Sem cotacao"); - lista.html('
    • Aguardando vinculo da cotacao na SC.
    • '); + renderizarResumoCotacao(0, 0, null); + lista.html('
      Aguardando vinculo da cotacao na SC.
      '); return; } var statusResumo = "Sem fornecedor definido"; if ((resumo.qtdPedidoGerado || 0) > 0) { - statusResumo = "Pedido gerado em " + resumo.qtdPedidoGerado + " item(ns)"; + statusResumo = "Cotacao concluida"; } else if ((resumo.qtdFornecedorHomologado || 0) > 0) { statusResumo = "Fornecedor homologado em " + resumo.qtdFornecedorHomologado + " item(ns)"; } else if ((resumo.qtdNovoFornecedor || 0) > 0) { @@ -629,24 +701,69 @@ function renderizarResultadoCotacao(resumo) { setBadge("#cotacaoResultado_label", statusResumo); - var html = resumo.detalhes.map(function (linha) { + var detalhesOrdenados = resumo.detalhes.slice().sort(function (a, b) { + var pesoA = (a.tipo === "PEDIDO_GERADO") ? 0 : 1; + var pesoB = (b.tipo === "PEDIDO_GERADO") ? 0 : 1; + if (pesoA !== pesoB) return pesoA - pesoB; + + var totalA = parseNumeroCotacao(a.total); + var totalB = parseNumeroCotacao(b.total); + if (totalA === totalB) return 0; + return totalA - totalB; + }); + + var menorTotal = null; + var totalComPedido = 0; + for (var i = 0; i < detalhesOrdenados.length; i++) { + var t = parseNumeroCotacao(detalhesOrdenados[i].total); + if (t > 0 && (menorTotal === null || t < menorTotal)) menorTotal = t; + if (!documentoEhPlaceholder(detalhesOrdenados[i].pedido)) totalComPedido++; + } + renderizarResumoCotacao(detalhesOrdenados.length, totalComPedido, menorTotal); + + var html = detalhesOrdenados.map(function (linha) { var numeroTxt = escapeHTML(linha.numero || "-"); var itemTxt = escapeHTML(linha.item || "-"); var produtoTxt = escapeHTML(linha.produto || "-"); + var fornecedorNomeTxt = escapeHTML(linha.fornecedorNome || linha.fornecedor || "Fornecedor nao informado"); var fornecedorTxt = escapeHTML(linha.fornecedor || "-"); var tipoFornecedorTxt = escapeHTML(linha.tipoFornecedor || "-"); var precoTxt = escapeHTML(formatarValorCotacao(linha.preco)); var totalTxt = escapeHTML(formatarValorCotacao(linha.total)); - var pedidoTxt = escapeHTML(linha.pedido || "-"); + var pedidoTxt = escapeHTML(formatarDocumentoVisual(linha.pedido)); var statusApiTxt = escapeHTML(linha.statusApi || "-"); - var statusTxt = escapeHTML(linha.label || "EM COTACAO"); + var statusRaw = String(linha.label || "").trim(); + var statusTxt = escapeHTML(statusRaw); var badgeStatus = linha.badge || "badge bg-secondary"; + var classeCard = classeCardCotacao(linha.tipo); + var qtdTxt = escapeHTML(String(linha.quantidade || "-")); + var entregaTxt = escapeHTML(normalizarDataProtheus(linha.dataPrevista || "")); + var condicaoTxt = escapeHTML(linha.condicao || "-"); return [ - '
    • ', - ' Cotacao ' + numeroTxt + ' | Item ' + itemTxt + " | Produto: " + produtoTxt + " | Fornecedor: " + fornecedorTxt + " | Tipo: " + tipoFornecedorTxt + " | Preco: " + precoTxt + " | Total: " + totalTxt + " | Pedido: " + pedidoTxt + " | Status: " + statusApiTxt + "", - ' ' + statusTxt + "", - "
    • " + '
      ', + '
      ', + "
      ", + '
      ' + fornecedorNomeTxt + "
      ", + '
      Fornecedor: ' + fornecedorTxt + " | Tipo: " + tipoFornecedorTxt + "
      ", + "
      ", + statusRaw ? (' ' + statusTxt + "") : "", + "
      ", + '
      ', + '
      Preco unitario' + precoTxt + "
      ", + '
      Total' + totalTxt + "
      ", + "
      ", + ' ", + "
      " ].join(""); }).join(""); @@ -658,13 +775,166 @@ function renderizarErroCotacao(mensagem) { if (!lista.length) return; setBadge("#cotacaoResultado_label", "Erro consulta cotacao"); + renderizarResumoCotacao(0, 0, null); lista.html( - '
    • ' + + '
      ' + escapeHTML(mensagem || "Nao foi possivel carregar a cotacao no momento.") + - "
    • " + "
      " ); } +function mapearStatusAlcada(codigo) { + var status = String(codigo || "").trim(); + if (status === "01") return { label: "Pendente em niveis anteriores", badge: "badge bg-warning", classe: "pendente" }; + if (status === "02") return { label: "Pendente", badge: "badge bg-warning", classe: "pendente" }; + if (status === "03") return { label: "Aprovado", badge: "badge bg-success", classe: "aprovado" }; + if (status === "04") return { label: "Bloqueado", badge: "badge bg-danger", classe: "bloqueado" }; + if (status === "05") return { label: "Aprovado/rejeitado pelo nivel", badge: "badge bg-info", classe: "pendente" }; + if (status === "06") return { label: "Rejeitado", badge: "badge bg-danger", classe: "bloqueado" }; + if (status === "07") return { label: "Documento rejeitado ou bloqueado por outro usuario", badge: "badge bg-danger", classe: "bloqueado" }; + return { label: status ? ("Status " + status) : "Sem status", badge: "badge bg-secondary", classe: "" }; +} + +function primeiroTextoPreenchido() { + for (var i = 0; i < arguments.length; i++) { + var txt = String(arguments[i] || "").trim(); + if (txt) return txt; + } + return ""; +} + +function montarResumoRastreioPedido(pedidos, numeroPedido) { + if (!pedidos || !pedidos.length) return null; + + var pedidoFiltro = normalizarCodigoComparacao(numeroPedido); + var pedidoBase = null; + for (var i = 0; i < pedidos.length; i++) { + var num = normalizarCodigoComparacao(String((pedidos[i] || {}).C7_NUM || "")); + if (!pedidoFiltro || num === pedidoFiltro) { + pedidoBase = pedidos[i]; + break; + } + } + if (!pedidoBase) pedidoBase = pedidos[0]; + + var assinaturas = []; + var vistos = {}; + + for (var j = 0; j < pedidos.length; j++) { + var ped = pedidos[j] || {}; + var alcadas = ped.ALCADAS || []; + for (var k = 0; k < alcadas.length; k++) { + var a = alcadas[k] || {}; + var chave = [ + String(a.CR_TIPO || "").trim(), + String(a.CR_USER || "").trim(), + String(a.CR_USERLIB || "").trim(), + String(a.CR_STATUS || "").trim(), + String(a.CR_PRAZO || "").trim(), + String(a.CR_DATALIB || "").trim() + ].join("|"); + if (vistos[chave]) continue; + vistos[chave] = true; + + var statusInfo = mapearStatusAlcada(a.CR_STATUS); + assinaturas.push({ + statusCodigo: String(a.CR_STATUS || "").trim(), + statusLabel: statusInfo.label, + badge: statusInfo.badge, + classe: statusInfo.classe, + tipo: String(a.CR_TIPO || "").trim(), + prazo: normalizarDataProtheus(a.CR_PRAZO), + dataLiberacao: normalizarDataProtheus(a.CR_DATALIB), + usuario: primeiroTextoPreenchido(a.CR_USER_NOME, a.AK_NOME, a.CR_USER), + usuarioLiberacao: primeiroTextoPreenchido(a.CR_USERLIB_NOME, a.AK_NOME_USERLIB, a.CR_USERLIB) + }); + } + } + + var resumo = { + numero: String(pedidoBase.C7_NUM || "").trim(), + statusPedido: String(pedidoBase.STATUS || "").trim(), + fornecedor: primeiroTextoPreenchido(pedidoBase.A2_NOME, pedidoBase.A2_NREDUZ, pedidoBase.C7_FORNECE), + emissao: normalizarDataProtheus(pedidoBase.C7_EMISSAO), + entrega: normalizarDataProtheus(pedidoBase.C7_DATPRF), + assinaturas: assinaturas + }; + + return resumo; +} + +function renderizarErroRastreioPedido(mensagem) { + setBadge("#pedidoRastreio_label", "Erro no rastreio"); + $("#pedidoRastreioResumo").text("Nao foi possivel consultar o rastreio do pedido."); + $("#pedidoRastreioAssinaturas").html( + '
      ' + escapeHTML(mensagem || "Erro ao consultar rastreio.") + "
      " + ); +} + +function renderizarRastreioPedido(resumo) { + var badge = $("#pedidoRastreio_label"); + var resumoEl = $("#pedidoRastreioResumo"); + var lista = $("#pedidoRastreioAssinaturas"); + if (!badge.length || !resumoEl.length || !lista.length) return; + + if (!resumo || !resumo.numero) { + setBadge("#pedidoRastreio_label", "Sem pedido"); + resumoEl.text("Sem pedido vinculado."); + lista.html('
      Sem assinaturas para exibir.
      '); + return; + } + + var possuiBloqueio = resumo.assinaturas.some(function (a) { return a.classe === "bloqueado"; }); + var possuiPendente = resumo.assinaturas.some(function (a) { return a.classe === "pendente"; }); + var todosAprovados = resumo.assinaturas.length > 0 && resumo.assinaturas.every(function (a) { return a.statusCodigo === "03"; }); + + var statusTopo = "Pedido pendente"; + if (possuiBloqueio) statusTopo = "Pedido bloqueado"; + else if (todosAprovados) statusTopo = "Pedido aprovado"; + else if (!possuiPendente && resumo.statusPedido) statusTopo = resumo.statusPedido; + setBadge("#pedidoRastreio_label", statusTopo); + + var resumoTxt = "Pedido " + (resumo.numero || "-"); + if (resumo.fornecedor) resumoTxt += " | Fornecedor: " + resumo.fornecedor; + if (resumo.emissao) resumoTxt += " | Emissao: " + resumo.emissao; + if (resumo.entrega) resumoTxt += " | Entrega: " + resumo.entrega; + resumoEl.text(resumoTxt); + + if (!resumo.assinaturas.length) { + lista.html('
      Pedido encontrado, mas sem alcadas retornadas pela API.
      '); + return; + } + + var html = resumo.assinaturas.map(function (a, idx) { + var classeCard = "sc-pedido-ass-card" + (a.classe ? (" " + a.classe) : ""); + var nivel = "Nivel " + (idx + 1); + var usuario = escapeHTML(a.usuario || "-"); + var usuarioLib = escapeHTML(a.usuarioLiberacao || "-"); + var prazo = escapeHTML(a.prazo || "-"); + var dataLib = escapeHTML(a.dataLiberacao || "-"); + var tipo = escapeHTML(a.tipo || "-"); + var statusLabel = escapeHTML(a.statusLabel || "-"); + var badgeStatus = a.badge || "badge bg-secondary"; + + return [ + '
      ', + '
      ', + '
      ' + nivel + " - " + usuario + "
      ", + ' ' + statusLabel + "", + "
      ", + '
      ', + ' Tipo: ' + tipo + "", + ' Prazo: ' + prazo + "", + ' Data liberacao: ' + dataLib + "", + ' Liberado por: ' + usuarioLib + "", + "
      ", + "
      " + ].join(""); + }).join(""); + + lista.html(html); +} + function montarResumoCotacaoPorLinhas(rows, cotacao) { if (!rows || !rows.length) return null; @@ -699,10 +969,14 @@ function montarResumoCotacaoPorLinhas(rows, cotacao) { detalhes.push({ numero: String(row.C8_NUM || "").trim(), item: item, - produto: String(row.C8_PRODUTO || "").trim(), + produto: String(row.B1_DESC || row.C8_DESCRI || row.C8_PRODUTO || "").trim(), + quantidade: String(row.C8_QUANT || "").trim(), + condicao: String(row.C8_COND || "").trim(), + dataPrevista: String(row.C8_DATPRF || "").trim(), fornecedor: possuiFornecedorCotacao(row) ? (String(row.C8_FORNECE || "").trim() + "/" + String(row.C8_LOJA || "").trim()) : "", + fornecedorNome: obterNomeFornecedorCompleto(row), preco: row.C8_PRECO, total: row.C8_TOTAL, pedido: String(row.C8_NUMPED || "").trim(), @@ -881,7 +1155,7 @@ function montarStatusAndamento(scRow, cotacao, pedido) { return ""; } -function preencherResumoSC(resumoCotacao, erroCotacao) { +function preencherResumoSC(resumoCotacao, erroCotacao, resumoPedido, erroPedido) { var numero = valorCampo("numeroSCProtheus"); var statusCadastro = valorCampo("statusSCProtheus"); var solicitante = valorCampo("solicitanteSCProtheus"); @@ -934,6 +1208,14 @@ function preencherResumoSC(resumoCotacao, erroCotacao) { } else { renderizarResultadoCotacao(null); } + + if (erroPedido) { + renderizarErroRastreioPedido(erroPedido); + } else if (resumoPedido && resumoPedido.numero) { + renderizarRastreioPedido(resumoPedido); + } else { + renderizarRastreioPedido(null); + } } function consultarAndamentoSC() { @@ -974,7 +1256,19 @@ function consultarAndamentoSC() { } } - preencherResumoSC(resumoCotacao, erroCotacao); + var resumoPedido = null; + var erroPedido = String(row.PEDIDO_ERRO || "").trim(); + var jsonPedido = String(row.PEDIDO_JSON || "").trim(); + if (jsonPedido) { + try { + var pedidos = JSON.parse(jsonPedido); + resumoPedido = montarResumoRastreioPedido(pedidos, pedido); + } catch (ePed) { + if (!erroPedido) erroPedido = "Falha ao ler rastreio do pedido retornado pelo ds_consultaSC"; + } + } + + preencherResumoSC(resumoCotacao, erroCotacao, resumoPedido, erroPedido); } catch (e) { console.warn("Nao foi possivel consultar andamento da SC no ds_consultaSC:", e); } @@ -1001,47 +1295,11 @@ function parseNumeroCotacao(valor) { return parseFloat(texto) || 0; } -function recalcularTotalCotacao() { - var soma = 0; - - $("input[name^='selecionado___']").each(function() { - var idCampo = String($(this).attr("id") || ""); - if (idCampo.indexOf("___") < 0) return; - var idx = idCampo.split("___")[1]; - - // pega qtd e preço da linha - var qtd = parseNumeroCotacao($("#qtdc___" + idx).val() || "0"); - var preco = parseNumeroCotacao($("#preco___" + idx).val() || "0"); - - // calcula total da linha - var total = qtd * preco; - - // atualiza campo total da linha - $("#total___" + idx).val(total.toFixed(2)); - - // se marcado, acumula na soma - if ($(this).is(":checked")) { - soma += total; - } - }); - - // Atualiza o hidden e dispara change pro Fluig gravar - $("#valorTotalCotacao").val(soma.toFixed(2)).trigger("change"); - $("#valorTotalCotacaoLabel").text(floatToBRL(soma)); -} -// dispara sempre que marcar/desmarcar -$(document).on("change", "input[name^='selecionado___']", function() { - recalcularTotalCotacao(); -}); - -// recalcula ao abrir a atividade -$(document).ready(function() { - recalcularTotalCotacao(); -}); - // garante que o total seja salvo antes de enviar a atividade function beforeSendValidate(numState, nextState) { - console.log("Executando beforeSendValidate, recalculando total..."); - recalcularTotalCotacao(); - return true; // precisa retornar true senão bloqueia o envio + var campoTotal = $("#valorTotalCotacao"); + if (campoTotal.length && !String(campoTotal.val() || "").trim()) { + campoTotal.val("0").trigger("change"); + } + return true; } diff --git a/compras_digital/forms/Compras_digital/events/displayFields.js b/compras_digital/forms/Compras_digital/events/displayFields.js index ff756ae..23640fd 100644 --- a/compras_digital/forms/Compras_digital/events/displayFields.js +++ b/compras_digital/forms/Compras_digital/events/displayFields.js @@ -52,4 +52,12 @@ function displayFields(form, customHTML) { } form.setValue("data_validacao_gestor", hoje); } + + // Receber produto/servico + if (activity === 18) { + if (nomeUsuario) { + form.setValue("userValidacaoItens", nomeUsuario); + } + form.setValue("dataValidacaoItens", hoje); + } } diff --git a/compras_digital/workflow/.resources/Solicitação de compras V2.ecm30.xml b/compras_digital/workflow/.resources/Solicitação de compras V2.ecm30.xml index 6d793a7..1f39bed 100644 --- a/compras_digital/workflow/.resources/Solicitação de compras V2.ecm30.xml +++ b/compras_digital/workflow/.resources/Solicitação de compras V2.ecm30.xml @@ -29,7 +29,7 @@ 1 Solicitação de compra - Ginseng - 86 + 89 9305 @@ -180,7 +180,7 @@ true false 1560 - 415 + 330 0 0 false @@ -303,58 +303,6 @@ false 1 - - - 1 - Solicitação de compras - 1 - 105 - - Selecionar cotação - Selecionar cotação - - 0 - - false - 0 - Executor Atividade - <AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController> - 1 - false - true - false - 3600 - 3600 - 0 - 0 - false - - 0 - true - false - false - 620 - 21 - 0 - 0 - false - false - 0 - 0 - false - - 0 - 80 - 0 - false - 0 - 0 - 0 - 0 - - false - 0 - 1 @@ -369,7 +317,6 @@ false 0 - 1 false false @@ -510,210 +457,6 @@ false 0 - - - 1 - Solicitação de compras - 1 - 133 - - Aprovação Centro de custo - Aprovação Centro de custo - - 0 - - false - 0 - Campo Formulário - <AssignmentController><FormField>gestor_cc</FormField></AssignmentController> - 1 - false - true - false - 3600 - 3600 - 0 - 0 - false - - 0 - true - false - false - 910 - 110 - 0 - 0 - false - false - 0 - 0 - false - - 0 - 80 - 0 - false - 0 - 0 - 0 - 0 - - false - 0 - - - - 1 - Solicitação de compras - 1 - 137 - - Aprovação Compras - Aprovação Compras - - 0 - - false - 0 - - 1 - false - true - false - 3600 - 3600 - 0 - 0 - false - - 0 - true - false - false - 800 - 225 - 0 - 0 - false - false - 0 - 0 - false - - 0 - 80 - 0 - false - 0 - 0 - 0 - 0 - - false - 0 - - - - 1 - Solicitação de compras - 1 - 147 - - Aprovação GERF - Aprovação GERF - - 0 - - false - 0 - - 1 - false - true - false - 3600 - 3600 - 0 - 0 - false - - 0 - true - false - false - 1060 - 429 - 0 - 0 - false - false - 0 - 0 - false - - 0 - 80 - 0 - false - 0 - 0 - 0 - 0 - - false - 0 - - - - 1 - Solicitação de compras - 1 - 158 - - Aprovação CEO - Aprovação CEO - - 0 - - false - 0 - 1 - false - true - false - 3600 - 3600 - 0 - 0 - false - - 0 - true - false - false - 1340 - 520 - 0 - 0 - false - false - 0 - 0 - false - - 0 - 80 - 0 - false - 0 - 0 - 0 - 0 - - false - 0 - 1 @@ -833,81 +576,6 @@ false - - - 1 - Solicitação de compras - 1 - 128 - - Alçada - Alçada - false - false - false - - 0 - true - 710 - 217 - false - 1 - 120 - 0 - 0 - - false - - - - 1 - Solicitação de compras - 1 - 150 - - Valor N1 - Valor N1 - false - false - false - - 0 - true - 1090 - 100 - false - 1 - 120 - 0 - 0 - - false - - - - 1 - Solicitação de compras - 1 - 154 - - Valor N2 - Valor N2 - false - false - false - - 0 - true - 1220 - 230 - false - 1 - 120 - 0 - 0 - - false - 1 @@ -1009,7 +677,7 @@ 1 Solicitação de compras 1 - 86 + 89 46 hAPI.getCardValue("validacaoItens") == "entregue" @@ -1021,85 +689,13 @@ 1 Solicitação de compras 2 - 86 + 89 46 true 24 0 - - - 1 - Solicitação de compras - 1 - 86 - 128 - - parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 100000.00 - 137 - <AssignmentController><User>001142</User></AssignmentController> - Usuário - 0 - - - - 1 - Solicitação de compras - 1 - 86 - 150 - - parseFloat(hAPI.getCardValue("valorTotalCotacao")) >= 5001.00 && -parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00 - - 147 - <AssignmentController><User>AriNascimento</User></AssignmentController> - Usuário - 0 - - - - 1 - Solicitação de compras - 2 - 86 - 150 - - true - 18 - <AssignmentController><User>andrey.cunha</User></AssignmentController> - Usuário - 0 - - - - 1 - Solicitação de compras - 1 - 86 - 154 - - parseFloat(hAPI.getCardValue("valorTotalCotacao")) > 50000.00 - 158 - <AssignmentController><User>900010</User></AssignmentController> - Usuário - 0 - - - - 1 - Solicitação de compras - 2 - 86 - 154 - - parseFloat(hAPI.getCardValue("valorTotalCotacao")) < 50000.00 - 18 - <AssignmentController><BaseActivity>1</BaseActivity><Returns>Last</Returns></AssignmentController> - Executor Atividade - 0 - @@ -1322,193 +918,6 @@ parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00 false 0 - - - 1 - Solicitação de compras - 1 - 129 - - Enviar para gestão - false - 105 - 128 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 138 - - - false - 128 - 137 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 142 - - - false - 114 - 105 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 144 - - - false - 137 - 133 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 151 - - - false - 133 - 150 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 152 - - - false - 150 - 18 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 153 - - - false - 150 - 147 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 155 - - - false - 147 - 154 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 156 - - - false - 154 - 18 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 159 - - - false - 154 - 158 - - - false - false - 0 - - - - 1 - Solicitação de compras - 1 - 160 - - - false - 158 - 18 - - - false - false - 0 - 1 @@ -1526,6 +935,23 @@ parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00 false 0 + + + 1 + Solicitação de compras + 1 + 162 + + + false + 114 + 18 + + + false + false + 0 + @@ -1576,10 +1002,16 @@ function servicetask82(attempt, message) { log.info("📌 Item adicionado: " + JSON.stringify(item)); } - var filial = String(hAPI.getCardValue("filialprotheus") || hAPI.getCardValue("filialProtheus") || "").trim(); - if (!filial) { - throw "Campo de filial não preenchido no formulário (filialprotheus)."; - } + var filial = String( + hAPI.getCardValue("filialprotheus") || + hAPI.getCardValue("filialProtheus") || + hAPI.getCardValue("codigocentroCusto") || + "" + ).trim(); + if (!filial) { + throw "Campo PROTHEUS da filial não preenchido no formulário (filialprotheus)."; + } + log.info("🏬 Filial PROTHEUS enviada no C1_FILENT: " + filial); var payload = { "C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")), @@ -1616,18 +1048,21 @@ function servicetask82(attempt, message) { if (response && response.getResult()) { var result = JSON.parse(response.getResult()); - if (result.sucesso) { - hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || ""); - hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso"); - hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || ""); - hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || ""); - hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || "")); - hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || ""); - hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || ""); - } else { - hAPI.setCardValue("statusSCProtheus", "Erro: " + result.erro); - throw "Erro Protheus: " + result.message; - } + if (result.sucesso) { + hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || ""); + hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso"); + hAPI.setCardValue("statusAtendimento", "Em andamento"); + hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || ""); + hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || ""); + hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || "")); + hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || ""); + hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || ""); + } else { + var erroMsg = result.erro || result.message || JSON.stringify(result); + hAPI.setCardValue("statusSCProtheus", "Erro: " + erroMsg); + hAPI.setCardValue("statusAtendimento", "Erro no envio"); + throw "Erro Protheus: " + erroMsg; + } } else { throw "Sem resposta da API Protheus"; } @@ -1649,26 +1084,162 @@ function servicetask82(attempt, message) { Solicitação de compras 1 - function servicetask114(attempt, message) { - log.info("🚀 ST92 — Verifica se já existe código de cotação no formulário"); - - var numSC = hAPI.getCardValue("numeroSCProtheus"); - var numCot = hAPI.getCardValue("cotacaoSCProtheus"); - - log.info("📌 SC: " + numSC + " | Cotação: " + numCot); - - if (!numSC) { - throw "❌ Número da SC não informado no formulário."; - } - - // se não tiver cotação ainda, força o loop da atividade - if (!numCot || numCot === "000000" || numCot === "000001") { - throw "⏳ Cotação ainda não disponível para a SC " + numSC; - } - - // se já tiver código, só registra log e deixa o processo seguir - log.info("✅ Cotação " + numCot + " encontrada no formulário. Processo segue."); -} + function documentoValido(valor) { + var v = String(valor || "").trim().toUpperCase(); + if (!v) return false; + if (v === "000000" || v === "000001") return false; + if (/^0+$/.test(v)) return false; + if (/^X+$/.test(v)) return false; + return true; +} + +function consultarComFallback(clientService, endpoints, contexto) { + var ultimoErro = ""; + + for (var i = 0; i < endpoints.length; i++) { + try { + var req = { + companyId: "1", + serviceCode: "Postprod", + endpoint: endpoints[i], + method: "get", + timeoutService: "60000", + headers: { + "Content-Type": "application/json" + } + }; + + log.info("[ST114] Consulta " + contexto + " => " + endpoints[i]); + var response = clientService.invoke(JSON.stringify(req)); + if (!response || !response.getResult()) { + ultimoErro = "Sem resposta"; + continue; + } + + var body = JSON.parse(response.getResult()); + if (body && body.sucesso) { + return { sucesso: true, body: body }; + } + + ultimoErro = (body && (body.erro || body.message)) ? String(body.erro || body.message) : "Resposta sem sucesso"; + } catch (e) { + ultimoErro = String(e); + } + } + + return { sucesso: false, erro: ultimoErro || ("Falha na consulta de " + contexto) }; +} + +function apurarAssinaturas(pedidos) { + var resumo = { + total: 0, + aprovadas: 0, + pendentes: 0, + bloqueadas: 0, + rejeitadas: 0, + outros: 0 + }; + + for (var i = 0; i < pedidos.length; i++) { + var alcadas = (pedidos[i] && pedidos[i].ALCADAS) ? pedidos[i].ALCADAS : []; + for (var j = 0; j < alcadas.length; j++) { + var status = String((alcadas[j] && alcadas[j].CR_STATUS) || "").trim(); + if (!status) continue; + + resumo.total++; + if (status === "03") { + resumo.aprovadas++; + } else if (status === "01" || status === "02") { + resumo.pendentes++; + } else if (status === "04") { + resumo.bloqueadas++; + } else if (status === "06" || status === "07") { + resumo.rejeitadas++; + } else { + resumo.outros++; + } + } + } + + return resumo; +} + +function servicetask114(attempt, message) { + log.info("[ST114] Inicio - valida cotacao, pedido e assinaturas"); + + var numSC = String(hAPI.getCardValue("numeroSCProtheus") || "").trim(); + var numCotForm = String(hAPI.getCardValue("cotacaoSCProtheus") || "").trim(); + var numPedForm = String(hAPI.getCardValue("pedidoSCProtheus") || "").trim(); + + if (!numSC) { + throw "Numero da SC nao informado no formulario."; + } + + var clientService = fluigAPI.getAuthorizeClientService(); + + var consultaSC = consultarComFallback(clientService, [ + "/UF_MATA110/" + numSC, + "/rest/UF_MATA110/" + numSC, + "/rest/uf_mata110/" + numSC + ], "SC " + numSC); + + if (!consultaSC.sucesso) { + throw "Nao foi possivel consultar a SC " + numSC + ": " + consultaSC.erro; + } + + var solicitacoes = (consultaSC.body && consultaSC.body.solicitacoes) ? consultaSC.body.solicitacoes : []; + if (!solicitacoes.length) { + throw "SC " + numSC + " sem retorno de dados no Protheus."; + } + + var sc = solicitacoes[0] || {}; + var numCot = documentoValido(sc.C1_COTACAO) ? String(sc.C1_COTACAO).trim() : numCotForm; + var numPed = documentoValido(sc.C1_PEDIDO) ? String(sc.C1_PEDIDO).trim() : numPedForm; + + if (!documentoValido(numCot)) { + hAPI.setCardValue("statusAtendimento", "Aguardando cotacao"); + throw "Cotacao ainda nao disponivel para a SC " + numSC + "."; + } + hAPI.setCardValue("cotacaoSCProtheus", numCot); + + if (!documentoValido(numPed)) { + hAPI.setCardValue("statusAtendimento", "Aguardando pedido"); + throw "Pedido ainda nao gerado para a SC " + numSC + "."; + } + hAPI.setCardValue("pedidoSCProtheus", numPed); + + var consultaPedido = consultarComFallback(clientService, [ + "/UF_MATA120/" + numPed, + "/rest/UF_MATA120/" + numPed, + "/rest/uf_mata120/" + numPed + ], "Pedido " + numPed); + + if (!consultaPedido.sucesso) { + throw "Nao foi possivel consultar o pedido " + numPed + ": " + consultaPedido.erro; + } + + var pedidos = (consultaPedido.body && consultaPedido.body.pedidos) ? consultaPedido.body.pedidos : []; + var assinatura = apurarAssinaturas(pedidos); + + if (assinatura.total === 0) { + hAPI.setCardValue("statusAtendimento", "Pedido sem alcadas"); + throw "Pedido " + numPed + " sem alcadas de assinatura retornadas."; + } + + if (assinatura.bloqueadas > 0 || assinatura.rejeitadas > 0) { + hAPI.setCardValue("statusAtendimento", "Pedido bloqueado/rejeitado"); + throw "Pedido " + numPed + " bloqueado/rejeitado. Nao pode seguir para recebimento."; + } + + if (assinatura.aprovadas < assinatura.total) { + hAPI.setCardValue("statusAtendimento", "Pedido pendente de assinatura"); + throw "Pedido " + numPed + " ainda nao esta 100% assinado (" + assinatura.aprovadas + "/" + assinatura.total + ")."; + } + + hAPI.setCardValue("statusAtendimento", "Pedido 100% assinado"); + log.info("[ST114] Pedido " + numPed + " 100% assinado. Fluxo liberado para receber produto/servico."); +} + @@ -1809,18 +1380,18 @@ function servicetask82(attempt, message) { 1 Solicitação de compras - 86 + 89 26 1 1492 - 452 + 368 1 Solicitação de compras - 86 + 89 125 1 @@ -1831,7 +1402,7 @@ function servicetask82(attempt, message) { 1 Solicitação de compras - 86 + 89 126 1 @@ -1842,7 +1413,7 @@ function servicetask82(attempt, message) { 1 Solicitação de compras - 86 + 89 127 1 @@ -1853,68 +1424,24 @@ function servicetask82(attempt, message) { 1 Solicitação de compras - 86 - 129 - 1 - - 739 - 61 - - - - 1 - Solicitação de compras - 86 - 142 - 1 - - 612 - 48 - - - - 1 - Solicitação de compras - 86 - 144 - 1 - - 852 - 155 - - - - 1 - Solicitação de compras - 86 - 152 - 1 - - 1120 - 96 - - - - 1 - Solicitação de compras - 86 - 152 - 2 - - 1120 - 59 - - - - 1 - Solicitação de compras - 86 + 89 161 1 511 47 + + + 1 + Solicitação de compras + 89 + 162 + 1 + + 613 + 55 + @@ -2030,8 +1557,8 @@ function servicetask82(attempt, message) { 5 Integração executada com sucesso - 1 - 2 + 6 + 0 diff --git a/compras_digital/workflow/.resources/Solicitação de compras V2.png b/compras_digital/workflow/.resources/Solicitação de compras V2.png index f973cdad006759a29fc74ece9de928ef1cd10784..c7cec101b0c87c248871ad7d2b3858b8563b5356 100644 GIT binary patch literal 42013 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

      #c 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 KnT$WKKm2b-19wgU literal 61957 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 QN$SfNH7{hH`|IKV0nRWDZ2$lO diff --git a/compras_digital/workflow/.resources/Solicitação de compras V2.processimage.svg b/compras_digital/workflow/.resources/Solicitação de compras V2.processimage.svg index 55ae151..64b8dff 100644 --- a/compras_digital/workflow/.resources/Solicitação de compras V2.processimage.svg +++ b/compras_digital/workflow/.resources/Solicitação de compras V2.processimage.svg @@ -1,2 +1,2 @@ -CEOGERFComprasTIGestor CCComprasSolicitanteSolicitação de comprasReceber oproduto/serviçoVerificarproblemaValidarcompraTratar erroEnviar SCSelecionarcotaçãoIntegradorCotaçãoCotação forado prazoAnalisarnecessidadede compraAlçadaAprovaçãoCentro decustoAprovaçãoComprasAprovaçãoGERFValorN1ValorN2AprovaçãoCEOReprovar +CEOGERFComprasTIGestor CCComprasSolicitanteSolicitação de comprasReceber oproduto/serviçoVerificarproblemaValidarcompraTratar erroEnviar SCIntegradorCotaçãoCotação forado prazoAnalisarnecessidadede compraReprovar diff --git a/compras_digital/workflow/diagrams/Solicitação de compras V2.process b/compras_digital/workflow/diagrams/Solicitação de compras V2.process index 2b634bb..a040a99 100644 --- a/compras_digital/workflow/diagrams/Solicitação de compras V2.process +++ b/compras_digital/workflow/diagrams/Solicitação de compras V2.process @@ -1,152 +1,151 @@ - - - - - - + + + + + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - - - + + + - - - + + + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - - + + + - - - + + + - + @@ -162,9 +161,9 @@ - - - + + + @@ -173,85 +172,71 @@ - + - - + + - - + + - + - - - + + + - - - + + + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - + - - - - - - - - - - - - - - - - - + + + - - - + + + - + @@ -261,176 +246,62 @@ - - + + - - - + + + - + - + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + - + @@ -440,20 +311,6 @@ - - - - - - - - - - - - - - @@ -461,146 +318,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -620,26 +477,26 @@ - + - + - + - + - + - + @@ -652,10 +509,10 @@ - + - + @@ -669,146 +526,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -822,146 +679,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -975,146 +832,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1128,146 +985,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1281,146 +1138,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1434,26 +1291,26 @@ - + - + - + - + - + - + @@ -1466,10 +1323,10 @@ - + - + @@ -1483,26 +1340,26 @@ - + - + - + - + - + - + @@ -1515,26 +1372,26 @@ - + - + - + - + - + - + @@ -1547,146 +1404,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1695,7 +1552,7 @@ - + @@ -1714,26 +1571,26 @@ - + - + - + - + - + - + @@ -1747,26 +1604,26 @@ - + - + - + - + - + - + @@ -1780,10 +1637,10 @@ - + - + @@ -1799,146 +1656,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1947,8 +1804,8 @@ - - + + @@ -1962,146 +1819,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2116,26 +1973,26 @@ - + - + - + - + - + - + @@ -2150,146 +2007,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2306,146 +2163,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2460,26 +2317,26 @@ - + - + - + - + - + - + @@ -2493,146 +2350,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2648,26 +2505,26 @@ - + - + - + - + - + - + @@ -2680,146 +2537,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2836,146 +2693,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2990,26 +2847,26 @@ - + - + - + - + - + - + @@ -3022,146 +2879,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3181,146 +3038,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3343,146 +3200,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3497,146 +3354,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3651,146 +3508,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3805,26 +3662,26 @@ - + - + - + - + - + - + @@ -3838,26 +3695,26 @@ - + - + - + - + - + - + @@ -3874,146 +3731,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4028,10 +3885,10 @@ - + - + @@ -4046,146 +3903,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4201,146 +4058,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4358,146 +4215,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4514,26 +4371,26 @@ - + - + - + - + - + - + @@ -4548,10 +4405,10 @@ - + - + @@ -4570,146 +4427,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4724,146 +4581,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4880,146 +4737,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5035,146 +4892,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5189,146 +5046,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5344,146 +5201,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5498,26 +5355,26 @@ - + - + - + - + - + - + @@ -5530,146 +5387,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5687,146 +5544,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5847,10 +5704,10 @@ - + - + @@ -5867,10 +5724,10 @@ - + - + @@ -5883,10 +5740,10 @@ - + - + @@ -5899,10 +5756,10 @@ - + - + @@ -5916,10 +5773,10 @@ - + - + @@ -5932,10 +5789,10 @@ - + - + @@ -5948,10 +5805,10 @@ - + - + @@ -5965,146 +5822,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6120,146 +5977,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6274,26 +6131,26 @@ - + - + - + - + - + - + @@ -6308,146 +6165,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6463,146 +6320,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6617,10 +6474,10 @@ - + - + @@ -6637,146 +6494,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6793,146 +6650,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6948,146 +6805,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7105,146 +6962,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7259,146 +7116,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7414,146 +7271,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7573,146 +7430,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7727,146 +7584,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -7881,146 +7738,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8036,146 +7893,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8190,146 +8047,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8344,146 +8201,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8498,10 +8355,10 @@ - + - + @@ -8518,10 +8375,10 @@ - + - + @@ -8539,146 +8396,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -8689,451 +8546,280 @@ - - + + + - - + + - - - + + + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + + - - + + - - - + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + \ No newline at end of file diff --git a/compras_digital/workflow/scripts/Solicitação de compras V2.servicetask114.js b/compras_digital/workflow/scripts/Solicitação de compras V2.servicetask114.js index d650ea6..2d24cff 100644 --- a/compras_digital/workflow/scripts/Solicitação de compras V2.servicetask114.js +++ b/compras_digital/workflow/scripts/Solicitação de compras V2.servicetask114.js @@ -1,20 +1,155 @@ +function documentoValido(valor) { + var v = String(valor || "").trim().toUpperCase(); + if (!v) return false; + if (v === "000000" || v === "000001") return false; + if (/^0+$/.test(v)) return false; + if (/^X+$/.test(v)) return false; + return true; +} + +function consultarComFallback(clientService, endpoints, contexto) { + var ultimoErro = ""; + + for (var i = 0; i < endpoints.length; i++) { + try { + var req = { + companyId: "1", + serviceCode: "Postprod", + endpoint: endpoints[i], + method: "get", + timeoutService: "60000", + headers: { + "Content-Type": "application/json" + } + }; + + log.info("[ST114] Consulta " + contexto + " => " + endpoints[i]); + var response = clientService.invoke(JSON.stringify(req)); + if (!response || !response.getResult()) { + ultimoErro = "Sem resposta"; + continue; + } + + var body = JSON.parse(response.getResult()); + if (body && body.sucesso) { + return { sucesso: true, body: body }; + } + + ultimoErro = (body && (body.erro || body.message)) ? String(body.erro || body.message) : "Resposta sem sucesso"; + } catch (e) { + ultimoErro = String(e); + } + } + + return { sucesso: false, erro: ultimoErro || ("Falha na consulta de " + contexto) }; +} + +function apurarAssinaturas(pedidos) { + var resumo = { + total: 0, + aprovadas: 0, + pendentes: 0, + bloqueadas: 0, + rejeitadas: 0, + outros: 0 + }; + + for (var i = 0; i < pedidos.length; i++) { + var alcadas = (pedidos[i] && pedidos[i].ALCADAS) ? pedidos[i].ALCADAS : []; + for (var j = 0; j < alcadas.length; j++) { + var status = String((alcadas[j] && alcadas[j].CR_STATUS) || "").trim(); + if (!status) continue; + + resumo.total++; + if (status === "03") { + resumo.aprovadas++; + } else if (status === "01" || status === "02") { + resumo.pendentes++; + } else if (status === "04") { + resumo.bloqueadas++; + } else if (status === "06" || status === "07") { + resumo.rejeitadas++; + } else { + resumo.outros++; + } + } + } + + return resumo; +} + function servicetask114(attempt, message) { - log.info("🚀 ST92 — Verifica se já existe código de cotação no formulário"); + log.info("[ST114] Inicio - valida cotacao, pedido e assinaturas"); - var numSC = hAPI.getCardValue("numeroSCProtheus"); - var numCot = hAPI.getCardValue("cotacaoSCProtheus"); - - log.info("📌 SC: " + numSC + " | Cotação: " + numCot); + var numSC = String(hAPI.getCardValue("numeroSCProtheus") || "").trim(); + var numCotForm = String(hAPI.getCardValue("cotacaoSCProtheus") || "").trim(); + var numPedForm = String(hAPI.getCardValue("pedidoSCProtheus") || "").trim(); if (!numSC) { - throw "❌ Número da SC não informado no formulário."; + throw "Numero da SC nao informado no formulario."; } - // se não tiver cotação ainda, força o loop da atividade - if (!numCot || numCot === "000000" || numCot === "000001") { - throw "⏳ Cotação ainda não disponível para a SC " + numSC; + var clientService = fluigAPI.getAuthorizeClientService(); + + var consultaSC = consultarComFallback(clientService, [ + "/UF_MATA110/" + numSC, + "/rest/UF_MATA110/" + numSC, + "/rest/uf_mata110/" + numSC + ], "SC " + numSC); + + if (!consultaSC.sucesso) { + throw "Nao foi possivel consultar a SC " + numSC + ": " + consultaSC.erro; } - // se já tiver código, só registra log e deixa o processo seguir - log.info("✅ Cotação " + numCot + " encontrada no formulário. Processo segue."); -} \ No newline at end of file + var solicitacoes = (consultaSC.body && consultaSC.body.solicitacoes) ? consultaSC.body.solicitacoes : []; + if (!solicitacoes.length) { + throw "SC " + numSC + " sem retorno de dados no Protheus."; + } + + var sc = solicitacoes[0] || {}; + var numCot = documentoValido(sc.C1_COTACAO) ? String(sc.C1_COTACAO).trim() : numCotForm; + var numPed = documentoValido(sc.C1_PEDIDO) ? String(sc.C1_PEDIDO).trim() : numPedForm; + + if (!documentoValido(numCot)) { + hAPI.setCardValue("statusAtendimento", "Aguardando cotacao"); + throw "Cotacao ainda nao disponivel para a SC " + numSC + "."; + } + hAPI.setCardValue("cotacaoSCProtheus", numCot); + + if (!documentoValido(numPed)) { + hAPI.setCardValue("statusAtendimento", "Aguardando pedido"); + throw "Pedido ainda nao gerado para a SC " + numSC + "."; + } + hAPI.setCardValue("pedidoSCProtheus", numPed); + + var consultaPedido = consultarComFallback(clientService, [ + "/UF_MATA120/" + numPed, + "/rest/UF_MATA120/" + numPed, + "/rest/uf_mata120/" + numPed + ], "Pedido " + numPed); + + if (!consultaPedido.sucesso) { + throw "Nao foi possivel consultar o pedido " + numPed + ": " + consultaPedido.erro; + } + + var pedidos = (consultaPedido.body && consultaPedido.body.pedidos) ? consultaPedido.body.pedidos : []; + var assinatura = apurarAssinaturas(pedidos); + + if (assinatura.total === 0) { + hAPI.setCardValue("statusAtendimento", "Pedido sem alcadas"); + throw "Pedido " + numPed + " sem alcadas de assinatura retornadas."; + } + + if (assinatura.bloqueadas > 0 || assinatura.rejeitadas > 0) { + hAPI.setCardValue("statusAtendimento", "Pedido bloqueado/rejeitado"); + throw "Pedido " + numPed + " bloqueado/rejeitado. Nao pode seguir para recebimento."; + } + + if (assinatura.aprovadas < assinatura.total) { + hAPI.setCardValue("statusAtendimento", "Pedido pendente de assinatura"); + throw "Pedido " + numPed + " ainda nao esta 100% assinado (" + assinatura.aprovadas + "/" + assinatura.total + ")."; + } + + hAPI.setCardValue("statusAtendimento", "Pedido 100% assinado"); + log.info("[ST114] Pedido " + numPed + " 100% assinado. Fluxo liberado para receber produto/servico."); +}