fluig/Transferência Ginseng/workflow/scripts/Solicitação de transferência.servicetask99.js
2026-03-18 10:17:16 -03:00

49 lines
1.8 KiB
JavaScript

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, "");
}