97 lines
3.3 KiB
JavaScript
97 lines
3.3 KiB
JavaScript
function toProtheusDate(d) {
|
|
if (!d) return "";
|
|
if (d.indexOf("/") > -1) {
|
|
var parts = d.split("/");
|
|
return parts[2] + parts[1] + parts[0]; // dd/MM/yyyy -> yyyyMMdd
|
|
}
|
|
if (d.indexOf("-") > -1) {
|
|
return d.replace(/-/g, ""); // yyyy-MM-dd -> yyyyMMdd
|
|
}
|
|
return d; // já está no formato certo
|
|
}
|
|
|
|
function hojeProtheus() {
|
|
var d = new Date();
|
|
var yyyy = d.getFullYear();
|
|
var mm = d.getMonth() + 1;
|
|
var dd = d.getDate();
|
|
if (mm < 10) mm = "0" + mm;
|
|
if (dd < 10) dd = "0" + dd;
|
|
return "" + yyyy + mm + dd; // yyyyMMdd
|
|
}
|
|
|
|
function servicetask82(attempt, message) {
|
|
log.info("🚀 Iniciando servicetask82");
|
|
|
|
var qtdItens = hAPI.getChildrenIndexes("tbItens");
|
|
log.info("📦 Total de itens na tabela: " + qtdItens.length);
|
|
|
|
var itens = [];
|
|
for (var i = 0; i < qtdItens.length; i++) {
|
|
var index = qtdItens[i];
|
|
var item = {
|
|
"C1_PRODUTO": String(hAPI.getCardValue("Codproduto___" + index)),
|
|
"C1_QUANT": Number(hAPI.getCardValue("qtd___" + index)),
|
|
"C1_DATPRF": toProtheusDate(String(hAPI.getCardValue("dataNec___" + index)))
|
|
};
|
|
itens.push(item);
|
|
log.info("📌 Item adicionado: " + JSON.stringify(item));
|
|
}
|
|
|
|
var payload = {
|
|
"C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")),
|
|
"C1_EMISSAO": hojeProtheus(),
|
|
"C1_FILENT": String(hAPI.getCardValue("filialProtheus")).trim(),
|
|
"C1_OBS": String(hAPI.getCardValue("observacoes")),
|
|
"itens": itens
|
|
};
|
|
|
|
log.info("📦 Payload montado:");
|
|
log.info(JSON.stringify(payload));
|
|
|
|
var data1 = {
|
|
companyId: '1',
|
|
serviceCode: 'Postprod',
|
|
endpoint: '/rest/UF_MATA110',
|
|
method: 'post',
|
|
timeoutService: '100',
|
|
params: payload, // objeto puro
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
};
|
|
|
|
try {
|
|
var clientService = fluigAPI.getAuthorizeClientService();
|
|
var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui
|
|
|
|
log.info("📬 Resposta da API Protheus:");
|
|
log.dir(response);
|
|
|
|
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;
|
|
}
|
|
} else {
|
|
throw "Sem resposta da API Protheus";
|
|
}
|
|
} catch (e) {
|
|
log.error("❌ Erro ao enviar SC para o Protheus: " + e);
|
|
throw e;
|
|
}
|
|
|
|
|
|
|
|
log.info("🏁 Finalização da servicetask82");
|
|
}
|