49 lines
1.8 KiB
JavaScript
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, "");
|
|
}
|