att
This commit is contained in:
parent
f31f809ce7
commit
4a31410351
18
Ginseng_chamados/forms/.vscode/servers.json
vendored
Normal file
18
Ginseng_chamados/forms/.vscode/servers.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"id": "achirhwa847morhkc4qxjten2zltol",
|
||||||
|
"name": "Ginseng Produção",
|
||||||
|
"host": "comerciode188006.fluig.cloudtotvs.com.br",
|
||||||
|
"ssl": true,
|
||||||
|
"port": 443,
|
||||||
|
"username": "andrey.cunha",
|
||||||
|
"password": "eyJpdiI6IjRjYjRiMmM5MWJhZmVkNzU0OWQzOTljZWI3ZmQxMzViIiwic2FsdCI6IjRjYTAyMWMxY2YxNzdmZWRiYmYzNjk2MTczYWRiMzI2IiwidGV4dCI6ImNlN2JhYjU5NWNmZjk1NWVjZDJiN2EzNzQwMTA0NmFiIn0=",
|
||||||
|
"userCode": "andrey.cunha",
|
||||||
|
"confirmExporting": false,
|
||||||
|
"hasBrowser": false,
|
||||||
|
"companyId": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -364,20 +364,20 @@
|
|||||||
Estabelecimento/Filial
|
Estabelecimento/Filial
|
||||||
</label>
|
</label>
|
||||||
<span class="required text-danger"><strong> * </strong></span>
|
<span class="required text-danger"><strong> * </strong></span>
|
||||||
<input type="zoom" class="form-control requiredInput" name="estabelecimentoFilial" id="estabelecimentoFilial"
|
<input type="zoom" class="form-control" name="estabelecimento" id="estabelecimento" data-zoom="{
|
||||||
data-zoom="{
|
'displayKey':'LOJA',
|
||||||
'displayKey':'estabelecimento',
|
'placeholder': 'Buscar nome do estabelecimento ou filial',
|
||||||
'datasetId':'dsFiliais',
|
'datasetId':'dsFiliais',
|
||||||
'placeholder': 'Pesquisar nome do estabelecimento ou filial.',
|
|
||||||
'fields':[
|
'fields':[
|
||||||
{
|
{'field':'LOJA','label':'Filial','standard':'true','search':'true'},
|
||||||
'field':'estabelecimento',
|
{'field':'REGIONAL','label':'REGIONAL','standard':'true'},
|
||||||
'label':'Filial',
|
{'field':'UF','label':'UF','standard':'true'},
|
||||||
'standard':'true',
|
{'field':'RESPONSAVEL_LOJA','label':'RESPONSAVEL_LOJA','visible':'false'},
|
||||||
'search':'true'
|
{'field':'PDV','label':'PDV','visible':'false'},
|
||||||
}
|
{'field':'COLLEAGUE_ID','label':'COLLEAGUE_ID','visible':'false'},
|
||||||
|
{'field':'LOGIN_LOJA','label':'LOGIN_LOJA','visible':'false'}
|
||||||
]
|
]
|
||||||
}" />
|
}">
|
||||||
<p class="text-danger text-error">
|
<p class="text-danger text-error">
|
||||||
Preenchimento obrigatório.
|
Preenchimento obrigatório.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
10213
compras_digital/.vscode/.advpl/_binary_class.prw
vendored
Normal file
10213
compras_digital/.vscode/.advpl/_binary_class.prw
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9808
compras_digital/.vscode/.advpl/_binary_functions.prw
vendored
Normal file
9808
compras_digital/.vscode/.advpl/_binary_functions.prw
vendored
Normal file
File diff suppressed because it is too large
Load Diff
18
compras_digital/.vscode/launch.json
vendored
Normal file
18
compras_digital/.vscode/launch.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "totvs_language_debug",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "TOTVS Language Debug",
|
||||||
|
"program": "${command:AskForProgramName}",
|
||||||
|
"cwb": "${workspaceFolder}",
|
||||||
|
"smartclientBin": "../totvs/bin/smartclient/smartclient.exe",
|
||||||
|
"isMultiSession": true,
|
||||||
|
"enableTableSync": true,
|
||||||
|
"extendFeatures": {
|
||||||
|
"charDetails": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
18
compras_digital/.vscode/servers.json
vendored
Normal file
18
compras_digital/.vscode/servers.json
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"id": "6ki8w4m1dpmor606g3n0y6sgduhc",
|
||||||
|
"name": "Ginseng Produção",
|
||||||
|
"host": "comerciode188006.fluig.cloudtotvs.com.br",
|
||||||
|
"ssl": true,
|
||||||
|
"port": 443,
|
||||||
|
"username": "andrey.cunha",
|
||||||
|
"password": "eyJpdiI6IjUyYTgyOGQ0ZGM1ZWI3ZjNhZWRlNTQ1ZWZiNzAwOWQwIiwic2FsdCI6IjYwYTZjODBjY2RiNDk5OWI3YTc0NmY1ZGY1NTgwOGI5IiwidGV4dCI6IjdmYTA2ZGFhODM1MWI2NzRmNTk1ZTEzMzc1NjMxZjQ1In0=",
|
||||||
|
"userCode": "andrey.cunha",
|
||||||
|
"confirmExporting": false,
|
||||||
|
"hasBrowser": false,
|
||||||
|
"companyId": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
4
compras_digital/.vscode/settings.json
vendored
Normal file
4
compras_digital/.vscode/settings.json
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"totvsLanguageServer.welcomePage": false,
|
||||||
|
"totvsLanguageServer.editor.linter.includes": "C:\\25-04-14-P12-SMARTCLIENT_BUILD 20.3.2.12_WINDOWS_X64\\include"
|
||||||
|
}
|
||||||
@ -1,61 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
addColumn("codigo");
|
|
||||||
addColumn("descricao");
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/Protheus12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT b1_cod, b1_desc FROM sb1010 WHERE LEFT(b1_cod, 4) IN ('0001','0008', '0002', '0003', '0007', '0006', '0009', '0010', '0011', '0014','0016')";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("b1_cod");
|
|
||||||
var descricao = rs.getString("b1_desc");
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
345
compras_digital/datasets/dsComprasProdutos.js
Normal file
345
compras_digital/datasets/dsComprasProdutos.js
Normal file
@ -0,0 +1,345 @@
|
|||||||
|
function defineStructure() {
|
||||||
|
addColumn("B1_COD");
|
||||||
|
addColumn("B1_DESC");
|
||||||
|
addColumn("B1_UM");
|
||||||
|
addColumn("B1_TIPO");
|
||||||
|
addColumn("B1_LOCPAD");
|
||||||
|
addColumn("B1_LOCALIZ");
|
||||||
|
addColumn("B1_CONTRAT");
|
||||||
|
addColumn("B1_PICM");
|
||||||
|
addColumn("B1_IPI");
|
||||||
|
addColumn("B1_RASTRO");
|
||||||
|
addColumn("B1_MSBLQL");
|
||||||
|
addColumn("TOTAL");
|
||||||
|
addColumn("HORA_CONSULTA");
|
||||||
|
addColumn("CODIGO_DESCRICAO");
|
||||||
|
|
||||||
|
setKey(["B1_COD"]);
|
||||||
|
addIndex(["B1_COD"]);
|
||||||
|
addIndex(["B1_DESC"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSync(lastSyncDate) {
|
||||||
|
var dataset = DatasetBuilder.newDataset();
|
||||||
|
addDatasetColumns(dataset);
|
||||||
|
|
||||||
|
var payload = fetchProdutos();
|
||||||
|
var produtos = payload.produtos || [];
|
||||||
|
|
||||||
|
log.info("[dsComprasProdutos.onSync] lastSyncDate=" + lastSyncDate + ", totalRecebido=" + produtos.length);
|
||||||
|
|
||||||
|
for (var i = 0; i < produtos.length; i++) {
|
||||||
|
var row = mapProdutoToRow(produtos[i], payload.total, payload.horaConsulta);
|
||||||
|
if (typeof dataset.addOrUpdateRow === "function") {
|
||||||
|
dataset.addOrUpdateRow(row);
|
||||||
|
} else {
|
||||||
|
dataset.addRow(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createDataset(fields, constraints, sorts) {
|
||||||
|
var dataset = DatasetBuilder.newDataset();
|
||||||
|
addDatasetColumns(dataset);
|
||||||
|
|
||||||
|
var payload = fetchProdutos();
|
||||||
|
var produtos = payload.produtos || [];
|
||||||
|
var filtro = parseConstraints(constraints);
|
||||||
|
var count = 0;
|
||||||
|
|
||||||
|
log.info("[dsComprasProdutos.createDataset] totalRecebido=" + produtos.length + ", search=[" + filtro.search + "], maxRows=" + filtro.maxRows);
|
||||||
|
|
||||||
|
for (var i = 0; i < produtos.length; i++) {
|
||||||
|
var item = produtos[i] || {};
|
||||||
|
if (!matchProduto(item, filtro)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
dataset.addRow(mapProdutoToRow(item, payload.total, payload.horaConsulta));
|
||||||
|
count++;
|
||||||
|
|
||||||
|
if (filtro.maxRows > 0 && count >= filtro.maxRows) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("[dsComprasProdutos.createDataset] totalRetornado=" + count);
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onMobileSync(user) {
|
||||||
|
var sortFields = ["B1_COD"];
|
||||||
|
var constraints = [];
|
||||||
|
var fields = [
|
||||||
|
"B1_COD",
|
||||||
|
"B1_DESC",
|
||||||
|
"B1_UM",
|
||||||
|
"B1_TIPO",
|
||||||
|
"B1_LOCPAD",
|
||||||
|
"B1_LOCALIZ",
|
||||||
|
"B1_CONTRAT",
|
||||||
|
"B1_PICM",
|
||||||
|
"B1_IPI",
|
||||||
|
"B1_RASTRO",
|
||||||
|
"B1_MSBLQL",
|
||||||
|
"TOTAL",
|
||||||
|
"HORA_CONSULTA",
|
||||||
|
"CODIGO_DESCRICAO"
|
||||||
|
];
|
||||||
|
|
||||||
|
return {
|
||||||
|
fields: fields,
|
||||||
|
constraints: constraints,
|
||||||
|
sortFields: sortFields
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function addDatasetColumns(dataset) {
|
||||||
|
dataset.addColumn("B1_COD");
|
||||||
|
dataset.addColumn("B1_DESC");
|
||||||
|
dataset.addColumn("B1_UM");
|
||||||
|
dataset.addColumn("B1_TIPO");
|
||||||
|
dataset.addColumn("B1_LOCPAD");
|
||||||
|
dataset.addColumn("B1_LOCALIZ");
|
||||||
|
dataset.addColumn("B1_CONTRAT");
|
||||||
|
dataset.addColumn("B1_PICM");
|
||||||
|
dataset.addColumn("B1_IPI");
|
||||||
|
dataset.addColumn("B1_RASTRO");
|
||||||
|
dataset.addColumn("B1_MSBLQL");
|
||||||
|
dataset.addColumn("TOTAL");
|
||||||
|
dataset.addColumn("HORA_CONSULTA");
|
||||||
|
dataset.addColumn("CODIGO_DESCRICAO");
|
||||||
|
}
|
||||||
|
|
||||||
|
function mapProdutoToRow(item, total, horaConsulta) {
|
||||||
|
var codigo = trim(item["B1_COD"]);
|
||||||
|
var descricao = trim(item["B1_DESC"]);
|
||||||
|
|
||||||
|
return [
|
||||||
|
codigo,
|
||||||
|
descricao,
|
||||||
|
trim(item["B1_UM"]),
|
||||||
|
trim(item["B1_TIPO"]),
|
||||||
|
trim(item["B1_LOCPAD"]),
|
||||||
|
trim(item["B1_LOCALIZ"]),
|
||||||
|
trim(item["B1_CONTRAT"]),
|
||||||
|
trim(item["B1_PICM"]),
|
||||||
|
trim(item["B1_IPI"]),
|
||||||
|
trim(item["B1_RASTRO"]),
|
||||||
|
trim(item["B1_MSBLQL"]),
|
||||||
|
trim(total),
|
||||||
|
trim(horaConsulta),
|
||||||
|
codigo + " - " + descricao
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetchProdutos() {
|
||||||
|
var response = {
|
||||||
|
total: "",
|
||||||
|
horaConsulta: "",
|
||||||
|
produtos: []
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
var clientService = fluigAPI.getAuthorizeClientService();
|
||||||
|
var endpoints = [
|
||||||
|
"/rest/uf_mata010/",
|
||||||
|
"/rest/uf_mata010",
|
||||||
|
"https://rest.grupoginseng.com.br/rest/uf_mata010/",
|
||||||
|
"https://rest.grupoginseng.com.br/rest/uf_mata010",
|
||||||
|
"/",
|
||||||
|
""
|
||||||
|
];
|
||||||
|
|
||||||
|
var lastStatus = "";
|
||||||
|
var lastRetorno = "";
|
||||||
|
|
||||||
|
for (var i = 0; i < endpoints.length; i++) {
|
||||||
|
var endpoint = endpoints[i];
|
||||||
|
var apiResp = invokePostprod(clientService, endpoint);
|
||||||
|
var statusHttp = apiResp.status;
|
||||||
|
var retorno = apiResp.body;
|
||||||
|
|
||||||
|
lastStatus = statusHttp;
|
||||||
|
lastRetorno = retorno;
|
||||||
|
|
||||||
|
log.info("[dsComprasProdutos] endpoint=[" + endpoint + "], HTTP status=" + statusHttp);
|
||||||
|
|
||||||
|
if (!retorno) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var obj = parseApiResponseObject(retorno);
|
||||||
|
if (!obj || !(obj.produtos instanceof Array)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
response.total = obj.total != null ? String(obj.total) : "";
|
||||||
|
response.horaConsulta = obj.hora_consulta != null ? String(obj.hora_consulta) : "";
|
||||||
|
response.produtos = obj.produtos;
|
||||||
|
|
||||||
|
log.info("[dsComprasProdutos] endpointOK=[" + endpoint + "], total=" + response.total + ", produtos=" + response.produtos.length + ", hora_consulta=" + response.horaConsulta);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
var preview = trim(lastRetorno);
|
||||||
|
if (preview.length > 220) {
|
||||||
|
preview = preview.substring(0, 220) + "...";
|
||||||
|
}
|
||||||
|
log.error("[dsComprasProdutos] Nenhum endpoint retornou JSON válido. UltimoStatus=" + lastStatus + ", ultimoRetornoPreview=[" + preview + "]");
|
||||||
|
} catch (e) {
|
||||||
|
log.error("[dsComprasProdutos] Erro ao consultar API Postprod: " + e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
function invokePostprod(clientService, endpoint) {
|
||||||
|
var data = {
|
||||||
|
companyId: String(getValue("WKCompany") || "1"),
|
||||||
|
serviceCode: "Postprod",
|
||||||
|
endpoint: endpoint,
|
||||||
|
method: "get",
|
||||||
|
timeoutService: "60000",
|
||||||
|
params: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
var vo = clientService.invoke(JSON.stringify(data));
|
||||||
|
return {
|
||||||
|
status: vo ? String(vo.getHttpStatusResult() || "") : "",
|
||||||
|
body: vo ? String(vo.getResult() || "") : ""
|
||||||
|
};
|
||||||
|
} catch (e) {
|
||||||
|
return {
|
||||||
|
status: "EXCEPTION",
|
||||||
|
body: String(e)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseConstraints(constraints) {
|
||||||
|
var out = {
|
||||||
|
codigo: "",
|
||||||
|
descricao: "",
|
||||||
|
bloqueado: "",
|
||||||
|
search: "",
|
||||||
|
maxRows: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!constraints) return out;
|
||||||
|
|
||||||
|
for (var i = 0; i < constraints.length; i++) {
|
||||||
|
var c = constraints[i];
|
||||||
|
if (!c || !c.fieldName) continue;
|
||||||
|
|
||||||
|
var name = String(c.fieldName || "").toUpperCase();
|
||||||
|
var value = trim(c.initialValue);
|
||||||
|
|
||||||
|
if (name === "B1_COD" && value) {
|
||||||
|
out.codigo = cleanSearchValue(value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (name === "B1_DESC" && value) {
|
||||||
|
out.descricao = cleanSearchValue(value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (name === "B1_MSBLQL" && value) {
|
||||||
|
out.bloqueado = cleanSearchValue(value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ((name === "SEARCH" || name === "TERMO" || name === "FILTRO") && value) {
|
||||||
|
out.search = cleanSearchValue(value);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (name === "SQLLIMIT" || name === "RESULTLIMIT") {
|
||||||
|
var n = parseInt(value, 10);
|
||||||
|
if (!isNaN(n) && n > 0) out.maxRows = n;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
function matchProduto(item, filtro) {
|
||||||
|
var codigo = trim(item["B1_COD"]);
|
||||||
|
var descricao = trim(item["B1_DESC"]);
|
||||||
|
var um = trim(item["B1_UM"]);
|
||||||
|
var bloqueado = trim(item["B1_MSBLQL"]);
|
||||||
|
|
||||||
|
if (filtro.codigo && codigo !== filtro.codigo) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (filtro.descricao && normalize(descricao).indexOf(normalize(filtro.descricao)) === -1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (filtro.bloqueado && bloqueado !== filtro.bloqueado) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filtro.search) {
|
||||||
|
var blob = normalize([codigo, descricao, um, bloqueado].join(" "));
|
||||||
|
if (blob.indexOf(normalize(filtro.search)) === -1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseJsonSafe(text) {
|
||||||
|
try {
|
||||||
|
return JSON.parse(text);
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseApiResponseObject(rawText) {
|
||||||
|
var root = parseJsonSafe(rawText);
|
||||||
|
if (!root) return null;
|
||||||
|
|
||||||
|
if (root.produtos instanceof Array) {
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof root.content === "string") {
|
||||||
|
var inner = parseJsonSafe(root.content);
|
||||||
|
if (inner && inner.produtos instanceof Array) {
|
||||||
|
return inner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (root.content && root.content.produtos instanceof Array) {
|
||||||
|
return root.content;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof root.result === "string") {
|
||||||
|
var parsedResult = parseJsonSafe(root.result);
|
||||||
|
if (parsedResult && parsedResult.produtos instanceof Array) {
|
||||||
|
return parsedResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function cleanSearchValue(v) {
|
||||||
|
var s = trim(v);
|
||||||
|
s = s.replace(/[%*_]/g, "");
|
||||||
|
if (s === "true" || s === "false" || s === "on" || s === "off" || s === "1") {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return trim(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalize(v) {
|
||||||
|
return trim(v).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
function trim(v) {
|
||||||
|
return String(v == null ? "" : v).trim();
|
||||||
|
}
|
||||||
@ -1,118 +1,212 @@
|
|||||||
function defineStructure() {
|
|
||||||
|
|
||||||
}
|
|
||||||
function onSync(lastSyncDate) {
|
|
||||||
|
|
||||||
}
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
function createDataset(fields, constraints, sortFields) {
|
||||||
|
var dataset = DatasetBuilder.newDataset();
|
||||||
|
|
||||||
var ds = DatasetBuilder.newDataset();
|
dataset.addColumn("PDV");
|
||||||
|
dataset.addColumn("LOJA");
|
||||||
|
dataset.addColumn("RESPONSAVEL_LOJA");
|
||||||
|
dataset.addColumn("REGIONAL");
|
||||||
|
dataset.addColumn("UF");
|
||||||
|
dataset.addColumn("CIDADE");
|
||||||
|
dataset.addColumn("STATUS");
|
||||||
|
dataset.addColumn("CANAL");
|
||||||
|
dataset.addColumn("ID");
|
||||||
|
dataset.addColumn("PROTHEUS");
|
||||||
|
dataset.addColumn("LOGIN_LOJA");
|
||||||
|
dataset.addColumn("COLLEAGUE_ID");
|
||||||
|
dataset.addColumn("USER_CREATE");
|
||||||
|
|
||||||
ds.addColumn("codigo");
|
try {
|
||||||
ds.addColumn("filial");
|
var clientService = fluigAPI.getAuthorizeClientService();
|
||||||
ds.addColumn("estabelecimento");
|
var data = {
|
||||||
ds.addColumn("cep");
|
companyId: String(getValue("WKCompany") || "1"),
|
||||||
ds.addColumn("logradouro");
|
serviceCode: "GINSENG API", // ajuste para o codigo do servico cadastrado no Fluig
|
||||||
ds.addColumn("numero");
|
endpoint: "/base_pdvs",
|
||||||
ds.addColumn("bairro");
|
method: "get",
|
||||||
ds.addColumn("cidade");
|
timeoutService: "60000",
|
||||||
ds.addColumn("estado");
|
params: {}
|
||||||
ds.addColumn("cnpj");
|
};
|
||||||
|
|
||||||
|
var vo = clientService.invoke(JSON.stringify(data));
|
||||||
|
var statusHttp = vo ? String(vo.getHttpStatusResult() || "") : "";
|
||||||
|
var retorno = vo ? String(vo.getResult() || "") : "";
|
||||||
|
|
||||||
|
if (!retorno) {
|
||||||
ds.addRow(new Array("010101","4494", "ESCRITÓRIO MATRIZ","57035-030","RUA DESPORTISTA HUMBERTO GUIMARAES","343","PONTA VERDE","MACEIÓ","AL","08.489.643/0001-52"));
|
dataset.addRow(["", "Sem resposta da API (HTTP " + statusHttp + ")", "", "", "", "", "", "", "", "", "", "", ""]);
|
||||||
ds.addRow(new Array("010102","3546", "LJ BIG BOMPREÇO GRUTA","57052-000","AVENIDA FERNANDES LIMA","3700","GRUTA DE LOURDES","MACEIÓ","AL","08.489.643/0003-14"));
|
return dataset;
|
||||||
ds.addRow(new Array("010103","4560", "LJ MACEIÓ SHOPPING TERREO","57031-532","AVENIDA GUSTAVO PAIVA","2900","MANGABEIRAS","MACEIÓ","AL","08.489.643/0004-03"));
|
|
||||||
ds.addRow(new Array("010104","5699", "LJ MOREIRA LIMA","57020-000","RUA MOREIRA LIMA","93","CENTRO","MACEIÓ","AL","08.489.643/0005-86"));
|
|
||||||
ds.addRow(new Array("010106","12522", "LJ MACEIÓ SHOPPING EXPANSÃO","57031-530","AVENIDA GUSTAVO PAIVA","2990","MANGABEIRAS","MACEIÓ","AL","08.489.643/0016-39"));
|
|
||||||
ds.addRow(new Array("010107","12828", "LJ GBARBOSA S.MARIS","57036-550","AV ENG. PAULO BRANDÃO NOGUEIRA","S/N","JATIÚCA","MACEIÓ","AL","08.489.643/0017-10"));
|
|
||||||
ds.addRow(new Array("010108","12838", "LJ RIO LARGO","57100-000","AV PRES GETULIO VARGAS","148","CENTRO","RIO LARGO","AL","08.489.643/0018-09"));
|
|
||||||
ds.addRow(new Array("010109","21647", "QUIOSQUE CARAJÁS MANGABEIRAS","57037-901","AV COMENDADOR GUSTAVO PAIVA","S/N","MANGABEIRAS","MACEIÓ","AL","08.489.643/0019-81"));
|
|
||||||
ds.addRow(new Array("010110","12817", "LJ SHOPPING PÁTIO","57073-470","AV MENINO MARCELO","3800","CIDADE UNIVERSITÁRIA","MACEIÓ","AL","08.489.643/0020-15"));
|
|
||||||
ds.addRow(new Array("010111","12824", "QUIOSQUE GBARBOSA TABULEIRO","57061-110","AVENIDA MACEIÓ","S/N","TABULEIRO","MACEIÓ","AL","08.489.643/0021-04"));
|
|
||||||
ds.addRow(new Array("010112","12823", "LJ PONTA VERDE","57035-330","RUA DEPUTADO JOSÉ LAGES","431","PONTA VERDE","MACEIÓ","AL","08.489.643/0022-87"));
|
|
||||||
ds.addRow(new Array("010113","20858", "QUIOSQUE SUPER GIRO","57010-003","AVENIDA SIQUEIRA CAMPOS","1368","PRADO","MACEIÓ","AL","08.489.643/0023-68"));
|
|
||||||
ds.addRow(new Array("010114","12820", "LJ ATACADÃO TABULEIRO","57082-160","AV DOUTOR DURVAL DE GOIS MONTEIRO","12650","TABULEIRO","MACEIÓ","AL","08.489.643/0024-49"));
|
|
||||||
ds.addRow(new Array("010115","12830", "LJ LIVRAMENTO","57020-030","RUA DO LIVRAMENTO","24","CENTRO","MACEIÓ","AL","08.489.643/0025-20"));
|
|
||||||
ds.addRow(new Array("010117","19103", "LJ UNICOMPRA PONTA VERDE","57035-060","RUA DURVAL GUIMARÃES","S/N","PONTA VERDE","MACEIÓ","AL","08.489.643/0027-91"));
|
|
||||||
ds.addRow(new Array("010118","12826", "LJ ASSAÍ MANGABEIRAS","57037-532","AV COMENDADOR GUSTAVO PAIVA","3261","MANGABEIRAS","MACEIÓ","AL","08.489.643/0028-72"));
|
|
||||||
ds.addRow(new Array("010119","12829", "LJ JACINTINHO","57041-000","RUA CLETO CAMPELO","2394","JACINTINHO","MACEIÓ","AL","08.489.643/0029-53"));
|
|
||||||
ds.addRow(new Array("010120","12818", "LJ GBARBOSA SERRARIA","57046-000","AVENIDA MENINO MARCELO","9730","SERRARIA","MACEIÓ","AL","08.489.643/0030-97"));
|
|
||||||
ds.addRow(new Array("010121","13427", "LJ SHOPPING CIDADE","57055-000","AVENIDA FERNANDES LIMA","679","FAROL","MACEIÓ","AL","08.489.643/0031-78"));
|
|
||||||
ds.addRow(new Array("010124","14617", "LJ PARQUE SHOPPING","57038-000","AVENIDA GUSTAVO PAIVA","5945","CRUZ DAS ALMAS",",MACEIÓ","AL","08.489.643/0034-10"));
|
|
||||||
ds.addRow(new Array("010126","14668", "LJ MIX MATHEUS ANTARES","57038-410","AVENIDA MENINO MARCELO","5300","ANTARES","MACEIÓ","AL","08.489.643/0036-82"));
|
|
||||||
ds.addRow(new Array("010128","20006", "LJ SÃO SEBASTIÃO","43850-000","PRAÇA DOZE DE OUTUBRO","65","CENTRO","SÃO SEBASTIÃO DO PASSÉ","BA","08.489.643/0038-44"));
|
|
||||||
ds.addRow(new Array("010130","20009", "LJ CANDEIAS BAIXO","43815-050","AVENIDA ANTONIO PATTERSON","196","TRIÂNGULO","CANDEIAS","BA","08.489.643/0040-69"));
|
|
||||||
ds.addRow(new Array("010131","20005", "LJ CANDEIAS CIMA","43805-000","RUA 13 DE MAIO","147","CENTRO","CANDEIAS","BA","08.489.643/0041-40"));
|
|
||||||
ds.addRow(new Array("010132","20056", "LJ SIMÕES FILHO","43700-000","AV LUÍS EDUARDO MAGALHÃES","109","CENTRO","SIMÕES FILHO","BA","08.489.643/0042-20"));
|
|
||||||
ds.addRow(new Array("010133","20057", "LJ CONCEIÇÃO COITÉ","48730-000","RUA DR AMÂNCIO MOTA","30","CENTRO","CONCEIÃO DO COITÉ","BA","08.489.643/0043-01"));
|
|
||||||
ds.addRow(new Array("010134","20441", "LJ LAGARTO","49400-000","AVENIDA LEANDRO MACIEL","36","CENTRO","LAGARTO","SE","08.489.643/0044-92"));
|
|
||||||
ds.addRow(new Array("010135","20968", "HIB ITABAIANINHA","49290-000","PRAÇA OLÍMPIO CAMPOS","154","CENTRO","ITABAIANINHA","SE","08.489.643/0059-79"));
|
|
||||||
ds.addRow(new Array("010136","20969", "HIB MARECHAL DEODORO","57160-000","RUA DR TAVARES BASTOS","03","CENTRO","MARECHAL DEODORO","AL","08.489.643/0054-64"));
|
|
||||||
ds.addRow(new Array("010137","20970", "VD SÃO SEBASTIÃO","43850-000","PRAÇA DOZE DE OUTUBRO","116","CENTRO","SÃO SEBASTIÃO DO PASSÉ","BA","08.489.643/0050-30"));
|
|
||||||
ds.addRow(new Array("010138","20986", "HIB OLINDINA","48470-000","AVENIDA ANTONIO MANGABEIRA","84","CENTRO","OLINDINA","BA","08.489.643/0055-45"));
|
|
||||||
ds.addRow(new Array("010139","20988", "HIB QUEIMADAS","48860-000","PRAÇA CORONEL FRANCISCO LANTYER","21","CENTRO","QUEIMADAS","BA","08.489.643/0051-11"));
|
|
||||||
ds.addRow(new Array("010140","20989", "HIB ENTRE RIOS","48180-000","AVENIDA JURACY MAGALHÃES","320","CENTRO","ENTRE RIOS","BA","08.489.643/0056-26"));
|
|
||||||
ds.addRow(new Array("010141","20991", "HIB CAMPO ALEGRE","57250-000","RUA DO COMÉRCIO","49","CENTRO","CAMPO ALEGRE","AL","08.489.643/0061-93"));
|
|
||||||
ds.addRow(new Array("010142","20992", "ER CONCEIÇÃO COITÉ","48730-000","RUA DR AMANCIO MOTA","35","CENTRO","CONCEIÇÃO DO COITÉ","BA","08.489.643/0045-73"));
|
|
||||||
ds.addRow(new Array("010143","20993", "ER CANDEIAS","43815-010","AV ANTONIO PATTERSON","213","TRIANGULO","CANDEIAS","BA","08.489.643/0046-54"));
|
|
||||||
ds.addRow(new Array("010144","20994", "ER SIMÕES FILHO","43700-000","AV LUÍS EDUARDO MAGALHÃES","109","CENTRO","SIMÕES FILHO","BA","08.489.643/0047-35"));
|
|
||||||
ds.addRow(new Array("010145","20995", "ER LAGARTO","49400-000","AVENIDA LEANDRO MACIEL","36","CENTRO","LAGARTO","SE","08.489.643/0060-02"));
|
|
||||||
ds.addRow(new Array("010146","20996", "ER ANTARES","57083-048","AV ANTONIO LISBOA DE AMORIM","220","ANTARES","MACEIÓ","AL","08.489.643/0057-07"));
|
|
||||||
ds.addRow(new Array("010147","20997", "ER PITANGUINHA","57052-050","AVENIDA FERNANDES LIMA","840","PITANGUINHA","MACEIÓ","AL","08.489.643/0058-98"));
|
|
||||||
ds.addRow(new Array("010148","20998", "CD TABULEIRO","57073-482","ESTRADA DA CODEAL","770","TABULEIRO","MACEIÓ","AL","08.489.643/0062-74"));
|
|
||||||
ds.addRow(new Array("010149","20999", "HIB ESPLANADA","48370-000","PRAÇA LADISLAU CAVALCANTE","31","CENTRO","ESPLANADA","BA","08.489.643/0053-83"));
|
|
||||||
ds.addRow(new Array("010150","21000", "HIB SANTALUZ","48880-000","RUA RIO BRANCO","96","CENTRO","SANTALUZ","BA","08.489.643/0052-00"));
|
|
||||||
ds.addRow(new Array("010151","21001", "HIB RIO REAL","48330-000","PC SEN ANTONIO CARLOS MAGALHÃES","146","CENTRO","RIO REAL","BA","08.489.643/0049-05"));
|
|
||||||
ds.addRow(new Array("010152","21007", "TÔ QUE TÔ MACEIÓ CENTRO","57020-220","AVENIDA MOREIRA LIMA","293","CENTRO","MACEIÓ","AL","08.489.643/0048-16"));
|
|
||||||
ds.addRow(new Array("010153","21068", "LJ ATAKAREJO SIMÕES FILHO","43700-000","AV ENG ELMO SEREJO DE FARIAS","2073","CONJ HAB VIDA NOVA","SIMÕES FILHO","BA","08.489.643/0063-55"));
|
|
||||||
ds.addRow(new Array("010154","21277", "LJ GBARBOSA SOCORRO","49160-000","AVENIDA 1","13","CONJ JOAO ALVES FILHO","NOSSA SENHORA DO SOCORRO","SE","08.489.643/0065-17"));
|
|
||||||
ds.addRow(new Array("010155","21278", "ER SOCORRO","49140-000","AVENIDA COLETORA A","597","CONJ MARCOS FREIRE I","NOSSA SENHORA DO SOCORRO","SE","08.489.643/0066-06"));
|
|
||||||
ds.addRow(new Array("010156","21495", "HIB BARRA DOS COQUEIROS","49140-000","AVENIDA OCEANICA","506","ANTONIO PEDRO","BARRA DOS COQUEIROS","SE","08.489.643/0067-89"));
|
|
||||||
ds.addRow(new Array("010157","21296", "LJ SHOPPING PRÊMIO SOCORRO","49160-000","AVENIDA COLETORA A","S/N","CONJ MARCOS FREIRE I","NOSSA SENHORA DO SOCRRO","SE","08.489.643/0064-36"));
|
|
||||||
ds.addRow(new Array("010159","21381", "LJ CAPIM GROSSO","44695-000","AV ACM","121","CENTRO","CAPIM-GROSSO","BA","08.489.643/0069-40"));
|
|
||||||
ds.addRow(new Array("010160","21383", "ER CAPIM GROSSO","44695-000","AV ACM","121","CENTRO","CAPIM-GROSSO","BA","08.489.643/0070-84"));
|
|
||||||
ds.addRow(new Array("010161","21375", "HIB IPIRÁ","44600-000","AVENIDA CESÁR CABRAL","15","CENTRO","IPIRÁ","BA","08.489.643/0071-65"));
|
|
||||||
ds.addRow(new Array("010162","21624", "MIX MATEUS TRAPICHE","57010-000","AVENIDA SIQUEIRA CAMPOS","1295","PRADO","MACEIÓ","AL","08.489.643/0072-46"));
|
|
||||||
ds.addRow(new Array("010163","22448", "ER CAMPO ALEGRE","57250-000","RUA DO COMÉRCIO","49","CENTRO","CAMPO ALEGRE","AL","08.489.643/0073-27"));
|
|
||||||
ds.addRow(new Array("010164","23475", "MIX MATEUS TABULEIRO","57082-160","AV DOUTOR DURVAL DE GOIS MONTEIRO","9207","TABULEIRO","MACEIÓ","AL","08.489.643/0074-08"));
|
|
||||||
ds.addRow(new Array("010165","22541", "ER RIO LARGO","57100-000","RUA JUDITH PAIVA","445","CENTRO","RIO LARGO","AL","08.489.643/0075-99"));
|
|
||||||
ds.addRow(new Array("010166","AMG", "AMG SERRARIA","57046-000","AVENIDA MENINO MARCELO","S/N","SERRARIA","MACEIÓ","AL","08.489.643/0076-70"));
|
|
||||||
ds.addRow(new Array("010167","23156", "SHOPPING CENTRO SUL","49400-000","AV CONTORNO BR","3795","SÃO JOSE","LAGARTO","SE","08.489.643/0077-50"));
|
|
||||||
ds.addRow(new Array("030101","910173", "QDB PARQUE SHOPPING","57038-000","AVENIDA COMENDADOR GUSTAVO PAIVA","5945","CRUZ DAS ALMAS","MACEIÓ","AL","20.318.877/0001-32"));
|
|
||||||
ds.addRow(new Array("030102","910291", "QDB MACEIO SHOPPING","57037-532","AVENIDA COMENDADOR GUSTAVO PAIVA","2900","MANGABEIRAS","MACEIÓ","AL","20.318.877/0002-13"));
|
|
||||||
ds.addRow(new Array("070101","23713", "MATRIZ - ZEFERINO CORREIA","45000-520","RUA ZEFERINO CORREIA","17","CENTRO","VITORIA DA CONQUISTA","BA","14.378.160/0001-83"));
|
|
||||||
ds.addRow(new Array("070102","23711", "HIB LIMA GUERRA","45000-390","AL. LIMA GUERRA","04","CENTRO","VITORIA DA CONQUISTA","BA","14.378.160/0005-07"));
|
|
||||||
ds.addRow(new Array("070103","23712", "HIB CANDIDO SALES","24157-000","AL. RIO BRANCO","373","CENTRO","CÂNDIDO SALES","BA","14.378.160/0006-98"));
|
|
||||||
ds.addRow(new Array("070104","23705", "LOJA SHOPPING CONQUISTA SUL","45055-900","AVENIDA JURACY MAGALHAES","3340","FELICIA","VITORIA DA CONQUISTA","BA","14.378.160/0013-17"));
|
|
||||||
ds.addRow(new Array("070105","23703", " VD BARRA CHOCA","45120-000","AV GETULIO VARGAS","98","CENTRO","CHOCA","BA","14.378.160/0016-60"));
|
|
||||||
ds.addRow(new Array("070106","23707", "LOJA BRASIL","45051-070","AV ITABUNA","2724","BRASIL","VITORIA DA CONQUISTA","BA","14.378.160/0011-55"));
|
|
||||||
ds.addRow(new Array("070107","23706", "LOJA ASSAI FELICIA","45055-686","AV ANEL DE CONTORNO","S/N","FELICIA","VITORIA DA CONQUISTA","BA","14.378.160/0012-36"));
|
|
||||||
ds.addRow(new Array("070108","23709", "LOJA SHOPPING CONQUISTA","45055-900","AV JURACY MAGALHAES","3340","FELICIA","VITORIA DA CONQUISTA","BA","14.378.160/0009-30"));
|
|
||||||
ds.addRow(new Array("070109","23704", "VD CONDEUBA","46200-000","PC NOSSA SENHORA APARECIDA","08","CENTRO","CONDEÚBA","BA","14.378.160/0015-89"));
|
|
||||||
ds.addRow(new Array("070110","23703", "LOJA BARRA CHOCA","45120-000","AV GETULIO VARGAS","98","CENTRO","CHOCA","BA","14.378.160/0016-60"));
|
|
||||||
ds.addRow(new Array("070111","23702", "LOJA PANVICON CENTER","45000-230","AVENIDA LAURO DE FREITAS","142","CENTRO","VITORIA DA CONQUISTA","BA","14.378.160/0017-40"));
|
|
||||||
ds.addRow(new Array("070112","23701", "LOJA NOVE DE NOVEMBRO","45000-370","PC NOVE DE NOVEMBRO","10","CENTRO","VITORIA DA CONQUISTA","BA","14.378.160/0018-21"));
|
|
||||||
ds.addRow(new Array("070113","23665", "LOJA UNIVERSIDADE","45031-000","AV OLIVIA FLORES","2500","UNIVERSIDADE","VITORIA DA CONQUISTA","BA","14.378.160/0021-27"));
|
|
||||||
ds.addRow(new Array("010172","24253", "LOJA IRECÊ CENTRO","44860-051","RUA AUGUSTO NUNES PEREIRA","162","CENTRO","IRECÊ","BA","08.489.643/0095-32"));
|
|
||||||
ds.addRow(new Array("010171","24254", "LOJA JOÃO DOURADO","44920-000","AVENIDA JOAQUIM AUGUSTO","212D","CENTRO","JOÃO DOURADO","BA","08.489.643/0089-94"));
|
|
||||||
ds.addRow(new Array("010173","24254", "ER IRECE","44860-169","AVENIDA EDVALDO SANTOS LOPES","438","CENTRO","IRECE","BA","08.489.643/0094-51"));
|
|
||||||
ds.addRow(new Array("010169","24257", "HIB MIGUEL CALMON","44720-000","PRAÇA LAURO DE FREITAS","180","CENTRO","MIGUEL CALMON","BA","08.489.643/0088-03"));
|
|
||||||
ds.addRow(new Array("010170","24258", "LOJA ATACADAO IRECE","44868-520","AVENIDA ATACADAO NOVO IRECE","01","NOVO IRECÊ","IRECÊ","BA","08.489.643/0093-70"));
|
|
||||||
ds.addRow(new Array("010175","24268", "LOJA JACOBINA","44702-342","RUA CORONEL TEIXEIRA","44","CENTRO","JACOBINA","BA","08.489.643/0097-02"));
|
|
||||||
ds.addRow(new Array("010176","24269", "ER JACOBINA","44702-358","AVENIDA MANOEL NOVAES","178","CENTRO","JACOBINA","BA","08.489.643/0096-13"));
|
|
||||||
ds.addRow(new Array("010174","24293", "HIB MORRO DO CHAPEU","44850-970","RUA PROJETADA 01","203","CENTRO","MORRO DO CHAPEU","BA","08.489.643/0099-66"));
|
|
||||||
ds.addRow(new Array("010168","23813", "HIB VALENTE","48890-000","RUA CASTRO ALVES","174","CENTRO","VALENTE","BA","08.489.643/0078-31"));
|
|
||||||
ds.addRow(new Array("010177","23711", "ER CONQUISTA","45000-390","ALAMEDA LIMA GUERRA","174","CENTRO","VITORIA DA CONQUISTA","BA","08.489.643/0100-34"));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return ds;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
function onMobileSync(user) {
|
|
||||||
|
|
||||||
|
var objData = JSON.parse(retorno);
|
||||||
|
var success = !!objData.success;
|
||||||
|
var itens = objData.data || [];
|
||||||
|
|
||||||
|
if (!success || !itens.length) {
|
||||||
|
var msg = trim(objData.message) || trim(objData.error) || "Sem lojas retornadas";
|
||||||
|
dataset.addRow(["", msg + " (HTTP " + statusHttp + ")", "", "", "", "", "", "", "", "", "", "", ""]);
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
var filtros = parseConstraints(constraints);
|
||||||
|
var colleagueCache = {};
|
||||||
|
|
||||||
|
for (var i = 0; i < itens.length; i++) {
|
||||||
|
var item = itens[i] || {};
|
||||||
|
|
||||||
|
var pdv = trim(item["PDV"]);
|
||||||
|
var loja = trim(item["PDV DESC"]);
|
||||||
|
var responsavel = trim(item["GESTAO"]) || trim(item["GESTAO"]);
|
||||||
|
var regional = trim(item["SUPERVISOR"]) || trim(item["SUPERVISOR"]);
|
||||||
|
var uf = trim(item["UF"]);
|
||||||
|
var cidade = trim(item["CIDADE"]);
|
||||||
|
var status = trim(item["STATUS"]);
|
||||||
|
var canal = trim(item["CANAL"]);
|
||||||
|
var id = trim(item["id"]);
|
||||||
|
var protheus = trim(item["PROTHEUS"] || item["protheus"] || item["Protheus"]);
|
||||||
|
var loginLoja = pdv ? (pdv + ".ginseng") : "";
|
||||||
|
var colleagueId = resolveColleagueIdByLogin(loginLoja);
|
||||||
|
var userCreate = getUserCreateStatus(loginLoja, colleagueCache);
|
||||||
|
|
||||||
|
if (filtros.onlyAtivo && status.toUpperCase() !== "ATIVO") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filtros.pdv && pdv !== filtros.pdv) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filtros.loja && normalize(loja).indexOf(normalize(filtros.loja)) === -1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (filtros.termoLivre) {
|
||||||
|
var blob = normalize([
|
||||||
|
pdv,
|
||||||
|
loja,
|
||||||
|
responsavel,
|
||||||
|
regional,
|
||||||
|
uf,
|
||||||
|
cidade
|
||||||
|
].join(" "));
|
||||||
|
if (blob.indexOf(normalize(filtros.termoLivre)) === -1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dataset.addRow([
|
||||||
|
pdv,
|
||||||
|
loja,
|
||||||
|
responsavel,
|
||||||
|
regional,
|
||||||
|
uf,
|
||||||
|
cidade,
|
||||||
|
status,
|
||||||
|
canal,
|
||||||
|
id,
|
||||||
|
protheus,
|
||||||
|
loginLoja,
|
||||||
|
colleagueId,
|
||||||
|
userCreate
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dataset.rowsCount === 0) {
|
||||||
|
dataset.addRow(["", "Sem lojas apos filtros (HTTP " + statusHttp + ")", "", "", "", "", "", "", "", "", "", "", ""]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
dataset = DatasetBuilder.newDataset();
|
||||||
|
dataset.addColumn("ERRO");
|
||||||
|
dataset.addRow([String(e)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dataset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseConstraints(constraints) {
|
||||||
|
var out = {
|
||||||
|
pdv: "",
|
||||||
|
loja: "",
|
||||||
|
onlyAtivo: false,
|
||||||
|
termoLivre: ""
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!constraints) return out;
|
||||||
|
|
||||||
|
for (var i = 0; i < constraints.length; i++) {
|
||||||
|
var c = constraints[i];
|
||||||
|
if (!c || !c.fieldName) continue;
|
||||||
|
|
||||||
|
var name = String(c.fieldName);
|
||||||
|
var value = trim(c.initialValue);
|
||||||
|
|
||||||
|
if (name === "PDV" && value) out.pdv = value;
|
||||||
|
if (name === "LOJA" && value) out.loja = value;
|
||||||
|
if (name === "onlyAtivo" && value.toLowerCase() === "false") out.onlyAtivo = false;
|
||||||
|
|
||||||
|
// Zoom costuma enviar constraints variadas de busca; capturamos termo livre.
|
||||||
|
if (
|
||||||
|
value &&
|
||||||
|
name !== "onlyAtivo" &&
|
||||||
|
name !== "metadata#id" &&
|
||||||
|
name !== "metadata#active" &&
|
||||||
|
name !== "sqlLimit"
|
||||||
|
) {
|
||||||
|
var cleaned = cleanSearchValue(value);
|
||||||
|
if (cleaned && (!out.termoLivre || cleaned.length > out.termoLivre.length)) {
|
||||||
|
out.termoLivre = cleaned;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
function trim(v) {
|
||||||
|
return String(v == null ? "" : v).trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalize(v) {
|
||||||
|
return trim(v).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
function cleanSearchValue(v) {
|
||||||
|
var s = trim(v);
|
||||||
|
// remove curingas comuns de busca do Zoom/like
|
||||||
|
s = s.replace(/[%*_]/g, "");
|
||||||
|
return trim(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUserCreateStatus(loginLoja, cache) {
|
||||||
|
var login = trim(loginLoja);
|
||||||
|
if (!login) return "NAO";
|
||||||
|
if (cache.hasOwnProperty(login)) return cache[login];
|
||||||
|
try {
|
||||||
|
var cLogin = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
|
||||||
|
var cActive = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||||
|
var ds = DatasetFactory.getDataset("colleague", null, [cLogin, cActive], null);
|
||||||
|
var exists = !!(ds && ds.rowsCount > 0);
|
||||||
|
|
||||||
|
// fallback para ambientes onde o identificador esta em colleagueId
|
||||||
|
if (!exists) {
|
||||||
|
var cId = DatasetFactory.createConstraint("colleaguePK.colleagueId", login, login, ConstraintType.MUST);
|
||||||
|
ds = DatasetFactory.getDataset("colleague", null, [cId, cActive], null);
|
||||||
|
exists = !!(ds && ds.rowsCount > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
cache[login] = exists ? "OK" : "NAO";
|
||||||
|
return cache[login];
|
||||||
|
} catch (e) {
|
||||||
|
cache[login] = "NAO";
|
||||||
|
return "NAO";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveColleagueIdByLogin(loginLoja) {
|
||||||
|
var login = trim(loginLoja);
|
||||||
|
if (!login) return "";
|
||||||
|
try {
|
||||||
|
var cLogin = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
|
||||||
|
var cActive = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||||
|
var ds = DatasetFactory.getDataset("colleague", null, [cLogin, cActive], null);
|
||||||
|
if (ds && ds.rowsCount > 0) {
|
||||||
|
return trim(ds.getValue(0, "colleaguePK.colleagueId"));
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
@ -20,7 +20,7 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
var data = {
|
var data = {
|
||||||
companyId: "1",
|
companyId: "1",
|
||||||
serviceCode: "Postprod",
|
serviceCode: "Postprod",
|
||||||
endpoint: "/rest/uf_mata010/",
|
endpoint: "/uf_mata010/",
|
||||||
method: "get",
|
method: "get",
|
||||||
timeoutService: "60000",
|
timeoutService: "60000",
|
||||||
params: {}
|
params: {}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
}
|
}
|
||||||
log.info("Dados recebidos: " + jsonData);
|
log.info("Dados recebidos: " + jsonData);
|
||||||
|
|
||||||
var url = "https://rest.grupoginseng.com.br/rest_teste/uf_mata010";
|
var url = "https://rest.grupoginseng.com.br/rest/uf_mata010";
|
||||||
var urlObj = new java.net.URL(url);
|
var urlObj = new java.net.URL(url);
|
||||||
var httpConn = urlObj.openConnection();
|
var httpConn = urlObj.openConnection();
|
||||||
|
|
||||||
|
|||||||
@ -1,84 +0,0 @@
|
|||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
|
|
||||||
// Define as colunas do dataset
|
|
||||||
dataset.addColumn("CODIGO");
|
|
||||||
dataset.addColumn("DESCRICAO");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO_MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
|
|
||||||
var dataSource = "/jdbc/Tabeladeloja"; // ajuste se necessário
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = ""
|
|
||||||
+ " SELECT "
|
|
||||||
+ " M0_CODFIL, M0_FILIAL, M0_CGC, M0_ENDENT, M0_COMPENT, "
|
|
||||||
+ " M0_BAIRENT, M0_CIDENT, M0_ESTENT, M0_CEPENT, M0_CODMUN, M0_TEL_PO "
|
|
||||||
+ " FROM SYS_COMPANY "
|
|
||||||
+ " WHERE (M0_CODFIL LIKE '0101%' OR M0_CODFIL LIKE '03%') "
|
|
||||||
+ " AND D_E_L_E_T_ = ' '";
|
|
||||||
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
var vistos = {};
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("M0_CODFIL");
|
|
||||||
var descricao = rs.getString("M0_FILIAL");
|
|
||||||
var cnpj = rs.getString("M0_CGC");
|
|
||||||
var endereco = rs.getString("M0_ENDENT");
|
|
||||||
var complemento = rs.getString("M0_COMPENT");
|
|
||||||
var bairro = rs.getString("M0_BAIRENT");
|
|
||||||
var cidade = rs.getString("M0_CIDENT");
|
|
||||||
var estado = rs.getString("M0_ESTENT");
|
|
||||||
var cep = rs.getString("M0_CEPENT");
|
|
||||||
var ibge = rs.getString("M0_CODMUN");
|
|
||||||
var bpcs = rs.getString("M0_TEL_PO");
|
|
||||||
|
|
||||||
var loja = (bpcs ? bpcs.trim() : "") + "-" + (descricao ? descricao.trim() : "");
|
|
||||||
|
|
||||||
if (!vistos[codigo]) {
|
|
||||||
vistos[codigo] = true;
|
|
||||||
dataset.addRow([
|
|
||||||
codigo, descricao, cnpj, endereco, complemento, bairro,
|
|
||||||
cidade, estado, cep, ibge, bpcs, loja
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(vistos).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try { if (rs) rs.close(); } catch (e) { log.error(e.message); }
|
|
||||||
try { if (stmt) stmt.close(); } catch (e) { log.error(e.message); }
|
|
||||||
try { if (conn) conn.close(); } catch (e) { log.error(e.message); }
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,98 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
dataset.addColumn("CODIGO");
|
|
||||||
dataset.addColumn("DESCRICAO");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO_MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/Tabeladeloja";
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = ""
|
|
||||||
+ " SELECT "
|
|
||||||
+ " M0_CODFIL, M0_FILIAL, M0_CGC, M0_ENDENT, M0_COMPENT, "
|
|
||||||
+ " M0_BAIRENT, M0_CIDENT, M0_ESTENT, M0_CEPENT, M0_CODMUN, M0_TEL_PO "
|
|
||||||
+ " FROM SYS_COMPANY "
|
|
||||||
+ " WHERE (M0_CODFIL LIKE '0101%' OR M0_CODFIL LIKE '03%') "
|
|
||||||
+ " AND D_E_L_E_T_ = ' '";
|
|
||||||
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
// As colunas aqui devem ter exatamente os MESMOS nomes do defineStructure:
|
|
||||||
dataset.addColumn("CODIGO");
|
|
||||||
dataset.addColumn("DESCRICAO");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO_MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
|
|
||||||
var vistos = {};
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("M0_CODFIL");
|
|
||||||
var descricao = rs.getString("M0_FILIAL");
|
|
||||||
var cnpj = rs.getString("M0_CGC");
|
|
||||||
var endereco = rs.getString("M0_ENDENT");
|
|
||||||
var complemento = rs.getString("M0_COMPENT");
|
|
||||||
var bairro = rs.getString("M0_BAIRENT");
|
|
||||||
var cidade = rs.getString("M0_CIDENT");
|
|
||||||
var estado = rs.getString("M0_ESTENT");
|
|
||||||
var cep = rs.getString("M0_CEPENT");
|
|
||||||
var ibge = rs.getString("M0_CODMUN");
|
|
||||||
var bpcs = rs.getString("M0_TEL_PO");
|
|
||||||
|
|
||||||
var loja = (bpcs ? bpcs.trim() : "") + "-" + (descricao ? descricao.trim() : "");
|
|
||||||
|
|
||||||
if (!vistos[codigo]) {
|
|
||||||
vistos[codigo] = true;
|
|
||||||
dataset.addRow([
|
|
||||||
codigo, descricao, cnpj, endereco, complemento, bairro,
|
|
||||||
cidade, estado, cep, ibge, bpcs, loja
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(vistos).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try { if (rs) rs.close(); } catch (e) { log.error(e.message); }
|
|
||||||
try { if (stmt) stmt.close(); } catch (e) { log.error(e.message); }
|
|
||||||
try { if (conn) conn.close(); } catch (e) { log.error(e.message); }
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,7 +1,6 @@
|
|||||||
function createDataset(fields, constraints, sortFields) {
|
function createDataset(fields, constraints, sortFields) {
|
||||||
var dataset = DatasetBuilder.newDataset();
|
var dataset = DatasetBuilder.newDataset();
|
||||||
|
|
||||||
// Definir colunas que queremos no retorno
|
|
||||||
dataset.addColumn("C1_FILIAL");
|
dataset.addColumn("C1_FILIAL");
|
||||||
dataset.addColumn("C1_NUM");
|
dataset.addColumn("C1_NUM");
|
||||||
dataset.addColumn("C1_ITEM");
|
dataset.addColumn("C1_ITEM");
|
||||||
@ -15,6 +14,7 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
dataset.addColumn("C1_CONTA");
|
dataset.addColumn("C1_CONTA");
|
||||||
dataset.addColumn("C1_SOLICIT");
|
dataset.addColumn("C1_SOLICIT");
|
||||||
dataset.addColumn("C1_EMISSAO");
|
dataset.addColumn("C1_EMISSAO");
|
||||||
|
dataset.addColumn("C1_APROV");
|
||||||
dataset.addColumn("C1_COTACAO");
|
dataset.addColumn("C1_COTACAO");
|
||||||
dataset.addColumn("C1_PEDIDO");
|
dataset.addColumn("C1_PEDIDO");
|
||||||
dataset.addColumn("C1_ITEMPED");
|
dataset.addColumn("C1_ITEMPED");
|
||||||
@ -23,8 +23,11 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
dataset.addColumn("hora_consulta");
|
dataset.addColumn("hora_consulta");
|
||||||
dataset.addColumn("sucesso");
|
dataset.addColumn("sucesso");
|
||||||
|
|
||||||
|
function emptyRow() {
|
||||||
|
return ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"];
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 🔎 Captura o número da SC passado como constraint
|
|
||||||
var numeroSC = null;
|
var numeroSC = null;
|
||||||
if (constraints != null) {
|
if (constraints != null) {
|
||||||
for (var i = 0; i < constraints.length; i++) {
|
for (var i = 0; i < constraints.length; i++) {
|
||||||
@ -35,17 +38,16 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!numeroSC) {
|
if (!numeroSC) {
|
||||||
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Erro: número SC não informado"]);
|
dataset.addRow(emptyRow());
|
||||||
return dataset;
|
return dataset;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ⚙️ Monta requisição para o Protheus
|
|
||||||
var data = {
|
var data = {
|
||||||
companyId: "1",
|
companyId: "1",
|
||||||
serviceCode: "Postprod", // ajuste conforme seu serviço cadastrado
|
serviceCode: "Postprod",
|
||||||
endpoint: "/rest/uf_mata110/" + numeroSC,
|
endpoint: "/UF_MATA110/" + numeroSC,
|
||||||
method: "get",
|
method: "get",
|
||||||
timeoutService: "10000",
|
timeoutService: "60000",
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json"
|
"Content-Type": "application/json"
|
||||||
}
|
}
|
||||||
@ -58,9 +60,7 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
var result = JSON.parse(response.getResult());
|
var result = JSON.parse(response.getResult());
|
||||||
|
|
||||||
if (result.sucesso && result.solicitacoes && result.solicitacoes.length > 0) {
|
if (result.sucesso && result.solicitacoes && result.solicitacoes.length > 0) {
|
||||||
var sc = result.solicitacoes[0]; // pega a primeira solicitação retornada
|
var sc = result.solicitacoes[0];
|
||||||
|
|
||||||
// ⚠️ Trata a cotação: ignora valores default
|
|
||||||
var cotacao = sc.C1_COTACAO || "";
|
var cotacao = sc.C1_COTACAO || "";
|
||||||
if (cotacao == "000000" || cotacao == "000001") {
|
if (cotacao == "000000" || cotacao == "000001") {
|
||||||
cotacao = "";
|
cotacao = "";
|
||||||
@ -80,6 +80,7 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
sc.C1_CONTA || "",
|
sc.C1_CONTA || "",
|
||||||
sc.C1_SOLICIT || "",
|
sc.C1_SOLICIT || "",
|
||||||
sc.C1_EMISSAO || "",
|
sc.C1_EMISSAO || "",
|
||||||
|
sc.C1_APROV || "",
|
||||||
cotacao,
|
cotacao,
|
||||||
sc.C1_PEDIDO || "",
|
sc.C1_PEDIDO || "",
|
||||||
sc.C1_ITEMPED || "",
|
sc.C1_ITEMPED || "",
|
||||||
@ -89,13 +90,13 @@ function createDataset(fields, constraints, sortFields) {
|
|||||||
"true"
|
"true"
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"]);
|
dataset.addRow(emptyRow());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"]);
|
dataset.addRow(emptyRow());
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Erro: " + e.message]);
|
dataset.addRow(emptyRow());
|
||||||
}
|
}
|
||||||
|
|
||||||
return dataset;
|
return dataset;
|
||||||
|
|||||||
@ -58,27 +58,281 @@
|
|||||||
margin-bottom: 24px;
|
margin-bottom: 24px;
|
||||||
}
|
}
|
||||||
.change-weight { font-weight: 400 !important; }
|
.change-weight { font-weight: 400 !important; }
|
||||||
|
|
||||||
|
.sc-status-panel {
|
||||||
|
margin-top: 15px;
|
||||||
|
padding: 18px;
|
||||||
|
border: 1px solid #d8e1e8;
|
||||||
|
border-radius: 12px;
|
||||||
|
background: #f7fafc;
|
||||||
|
box-shadow: 0 2px 10px rgba(12, 50, 74, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-primary-grid,
|
||||||
|
.sc-secondary-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, minmax(220px, 1fr));
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-primary-grid {
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-secondary-grid {
|
||||||
|
gap: 8px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 12px 14px;
|
||||||
|
min-height: 72px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info--primary {
|
||||||
|
border-left: 4px solid #04506b;
|
||||||
|
box-shadow: inset 0 0 0 1px #d9e4ec;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info--secondary {
|
||||||
|
box-shadow: inset 0 0 0 1px #e3ebf2;
|
||||||
|
opacity: .96;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info--clickable {
|
||||||
|
cursor: pointer;
|
||||||
|
transition: box-shadow .2s ease, transform .2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info--clickable:hover {
|
||||||
|
transform: translateY(-1px);
|
||||||
|
box-shadow: inset 0 0 0 1px #c8d9e7, 0 4px 12px rgba(8, 47, 72, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-label {
|
||||||
|
font-size: 11px;
|
||||||
|
color: #4d6073;
|
||||||
|
letter-spacing: .04em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-value {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #24313f;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info--primary .sc-value {
|
||||||
|
font-size: 30px;
|
||||||
|
line-height: 1.1;
|
||||||
|
color: #102a43;
|
||||||
|
font-weight: 700;
|
||||||
|
letter-spacing: .01em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-hint {
|
||||||
|
display: block;
|
||||||
|
margin-top: 6px;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #5f7386;
|
||||||
|
letter-spacing: .02em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-value.badge {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
min-height: 30px;
|
||||||
|
padding: 6px 12px;
|
||||||
|
border-radius: 999px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-wrap {
|
||||||
|
margin-top: 16px;
|
||||||
|
padding-top: 0;
|
||||||
|
border-top: 1px solid transparent;
|
||||||
|
transition: background-color .25s ease, max-height .25s ease, opacity .25s ease, padding-top .25s ease;
|
||||||
|
max-height: 0;
|
||||||
|
opacity: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-wrap.is-open {
|
||||||
|
padding-top: 14px;
|
||||||
|
border-top-color: #d7e2eb;
|
||||||
|
max-height: 640px;
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-wrap.is-focus {
|
||||||
|
background: #f2f9ff;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-title {
|
||||||
|
margin: 0 0 10px;
|
||||||
|
color: #12344d;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
letter-spacing: .01em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 0 0 18px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 5px;
|
||||||
|
top: 2px;
|
||||||
|
bottom: 2px;
|
||||||
|
width: 2px;
|
||||||
|
background: #c8d8e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-item {
|
||||||
|
position: relative;
|
||||||
|
padding: 0 0 14px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-item:last-child {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-item:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: -18px;
|
||||||
|
top: 4px;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: #92a9bf;
|
||||||
|
box-shadow: 0 0 0 2px #92a9bf;
|
||||||
|
border: 2px solid #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-item.done:before {
|
||||||
|
background: #1ab04a;
|
||||||
|
box-shadow: 0 0 0 2px #1ab04a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-item.pending:before {
|
||||||
|
background: #e6a229;
|
||||||
|
box-shadow: 0 0 0 2px #e6a229;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-title-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
gap: 8px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-event {
|
||||||
|
color: #18354f;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-time {
|
||||||
|
color: #6b7f92;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-timeline-detail {
|
||||||
|
margin-top: 3px;
|
||||||
|
color: #3e556b;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tbCotacao {
|
||||||
|
table-layout: fixed;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tbCotacao thead th {
|
||||||
|
background: #eef3f8;
|
||||||
|
color: #3b4d5f;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tbCotacao tbody tr:nth-child(odd) {
|
||||||
|
background: #f9fbfd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tbCotacao tbody td,
|
||||||
|
#tbCotacao thead th,
|
||||||
|
#tbCotacao tfoot td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tbCotacao td:nth-child(3) input,
|
||||||
|
#tbCotacao td:nth-child(4) input,
|
||||||
|
#tbCotacao td:nth-child(5) input {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tbCotacao tfoot .sc-total-label {
|
||||||
|
text-align: right;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 992px) {
|
||||||
|
.sc-primary-grid,
|
||||||
|
.sc-secondary-grid {
|
||||||
|
grid-template-columns: repeat(2, minmax(180px, 1fr));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.sc-primary-grid,
|
||||||
|
.sc-secondary-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sc-info--primary .sc-value {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="fluig-style-guide" style="background-color:white;">
|
<div class="fluig-style-guide" style="background-color:white;">
|
||||||
<h1 id="rcorners" style="margin:0;">Solicitação de compra</h1>
|
<h1 id="rcorners" style="margin:0;">Solicitação de compra</h1>
|
||||||
<ul id="wizard-steps" class="steps m-t-20">
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Solicitação</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Validando necessidade</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Solicitando...</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Dados Adicionais</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Indicar Cotação</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Confirmação Cotação</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Aprovação Ccusto</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Aprovação GERF</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Aprovação CEO</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Receber Produto</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Problema</span></li>
|
|
||||||
<li class="step-item"><span class="step-bullet"></span><span class="step-label">Fim</span></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<form name="form" role="form">
|
<form name="form" role="form">
|
||||||
<!-- Campos ocultos -->
|
<!-- Campos ocultos -->
|
||||||
<input type="hidden" id="WKNumProces" name="WKNumProces">
|
<input type="hidden" id="WKNumProces" name="WKNumProces">
|
||||||
@ -115,10 +369,6 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<h2><i class="flaticon flaticon-tests-central icon-md" aria-hidden="true"></i>Dados da solicitação</h2>
|
<h2><i class="flaticon flaticon-tests-central icon-md" aria-hidden="true"></i>Dados da solicitação</h2>
|
||||||
<button type="button" class="btn btn-info btn-sm" id="btnHistorico"
|
|
||||||
style="background-color:#04506b; border-color:#04506b;">
|
|
||||||
<i class="fluigicon fluigicon-eye-open"></i> Ver Histórico
|
|
||||||
</button>
|
|
||||||
<h6>Dados referentes aos responsáveis pela abertura e pela solicitação do atual processo.</h6>
|
<h6>Dados referentes aos responsáveis pela abertura e pela solicitação do atual processo.</h6>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -154,11 +404,16 @@
|
|||||||
<input type="zoom" class="form-control" name="estabelecimento" id="estabelecimento" data-zoom="{
|
<input type="zoom" class="form-control" name="estabelecimento" id="estabelecimento" data-zoom="{
|
||||||
'displayKey':'LOJA',
|
'displayKey':'LOJA',
|
||||||
'placeholder': 'Buscar nome do estabelecimento ou filial',
|
'placeholder': 'Buscar nome do estabelecimento ou filial',
|
||||||
'datasetId':'dsSysCompan',
|
'datasetId':'dsFiliais',
|
||||||
'fields':[
|
'fields':[
|
||||||
{'field':'LOJA','label':'Filial','standard':'true','search':'true'},
|
{'field':'LOJA','label':'Filial','standard':'true','search':'true'},
|
||||||
{'field':'CNPJ','label':'CNPJ','standard':'true'},
|
{'field':'REGIONAL','label':'REGIONAL','standard':'true'},
|
||||||
{'field':'ESTADO','label':'ESTADO','standard':'true'}
|
{'field':'UF','label':'UF','standard':'true'},
|
||||||
|
{'field':'RESPONSAVEL_LOJA','label':'RESPONSAVEL_LOJA','visible':'false'},
|
||||||
|
{'field':'PDV','label':'PDV','visible':'false'},
|
||||||
|
{'field':'PROTHEUS','label':'PROTHEUS','visible':'false'},
|
||||||
|
{'field':'COLLEAGUE_ID','label':'COLLEAGUE_ID','visible':'false'},
|
||||||
|
{'field':'LOGIN_LOJA','label':'LOGIN_LOJA','visible':'false'}
|
||||||
]
|
]
|
||||||
}">
|
}">
|
||||||
<p class="help-block" id="estabelecimentoFilial" style="display:none;position:absolute;font-size:12px;">
|
<p class="help-block" id="estabelecimentoFilial" style="display:none;position:absolute;font-size:12px;">
|
||||||
@ -166,19 +421,9 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-md-3 col-xs-12 divCentroCusto alertaCampo">
|
<div class="form-group col-md-3 col-xs-12 divCentroCusto alertaCampo">
|
||||||
<label for="zoom">Centro de custo <span class="required text-danger"><strong>*</strong></span></label>
|
<label>Gestor da loja <span class="required text-danger"><strong>*</strong></span></label>
|
||||||
<input type="zoom" class="form-control" name="centro_custo" id="centro_custo" data-zoom="{
|
<input type="text" class="form-control" name="centro_custo" id="centro_custo"
|
||||||
'displayKey':'centroCusto',
|
placeholder="Será preenchido automaticamente ao selecionar a filial" readonly>
|
||||||
'placeholder': 'Buscar número ou nome do centro de custo',
|
|
||||||
'datasetId':'ds_centroCusto',
|
|
||||||
'fields':[
|
|
||||||
{'field':'codigoCentroCusto','label':'Código','standard':'true','search':'true'},
|
|
||||||
{'field':'centroCusto','label':'Nome','search':'true'},
|
|
||||||
{'field':'gestorCentroCusto','label':'gestorCentroCusto','visible':'false'},
|
|
||||||
{'field':'idGestor','label':'idGestor','visible':'false'},
|
|
||||||
{'field':'emailGestor','label':'emailGestor','visible':'false'}
|
|
||||||
]
|
|
||||||
}">
|
|
||||||
<p class="help-block" id="centroCusto" style="display:none;position:absolute;font-size:12px;">
|
<p class="help-block" id="centroCusto" style="display:none;position:absolute;font-size:12px;">
|
||||||
Preenchimento obrigatório
|
Preenchimento obrigatório
|
||||||
</p>
|
</p>
|
||||||
@ -364,37 +609,53 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card" style="margin-top:15px; border-radius:8px; box-shadow:0 2px 5px rgba(0,0,0,0.1);">
|
<div class="sc-status-panel">
|
||||||
<div class="card-body" style="padding:15px; background-color:#f9f9f9;">
|
<div class="sc-primary-grid">
|
||||||
<div class="row">
|
<div class="sc-info sc-info--primary sc-info--clickable" id="cardNumeroSC" title="Clique para ver a linha do tempo da SC">
|
||||||
<div class="col-md-4">
|
<div class="sc-label">Número SC</div>
|
||||||
<p><strong>Número:</strong> <span id="numeroSCProtheus_label">-</span></p>
|
<div class="sc-value" id="numeroSCProtheus_label">-</div>
|
||||||
|
<span class="sc-hint" id="cardNumeroSCHint">Clique para ver a linha do tempo</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="sc-info sc-info--primary">
|
||||||
<p><strong>Status:</strong> <span id="statusSCProtheus_label" class="badge bg-secondary">-</span></p>
|
<div class="sc-label">Status Cadastro</div>
|
||||||
|
<span class="sc-value badge bg-secondary" id="statusSCProtheus_label">-</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="sc-info sc-info--primary">
|
||||||
<p><strong>Solicitante:</strong> <span id="solicitanteSCProtheus_label">-</span></p>
|
<div class="sc-label">Andamento</div>
|
||||||
</div>
|
<span class="sc-value badge bg-secondary" id="statusSC_label">-</span>
|
||||||
<div class="col-md-4">
|
|
||||||
<p><strong>Emissão:</strong> <span id="emissaoSCProtheus_label">-</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<p><strong>Qtd. Itens:</strong> <span id="qtdItensSCProtheus_label">-</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<p><strong>Data da aprovação:</strong> <span id="dataCadastroSCProtheus_label">-</span> às <span id="horaCadastroSCProtheus_label">-</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<p><strong>Status:</strong> <span id="statusSC_label" class="badge bg-secondary">-</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<p><strong>Cotação:</strong> <span id="cotacaoSC_label">-</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<p><strong>Pedido:</strong> <span id="pedidoSC_label">-</span></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="sc-secondary-grid">
|
||||||
|
<div class="sc-info sc-info--secondary">
|
||||||
|
<div class="sc-label">Solicitante</div>
|
||||||
|
<div class="sc-value" id="solicitanteSCProtheus_label">-</div>
|
||||||
|
</div>
|
||||||
|
<div class="sc-info sc-info--secondary">
|
||||||
|
<div class="sc-label">Emissão</div>
|
||||||
|
<div class="sc-value" id="emissaoSCProtheus_label">-</div>
|
||||||
|
</div>
|
||||||
|
<div class="sc-info sc-info--secondary">
|
||||||
|
<div class="sc-label">Qtd. Itens</div>
|
||||||
|
<div class="sc-value" id="qtdItensSCProtheus_label">-</div>
|
||||||
|
</div>
|
||||||
|
<div class="sc-info sc-info--secondary">
|
||||||
|
<div class="sc-label">Data do Cadastro</div>
|
||||||
|
<div class="sc-value"><span id="dataCadastroSCProtheus_label">-</span> às <span id="horaCadastroSCProtheus_label">-</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="sc-info sc-info--secondary">
|
||||||
|
<div class="sc-label">Cotação</div>
|
||||||
|
<div class="sc-value" id="cotacaoSC_label">-</div>
|
||||||
|
</div>
|
||||||
|
<div class="sc-info sc-info--secondary">
|
||||||
|
<div class="sc-label">Pedido</div>
|
||||||
|
<div class="sc-value" id="pedidoSC_label">-</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="sc-timeline-wrap" id="scTimelineSection">
|
||||||
|
<h4 class="sc-timeline-title">Linha do tempo da SC</h4>
|
||||||
|
<ul class="sc-timeline" id="scTimeline"></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -430,6 +691,13 @@
|
|||||||
<td><input type="checkbox" name="selecionado" id="selecionado" value="S"></td>
|
<td><input type="checkbox" name="selecionado" id="selecionado" value="S"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<td colspan="4" class="sc-total-label">Total selecionado</td>
|
||||||
|
<td class="sc-total-value" id="valorTotalCotacaoLabel">R$ 0,00</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -46,15 +46,21 @@ function recalcTotal() {
|
|||||||
|
|
||||||
function setSelectedZoomItem(selectedItem) {
|
function setSelectedZoomItem(selectedItem) {
|
||||||
if (selectedItem.inputId === "estabelecimento") {
|
if (selectedItem.inputId === "estabelecimento") {
|
||||||
// joga o código da filial (cnpj, etc.)
|
// dsFiliais: guarda dados da filial e define gestor da próxima atividade
|
||||||
$("#filialdest").val(selectedItem.CNPJ); // supondo que o dataset dsSysCompany devolva o campo CNPJ
|
var codigoProtheus = String(selectedItem.PROTHEUS || selectedItem.protheus || "").trim();
|
||||||
$("#filialest").val(selectedItem.ESTADO); // supondo que o dataset dsSysCompany devolva o campo ESTADO
|
|
||||||
$("#filialprotheus").val(selectedItem.CODIGO); // supondo que o dataset dsSysCompany devolva o campo CODIGO
|
$("#filialdest").val(selectedItem.LOJA || "");
|
||||||
|
$("#filialest").val(selectedItem.UF || "");
|
||||||
|
$("#filialprotheus").val(codigoProtheus);
|
||||||
|
$("#centro_custo").val(selectedItem.RESPONSAVEL_LOJA || selectedItem.LOJA || "");
|
||||||
|
$("#codigocentroCusto").val(codigoProtheus);
|
||||||
|
|
||||||
|
var gestorLoja = (selectedItem.COLLEAGUE_ID || selectedItem.LOGIN_LOJA || "").trim();
|
||||||
|
$("#gestor_cc").val(gestorLoja);
|
||||||
|
|
||||||
|
if (!codigoProtheus) {
|
||||||
|
console.warn("Filial selecionada sem campo PROTHEUS no dsFiliais.");
|
||||||
}
|
}
|
||||||
if (selectedItem.inputId === "centro_custo") {
|
|
||||||
// joga o código da filial (cnpj, etc.)
|
|
||||||
$("#gestor_cc").val(selectedItem.idGestor); // supondo que o dataset Centro_custo devolva o campo GestorCentroCusto
|
|
||||||
$("#codigocentroCusto").val(selectedItem.codigoCentroCusto); // supondo que o dataset Centro_custo devolva o campo GestorCentroCusto
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -62,14 +68,18 @@ function setSelectedZoomItem(selectedItem) {
|
|||||||
|
|
||||||
function removedZoomItem(removedItem) {
|
function removedZoomItem(removedItem) {
|
||||||
if (removedItem.inputId === "estabelecimento") {
|
if (removedItem.inputId === "estabelecimento") {
|
||||||
// Quando remover a empresa, limpa os campos relacionados
|
// Quando remover a filial, limpa os campos relacionados
|
||||||
$("#filialDesc").val('');
|
$("#filialdest").val("");
|
||||||
$("#filialest").val('');
|
$("#filialest").val("");
|
||||||
|
$("#filialprotheus").val("");
|
||||||
|
$("#centro_custo").val("");
|
||||||
|
$("#codigocentroCusto").val("");
|
||||||
|
$("#gestor_cc").val("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ========= Config ========= */
|
/* ========= Config ========= */
|
||||||
const DATASET_PRODUTOS = "dsProd"; // dataset de produtos
|
const DATASET_PRODUTOS = "dsComprasProdutos"; // dataset de produtos
|
||||||
let todosProdutos = [];
|
let todosProdutos = [];
|
||||||
let paginaAtual = 1;
|
let paginaAtual = 1;
|
||||||
const itensPorPagina = 10;
|
const itensPorPagina = 10;
|
||||||
@ -120,7 +130,10 @@ function carregaListaProdutos(filtro) {
|
|||||||
// Só chama o dataset se ainda não carregou nada
|
// Só chama o dataset se ainda não carregou nada
|
||||||
if (todosProdutos.length === 0) {
|
if (todosProdutos.length === 0) {
|
||||||
let dataset = DatasetFactory.getDataset(DATASET_PRODUTOS, null, null, null);
|
let dataset = DatasetFactory.getDataset(DATASET_PRODUTOS, null, null, null);
|
||||||
todosProdutos = dataset && dataset.values ? dataset.values : [];
|
const values = dataset && dataset.values ? dataset.values : [];
|
||||||
|
todosProdutos = values
|
||||||
|
.map(normalizarProduto)
|
||||||
|
.filter(p => p.codigo && p.descricao);
|
||||||
console.log("Produtos carregados do dataset:", todosProdutos.length);
|
console.log("Produtos carregados do dataset:", todosProdutos.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,10 +184,10 @@ function renderizaProdutos(filtro) {
|
|||||||
</tr>`;
|
</tr>`;
|
||||||
} else {
|
} else {
|
||||||
produtosPagina.forEach(produto => {
|
produtosPagina.forEach(produto => {
|
||||||
const codigo = escapeHTML(produto['codigo']);
|
const codigo = escapeHTML(produto.codigo);
|
||||||
const descricao = escapeHTML(produto['descricao']);
|
const descricao = escapeHTML(produto.descricao);
|
||||||
const um = escapeHTML(produto['medida'] || '');
|
const um = escapeHTML(produto.medida || '');
|
||||||
const preco = produto['ultimo_preco'] || '0,00';
|
const preco = produto.ultimo_preco || '0,00';
|
||||||
|
|
||||||
html += `
|
html += `
|
||||||
<tr>
|
<tr>
|
||||||
@ -200,6 +213,15 @@ function renderizaProdutos(filtro) {
|
|||||||
renderizaPaginacao(produtosFiltrados.length);
|
renderizaPaginacao(produtosFiltrados.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalizarProduto(row) {
|
||||||
|
return {
|
||||||
|
codigo: String(row.B1_COD || row.codigo || "").trim(),
|
||||||
|
descricao: String(row.B1_DESC || row.descricao || "").trim(),
|
||||||
|
medida: String(row.B1_UM || row.medida || "").trim(),
|
||||||
|
ultimo_preco: String(row.B1_UPRC || row.ultimo_preco || "0,00").trim()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function renderizaPaginacao(totalItens) {
|
function renderizaPaginacao(totalItens) {
|
||||||
@ -375,29 +397,325 @@ $(function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function () {
|
function valorCampo(id) {
|
||||||
// Quando carregar a página, já pinta o status se tiver valor nos inputs
|
return String($("#" + id).val() || "").trim();
|
||||||
let status = $("#statusSCProtheus").val() || "";
|
}
|
||||||
let badgeClass = "badge bg-secondary";
|
|
||||||
|
|
||||||
if (status.toLowerCase().includes("sucesso")) badgeClass = "badge bg-success";
|
function setLabel(id, valor) {
|
||||||
if (status.toLowerCase().includes("erro")) badgeClass = "badge bg-danger";
|
var texto = String(valor || "").trim();
|
||||||
|
$("#" + id).text(texto || "-");
|
||||||
|
}
|
||||||
|
|
||||||
$("#statusSCProtheus_label")
|
function badgeClassByStatus(status) {
|
||||||
.text(status || "-")
|
var s = String(status || "").toLowerCase();
|
||||||
.removeClass()
|
if (!s) return "badge bg-secondary";
|
||||||
.addClass(badgeClass);
|
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";
|
||||||
|
return "badge bg-info";
|
||||||
|
}
|
||||||
|
|
||||||
|
function setBadge(selector, valor) {
|
||||||
|
var texto = String(valor || "").trim() || "-";
|
||||||
|
$(selector)
|
||||||
|
.text(texto)
|
||||||
|
.removeClass("bg-secondary bg-success bg-danger bg-warning bg-info")
|
||||||
|
.addClass(badgeClassByStatus(texto));
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizarStatusCadastro(statusCadastro, numeroSC) {
|
||||||
|
var numero = String(numeroSC || "").trim();
|
||||||
|
var status = String(statusCadastro || "").trim();
|
||||||
|
var s = status.toLowerCase();
|
||||||
|
|
||||||
|
if (!numero) return status;
|
||||||
|
if (!status) return "SC cadastrada com sucesso";
|
||||||
|
if (s.indexOf("sucesso") >= 0 || s.indexOf("cadastr") >= 0) return "SC cadastrada com sucesso";
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizarAndamento(andamento, cotacao, pedido) {
|
||||||
|
var atual = String(andamento || "").trim();
|
||||||
|
if (pedido) return "Pedido gerado";
|
||||||
|
if (cotacao && (!atual || atual.toLowerCase().indexOf("pedido") < 0)) return "Cotacao gerada";
|
||||||
|
return atual;
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizarDataProtheus(data) {
|
||||||
|
var d = String(data || "").trim();
|
||||||
|
if (/^\d{8}$/.test(d)) {
|
||||||
|
return d.substring(6, 8) + "/" + d.substring(4, 6) + "/" + d.substring(0, 4);
|
||||||
|
}
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
function limparNumeroDocumento(valor) {
|
||||||
|
var v = String(valor || "").trim();
|
||||||
|
if (!v || /^0+$/.test(v)) return "";
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
function comporDataHora(data, hora) {
|
||||||
|
var d = String(data || "").trim();
|
||||||
|
var h = String(hora || "").trim();
|
||||||
|
if (d && h && h !== "-") return d + " as " + h;
|
||||||
|
return d || h || "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function montarEventosTimelineSC(dados) {
|
||||||
|
var eventos = [];
|
||||||
|
var momentoSolicitacao = comporDataHora(dados.dataCadastro, dados.horaCadastro);
|
||||||
|
var momentoSC = dados.emissao || momentoSolicitacao;
|
||||||
|
|
||||||
|
eventos.push({
|
||||||
|
classe: (dados.numero || dados.solicitante || momentoSolicitacao) ? "done" : "pending",
|
||||||
|
titulo: "Solicitacao criada",
|
||||||
|
momento: momentoSolicitacao,
|
||||||
|
detalhe: dados.solicitante ? "Solicitante: " + dados.solicitante : ""
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (dados.numero) {
|
||||||
|
eventos.push({
|
||||||
|
classe: "done",
|
||||||
|
titulo: "SC " + dados.numero + " cadastrada",
|
||||||
|
momento: momentoSC,
|
||||||
|
detalhe: dados.statusCadastro ? "Status: " + dados.statusCadastro : ""
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
eventos.push({
|
||||||
|
classe: "pending",
|
||||||
|
titulo: "Aguardando geracao da SC",
|
||||||
|
momento: "",
|
||||||
|
detalhe: "A SC sera exibida assim que for criada no Protheus."
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dados.cotacao) {
|
||||||
|
eventos.push({
|
||||||
|
classe: "done",
|
||||||
|
titulo: "Cotacao " + dados.cotacao + " gerada",
|
||||||
|
momento: "",
|
||||||
|
detalhe: "Cotacao disponivel para analise."
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
eventos.push({
|
||||||
|
classe: "pending",
|
||||||
|
titulo: "Aguardando cotacao",
|
||||||
|
momento: "",
|
||||||
|
detalhe: "Ainda nao existe cotacao vinculada a SC."
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dados.pedido) {
|
||||||
|
eventos.push({
|
||||||
|
classe: "done",
|
||||||
|
titulo: "Pedido " + dados.pedido + " gerado",
|
||||||
|
momento: "",
|
||||||
|
detalhe: "Compra convertida em pedido."
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
eventos.push({
|
||||||
|
classe: "pending",
|
||||||
|
titulo: "Aguardando pedido",
|
||||||
|
momento: "",
|
||||||
|
detalhe: "O pedido sera criado apos a aprovacao final da cotacao."
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return eventos;
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderizarTimelineSC(dados) {
|
||||||
|
var eventos = montarEventosTimelineSC(dados);
|
||||||
|
var html = eventos.map(function (evento) {
|
||||||
|
var titulo = escapeHTML(evento.titulo);
|
||||||
|
var momento = escapeHTML(evento.momento || "");
|
||||||
|
var detalhe = escapeHTML(evento.detalhe || "");
|
||||||
|
var classe = evento.classe === "done" ? "done" : "pending";
|
||||||
|
|
||||||
|
return [
|
||||||
|
'<li class="sc-timeline-item ' + classe + '">',
|
||||||
|
' <div class="sc-timeline-title-row">',
|
||||||
|
' <span class="sc-timeline-event">' + titulo + '</span>',
|
||||||
|
momento ? (' <span class="sc-timeline-time">' + momento + '</span>') : "",
|
||||||
|
" </div>",
|
||||||
|
detalhe ? (' <div class="sc-timeline-detail">' + detalhe + "</div>") : "",
|
||||||
|
"</li>"
|
||||||
|
].join("");
|
||||||
|
}).join("");
|
||||||
|
|
||||||
|
$("#scTimeline").html(html);
|
||||||
|
}
|
||||||
|
|
||||||
|
function focarTimelineSC() {
|
||||||
|
var secao = $("#scTimelineSection");
|
||||||
|
if (!secao.length) return;
|
||||||
|
|
||||||
|
secao.addClass("is-focus");
|
||||||
|
setTimeout(function () {
|
||||||
|
secao.removeClass("is-focus");
|
||||||
|
}, 900);
|
||||||
|
|
||||||
|
try {
|
||||||
|
secao.get(0).scrollIntoView({ behavior: "smooth", block: "nearest" });
|
||||||
|
} catch (e) {
|
||||||
|
// fallback para navegadores sem smooth scroll
|
||||||
|
secao.get(0).scrollIntoView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function abrirTimelineSC() {
|
||||||
|
var secao = $("#scTimelineSection");
|
||||||
|
if (!secao.length) return;
|
||||||
|
secao.addClass("is-open");
|
||||||
|
$("#cardNumeroSCHint").text("Clique para ocultar a linha do tempo");
|
||||||
|
}
|
||||||
|
|
||||||
|
function fecharTimelineSC() {
|
||||||
|
var secao = $("#scTimelineSection");
|
||||||
|
if (!secao.length) return;
|
||||||
|
secao.removeClass("is-open is-focus");
|
||||||
|
$("#cardNumeroSCHint").text("Clique para ver a linha do tempo");
|
||||||
|
}
|
||||||
|
|
||||||
|
function alternarTimelineSC() {
|
||||||
|
var secao = $("#scTimelineSection");
|
||||||
|
if (!secao.length) return;
|
||||||
|
|
||||||
|
if (secao.hasClass("is-open")) {
|
||||||
|
fecharTimelineSC();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
abrirTimelineSC();
|
||||||
|
focarTimelineSC();
|
||||||
|
}
|
||||||
|
|
||||||
|
function montarStatusAndamento(scRow, cotacao, pedido) {
|
||||||
|
if (pedido) return "Pedido gerado";
|
||||||
|
if (cotacao) return "Cotacao gerada";
|
||||||
|
|
||||||
|
var statusApi = String(scRow.STATUS || "").trim();
|
||||||
|
if (statusApi) return statusApi;
|
||||||
|
|
||||||
|
var aprov = String(scRow.C1_APROV || "").trim().toUpperCase();
|
||||||
|
if (aprov === "B") return "Aguardando cotacao";
|
||||||
|
if (aprov === "L") return "Liberada";
|
||||||
|
if (aprov === "R") return "Reprovada";
|
||||||
|
if (aprov) return "Status Protheus: " + aprov;
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function preencherResumoSC() {
|
||||||
|
var numero = valorCampo("numeroSCProtheus");
|
||||||
|
var statusCadastro = valorCampo("statusSCProtheus");
|
||||||
|
var solicitante = valorCampo("solicitanteSCProtheus");
|
||||||
|
var emissao = normalizarDataProtheus(valorCampo("emissaoSCProtheus"));
|
||||||
|
var qtdItens = valorCampo("qtdItensSCProtheus");
|
||||||
|
var dataCadastro = normalizarDataProtheus(valorCampo("dataCadastroSCProtheus"));
|
||||||
|
var horaCadastro = valorCampo("horaCadastroSCProtheus");
|
||||||
|
var cotacao = limparNumeroDocumento(valorCampo("cotacaoSCProtheus"));
|
||||||
|
var pedido = limparNumeroDocumento(valorCampo("pedidoSCProtheus"));
|
||||||
|
var andamento = valorCampo("statusAtendimento");
|
||||||
|
var statusCadastroPadrao = normalizarStatusCadastro(statusCadastro, numero);
|
||||||
|
|
||||||
|
if (!andamento && numero) {
|
||||||
|
if (pedido) andamento = "Pedido gerado";
|
||||||
|
else if (cotacao) andamento = "Cotacao gerada";
|
||||||
|
else andamento = "Em andamento";
|
||||||
|
}
|
||||||
|
andamento = normalizarAndamento(andamento, cotacao, pedido);
|
||||||
|
|
||||||
|
setLabel("numeroSCProtheus_label", numero);
|
||||||
|
setLabel("solicitanteSCProtheus_label", solicitante);
|
||||||
|
setLabel("emissaoSCProtheus_label", emissao);
|
||||||
|
setLabel("qtdItensSCProtheus_label", qtdItens);
|
||||||
|
setLabel("dataCadastroSCProtheus_label", dataCadastro);
|
||||||
|
setLabel("horaCadastroSCProtheus_label", horaCadastro);
|
||||||
|
setLabel("cotacaoSC_label", cotacao);
|
||||||
|
setLabel("pedidoSC_label", pedido);
|
||||||
|
|
||||||
|
setBadge("#statusSCProtheus_label", statusCadastroPadrao || (numero ? "SC cadastrada com sucesso" : ""));
|
||||||
|
setBadge("#statusSC_label", andamento);
|
||||||
|
|
||||||
|
renderizarTimelineSC({
|
||||||
|
numero: numero,
|
||||||
|
statusCadastro: statusCadastroPadrao,
|
||||||
|
andamento: andamento,
|
||||||
|
solicitante: solicitante,
|
||||||
|
emissao: emissao,
|
||||||
|
dataCadastro: dataCadastro,
|
||||||
|
horaCadastro: horaCadastro,
|
||||||
|
cotacao: cotacao,
|
||||||
|
pedido: pedido
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function consultarAndamentoSC() {
|
||||||
|
var numero = valorCampo("numeroSCProtheus");
|
||||||
|
if (!numero || typeof DatasetFactory === "undefined" || typeof ConstraintType === "undefined") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var cNumero = DatasetFactory.createConstraint("numeroSCProtheus", numero, numero, ConstraintType.MUST);
|
||||||
|
var ds = DatasetFactory.getDataset("ds_consultaSC", null, [cNumero], null);
|
||||||
|
var row = (ds && ds.values && ds.values.length > 0) ? ds.values[0] : null;
|
||||||
|
|
||||||
|
if (!row) return;
|
||||||
|
if (String(row.sucesso || "").toLowerCase() !== "true") return;
|
||||||
|
|
||||||
|
var cotacao = limparNumeroDocumento(row.C1_COTACAO);
|
||||||
|
var pedido = limparNumeroDocumento(row.C1_PEDIDO);
|
||||||
|
|
||||||
|
if (cotacao) $("#cotacaoSCProtheus").val(cotacao);
|
||||||
|
if (pedido) $("#pedidoSCProtheus").val(pedido);
|
||||||
|
|
||||||
|
if (row.C1_SOLICIT) $("#solicitanteSCProtheus").val(String(row.C1_SOLICIT).trim());
|
||||||
|
if (row.C1_EMISSAO) $("#emissaoSCProtheus").val(normalizarDataProtheus(row.C1_EMISSAO));
|
||||||
|
|
||||||
|
var andamento = montarStatusAndamento(row, cotacao, pedido);
|
||||||
|
if (andamento) $("#statusAtendimento").val(andamento);
|
||||||
|
|
||||||
|
preencherResumoSC();
|
||||||
|
} catch (e) {
|
||||||
|
console.warn("Nao foi possivel consultar andamento da SC no ds_consultaSC:", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
preencherResumoSC();
|
||||||
|
consultarAndamentoSC();
|
||||||
|
|
||||||
|
$(document).on("click", "#cardNumeroSC", function () {
|
||||||
|
alternarTimelineSC();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function parseNumeroCotacao(valor) {
|
||||||
|
var texto = String(valor || "").trim();
|
||||||
|
if (!texto) return 0;
|
||||||
|
|
||||||
|
if (texto.indexOf(",") >= 0) {
|
||||||
|
texto = texto.replace(/\./g, "").replace(",", ".");
|
||||||
|
}
|
||||||
|
|
||||||
|
texto = texto.replace(/[^\d.-]/g, "");
|
||||||
|
return parseFloat(texto) || 0;
|
||||||
|
}
|
||||||
|
|
||||||
function recalcularTotalCotacao() {
|
function recalcularTotalCotacao() {
|
||||||
var soma = 0;
|
var soma = 0;
|
||||||
|
|
||||||
$("input[name^='selecionado___']").each(function() {
|
$("input[name^='selecionado___']").each(function() {
|
||||||
var idx = $(this).attr("id").split("___")[1];
|
var idCampo = String($(this).attr("id") || "");
|
||||||
|
if (idCampo.indexOf("___") < 0) return;
|
||||||
|
var idx = idCampo.split("___")[1];
|
||||||
|
|
||||||
// pega qtd e preço da linha
|
// pega qtd e preço da linha
|
||||||
var qtd = parseFloat($("#qtdc___" + idx).val() || "0");
|
var qtd = parseNumeroCotacao($("#qtdc___" + idx).val() || "0");
|
||||||
var preco = parseFloat($("#preco___" + idx).val() || "0");
|
var preco = parseNumeroCotacao($("#preco___" + idx).val() || "0");
|
||||||
|
|
||||||
// calcula total da linha
|
// calcula total da linha
|
||||||
var total = qtd * preco;
|
var total = qtd * preco;
|
||||||
@ -413,6 +731,7 @@ function recalcularTotalCotacao() {
|
|||||||
|
|
||||||
// Atualiza o hidden e dispara change pro Fluig gravar
|
// Atualiza o hidden e dispara change pro Fluig gravar
|
||||||
$("#valorTotalCotacao").val(soma.toFixed(2)).trigger("change");
|
$("#valorTotalCotacao").val(soma.toFixed(2)).trigger("change");
|
||||||
|
$("#valorTotalCotacaoLabel").text(floatToBRL(soma));
|
||||||
}
|
}
|
||||||
// dispara sempre que marcar/desmarcar
|
// dispara sempre que marcar/desmarcar
|
||||||
$(document).on("change", "input[name^='selecionado___']", function() {
|
$(document).on("change", "input[name^='selecionado___']", function() {
|
||||||
|
|||||||
@ -1,283 +1,55 @@
|
|||||||
function displayFields(form, customHTML) {
|
function displayFields(form, customHTML) {
|
||||||
|
var activity = parseInt(getValue("WKNumState"), 10);
|
||||||
var activity = getValue('WKNumState');
|
var userId = getValue("WKUser");
|
||||||
var userId = getValue('WKUser');
|
var hoje = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());
|
||||||
|
|
||||||
form.setShowDisabledFields(true);
|
form.setShowDisabledFields(true);
|
||||||
form.setHidePrintLink(true);
|
form.setHidePrintLink(true);
|
||||||
|
|
||||||
form.setValue("WKNumProces", getValue('WKNumProces'));
|
form.setValue("WKNumProces", getValue("WKNumProces"));
|
||||||
form.setValue("activity", activity);
|
form.setValue("activity", String(activity));
|
||||||
form.setValue("formMode", form.getFormMode());
|
form.setValue("formMode", form.getFormMode());
|
||||||
form.setValue("empresa", getValue("WKCompany"));
|
form.setValue("empresa", getValue("WKCompany"));
|
||||||
|
|
||||||
var c1 = DatasetFactory.createConstraint("colleagueId", userId, userId, ConstraintType.MUST);
|
var nomeUsuario = "";
|
||||||
var filter = new Array(c1);
|
var emailUsuario = "";
|
||||||
var fields = new Array("colleagueName");
|
|
||||||
var retorno = DatasetFactory.getDataset("colleague", fields, filter, null);
|
|
||||||
|
|
||||||
//requester
|
try {
|
||||||
if (activity == 0) {
|
var c1 = DatasetFactory.createConstraint("colleagueId", userId, userId, ConstraintType.MUST);
|
||||||
form.setValue("usuario_abertura", retorno.getValue(0, "colleagueName"));
|
var constraints = [c1];
|
||||||
form.setValue("requesterMail", retorno.getValue(0, "mail"));
|
var fields = ["colleagueName", "mail"];
|
||||||
form.setValue("requesterId", userId);
|
var dsColleague = DatasetFactory.getDataset("colleague", fields, constraints, null);
|
||||||
} else {
|
|
||||||
form.setValue("currentUserName", retorno.getValue(0, "colleagueName"));
|
if (dsColleague && dsColleague.rowsCount > 0) {
|
||||||
form.setValue("currentUsermail", retorno.getValue(0, "mail"));
|
nomeUsuario = dsColleague.getValue(0, "colleagueName") || "";
|
||||||
form.setValue("currentUserId", userId);
|
emailUsuario = dsColleague.getValue(0, "mail") || "";
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
log.error("[displayFields] Erro ao consultar colleague: " + e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ✅ Quando for atividade de aprovação do gestor
|
form.setValue("currentUserName", nomeUsuario);
|
||||||
if (activity == 121) {
|
form.setValue("currentUsermail", emailUsuario);
|
||||||
var hoje = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());
|
form.setValue("currentUserId", userId);
|
||||||
form.setValue("user_validacao_gestor", retorno.getValue(0, "colleagueName"));
|
|
||||||
|
if (activity === 0 || activity === 1) {
|
||||||
|
form.setValue("requesterId", userId);
|
||||||
|
|
||||||
|
if (emailUsuario) {
|
||||||
|
form.setValue("requesterMail", emailUsuario);
|
||||||
|
}
|
||||||
|
if (!form.getValue("usuarioSolicitante") && nomeUsuario) {
|
||||||
|
form.setValue("usuarioSolicitante", nomeUsuario);
|
||||||
|
}
|
||||||
|
if (!form.getValue("emailSolicitante") && emailUsuario) {
|
||||||
|
form.setValue("emailSolicitante", emailUsuario);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activity === 121) {
|
||||||
|
if (nomeUsuario) {
|
||||||
|
form.setValue("user_validacao_gestor", nomeUsuario);
|
||||||
|
}
|
||||||
form.setValue("data_validacao_gestor", hoje);
|
form.setValue("data_validacao_gestor", hoje);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activity == 133) {
|
|
||||||
var hoje = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());
|
|
||||||
form.setValue("gestor_validacao_aprova", retorno.getValue(0, "colleagueName"));
|
|
||||||
form.setValue("data_validacao_aprova_gestor", hoje);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (activity == 137) {
|
|
||||||
var hoje = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());
|
|
||||||
form.setValue("user_validacao_aprova", retorno.getValue(0, "colleagueName"));
|
|
||||||
form.setValue("data_validacao_aprova", hoje);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (activity == 147) {
|
|
||||||
var hoje = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());
|
|
||||||
form.setValue("gerf_validacao_aprova", retorno.getValue(0, "colleagueName"));
|
|
||||||
form.setValue("data_validacao_aprova_gerf", hoje);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (activity == 18) {
|
|
||||||
var hoje = new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date());
|
|
||||||
form.setValue("userValidacaoItens", retorno.getValue(0, "colleagueName"));
|
|
||||||
form.setValue("dataValidacaoItens", hoje);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ✅ Injetar dados da SC do Protheus (se já tiverem sido preenchidos no servicetask)
|
|
||||||
var camposSC = [
|
|
||||||
"numeroSCProtheus",
|
|
||||||
"statusSCProtheus",
|
|
||||||
"solicitanteSCProtheus",
|
|
||||||
"emissaoSCProtheus",
|
|
||||||
"qtdItensSCProtheus",
|
|
||||||
"dataCadastroSCProtheus",
|
|
||||||
"horaCadastroSCProtheus"
|
|
||||||
];
|
|
||||||
|
|
||||||
camposSC.forEach(function(campo) {
|
|
||||||
var valor = form.getValue(campo);
|
|
||||||
if (valor) {
|
|
||||||
customHTML.append("<script>$('#" + campo + "_label').text('" + valor + "');</script>");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// cor no status
|
|
||||||
var status = form.getValue("statusSCProtheus");
|
|
||||||
if (status) {
|
|
||||||
var badgeClass = "badge bg-secondary";
|
|
||||||
if (status.toLowerCase().indexOf("sucesso") >= 0) badgeClass = "badge bg-success";
|
|
||||||
if (status.toLowerCase().indexOf("erro") >= 0) badgeClass = "badge bg-danger";
|
|
||||||
|
|
||||||
customHTML.append("<script>$('#statusSCProtheus_label').removeClass().addClass('" + badgeClass + "').text('" + status + "');</script>");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Consultar informações adicionais da SC no Protheus
|
|
||||||
var numSC = form.getValue("numeroSCProtheus");
|
|
||||||
if (numSC) {
|
|
||||||
try {
|
|
||||||
var c1 = DatasetFactory.createConstraint("numeroSCProtheus", numSC, numSC, ConstraintType.MUST);
|
|
||||||
var ds = DatasetFactory.getDataset("ds_consultaSC", null, [c1], null);
|
|
||||||
|
|
||||||
if (ds && ds.rowsCount > 0) {
|
|
||||||
var status = ds.getValue(0, "STATUS") || "";
|
|
||||||
var cotacao = ds.getValue(0, "C1_COTACAO") || "";
|
|
||||||
var pedido = ds.getValue(0, "C1_PEDIDO") || "";
|
|
||||||
|
|
||||||
// grava nos hidden inputs
|
|
||||||
form.setValue("statusAtendimento", status);
|
|
||||||
form.setValue("cotacaoSCProtheus", cotacao);
|
|
||||||
form.setValue("pedidoSCProtheus", pedido);
|
|
||||||
|
|
||||||
// mostra nos cards (HTML)
|
|
||||||
customHTML.append("<script>$('#statusSC_label').text('" + status + "');</script>");
|
|
||||||
customHTML.append("<script>$('#cotacaoSC_label').text('" + cotacao + "');</script>");
|
|
||||||
customHTML.append("<script>$('#pedidoSC_label').text('" + pedido + "');</script>");
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
log.error("❌ Erro ao consultar dataset ds_consultaSC: " + e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
var msgs = [];
|
|
||||||
|
|
||||||
var numeroSC = form.getValue("numeroSCProtheus");
|
|
||||||
var cotacaoSC = form.getValue("cotacaoSCProtheus");
|
|
||||||
var pedidoSC = form.getValue("pedidoSCProtheus");
|
|
||||||
|
|
||||||
if (numeroSC) msgs.push("📌 Gerou SC Protheus nº " + numeroSC);
|
|
||||||
if (cotacaoSC) msgs.push("📌 SC originou Cotação nº " + cotacaoSC);
|
|
||||||
if (pedidoSC) msgs.push("📌 Cotação finalizou → Pedido nº " + pedidoSC);
|
|
||||||
|
|
||||||
if (msgs.length === 0) {
|
|
||||||
msgs.push("ℹ️ Nenhum dado de integração Protheus encontrado no formulário");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Monta conteúdo HTML do histórico
|
|
||||||
var htmlHistorico = "<ul class='hist-list'>";
|
|
||||||
for (var i = 0; i < msgs.length; i++) {
|
|
||||||
htmlHistorico += "<li class='hist-item'>" + msgs[i] + "</li>";
|
|
||||||
}
|
|
||||||
htmlHistorico += "</ul>";
|
|
||||||
|
|
||||||
// Script para abrir modal ao clicar no botão
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("$('#btnHistorico').off('click').on('click', function(){");
|
|
||||||
customHTML.append(" var myModal = FLUIGC.modal({");
|
|
||||||
customHTML.append(" title: 'Histórico do Processo',");
|
|
||||||
customHTML.append(" content: `" + htmlHistorico + "`,");
|
|
||||||
customHTML.append(" id: 'modalHistorico',");
|
|
||||||
customHTML.append(" size: 'large'");
|
|
||||||
customHTML.append(" });");
|
|
||||||
customHTML.append("});");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("[displayFields] Erro ao montar histórico: " + e);
|
|
||||||
}
|
|
||||||
|
|
||||||
var numCot = form.getValue("cotacaoSCProtheus");
|
|
||||||
var numSC = form.getValue("numeroSCProtheus"); // pega a SC atual
|
|
||||||
|
|
||||||
function formatCurrency(v) {
|
|
||||||
if (!v || isNaN(v)) return "R$ 0,00";
|
|
||||||
var num = parseFloat(v).toFixed(2);
|
|
||||||
return "R$ " + num.replace(".", ",").replace(/\B(?=(\d{3})+(?!\d))/g, ".");
|
|
||||||
}
|
|
||||||
|
|
||||||
function formatDate(v) {
|
|
||||||
if (!v || v.length !== 8) return v || "";
|
|
||||||
var y = v.substring(0,4);
|
|
||||||
var m = v.substring(4,6);
|
|
||||||
var d = v.substring(6,8);
|
|
||||||
return d + "/" + m + "/" + y;
|
|
||||||
}
|
|
||||||
|
|
||||||
function formatPrazo(v) {
|
|
||||||
if (!v) return "";
|
|
||||||
return v + " dias úteis";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!numCot) {
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("$('#cotacaoContainer').html('<p>⚠️ Cotação não informada no formulário.</p>');");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var c = DatasetFactory.createConstraint("numCotacao", numCot, numCot, ConstraintType.MUST);
|
|
||||||
var ds = DatasetFactory.getDataset("dsComprasCotacao", null, [c], null);
|
|
||||||
var precoFormatado = formatCurrency(preco);
|
|
||||||
var totalFormatado = formatCurrency(total);
|
|
||||||
|
|
||||||
if (ds && ds.rowsCount > 0) {
|
|
||||||
for (var i = 0; i < ds.rowsCount; i++) {
|
|
||||||
var item = ds.getValue(i, "C8_ITEM");
|
|
||||||
var desc = ds.getValue(i, "B1_DESC");
|
|
||||||
var qtd = ds.getValue(i, "C8_QUANT");
|
|
||||||
var preco = ds.getValue(i, "C8_PRECO");
|
|
||||||
var total = ds.getValue(i, "C8_TOTAL");
|
|
||||||
|
|
||||||
// adiciona linha na tabela pai-filho
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("var idx = wdkAddChild('tbCotacao');");
|
|
||||||
customHTML.append("$('#item___'+idx).val('" + item + "');");
|
|
||||||
customHTML.append("$('#produto___'+idx).val('" + desc + "');");
|
|
||||||
customHTML.append("$('#qtdc___'+idx).val('" + qtd + "');");
|
|
||||||
customHTML.append("$('#preco___' + idx).val('" + precoFormatado + "');");
|
|
||||||
customHTML.append("$('#total___' + idx).val('" + totalFormatado + "');");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
customHTML.append("<script>$('#tbCotacao tbody').html('<tr><td colspan=6>⏳ Nenhum item encontrado.</td></tr>');</script>");
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
var numPedido = form.getValue("pedidoSCProtheus"); // hidden no formulário
|
|
||||||
if (!numPedido) {
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("$('#espelhoPedido').html('<span class=\"badge bg-warning\">⏳ O pedido ainda não foi criado</span>');");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var c = DatasetFactory.createConstraint("numeroPed", numPedido, numPedido, ConstraintType.MUST);
|
|
||||||
var ds = DatasetFactory.getDataset("dsComprasGateway", null, [c], null);
|
|
||||||
|
|
||||||
if (!ds || ds.rowsCount === 0) {
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("$('#espelhoPedido').html('<span class=\"badge bg-warning\">⏳ O pedido ainda não foi criado</span>');");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var html = "";
|
|
||||||
for (var i = 0; i < ds.rowsCount; i++) {
|
|
||||||
var rowNum = ds.getValue(i, "C7_NUM");
|
|
||||||
var desc = ds.getValue(i, "B1_DESC");
|
|
||||||
var qtd = ds.getValue(i, "C7_QUANT");
|
|
||||||
var valor = ds.getValue(i, "C7_TOTAL");
|
|
||||||
var un = ds.getValue(i, "B1_UM");
|
|
||||||
var pr = ds.getValue(i, "C7_DATPRF");
|
|
||||||
|
|
||||||
html += "<div class='pedido-card'>"
|
|
||||||
+ " <div class='pedido-header'>Pedido nº " + (rowNum || "-") + "</div>"
|
|
||||||
+ " <div class='pedido-grid'>"
|
|
||||||
+ " <div class='pedido-box'><b>Descrição</b><br>" + (desc || "-") + "</div>"
|
|
||||||
+ " <div class='pedido-box'><b>Quantidade</b><br>" + parseInt(qtd || 0) + " " + (un || "") + "</div>"
|
|
||||||
+ " <div class='pedido-box'><b>Valor</b><br>" + formatCurrency(valor) + "</div>"
|
|
||||||
+ " <div class='pedido-box'><b>Data de Entrega</b><br>" + formatDate(pr) + "</div>"
|
|
||||||
+ " </div>"
|
|
||||||
+ "</div>";
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("$('#espelhoPedido').html(" + JSON.stringify(html) + ");");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
var msg = "❌ Erro displayFields Pedido: " + (e && e.message ? e.message : e);
|
|
||||||
log.error(msg);
|
|
||||||
|
|
||||||
customHTML.append("<script>");
|
|
||||||
customHTML.append("console.error(" + JSON.stringify(msg) + ");"); // aparece no console do navegador
|
|
||||||
customHTML.append("$('#espelhoPedido').html('<span class=\"badge bg-danger\">" + msg + "</span>');");
|
|
||||||
customHTML.append("</script>");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Se estou na atividade do Gestor do CC (ex: 133)
|
|
||||||
if (activity == 133) {
|
|
||||||
// Copia a justificativa do solicitante para o campo de exibição
|
|
||||||
form.setValue("observacoesdosolicitante", form.getValue("observacoes"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Se estou na atividade do GERF (ex: 147)
|
|
||||||
if (activity == 147) {
|
|
||||||
form.setValue("justi_decisao__soli", form.getValue("observacoes")); // solicitante
|
|
||||||
form.setValue("justi_decisao_gc", form.getValue("justi_decisao_aprova_gestor")); // gestor
|
|
||||||
}
|
|
||||||
|
|
||||||
// Se estou na atividade do CEO (ex: 158)
|
|
||||||
if (activity == 158) {
|
|
||||||
form.setValue("justi_decisao_solic", form.getValue("observacoes")); // solicitante
|
|
||||||
form.setValue("justi_decisaogc", form.getValue("justi_decisao_aprova_gestor")); // gestor
|
|
||||||
form.setValue("justi_decisao_gerf", form.getValue("justi_decisao_aprova_gerente")); // gerente financeiro
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -2,6 +2,12 @@ function validateForm(form){
|
|||||||
var msg = "";
|
var msg = "";
|
||||||
var activity = getValue("WKNumState");
|
var activity = getValue("WKNumState");
|
||||||
|
|
||||||
|
if (activity == 0 || activity == 1) {
|
||||||
|
if (form.getValue("gestor_cc") == "") {
|
||||||
|
msg += "Não foi possível identificar o gestor da loja selecionada. Selecione a filial novamente.\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Só valida "Justificativa do Gestor" quando estiver na atividade do gestor (ex.: 5)
|
// Só valida "Justificativa do Gestor" quando estiver na atividade do gestor (ex.: 5)
|
||||||
if (activity == 121) {
|
if (activity == 121) {
|
||||||
if (form.getValue("justi_decisao_gestor") == "") {
|
if (form.getValue("justi_decisao_gestor") == "") {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<java version="1.8.0_461" class="java.beans.XMLDecoder">
|
<java version="1.8.0_202" class="java.beans.XMLDecoder">
|
||||||
<object class="java.util.HashMap">
|
<object class="java.util.HashMap">
|
||||||
<void method="put">
|
|
||||||
<string>camposFormulario, documentoId = 2297</string>
|
|
||||||
<array class="java.lang.String" length="0"/>
|
|
||||||
</void>
|
|
||||||
<void method="put">
|
<void method="put">
|
||||||
<string>volume</string>
|
<string>volume</string>
|
||||||
<array class="java.lang.String" length="1">
|
<array class="java.lang.String" length="1">
|
||||||
@ -13,81 +9,6 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void method="put">
|
|
||||||
<string>mecanismoGrupo</string>
|
|
||||||
<object class="java.util.ArrayList">
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Aprovadores Compras Nvl 3</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>AprovadoresComprasNvl3</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Compras Indiretos</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>ComprasIndiretos</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Obras e manutenção</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>Manutencao</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Motoristas</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>Motoristas</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Recrutamento</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>Recrutamento</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Requisitantes de Vaga</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>Requisitantesdevaga</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
|
|
||||||
<void property="groupDescription">
|
|
||||||
<string>Tecnologia e Comunicação</string>
|
|
||||||
</void>
|
|
||||||
<void property="groupId">
|
|
||||||
<string>TIC</string>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="put">
|
<void method="put">
|
||||||
<string>expediente</string>
|
<string>expediente</string>
|
||||||
<array class="java.lang.String" length="4">
|
<array class="java.lang.String" length="4">
|
||||||
@ -107,7 +28,7 @@
|
|||||||
</void>
|
</void>
|
||||||
<void method="put">
|
<void method="put">
|
||||||
<string>mecanismo</string>
|
<string>mecanismo</string>
|
||||||
<array class="[Ljava.lang.Object;" length="10">
|
<array class="[Ljava.lang.Object;" length="12">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
@ -129,6 +50,26 @@
|
|||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="2">
|
<void index="2">
|
||||||
|
<array class="java.lang.Object" length="2">
|
||||||
|
<void index="0">
|
||||||
|
<string>dpf_di_emp_filial_filtro</string>
|
||||||
|
</void>
|
||||||
|
<void index="1">
|
||||||
|
<string>dpf_di_emp_filial_filtro</string>
|
||||||
|
</void>
|
||||||
|
</array>
|
||||||
|
</void>
|
||||||
|
<void index="3">
|
||||||
|
<array class="java.lang.Object" length="2">
|
||||||
|
<void index="0">
|
||||||
|
<string>dpf_di_inicio_diadmissao</string>
|
||||||
|
</void>
|
||||||
|
<void index="1">
|
||||||
|
<string>dpf_di_inicio_diadmissao</string>
|
||||||
|
</void>
|
||||||
|
</array>
|
||||||
|
</void>
|
||||||
|
<void index="4">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição por Executor de Atividade</string>
|
<string>Atribuição por Executor de Atividade</string>
|
||||||
@ -138,7 +79,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="3">
|
<void index="5">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição por Grupo</string>
|
<string>Atribuição por Grupo</string>
|
||||||
@ -148,7 +89,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="4">
|
<void index="6">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição por Grupos do Colaborador</string>
|
<string>Atribuição por Grupos do Colaborador</string>
|
||||||
@ -158,7 +99,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="5">
|
<void index="7">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>mecCustomAprov</string>
|
<string>mecCustomAprov</string>
|
||||||
@ -168,7 +109,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="6">
|
<void index="8">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição por Papel</string>
|
<string>Atribuição por Papel</string>
|
||||||
@ -178,7 +119,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="7">
|
<void index="9">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição para um Grupo</string>
|
<string>Atribuição para um Grupo</string>
|
||||||
@ -188,7 +129,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="8">
|
<void index="10">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição para um Papel</string>
|
<string>Atribuição para um Papel</string>
|
||||||
@ -198,7 +139,7 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void index="9">
|
<void index="11">
|
||||||
<array class="java.lang.Object" length="2">
|
<array class="java.lang.Object" length="2">
|
||||||
<void index="0">
|
<void index="0">
|
||||||
<string>Atribuição por Usuário</string>
|
<string>Atribuição por Usuário</string>
|
||||||
@ -210,482 +151,5 @@
|
|||||||
</void>
|
</void>
|
||||||
</array>
|
</array>
|
||||||
</void>
|
</void>
|
||||||
<void method="put">
|
|
||||||
<string>forms</string>
|
|
||||||
<object class="java.util.LinkedList">
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>FLUIGADHOC</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>FLUIGADHOC</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>3</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>FLUIGADHOCPROCESS</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>FLUIGADHOCPROCESS</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>4</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>totvsflow_dataset_tipo_ocorrencia</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>totvsflow_dataset_tipo_ocorrencia</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>14</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>totvsflow_abertura_chamado</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>totvsflow_abertura_chamado</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>15</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>DSFormulariodeAberturadechamado</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Formulário de Abertura de chamado</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>20</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>Abertura_de_chamados</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Solicitação de abertura de chamados</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>21</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>DSvistoriadeServico</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>vistoriadeServico</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>24</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>DSFormulariodeReservadesala</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Formulário de Reserva de sala</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>34</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>totvsflow_dataset_centrocusto</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>totvsflow_dataset_centrocusto</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>103</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>totvsflow_dataset_cadastro_item</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>totvsflow_dataset_cadastro_item</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>104</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>totvsflow_dataset_estabelecimento</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>totvsflow_dataset_estabelecimento</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>105</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>totvsflow_solicitacao_compras</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>totvsflow_solicitacao_compras</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>165</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>aberturadechamado_manutencao</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>aberturadechamado_manutencao</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>400</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>Solicitacao_transferencia</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Solicitacao_transferencia</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>590</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>recrutamento</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>recrutamento</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>823</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>kit_aniversariantes</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Aniversariantes</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>7690</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>kit_cardapio</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Cardápio do Dia</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>7695</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>kit_convenios</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Convênios</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>7703</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>kit_news</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>Notícias</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>7709</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="add">
|
|
||||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
|
||||||
<void property="datasetName">
|
|
||||||
<string>compras_digital</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentDescription">
|
|
||||||
<string>compras_digital</string>
|
|
||||||
</void>
|
|
||||||
<void property="documentId">
|
|
||||||
<int>9305</int>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
</object>
|
|
||||||
</void>
|
|
||||||
<void method="put">
|
|
||||||
<string>camposFormulario, documentoId = 9305</string>
|
|
||||||
<array class="java.lang.String" length="69">
|
|
||||||
<void index="0">
|
|
||||||
<string>activity</string>
|
|
||||||
</void>
|
|
||||||
<void index="1">
|
|
||||||
<string>centro_custo</string>
|
|
||||||
</void>
|
|
||||||
<void index="2">
|
|
||||||
<string>ceo_validacao_aprova</string>
|
|
||||||
</void>
|
|
||||||
<void index="3">
|
|
||||||
<string>codigocentroCusto</string>
|
|
||||||
</void>
|
|
||||||
<void index="4">
|
|
||||||
<string>Codproduto</string>
|
|
||||||
</void>
|
|
||||||
<void index="5">
|
|
||||||
<string>cotacaoSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="6">
|
|
||||||
<string>currentUserId</string>
|
|
||||||
</void>
|
|
||||||
<void index="7">
|
|
||||||
<string>currentUsermail</string>
|
|
||||||
</void>
|
|
||||||
<void index="8">
|
|
||||||
<string>currentUserName</string>
|
|
||||||
</void>
|
|
||||||
<void index="9">
|
|
||||||
<string>dataCadastroSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="10">
|
|
||||||
<string>dataNec</string>
|
|
||||||
</void>
|
|
||||||
<void index="11">
|
|
||||||
<string>dataValidacaoItens</string>
|
|
||||||
</void>
|
|
||||||
<void index="12">
|
|
||||||
<string>data_validacao_aprova</string>
|
|
||||||
</void>
|
|
||||||
<void index="13">
|
|
||||||
<string>data_validacao_aprova_ceo</string>
|
|
||||||
</void>
|
|
||||||
<void index="14">
|
|
||||||
<string>data_validacao_aprova_gerf</string>
|
|
||||||
</void>
|
|
||||||
<void index="15">
|
|
||||||
<string>data_validacao_aprova_gestor</string>
|
|
||||||
</void>
|
|
||||||
<void index="16">
|
|
||||||
<string>data_validacao_gestor</string>
|
|
||||||
</void>
|
|
||||||
<void index="17">
|
|
||||||
<string>descProduto</string>
|
|
||||||
</void>
|
|
||||||
<void index="18">
|
|
||||||
<string>emailSolicitante</string>
|
|
||||||
</void>
|
|
||||||
<void index="19">
|
|
||||||
<string>emissaoSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="20">
|
|
||||||
<string>empresa</string>
|
|
||||||
</void>
|
|
||||||
<void index="21">
|
|
||||||
<string>estabelecimento</string>
|
|
||||||
</void>
|
|
||||||
<void index="22">
|
|
||||||
<string>fdComprovante</string>
|
|
||||||
</void>
|
|
||||||
<void index="23">
|
|
||||||
<string>filialdest</string>
|
|
||||||
</void>
|
|
||||||
<void index="24">
|
|
||||||
<string>filialest</string>
|
|
||||||
</void>
|
|
||||||
<void index="25">
|
|
||||||
<string>filialprotheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="26">
|
|
||||||
<string>fnComprovante</string>
|
|
||||||
</void>
|
|
||||||
<void index="27">
|
|
||||||
<string>formMode</string>
|
|
||||||
</void>
|
|
||||||
<void index="28">
|
|
||||||
<string>gerf_validacao_aprova</string>
|
|
||||||
</void>
|
|
||||||
<void index="29">
|
|
||||||
<string>gestor_cc</string>
|
|
||||||
</void>
|
|
||||||
<void index="30">
|
|
||||||
<string>gestor_validacao_aprova</string>
|
|
||||||
</void>
|
|
||||||
<void index="31">
|
|
||||||
<string>horaCadastroSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="32">
|
|
||||||
<string>item</string>
|
|
||||||
</void>
|
|
||||||
<void index="33">
|
|
||||||
<string>justificativaDecisaoItens</string>
|
|
||||||
</void>
|
|
||||||
<void index="34">
|
|
||||||
<string>justificativaValidaProblema</string>
|
|
||||||
</void>
|
|
||||||
<void index="35">
|
|
||||||
<string>justi_decisao_aprova</string>
|
|
||||||
</void>
|
|
||||||
<void index="36">
|
|
||||||
<string>justi_decisao_aprova_ceo</string>
|
|
||||||
</void>
|
|
||||||
<void index="37">
|
|
||||||
<string>justi_decisao_aprova_gerente</string>
|
|
||||||
</void>
|
|
||||||
<void index="38">
|
|
||||||
<string>justi_decisao_aprova_gestor</string>
|
|
||||||
</void>
|
|
||||||
<void index="39">
|
|
||||||
<string>justi_decisao_gestor</string>
|
|
||||||
</void>
|
|
||||||
<void index="40">
|
|
||||||
<string>moreInfo</string>
|
|
||||||
</void>
|
|
||||||
<void index="41">
|
|
||||||
<string>numeroSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="42">
|
|
||||||
<string>observacoes</string>
|
|
||||||
</void>
|
|
||||||
<void index="43">
|
|
||||||
<string>pedidoSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="44">
|
|
||||||
<string>preco</string>
|
|
||||||
</void>
|
|
||||||
<void index="45">
|
|
||||||
<string>produto</string>
|
|
||||||
</void>
|
|
||||||
<void index="46">
|
|
||||||
<string>produtoCod</string>
|
|
||||||
</void>
|
|
||||||
<void index="47">
|
|
||||||
<string>produtoDesc</string>
|
|
||||||
</void>
|
|
||||||
<void index="48">
|
|
||||||
<string>produtoLink</string>
|
|
||||||
</void>
|
|
||||||
<void index="49">
|
|
||||||
<string>qtd</string>
|
|
||||||
</void>
|
|
||||||
<void index="50">
|
|
||||||
<string>qtdc</string>
|
|
||||||
</void>
|
|
||||||
<void index="51">
|
|
||||||
<string>qtdItensSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="52">
|
|
||||||
<string>quantidade</string>
|
|
||||||
</void>
|
|
||||||
<void index="53">
|
|
||||||
<string>requesterId</string>
|
|
||||||
</void>
|
|
||||||
<void index="54">
|
|
||||||
<string>requesterMail</string>
|
|
||||||
</void>
|
|
||||||
<void index="55">
|
|
||||||
<string>selecionado</string>
|
|
||||||
</void>
|
|
||||||
<void index="56">
|
|
||||||
<string>solicitanteSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="57">
|
|
||||||
<string>statusAtendimento</string>
|
|
||||||
</void>
|
|
||||||
<void index="58">
|
|
||||||
<string>statusSCProtheus</string>
|
|
||||||
</void>
|
|
||||||
<void index="59">
|
|
||||||
<string>tipoSolicitacao</string>
|
|
||||||
</void>
|
|
||||||
<void index="60">
|
|
||||||
<string>total</string>
|
|
||||||
</void>
|
|
||||||
<void index="61">
|
|
||||||
<string>urgencia</string>
|
|
||||||
</void>
|
|
||||||
<void index="62">
|
|
||||||
<string>userValidacaoItens</string>
|
|
||||||
</void>
|
|
||||||
<void index="63">
|
|
||||||
<string>user_validacao_aprova</string>
|
|
||||||
</void>
|
|
||||||
<void index="64">
|
|
||||||
<string>user_validacao_gestor</string>
|
|
||||||
</void>
|
|
||||||
<void index="65">
|
|
||||||
<string>usuarioSolicitante</string>
|
|
||||||
</void>
|
|
||||||
<void index="66">
|
|
||||||
<string>validacaoItens</string>
|
|
||||||
</void>
|
|
||||||
<void index="67">
|
|
||||||
<string>valorTotalCotacao</string>
|
|
||||||
</void>
|
|
||||||
<void index="68">
|
|
||||||
<string>WKNumProces</string>
|
|
||||||
</void>
|
|
||||||
</array>
|
|
||||||
</void>
|
|
||||||
</object>
|
</object>
|
||||||
</java>
|
</java>
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
<processDefinitionVersionPK>
|
<processDefinitionVersionPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compra - Ginseng</processId>
|
<processId>Solicitação de compra - Ginseng</processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
</processDefinitionVersionPK>
|
</processDefinitionVersionPK>
|
||||||
<versionDescription></versionDescription>
|
<versionDescription></versionDescription>
|
||||||
<formId>9305</formId>
|
<formId>9305</formId>
|
||||||
@ -1009,7 +1009,7 @@
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>1</expressionOrder>
|
<expressionOrder>1</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>46</sequence>
|
<sequence>46</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>hAPI.getCardValue("validacaoItens") == "entregue"</condition>
|
<condition>hAPI.getCardValue("validacaoItens") == "entregue"</condition>
|
||||||
@ -1021,7 +1021,7 @@
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>2</expressionOrder>
|
<expressionOrder>2</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>46</sequence>
|
<sequence>46</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>true</condition>
|
<condition>true</condition>
|
||||||
@ -1033,7 +1033,7 @@
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>1</expressionOrder>
|
<expressionOrder>1</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>128</sequence>
|
<sequence>128</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 100000.00</condition>
|
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 100000.00</condition>
|
||||||
@ -1047,7 +1047,7 @@
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>1</expressionOrder>
|
<expressionOrder>1</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>150</sequence>
|
<sequence>150</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) >= 5001.00 && 
|
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) >= 5001.00 && 
|
||||||
@ -1063,7 +1063,7 @@ parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>2</expressionOrder>
|
<expressionOrder>2</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>150</sequence>
|
<sequence>150</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>true</condition>
|
<condition>true</condition>
|
||||||
@ -1077,7 +1077,7 @@ parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>1</expressionOrder>
|
<expressionOrder>1</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>154</sequence>
|
<sequence>154</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) > 50000.00</condition>
|
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) > 50000.00</condition>
|
||||||
@ -1091,7 +1091,7 @@ parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00
|
|||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<expressionOrder>2</expressionOrder>
|
<expressionOrder>2</expressionOrder>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<sequence>154</sequence>
|
<sequence>154</sequence>
|
||||||
</conditionProcessStatePK>
|
</conditionProcessStatePK>
|
||||||
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) < 50000.00</condition>
|
<condition>parseFloat(hAPI.getCardValue("valorTotalCotacao")) < 50000.00</condition>
|
||||||
@ -1536,102 +1536,110 @@ parseFloat(hAPI.getCardValue("valorTotalCotacao")) <= 50000.00
|
|||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
</workflowProcessEventPK>
|
</workflowProcessEventPK>
|
||||||
<eventDescription>function toProtheusDate(d) {
|
<eventDescription>function toProtheusDate(d) {
|
||||||
if (!d) return "";
|
if (!d) return "";
|
||||||
if (d.indexOf("/") > -1) {
|
if (d.indexOf("/") > -1) {
|
||||||
var parts = d.split("/");
|
var parts = d.split("/");
|
||||||
return parts[2] + parts[1] + parts[0]; // dd/MM/yyyy -> yyyyMMdd
|
return parts[2] + parts[1] + parts[0]; // dd/MM/yyyy -> yyyyMMdd
|
||||||
}
|
}
|
||||||
if (d.indexOf("-") > -1) {
|
if (d.indexOf("-") > -1) {
|
||||||
return d.replace(/-/g, ""); // yyyy-MM-dd -> yyyyMMdd
|
return d.replace(/-/g, ""); // yyyy-MM-dd -> yyyyMMdd
|
||||||
}
|
}
|
||||||
return d; // já está no formato certo
|
return d; // já está no formato certo
|
||||||
}
|
}
|
||||||
|

|
||||||
function hojeProtheus() {
|
function hojeProtheus() {
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
var yyyy = d.getFullYear();
|
var yyyy = d.getFullYear();
|
||||||
var mm = d.getMonth() + 1;
|
var mm = d.getMonth() + 1;
|
||||||
var dd = d.getDate();
|
var dd = d.getDate();
|
||||||
if (mm < 10) mm = "0" + mm;
|
if (mm < 10) mm = "0" + mm;
|
||||||
if (dd < 10) dd = "0" + dd;
|
if (dd < 10) dd = "0" + dd;
|
||||||
return "" + yyyy + mm + dd; // yyyyMMdd
|
return "" + yyyy + mm + dd; // yyyyMMdd
|
||||||
}
|
}
|
||||||
|

|
||||||
function servicetask82(attempt, message) {
|
function servicetask82(attempt, message) {
|
||||||
log.info("🚀 Iniciando servicetask82");
|
log.info("🚀 Iniciando servicetask82");
|
||||||
|

|
||||||
var qtdItens = hAPI.getChildrenIndexes("tbItens");
|
var qtdItens = hAPI.getChildrenIndexes("tbItens");
|
||||||
log.info("📦 Total de itens na tabela: " + qtdItens.length);
|
log.info("📦 Total de itens na tabela: " + qtdItens.length);
|
||||||
|

|
||||||
var itens = [];
|
var itens = [];
|
||||||
for (var i = 0; i < qtdItens.length; i++) {
|
for (var i = 0; i < qtdItens.length; i++) {
|
||||||
var index = qtdItens[i];
|
var index = qtdItens[i];
|
||||||
var item = {
|
var item = {
|
||||||
"C1_PRODUTO": String(hAPI.getCardValue("Codproduto___" + index)),
|
"C1_PRODUTO": String(hAPI.getCardValue("Codproduto___" + index)),
|
||||||
"C1_QUANT": Number(hAPI.getCardValue("qtd___" + index)),
|
"C1_QUANT": Number(hAPI.getCardValue("qtd___" + index)),
|
||||||
"C1_DATPRF": toProtheusDate(String(hAPI.getCardValue("dataNec___" + index)))
|
"C1_DATPRF": toProtheusDate(String(hAPI.getCardValue("dataNec___" + index)))
|
||||||
};
|
};
|
||||||
itens.push(item);
|
itens.push(item);
|
||||||
log.info("📌 Item adicionado: " + JSON.stringify(item));
|
log.info("📌 Item adicionado: " + JSON.stringify(item));
|
||||||
}
|
}
|
||||||
|

|
||||||
var payload = {
|
var filial = String(hAPI.getCardValue("filialprotheus") || hAPI.getCardValue("filialProtheus") || "").trim();
|
||||||
"C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")),
|
if (!filial) {
|
||||||
"C1_EMISSAO": hojeProtheus(),
|
throw "Campo de filial não preenchido no formulário (filialprotheus).";
|
||||||
"C1_FILENT": String(hAPI.getCardValue("filialProtheus")).trim(),
|
}
|
||||||
"C1_OBS": String(hAPI.getCardValue("observacoes")),
|

|
||||||
"itens": itens
|
var payload = {
|
||||||
};
|
"C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")),
|
||||||
|
"C1_EMISSAO": hojeProtheus(),
|
||||||
log.info("📦 Payload montado:");
|
"C1_FILENT": filial,
|
||||||
log.info(JSON.stringify(payload));
|
"C1_OBS": String(hAPI.getCardValue("observacoes")),
|
||||||
|
"itens": itens
|
||||||
var data1 = {
|
};
|
||||||
companyId: '1',
|

|
||||||
serviceCode: 'Postprod',
|
log.info("📦 Payload montado:");
|
||||||
endpoint: '/rest/UF_MATA110',
|
log.info(JSON.stringify(payload));
|
||||||
method: 'post',
|

|
||||||
timeoutService: '100',
|
var data1 = {
|
||||||
params: payload, // objeto puro
|
companyId: '1',
|
||||||
headers: {
|
serviceCode: 'Postprod',
|
||||||
'Content-Type': 'application/json'
|
endpoint: '/UF_MATA110',
|
||||||
}
|
method: 'post',
|
||||||
};
|
timeoutService: '60000',
|
||||||
|
params: payload, // objeto puro
|
||||||
try {
|
headers: {
|
||||||
var clientService = fluigAPI.getAuthorizeClientService();
|
'Content-Type': 'application/json'
|
||||||
var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui
|
}
|
||||||
|
};
|
||||||
log.info("📬 Resposta da API Protheus:");
|

|
||||||
log.dir(response);
|
try {
|
||||||
|
var clientService = fluigAPI.getAuthorizeClientService();
|
||||||
if (response && response.getResult()) {
|
var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui
|
||||||
var result = JSON.parse(response.getResult());
|

|
||||||
if (result.sucesso) {
|
log.info("📬 Resposta da API Protheus:");
|
||||||
hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || "");
|
if (response) {
|
||||||
hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso");
|
log.info("HTTP status: " + response.getHttpStatusResult());
|
||||||
hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || "");
|
log.info("Body: " + response.getResult());
|
||||||
hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || "");
|
}
|
||||||
hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || ""));
|

|
||||||
hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || "");
|
if (response && response.getResult()) {
|
||||||
hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || "");
|
var result = JSON.parse(response.getResult());
|
||||||
} else {
|
if (result.sucesso) {
|
||||||
hAPI.setCardValue("statusSCProtheus", "Erro: " + result.erro);
|
hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || "");
|
||||||
throw "Erro Protheus: " + result.message;
|
hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso");
|
||||||
}
|
hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || "");
|
||||||
} else {
|
hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || "");
|
||||||
throw "Sem resposta da API Protheus";
|
hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || ""));
|
||||||
}
|
hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || "");
|
||||||
} catch (e) {
|
hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || "");
|
||||||
log.error("❌ Erro ao enviar SC para o Protheus: " + e);
|
} else {
|
||||||
throw e;
|
hAPI.setCardValue("statusSCProtheus", "Erro: " + result.erro);
|
||||||
}
|
throw "Erro Protheus: " + result.message;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw "Sem resposta da API Protheus";
|
||||||
log.info("🏁 Finalização da servicetask82");
|
}
|
||||||
}
|
} catch (e) {
|
||||||
|
log.error("❌ Erro ao enviar SC para o Protheus: " + e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
log.info("🏁 Finalização da servicetask82");
|
||||||
|
}
|
||||||
</eventDescription>
|
</eventDescription>
|
||||||
</WorkflowProcessEvent>
|
</WorkflowProcessEvent>
|
||||||
<WorkflowProcessEvent>
|
<WorkflowProcessEvent>
|
||||||
@ -1641,25 +1649,25 @@ function servicetask82(attempt, message) {
|
|||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
</workflowProcessEventPK>
|
</workflowProcessEventPK>
|
||||||
<eventDescription>function servicetask114(attempt, message) {
|
<eventDescription>function servicetask114(attempt, message) {
|
||||||
log.info("🚀 ST92 — Verifica se já existe código de cotação no formulário");
|
log.info("🚀 ST92 — Verifica se já existe código de cotação no formulário");
|
||||||
|

|
||||||
var numSC = hAPI.getCardValue("numeroSCProtheus");
|
var numSC = hAPI.getCardValue("numeroSCProtheus");
|
||||||
var numCot = hAPI.getCardValue("cotacaoSCProtheus");
|
var numCot = hAPI.getCardValue("cotacaoSCProtheus");
|
||||||
|

|
||||||
log.info("📌 SC: " + numSC + " | Cotação: " + numCot);
|
log.info("📌 SC: " + numSC + " | Cotação: " + numCot);
|
||||||
|

|
||||||
if (!numSC) {
|
if (!numSC) {
|
||||||
throw "❌ Número da SC não informado no formulário.";
|
throw "❌ Número da SC não informado no formulário.";
|
||||||
}
|
}
|
||||||
|

|
||||||
// se não tiver cotação ainda, força o loop da atividade
|
// se não tiver cotação ainda, força o loop da atividade
|
||||||
if (!numCot || numCot === "000000" || numCot === "000001") {
|
if (!numCot || numCot === "000000" || numCot === "000001") {
|
||||||
throw "⏳ Cotação ainda não disponível para a SC " + numSC;
|
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
|
// se já tiver código, só registra log e deixa o processo seguir
|
||||||
log.info("✅ Cotação " + numCot + " encontrada no formulário. Processo segue.");
|
log.info("✅ Cotação " + numCot + " encontrada no formulário. Processo segue.");
|
||||||
}</eventDescription>
|
}</eventDescription>
|
||||||
</WorkflowProcessEvent>
|
</WorkflowProcessEvent>
|
||||||
</list>
|
</list>
|
||||||
@ -1801,7 +1809,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>26</linkSequence>
|
<linkSequence>26</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1812,7 +1820,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>125</linkSequence>
|
<linkSequence>125</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1823,7 +1831,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>126</linkSequence>
|
<linkSequence>126</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1834,7 +1842,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>127</linkSequence>
|
<linkSequence>127</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1845,7 +1853,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>129</linkSequence>
|
<linkSequence>129</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1856,7 +1864,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>142</linkSequence>
|
<linkSequence>142</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1867,7 +1875,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>144</linkSequence>
|
<linkSequence>144</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1878,7 +1886,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>152</linkSequence>
|
<linkSequence>152</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1889,7 +1897,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>152</linkSequence>
|
<linkSequence>152</linkSequence>
|
||||||
<bendSequence>2</bendSequence>
|
<bendSequence>2</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
@ -1900,7 +1908,7 @@ function servicetask82(attempt, message) {
|
|||||||
<processLinkBendPK>
|
<processLinkBendPK>
|
||||||
<companyId>1</companyId>
|
<companyId>1</companyId>
|
||||||
<processId>Solicitação de compras </processId>
|
<processId>Solicitação de compras </processId>
|
||||||
<version>8</version>
|
<version>86</version>
|
||||||
<linkSequence>161</linkSequence>
|
<linkSequence>161</linkSequence>
|
||||||
<bendSequence>1</bendSequence>
|
<bendSequence>1</bendSequence>
|
||||||
</processLinkBendPK>
|
</processLinkBendPK>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 62 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
@ -9089,7 +9089,7 @@
|
|||||||
<bpmn2:BpmnEndEvent extendedFields="<list/>" id="endcancel39" incoming="flow124" name="Cancelado" notificaRequisitante="true" signalId="0" type="65"/>
|
<bpmn2:BpmnEndEvent extendedFields="<list/>" id="endcancel39" incoming="flow124" name="Cancelado" notificaRequisitante="true" signalId="0" type="65"/>
|
||||||
<bpmn2:BpmnGateway condition="<list> <org.eclipse.bpmn2.impl.ConditionImpl> <order>1</order> <expression>hAPI.getCardValue(&quot;validacaoItens&quot;) == &quot;entregue&quot;</expression> <targetTask>endevent52</targetTask> <conditionType>0</conditionType> </org.eclipse.bpmn2.impl.ConditionImpl> <org.eclipse.bpmn2.impl.ConditionImpl> <order>2</order> <expression>true</expression> <targetTask>task24</targetTask> <conditionType>0</conditionType> </org.eclipse.bpmn2.impl.ConditionImpl> </list>" extendedFields="<list/>" id="exclusivegateway46" incoming="flow47" name="Validar compra" outgoing="flow48 flow78" type="120"/>
|
<bpmn2:BpmnGateway condition="<list> <org.eclipse.bpmn2.impl.ConditionImpl> <order>1</order> <expression>hAPI.getCardValue(&quot;validacaoItens&quot;) == &quot;entregue&quot;</expression> <targetTask>endevent52</targetTask> <conditionType>0</conditionType> </org.eclipse.bpmn2.impl.ConditionImpl> <org.eclipse.bpmn2.impl.ConditionImpl> <order>2</order> <expression>true</expression> <targetTask>task24</targetTask> <conditionType>0</conditionType> </org.eclipse.bpmn2.impl.ConditionImpl> </list>" extendedFields="<list/>" id="exclusivegateway46" incoming="flow47" name="Validar compra" outgoing="flow48 flow78" type="120"/>
|
||||||
<bpmn2:BpmnEndEvent extendedFields="<list/>" id="endevent52" incoming="flow78" name="Fim" signalId="0" type="60"/>
|
<bpmn2:BpmnEndEvent extendedFields="<list/>" id="endevent52" incoming="flow78" name="Fim" signalId="0" type="60"/>
|
||||||
<bpmn2:BpmnProcess author="" cardIndex="9305" category="Compras - Testes" complementsLevel="1" descriptorFields="<list> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>descProduto</id> <label>descProduto</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>empresa</id> <label>empresa</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>estabelecimento</id> <label>estabelecimento</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>filialdest</id> <label>filialdest</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>numeroSCProtheus</id> <label>numeroSCProtheus</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>pedidoSCProtheus</id> <label>pedidoSCProtheus</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>quantidade</id> <label>quantidade</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>solicitanteSCProtheus</id> <label>solicitanteSCProtheus</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>urgencia</id> <label>urgencia</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>valorTotalCotacao</id> <label>valorTotalCotacao</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> </list>" expedient="Default" extendedFields="<list/>" formSource="server" id="Solicitação de compras " instruction="Este flow permite abertura de solicitação de compras automatizadas, informando qual item será comprado e direcionado para as aprovações corretas." keyWord="" managerAssignmentController="<org.eclipse.bpmn2.impl.AssignmentControllerGroup> <groupId>TIC</groupId> <mechanismName>Grupo</mechanismName> </org.eclipse.bpmn2.impl.AssignmentControllerGroup>" name="Solicitação de compra - Ginseng" notifyRequisitionerComplements="true" notifyResponsibleComplements="true" serverId="Ginseng Produção" version="8" volume="Default"/>
|
<bpmn2:BpmnProcess author="" cardIndex="9305" category="Compras - Testes" complementsLevel="1" descriptorFields="<list> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>descProduto</id> <label>descProduto</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>empresa</id> <label>empresa</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>estabelecimento</id> <label>estabelecimento</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>filialdest</id> <label>filialdest</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>numeroSCProtheus</id> <label>numeroSCProtheus</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>pedidoSCProtheus</id> <label>pedidoSCProtheus</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>quantidade</id> <label>quantidade</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>solicitanteSCProtheus</id> <label>solicitanteSCProtheus</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>urgencia</id> <label>urgencia</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> <org.eclipse.bpmn2.impl.BpmnProcessFormField> <id>valorTotalCotacao</id> <label>valorTotalCotacao</label> <cardIndex>9305 - compras_digital</cardIndex> </org.eclipse.bpmn2.impl.BpmnProcessFormField> </list>" expedient="Default" extendedFields="<list/>" formSource="server" id="Solicitação de compras " instruction="Este flow permite abertura de solicitação de compras automatizadas, informando qual item será comprado e direcionado para as aprovações corretas." keyWord="" managerAssignmentController="<org.eclipse.bpmn2.impl.AssignmentControllerGroup> <groupId>TIC</groupId> <mechanismName>Grupo</mechanismName> </org.eclipse.bpmn2.impl.AssignmentControllerGroup>" name="Solicitação de compra - Ginseng" notifyRequisitionerComplements="true" notifyResponsibleComplements="true" serverId="Ginseng Produção" version="86" volume="Default"/>
|
||||||
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow26" name="" sourceRef="task24" targetRef="task18"/>
|
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow26" name="" sourceRef="task24" targetRef="task18"/>
|
||||||
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow47" name="" sourceRef="task18" targetRef="exclusivegateway46"/>
|
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow47" name="" sourceRef="task18" targetRef="exclusivegateway46"/>
|
||||||
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow48" name="Reprovar" sourceRef="exclusivegateway46" targetRef="task24"/>
|
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow48" name="Reprovar" sourceRef="exclusivegateway46" targetRef="task24"/>
|
||||||
@ -9134,5 +9134,5 @@
|
|||||||
<bpmn2:BpmnTask authNotify="true" esforcoCalculo="0" executionAttempts="0" expediente="" frequency="0" id="task158" incoming="flow159" loopType="0" name="Aprovação CEO" outgoing="flow160" selecionaColaboradores="1" type="80"/>
|
<bpmn2:BpmnTask authNotify="true" esforcoCalculo="0" executionAttempts="0" expediente="" frequency="0" id="task158" incoming="flow159" loopType="0" name="Aprovação CEO" outgoing="flow160" selecionaColaboradores="1" type="80"/>
|
||||||
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow159" name="" sourceRef="exclusivegateway154" targetRef="task158"/>
|
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow159" name="" sourceRef="exclusivegateway154" targetRef="task158"/>
|
||||||
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow160" name="" sourceRef="task158" targetRef="task18"/>
|
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="<list/>" id="flow160" name="" sourceRef="task158" targetRef="task18"/>
|
||||||
<bpmn2:SequenceFlow atividadeFluxo="Ajustar Solicitação" atividadeRetorno="" id="flow161" name="" sourceRef="task121" targetRef="startevent1"/>
|
<bpmn2:SequenceFlow atividadeFluxo="Ajustar Solicitação" atividadeRetorno="" extendedFields="<list/>" id="flow161" name="" sourceRef="task121" targetRef="startevent1"/>
|
||||||
</xmi:XMI>
|
</xmi:XMI>
|
||||||
@ -38,10 +38,21 @@ function servicetask82(attempt, message) {
|
|||||||
log.info("📌 Item adicionado: " + JSON.stringify(item));
|
log.info("📌 Item adicionado: " + JSON.stringify(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 = {
|
var payload = {
|
||||||
"C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")),
|
"C1_SOLICIT": String(hAPI.getCardValue("usuarioSolicitante")),
|
||||||
"C1_EMISSAO": hojeProtheus(),
|
"C1_EMISSAO": hojeProtheus(),
|
||||||
"C1_FILENT": String(hAPI.getCardValue("filialProtheus")).trim(),
|
"C1_FILENT": filial,
|
||||||
"C1_OBS": String(hAPI.getCardValue("observacoes")),
|
"C1_OBS": String(hAPI.getCardValue("observacoes")),
|
||||||
"itens": itens
|
"itens": itens
|
||||||
};
|
};
|
||||||
@ -52,9 +63,9 @@ function servicetask82(attempt, message) {
|
|||||||
var data1 = {
|
var data1 = {
|
||||||
companyId: '1',
|
companyId: '1',
|
||||||
serviceCode: 'Postprod',
|
serviceCode: 'Postprod',
|
||||||
endpoint: '/rest/UF_MATA110',
|
endpoint: '/UF_MATA110',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
timeoutService: '100',
|
timeoutService: '60000',
|
||||||
params: payload, // objeto puro
|
params: payload, // objeto puro
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
@ -66,21 +77,27 @@ function servicetask82(attempt, message) {
|
|||||||
var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui
|
var response = clientService.invoke(JSON.stringify(data1)); // SEMPRE stringify aqui
|
||||||
|
|
||||||
log.info("📬 Resposta da API Protheus:");
|
log.info("📬 Resposta da API Protheus:");
|
||||||
log.dir(response);
|
if (response) {
|
||||||
|
log.info("HTTP status: " + response.getHttpStatusResult());
|
||||||
|
log.info("Body: " + response.getResult());
|
||||||
|
}
|
||||||
|
|
||||||
if (response && response.getResult()) {
|
if (response && response.getResult()) {
|
||||||
var result = JSON.parse(response.getResult());
|
var result = JSON.parse(response.getResult());
|
||||||
if (result.sucesso) {
|
if (result.sucesso) {
|
||||||
hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || "");
|
hAPI.setCardValue("numeroSCProtheus", result.C1_NUM || "");
|
||||||
hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso");
|
hAPI.setCardValue("statusSCProtheus", "SC cadastrada com sucesso");
|
||||||
|
hAPI.setCardValue("statusAtendimento", "Em andamento");
|
||||||
hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || "");
|
hAPI.setCardValue("solicitanteSCProtheus", result.C1_SOLICIT || "");
|
||||||
hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || "");
|
hAPI.setCardValue("emissaoSCProtheus", result.C1_EMISSAO || "");
|
||||||
hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || ""));
|
hAPI.setCardValue("qtdItensSCProtheus", String(result.quantidade_itens || ""));
|
||||||
hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || "");
|
hAPI.setCardValue("dataCadastroSCProtheus", result.data_cadastro || "");
|
||||||
hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || "");
|
hAPI.setCardValue("horaCadastroSCProtheus", result.hora_cadastro || "");
|
||||||
} else {
|
} else {
|
||||||
hAPI.setCardValue("statusSCProtheus", "Erro: " + result.erro);
|
var erroMsg = result.erro || result.message || JSON.stringify(result);
|
||||||
throw "Erro Protheus: " + result.message;
|
hAPI.setCardValue("statusSCProtheus", "Erro: " + erroMsg);
|
||||||
|
hAPI.setCardValue("statusAtendimento", "Erro no envio");
|
||||||
|
throw "Erro Protheus: " + erroMsg;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw "Sem resposta da API Protheus";
|
throw "Sem resposta da API Protheus";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user