", strTitulo);
//Verifica se vai ter quem confirmou a alteraçao
if (!$.isEmpty(log.nomeAutorizacao) && !$.isEmpty(log.loginAutorizacao)) {
strHtml += String.format("
";
$("#div_mais_log").remove();
var btn_carrega = '';
$("#content-log").append(strHtml);
$("#content-log").parent("div").append(btn_carrega);
} else {
$("#btn_log_carrega_mais").val(mensagemResource["TodosRegistrosCarregados"].toUpperCase());
$("#btn_log_carrega_mais").attr("disabled", "disabled");
}
} else {
//Se der erro ao buscar o log, decrementar, pois se não quando o usuário persistir para ver se da certo, vai trazer registros errados
log_skip -= 10;
}
});
}
}
$(document).on('click', "#btn_log_carrega_mais", function () {
PreencherLog(log_chave_registro, log_nome_tabela);
});
$(document).on('click', "#li_gera_log", function () {
if (log_skip > 0) {
log_skip = 0;
}
});
//#endregion
//#region BUSCA DE AJUDA DE TELA
function BuscaAjuda(id_tela) {
if (id_tela != "" && parseInt(id_tela) > 0) {
//var formData = new FormData();
//formData.append("id_tela", id_tela);
//$.CallAjax("BuscaInformacaoTela", "Telas", "Sistemas", formData).success(function (result) {
// if (result.msg == "SUCCESS") {
// var tela = result.result;
// var strAjuda = "", strSobre = "", strRegra = "", strPermissao = "", strFluxograma = "", strTabela = "";
// var strLabel = ' ';
// if (!$.isEmpty(tela.texto_explicativo)) {
// strAjuda += String.format(strLabel, tela.texto_explicativo);
// }
// if (!$.isEmpty(tela.sobre_tela)) {
// strSobre += String.format(strLabel, tela.sobre_tela);
// }
// if (!$.isEmpty(tela.RegrasTela)) {
// var strDiv = '
' +
// '
{0}
' +
// '
{1}
' +
// '
';
// $.each(tela.RegrasTela, function (i, regra) {
// strRegra += String.format(strDiv, String.format(strLabel, regra.campo), String.format(strLabel, regra.descricao));
// });
// }
// if (!$.isEmpty(tela.TelaRestricao)) {
// var strDiv = '
' +
// '
{0}
' +
// '
' +
// '
' +
// '
{1}
' +
// '
';
// $.each(tela.TelaRestricao, function (i, restricao) {
// var strHtmlAux = "";
// $.each(restricao.Grupos, function (i, grupo) {
// strHtmlAux += String.format(strLabel, grupo.nome);
// });
// strPermissao += String.format(strDiv, String.format(strLabel, restricao.nome_restricao), strHtmlAux);
// });
// }
// if (!$.isEmpty(tela.Fluxogramas)) {
// }
// if (!$.isEmpty(tela.TelasTabela)) {
// }
// }
//});
}
}
//#endregion
//#region FUNÇÕES PARA LIMPEZA DE CAMPOS
//A DIFERENÇA DESTA COM A LIMPA CAMPOS VALIDADOS É QUE ESTA EU POSSO PASSA A DIV COMPLETA E ELE PESQUISA TODOS OS INPUTS DA MESMA
//A OUTRA É NECESSÁRIO INFORMAR CAMPO A CAMPO.
var ClearInput = function (seletor) {
seletor.find(":input:not([type='submit']):not([name='__RequestVerificationToken'])").not('.DontClean').each(function () {
switch (this.type) {
case 'checkbox':
$(this).prop("checked", false);
default:
$(this).val("");
break;
}
});
seletor.find("select").each(function () {
$(this).val("");
});
seletor.find(".dinamico").each(function () {
$(this).remove();
});
seletor.find(".labelClear").each(function () {
$(this).text("");
});
}
var LimparErro = function (seletor) {
$(seletor).removeClass("input-validation-error").siblings(".erroTooltip").removeClass("field-validation-error").text("");
}
var LimparCamposValidados = function (seletor) {
seletor.children('input')
seletor.each(function (e) {
var ref = $(this);
if (ref.attr("type") != "submit" && ref.attr("type") != "button") {
if (ref.attr("type") == "checkbox") {
ref.prop("checked", false);
} else {
ref.val("");
}
if (ref.hasClass('dinamico')) {
ref.remove();
} else if (ref.hasClass('labelClear')) {
ref.text("");
}
if (ref.hasClass('input-validation-error') || ref.hasClass('error-validation')) {
ref.removeClass('input-validation-error').removeClass('error-validation');
ref.parent('div').children('span').text("");
}
}
});
}
//#endregion
//#region FUNÇÕES PARA TRATAMENTO DE EXIBIÇÃO OU BLOQUEIO DE CAMPO
var EscondeCampo = function (campos) {
campos.forEach(function (item) {
$("#" + item).attr("style", "display:none;");
});
}
var MostraCampo = function (campos) {
campos.forEach(function (item) {
$("#" + item).removeAttr("style", "display:none;");
});
}
var disableFormInputs = function (form) {
$($(form).find(':input')).prop('disabled', true);
}
//#endregion
//#region FUNÇÃO PARA GERAR ERRO EM INPUT
var GeraErro = function (ref, msg_erro) {
GeraElementoErro(ref);
if (!$.isEmpty(msg_erro)) {
if (!$(ref).hasClass("_erroPersonalizado")) {
$(ref).addClass("_erroPersonalizado");
}
if ($("form").find($(ref)).length > 0 && !$.isEmpty($.validator)) {
$.validator.messages["_erroPersonalizado"] = msg_erro;
if (!$.isEmpty(msg_erro)) {
$(ref).valid();
}
} else {
$(ref).removeClass("valid").addClass("input-validation-error").siblings("span.erroTooltip").text(msg_erro);
}
} else {
if (!$.isEmpty($.validator)) {
$.validator.messages["_erroPersonalizado"] = "";
}
$(ref).removeClass("input-validation-error").addClass("valid").siblings("span.erroTooltip").text("");
}
}
var GeraElementoErro = function (elemento) {
if ($(elemento).siblings(".erroTooltip").length == 0) {
$(elemento).parent("div").addClass("hoverInput");
elementoErro = document.createElement("span");
elementoErro.className = "field-validation-valid text-danger erroTooltip";
elementoErro.setAttribute("data-valmsg-for", $(elemento).attr("id"));
elementoErro.setAttribute("data-valmsg-replace", true);
$(elemento).parent("div").append(elementoErro);
}
}
//#endregion
//#region TRUNCATE STRING
var truncateString = function (str, length) {
if (str != null && str != "") {
return str.length > length ? str.substring(0, length - 3) + '...' : str
}
return "";
}
//#endregion
//#region BUSCA DE INFORMAÇÕES EM RESOURCE
var GetResource = function (res, key) {
if (Array.isArray(key)) {
return fnBuscaResource(res, key);
} else {
return fnBuscaResource(res, [key])[key];
}
}
//#endregion
//#region FUNÇÃO PARA GERAR EXPLICAÇÃO NA TELA
var ExplicacaoTela = function (tela) {
if (lista_propriedades.length == 0) {
$.ajax({
type: "POST",
url: raizAplicacao + "Base/BuscaResource",
data: "{nome:" + JSON.stringify(tela) + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
if (data.resultado == 200) {
data.lista_propriedades.forEach(function (e) {
lista_propriedades.push(e);
});
} else if (data.resultado == 500) {
lista_propriedades = new Array();
}
}
});
}
if (lista_propriedades.length > 0) {
var altDiv = $(".conteudo").height();
var div = "
"
lista_propriedades.forEach(function (e) {
div += '
' + e.Key + '
' + e.Value + '
'
var ref = $("#" + e[0]);
ref.attr("data-toggle", "popover");
ref.attr("data-placement", "bottom");
ref.popover({
html: true,
trigger: "hover",
content: function () {
var strHtml = ""// +
return strHtml;
}
});
});
div += '
'
$('.conteudo').append(div)
}
}
//#endregion
//#region REFLECTION
var Reflector = function (obj) {
this.getProperties = function () {
var properties = [];
for (var prop in obj) {
if (typeof obj[prop] != 'function') {
properties.push(prop);
}
}
return properties;
};
}
//#endregion
//#region FUNÇÃO PARA GERAR TABELA
var MontaEstruturaTabela = function (idTabela, colunas, classe) {
var strHtml = "
" +
"
{1}
" +
""
"
"
var strTH = "";
$.each(colunas, function (i, coluna) {
strTH += String.format("
{0}
", coluna);
});
return String.format(strHtml, idTabela, strTH, classe);
}
var GeraTabela = function (list, nome, Editar, Remover) {
var options = "";
list.forEach(function (item) {
var reflector = new Reflector(item);
options += "
";
Object.getOwnPropertyNames(item).forEach(function (props) {
var cstart = props[0] + props[1];
if (cstart != 'id') {
if (item[props] == null) {
options += "
" + " " + "
";
}
else {
options += "
" + item[props] + "
";
}
}
});
options += '
';
if (Editar != null) {
options += '';
}
if (Remover != null) {
options += '';
}
//COLOCAR AQUI SE JA TEM CODIGO PARA COLCOAR O ICONE DE TRANSFERIR
if (nome == '#tassociado' && item.codigo != null && item.id_tipo_socio == 1) {
$.ajax({
cache: false,
type: 'POST',
data: "{id_socio: " + item.id_associado + "}",
contentType: 'application/json; charset=utf-8',
url: raizAplicacao + "Pessoa/AssociadoTransferencia/BuscaTransferenciaPorSocio",
async: false,
success: function (result) {
if (result.msg == "SUCCESS") {
//Verifica nao existe transferencia ou nao existe novo socio ja no titulo para colocar o icone de transferencia
if (result.obj == null || result.obj.id_pessoa_socio_novo == 0) {
options += '';
}
} else {
ModalErro(mensagemResourceGlobal["MsgNaoFoiPossivelFazerBuscaSitacaoTransferencia"]);
}
}
});
}
options += '
';
options += "
";
});
$(nome).html(options);
}
//#endregion
//#region FUNÇÃO PARA BUSCA DE HTML DA PARTIAL VIEW
var GetPartialView = function (url, tipo) {
var resultObj = new Object();
resultObj.responseText = $.ajax({
type: tipo,
url: raizAplicacao + url,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (r) {
//resultObj.responseText = r;
}
}).responseText;
return resultObj;
}
//#endregion
//#region FUNÇÃO PARA SETAR INFORMAÇÃO NOS INPUTS DO FORM
function SetInputs(FormName, Object, Action) {
$(FormName).find(":input:not([type='submit'])").each(function () {
var refl = new Reflector(Object);
var id_input = $(this).prop('id');
refl.getProperties().forEach(function (props) {
if (id_input == props) {
id_input = '#' + id_input;
$(id_input).val(Object[props]);
}
});
});
$(FormName).attr('action', Action);
}
//#endregion
//#region FUNÇÃO PARA UPLOAD DE ARQUIVOS
var FileUpload = function (e, tipo, insereArquivo) {
insereArquivo = (insereArquivo == undefined ? true : false);
var files = e.target.files;
if (files.length > 0) {
if (window.FormData !== undefined) {
var data = new FormData();
for (var x = 0; x < files.length; x++) {
data.append("file" + x, files[x]);
}
data.append("tipo", tipo);
data.append("adiciona_arquivo", insereArquivo);
return $.CallAjax("UploadFile", "Arquivo", null, data);
} else {
alert(mensagemResourceGlobal["MsgEsseNavegadorNaoSuportaUploadsHTML"]);
}
}
}
//#endregion
//#region FORMATAÇÃO PADRÃO DE EXIBIÇÃO DE PRODUTO
var FormataExibicaoProduto = function (produto) {
let txtFormatacao = "Raca.sigla, CategoriaRegistro.sigla, serie, rgd, rgn, ";
txtFormatacao += !$.isEmpty(produto.nomeOriginal) ? "nomeOriginal" : "nome";
return $.formataPropriedade(produto, txtFormatacao);
}
//#endregion
//#region FORMATAÇÃO NUMERICA
function FormataNumero(valor) {
if (!$.isEmpty(valor)) {
if ((valor >= 0 && valor <= 9) && valor.toString().length == 1) {
return "0" + valor;
}
return valor;
}
return "0";
}
//#endregion
//#regionFORMATAR TEXTO PARA UMA EXIBIÇÃO ABREVIADA
function reduceString(str) {
var strSplit = str.split(" ");
var strResult = "";
$.each(strSplit, function (i, palavra) {
if (i != 0 && (i != (strSplit.length - 1)) && palavra.length > 2) {
strResult += (" " + palavra[0] + ".")
} else {
strResult += (" " + palavra);
}
});
return strResult.trim();
}
//#endregion
//#region Funções de permissões
function PossuiRestricaoTela(id_tela, codigo_restricao) {
var possui_permissao = false;
if (id_tela > 0 && codigo_restricao > 0) {
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "Sistemas/Telas/VerificaPermissaoTela", {
id_tela: id_tela,
codigo_restricao: codigo_restricao
}, function (resultado) {
if (resultado.msg == "SUCCESS") {
possui_permissao = resultado.result;
}
});
$.ajaxSetup({ async: true });
/*
var formData = new FormData();
formData.append("id_tela", id_tela);
formData.append("codigo_restricao", codigo_restricao);
$.CallAjax("VerificaPermissaoTela", "Telas", "Sistemas", formData).success(function (result) {
if (result.msg == "SUCCESS") {
possui_permissao = result.result;
}
});*/
}
return possui_permissao;
}
function PossuiRestricaoTelaOrgao(id_tela, codigo_restricao, id_orgao_executor) {
var possui_permissao = false;
if (id_tela > 0 && codigo_restricao > 0) {
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "Sistemas/Telas/VerificaPermissaoTela", {
id_tela: id_tela,
codigo_restricao: codigo_restricao,
id_orgao_executor: id_orgao_executor
}, function (resultado) {
if (resultado.msg == "SUCCESS") {
possui_permissao = resultado.result;
}
});
$.ajaxSetup({ async: true });
/*
var formData = new FormData();
formData.append("id_tela", id_tela);
formData.append("codigo_restricao", codigo_restricao);
formData.append("id_orgao_executor", id_orgao_executor);
$.CallAjax("VerificaPermissaoTelaOrgao", "Telas", "Sistemas", formData).success(function (result) {
if (result.msg == "SUCCESS") {
possui_permissao = result.result;
}
});*/
}
return possui_permissao;
}
function PessoaParticipaGrupo(id_grupo) {
var participa_grupo = false;
if (id_grupo > 0) {
var formData = new FormData();
formData.append("id_grupo", id_grupo);
$.CallAjax("PessoaParticipaGrupo", "Grupo", "Sistemas", formData).success(function (result) {
if (result.msg == "SUCCESS") {
participa_grupo = result.result;
}
});
}
return participa_grupo;
}
function VerificaRegraNoPais(id_regra) {
var existe_regra = false;
if (id_regra > 0) {
var formData = new FormData();
formData.append("id_regra", id_regra);
$.CallAjax("VerificaRegraNoPais", "Regras", "Parametros", formData).success(function (result) {
if (result.msg == "SUCCESS") {
existe_regra = result.result;
}
});
}
return existe_regra;
}
function BuscaPermissaoTela(id_tela) {
var lista_permissao = [];
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "Sistemas/Telas/ListaPermissoes", { id_tela: id_tela }, function (resultado) {
if (resultado.msg == "SUCCESS") {
lista_permissao = resultado.result;
}
});
$.ajaxSetup({ async: true });
return lista_permissao;
}
function PermissoesSimples(id_tela) {
var _permissao = {
cadastrar: false,
atualizar: false,
detalhar: false,
remover: false,
listar: false
}
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "Sistemas/Telas/ListaPermissoesBasica", { id_tela: id_tela }, function (resultado) {
if (resultado.msg == "SUCCESS") {
$.each(resultado.result, function (i, restricao) {
switch (restricao.codigo_restricao) {
case 1:
_permissao.cadastrar = true;
break;
case 2:
_permissao.atualizar = true;
break;
case 3:
_permissao.remover = true;
break;
case 4:
_permissao.listar = true;
break;
case 5:
_permissao.detalhar = true;
break;
}
});
}
});
$.ajaxSetup({ async: true });
return _permissao;
}
function PessoaPossuiOcorrenciaCDP(id) {
var possui_ocorrencia = false;
if (!$.isEmpty(id)) {
var formData = new FormData();
formData.append("id_criador", id);
$.CallAjax("PossuiOcorrencia", "Ocorrencia", "Pessoa", formData).success(function (result) {
if (result.msg == "OK") {
possui_ocorrencia = result.obj;
}
});
}
return possui_ocorrencia;
}
function PessoaPossuiOcorrencia(id_pessoa, id_ocorrencia) {
var possui_ocorrencia = false;
if (!$.isEmpty(id_pessoa) && !$.isEmpty(id_ocorrencia)) {
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "Pessoa/Ocorrencia/PessoaPossuiOcorrencia", {
id_pessoa: id_pessoa,
id_ocorrencia: id_ocorrencia
}, function (resultado) {
if (resultado.msg == "SUCCESS") {
possui_ocorrencia = resultado.result;
}
});
$.ajaxSetup({ async: true });
}
return possui_ocorrencia;
}
//#endregion
//#region FUNÇÃO PARA GERAR BOTÕES ADICIONAIS NO TOPO DA PÁGINA
function atalhos(array) {
localStorage.setItem('lista_atalhos', JSON.stringify(array));
var pagina = 1
var tamTitulo = 0;
$("#voltarList").remove();
var tamDivTitulo = $('.tituloPage').outerWidth(true);
$('.tituloPage > span').each(function (e) {
tamTitulo += ($(this).outerWidth(true))
});
tamTitulo += 10
var tamBotao = ($('.novo').outerWidth(true)) + ($('#lista_cadastro').outerWidth(true)) + 10;
var tamDisponivel = (tamDivTitulo - tamTitulo) - tamBotao;
// var tamElem = $('.iconsPage ul > li').outerWidth(true);
var tamElem = 53
//var tamElem = 53
var lista = ''
var tamParcial = tamElem;
var ElemEncontrados = '';
var array_old = []
//$('.iconsPage ul li').each(function (e) {
// $(this).removeAttr('style');
// if ($(this).attr('id') == 'li_gera_log') {
// }
// if ((tamParcial + tamElem) < tamDisponivel) {
// tamParcial += tamElem;
// } else {
// // tamParcial = tamElem
// pagina += 1;
// $(this).css('display', 'none');
// }
//var title = $(this).find('span').attr('title');
//var classe = $(this).find('span').attr("class").split("fa").pop();
//var obj = {
// id: $(this).attr("id"),
// onclick: $(this).attr("onclick"),
// title: title,
// href: $(this).attr("href"),
// icone: classe
//}
//array_old.push(obj)
// });
//if (typeof ($('.iconsPage ul #li_gera_log').html()) != 'undefined') {
// ElemEncontrados = $('.iconsPage ul').html();
//}
ElemEncontrados = !$.isEmpty(document.getElementById('li_gera_log')) ? document.getElementById('li_gera_log').outerHTML : '';
tamParcial += tamElem;
$('.iconsPage').children().remove();
if (pagina > 1) {
lista = '
';
} else {
lista = '
';
}
$('.iconsPage').append(lista);
lista = ElemEncontrados
if (array.length > 0) {
for (var i = 0; i < array.length; i++) {
if ((tamParcial + tamElem) < tamDisponivel) {
tamParcial += tamElem;
} else {
tamParcial = tamElem
pagina += 1;
}
if (array[i].href == '') {
if (pagina > 1) {
$('#voltarList').removeAttr('style');
lista += '
'
} else {
lista += '
'
}
} else {
if (pagina > 1) {
$('#voltarList').removeAttr('style');
lista += '
'
} else {
lista += '
'
}
}
}
}
$('#voltarList').after(lista);
$('#voltarList').click(function (e) {
var first = $('.iconsPage li:not(#voltarList):first').css("display", "none").remove();
$('.iconsPage li:hidden:first').css("display", "block");
$('.iconsPage li:last').after(first)
});
// var p = $('.novo').position();
// $("#lista_cadastro ul ").css('left', p.left - 56)
if ($('.novo').length > 0) {
var p = $('.novo').position();
var new_value = p.left - 100
$("#lista_cadastro ul").removeAttr('style');
$("#lista_cadastro ul").css('left', new_value);
}
}
//#endregion
//#region SALVAR, LER E EXIBIR RESULTADO DO LOCAL STORAGE
function GerarLocalStorage(selector, format_key, others_values) {
var objSave = [];
//PERCORRE EM TODOS OS CAMPOS VISIVEIS NA TELA E NOS QUE POSSUEM A CLASSE (NESTE CASO COLOQUEI NOS HIDDEN)
$(selector).find("input:visible, select, textarea, .saveLocal").not("button, input:button").each(function () {
//PEGA A DESCRIÇÃO DO TEXTO (LABEL) AO LADO PARA APRESENTAÇÃO NO MOMENTO DO LOADING DA PÁGINA
var strLabel = $(this).siblings("label").text().replace("(*)", "").trim();
// VALORES EM BRANCO NÃO SERÃO SALVOS
if (this.value != "") {
objSave.push({
id: this.id,
name: this.name,
label: strLabel,
value: $(this).prop("type") == "checkbox" ? $(this).is(":checked") : this.value,
valueText: ($(this).is("select") ? $(this).children("option:selected").text() : ""),
type: $(this).prop("type") == "checkbox" ? "checkbox" : 'field'
});
}
});
//CASO QUEIRA ADICIONAR OUTRAS PROPRIEDADES ADJUTO A ESTA LISTA, BASTA INFORMAR OS NOMES DAS PROPRIEDADES DECLARADAS NO ESCOPO
if (others_values != undefined && others_values.length > 0) {
$.each(others_values, function (i, item) {
objSave.push({
name: item,
value: $(window[item]).hasClass("buscaPersonalizada") ? window[item].getDataReturned() : window[item],
type: 'obj'
});
});
}
//CHAVE PARA ENCONTRO DESCRICAO + ID
var id_pessoa_logada = BuscaClaim("ID");
var keyLocal = String.format("{0}_{1}", format_key, id_pessoa_logada);
//SERIALIZA PARA SALVAR
var objComplete = {
data: new Date(),
objSave: objSave
}
var objSerialized = JSON.stringify(objComplete).toString().toData("E");
//REMOVE O REGISTRO ANTERIOR PARA GUARDAR ESTA.
localStorage.removeItem(keyLocal);
//SALVA REGISTRO
if (navigator.appName = 'Microsoft Internet Explorer' || !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/)) || (typeof $.browser !== "undefined" && $.browser.msie == 1)) {
//correção ie
} else {
localStorage.setItem(keyLocal, objSerialized);
}
}
function RecuperarLocalStorage(format_key) {
// OBJETO QUE TERA O RESULTADO
var objSave = [];
//MONTAGEM DA CHAVE DO LOCAL STORAGE
var id_pessoa_logada = BuscaClaim("ID");
var keyLocal = String.format("{0}_{1}", format_key, id_pessoa_logada);
//RECUPERA VALOR
var resultLocal = localStorage.getItem(keyLocal);
//CASO TENHA VALOR, INSERE NOS CAMPOS OU PROPRIEDADES
if (resultLocal != null) {
var objComplete = null;
try {
resultLocal = resultLocal.toString().toData("D");
//CONVERTE O JSON PARA OBJETO NOVAMENTE
objComplete = JSON.parse(resultLocal);
} catch (e) {
localStorage.removeItem(keyLocal);
objComplete = null;
}
if (!$.isEmpty(objComplete)) {
var objSave = objComplete.objSave;
var strID = "#{0}";
//PERCORRE EM TODOS CAMPOS/OBJETOS SALVOS E ATRIBUEM SEUS DEVIDOS VALORES
$.each(objSave, function (i, obj) {
if (obj.type == 'field') {
var strInput = String.format(strID, obj.id);
if ($(strInput).hasClass("hasDatepicker")) {
$(strInput).datepicker('setDate', obj.value);
} else {
$(strInput).val(obj.value);
}
} else if (obj.type == "checkbox") {
var strInput = String.format(strID, obj.id);
$(strInput).prop("checked", obj.value);
} else {
if ($(window[obj.name]).hasClass("buscaPersonalizada")) {
window[obj.name].setValue(obj.value);
} else {
window[obj.name] = obj.value;
}
}
});
}
}
}
function AlertaExistenciaRegistro(format_key, onExecute, onExecuteNo) {
let listaResourceGeral = ["Nao", "OperacaoNaoFinalizada", "OperacaoNaoFinalizadaRisco", "OperacaoNaoFinalizadaTitulo", "Sim"];
let mensagemResource = {};
mensagemResource = GetResource("Geral", listaResourceGeral);
// OBJETO QUE TERA O RESULTADO
var objSave = [];
//MONTAGEM DA CHAVE DO LOCAL STORAGE
var id_pessoa_logada = BuscaClaim("ID");
var keyLocal = String.format("{0}_{1}", format_key, id_pessoa_logada);
var resultLocal = localStorage.getItem(keyLocal);
if (resultLocal != null) {
var objComplete = null;
try {
resultLocal = resultLocal.toString().toData("D");
//CONVERTE O JSON PARA OBJETO NOVAMENTE
objComplete = JSON.parse(resultLocal);
} catch (e) {
localStorage.removeItem(keyLocal);
objComplete = null;
}
if (!$.isEmpty(objComplete)) {
var objSave = objComplete.objSave;
var strHtml = "";
var strLabel = '';
var strDiv = '
' +
'
' +
' {0}' +
'
' +
'
' +
' {1}' +
'
' +
'
';
//PERCORRE EM TODOS CAMPOS/OBJETOS SALVOS E MONTA UM HTML PARA APRESENTAÇÃO DOS VALORES GUARDADOS
$.each(objSave, function (i, obj) {
if (obj.type == 'field' && obj.label != "") {
var strLabelInfo = String.format(strLabel, obj.label) + ":";
var strLabelValue = obj.valueText == "" ? obj.value : obj.valueText;
strLabelValue = String.format(strLabel, strLabelValue) + " ";
strHtml += String.format(strDiv, strLabelInfo, strLabelValue);
} else if (obj.type == "checkbox" && obj.label != "") {
var strLabelInfo = String.format(strLabel, obj.label) + ":";
var strLabelValue = obj.value == true ? "SIM" : "NÃO";
strLabelValue = String.format(strLabel, strLabelValue) + " ";
strHtml += String.format(strDiv, strLabelInfo, strLabelValue);
}
});
var strOperacao = String.format(strLabel, mensagemResource["OperacaoNaoFinalizada"] + " ");
strHtml = String.format("{0}{1}", strOperacao, strHtml);
strHtml += String.format(strLabel, mensagemResource["OperacaoNaoFinalizadaRisco"]);
$.allSIGEDynamicMessageBox({
boxMessage: strHtml,
boxTitle: mensagemResource["OperacaoNaoFinalizadaTitulo"],
boxSize: "md",
boxType: "alert",
boxButtonDefaultPosition: 2,
closeOnClickModal: false,
boxShowHeaderControls: false,
onSuccess: function (objReturn) {
if (objReturn.result == "CONFIRM") {
RecuperarLocalStorage(format_key);
if (onExecute != undefined && onExecute != null) {
onExecute();
}
} else {
localStorage.removeItem(keyLocal);
if (onExecuteNo != undefined && onExecuteNo != null) {
onExecuteNo();
}
}
},
boxButtons: [
{ return: "CANCEL", close: true, label: mensagemResource["Nao"].toUpperCase() },
{ return: "CONFIRM", close: true, label: mensagemResource["Sim"].toUpperCase() }
]
});
} else {
if (onExecuteNo != undefined && onExecuteNo != null) {
onExecuteNo();
}
}
} else {
if (onExecuteNo != undefined && onExecuteNo != null) {
onExecuteNo();
}
}
}
function RemoveRegistroLocal(format_key) {
//MONTAGEM DA CHAVE DO LOCAL STORAGE
var id_pessoa_logada = BuscaClaim("ID");
var keyLocal = String.format("{0}_{1}", format_key, id_pessoa_logada);
//REMOVE REGISTRO
localStorage.removeItem(keyLocal);
}
//#endregion
//#region Modal para eventos casuais
//Autor: Wesley
//Quando estava desenvolvendo a tela de Exame, surgiu um caso em que a pessoa tinha que confirmar varias modais consecutivas
//Coisa chata de se fazer, criei essa função para que quando passar uma lista de mensagens para ela, ela mesmo tratar a exibição consecutivas dela
//-> lista_mensagem: Lista de mensagens a serem exibidas na cada modal (cada item dessa lista é exibido em uma modal)
//-> idx: A função é recursiva e utiliza esse parametro para identificar a posição de lista_mensagem, quando é feita a chamada inicial dessa função o valor sempre deverá ser 0
//-> fnSuccess: Quando concluir a exibição de todas mensagens, caso possua alguma função especifica a ser executada, a mesma deverá ser passada neste parametro
//Formato do objeto de lista_mensagem
//var obj = {
// titulo: "" //Titulo da modal
// mensagem: "" //LISTA de mensagens a ser exibida na mesma modal
// html: "" // Html a ser inserio apos a lista de mensagem
// confirma: function() {} //Função a ser executada caso o usuário pressione o botão de confirmar (SIM)
// cancela: function() {} //Função a ser executada caso o usuário pressione o botão de cancelar (NÃO)
//}
function ConfirmaPendencias(lista_mensagem, idx, fnSuccess, bloqueiaOperacao) {
var mensagem = {};
var buttons = [];
var cancelou_pendencias = false;
var strLabel = "", strMensagem = "";
let listaResourceGeral = ["Cancelar", "Confirmar", "ErrosNaoIgnorados", "SairDaContaDesteUsuario"];
let mensagemResource = {};
mensagemResource = GetResource("Geral", listaResourceGeral);
strLabel = ' ';
if (!$.isEmpty(lista_mensagem) && lista_mensagem.length > 0 && idx < lista_mensagem.length) {
mensagem = lista_mensagem[idx];
if ($.isArray(mensagem.mensagem)) {
if (bloqueiaOperacao) {
strMensagem += String.format(strLabel, mensagemResource["ErrosNaoIgnorados"]);
}
$.each(mensagem.mensagem, function (i, msg) {
strMensagem += String.format(strLabel, msg);
});
} else if (!$.isEmpty(mensagem.mensagem)) {
strMensagem = String.format(strLabel, mensagem.mensagem);
}
if (!$.isEmpty(mensagem.html)) {
strMensagem += mensagem.html;
}
if (!$.isEmpty(mensagem.confirma)) {
var close = idx != (lista_mensagem.length - 1) || mensagem.closeConfirm == false ? false : true
buttons.push({ return: "CONFIRM", close: (close && (lista_mensagem.length - 1 == idx)), label: mensagemResource["Confirmar"].toUpperCase() });
}
if (!$.isEmpty(mensagem.cancela) || !$.isEmpty(mensagem.confirma)) {
buttons.push({ return: "CANCEL", close: mensagem.ignoraCancelamento != true ? true : false, label: mensagemResource["Cancelar"].toUpperCase() });
}
if (buttons.length <= 0 || !$.isEmpty(mensagem.ok)) {
var close = idx != (lista_mensagem.length - 1) || mensagem.closeConfirm == false ? false : true
buttons.push({ return: "OK", close: close, label: "OK" });
}
if (mensagem.desloga) {
buttons.push({
return: "EXIT", close: true, iconClass: "fa fa-sign-out", props: {
element: "a",
attribs: {
href: raizAplicacao + "Home/Logout",
title: mensagemResource["SairDaContaDesteUsuario"]
}
}
});
}
$.allSIGEDynamicMessageBox({
boxMessage: strMensagem,
boxTitle: mensagem.titulo.toUpperCase(),
boxSize: !$.isEmpty(mensagem.size) ? mensagem.size : (!$.isEmpty(mensagem.html) ? "lg" : "sm"),
boxType: (bloqueiaOperacao || mensagem.bloqueia) ? "error" : "alert",
boxButtonDefaultPosition: 1,
boxShowHeaderControls: false,
boxShortcuts: { enabled: !(bloqueiaOperacao || mensagem.bloqueia) },
closeOnClickModal: false,
boxButtons: buttons,
onAfterShow: function () {
InicializaComponentesErro();
if (!$.isEmpty(mensagem.show)) {
mensagem.show();
}
},
onSuccess: function (resultado) {
var status = resultado.result;
if (status == "CONFIRM" || status == "OK") {
if (status == "CONFIRM") {
if (!$.isEmpty(mensagem.confirma)) {
if (mensagem.confirma() == false)
idx = 999999;
}
} else if (status == "OK") {
if (!$.isEmpty(mensagem.ok)) {
if (mensagem.ok() == false)
idx = 99999;
}
}
} else if (status == "CANCEL") {
if (mensagem.ignoraCancelamento != true) {
cancelou_pendencias = true;
}
if (!$.isEmpty(mensagem.cancela)) {
mensagem.cancela();
}
}
ConfirmaPendencias(lista_mensagem, (idx + 1), fnSuccess);
//Chamado #20220568 suspenso
////Se for bloqueio, não chama a próxima pendência até o bloqueio ser resolvido
//if (!(bloqueiaOperacao || mensagem.bloqueia)) {
// //Impede que o fechamento de um modal quebre a sequência
// setTimeout(ConfirmaPendencias.bind(null, lista_mensagem, (idx + 1), fnSuccess), 1000);
//}
}
});
} else if ((idx == lista_mensagem.length) && !cancelou_pendencias) {
if (!$.isEmpty(fnSuccess)) {
fnSuccess();
}
}
return cancelou_pendencias;
}
function ModalInformativa(mensagem, titulo, onFunction) {
var strLabel = ' ';
mensagem = String.format(strLabel, mensagem);
if ($.isEmpty(titulo)) {
titulo = mensagemResourceGlobal["Informacao"].toUpperCase();
}
$.allSIGEDynamicMessageBox({
boxMessage: mensagem,
boxTitle: titulo.toUpperCase(),
boxSize: "sm",
boxType: "info",
boxButtonDefaultPosition: 1,
boxShowHeaderControls: false,
closeOnClickModal: true,
onSuccess: function (resultado) {
if (!$.isEmpty(onFunction)) {
onFunction();
}
}
});
}
function ModalErro(mensagem, titulo, onFunction) {
var strLabel = ' ';
var strHtml = String.format(strLabel, mensagemResourceGlobal["MsgDuranteOperacaoOcorreramAlgunsErros"]);
if (!$.isEmpty(mensagem)) {
strHtml = "";
if (Array.isArray(mensagem)) {
$.each(mensagem, function (i, m) {
strHtml += String.format(strLabel, "- " + m);
});
} else {
strHtml = String.format(strLabel, mensagem);
}
}
if ($.isEmpty(titulo)) {
titulo = mensagemResourceGlobal["Erro"].toUpperCase();
}
$.allSIGEDynamicMessageBox({
boxMessage: strHtml,
boxTitle: titulo.toUpperCase(),
boxSize: "sm",
boxType: "error",
boxButtonDefaultPosition: 1,
boxShowHeaderControls: false,
closeOnClickModal: false,
onSuccess: function (resultado) {
if (onFunction != undefined) {
onFunction();
}
}
});
}
function ModalConcluida(onFunction, strMensagem) {
if ($.isEmpty(strMensagem)) {
strMensagem = mensagemResourceGlobal["OperacaoConcluida"];
}
var strHtml = String.format('', strMensagem);
$.allSIGEDynamicMessageBox({
boxMessage: strHtml,
boxTitle: mensagemResourceGlobal["OperacaoConluidaTitulo"],
boxSize: "sm",
boxType: "success",
boxButtonDefaultPosition: 1,
closeOnClickModal: false,
boxShowHeaderControls: false,
onSuccess: function (objReturn) {
if (objReturn.result == "CONFIRM") {
if (!$.isEmpty(onFunction)) {
onFunction();
}
}
},
boxButtons: [{ return: "CONFIRM", close: true, label: "OK" }]
});
}
function ExigeSenha(fnSuccess, fnError, bClose, bForcaExibicao, bSair) {
var buttons = [{ return: "OK", close: bClose, label: "OK" }];
if (bSair == true) {
buttons.push({
return: "EXIT", close: true, iconClass: "fa fa-sign-out", props: {
element: "a",
attribs: {
href: raizAplicacao + "Home/Logout",
title: mensagemResourceGlobal["SairDaContaDesteUsuario"]
}
}
});
}
$.allSIGEDynamicMessageBox({
boxMessage: GetPartialView("Pessoa/Login/ConfirmaSenhaPartial", "GET").responseText,
boxTitle: mensagemResourceGlobal["InformeSenha"].toUpperCase(),
boxSize: "sm",
boxType: "alert",
boxButtonDefaultPosition: 1,
boxShowHeaderControls: false,
closeOnClickModal: bForcaExibicao != true,
boxFocusOnLoad: { selector: "#txtSenhaLogin" },
boxShortcuts: { enabled: false },
boxButtons: buttons,
onSuccess: function (resultado) {
if (resultado.result == "OK") {
if (!$.isEmpty($("#txtSenhaLogin").val())) {
$.ajaxSetup({ async: false });
$.post(raizAplicacao + "Pessoa/Login/ValidaPessoaLogin", { senha: $("#txtSenhaLogin").val() }, function (resultado) {
var status = resultado.msg;
if (status == "SUCCESS") {
if (resultado.result) {
fnSuccess();
} else {
GeraErro("#txtSenhaLogin", mensagemResourceGlobal["SenhaInformadaNaoValida"]);
$("#txtSenhaLogin").focus();
fnError();
}
} else {
fnError();
}
});
$.ajaxSetup({ async: true });
} else {
fnError();
}
}
}
});
}
//#endregion
function OrganizaResponsivo() {
$(".row > div").each(function () {
if (this.className.indexOf("col-lg") >= 0 &&
this.className.indexOf("col-md") < 0 &&
this.className.indexOf("col-sm") < 0) {
//Cada coluna do bootstrap tem 8.33% de lagura
var valorPadrao = 8.333;
//Extrai a quantidade de coluna que está sendo utilizada na div
var numeroColuna = parseInt(this.className.split(" ").find(function (x) { return x.indexOf("col-lg") >= 0 }).replace("col-lg-", ""));
if (!isNaN(numeroColuna)) {
//Para disposistivos com largura acima de 992px a representativa de é a classe col-lg-*
//Para disposistivos com largura de até 768px a representativa de é a classe col-md-*
//Para disposistivos com largura de até 576px a representativa de é a classe col-sm-*
var qtdColunaMd = Math.ceil((768 * valorPadrao) / 992);
var qtdColunaSm = Math.ceil((576 * valorPadrao) / 992);
$(this).addClass("col-md-" + qtdColunaMd);
$(this).addClass("col-sm-" + qtdColunaSm);
}
}
});
}
function ValidaRacaProduto(id_raca_resultante, id_categoria_resultante, id_raca1, id_raca2) {
var retorno = false;
var formData = new FormData();
formData.append("id_raca_resultante", id_raca_resultante);
formData.append("id_categoria_resultante", id_categoria_resultante);
formData.append("id_raca1", id_raca1);
formData.append("id_raca2", id_raca2);
$.CallAjax("ValidaRacaResultante", "Raca", "Parametros", formData).success(function (result) {
if (result.msg == "SUCCESS") {
retorno = result.result;
}
});
return retorno;
}
function ValidaRacaResultante(id_raca_resultante, id_categoria_resultante, id_raca1, id_raca2, exibe_mensagem, onFunction) {
if (id_raca_resultante > 0 && id_categoria_resultante > 0 && id_raca1 > 0 && id_raca2 > 0) {
if (id_categoria_resultante == 4 || id_categoria_resultante == 8 || id_categoria_resultante == 6) {
return true;
}
retorno = ValidaRacaProduto(id_raca_resultante, id_categoria_resultante, id_raca1, id_raca2);
if (!retorno) {
if (PessoaParticipaGrupo(148)) {
retorno = true;
}
if (exibe_mensagem) {
var strLabel = '';
strLabel = String.format(strLabel, mensagemResourceGlobal["RacaInvalidaMensagem"]);
$.allSIGEDynamicMessageBox({
boxMessage: strLabel,
boxTitle: mensagemResourceGlobal["RacaInvalidaTitulo"],
boxSize: "sm",
boxType: "alert",
closeOnClickModal: false,
boxButtonDefaultPosition: 2,
boxShowHeaderControls: false,
onSuccess: function (objReturn) {
if (objReturn.result == "CONFIRM") {
if (onFunction != undefined) {
onFunction();
}
}
},
boxButtons: [
{ return: "CANCEL", close: true, iconClass: "fa fa-times" },
{ return: "CONFIRM", close: true, iconClass: "fa fa-check" }
]
});
}
}
}
return retorno;
}
function BuscaSituacoesAnimal(id_produto, lista_sigla, excluida) {
var lista_situacao_produto = [];
//Verifica se foi informado um id de produto valido
if (!$.isEmpty(id_produto) && id_produto > 0) {
//Monta parametros a serem enviados pro servidor
var params = { id_produto: id_produto };
//Caso tenha interesse de buscar situações especificas de animais, informa apenas a sigla delas
if (!$.isEmpty(lista_sigla) && lista_sigla.length > 0) {
params["lista_sigla"] = lista_sigla
}
//Caso queira exibir as excluidas também
if (!$.isEmpty(excluida)) {
params["excluida"] = excluida;
}
//Envio servidor
$.ajaxSetup({ async: false });
jQuery.ajaxSettings.traditional = true;
$.get(raizAplicacao + "Produto/Produto/BuscaSituacaoAnimal", params, function (resultado) {
var status = resultado.msg;
//Verifica se foi realizado a busca com sucesso
if (status == "SUCCESS") {
//Caso tenha informado apenas o id do produto, retorna todas as situações
//Caso tenha informado as siglas, retorna todas as situações existentes para o produto dentro das siglas que ele informou.
lista_situacao_produto = resultado.result;
} else {
//Caso não exibe uma mensagem para o usuário
ModalErro();
}
});
$.ajaxSetup({ async: true });
jQuery.ajaxSettings.traditional = false;
}
//Retorno
return lista_situacao_produto;
}
function quebraRgn(rgn) {
var numero = '';
var letras = '';
if (rgn) {
for (var i = 0; i < rgn.length; i++) {
var posicao = parseInt(rgn[i]);
if (!isNaN(posicao)) {
numero += posicao.toString();
} else {
letras += rgn[i];
}
}
}
var arrayRetorno = [];
arrayRetorno[1] = letras;
arrayRetorno[2] = numero;
return arrayRetorno;
}
function FechaModal() {
if (!$.isEmpty(allSIGEModal) && !$.isEmpty(allSIGEModal.closeModal)) {
allSIGEModal.closeModal();
}
}
function InicializaComponentesErro() {
let listaResourceGeral = ["CampoObrigatorio", "PorFavorEntreComUmaInformacaoEquivalente", "PorFavorInsiraApenasDigitos", "PorFavorInsiraApenasNumerosNesteCampo", "PorFavorInsiraNumeroCartaoCreditoValido", "PorFavorInsiraNumeroMaiorOuIgual", "PorFavorInsiraUmEmailValido", "PorFavorInsiraUmNumeroMenorOuIgual", "PorFavorInsiraUmaDataInferiorDataAtual", "PorFavorInsiraUmaDataValida", "PorFavorInsiraUmaDataValidaISO", "QuantidadeCaracteresMaximaParaEsseCampo", "QuantidadeCaracteresMinimaParaEsseCampo"];
let mensagemResource = {};
mensagemResource = GetResource("Geral", listaResourceGeral)
$(".erroTooltip").parent().css("position", "relative").addClass("hoverInput");
$(".alertTooltip").parent().css("position", "relative").addClass("hoverInput");
var mensagemErro = {
creditcard: mensagemResource["PorFavorInsiraNumeroCartaoCreditoValido"],
date: mensagemResource["PorFavorInsiraUmaDataValida"],
dateISO: mensagemResource["PorFavorInsiraUmaDataValidaISO"],
digits: mensagemResource["PorFavorInsiraApenasDigitos"],
email: mensagemResource["PorFavorInsiraUmEmailValido"],
equalTo: mensagemResource["PorFavorEntreComUmaInformacaoEquivalente"],
number: mensagemResource["PorFavorInsiraApenasNumerosNesteCampo"],
required: mensagemResource["CampoObrigatorio"],
max: function (numeroMaximo) {
return String.format(mensagemResource["PorFavorInsiraUmNumeroMenorOuIgual"], numeroMaximo);
},
maxlength: function (tamanhoMaximo) {
return String.format(mensagemResource["QuantidadeCaracteresMaximaParaEsseCampo"], tamanhoMaximo);
},
min: function (numeroMinimo) {
return String.format(mensagemResource["PorFavorInsiraNumeroMaiorOuIgual"], numeroMinimo);
},
minlength: function (tamanhoMinimo) {
return String.format(mensagemResource["QuantidadeCaracteresMinimaParaEsseCampo"], tamanhoMinimo);
}
}
//Caso possua jQueryValidate na página uma função de validação de datas é adicionada ao campo
if (!$.isEmpty($.validator) && !$.isEmpty(isValidDate)) {
jQuery.validator.addMethod("_validDate", function (value, element, options) {
if ($(element).hasClass("required") && $.isEmpty(value)) {
$.validator.messages["_validDate"] = mensagemResource["CampoObrigatorio"];
return false;
} else {
var retornoValidacao = isValidDate($(element).val());
if (!$.isEmpty(retornoValidacao) && retornoValidacao != true) {
$.validator.messages["_validDate"] = retornoValidacao;
$(element).siblings('span').text(retornoValidacao);
return false;
} else {
let dataInformada = Date.format($(element).val());
if (dataInformada > new Date() && !$(element).hasClass('permiteDataAcimaDaAtual')) {
$.validator.messages["_validDate"] = mensagemResource["PorFavorInsiraUmaDataInferiorDataAtual"];
$(element).siblings('span').text(mensagemResource["PorFavorInsiraUmaDataInferiorDataAtual"]);
return false;
}
}
$(element).siblings('span').text('');
return true;
}
});
jQuery.validator.classRuleSettings._validDate = { _validDate: true };
} else {
$(document).off("focusout").on("focusout", ".hasDatepicker", function () {
var strResultado = isValidDate($(this).val());
GeraErro($(this), strResultado == true ? "" : strResultado);
});
}
if (!$.isEmpty($.validator)) {
$.validator.messages = $.extend({}, $.validator.messages, mensagemErro);
jQuery.validator.addMethod("_erroPersonalizado", function (value, element, options) {
if (!$.isEmpty($.validator.messages["_erroPersonalizado"])) {
return false;
}
return true;
});
jQuery.validator.classRuleSettings._erroPersonalizado = { _erroPersonalizado: true };
jQuery.validator.setDefaults({
onkeyup: false,
errorElement: "span",
errorClass: "input-validation-error",
ignore: [],
errorPlacement: function (error, element) {
$(error).addClass("field-validation-error");
if (element.siblings("span.erroTooltip").length > 0) {
$(element).siblings("span.erroTooltip").text($(error).text());
} else {
$(element).after(error);
}
},
success: function (error, element) {
$(element).removeClass("input-validation-error").removeClass("_erroPersonalizado").siblings("span.erroTooltip").text("").removeClass("field-validation-error");
}
})
}
}
function RemoverAcentos(s) {
var map = { "â": "a", "Â": "A", "à": "a", "À": "A", "á": "a", "Á": "A", "ã": "a", "Ã": "A", "ê": "e", "Ê": "E", "è": "e", "È": "E", "é": "e", "É": "E", "î": "i", "Î": "I", "ì": "i", "Ì": "I", "í": "i", "Í": "I", "õ": "o", "Õ": "O", "ô": "o", "Ô": "O", "ò": "o", "Ò": "O", "ó": "o", "Ó": "O", "ü": "u", "Ü": "U", "û": "u", "Û": "U", "ú": "u", "Ú": "U", "ù": "u", "Ù": "U", "ç": "c", "Ç": "C" };
return s.replace(/[\W\[\] ]/g, function (a) { return map[a] || a });
}
//function FormataRG(id_raca, registro) {
function FormataRG(registro) {
var rgFormatado = "";
// if (!$.isEmpty(id_raca) && id_raca > 0 && !$.isEmpty(registro)) {
if (!$.isEmpty(registro)) {
$.ajaxSetup({ async: false });
//$.get(raizAplicacao + "Produto/Produto/FormataRG", { id_raca: id_raca, registro: registro }, function (resultado) {
$.get(raizAplicacao + "Produto/Produto/FormataRG", { registro: registro }, function (resultado) {
var status = resultado.msg;
if (status == "SUCCESS") {
rgFormatado = resultado.result;
} else {
ModalErro();
}
});
$.ajaxSetup({ async: true });
}
return rgFormatado;
}
function BuscaRacaProduto(id_raca) {
VerificaRacaCategoria();
var racaAtual = null;
if (!$.isEmpty(busca_avancada_produto_raca)) {
$.each(busca_avancada_produto_raca, function (i, raca) {
if (raca.id == id_raca) {
racaAtual = raca;
return false;
}
});
}
return racaAtual;
}
function BuscaCategoriaProduto(id_categoria) {
VerificaRacaCategoria();
var categoriaAtual = null;
if (!$.isEmpty(busca_avancada_produto_categoria)) {
$.each(busca_avancada_produto_categoria, function (i, categoria) {
if (categoria.id == id_categoria) {
categoriaAtual = categoria;
return false;
}
});
}
return categoriaAtual;
}
function fnVerificaModoInativo(inicializaInativo) {
//Função a ser executada quando o usuário ficar mais que 20 minutos inativo
var fnSenha = function () {
ExigeSenha(function () {
fnVerificaModoInativo(false);
FechaModal();
}, function () { }, false, true, true);
$("#formLoginUsuario .txtConfirmaSenha").text(mensagemResourceGlobal["MsgUsuarioInativo20Minutos"]);
InicializaComponentesErro();
}
//Caso o usuário tente burlar o sistema, exemplo:
//Passou os 20 minutos, ai ele recarrega a página querendo que a modal suma, nesse caso não vai sumir.
if (inicializaInativo) {
fnSenha();
} else {
let strChave = "strClockInativo" + id_pessoa_login;
//Captura os eventos afim de manter sempre o ultimo momento
$(document).on("click blur focusin focusout change mousehover mouseout", function (event) {
window.localStorage.setItem(strChave, new Date().valueOf());
});
//Cria uma rotina para ficar verificando de minuto em minuto, se o usuário excedeu o tempo
let intervaloExecucao = setInterval(function () {
if (!$.isEmpty(window.localStorage.getItem(strChave))) {
//Pega o último momento que o usuário fez alguma ação na janela
let ultimoEvento = parseInt(window.localStorage.getItem(strChave));
//Caso excedeu o tempo, grava uma claim para o usuário, para bloquear que o mesmo faça alterações em outras telas
if ((ultimoEvento + 1.2e+6) <= new Date().valueOf()) {
$.post(raizAplicacao + "Base/InativaUsuario", null, function (resultado) {
if (resultado.msg == "SUCCESS") {
//Limpa o intervalo atual, para não abrir várias modais
clearInterval(intervaloExecucao);
//Chama a modal exigindo a senha do usuário.
fnSenha();
}
});
}
}
}, 1000);
}
}
function VerificaRacaCategoria() {
var strLocalRacaCategoria = localStorage.getItem("raca_categoria");
if (strLocalRacaCategoria != "" && strLocalRacaCategoria != null) {
//var dstrRaca = strLocalRacaCategoria.toData("D");
var objRacaCategoria = JSON.parse(strLocalRacaCategoria);
let dataFinal = moment(new Date().toLocaleDateString("PT-BR"), "DD/MM/YYYY");
let dataInicial = moment(new Date(objRacaCategoria.data), "DD/MM/YYYY HH:mm:ss");
let diferenca = moment.duration(dataFinal.diff(dataInicial));
if (diferenca.hours() < 1) {
busca_avancada_produto_categoria = objRacaCategoria.categoria;
busca_avancada_produto_raca = objRacaCategoria.raca;
} else {
busca_avancada_produto_categoria = [];
busca_avancada_produto_raca = [];
}
}
if (busca_avancada_produto_categoria.length == 0 || busca_avancada_produto_raca.length == 0) {
$.CallAjax("BuscaRacaCategoria", "Produto", "Produto", null).success(function (result) {
if (result.msg == "SUCCESS") {
busca_avancada_produto_categoria = result.result.categoria_produto;
busca_avancada_produto_raca = result.result.raca_produto;
var objRacaCategoria = new Object();
objRacaCategoria.raca = result.result.raca_produto;
objRacaCategoria.categoria = result.result.categoria_produto;
objRacaCategoria.data = new Date();
//var strRC = JSON.stringify(objRacaCategoria);
localStorage.setItem("raca_categoria", JSON.stringify(objRacaCategoria));
}
});
}
}
function fnBuscaResource(strResource, listaChave) {
var txtCultura = $.isEmpty(strCultura) ? "pt-BR" : strCultura;
var objRetorno = {};
$.each(listaResource, function (i, resource) {
if (resource.NomeResource == strResource && resource.Linguagem == txtCultura) {
resource.Propriedades.filter(function (x) {
if ($.inArray(x.NomePropriedade, listaChave) >= 0) {
objRetorno[x.NomePropriedade] = x.ValorPropriedade;
}
});
return false;
}
});
return objRetorno
}
function PermiteOrgaoFazenda(id_fazenda) {
var permiteOrgao = false
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "OrgaoExecutor/PermiteOrgaoFazenda", { id_fazenda: id_fazenda }, function (resultado) {
if (resultado.msg == "SUCCESS") {
permiteOrgao = resultado.result;
} else {
ModalErro(resultado.result);
}
});
$.ajaxSetup({ async: true });
return permiteOrgao;
}
function ModalLog(id, strTabela, fnConfirm) {
var dt = new FormData();
dt.append("tabela", strTabela);
dt.append("chave", id);
$.CallAjax("GetLogPartialViewJson", "Log", null, dt).success(function (r) {
if (r.msg == "OK") {
$.allSIGEDynamicMessageBox({
boxMessage: r.html,
boxTitle: "LOG",
boxSize: "sm",
boxType: "info",
closeOnClickModal: false,
boxButtons: [{ return: "CONFIRM", close: $.isEmpty(fnConfirm), label: "OK" }],
onSuccess: fnConfirm
});
}
});
}
function PessoaPossuiDebito(id_pessoa, id_orgao_executor) {
var possuiDebito = true;
if (id_pessoa > 0 && id_orgao_executor > 0) {
$.ajaxSetup({ async: false });
$.get(raizAplicacao + "Financeiro/Movimentacao/VerificaDebitoPessoa", {
id_pessoa: id_pessoa,
id_orgao_executor: id_orgao_executor
}, function (possui_debito) {
possuiDebito = possui_debito;
});
$.ajaxSetup({ async: true });
}
return possuiDebito;
}
function VerificaServicoImpressao() {
var servicoAtivo = false;
try {
$.ajax({
async: false,
type: "GET",
url: "http://localhost:8686/Impressao/VerificarServicoAtivo",
success: function (resultado, text) {
servicoAtivo = (resultado == "OK");
},
error: function (request, status, error) {
servicoAtivo = false;
}
});
} catch (e) { }
return servicoAtivo;
}
function SolicitaImpressaoServico(urlData, tipoRelatorio, parm) {
var solicitouServico = false;
if (VerificaServicoImpressao()) {
$.get("http://localhost:8686/Impressao/GerarRelatorio", {
strUrlData: urlData,
tipoRelatorio: tipoRelatorio,
parametroImpressao: parm
}, function (resultado) {
solicitouServico == (resultado == "OK");
});
} else {
ModalErro(mensagemResourceGlobal["ServicoDeImpressaoNaoFoiInicializadoComputador"]);
}
return solicitouServico;
}
function OrganizarLayout() {
var listaTamanho = [];
for (var i = 1; i <= 12; i++)
listaTamanho.push([i, i, i]);
$.each($('[class^="col-"]'), function (i, seletor) {
var listaClasse = $(seletor).attr("class").split(" ");
var valorSM = 0, valorMD = 0, valorLG = 0;
$.each(listaClasse, function (i, classe) {
if (classe.indexOf("col-sm-") >= 0) {
valorSM = parseInt(classe.replace("col-sm-", ""));
}
if (classe.indexOf("col-md-") >= 0) {
valorMD = parseInt(classe.replace("col-md-", ""));
}
if (classe.indexOf("col-lg-") >= 0) {
valorLG = parseInt(classe.replace("col-lg-", ""));
}
});
if (valorSM <= 0 & (valorLG > 0 || valorMD > 0)) {
valorSM = listaTamanho[(valorLG || valorMD) - 1][0];
}
if (valorMD <= 0 & (valorLG > 0 || valorSM > 0)) {
valorMD = listaTamanho[(valorLG || valorSM) - 1][0];
}
if (valorLG <= 0 & (valorSM > 0 || valorMD > 0)) {
valorLG = listaTamanho[(valorSM || valorMD) - 1][0];
}
$(seletor).addClass("col-lg-" + valorLG);
$(seletor).addClass("col-md-" + valorMD);
$(seletor).addClass("col-sm-" + valorSM);
});
}
function BuscaArquivoDisponibilizado() {
$.get(raizAplicacao + "Arquivo/BuscaArquivoDisponibilizado", null, function (resultado) {
if (resultado.msg == "SUCCESS" && !$.isEmpty(resultado.result)) {
$("#icone-download").closest(".icone-nav").show();
let listaArquivo = resultado.result;
$.each(listaArquivo, function (i, arquivo) {
let liElement = $('
', item.href, item.font, item.nome);
} else {
//Tem que deixar o onclick na div devido ao iOS
//Quando clica na div que não possui "nenhuma ação", ele seleciona o texto ao invés de executar a ação do CSS
//Fazendo com que o menu lateral não abra.
strHtml += '
' +
'
' +
'
' +
'
' +
'' +
'{1}' +
'
' +
'
' +
'
' +
'{2}' +
'
' +
'
' +
'
';
var strHtmlSub = SubMenuLateral(item.ListaItem);
strHtml = String.format(strHtml, item.font, item.nome, strHtmlSub);
}
});
$("#geral li").before(strHtml);
}
function OrganizaMenu(itemMenu) {
var listaNova = [];
var listaAuxiliar = listaMenu.filter(function (x) { return !$.isEmpty(x.MenuSigen) && x.MenuSigen.id == itemMenu.id });
while (listaAuxiliar.length != 0) {
var item = listaAuxiliar[0];
listaAuxiliar.splice(0, 1);
var listaFilha = OrganizaMenu(item);
if ((!$.isEmpty(item.href) && item.permite_todos) || listaFilha.length > 0) {
item.ListaItem = listaFilha;
listaMenu = listaMenu.filter(function (x) { return x.id != item.id });
listaNova.push(item);
}
if (item.atalho_cadastro && item.permite_todos && !$.isEmpty(item.href)) {
GeraItemNovo(item);
}
};
return listaNova;
}
//#region FUNÇÃO PARA MONTAGEM DE MENU
function SubMenuLateral(lista_item) {
var strHtml = "";
$.each(lista_item, function (j, subItem) {
if (subItem.ListaItem == null || subItem.ListaItem.length == 0) {
strHtml += String.format('
';
strHtml += '';
strHtml = String.format(strHtml, subItem.nome);
}
});
return strHtml;
}
//#endregion
//Chamado #20220568 suspenso
// #region Rotina de validação de tarefas
//window.addEventListener("focus", VerificaTarefasSigen); //Força verificação quando página recuperar foco
//window.addEventListener("blur", RoutineClear); //Cancela verificações quando perder o foco
////Arrays para identificar rotinas em intervalos existentes
//var intervalIDs = [];
//var timeoutIDs = [];
//var inbetweenTime = 120000; //2min
//function VerificaTarefasSigen() {
// let lastCheck = localStorage.getItem("lastCheck"); //Verifica se localstorage possui ultima checagem
// if (lastCheck) { //Se existir
// let msFromLastCheck = new Date().getTime() - new Date(lastCheck).getTime(); //Milisegundos desde a ultima checagem
// if (msFromLastCheck < inbetweenTime) { //Se for menor que o tempo definido entre execuções
// timeoutIDs.push(setTimeout(AlertCheck, inbetweenTime - msFromLastCheck)); //Seta delay de execução para quanto tempo falta até a próxima
// AtualizaQuantidadeCartas(null); //Seta os últimos registros do storage no campo enquanto espera a próxima busca
// } else { //Senão
// AlertCheck(); //Executa imediatamente
// }
// } else { //Senão
// AlertCheck(); //Executa imediatamente
// }
//}
//function AlertCheck() {
// AtualizaTarefas(); //Chama atualização de tarefas
// if (intervalIDs.length == 0) { //Se não existir alert programado, insere um
// intervalIDs.push(setInterval(AlertCheck, inbetweenTime)) //Seta a próxima execução para o tempo definido após o final da atual
// }
//}
//function RoutineClear() { //Limpa as rotinas em segundo plano
// //Limpa os intervals criados na instancia
// intervalIDs.forEach((id) => {
// clearInterval(id);
// });
// //Limpa os timeouts criados na instancia
// timeoutIDs.forEach((id) => {
// clearTimeout(id);
// })
// //Reinicializa as variáveis
// intervalIDs = [];
// timeoutIDs = [];
//}
//function AtualizaTarefas() {
// if (window.location.href.indexOf("SigenLogin") == -1) { //Se não for tela de Login
// //Verifica a quantidade de tarefas para o perfil logado
// $.CallAjax("VerificaQuantidadeDeCartasParaCriadorConferenteGerenteESuperintendente", "Correspondencia", "Comunicacao", null).success(function (result) {
// if (result.msg == "SUCCESS") {
// localStorage.setItem("lastCheck", new Date()) //Atribui quando foi feita a última checagem ao localStorage
// localStorage.setItem("quantidade_de_tarefas_ou_sac", result.obj.quantidade_de_cartas); //Quantidade de cartas na notificação
// AtualizaQuantidadeCartas(result.obj.cargo)
// }
// });
// }
//}
//function AtualizaQuantidadeCartas(cargo) {
// const qtdCartas = localStorage.getItem("quantidade_de_tarefas_ou_sac");
// $(".quantidade_de_tarefas_ou_sac").closest("li").removeClass("alerta-menuLateral"); //Remove animação de atenção necessária
// if (qtdCartas > 0) { //Se houver ocorrências
// $('#geral li').find('.quantidade_de_tarefas_ou_sac').text(qtdCartas); //Atribui quantidade de ocorrências ao campo
// $('#geral li').find('.quantidade_de_tarefas_ou_sac').css("background-color", "blue");
// if (cargo) { //Se foi informado, faz a checagem de acordo com o que foi enviado
// if (["g", "s"].includes(cargo)) { //Caso seja gerente ou superintendente joga a cor vermelha, pq sao as cartas em aberto por mais de 24 horas
// $('#geral li').find('.quantidade_de_tarefas_ou_sac').css("background-color", "red");
// }
// if (cargo == "f") { //Alerta apenas para funcionário
// $(".quantidade_de_tarefas_ou_sac").closest("li").addClass("alerta-menuLateral"); //Adiciona animação de atenção necessária
// }
// } else { //Senão, chama método para verificar cargo
// if (VerificaGerenteOuSuperint()) { //Caso pessoa logada seja superint. ou gerente
// $('#geral li').find('.quantidade_de_tarefas_ou_sac').css("background-color", "red");
// }
// }
// }
//}
//function VerificaGerenteOuSuperint() {
// let response = false;
// $.CallAjax("VerificaGerenteOuSuperintendente", "Grupo", "Sistemas", null).success(function (result) {
// if (result.msg == "SUCCESS") {
// response = result.result;
// }
// });
// return response;
//}
// #endregion;