71
| <![CDATA[<script>
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* GLOBAIS */
/* MAPA */
var leafLetMap; // MAPA
var leafLetMapCenter; // CENTRO DO MAPA
var markers = []; // ARRAY COM SO MARCADORES
var markersAgrupados = {}; // ARRAY COM SO MARCADORES AGRUPADOS
const cidadeLatLng = [-19.0357, -43.4248]; // LAT LNG DA CIDADE
const zoomMax = 18; // ZOOM MAXIMO
const zoomMin = 11; // ZOOM MINIMO
/* MAPA */
/* OBRAS */
const seguirObra = false;
/* OBRAS */
/* LAYOUT */
var divMenuObras;
var botaoMenuDetalhes; // REFERENCIA GLOBAL DO BOTAO DETRALHES
var botaoVerMapa = $("#btn_ver_mapa");
/* LAYOUT */
/* PAGINA */
var $document;
var $window;
var $body;
/* PAGINA */
/* FILTROS */
var dadosExibir; // AUXILIAR PARA EXIBICAO DOS DADOS APOS A FILTRAGEM
var formFiltrar;
var inputPeriodoInicial;
var inputPeriodoFinal;
var inputsBairro;
var inputsLogradouro;
var inputsCategoria;
var inputsSituacao;
var inputPalavraChave;
var selectRelatorioFiltroAno;
var divsRelatorioInfo;
var divRelatorioTotalExecutadas;
var divRelatorioTotalConcluidas;
var divRelatorioTotalEmAndamento;
var divRelatorioTotalSuspensas;
var divRelatorioTotalEmProjeto;
var divRelatorioTotalAcompanhamentos;
var divRelatorioTotalContratos;
var divRelatorioTotalValor;
var filtrosFormulario;
/* FILTROS */
/* LISTAGEM */
var divAreaListagem;
var divResultados;
var spanQtdeResultado;
var spanObrasEncontradas;
var divListagemObras;
/* LISTAGEM */
/* DETALHES */
var divAreaDetalhes;
var btnSeguirObra;
var btnAvaliarObra;
var divCategoriaObra;
var divLocalizacaoObra;
var divEditalObra;
var divContratoObra;
var divEmpresaObra;
var divFiscalObra;
var divValorObra;
var divValorPagoObra;
var spanValorPago;
var divDescricao;
var divFonteRecurso;
var divMotivoParalisacao;
var divExecucaoObra;
var divSituacao;
var spanSituacao;
var divDataInicio;
var divDataFim;
var divObraAtraso;
var divAcompanhamentosObras;
var divTotalAcompanhamentos;
var spanTotalPorcentagem;
var divFotosObra;
var divContFotos;
var divVideosObra;
var divArquivosObra;
var divSecretariasObra;
var divValorContrato;
var spanValorContrato;
var divValorUtilizado;
var spanValorPagoFinal;
// var divPrazoEstimado;
var divPrazoRealizacao;
/* DETALHES */
/* PAGINACAO */
const qtdePorPagina = 100;
var selectPagina;
var divAvancaPagina;
var divVoltaPagina;
/* PAGINACAO */
/* MODELOS */
const htmlSecretariaModelo =
'<a href="" class="obr_secretaria_modelo">'+
'<div class="obr_secretaria_vinculada">'+
'<div class="obr_area_img_secretaria"><img src="" alt=""></div>'+
'<div class="obr_area_info_secretaria">'+
'<div class="obr_nome_secretaria sw_lato_black"></div>'+
'</div>'+
'</div>'+
'</a>';
const secretariaModelo = $(htmlSecretariaModelo);
const htmlArquivoMoldeo =
'<a href="" class="obr_arquivo_modelo" target="_blank">'+
'<div class="sw_arquivo_download">'+
'<div class="sw_icone_arquivo_download"><img src="" alt=""></div>'+
'<div class="sw_info_arquivo_download">'+
'<div class="sw_data_arquivo_download sw_lato"></div>'+
'<div class="sw_nome_arquivo_download sw_lato_bold"></div>'+
'</div>'+
'</div>'+
'</a>';
const arquivoModelo = $(htmlArquivoMoldeo);
const htmlVideoModelo =
'<div class="obr_video_obra obr_video_modelo">'+
'<div class="obr_img_video">'+
'<img src="" alt="">'+
'<span class="swfa fas fa-play"></span>'+
'</div>'+
'<div class="obr_data_video"></div>'+
'<div class="obr_nome_video sw_lato_black"></div>'+
'<div class="obr_assistir_video sw_lato_medium">ASSISTIR</div>'+
'<input type="hidden" value="">'+
'</div>';
const videoModelo = $(htmlVideoModelo);
const htmlFotoModelo =
'<div class="vinc_cont_img_galeria_fotos obr_foto_modelo">'+
'<div class="vinc_img_galeria_fotos">'+
'<span class="swfa fas fa-search-plus" aria-hidden="true"></span>'+
'<img src="" alt="">'+
'</div>'+
'</div>';
const fotoModelo = $(htmlFotoModelo);
const htmlAcompanhamentoModelo =
'<div class="sw_linha_lista_detalhes obr_acompanhamento_info obr_acompanhamento_modelo" style="display: none;">'+
'<div class="obr_cont_acompanhamento_obra">'+
'<div class="obr_area_porcentagem_obra sw_lato_black">'+
'<div class="obr_barra_porcentagem_acompanhamento">'+
'<div class="obr_porcentagem_acompanhamento">'+
'<span style="min-width: 40%">40%</span>'+
'</div>'+
'</div>'+
'</div>'+
'<div class="obr_area_info_acompanhamento_obra">'+
'<div class="sw_lato_medium">'+
'<span class="obr_data_acompanhamento">10 jan 2020</span>'+
'<div class="obr_descricao_acompanhamento sw_lato_bold"></div>'+
'<span class="obr_situacao_acompanhamento"></span>'+
'<div class="obr_link_obra obr_link_ver_fotos"><span class="obr_txt_link_obra">ver fotos</span><span class="swfa fas fa-camera"></span></div>'+
'</div>'+
'</div>'+
'</div>'+
'</div>';
const acompanhamentoModelo = $(htmlAcompanhamentoModelo);
const htmlItemListaObraModelo =
'<div class="obr_item_listagem obr_item_listagem_modelo" data-id="">'+
'<div class="obr_area_titulo_obra">'+
'<div class="obr_categoria_obra sw_lato">'+
'<div class="obr_cont_categoria_obra">'+
'<span class="swfa fa"></span>'+
'<span class="obr_txt_categoria"></span>'+
'</div>'+
'</div>'+
'<div class="obr_titulo_obra sw_lato_black"></div>'+
'</div>'+
'<div class="obr_area_info_obra sw_lato">'+
'<div class="obr_info_obra obr_info_obra_situacao">'+
'<div class="obr_titulo_info sw_lato_black">Situação</div>'+
'<div class="obr_descricao_info"><span class="obr_situacao"></span></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_dt_inicio">'+
'<div class="obr_titulo_info sw_lato_black">Data Início</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_dt_fim">'+
'<div class="obr_titulo_info sw_lato_black">Data Fim</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_valor">'+
'<div class="obr_titulo_info sw_lato_black">Valor</div>'+
'<div class="obr_descricao_info"><span class="obr_valor_obra sw_lato_black"></span></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_contrato">'+
'<div class="obr_titulo_info sw_lato_black">Contrato</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_info_obra obr_info_obra_edital">'+
'<div class="obr_titulo_info sw_lato_black">Edital</div>'+
'<div class="obr_descricao_info"></div>'+
'</div>'+
'<div class="obr_area_link_obra_listagem">'+
'<div class="obr_link_obra obr_link_ver_obra"><span class="obr_txt_link_obra">ver obra</span><span class="swfa fas fa-search"></span></div>'+
'<div class="obr_link_obra obr_link_ver_fotos"><span class="obr_txt_link_obra">ver fotos</span><span class="swfa fas fa-camera"></span></div>'+
'</div>'+
'</div>'+
'</div>';
const itemListaObraModelo = $(htmlItemListaObraModelo);
/* MODELOS */
/* INICIANDO VARIAVEIS */
$(document).ready(function(){
$document = $(document);
$window = $(window);
$body = $("body");
divMenuObras = $("#obr_menu");
botaoMenuDetalhes = $("button[data-menu=obr_content_detalhes]");
botaoVerMapa = $("#btn_ver_mapa");
formFiltrar = $("#obr_form_filtro");
inputPeriodoInicial = $("#obr_periodo_inicial");
inputPeriodoInicial.datepicker();
inputPeriodoInicial.mask("99/99/9999");
inputPeriodoFinal = $("#obr_periodo_final");
inputPeriodoFinal.datepicker();
inputPeriodoFinal.mask("99/99/9999");
inputsBairro = $(".obr_filtro_bairro");
inputsLogradouro = $(".obr_filtro_logradouro");
inputsCategoria = $(".obr_filtro_categoria");
inputsSituacao = $(".obr_filtro_situacao");
inputPalavraChave = $("#obr_palavra_chave");
selectRelatorioFiltroAno = $("#obr_filtro_ano");
divsRelatorioInfo = $(".obr_area_info_relatorio_obras");
divRelatorioTotalExecutadas = divsRelatorioInfo.find(".obr_total_executadas");
divRelatorioTotalConcluidas = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_concluida");
divRelatorioTotalEmAndamento = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_em_andamento");
divRelatorioTotalSuspensas = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_suspensa");
divRelatorioTotalEmProjeto = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_em_projeto");
divRelatorioTotalAcompanhamentos = divsRelatorioInfo.find(".obr_total_acompanhamentos");
divRelatorioTotalContratos = divsRelatorioInfo.find(".obr_total_contratos");
divRelatorioTotalValor = divsRelatorioInfo.find(".obr_valor_obra");
filtrosFormulario = divMenuObras.find(".obr_formulario_filtro:not(.obr_relatorio)");
divAreaListagem = $(".obr_area_listagem");
divResultados = $(".sw_area_info_resultado_busca");
spanQtdeResultado = $("#span_qtde_obras_encontradas");
spanObrasEncontradas = $("#span_obras_encontradas");
divListagemObras = $(".obr_info_listagem_obras");
divAreaDetalhes = $(".obr_area_detalhes_obra");
btnSeguirObra = divAreaDetalhes.find('#sw_btn_seguir_ferramenta');
btnAvaliarObra = divAreaDetalhes.find('#sw_btn_avaliar');
divCategoriaObra = divAreaDetalhes.find(".obr_categoria_obra");
divLocalizacaoObra = divAreaDetalhes.find(".obr_localizacao");
divEditalObra = divAreaDetalhes.find(".obr_edital");
divContratoObra = divAreaDetalhes.find(".obr_contrato");
divEmpresaObra = divAreaDetalhes.find(".obr_empresa");
divFiscalObra = divAreaDetalhes.find(".obr_fiscal");
divValorObra = divAreaDetalhes.find("div.obr_valor_obra");
divValorPagoObra = divAreaDetalhes.find("div.obr_valor_pago");
divDescricao = divAreaDetalhes.find("div.obr_descricao");
divFonteRecurso = divAreaDetalhes.find("div.obr_fonte_recurso");
divMotivoParalisacao = divAreaDetalhes.find("div.obr_motivo_paralisacao");
spanValorPago = divValorPagoObra.find("span");
divExecucaoObra = divAreaDetalhes.find(".obr_execucao");
divSituacao = divExecucaoObra.find(".obr_situacao_atual");
spanSituacao = divSituacao.find("span.obr_situacao");
divDataInicio = divExecucaoObra.find(".obr_data_inicio");
divDataFim = divExecucaoObra.find(".obr_data_fim");
divObraAtraso = divExecucaoObra.find(".obr_atraso");
divAcompanhamentosObras = divAreaDetalhes.find("div.obr_cont_detalhes.obr_acompanhamentos");
divTotalAcompanhamentos = divAreaDetalhes.find(".sw_linha_lista_detalhes.obr_total_acompanhamentos");
spanTotalPorcentagem = divTotalAcompanhamentos.find(".obra_porcentagem_concluida");
divFotosObra = divAreaDetalhes.find(".obr_obra_fotos");
divContFotos = divFotosObra.find('.vinc_cont_galeria_fotos_vinculada');
divVideosObra = divAreaDetalhes.find("div.obr_obra_videos div.obr_area_videos_obra");
divArquivosObra = divAreaDetalhes.find("div.obr_obra_arquivos");
divSecretariasObra = divAreaDetalhes.find(".obr_obra_secretarias");
divValorContrato = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_valor_contratado");
spanValorContrato = divValorContrato.find("span");
divValorUtilizado = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_valor_utilizado");
spanValorPagoFinal = divValorUtilizado.find("span");
// divPrazoEstimado = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_prazo_dias");
divPrazoRealizacao = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_total_dias");
selectPagina = $(".obr_select_paginacao_listagem");
divAvancaPagina = $(".obr_avanca_pagina");
divVoltaPagina = $(".obr_volta_pagina");
/* CAPTURA DADOS PARA O GRÁFICO DE CATEGORIAS */
var dados_grafico_categorias = $("#dados_grafico_categorias").val();
if(dados_grafico_categorias != undefined)
{
dados_grafico_categorias = decodeURIComponent(dados_grafico_categorias);
dados_grafico_categorias = JSON.parse(dados_grafico_categorias);
// GRÁFICO DE PIZZA -- RELAÇÃO DE OBRAS COM CATEGORIAS
if(dados_grafico_categorias.length > 0)
{
Highcharts.chart('obr_grafico_categoria', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por categorias</span>' },
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
name: 'Quantidade',
colorByPoint: true,
data: dados_grafico_categorias
}],
tooltip: {
pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>'
},
});
}
}
/* CAPTURA DADOS PARA O GRÁFICO DE FONTE DE RECURSO */
var dados_grafico_fonte_recurso = $("#dados_fonte_recurso").val();
if(dados_grafico_fonte_recurso != undefined)
{
dados_grafico_fonte_recurso = decodeURIComponent(dados_grafico_fonte_recurso);
dados_grafico_fonte_recurso = JSON.parse(dados_grafico_fonte_recurso);
// GRÁFICO DE PIZZA -- FONTE DE RECURSO
if(dados_grafico_fonte_recurso.length > 0)
{
Highcharts.chart('obr_grafico_fonte_recurso', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por fonte de recurso</span>' },
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
name: 'Quantidade',
colorByPoint: true,
data: dados_grafico_fonte_recurso
}],
tooltip: {
pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>'
},
});
}
}
/* CAPTURA DADOS PARA O GRÁFICO DOS MOTIVOS DE PARALISAÇÃO */
var dados_grafico_motivo_paralisacao = $("#dados_motivo_paralisacao").val();
if(dados_grafico_motivo_paralisacao != undefined)
{
dados_grafico_motivo_paralisacao = decodeURIComponent(dados_grafico_motivo_paralisacao);
dados_grafico_motivo_paralisacao = JSON.parse(dados_grafico_motivo_paralisacao);
// GRÁFICO DE PIZZA -- MOTIVOS DA PARALISAÇÃO
if(dados_grafico_motivo_paralisacao.length > 0)
{
Highcharts.chart('obr_grafico_motivo_paralisacao', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por motivos de paralisação</span>' },
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
name: 'Quantidade',
colorByPoint: true,
data: dados_grafico_motivo_paralisacao
}],
tooltip: {
pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>'
},
});
}
}
// ADAPTAÇÃO NO MÉTODO 'CONTAINS' DO JQUERY PARA FILTRAR CASE INSENSITIVE E REMOVER ACENTUAÇÃO
jQuery.expr[':'].instarcontains = function(a, i, m) {
return jQuery(a).text()
.replace(/[áàãâä]/gi,"a")
.replace(/[éèê]/gi,"e")
.replace(/[íìïî]/gi,"i")
.replace(/[óòöôõ]/gi,"o")
.replace(/[úùüû]/gi, "u")
.replace(/[ç]/gi, "c")
.replace(/[ñ]/gi, "n")
.replace(/[^a-zA-Z0-9]/g," ")
.toUpperCase()
.indexOf(m[3]
.replace(/[áàãâä]/gi,"a")
.replace(/[éèê]/gi,"e")
.replace(/[íìïî]/gi,"i")
.replace(/[óòöôõ]/gi,"o")
.replace(/[úùüû]/gi, "u")
.replace(/[ç]/gi, "c")
.replace(/[ñ]/gi, "n")
.replace(/[^a-zA-Z0-9]/g," ")
.toUpperCase()
) >= 0;
};
});
/* INICIANDO VARIAVEIS */
/* GLOBAIS */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO CRIA O MAPA */
function Mapa(idElementoMapa, renderizarRelatorio = true)
{
markers = [];
// DADOS
var pontos = [{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-19.03877244491398","longitude":"-43.42113418884327","icone":"road","cor_fundo_circulo":"rgba(0, 0, 0, 0.8)","cor_marcador":"#0d0d0d","cor_icone":"#ffffff","nome_categoria":"Infraestrutura","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes flex obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em Paralelepípedo De 4 Becos E Largos<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Infraestrutura<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Santana<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Rua do Cruzeiro, NT<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"1\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":5,"situacao":"Em Andamento","bairro":"Santana","logradouro_completo":"Rua do Cruzeiro, NT","logradouro":"Rua do Cruzeiro","dt_inicio":1583463600,"dt_inicio_string":"06\/03\/2020","dt_fim":1646881200,"dt_fim_string":"10\/03\/2022","valor":"1.992.029,54","valor_pago":null,"titulo":"Pavimentação em Paralelepípedo De 4 Becos E Largos","codigo":1,"acompanhamentos":[{"descricao":"1 º MEDIÇÃO- \r\n\r\n VALOR R$ 189.498,84\r\n","porcentagem":10,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/4fbcd5cbc9bdd824c21be6c8da029e3a.jpg","legenda":"Fotos 01"},{"arquivo":"\/fotos\/obras\/1\/95bd7da6529ad8e289c0aa5ef33a3917.jpg","legenda":"Foto 02"},{"arquivo":"\/fotos\/obras\/1\/b097491902456dbd4d0d735004cdda48.jpg","legenda":"Fotos 03"}],"dt_conclusao":"08\/11\/2021"},{"descricao":"2 º MEDIÇÃO- VALOR - R$ 97.030,27\r\n","porcentagem":4,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/092c6690e45e858d67f2e8d566365bf2.jpg","legenda":"FOTO 01"}],"dt_conclusao":"09\/06\/2020"},{"descricao":"3 º MEDIÇÃO- VALOR - R$ 148.211,47\r\n\r\n(1º ADITIVO DE VALOR: 53.986,35 - \r\n\r\nVALOR TOTAL DA OBRA: R$ 2.046.015,89)\r\n\r\n","porcentagem":7,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/97aec448434ccf810a1728ad1e993a79.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/85e6b9dc238951aa7317c80eb811176d.jpg","legenda":"Foto 01"},{"arquivo":"\/fotos\/obras\/1\/abf147775cccfde275546a6e533b3c62.jpg","legenda":"Foto 03"}],"dt_conclusao":"14\/07\/2020"},{"descricao":"4 º MEDIÇÃO- VALOR - R$ 129.158,12\r\n\r\n(1º ADITIVO DE VALOR: 53.986,35 - \r\n\r\nVALOR TOTAL DA OBRA: R$ 2.046.015,89)","porcentagem":7,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/3a3fb08929dd20b3ddd6f84a4b4224d5.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/843aa1d7c4889f7802df6f38c9b36f0f.jpg","legenda":null}],"dt_conclusao":"14\/08\/2020"},{"descricao":"5 º MEDIÇÃO- VALOR - R$ 219.787,94\r\n\r\n(1º ADITIVO DE VALOR: 53.986,35 - \r\n\r\nVALOR TOTAL DA OBRA: R$ 2.046.015,89)","porcentagem":10,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/b1c5b5d98bb5456d62234ae7106a9e1d.jpg","legenda":"Foto 01"},{"arquivo":"\/fotos\/obras\/1\/bc52e7ba2135ef4aa461f0383a42a76f.jpg","legenda":"Foto 02"}],"dt_conclusao":"16\/10\/2020"},{"descricao":"6 º MEDIÇÃO- VALOR - R$ 142.132,87\r\n\r\n(1º ADITIVO DE VALOR: 53.986,35 - \r\n\r\nVALOR TOTAL DA OBRA: R$ 2.046.015,89)","porcentagem":7,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/15f85224802a9c08fc48adedde46663d.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/58f5b1a865d9a3c36e2947be11620898.jpg","legenda":"Foto 01"},{"arquivo":"\/fotos\/obras\/1\/fb8ff33044a613dd5d392ad20ef05cf5.jpg","legenda":"Foto 03"}],"dt_conclusao":"17\/12\/2020"},{"descricao":"7 º MEDIÇÃO- VALOR - R$ 148.892,71\r\n\r\n(1º ADITIVO DE VALOR: 53.986,35 -\r\n\r\n VALOR TOTAL DA OBRA: R$ 2.046.015,89)\r\n\r\n","porcentagem":8,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/42684547b34ba3ff2b1aa30960f1a4a8.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/18ce82cfec0b0c7a730a03d98c3c76f8.jpg","legenda":null}],"dt_conclusao":"19\/03\/2021"},{"descricao":"8 º MEDIÇÃO- VALOR - R$ 220.350,11\r\n\r\n (1º ADITIVO DE VALOR: 53.986,35 - \r\n\r\nVALOR TOTAL DA OBRA: R$ 2.046.015,89)","porcentagem":10,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/6f3b4af6905c49026d7329eed209448b.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/aafc83768bb3111778a7a99f81e7faf7.jpg","legenda":null}],"dt_conclusao":"19\/05\/2021"},{"descricao":"9 º MEDIÇÃO- VALOR - R$ 311.611,20\r\n\r\n (1º ADITIVO DE VALOR: 53.986,35 - \r\n\r\nVALOR TOTAL DA OBRA: R$ 2.046.015,89)","porcentagem":16,"situacao":"Concluído","fotos":[{"arquivo":"\/fotos\/obras\/1\/6afcb03de13966cd3b3c158a6276a048.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/d90c5075d3442f6d5e05187239f64283.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/1\/7980654fa6a42ec3984021eaf6e3c8a6.jpg","legenda":null}],"dt_conclusao":"06\/07\/2021"},{"descricao":"10 º MEDIÇÃO- VALOR - R$ 124.747,22\r\n\r\n (1º ADITIVO DE VALOR: 53.986,35 + 2º REEQUILÍBRIO FINANCEIRO: 252.851,01\r\n\r\nVALOR TOTAL DA OBRA: RR$ 2.298.866,90)","porcentagem":0,"situacao":"Concluído","fotos":[],"dt_conclusao":"30\/07\/2021"},{"descricao":"11 º MEDIÇÃO- VALOR - R$ 251.019,86\r\n","porcentagem":0,"situacao":"Concluído","fotos":[],"dt_conclusao":""}],"edital":{"link":"\/portal\/editais\/0\/1\/3511","nome":"Tomada de Preço - TOMADA DE PREÇOS 036 2019 – Serviços de pavimentação de em paralelepipedo em vias no Município de Conceição do Mato Dentro-MG","numero":36,"ano":2019},"contrato":{"link":"\/portal\/contrato\/1208","nome":"041\/2020 - Estruturall Engenharia e serviços LTDA"},"fotos":{"513":{"arquivo":"\/fotos\/obras\/1\/9a56375a750de139d23f2cbf539a6050.jpg","legenda":null},"514":{"arquivo":"\/fotos\/obras\/1\/589794df0c9803dae9244fd50703419d.jpg","legenda":null},"515":{"arquivo":"\/fotos\/obras\/1\/a6ab053b02d4544c19e2874e025bf34c.jpg","legenda":null},"516":{"arquivo":"\/fotos\/obras\/1\/8627ba59a7122615dcab0817bb398dac.jpg","legenda":null},"517":{"arquivo":"\/fotos\/obras\/1\/b18c23d96d917a9dc0a5cddf98aed6e8.jpg","legenda":null},"518":{"arquivo":"\/fotos\/obras\/1\/4d97a8af9c98b7c003d8e663f36fed3f.jpg","legenda":null},"519":{"arquivo":"\/fotos\/obras\/1\/51a56c6d483e2aeb895a36f6f0566e1d.jpg","legenda":null},"520":{"arquivo":"\/fotos\/obras\/1\/c8d855dc3ff70a8ad3b5243f047e0058.jpg","legenda":null},"521":{"arquivo":"\/fotos\/obras\/1\/c96eeb7ec58493d87b20a3f8f2ee9617.jpg","legenda":null},"522":{"arquivo":"\/fotos\/obras\/1\/e5d5f0b060673e794e352d730cf077b2.jpg","legenda":null},"523":{"arquivo":"\/fotos\/obras\/1\/2467748e5e12e2b09416f4f6419fcc68.jpg","legenda":null},"524":{"arquivo":"\/fotos\/obras\/1\/6514eab3b375bc346288df2c00e12ead.jpg","legenda":null},"525":{"arquivo":"\/fotos\/obras\/1\/e3ca3811e9f7d6dddf8b957fd35cf38c.jpg","legenda":null},"526":{"arquivo":"\/fotos\/obras\/1\/c609fefc29eff2bdf355417625884f4b.jpg","legenda":null},"527":{"arquivo":"\/fotos\/obras\/1\/04253e0ffe7e10656f86454e53ceeb26.jpg","legenda":null},"528":{"arquivo":"\/fotos\/obras\/1\/ee5dac1611245aacb1b21a440a7acf94.jpg","legenda":null},"529":{"arquivo":"\/fotos\/obras\/1\/194365b6964b85c5686788f524598c07.jpg","legenda":null},"530":{"arquivo":"\/fotos\/obras\/1\/44cc61af174dff67b0e1942661d26953.jpg","legenda":null},"531":{"arquivo":"\/fotos\/obras\/1\/75b4593833b7bc8b3cf2c1bb58fe696a.jpg","legenda":null},"532":{"arquivo":"\/fotos\/obras\/1\/3f6c28bff725552f9354e01ac2c1b78e.jpg","legenda":null},"533":{"arquivo":"\/fotos\/obras\/1\/056ca3985569b6eb6b9e3278d9e2100f.jpg","legenda":null},"534":{"arquivo":"\/fotos\/obras\/1\/565e1b0ba65e4e6235294953aa3e2a0d.jpg","legenda":null},"535":{"arquivo":"\/fotos\/obras\/1\/0acf87940c7b9581d67032c711eaa62d.jpg","legenda":null},"536":{"arquivo":"\/fotos\/obras\/1\/f09b2e94d32c9f34b90119eb7da3e955.jpg","legenda":null},"537":{"arquivo":"\/fotos\/obras\/1\/01e394d5af1140ae22033e1b7fa3fbb1.jpg","legenda":null},"538":{"arquivo":"\/fotos\/obras\/1\/eb20cea2c62f94ae9a926665324a3313.jpg","legenda":null},"539":{"arquivo":"\/fotos\/obras\/1\/d3662ec3599400175778800ec64aa8d2.jpg","legenda":null},"540":{"arquivo":"\/fotos\/obras\/1\/d2b382d43a43ffe154358d118a75423a.jpg","legenda":null},"541":{"arquivo":"\/fotos\/obras\/1\/501c4301968ec8c8a401117e82e2fd60.jpg","legenda":null},"542":{"arquivo":"\/fotos\/obras\/1\/ad960bad8268d3c31cd7dddeafa7641d.jpg","legenda":null},"543":{"arquivo":"\/fotos\/obras\/1\/488f1723f845ab205caff990165958ba.jpg","legenda":null},"544":{"arquivo":"\/fotos\/obras\/1\/1e89d15d61ca4089223783a52a68476f.jpg","legenda":null},"545":{"arquivo":"\/fotos\/obras\/1\/853fa53bcc772801d09a08e8fbf66307.jpg","legenda":null},"546":{"arquivo":"\/fotos\/obras\/1\/a1baed41230f5aa6e74ed7445cf4ce45.jpg","legenda":null},"547":{"arquivo":"\/fotos\/obras\/1\/414b378ffed5fa06f2d81c20fa43c0de.jpg","legenda":null},"548":{"arquivo":"\/fotos\/obras\/1\/d529eae7d353ea9176dd90e03e8747ae.jpg","legenda":null},"549":{"arquivo":"\/fotos\/obras\/1\/4a62e396c9404f1eb103ca8018d080f6.jpg","legenda":null},"550":{"arquivo":"\/fotos\/obras\/1\/771c15725aefa1f1b828150882b53367.jpg","legenda":null},"551":{"arquivo":"\/fotos\/obras\/1\/dc80eb1701a62dec3033741b01b6e562.jpg","legenda":null},"552":{"arquivo":"\/fotos\/obras\/1\/c6f2426675ff2b96c372a2495d51fbb4.jpg","legenda":null},"553":{"arquivo":"\/fotos\/obras\/1\/1846043ebf07db2460b0555bea118e6a.jpg","legenda":null},"554":{"arquivo":"\/fotos\/obras\/1\/836863130b0cc6da5c76c098136e568c.jpg","legenda":null},"555":{"arquivo":"\/fotos\/obras\/1\/19f287168ae4eb7492f45bc27293497c.jpg","legenda":null},"556":{"arquivo":"\/fotos\/obras\/1\/24b2ad6fda1b4fca0f49662e343d3c2e.jpg","legenda":null},"557":{"arquivo":"\/fotos\/obras\/1\/73e2b510fc4964733c354729fc8e1c29.jpg","legenda":null},"558":{"arquivo":"\/fotos\/obras\/1\/50dc9cef199c3eed6ee64f1ab1f04166.jpg","legenda":null},"559":{"arquivo":"\/fotos\/obras\/1\/334828f0aedd312cce55c51b747817f6.jpg","legenda":null},"560":{"arquivo":"\/fotos\/obras\/1\/a95bf6964bd245033753640e30464a00.jpg","legenda":null},"561":{"arquivo":"\/fotos\/obras\/1\/cd652e12970fc76c3e05950bfd886c5a.jpg","legenda":null},"562":{"arquivo":"\/fotos\/obras\/1\/646401d5a337226fe79b38e61a6c9318.jpg","legenda":null},"563":{"arquivo":"\/fotos\/obras\/1\/ac0cdfd45071ad88f6ddca18b039a224.jpg","legenda":null},"564":{"arquivo":"\/fotos\/obras\/1\/0e3c46a2e2fd06e445fdc3e06fa559ce.jpg","legenda":null},"565":{"arquivo":"\/fotos\/obras\/1\/b4346a0537f3ac8289130f30612d7ad0.jpg","legenda":null},"566":{"arquivo":"\/fotos\/obras\/1\/6810d834d116304985eb658bd0ffc9ca.jpg","legenda":null},"567":{"arquivo":"\/fotos\/obras\/1\/ef4219e170824f2473e74f822c79f6d3.jpg","legenda":null},"568":{"arquivo":"\/fotos\/obras\/1\/7866ebec6ca6662723f1138a2f7e6117.jpg","legenda":null},"569":{"arquivo":"\/fotos\/obras\/1\/710d32148c0f934fdc0535f769ab2abc.jpg","legenda":null},"570":{"arquivo":"\/fotos\/obras\/1\/059c52bd6c763bd00ce6df5f9d597e0d.jpg","legenda":null},"571":{"arquivo":"\/fotos\/obras\/1\/6046b62ddfc274a330ca3364877c4d43.jpg","legenda":null},"572":{"arquivo":"\/fotos\/obras\/1\/89d1c194f79def4569d648ebed6fcee0.jpg","legenda":null},"573":{"arquivo":"\/fotos\/obras\/1\/d9c6e6a208413ae4927ff5cf694cb0c6.jpg","legenda":null},"574":{"arquivo":"\/fotos\/obras\/1\/75a1ace5b11d241bc34b27e891acd3ec.jpg","legenda":null},"575":{"arquivo":"\/fotos\/obras\/1\/06cd7a851cb812029ce24aca64ba1682.jpg","legenda":null},"576":{"arquivo":"\/fotos\/obras\/1\/82cde925d58e32947a880d56baff7d2a.jpg","legenda":null},"577":{"arquivo":"\/fotos\/obras\/1\/1568f4b3c1579c4ba270753d4d6038e2.jpg","legenda":null},"578":{"arquivo":"\/fotos\/obras\/1\/5c1f50b91230598ca24da2a9fce74d1c.jpg","legenda":null},"579":{"arquivo":"\/fotos\/obras\/1\/5d3f3bb63b862965313a52c2e8bbacfc.jpg","legenda":null},"580":{"arquivo":"\/fotos\/obras\/1\/aba3ed4ec104bef7973470997517384c.jpg","legenda":null},"581":{"arquivo":"\/fotos\/obras\/1\/4919fb6e0cf7f055e56ada1701434de0.jpg","legenda":null},"582":{"arquivo":"\/fotos\/obras\/1\/1760b6b7c4aacfd5c7ae46678413fa97.jpg","legenda":null},"583":{"arquivo":"\/fotos\/obras\/1\/15edbcf888e9262058bde7bd31130e93.jpg","legenda":null},"584":{"arquivo":"\/fotos\/obras\/1\/9476c88754759d89469539e10cde1d01.jpg","legenda":null},"585":{"arquivo":"\/fotos\/obras\/1\/5f13b60bd1ad7930be533fcbf0e7c19c.jpg","legenda":null},"586":{"arquivo":"\/fotos\/obras\/1\/0a5236a05beb5ac940ddd8e4a5477133.jpg","legenda":null}},"secretarias":{"8":{"nome":"Secretaria Municipal de Infraestrutura, Transporte e Serviços Urbanos","link":"\/portal\/secretarias\/8\/secretaria-municipal-de-infraestrutura-transporte-e-servicos-urbanos","abertura":"_target","imagem":"\/fotos\/33d40dfee7f9e055b7b32a8a3ec12dbe.jpg"}},"videos":[],"arquivos":[],"empresa":"Nathalia Silva Iwazawa","fiscal":"Janmeson Alves Targino","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""}];
// CONSTANTES
leafLetMapCenter = cidadeLatLng;
// VARIAVEIS
var elementoMapa;
// VALIDANDO ELEMENTO PARA O MAPA
elementoMapa = document.getElementById(idElementoMapa);
if (!elementoMapa)
{
// ERRO
return false;
}
elementoMapa = $(elementoMapa);
// VERIFICANDO O NAVEGADOR
if (L.Browser.ielt9)
{
elementoMapa.css({
"background-color": "#fff",
"text-align": "center",
"margin-bottom": "15px"
});
elementoMapa.append('<span class="sw_lato_bold">Este navegador não é compatível com o mapa.</span>');
return false;
}
// TILE PROVIDER CONFIGURACAO OpenStreetMap
const tileProvider = {
// URLS COM AS IMAGENS DOS TILES
urls : [
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
'https://{s}.tile.osm.org/{z}/{x}/{y}.png',
'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png',
'https://{s}.tile.openstreetmap.com/{z}/{x}/{y}.png'
],
// FUNCAO QUE RETORNA A PROXIMA URL DISPONIVEL EM 'urls'
getUrl: function(){
var activeUrl = ""+this.urls.shift();
this.urls = this.urls.concat(activeUrl);
return activeUrl;
},
// ATRIBUICAO DE DIREITOS
// OBRIGATORIO
attribution : 'Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a href="https://osm.org/copyright">ODbL 1.0.</a>'
};
// CRIANDO MAPA
leafLetMap = L.map(elementoMapa.get(0) ,{
preferCanvas: true, // USA CANVAS > DESEMPENHO++
center: cidadeLatLng, // CENTRO DO MAPA
zoom: zoomMin, // ZOOM ATUAL
minZoom: zoomMin, // ZOOM MIN
maxZoom: zoomMax, // ZOOM MAX
doubleClickZoom: false // DESATIVA ZOOM DO CLICK DUPLO
});
// TRAVANDO O MAPA
leafLetMap.setMaxBounds(leafLetMap.getBounds());
// OBJETO TileLayer PARA O MAPA
const tiles = L.tileLayer(tileProvider.getUrl(), {
attribution: tileProvider.attribution,
bounds: leafLetMap.getBounds(),
tileSize: 256,
minNativeZoom: zoomMin,
maxNativeZoom: zoomMax,
updateWhenZooming: false,
updateWhenIdle: false,
updateInterval: 1000,
detectRetina: true,
keepBuffer: 15
});
// TRATANDO ERRO AO REQUISITAR UM TILE
// CASO ERRO >> CHAMA FUNCAO TileProvider.getUrl()
tiles.on("tileerror", function(){
tiles.setUrl(tileProvider.getUrl());
}, tiles);
tiles.addTo(leafLetMap);
// PERCORRENDO PONTOS
// for(var indicePonto = 0; indicePonto < pontos.length; indicePonto++){
// var ponto = pontos[indicePonto];
var indicePonto = 0;
pontos.forEach(function(ponto) {
indicePonto++;
// CRIANDO MARCADOR
var markerLeaflet = L.marker(
[ponto.latitude, ponto.longitude],
{
icon: L.FontAwesomeMarker.icon({
icon: ponto.icone,
markerColor: ponto.cor_marcador,
iconColor: ponto.cor_icone,
svgCircleColor: ponto.cor_fundo_circulo
})
}
);
// ADICIONANDO POPUP AO MARCADOR
var markerPopup = $(ponto.conteudo_popup);
var divVerFotosPopup = markerPopup.find(".obr_link_obra.obr_link_ver_fotos");
if (Object.values(ponto.fotos) && Object.values(ponto.fotos).length > 0)
{
divVerFotosPopup.css("display", "inline-block");
var fancyBoxSrc = [];
var fancyBoxOptions = {
buttons : [ 'slideShow', 'close' ],
loop : true,
arrows : true,
slideShow : { autoStart : false, speed : 3500 }
};
Object.values(ponto.fotos).forEach(function(foto, index, arr) {
var legenda = "";
if (foto.legenda && foto.legenda !== "null")
{
legenda = foto.legenda;
}
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divVerFotosPopup.click(function(mouseEvent) {
$.fancybox.open(fancyBoxSrc, fancyBoxOptions);
});
} else {
divVerFotosPopup.hide();
}
markerLeaflet.bindPopup(markerPopup.get(0), {
autoPanPaddingTopLeft: L.point(0, 50),
autoPanPaddingBottomRight: L.point(0, 0)
});
// MARCADOR JS
var marcador = {
marker: markerLeaflet, // MARCADOR LEAFLET
/* DADOS */
seguir_acao: ponto.seguir_acao,
seguir_class: ponto.seguir_class,
seguir_txt: ponto.seguir_txt,
seguir_title: ponto.seguir_title,
categoria: ponto.categoria,
situacao: ponto.situacao,
bairro: ponto.bairro,
logradouro_completo: ponto.logradouro_completo,
logradouro: ponto.logradouro,
dt_inicio: ponto.dt_inicio,
dt_inicio_string: ponto.dt_inicio_string,
dt_fim: ponto.dt_fim,
dt_fim_string: ponto.dt_fim_string,
titulo: ponto.titulo,
valor: ponto.valor,
valor_pago: ponto.valor_pago,
edital: ponto.edital,
icone: ponto.icone,
contrato: ponto.contrato,
nome_categoria: ponto.nome_categoria,
cor_marcador: ponto.cor_marcador,
cor_icone: ponto.cor_icone,
cor_fundo_circulo: ponto.cor_fundo_circulo,
fotos: ponto.fotos,
secretarias: ponto.secretarias,
videos: ponto.videos,
arquivos: ponto.arquivos,
acompanhamentos: ponto.acompanhamentos,
codigo: parseInt(ponto.codigo),
empresa: ponto.empresa,
fiscal: ponto.fiscal,
descricao: ponto.descricao,
fonte_recurso: ponto.fonte_recurso,
motivo_paralisacao: ponto.motivo_paralisacao
/* DADOS */
};
var latLong = [ponto.latitude, ponto.longitude];
if (!markersAgrupados.hasOwnProperty(latLong)){
markersAgrupados[latLong] = [];
}
markersAgrupados[latLong].push(marcador);
markers.push(marcador);
});
// }
for(const chave of Object.keys(markersAgrupados)){
if (markersAgrupados[chave].length === 1){
markersAgrupados[chave].pop().marker.addTo(leafLetMap);
} else {
var markerGroup = L.markerClusterGroup({
spiderLegPolylineOptions: {
color: "#000000"
// ,opacity: "1"
}
});
for(var indicePonto = 0; indicePonto < markersAgrupados[chave].length; indicePonto++){
var ponto = markersAgrupados[chave][indicePonto];
markerGroup.addLayer(ponto.marker)
}
leafLetMap.addLayer(markerGroup);
}
}
// GERA OS OPTIONS PARA O SELECT DO RELATORIO
if (renderizarRelatorio) {
geraOptionsRelatorio();
selectRelatorioFiltroAno.trigger("change");
}
// DEFINE ZOOM
leafLetMap.setZoom((zoomMin + 0.51));
markersAgrupados = {};
return leafLetMap;
}
/* FUNCAO CRIA O MAPA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO QUE EXIBE OS DADOS DA FILTRAGEM */
function exibirDados(pagina)
{
// PADROES
divResultados.hide();
divAreaListagem.hide();
spanQtdeResultado.html(0);
divVoltaPagina.hide();
divAvancaPagina.hide();
selectPagina.hide();
// REVOMENDO TODOS OS MARCADORES DO MAPA
markers.forEach(function(item){
item.marker.removeFrom(leafLetMap);
});
// SE HA DADOS PARA EXIBIR
if (dadosExibir)
{
// MOSTRANDO ALGUMAS DIVS
divAreaListagem.show();
divResultados.show();
var paginacao = paginar(dadosExibir, pagina);
dadosPaginacao = paginacao.dados;
// TRATANDO QTDE DE REGISTROS E QTDE DE PAGINAS
// APENAS PARA O FUNCIONAMENTO DOS BOTOES DE PAGINACAO
if (dadosExibir.length > 1 && paginacao.paginas > pagina)
{
if (pagina === 1)
{
divVoltaPagina.attr("data-pagina", 0);
divVoltaPagina.prop("disabled" , true)
divAvancaPagina.attr("data-pagina", 2);
divAvancaPagina.prop("disabled" , false);
} else {
divVoltaPagina.attr("data-pagina", (pagina - 1));
divVoltaPagina.prop("disabled" , false);
divAvancaPagina.attr("data-pagina", (pagina + 1));
divAvancaPagina.prop("disabled" , false);
}
} else {
divAvancaPagina.attr("data-pagina", 0);
divAvancaPagina.prop("disabled" , true);
divVoltaPagina.attr("data-pagina", (paginacao.paginas - 1));
divVoltaPagina.prop("disabled" , false);
}
selectPagina.find("option[value="+pagina+"]").prop("selected", true);
// QTDE DE RESULTADO
spanQtdeResultado.html(dadosExibir.length);
if (dadosExibir.length === 1)
{
spanObrasEncontradas.text("obra encontrada");
spanObrasEncontradas.show();
divListagemObras.text("Listando 1 de 1");
divVoltaPagina.hide();
divAvancaPagina.hide();
selectPagina.hide();
} else {
if (dadosExibir.length > 0)
{
spanObrasEncontradas.text("obras encontradas");
spanObrasEncontradas.show();
divListagemObras.text("");
divListagemObras.text("Listando "+dadosPaginacao.length+" de "+dadosExibir.length);
if (dadosExibir.length > qtdePorPagina)
{
divVoltaPagina.show();
divAvancaPagina.show();
selectPagina.show();
}
} else {
spanObrasEncontradas.text("Nenhuma obra encontrada");
// spanObrasEncontradas.hide();
divListagemObras.text("");
// divListagemObras.hide();
divVoltaPagina.hide();
divAvancaPagina.hide();
selectPagina.hide();
}
}
// REMOVENDO ELEMENTOS QUE NAO SAO MODELO
divAreaListagem.find(".obr_item_listagem.obr_item_listagem_modelo").remove();
// PERCORRENDO REGISTROS PAGINADOS
dadosPaginacao.forEach(function(item){
// CLONANDO MODELO
var cloneModelo = itemListaObraModelo.clone();
// DATA-ID
cloneModelo.attr("data-id", item.codigo);
/* PARA A CATEGORIA */
var divCategoria = cloneModelo.find(".obr_cont_categoria_obra");
var spansCategoria = divCategoria.find("span");
var spanCategoriaIcone = divCategoria.find("span").first();
var spanCategoriaNome = divCategoria.find("span").last();
// SETANDO ESTILOS
divCategoria.attr("style", "background:"+item.cor_marcador+" !important");
spanCategoriaIcone.addClass("fa-"+item.icone);
spanCategoriaIcone.attr("style", "background:"+item.cor_fundo_circulo+" !important; color:"+item.cor_icone+" !important; border-color:"+item.cor_marcador+" !important");
spanCategoriaNome.text(item.nome_categoria);
spanCategoriaNome.attr("style", "background:"+item.cor_marcador+" !important; "+"color:"+item.cor_icone+" !important;");
/* FIM PARA A CATEGORIA */
// TITULO DA OBRA
var divTituloObra = cloneModelo.find(".obr_titulo_obra");
divTituloObra.text(item.titulo);
/* PARA O CONTRATO */
var divContrato = cloneModelo.find(".obr_info_obra_contrato");
if (item.contrato) {
divContrato.find(".obr_descricao_info").html('<span>'+item.contrato.nome+'</span><a href="'+item.contrato.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Contrato ;<span class="swfa fas fa-search-plus"></span></span></a>');
} else {
divContrato.hide();
}
/* PARA O CONTRATO */
/* PARA O EDITAL */
var divEdital = cloneModelo.find(".obr_info_obra_edital");
if (item.edital) {
divEdital.find(".obr_descricao_info").html('<span>'+item.edital.nome+'</span><a href="'+item.edital.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Edital ;<span class="swfa fas fa-search-plus"></span></span></a>');
} else {
divEdital.hide();
}
/* PARA O EDITAL */
/* PARA A SITUACAO */
var divSituacao = cloneModelo.find(".obr_info_obra_situacao"); // obr_situacao obr_situacao_suspensa
var spanSituacao = divSituacao.find(".obr_situacao");
spanSituacao = $(spanSituacao);
spanSituacao.text(item.situacao);
if (item.situacao === "Suspensa") {
spanSituacao.addClass("obr_situacao_suspensa");
}
else if (item.situacao === "Concluído") {
spanSituacao.addClass("obr_situacao_concluida");
}
else if (item.situacao === "Em Andamento") {
spanSituacao.addClass("obr_situacao_em_andamento");
}
else if (item.situacao === "Em Projeto") {
spanSituacao.addClass("obr_situacao_em_projeto");
}
/* PARA A SITUACAO */
/* PARA AS DATAS */
var divDataInicio = cloneModelo.find(".obr_info_obra_dt_inicio");
if (item.dt_inicio > 0)
{
divDataInicio.find(".obr_descricao_info").text(item.dt_inicio_string);
} else {
divDataInicio.hide();
}
var divDataFim = cloneModelo.find(".obr_info_obra_dt_fim");
if (item.dt_fim > 0)
{
divDataFim.find(".obr_descricao_info").text(item.dt_fim_string);
} else {
divDataFim.hide();
}
/* PARA AS DATAS */
// PARA O VALOR DA OBRA
var divValor = cloneModelo.find(".obr_info_obra_valor");
if (item.valor && parseFloat(item.valor) > 0)
{
divValor.find(".obr_descricao_info").text("R$ "+item.valor);
} else {
divValor.hide();
}
/* PARA AS FOTOS */
var divVerFotos = cloneModelo.find(".obr_link_ver_fotos");
if (item.fotos.length <= 0)
{
divVerFotos.hide();
} else {
var fancyBoxSrc = [];
var fancyBoxOptions = {
buttons : [ 'slideShow', 'close' ],
loop : true,
arrows : true,
slideShow : { autoStart : false, speed : 3500 }
};
Object.values(item.fotos).forEach(function(foto){
var legenda = "";
if (foto.legenda && foto.legenda !== "null")
{
legenda = foto.legenda;
}
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divVerFotos.click(function(){
$.fancybox.open(fancyBoxSrc, fancyBoxOptions);
});
divVerFotos.show();
}
/* PARA AS FOTOS */
// PARA O BOTAO DE VER DETALHES DA OBRA
var divVerObra = cloneModelo.find(".obr_link_ver_obra");
divVerObra.attr("data-codigo", item.codigo);
// ADICIONANDO MODELO NA LISTAGEM E EXIBINDO PONTO NO MAPA
cloneModelo.insertBefore(divVoltaPagina);
cloneModelo.show();
item.marker.addTo(leafLetMap);
});
} else {
spanObrasEncontradas.text("Nenhuma obra encontrada");
spanObrasEncontradas.show();
divResultados.show();
divAreaListagem.show();
divListagemObras.show();
}
}
/* FUNCAO QUE EXIBE OS DADOS DA FILTRAGEM */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO DA PAGINACAO >> RETORNA O ARRAY JA QUEBRADO E A QUANTIDADE DE PAGINAS */
function paginar(dados, pagina) {
var indexComeco = (pagina - 1) * qtdePorPagina;
var indexTermina = indexComeco + qtdePorPagina;
var dadosSlice = dados.slice(indexComeco, indexTermina);
var paginas = Math.ceil(dados.length / qtdePorPagina);
if (selectPagina.children().length !== paginas)
{
selectPagina.empty();
for(var indexPagina = 1; indexPagina <= paginas; indexPagina++)
{
var optionPagina = document.createElement("option");
optionPagina = $(optionPagina);
optionPagina.text(indexPagina);
optionPagina.val(indexPagina);
selectPagina.append(optionPagina);
}
}
return {dados: dadosSlice, paginas: paginas};
}
/* FUNCAO DA PAGINACAO >> RETORNA O ARRAY JA QUEBRADO E A QUANTIDADE DE PAGINAS */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO QUE GERA OS OPTIONS DO SELECT DO RELATORIO */
function geraOptionsRelatorio()
{
var anosOption = [];
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
if (typeof item.dt_inicio_string === "string" && item.dt_inicio_string !== "null" && item.dt_inicio_string !== "31/12/1969")
{
var dataInicio = item.dt_inicio_string;
dataInicio = dataInicio.split("/");
var ano = dataInicio[(dataInicio.length -1)];
ano = parseInt(ano);
if (anosOption.indexOf(ano) === -1)
{
anosOption.push(ano);
}
}
}
if (anosOption.length > 0)
{
var anoAgora = new Date().getUTCFullYear();
var selecionou = false;
anoAgora = parseInt(anoAgora);
anosOption.sort();
anosOption.reverse();
for(var anoIndex = 0; anoIndex < anosOption.length; anoIndex++)
{
var ano = anosOption[anoIndex];
var optionAno = document.createElement("option");
optionAno = $(optionAno);
optionAno.val(ano);
optionAno.text(ano);
if (selecionou === false && ano === anoAgora)
{
optionAno.prop("selected", true);
selecionou = true;
}
selectRelatorioFiltroAno.append(optionAno);
}
if (selecionou === false)
{
selectRelatorioFiltroAno.find("option").first().prop("selected", true);
}
} else {
selectRelatorioFiltroAno.prop("disabled", true);
}
}
/* FUNCAO QUE GERA OS OPTIONS DO SELECT DO RELATORIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FUNCAO LIMPA STRING */
function limpaStringJS(string) {
if (string === "" || typeof string === typeof undefined) {
return "";
}
string = string.replace(/[áàãâä]/gi,"a"); // REMOVE ACENTOS
string = string.replace(/[éèê]/gi,"e"); // REMOVE ACENTOS
string = string.replace(/[íìïî]/gi,"i"); // REMOVE ACENTOS
string = string.replace(/[óòöôõ]/gi,"o"); // REMOVE ACENTOS
string = string.replace(/[úùüû]/gi, "u"); // REMOVE ACENTOS
string = string.replace(/[ç]/gi, "c"); // REMOVE CEDILHA
string = string.replace(/[ñ]/gi, "n"); // REMOVE ACENTOS
string = string.replace(/[^a-zA-Z0-9]/g," "); // REMOVE TUDO QUE NAO E LETRA OU NUMERO
return string;
}
/* FUNCAO LIMPA STRING */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* EVENTOS */
$(document).ready(function() {
/* SUBMIT DO FORMULARIO DE FILTRAGEM */
formFiltrar.submit(function(formEvent){
// ESCONDE BOTAO DE DETALHES E NAO DEIXA O FORM COMPLETAR O SUBMIT
botaoMenuDetalhes.prop("disabled", true);
formEvent.preventDefault();
leafLetMap.setView(leafLetMapCenter, zoomMin);
leafLetMap.closePopup();
/* VARIAVEIS */
var inputsBairroChecked = $(".obr_filtro_bairro:checked");
var inputsLogradouroChecked = $(".obr_filtro_logradouro:checked");
var inputsCategoriaChecked = $(".obr_filtro_categoria:checked");
var inputsSituacaoChecked = $(".obr_filtro_situacao:checked");
/* VARIAVEIS */
// ARRAY PARA OS REGISTROS ENCONTRADOS
var encontrados = [];
// PERCORRENDO MARCADORES(REGISTROS)
markers.forEach(function(marker){
// REVOMENDO TODOS OS PONTOS DO MAPA
marker.marker.removeFrom(leafLetMap);
// ARRAY PARA AS FUNCOES DE FILTRAGEM
var retornoFiltragem = [];
/* BUSCA POR PALAVRA-CHAVE */
if (inputPalavraChave.val().trim()) {
var palavraChave = limpaStringJS(inputPalavraChave.val());
palavraChave = palavraChave.toLowerCase();
var tituloMarcador = limpaStringJS(marker.titulo);
tituloMarcador = tituloMarcador.toLowerCase();
retornoFiltragem.push((tituloMarcador.indexOf(palavraChave) > -1));
}
/* FIM PALAVRA-CHAVE */
/* BUSCA POR PERIODO */
// OBS DIVIDIMOS O RETORNO DO datepicker POR 1000 POIS ELE RETORNAR DIFERENTE
if (inputPeriodoInicial.val().trim() && inputPeriodoFinal.val().trim()) { // INICIAL E FINAL SELECIONADO
var dataInicial = (inputPeriodoInicial.datepicker("getDate").getTime() / 1000);
var dataFinal = (inputPeriodoFinal.datepicker("getDate").getTime() / 1000);
var dataMarcador = new Date(marker.dt_inicio).getTime();
if (dataInicial && dataFinal) {
retornoFiltragem.push((dataMarcador >= dataInicial && dataMarcador <= dataFinal));
}
} else {
if (inputPeriodoInicial.val().trim()) { // INICIAL
var dataMarcador = new Date(marker.dt_inicio).getTime();
var dataInicial = (inputPeriodoInicial.datepicker("getDate").getTime() / 1000);
retornoFiltragem.push((dataMarcador >= dataInicial));
}
else if (inputPeriodoFinal.val().trim()) { // FINAL
var dataMarcador = new Date(marker.dt_inicio).getTime();
var dataFinal = (inputPeriodoFinal.datepicker("getDate").getTime() / 1000);
retornoFiltragem.push((dataMarcador <= dataFinal));
}
}
/* PERIODO */
/* BUSCA POR BAIRROS */
if (inputsBairroChecked.length > 0) {
var arrayBairros = [];
inputsBairroChecked.each(function(indice, bairro){
arrayBairros.push($(bairro).data("bairro"));
});
retornoFiltragem.push((arrayBairros.indexOf(marker.bairro) >= 0));
}
/* BUSCA POR BAIRROS */
/* BUSCA POR LOGRADOUROS */
if (inputsLogradouroChecked.length > 0) {
var arrayLogradouros = [];
inputsLogradouroChecked.each(function(indice, logradouro){
arrayLogradouros.push($(logradouro).data("logradouro"));
});
retornoFiltragem.push((arrayLogradouros.indexOf(marker.logradouro) >= 0));
}
/* BUSCA POR LOGRADOUROS */
/* BUSCA POR CATEGORIAS */
if (inputsCategoriaChecked.length > 0) {
var arrayCategorias = [];
inputsCategoriaChecked.each(function(indice, categoria){
arrayCategorias.push($(categoria).data("categoria"));
});
retornoFiltragem.push((arrayCategorias.indexOf(marker.categoria) >= 0));
}
/* BUSCA POR CATEGORIAS */
/* BUSCA POR SITUACOES */
if (inputsSituacaoChecked.length > 0) {
var arraySituacoes = [];
inputsSituacaoChecked.each(function(indice, situacao){
arraySituacoes.push($(situacao).data("situacao"));
});
retornoFiltragem.push((arraySituacoes.indexOf(marker.situacao) >= 0));
}
/* BUSCA POR SITUACOES */
if (retornoFiltragem.length === 0)
{
encontrados.push(marker);
}
else
{
var mostrar = true;
for(var indexRetorno = 0; indexRetorno < retornoFiltragem.length; indexRetorno++)
{
var retorno = retornoFiltragem[indexRetorno];
if (retorno === false)
{
mostrar = false;
break;
}
}
if (mostrar)
{
encontrados.push(marker);
}
}
});
// SE ARRAY TEM REGISTROS A EXIBIR
if (encontrados.length > 0) {
dadosExibir = encontrados; // ATRIBUICAO A VARIAVEL GLOBAL dadosExibir
exibirDados(1); // FUNCAO QUE EXIBE OS REGISTROS
} else {
dadosExibir = false;
exibirDados(0);
}
});
/* SUBMIT DO FORMULARIO DE FILTRAGEM */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTAO AVANCA E VOLTA */
$([divAvancaPagina, divVoltaPagina]).each(function(){
$(this).click(function(event){
leafLetMap.setView(leafLetMapCenter, zoomMin);
botaoMenuDetalhes.prop("disabled", true);
var botao = $(this);
var pagina = botao.attr("data-pagina");
pagina = parseInt(pagina);
if (pagina > 0)
{
exibirDados(pagina);
}
});
});
/* BOTAO AVANCA E VOLTA */
/* SELECT CHANGE */
$(selectPagina).change(function(){
leafLetMap.setView(leafLetMapCenter, zoomMin);
botaoMenuDetalhes.prop("disabled", true);
var option = $(this).find(":selected");
var pagina = option.val();
pagina = parseInt(pagina);
if (pagina > 0)
{
exibirDados(pagina);
}
});
/* SELECT CHANGE */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTAO VER MAPA */
botaoVerMapa.click(function(){
// leafLetMap.setView(leafLetMapCenter, zoomMin);
// RENDERIZA MAPA
$(".obr_area_mapa").html('<div id="leaflet_map" class="obr_mapa"></div>');
leafLetMap = Mapa("leaflet_map", false);
leafLetMap.closePopup();
});
/* BOTAO VER MAPA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTOES DO MENU */
divMenuObras.find(".obr_btn_menu").click(function() {
var botao = $(this);
if (!botao.hasClass("ativo"))
{
// SETANDO CLASSE NOS BOTÕES
divMenuObras.find(".obr_btn_menu").removeClass("ativo");
botao.addClass("ativo");
// FORÇAR MENU "FILTRO" ATIVADO QUANDO VIER DO BOTÃO "VOLTAR AO FILTRO" DO RELATÓRIO
if(botao.attr('data-ativar-filtro') == "S") {
$(".obr_btn_filtro").addClass('ativo');
}
// ANALISANDO SE HÁ MENU A EXIBIR
var data_menu = botao.data("menu");
if (data_menu == "obr_content_mapa") {
// MOSTRANDO MENU SELECIONADO
divMenuObras.find(".obr_btn_menu").addClass("disable");
setTimeout(function() {
divMenuObras.find(".obr_content_menu").hide();
divMenuObras.find(".obr_btn_menu").removeClass("disable");
}, 400);
// ABRINDO CONTEÚDO DO MENU
divMenuObras.find(".obr_conteudo_menu").removeClass("show");
}
else {
var menu = $("#" + data_menu);
if (menu.length)
{
// MOSTRANDO MENU SELECIONADO
divMenuObras.find(".obr_content_menu").hide();
menu.show();
// ABRINDO CONTEÚDO DO MENU
divMenuObras.find(".obr_conteudo_menu").addClass("show");
}
}
}
});
/* BOTOES DO MENU */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* BOTAO FECHAR MENU */
divMenuObras.find(".obg_btn_fechar").click(function() {
divMenuObras.find(".obr_btn_mapa").trigger("click");
});
/* BOTAO FECHAR MENU */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* FECHAR FORMULARIO */
function fecharFiltro() {
filtrosFormulario.addClass("hide");
filtrosFormulario.find(".obr_cont_formulario").slideUp(400);
// FECHANDO CHECKLIST
filtrosFormulario.find(".obr_checklist").addClass("hide");
}
/* FECHAR FORMULARIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ABRIR FORMULARIO */
function abrirFiltro() {
filtrosFormulario.removeClass("hide");
filtrosFormulario.find(".obr_cont_formulario").slideDown(200);
}
/* ABRIR FORMULARIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ABRE E FECHA FILTROS */
filtrosFormulario.find("#obr_btn_toggle_filtro").click(function() {
if (filtrosFormulario.hasClass("hide")) { abrirFiltro(); }
else { fecharFiltro(); }
});
/* ABRE E FECHA FILTROS */
/* CHECKLIST */
var checklist = filtrosFormulario.find(".obr_checklist");
divMenuObras.on("click", ".obr_titulo_checklist, obr_btn_toggle_checklist", function() {
var this_checklist = $(this).closest(".obr_checklist");
if (this_checklist.hasClass("hide")) {
checklist.addClass("hide");
this_checklist.removeClass("hide");
}
else {
checklist.addClass("hide");
}
});
// CHECKAR TODOS
checklist.find(".obr_checklist_todos").change(function() {
checklist_todos = $(this);
this_checklist = checklist_todos.closest(".obr_checklist");
// RESETANDO CHECKLIST
if (checklist_todos.prop("checked") == true) {
checklist_todos.siblings("label").attr("title", "Desmarcar todos")
this_checklist.find("input[type='checkbox']").prop("checked", true);
}
else {
checklist_todos.siblings("label").attr("title", "Marcar todos")
this_checklist.find("input[type='checkbox']").prop("checked", false);
}
});
// ANALISANDO CHECAGEM INDIVIDUAL
checklist.find(".obr_area_lista_checklist input[type='checkbox']").change(function() {
var this_checkbox = $(this);
var this_checklist = this_checkbox.closest(".obr_checklist");
// ANALISANDO SE TODOS ESTÃO CHECADOS
if (this_checkbox.closest(".obr_area_lista_checklist").find("input[type='checkbox']:checked").length == 0) {
this_checklist.find(".obr_checklist_todos").prop("checked", false);
this_checklist.find(".obr_checklist_todos").siblings("label").attr("title", "Marcar todos");
}
else {
this_checklist.find(".obr_checklist_todos").prop("checked", true);
this_checklist.find(".obr_checklist_todos").siblings("label").attr("title", "Desmarcar todos");
}
});
// BUSCA NA CHECKLIST
checklist.find(".obr_busca_checklist").on("keypress keyup keydown change", function() {
var this_checklist = $(this)
var valor = this_checklist.val();
if (valor != "") {
this_checklist.closest(".obr_checklist").find(".obr_item_checklist").hide();
this_checklist.closest(".obr_checklist").find(".obr_item_checklist:instarcontains("+valor+")").show();
}
else {
this_checklist.closest(".obr_checklist").find(".obr_item_checklist").show();
}
});
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* SUBMISSÃO DO FORMULÁRIO DE FILTRO */
divMenuObras.find("#obr_form_filtro").submit(function(e) {
e.preventDefault();
var filtrosFormulario = $(this)
// EXIBINDO BOTÃO DE RESET
filtrosFormulario.find(".obr_btn_limpar").fadeIn(200);
setTimeout(function() {
// RECOLHENDO FILTRO
fecharFiltro();
}, 300);
});
/* SUBMISSÃO DO FORMULÁRIO DE FILTRO */
/* BOTAO RESET DO FORMULARIO */
divMenuObras.find(".obr_btn_limpar").click(function() {
botaoMenuDetalhes.prop("disabled", true);
// RESETANDO CAMPOS
divMenuObras.find(".obr_checklist").addClass("hide");
setTimeout(function() {
divMenuObras.find(".obr_busca_checklist").val("").change();
}, 300);
// OCULTANDO BOTÃO
$(this).fadeOut(200);
});
/* BOTAO RESET DO FORMULARIO */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* VIDEOS DA OBRA */
var modal_video = divMenuObras.find(".obr_player_video_modal");
$body.on("click", ".obr_video_obra", function() {
var video = $(this);
// CAPTURANDO INFO DO VÍDEO
var elemento_video = video.find("input").val();
var data_video = video.find(".obr_data_video").text();
var nome_video = video.find(".obr_nome_video").text();
// SETANDO INFO NO IFRAME
modal_video.find(".obr_data_video").text(data_video)
modal_video.find(".obr_nome_video").text(nome_video)
setTimeout(function() {
modal_video.find(".obr_video").html(elemento_video)
}, 1000);
// ABRIR VÍDEO
modal_video.addClass("show");
$window.on("keyup click", fecharModalVideo);
});
// FECHAR VÍDEO
var fecharModalVideo = function(e) {
if ((e.keyCode === 27) || (e.target === modal_video.get(0) || e.target.id === "obr_btn_fechar_modal")) {
modal_video.removeClass("show");
setTimeout(function() {
modal_video.find(".obr_video").html("")
}, 400);
$window.off("keyup click", fecharModalVideo);
}
}
/* VIDEOS DA OBRA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* SELECT DO RELATORIO */
selectRelatorioFiltroAno.change(function(mouseEvent){
divsRelatorioInfo.hide();
var optionSelecionada = $(this).find(":selected");
var anoSelecionado = parseInt(optionSelecionada.val());
var totalObrasExecutadas = 0;
var totalObrasConcluidas = 0;
var totalObrasEmAndamento = 0;
var totalObrasSuspensas = 0;
var totalObrasEmProjeto = 0;
var totalAcompanhamentos = 0;
var totalContratos = 0;
var totalValor = 0;
if (anoSelecionado > 0)
{
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
if (item.dt_inicio > 0)
{
var dataInicio = item.dt_inicio_string;
dataInicio = dataInicio.split("/");
var ano = dataInicio[(dataInicio.length -1)];
ano = parseInt(ano);
if (ano === anoSelecionado)
{
totalObrasExecutadas++;
if (item.situacao === "Concluído")
{
totalObrasConcluidas++;
}
else if (item.situacao === "Em Andamento")
{
totalObrasEmAndamento++;
}
else if (item.situacao === "Suspensa")
{
totalObrasSuspensas++;
}
else if (item.situacao === "Em Projeto")
{
totalObrasEmProjeto++;
}
if (item.contrato && item.contrato.nome)
{
totalContratos++;
}
if (item.acompanhamentos && item.acompanhamentos.length > 0)
{
totalAcompanhamentos = totalAcompanhamentos + item.acompanhamentos.length;
}
var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
if (valorObra > 0.0)
{
totalValor = totalValor + valorObra;
}
}
}
}
} else {
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
totalObrasExecutadas++;
if (item.situacao === "Concluído")
{
totalObrasConcluidas++;
}
else if (item.situacao === "Em Andamento")
{
totalObrasEmAndamento++;
}
else if (item.situacao === "Suspensa")
{
totalObrasSuspensas++;
}
else if (item.situacao === "Em Projeto")
{
totalObrasEmProjeto++;
}
if (item.contrato && item.contrato.nome)
{
totalContratos++;
}
if (item.acompanhamentos && item.acompanhamentos.length > 0)
{
totalAcompanhamentos = totalAcompanhamentos + item.acompanhamentos.length;
}
var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
if (valorObra > 0.0)
{
totalValor = totalValor + valorObra;
}
}
}
divRelatorioTotalExecutadas.text("Obras executadas: "+totalObrasExecutadas);
divRelatorioTotalConcluidas.text(totalObrasConcluidas);
divRelatorioTotalEmAndamento.text(totalObrasEmAndamento);
divRelatorioTotalSuspensas.text(totalObrasSuspensas);
divRelatorioTotalEmProjeto.text(totalObrasEmProjeto);
divRelatorioTotalAcompanhamentos.text("Acompanhamentos: "+totalAcompanhamentos);
divRelatorioTotalContratos.text("Contratos: "+totalContratos);
divRelatorioTotalValor.text("R$ "+totalValor.toLocaleString("pt-BR", { minimumFractionDigits: 2 }));
divsRelatorioInfo.show();
});
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* VISUALIZAR OBRA */
function visualizarObra(codigoObra) {
var fancyBoxOptions = {
buttons : [ 'slideShow', 'close' ],
loop : true,
arrows : true,
slideShow : { autoStart : false, speed : 3500 }
};
for(var indexMarker = 0; indexMarker < markers.length; indexMarker++)
{
var item = markers[indexMarker];
item.marker.removeFrom(leafLetMap);
item.marker.closePopup();
if (item.codigo === codigoObra)
{
botaoMenuDetalhes.prop("disabled", false);
item.marker.addTo(leafLetMap);
item.marker.openPopup();
leafLetMap.setView(item.marker.getLatLng(), zoomMax);
divCategoriaObra.css("background", item.cor_marcador);
divCategoriaObra.css("color", item.cor_icone);
divCategoriaObra.find(".obr_categoria_icone").removeClass().addClass("obr_categoria_icone");
divCategoriaObra.find(".obr_categoria_icone").addClass("swfa fa fa-"+item.icone);
divCategoriaObra.find(".obr_categoria_icone").css("background", item.cor_fundo_circulo);
divCategoriaObra.find(".obr_categoria_nome").text(item.nome_categoria);
divCategoriaObra.parent().find(".obr_nome_obra").text(item.titulo);
if (seguirObra)
{
btnSeguirObra.removeClass();
btnSeguirObra.addClass("sw_btn_seguir_ferramenta sw_lato_bold "+item.seguir_class);
btnSeguirObra.attr("title", item.seguir_title);
btnSeguirObra.attr("data-id", item.codigo);
btnSeguirObra.attr("data-ferramenta", "obras");
btnSeguirObra.attr("data-seguir-acao", item.seguir_acao);
$(btnSeguirObra.find("span")[1]).text(item.seguir_txt);
} else {
btnSeguirObra.hide();
}
btnAvaliarObra.attr("data-id", item.codigo);
/* BOTAO SEGUIR */
/* INFORMACOES GERIAS */
var logradouro_completo_exibir = "";
if(item.logradouro_completo != "" && item.logradouro_completo != null && item.logradouro_completo != "0") {
logradouro_completo_exibir += item.logradouro_completo;
}
if(item.bairro != "" && item.bairro != null && item.bairro != "0" && item.bairro != "nao_informado") {
logradouro_completo_exibir += item.bairro;
}
if(logradouro_completo_exibir) {
divLocalizacaoObra.find(".sw_descricao_detalhe").text(logradouro_completo_exibir);
divLocalizacaoObra.show();
} else {
divLocalizacaoObra.hide();
}
if (item.edital) {
divEditalObra.find(".sw_descricao_detalhe").html('<div>'+item.edital.nome+'</div><a href="'+item.edital.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Edital ;<span class="swfa fas fa-search-plus"></span></span></a>');
divEditalObra.show();
} else {
divEditalObra.hide();
}
if (item.contrato) {
divContratoObra.find(".sw_descricao_detalhe").html('<div>'+item.contrato.nome+'</div><a href="'+item.contrato.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Contrato ;<span class="swfa fas fa-search-plus"></span></span></a>');
divContratoObra.show();
} else {
divContratoObra.hide();
}
if (item.empresa && item.empresa !== "null") {
divEmpresaObra.find(".sw_descricao_detalhe").text(item.empresa);
divEmpresaObra.show();
} else {
divEmpresaObra.hide();
}
if (item.fiscal && item.fiscal !== "null") {
divFiscalObra.find(".sw_descricao_detalhe").text(item.fiscal);
divFiscalObra.show();
} else {
divFiscalObra.hide();
}
if (item.descricao && item.descricao !== "null") {
divDescricao.find(".sw_descricao_detalhe").text(item.descricao);
divDescricao.show();
} else {
divDescricao.hide();
}
if (item.valor && parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) > 0.0) {
divValorObra.find("span").text("R$ "+item.valor);
divValorObra.show();
} else {
divValorObra.hide();
}
var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
var valorPagoObra = item.valor_pago ? parseFloat(item.valor_pago.replace(/\./g, "").replace(/,/g, ".")) : 0.0;
if (valorPagoObra > 0.0) {
spanValorPago.text("R$ "+item.valor_pago);
if (valorPagoObra > valorObra){
spanValorPago.addClass("obr_valor_superior");
}
else if (valorPagoObra < valorObra){
spanValorPago.addClass("obr_valor_inferior");
} else {
spanValorPago.addClass("obr_valor_obra");
}
divValorPagoObra.show();
} else {
divValorPagoObra.hide();
}
/* INFORMACOES GERIAS */
/* EXECUCAO DA OBRA */
spanSituacao.text(item.situacao);
if (item.situacao === "Em Andamento") {
spanSituacao.addClass("obr_situacao_em_andamento");
}
else if (item.situacao === "Suspensa") {
spanSituacao.addClass("obr_situacao_suspensa");
}
else if (item.situacao === "Concluída") {
spanSituacao.addClass("obr_situacao_concluida");
}
else if (item.situacao === "Em Projeto") {
spanSituacao.addClass("obr_situacao_em_projeto");
}
/* MOTIVO DA SUSPENSÃO */
if (item.motivo_paralisacao && item.motivo_paralisacao !== "null") {
divMotivoParalisacao.find(".sw_descricao_detalhe").text(item.motivo_paralisacao);
divMotivoParalisacao.show();
} else {
divMotivoParalisacao.hide();
}
/* FONTES DE RECURSO */
if (item.fonte_recurso && item.fonte_recurso !== "null") {
var fontes_recursos = item.fonte_recurso.substr(0, item.fonte_recurso.length - 2);
divFonteRecurso.find(".sw_descricao_detalhe").text(fontes_recursos);
divFonteRecurso.show();
} else {
divFonteRecurso.hide();
}
if (item.dt_inicio)
{
divDataInicio.find(".sw_descricao_detalhe").text(item.dt_inicio_string);
} else {
divDataInicio.hide();
}
if (item.dt_fim)
{
divDataFim.find(".sw_descricao_detalhe").text(item.dt_fim_string);
} else {
divDataFim.hide();
}
if (item.dt_inicio && item.dt_fim)
{
var dataItemFim = item.dt_fim;
var dataAgora = Date.now() / 1000;
if (dataAgora > dataItemFim && ((dataAgora - dataItemFim) >= (24 * 60 * 60)))
{
var diferenca = dataAgora - dataItemFim;
var diferencaDias = diferenca / (24 * 60 * 60);
diferencaDias = ~~diferencaDias;
divObraAtraso.find(".sw_descricao_detalhe").html('Esta obra está <strong>'+diferencaDias+' dias</strong> atrasada.');
divObraAtraso.find(".obr_execucao_atraso").show();
divDataFim.find(".sw_descricao_detalhe").append()
divObraAtraso.show();
} else {
divObraAtraso.hide();
}
} else {
divObraAtraso.hide();
divObraAtraso.find(".obr_execucao_atraso").hide();
}
/* EXECUCAO DA OBRA */
/* ACOMPANHAMENTOS */
divAcompanhamentosObras.find(".sw_linha_lista_detalhes.obr_acompanhamento_info.obr_acompanhamento_modelo").remove();
if (item.acompanhamentos.length > 0)
{
var porcentagemConcluido = 0
item.acompanhamentos.forEach(function(acompanhamento){
var divAcompanhamentoModelo = acompanhamentoModelo.clone();
var spanPorcentagem = divAcompanhamentoModelo.find("div.obr_porcentagem_acompanhamento span");
spanPorcentagem.text(acompanhamento.porcentagem+"%");
spanPorcentagem.css("min-width", acompanhamento.porcentagem+"%");
var spanDtConclusao = divAcompanhamentoModelo.find(".obr_data_acompanhamento");
var spanSituacao = divAcompanhamentoModelo.find(".obr_situacao_acompanhamento");
spanSituacao.text(acompanhamento.situacao);
var spanDescricao = divAcompanhamentoModelo.find(".obr_descricao_acompanhamento");
spanDescricao.text(acompanhamento.descricao);
if (acompanhamento.situacao === "Concluído")
{
spanSituacao.addClass("obr_situacao_concluida");
spanSituacao.show();
spanDtConclusao.text(acompanhamento.dt_conclusao);
spanDtConclusao.show();
porcentagemConcluido = porcentagemConcluido + parseInt(acompanhamento.porcentagem);
} else {
spanDtConclusao.hide();
}
var divVerFotosAcompanhamento = divAcompanhamentoModelo.find(".obr_link_obra.obr_link_ver_fotos");
if (acompanhamento.fotos && Object.values(acompanhamento.fotos).length > 0)
{
var fancyBoxSrc = [];
Object.values(acompanhamento.fotos).forEach(function(foto){
var legenda = "";
if (foto.legenda && foto.legenda !== "null")
{
legenda = foto.legenda;
}
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divVerFotosAcompanhamento.click(function(mouseEvent){
$.fancybox.open(fancyBoxSrc, fancyBoxOptions, 0);
});
divVerFotosAcompanhamento.show();
} else {
divVerFotosAcompanhamento.hide();
}
divAcompanhamentoModelo.insertBefore(divTotalAcompanhamentos)
divAcompanhamentoModelo.show();
});
if (porcentagemConcluido > 0)
{
spanTotalPorcentagem.css("min-width", porcentagemConcluido+"%");
spanTotalPorcentagem.text(porcentagemConcluido+"%");
divTotalAcompanhamentos.show();
} else {
divTotalAcompanhamentos.hide();
}
divAcompanhamentosObras.show();
} else {
divAcompanhamentosObras.hide();
}
/* ACOMPANHAMENTOS */
/* FOTOS */
if (Object.values(item.fotos).length > 0)
{
divFotosObra.find("div.vinc_cont_img_galeria_fotos.obr_foto_modelo").remove();
var dataIndex = -1;
var fancyBoxSrc = [];
Object.values(item.fotos).forEach(function(foto){
var divFotoModelo = fotoModelo.clone();
dataIndex = dataIndex + 1;
var legenda = "";
var imgElemento = divFotoModelo.find("img");
imgElemento.attr("src", foto.arquivo);
imgElemento.attr("data-index", dataIndex);
if (foto.legenda && foto.legenda !== "null")
{
imgElemento.attr("alt", foto.legenda);
legenda = foto.legenda;
} else {
imgElemento.attr("alt", "");
}
// divFotoModelo.attr("data-fancybox", "gallery"+item.codigo);
divContFotos.append(divFotoModelo);
divFotoModelo.show();
var src = { src: foto.arquivo, opts: { caption: legenda } };
fancyBoxSrc.push(src);
});
divContFotos.find("div.vinc_cont_img_galeria_fotos").click(function(mouseEvent){
var target = mouseEvent.target;
target = $(target);
var indexClick = 0;
if (target.attr("data-index") >=0)
{
indexClick = target.attr("data-index");
}
$.fancybox.open(fancyBoxSrc, fancyBoxOptions, indexClick);
});
var fotosQtde = Object.values(item.fotos).length;
var classeGaleriaFotos = "";
if(fotosQtde < 6) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_l"+fotosQtde; }
else if(fotosQtde % 6 == 5) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr5"; }
else if(fotosQtde % 6 == 4) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr4"; }
else if(fotosQtde % 6 == 3) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr3"; }
else if(fotosQtde % 6 == 2) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr2"; }
else if(fotosQtde % 6 == 1) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr1"; }
divFotosObra.find(".vinc_cont_galeria_fotos_vinculada").addClass(classeGaleriaFotos);
divFotosObra.show();
} else {
divFotosObra.hide();
}
/* FOTOS */
/* VIDEOS */
divVideosObra.find("div.obr_video_obra.obr_video_modelo").remove();
if (Object.values(item.videos).length > 0)
{
Object.values(item.videos).forEach(function(video){
if (video.video && video.video !== "null")
{
var divVideoModelo = videoModelo.clone();
var divImg = divVideoModelo.find(".obr_img_video");
if (video.imagem && video.imagem !== "null")
{
var imgVideo = divImg.find("img");
imgVideo.attr("src", video.imagem);
imgVideo.attr("alt", video.nome);
divImg.show();
} else {
divImg.hide();
}
var divData = divVideoModelo.find(".obr_data_video");
if (video.data && video.data !== "null")
{
divData.text(video.data);
divData.show();
} else {
divData.hide();
}
var divNome = divVideoModelo.find(".obr_nome_video");
if (video.nome && video.nome !== "null")
{
divNome.text(video.nome);
}
var inputHidden = divVideoModelo.find("input[type='hidden']");
inputHidden.val(video.video);
divVideoModelo.show();
divVideosObra.append(divVideoModelo);
}
});
divVideosObra.parent().show();
} else {
divVideosObra.parent().hide();
}
/* VIDEOS */
/* ARQUIVOS */
divArquivosObra.find("a.obr_arquivo_modelo").remove();
if (Object.values(item.arquivos).length > 0)
{
Object.values(item.arquivos).forEach(function(arquivo){
var aModelo = arquivoModelo.clone();
aModelo.attr("href", arquivo.arquivo);
var imgExtensao = aModelo.find("img");
imgExtensao.attr("src", arquivo.img_extensao);
imgExtensao.attr("alt", arquivo.extensao);
var divDataArquivo = aModelo.find(".sw_data_arquivo_download");
if (arquivo.data && arquivo.data !== "null")
{
divDataArquivo.text(arquivo.data);
divDataArquivo.show();
} else {
divDataArquivo.hide();
}
var divNomeArquivo = aModelo.find(".sw_nome_arquivo_download");
if (arquivo.nome && arquivo.nome !== "null")
{
divNomeArquivo.text(arquivo.nome);
divNomeArquivo.show();
} else {
divNomeArquivo.hide();
}
aModelo.show();
divArquivosObra.append(aModelo);
});
divArquivosObra.show();
} else {
divArquivosObra.hide();
}
/* ARQUIVOS */
/* SECRETARIAS */
divSecretariasObra.find("a.obr_secretaria_modelo").remove();
if (Object.values(item.secretarias).length > 0)
{
Object.values(item.secretarias).forEach(function(secretaria){
var aSecretariaModelo = secretariaModelo.clone();
aSecretariaModelo.attr("href", secretaria.link)
aSecretariaModelo.attr("target", secretaria.abertura);
var imgModelo = aSecretariaModelo.find("img");
imgModelo.attr("src", secretaria.imagem);
imgModelo.attr("alt", secretaria.nome);
var divNomeSecretaria = aSecretariaModelo.find(".obr_nome_secretaria");
divNomeSecretaria.text(secretaria.nome);
aSecretariaModelo.show();
divSecretariasObra.append(aSecretariaModelo);
});
divSecretariasObra.show();
} else {
divSecretariasObra.hide();
}
/* SECRETARIAS */
/* VALORES E PRAZOS */
if (item.valor || item.valor_pago)
{
if (valorObra > 0.0 && valorPagoObra > 0.0)
{
spanValorContrato.text("R$ "+item.valor);
spanValorPagoFinal.text("R$ "+item.valor_pago);
if (valorObra >= valorPagoObra)
{
spanValorContrato.css("min-width", "100%");
spanValorPagoFinal.parent().addClass("obr_estatistica_positiva");
spanValorPagoFinal.css("min-width", ((valorPagoObra * 100) / valorObra)+"%");
}
else if (valorObra < valorPagoObra)
{
spanValorPagoFinal.css("min-width", "100%");
spanValorPagoFinal.parent().addClass("obr_estatistica_negativa");
spanValorContrato.css("min-width", ((valorObra * 100) / valorPagoObra)+"%");
}
divValorContrato.show();
divValorUtilizado.show();
} else {
if (valorObra > 0.0)
{
spanValorContrato.text("R$ "+item.valor);
spanValorContrato.css("min-width", "100%");
divValorContrato.show();
divValorUtilizado.hide();
}
else if (valorPagoObra > 0.0)
{
spanValorPagoFinal.text("R$ "+item.valor_pago);
spanValorPagoFinal.css("min-width", "100%");
divValorUtilizado.show();
divValorContrato.hide();
}
else {
divValorContrato.parent().hide();
}
}
divValorContrato.parent().show();
} else {
divValorContrato.parent().hide();
}
if (item.dt_inicio && item.dt_fim)
{
var dataInicio = item.dt_inicio;
var dataFim = item.dt_fim;
var dias = (dataFim - dataInicio) / (24 * 60 * 60);
divPrazoRealizacao.find("span").text(dias+" dias");
divPrazoRealizacao.show();
} else {
divPrazoRealizacao.parent().hide();
}
/* VALORES E PRAZOS */
divAreaDetalhes.show();
$(".obr_btn_detalhes").trigger("click");
}
}
}
$body.on("click", ".obr_link_ver_obra", function(){
botaoMenuDetalhes.prop("disabled", false);
var codigoObra = $(this).data("codigo");
codigoObra = parseInt(codigoObra);
if (codigoObra > 0)
{
visualizarObra(codigoObra);
}
});
/* VISUALIZAR OBRA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* SEGUIR OBRA */
btnSeguirObra.click(function(mouseEvent){
if (seguirObra)
{
if (btnSeguirObra.hasClass("itn_btn_login"))
{
sw_popup("#itn_login", "S");
/* RECUPERAÇÃO DE SENHA */
$("#link_senha").click(function() { sw_abrir_janela("/portal/internautas/recuperar-senha", 450, 600) });
} else {
// TRATANDO TEXTO/AÇÃO DO MODAL
var seguirAcao = btnSeguirObra.attr("data-seguir-acao");
var textoModal = "";
if(seguirAcao == "seguir")
{
textoModal = "Ao seguir este item você receberá por e-mail todas suas atualizações em tempo real."
}
else if(seguirAcao == "deixar_seguir")
{
textoModal = "Ao deixar de seguir este item você deixará de receber por e-mail todas suas atualizações em tempo real.";
}
swal({
title: "Atenção!",
text: textoModal,
icon: "warning",
buttons: ["Cancelar", "OK"],
})
.then(function(acao) {
if(acao === true)
{
var codigo = btnSeguirObra.attr("data-id");
codigo = parseInt(codigo);
var ferramenta = btnSeguirObra.attr("data-ferramenta");
// ANALISANDO SE ESTÁ LOGADO
if (!btnSeguirObra.hasClass("itn_btn_login"))
{
//ANALISANDO AÇÃO
var acao;
if (!btnSeguirObra.hasClass("sw_seguindo"))
{
acao = "cadastrar";
} else {
acao = "remover";
}
$.ajax({
url: "/portal/notificacoes/seguir/ferramentas/",
type: "POST",
data: "acao="+acao+"&ferramenta="+ferramenta+"&codigo="+codigo,
async: false,
beforeSend: function(){
sw_carregando_fs("show");
},
complete: function() {
sw_carregando_fs("hide");
},
success: function(data) {
data = JSON.parse(data);
if(data.erro != "" && data.erro != undefined)
{
swal({
text: data.erro,
icon: "error",
});
}
else
{
// ANALISANDO AÇÃO
if (acao == "cadastrar")
{
btnSeguirObra.addClass("sw_seguindo").attr("title", "Clique para deixar de seguir ").find(".sw_txt_btn").text("Seguindo");
btnSeguirObra.attr("data-seguir-acao","deixar_seguir");
} else {
btnSeguirObra.removeClass("sw_seguindo").attr("title", "Clique para seguir").find(".sw_txt_btn").text("Seguir");
btnSeguirObra.attr("data-seguir-acao","seguir");
}
for(var indexMarcador = 0; indexMarcador < markers.length; indexMarcador++)
{
var item = markers[indexMarcador];
if (item.codigo === codigo)
{
if (acao === "cadastrar")
{
item.seguir_acao = "deixar_seguir";
item.seguir_class = "sw_seguindo btn_seguir_ferramenta";
item.seguir_txt = "Seguindo";
item.seguir_title = "Clique para deixar de seguir.";
} else {
item.seguir_acao = "seguir";
item.seguir_class = "btn_seguir_ferramenta disabled";
item.seguir_txt = "Seguir";
item.seguir_title = "Clique para seguir.";
}
break;
}
}
}
},
error: function(data) {
swal({
text: "Algo de errado aconteceu, tente novamente!",
icon: "error",
})
.then(function() {
location.reload(true);
});
}
});
}
}
});
}
}
});
/* SEGUIR OBRA */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ACESSIBILIDADE */
//BOTÃO DE CONTRASTE DE COR
$("#obra_contraste").click(function () {
if($("body").hasClass("contraste"))
{
$("body").removeClass("contraste");
$("body").css("background","#FFFFFF");
$("#logo_branca").hide();
$("#logo_mobile").show();
}
else
{
$("body").addClass("contraste");
$("#logo_branca").show();
$("#logo_mobile").hide();
}
});
/* ACESSIBILIDADE */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* CRIANDO MAPA */
leafLetMap = Mapa("leaflet_map");
/* CRIANDO MAPA */
var abrirRelatorio = false;
var codigoObra = 1;
if (abrirRelatorio)
{
var anoSelecionado = 0;
if (anoSelecionado > 0)
{
selectRelatorioFiltroAno.find("option[value='"+anoSelecionado+"']").prop("selected", true);
}
divMenuObras.find("button[data-menu='obr_content_relatorio']").trigger("click");
}
else
{
if (codigoObra > 0)
{
visualizarObra(codigoObra);
}
}
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
// ABRIR MODAL/ALERT CONFIRMAÇÃO
$(".btn_modal_boletim").click(function() {
swal({
title: "Atenção!",
text: "Ao confirmar você será redirecionado para sua área de preferências para que possa gerenciador o Boletim Informativo.",
icon: "warning",
buttons: ["Cancelar", "OK"],
})
.then(function(acao) {
if(acao === true)
{
window.open("/portal/internautas/dados/preferencias/#boletim_informativo", "_blank");
}
});
});
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
/* ############################################################################################################################################################################################# */
});
</script>]]>
|
2646
| <![CDATA[<script>
/* ============================================================================================
FUNÇÃO PARA RETORNO DA VOTAÇÃO DA ENQUETE
============================================================================================ */
function retorna_enquete(data){
if(data != '')
{
$('#votar').hide();
$("#e_cont_enquete").html(data);
}
}
/* ============================================================================================
POPUP
============================================================================================ */
// FUNÇÃO ABRIR PÁGINA
function sw_abrir_janela(pagina, altura, largura) {
var a = (screen.height/2)-(altura/2);
var l = (screen.width/2)-(largura/2);
window.open(pagina,'senha','width='+largura+',height='+altura+',top='+a+',left='+l+',scrollbars=1');
}
// ABRIR POPUP
function sw_abrir_popup(elemento) {
elemento.fadeIn(200);
elemento.find(".sw_popup").animate({"top": "+20px"}, "fast");
$("body").css("overflow", "hidden");
}
// FECHAR POPUP
function sw_fechar_popup(elemento) {
elemento.fadeOut(200);
elemento.find(".sw_popup").animate({"top": "-20px"}, "fast", function() { $(".sw_popup_modal:visible").last().find("input, button").first().focus(); });
setTimeout(function () {
if (!$(".sw_popup_modal:visible").length) {
$("body").css("overflow", "auto");
}
}, 400);
}
// SW POPUP ( ".ELEMENTO / #ELEMENTO" , "SE MODAL PODE SER FECHADO OU NÃO")
function sw_popup(elemento, fechar) {
if (!fechar) { fechar = "S"; }
var id_elemento = elemento.substr(1); // REMOVE O PRIMEIRO CARACTERE (# OU .)
var elemento = $(elemento);
// ABRIR POPUP
sw_abrir_popup(elemento);
// FECHAR POPUP
elemento.find(".sw_btn_fechar_popup").click(function() { sw_fechar_popup(elemento); });
// ANALISANDO SE MODAL PODE SER FECHADO AO CLICAR FORA DA JANELA E AO TECLAR ESC
if (fechar == "S") {
elemento.addClass("keyupmodal")
// FECHAR AO CLICAR NA TELA ESCURA
elemento.mousedown(function(e) {
if (e.target.id == id_elemento) {
sw_fechar_popup(elemento);
}
});
//elemento.click(function() { console.log("fechou!"); sw_fechar_popup(elemento); });
//elemento.find(".sw_popup").on("click", function() { event.stopPropagation(); });
// FECHAR AO CLICAR ESC
$(document).on("keyup", function(e) {
if (e.keyCode === 27) {
var modal_fehcar, zindex_fechar = 0;
$(".sw_popup_modal.keyupmodal:visible").each(function() {
var modal = $(this);
var zindex_modal = parseInt(modal.css("z-index"));
if (zindex_modal > zindex_fechar) {
zindex_fechar = zindex_modal;
modal_fechar = modal;
}
});
// FECHAR MODAL
sw_fechar_popup(modal_fechar);
}
});
}
}
/* ============================================================================================
ACESSIBILIDADE
============================================================================================ */
// SW ACESSIBILIDADE
if (typeof sw_acessibilidade !== "function") {
function sw_acessibilidade(param, callback) {
// ANALISANDO PARÂMETROS
if (typeof param === "undefined" || !param) { param = {} }
if (typeof param.media === "undefined") { param.media = "desktop" }
// ANALISANDO MEDIA
if (
(param.media === "todas" || param.media === "all") ||
(param.media === "desktop" && window.innerWidth > 1000) ||
(param.media === "mobile" && window.innerWidth <= 1000) ||
(window.innerWidth <= param.media)
) {
// ANALISANDO PARÂMETROS
if (typeof param.layout === "undefined") { param.layout = "a1" }
if (typeof param.caminho === "undefined") { param.caminho = "body" }
// FUNÇÕES
if (param.fonte !== false) { param.fonte = true; }
if (param.contraste !== false) { param.contraste = true; }
if (param.mapa !== false) { param.mapa = true; }
if (param.vlibras !== false) { param.vlibras = true; }
if (param.pagina !== false) { param.pagina = true; }
if (param.transicoes !== false) { param.transicoes = true; }
if (param.reset !== false) { param.reset = true; }
if (param.irconteudo !== false) { param.irconteudo = true; }
if (param.irmenu !== false) { param.irmenu = true; }
if (param.irbusca !== false) { param.irbusca = true; }
if (param.irrodape !== false) { param.irrodape = true; }
// CRIANDO ELEMENTOS
var sw_acessibilidade = $("#sw_acessibilidade");
if (!sw_acessibilidade.length) {
sw_acessibilidade = $('<div id="sw_acessibilidade" />');
$(param.caminho).prepend(sw_acessibilidade);
}
sw_acessibilidade.addClass("sw_area_acessibilidade " + param.layout);
// BOTÃO MENU ACESSIBILIDADE
if (!sw_acessibilidade.find("#sw_btn_menu_acessibilidade").length) {
var btn_menu_acessibilidade = $('<div id="sw_btn_menu_acessibilidade" class="sw_btn_menu_acessibilidade" />')
// INSERINDO ÍCONE DE ACESSIBILIDADE E FECHAR
btn_menu_acessibilidade.append('<div class="sw_icone_acessibilidade" />')
.append('<div class="sw_icone_fechar" />');
// INSERINDO BOTÃO MENU
sw_acessibilidade.append(btn_menu_acessibilidade);
}
// CLICK DO BOTÃO
sw_acessibilidade.find("#sw_btn_menu_acessibilidade").on({
"click": function() {
sw_acessibilidade.toggleClass("show");
}
});
sw_acessibilidade.on({
"mouseenter": function() {
if (window.innerWidth >= 1000) {
sw_acessibilidade.addClass("show");
}
},
"mouseleave": function() {
if (window.innerWidth >= 1000) {
sw_acessibilidade.removeClass("show");
}
}
});
// CONT ACESSIBILIDADE
if (!sw_acessibilidade.find(".sw_cont_acessibilidade").length) {
sw_acessibilidade.append('<div class="sw_cont_acessibilidade" />');
}
// TÍTULO ACESSIBILIDADE
if (!sw_acessibilidade.find(".sw_titulo_acessibilidade").length) {
sw_acessibilidade.find(".sw_cont_acessibilidade").append('<div class="sw_titulo_acessibilidade"><span>Acessibilidade</span></div>');
}
// ÁREA BOTÕES
if (!sw_acessibilidade.find(".sw_area_botoes_acessibilidade").length) {
sw_acessibilidade.find(".sw_cont_acessibilidade").append('<div class="sw_area_botoes_acessibilidade" />');
}
// FUNÇÃO INSERE BOTÃO DE ACESSIBILIDADE
function sw_insere_btn_acessibilidade(param_btn) {
if (param_btn.seletor) {
// ANALISANDO SE O ELEMENTO NÃO EXISTE PARA ENTÃO CRIAR
if (!sw_acessibilidade.find(param_btn.seletor).length) {
var item = $(
'<a>'+
'<div></div>'+
'</a>'
).attr(
param_btn.seletor.charAt(0) === '#' ? 'id' : 'class',
param_btn.seletor.substring(1)
);
// CLASSES
if (param_btn.classes) {
item.find("div").addClass(param_btn.classes);
}
// DESCRIÇÃO
if (param_btn.descricao) {
item.find(".sw_btn_acessibilidade").append('<span class="sw_txt_btn_acessibilidade">'+param_btn.descricao+'</span>');
item.attr("title", param_btn.descricao);
}
// ÍCONE
if (param_btn.icone) {
item.find(".sw_btn_acessibilidade").append('<span class="sw_icone_btn tamanho_fixo swfa '+param_btn.icone+'" />')
}
// LINK
if (param_btn.link) {
item.attr("href", param_btn.link);
}
// ACCESSKEY
if (param_btn.accesskey) {
item.attr("accesskey", param_btn.accesskey);
// INSERINDO TECLADO NUMÉRICO
window.addEventListener("keydown", function(e) {
var keyCode = e.keyCode || e.which;
if (e.altKey && keyCode === param_btn.accesskey+96) {
if (param_btn.link) {
window.location.href = param_btn.link;
}
else {
item.trigger("click")
}
}
}, false)
}
// INSERINDO ITEM
sw_acessibilidade.find(".sw_area_botoes_acessibilidade").append(item);
}
}
}
// =============================================================
// BOTÃO AUMENTAR
// =============================================================
if (param.fonte && !sw_acessibilidade.find("#sw_btn_aumentar_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_aumentar_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_aumentar_acessibilidade",
icone: "fas fa-plus",
descricao: "Aumentar fonte"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_aumentar_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// ALTERANDO FONTS
sw_altera_fonts(1);
// REMOVE CARREGANDO FS
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
});
// =============================================================
// BOTÃO DIMINUIR
// =============================================================
if (param.fonte && !sw_acessibilidade.find("#sw_btn_diminuir_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_diminuir_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_diminuir_acessibilidade",
icone: "fas fa-minus",
descricao: "Diminuir fonte"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_diminuir_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// ALTERANDO FONTS
sw_altera_fonts(-1);
// REMOVE CARREGANDO FS
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
});
// =============================================================
// BOTÃO CONTRASTE
// =============================================================
if (param.contraste && !sw_acessibilidade.find("#sw_btn_contraste_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_contraste_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_contraste_acessibilidade",
icone: "fas fa-adjust",
descricao: "Alto contraste",
accesskey: 5
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_contraste_acessibilidade").click(function() {
var action_contraste = (localStorage.getItem("sw_acessibilidade_contraste") === "true") ? false : true;
sw_contraste(action_contraste);
});
// =============================================================
// BOTÃO VLIBRAS
// =============================================================
if (param.vlibras && !sw_acessibilidade.find("#sw_btn_vlibras_acessibilidade").length && $("#vlibras_include img").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_vlibras_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_vlibras_acessibilidade",
icone: "fas fa-sign-language",
descricao: "Habilitar VLibras",
accesskey: 7
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_vlibras_acessibilidade").click(function() {
var action_vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") === "true") ? false : true;
sw_vlibras(action_vlibras);
});
var vlibras_include = $("#vlibras_include");
if (vlibras_include.length) {
// BOTÃO ABRIR VLIBRAS
vlibras_include.on("click", "div[vw-access-button]", function(e) {
setTimeout(function() {
sw_vlibras(true);
}, 100);
});
// BOTÃO FECHAR VLIBRAS
vlibras_include.on("click", "img.vpw-settings-btn-close", function() {
setTimeout(function() {
sw_vlibras(false);
}, 100);
});
}
// =============================================================
// BOTÃO TRANSIÇÕES
// =============================================================
if (param.transicoes && !sw_acessibilidade.find("#sw_btn_transicoes_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_transicoes_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_transicoes_acessibilidade",
icone: "fab fa-delicious",
descricao: "Ativar/Desativar transições"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_transicoes_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// ACIONANDO FUNÇÃO
var action_transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") === "true") ? false : true;
sw_desativa_transicoes(action_transicoes);
// REMOVE CARREGANDO FS
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
});
// =============================================================
// BOTÃO MAPA
// =============================================================
if (param.mapa && !sw_acessibilidade.find("#sw_btn_mapa_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_mapa_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_mapa_acessibilidade",
icone: "fas fa-sitemap",
descricao: "Mapa do site",
link: "/portal/mapa"
});
}
// =============================================================
// BOTÃO ACESSIBILIDADE PÁGINA
// =============================================================
if (param.pagina && !sw_acessibilidade.find("#sw_btn_pagina_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_pagina_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_pagina_acessibilidade",
icone: "fas fa-wheelchair",
descricao: "Página de Acessibilidade",
link: "/portal/acessibilidade",
accesskey: 6
});
}
// =============================================================
// BOTÃO RESET
// =============================================================
if (param.reset && !sw_acessibilidade.find("#sw_btn_reset_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_reset_acessibilidade",
classes: "sw_btn_acessibilidade sw_btn_reset_acessibilidade",
icone: "fas fa-undo",
descricao: "Resetar acessibilidade"
});
}
// ATRIBUINDO FUNÇÃO
sw_acessibilidade.find("#sw_btn_reset_acessibilidade").click(function() {
// CARREGANDO FS
sw_carregando_fs("show");
// RESETANDO ACESSIBILIDADE
var reset = true;
set_acessibilidade(reset);
// REMOVE CARREGANDO
setTimeout(function() {
sw_carregando_fs("hide");
}, 400);
}).hide();
// =============================================================
// BOTÃO IR PARA O CONTEÚDO
// =============================================================
if (param.irconteudo && !sw_acessibilidade.find("#sw_btn_irconteudo_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irconteudo_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irconteudo_acessibilidade",
icone: "fas fa-desktop",
descricao: "Ir para o conteúdo",
link: (location.pathname === "/" || location.pathname === "/portal" || location.pathname === "/portal/") ? "#e_conteudo" : "#e_centralizar",
accesskey: 1
});
}
// =============================================================
// BOTÃO IR PARA O MENU
// =============================================================
if (param.irmenu && !sw_acessibilidade.find("#sw_btn_irmenu_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irmenu_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irmenu_acessibilidade",
icone: "fas fa-bars",
descricao: "Ir para o menu",
link: "#e_cont_topo",
accesskey: 2
});
}
// =============================================================
// BOTÃO IR PARA A BUSCA
// =============================================================
if (param.irbusca && !sw_acessibilidade.find("#sw_btn_irbusca_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irbusca_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irbusca_acessibilidade",
icone: "fas fa-search",
descricao: "Ir para a busca",
link: "#e_campo_busca",
accesskey: 3
});
}
// IR PARA BUSCA
$("#irbusca").click(function () {
$("#e_campo_busca").focus();
});
// FORMULÁRIO
$("#formulario_busca").bind('submit',function() {
var busca = ($("#e_campo_busca").val() == "") ? 0 : $("#e_campo_busca").val();
window.location.href = '/portal/busca/' + busca;
return false;
});
// =============================================================
// BOTÃO IR PARA O RODAPÉ
// =============================================================
if (param.irrodape && !sw_acessibilidade.find("#sw_btn_irrodape_acessibilidade").length) {
sw_insere_btn_acessibilidade({
seletor: "#sw_btn_irrodape_acessibilidade",
classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irrodape_acessibilidade",
icone: "fas fa-arrow-down",
descricao: "Ir para o rodapé",
link: "#e_cont_rodape",
accesskey: 4
});
}
}
}
}
// FUNÇÃO AUMENTAR / DIMINUIR FONTS
if (typeof sw_altera_fonts !== "function") {
function sw_altera_fonts(action) {
var elemento;
var body = $("body");
var fonte = (localStorage.getItem("sw_acessibilidade_fonte") !== null) ? parseInt(localStorage.getItem("sw_acessibilidade_fonte")) : 0;
var fontoriginal;
var font_size;
var nova_font_size;
// ANALISANDO SE FONT ORIGINAL E PARÂMETRO SÃO DIFERENTES DE ZERO
if (!((action === 0 || action === false || action === null) && fonte === 0)) {
// CALCULANDO NOVA FONT
nova_font_size = (action === 0) ? 0 : fonte + action;
// PERCORRENDO ELEMENTOS DO BODY E SETANDO FONTS ORIGINAIS
if (nova_font_size >= -5 && nova_font_size <= 5) {
body.find("*").each(function() {
elemento = $(this);
// ANALISANDO | SE ELEMENTO PAI CONTÉM A CLASSE TAMANHO_FIXO | && | SE O ELEMENTO NÃO TEM FONT-SIZE ZERO OU | && | SE O ELEMENTO NÃO TEM A CLASSE TAMANHO_FIXO
if ( (!elemento.parents(".tamanho_fixo").length) && (elemento.css("font-size").replace(/\D/g, "") > 0) && (!elemento.hasClass("tamanho_fixo")) ) {
// ANALISANDO ESTADO ATUAL DAS FONTS
fontoriginal = elemento.attr("data-fontoriginal");
if (typeof fontoriginal === "undefined" || fontoriginal === false) {
// SETANDO ATRIBUTO DATA-FONTSIZE ATUAL
fontoriginal = parseInt(elemento.css("font-size").replace("px", ""));
elemento.attr("data-fontoriginal", fontoriginal)
}
}
});
// PERCORRENDO ELEMENTOS DO BODY E ALTERANDO FONT-SIZE
body.find("[data-fontoriginal]").each(function() {
elemento = $(this);
// ANALISANDO FONT ATUAL DO ELEMENTO
fontoriginal = parseInt(elemento.attr("data-fontoriginal"));
font_size = fontoriginal + nova_font_size;
elemento.css({"font-size" : font_size + "px"});
});
// ATUALIZANDO LOCAL STORAGE
if (nova_font_size == 0) {
localStorage.removeItem("sw_acessibilidade_fonte");
} else {
localStorage.setItem("sw_acessibilidade_fonte", nova_font_size);
}
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
}
}
}
// FUNÇÃO CONTRASTE
if (typeof sw_contraste !== "function") {
function sw_contraste(action) {
var body = $("body");
var contraste = (localStorage.getItem("sw_acessibilidade_contraste") !== null) ? localStorage.getItem("sw_acessibilidade_contraste") : false;
// ANALISANDO SE HÁ MUDANÇA DE AÇÃO
if (typeof action === "undefined" || action === null) {
action = contraste;
}
// REMOVENDO TRANSIÇÕES MOMENTANEAMENTE
body.addClass("transition0s");
setTimeout(function() {
body.removeClass("transition0s");
}, 100);
// ANALISANDO AÇÃO
if (action || action === "true") {
body.addClass("contraste");
// SETANDO LOCAL STORAGE
localStorage.setItem("sw_acessibilidade_contraste", action);
}
else {
body.removeClass("contraste");
// RESETANDO LOCAL STORAGE
localStorage.removeItem("sw_acessibilidade_contraste");
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 200, sw_deb_acessibilidade);
}
}
// FUNÇÃO DESATIVA TRANSIÇÕES
if (typeof sw_desativa_transicoes !== "function") {
function sw_desativa_transicoes(action) {
var contents = $("body >*");
var transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") !== null) ? localStorage.getItem("sw_acessibilidade_transicoes") : false;
// ANALISANDO SE HÁ MUDANÇA DE AÇÃO
if (typeof action === "undefined" || action === null) {
action = transicoes;
}
// ANALISANDO AÇÃO
if (action || action === "true") {
contents.addClass("transition0s");
// SETANDO LOCAL STORAGE
localStorage.setItem("sw_acessibilidade_transicoes", true);
}
else {
contents.removeClass("transition0s");
// RESETANDO LOCAL STORAGE
localStorage.removeItem("sw_acessibilidade_transicoes");
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
}
}
// FUNÇÃO HABILITA VLIBRAS
if (typeof sw_vlibras !== "function") {
function sw_vlibras(action) {
var vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") !== null) ? localStorage.getItem("sw_acessibilidade_vlibras") : false;
var vlibras_include = $("#vlibras_include");
// ANALISANDO SE HÁ MUDANÇA DE AÇÃO
if (typeof action === "undefined" || action === null) {
action = vlibras;
}
// ANALISANDO AÇÃO
if (action || action === "true") {
if (vlibras_include.find("div[vw-access-button]").hasClass("active")) {
vlibras_include.find("div[vw-access-button]").trigger("click");
}
// SETANDO LOCAL STORAGE
localStorage.setItem("sw_acessibilidade_vlibras", action);
}
else {
if (!vlibras_include.find("div[vw-access-button]").hasClass("active")) {
vlibras_include.find("img.vpw-settings-btn-close").trigger("click");
}
// RESETANDO LOCAL STORAGE
localStorage.removeItem("sw_acessibilidade_vlibras");
}
// ACIONANDO FUNÇÃO SET ACESSIBILIDADE
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
}
}
// FUNÇÃO SET ACESSIBILIDADE // INDICA AO USUÁRIO QUE HÁ FUNÇÕES DE ACESSIBILIDADES ATIVAS OU RESETA FUNÇÕES
if (typeof set_acessibilidade !== "function") {
function set_acessibilidade(reset)
{
// CAPTURANDO ATRIBUTOS
var fonte = (localStorage.getItem("sw_acessibilidade_fonte") !== null) ? localStorage.getItem("sw_acessibilidade_fonte") : 0;
var contraste = (localStorage.getItem("sw_acessibilidade_contraste") !== null) ? localStorage.getItem("sw_acessibilidade_contraste") : false;
var transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") !== null) ? localStorage.getItem("sw_acessibilidade_transicoes") : false;
var vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") !== null) ? localStorage.getItem("sw_acessibilidade_vlibras") : false;
// BOTÕES
var sw_btn_menu_acessibilidade = $("#sw_btn_menu_acessibilidade");
var sw_btn_aumentar_acessibilidade = $("#sw_btn_aumentar_acessibilidade");
var sw_btn_diminuir_acessibilidade = $("#sw_btn_diminuir_acessibilidade");
var sw_btn_contraste_acessibilidade = $("#sw_btn_contraste_acessibilidade");
var sw_btn_transicoes_acessibilidade = $("#sw_btn_transicoes_acessibilidade");
var sw_btn_vlibras_acessibilidade = $("#sw_btn_vlibras_acessibilidade");
var sw_btn_reset_acessibilidade = $("#sw_btn_reset_acessibilidade");
// ANALISANDO RESET
if (reset === true) {
fonte = 0;
contraste = false;
transicoes = false;
vlibras = false;
// RESETANDO ACESSIBILIDADE
sw_altera_fonts(fonte);
sw_contraste(contraste);
sw_desativa_transicoes(transicoes);
sw_vlibras(vlibras);
}
// BOTÃO DE RESET
if (sw_btn_reset_acessibilidade.length) {
if (fonte != 0 || contraste || transicoes || vlibras) {
sw_btn_reset_acessibilidade.show();
}
else {
sw_btn_reset_acessibilidade.hide();
}
}
// ANALISANDO FUNÇÕES INDIVIDUALMENTE
var qtde_funcoes = 0;
// AUMENTAR / DIMINUIR FONTE
if (fonte > 0) {
qtde_funcoes++;
sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", fonte).addClass("ativa");
sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
else if (fonte < 0) {
qtde_funcoes++;
sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", fonte).addClass("ativa");
sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
else {
sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// CONTRASTE
if (contraste) {
qtde_funcoes++;
sw_btn_contraste_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa");
}
else {
sw_btn_contraste_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// TRANSIÇÕES
if (transicoes) {
qtde_funcoes++;
sw_btn_transicoes_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa");
}
else {
sw_btn_transicoes_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// VLIBRAS
if (vlibras) {
qtde_funcoes++;
sw_btn_vlibras_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa");
}
else {
sw_btn_vlibras_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa");
}
// ANALISANDO QUANTIDADE DE FUNÇÕES
if (qtde_funcoes > 0) {
sw_btn_menu_acessibilidade.addClass("ativa").find(".sw_icone_acessibilidade").attr("data-acessibilidade", qtde_funcoes);
}
else {
sw_btn_menu_acessibilidade.removeClass("ativa").find(".sw_icone_acessibilidade").removeAttr("data-acessibilidade");
}
// ATRIBUINDO TEXTO AOS BOTÕES
if (sw_btn_contraste_acessibilidade.length) {
var txt_btn = (contraste === false) ? "Alto contraste" : "Baixo contraste";
sw_btn_contraste_acessibilidade.attr("title", txt_btn);
sw_btn_contraste_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn);
}
if (sw_btn_transicoes_acessibilidade.length) {
var txt_btn = (transicoes == false) ? "Remover transições" : "Ativar transições";
sw_btn_transicoes_acessibilidade.attr("title", txt_btn);
sw_btn_transicoes_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn);
}
if (sw_btn_vlibras_acessibilidade.length) {
var txt_btn = (vlibras == false) ? "Ativar VLibras" : "Desativar VLibras";
sw_btn_vlibras_acessibilidade.attr("title", txt_btn);
sw_btn_vlibras_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn);
}
}
}
// FUNÇÃO DEBOUNCE
if (typeof sw_debounce !== "function") {
function sw_debounce(funcao, time, debounce_timeout) {
clearTimeout(debounce_timeout);
// A CHAMADA DESSA FUNÇÃO DEVE SER RETORNADA PARA A VARIÁVEL 'debounce_timeout'
// Ex: var debounce_timeout = sw_debounce(funcao, time, debounce_timeout)
return debounce_timeout = setTimeout(funcao, time);
}
}
var sw_deb_acessibilidade;
/* ============================================================================================
ACIONANDO FUNÇÕES ANTES DE CARREGAR A PÁGINA
============================================================================================ */
// CONTRASTE
sw_contraste(null);
// TRANSIÇÕES
sw_desativa_transicoes(null);
/* ============================================================================================
ACIONANDO FUNÇÕES AO CARREGAR A PÁGINA
============================================================================================ */
$(document).ready(function() {
/* ============================================================================================
ACESSIBILIDADE ---- ANTIGO --- REMOVER DEPOIS DE TODOS ALTERADOS
============================================================================================ */
// BOTÃO DE AUMENTAR A FONTE
$(".aumentar").click(function () {
$("*").each(function() {
if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) )
{
var size = $(this).css('font-size');
size = size.replace('px', '');
size = parseInt(size) + 1;
if(size < 18)
{
$(this).animate({'font-size' : size + 'px'});
}
}
});
});
// BOTÃO DE DIMINUIR A FONTE
$(".diminuir").click(function () {
$("*").each(function() {
if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) )
{
var size = $(this).css('font-size');
size = size.replace('px', '');
size = parseInt(size) - 1;
if(size > 10)
{
$(this).animate({'font-size' : size + 'px'});
}
}
});
});
// BOTÃO DE CONTRASTE DE COR
$("#contraste").click(function () {
if($("body").hasClass("contraste"))
{
$("body").removeClass("contraste");
$("body").css("background","#FFFFFF");
$("#logo_branca").hide();
}
else
{
$("body").addClass("contraste");
$("#logo_branca").show();
}
});
// BOTÃO IR PARA BUSCA
$("#irbusca").click(function () {
$("#e_campo_busca").focus();
});
// VLIBRAS
$(".vlibras").click(function() {
$("#vlibras_include div[vw-access-button]").trigger("click");
});
// // SW ACESSIBILIDADE
// var sw_parametros_acessibilidade = {
// layout: "a1"
// };
// // ANALISANDO SE HÁ PARÂMETROS EXCLUSIVOS DO LAYOUT
// if (typeof e_parametros_acessibilidade === "object") {
// sw_parametros_acessibilidade = e_parametros_acessibilidade;
// }
// // ACIONANDO FUNÇÃO DE ACESSIBILIDADE
// sw_acessibilidade(sw_parametros_acessibilidade)
// ACIONANDO FUNÇÃO DE ACESSIBILIDADE AO FIM DO CARREGAMENTO DA PÁGINA
$(window).on("load", function() {
// ALTERAR FONTS
sw_altera_fonts(null);
// VLIBRAS
sw_vlibras(null);
});
// SETANDO ATRIBUTOS
sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade);
/* ============================================================================================
ENQUETE
============================================================================================ */
// CLICK DO BOTÃO COM ID VOTAR DA ENQUETE
$('#votar').click(function(){
var opcao = $("input[name=form_resposta]:checked").val();
opcao = parseInt(opcao);
var recaptcha = "";
//A CLASSE e_captcha_enquete DEVE SER INSERIDA NO HTMLQUE CONTER O CAPTCHA DA ENQUETE, PARA QUE O CÓDIGO CONSIGA LOCALIZAR O RESULTADO REFERENTE AO LOCAL CORRETO
recaptcha = $(".e_captcha_enquete").find("textarea.g-recaptcha-response").val();
//SE EXISTIR OS CAMPOS DE NOME E E-MAIL
if($('#form_nome_enquete').length || $('#form_email_enquete').length || $("#form_cpf_enquete").length || $("#form_data_enquete").length)
{
if(isNaN(opcao))
{
swal({
text: "Enquete: selecione uma resposta.",
icon: "warning"
});
}
else
{
if($("#form_nome_enquete").val() == "" || $("#form_email_enquete").val() == "" || $("#form_cpf_enquete").val() == "" || $("#form_data_enquete").val() == "" || $("#form_data_enquete").val() == "00/00/0000")
{
swal({
text: "Enquete: preencha os campos.",
icon: "warning"
});
}
else
{
var nome = $("#form_nome_enquete").val();
var email = $("#form_email_enquete").val();
var cpf = $("#form_cpf_enquete").val();
var data = $("#form_data_enquete").val();
var invalido = "";
if($("#form_cpf_enquete").val() != '' && $("#form_cpf_enquete").length)
{
if(validarCPF(cpf) == false)
{
swal({
text: "Enquete: CPF informado é inválido.",
icon: "error"
});
invalido = "S";
}
}
if($("#form_email_enquete").val() != '' && $("#form_email_enquete").length)
{
if(validarEmail(email) == false)
{
swal({
text: "Enquete: E-mail informado é inválido.",
icon: "error"
});
invalido = "S";
}
}
if(invalido != "S")
{
$.post('/portal/enquete/votar/',{ enviar: 's', form_resposta: opcao, form_nome: nome, form_email: email, form_cpf: cpf, form_data: data, captcha: recaptcha }, retorna_enquete);
}
}
}
}
else
{
if(!isNaN(opcao))
{
$.post('/portal/enquete/votar/',{ enviar: 's', form_resposta: opcao, captcha: recaptcha }, retorna_enquete);
}
else
{
swal({
text: "Enquete: selecione uma resposta.",
icon: "warning"
});
}
}
});
});
</script>]]>
|