function servicetask99(attempt, message) { try { var validacaoItens = safeTrim(hAPI.getCardValue("validacaoItens")); // Só precisa consultar entrada da NFe quando o recebimento foi validado como entregue. if (validacaoItens !== "entregue") return; var dataEntrada = safeTrim(hAPI.getCardValue("dataEntradaNfeConsulta")); if (dataEntrada !== "") return; var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe")); if (chaveNfe === "") { log.warn("[servicetask99] Chave NFe vazia. Nao foi possivel consultar entrada."); return; } var cKey = DatasetFactory.createConstraint("key", chaveNfe, chaveNfe, ConstraintType.MUST); var dsNfe = DatasetFactory.getDataset("ds_fiscal_invoice_by_keys", null, [cKey], null); if (!dsNfe || dsNfe.rowsCount < 1) { log.warn("[servicetask99] Dataset sem retorno para chave: " + chaveNfe); return; } var dsSuccess = safeTrim(dsNfe.getValue(0, "success")).toLowerCase() === "true"; var dsUpdatedAt = safeTrim(dsNfe.getValue(0, "updatedAt")); if (dsSuccess && dsUpdatedAt !== "") { hAPI.setCardValue("dataEntradaNfeConsulta", dsUpdatedAt); log.info("[servicetask99] Data de entrada atualizada automaticamente: " + dsUpdatedAt); return; } var dsMessage = safeTrim(dsNfe.getValue(0, "message")); log.warn("[servicetask99] Consulta executada sem data de entrada. message=" + dsMessage); } catch (e) { log.error("[servicetask99] Erro na consulta automatica da NFe: " + e); throw e; } } function safeTrim(value) { return String(value == null ? "" : value).trim(); } function onlyDigits(value) { return String(value == null ? "" : value).replace(/\D/g, ""); }