Logo CEWEB.br Logo NIC.br Logo CGI.br
Home Sobre o projeto

Sites Verificados

Lista com todos os sítios que foram verificados pela TIC Web Acessibilidade. Dentro de cada domínio, há informações detalhadas sobre as páginas coletadas, bem como os erros e avisos de cada uma *.

Endereço Nota Erros Avisos

www.taiobeiras.mg.gov.br/portal/obras/8

87.4 3 207
Recomendações Avaliadas
1.1 Respeitar os Padrões Web.

Recomendações

Número Descrição Quantidade Linhas Código Fonte
1.1.3 Presença de CSS(s) in-line 33 3761 3770 3780 4796 4807 4863 4871 4879 4887 4895 4903 4911 4919 5182 5183 5185 5195 5197 5207 5209 5234 5246 5247 5272 5310 5319 5328 5490 5535 5539 5546 5548 5552
1.1.6 Presença de javascript(s) interno 10 71 2696 2710 2727 3807 3963 4642 4676 5610 5774
3761 <![CDATA[<div style="width: 90%;"> <div class="sw_nome_detalhe sw_lato_bold"> Cookies necessários <div class="sw_descricao_detalhes_cookie sw_lato">Essenciais para uma navegação eficiente em nosso site.</div> </div> </div>]]>
3770 <![CDATA[<span class="sw_btn_checkbox_background" style="opacity: 0.5;"> <span class="sw_btn_checkbox_controle"></span> </span>]]>
3780 <![CDATA[<div style="width: 90%;"> <div class="sw_nome_detalhe sw_lato_bold"> Cookies de estatísticas <div class="sw_descricao_detalhes_cookie sw_lato">Recomendados para a prefeitura coletar informações de navegações do usuário.</div> </div> </div>]]>
4796 <![CDATA[<img id="logo_branca" src="/img/logo_branca.png" alt="Brasão prefeitura" style="display: none;">]]>
4807 <![CDATA[<div class="obr_content_menu obr_content_filtro" id="obr_content_filtro" style="display: block;"> <div class="obr_titulos sw_lato_black"> <span class="swfa fas fa-filter"></span> <span>Filtrar Obras</span> </div> <!-- FORMULÁRIO --> <div class="obr_formulario_filtro"> <form id="obr_form_filtro"> <!-- BOTÃO TOGGLE FILTRO --> <button type="button" class="obr_btn_toggle_formulario" id="obr_btn_toggle_filtro"><span class="swfa fas fa-angle-down"></span></button> <div class="obr_cont_formulario"> <!-- PALAVRA-CHAVE --> <div class="obr_campo_form"> <label for="obr_palavra_chave" class="sw_lato_black">Palavra-Chave</label> <input type="text" id="obr_palavra_chave" name="obr_palavra_chave" class="sw_lato" autocomplete="off"> </div> <!-- PERÍODO INICIAL --> <div class="obr_campo_form obr_campo_form_periodo"> <label for="obr_periodo_inicial" class="sw_lato_black">Período Inicial</label> <input type="text" id="obr_periodo_inicial" name="obr_periodo_inicial" class="sw_lato" autocomplete="off"> </div> <!-- PERÍODO FINAL --> <div class="obr_campo_form obr_campo_form_periodo"> <label for="obr_periodo_final" class="sw_lato_black">Período Final</label> <input type="text" id="obr_periodo_final" name="obr_periodo_final" class="sw_lato" autocomplete="off"> </div> <!-- CHECKLIST CATEGORIAS --> <div class="obr_checklist sw_lato"> <!-- TÍTULO --> <div class="obr_titulo_checklist"> <div class="obr_checkbox"> <input type="checkbox" id="obr_todos_categorias" class="obr_checklist_todos" checked> <label for="obr_todos_categorias" class="sw_lato_black" title="Desmarcar todos">Categorias</label> </div> <button type="button" class="obr_btn_toggle_formulario obr_btn_toggle_checklist"><span class="swfa fas fa-angle-down"></span></button> </div> <!-- CONTEÚDO --> <div class="obr_conteudo_checklist"> <!-- FILTRAR --> <div class="obr_campo_form"> <label for="obr_buscar_categorias" class="trans">Buscar Categoria</label> <input type="text" id="obr_buscar_categorias" name="obr_buscar_categorias" class="obr_busca_checklist sw_lato" placeholder="Buscar Categoria" autocomplete="off"> </div> <!-- LISTA --> <div class="obr_area_lista_checklist"> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="5" id="obr_categoria5" checked> <label for="obr_categoria5" class="sw_lato_bold"> <span style="border-color: #81b6a5 !important; color: #ffffff; background: #81b6a5" class="swfa fa fa-angle-double-left"></span> Construções de quadras esportivas (sem cobertura) </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="6" id="obr_categoria6" checked> <label for="obr_categoria6" class="sw_lato_bold"> <span style="border-color: #000000 !important; color: #ffffff; background: #000000" class="swfa fa fa-angle-double-left"></span> Pavimentações de vias públicas </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="7" id="obr_categoria7" checked> <label for="obr_categoria7" class="sw_lato_bold"> <span style="border-color: #36ce87 !important; color: #ffffff; background: #36ce87" class="swfa fa fa-angle-double-left"></span> Construções de praças e calçadas </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="8" id="obr_categoria8" checked> <label for="obr_categoria8" class="sw_lato_bold"> <span style="border-color: #e2c269 !important; color: #ffffff; background: #e2c269" class="swfa fa fa-angle-double-left"></span> Construção de galpão </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="10" id="obr_categoria10" checked> <label for="obr_categoria10" class="sw_lato_bold"> <span style="border-color: #51e63d !important; color: #ffffff; background: #51e63d" class="swfa fa fa-recycle"></span> Construção de trincheira </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="11" id="obr_categoria11" checked> <label for="obr_categoria11" class="sw_lato_bold"> <span style="border-color: #1870cd !important; color: #ffffff; background: #1870cd" class="swfa fa fa-plus-circle"></span> Construção de unidades básicas de saúde (UBSs) </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="12" id="obr_categoria12" checked> <label for="obr_categoria12" class="sw_lato_bold"> <span style="border-color: #9b3636 !important; color: #ffffff; background: #9b3636" class="swfa fa fa-angle-double-left"></span> Reformas diversas </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_categoria" data-categoria="13" id="obr_categoria13" checked> <label for="obr_categoria13" class="sw_lato_bold"> <span style="border-color: #d8baba !important; color: #ffffff; background: #d8baba" class="swfa fa fa-angle-double-left"></span> Construção de ponte </label> </div> </div> </div> </div> </div> <!-- FIM CHECKLIST CATEGORIAS --> <!-- CHECKLIST BAIRROS --> <div class="obr_checklist sw_lato hide"> <!-- TÍTULO --> <div class="obr_titulo_checklist"> <div class="obr_checkbox"> <input type="checkbox" id="obr_todos_bairros" class="obr_checklist_todos" checked> <label for="obr_todos_bairros" class="sw_lato_black" title="Desmarcar todos">Bairros</label> </div> <button type="button" class="obr_btn_toggle_formulario obr_btn_toggle_checklist"><span class="swfa fas fa-angle-down"></span></button> </div> <!-- CONTEÚDO --> <div class="obr_conteudo_checklist"> <!-- FILTRAR --> <div class="obr_campo_form"> <label for="obr_buscar_bairro" class="trans">Buscar Bairro</label> <input type="text" id="obr_buscar_bairro" name="obr_buscar_bairro" class="obr_busca_checklist sw_lato" placeholder="Buscar Bairro" autocomplete="off"> </div> <!-- LISTA --> <div class="obr_area_lista_checklist"> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="nao_informado" id="obr_bairro_nao_informado" checked> <label for="obr_bairro_nao_informado" class="sw_lato_bold">Bairro não informado</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Centro" id="obr_bairro869252" checked> <label for="obr_bairro869252" class="sw_lato_bold">Centro</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Bom Jardim" id="obr_bairro958500" checked> <label for="obr_bairro958500" class="sw_lato_bold">Bom Jardim</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Sagrada Família" id="obr_bairro910283" checked> <label for="obr_bairro910283" class="sw_lato_bold">Sagrada Família</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Planalto" id="obr_bairro685508" checked> <label for="obr_bairro685508" class="sw_lato_bold">Planalto</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Nossa Senhora de Fátima" id="obr_bairro549297" checked> <label for="obr_bairro549297" class="sw_lato_bold">Nossa Senhora de Fátima</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Povoado de Lagoa Grande" id="obr_bairro185245" checked> <label for="obr_bairro185245" class="sw_lato_bold">Povoado de Lagoa Grande</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Vila Formosa" id="obr_bairro504620" checked> <label for="obr_bairro504620" class="sw_lato_bold">Vila Formosa</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Zona Rural" id="obr_bairro94839" checked> <label for="obr_bairro94839" class="sw_lato_bold">Zona Rural</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_bairro" data-bairro="Distrito de Mirandópolis" id="obr_bairro94709" checked> <label for="obr_bairro94709" class="sw_lato_bold">Distrito de Mirandópolis</label> </div> </div> </div> </div> </div> <!-- FIM CHECKLIST BAIRROS --> <!-- CHECKLIST LOGRADOUROS --> <div class="obr_checklist sw_lato hide"> <!-- TÍTULO --> <div class="obr_titulo_checklist"> <div class="obr_checkbox"> <input type="checkbox" id="obr_todos_logradouros" class="obr_checklist_todos" checked> <label for="obr_todos_logradouros" class="sw_lato_black" title="Desmarcar todos">Logradouros</label> </div> <button type="button" class="obr_btn_toggle_formulario obr_btn_toggle_checklist"><span class="swfa fas fa-angle-down"></span></button> </div> <!-- CONTEÚDO --> <div class="obr_conteudo_checklist"> <!-- FILTRAR --> <div class="obr_campo_form"> <label for="obr_buscar_logradouros" class="trans">Buscar Logradouro</label> <input type="text" id="obr_buscar_logradouros" name="obr_buscar_logradouros" class="obr_busca_checklist sw_lato" placeholder="Buscar Logradouro" autocomplete="off"> </div> <!-- LISTA --> <div class="obr_area_lista_checklist"> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="nao_informado" id="obr_logradouro_nao_informado" checked> <label for="obr_logradouro_nao_informado" class="sw_lato_bold">Logradouro não informado</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Praça de Esportes, s/n" id="obr_logradouro908124" checked> <label for="obr_logradouro908124" class="sw_lato_bold">Praça de Esportes, s/n</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Tóquio e Belo Horizonte" id="obr_logradouro689552" checked> <label for="obr_logradouro689552" class="sw_lato_bold">Tóquio e Belo Horizonte</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="do Contorno" id="obr_logradouro650064" checked> <label for="obr_logradouro650064" class="sw_lato_bold">do Contorno</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Turmalina" id="obr_logradouro15489" checked> <label for="obr_logradouro15489" class="sw_lato_bold">Turmalina</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="das Paineiras" id="obr_logradouro387826" checked> <label for="obr_logradouro387826" class="sw_lato_bold">das Paineiras</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="LMG 626 (Taiobeiras/Rio Pardo de Minas)" id="obr_logradouro297344" checked> <label for="obr_logradouro297344" class="sw_lato_bold">LMG 626 (Taiobeiras/Rio Pardo de Minas)</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Bonfim" id="obr_logradouro335001" checked> <label for="obr_logradouro335001" class="sw_lato_bold">Bonfim</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Rio Pardo" id="obr_logradouro398451" checked> <label for="obr_logradouro398451" class="sw_lato_bold">Rio Pardo</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Comunidade Riinho" id="obr_logradouro323891" checked> <label for="obr_logradouro323891" class="sw_lato_bold">Comunidade Riinho</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Paraíba" id="obr_logradouro218718" checked> <label for="obr_logradouro218718" class="sw_lato_bold">Paraíba</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="LMG 626" id="obr_logradouro177871" checked> <label for="obr_logradouro177871" class="sw_lato_bold">LMG 626</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Santo Menezes " id="obr_logradouro699969" checked> <label for="obr_logradouro699969" class="sw_lato_bold">Santo Menezes </label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Guaicurus" id="obr_logradouro410650" checked> <label for="obr_logradouro410650" class="sw_lato_bold">Guaicurus</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_logradouro" data-logradouro="Povoado de Lagoa Dourada" id="obr_logradouro518952" checked> <label for="obr_logradouro518952" class="sw_lato_bold">Povoado de Lagoa Dourada</label> </div> </div> </div> </div> </div> <!-- FIM CHECKLIST LOGRADOUROS --> <!-- CHECKLIST SITUAÇÕES --> <div class="obr_checklist sw_lato hide"> <!-- TÍTULO --> <div class="obr_titulo_checklist"> <div class="obr_checkbox"> <input type="checkbox" id="obr_todos_situacoes" class="obr_checklist_todos" checked> <label for="obr_todos_situacoes" class="sw_lato_black" title="Desmarcar todos">Situações</label> </div> <button type="button" class="obr_btn_toggle_formulario obr_btn_toggle_checklist"><span class="swfa fas fa-angle-down"></span></button> </div> <!-- CONTEÚDO --> <div class="obr_conteudo_checklist"> <!-- FILTRAR --> <div class="obr_campo_form"> <label for="obr_buscar_situacao" class="trans">Buscar Situação</label> <input type="text" id="obr_buscar_situacao" name="obr_buscar_situacao" class="obr_busca_checklist sw_lato" placeholder="Buscar Situação" autocomplete="off"> </div> <!-- LISTA --> <div class="obr_area_lista_checklist"> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_situacao" data-situacao="Em Andamento" id="obr_situacao_em_andameto" checked> <label for="obr_situacao_em_andameto" class="sw_lato_bold">Em Andamento</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_situacao" data-situacao="Suspensa" id="obr_situacao_suspensa" checked> <label for="obr_situacao_suspensa" class="sw_lato_bold">Suspensa</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_situacao" data-situacao="Concluído" id="obr_situacao_concluida" checked> <label for="obr_situacao_concluida" class="sw_lato_bold">Concluído</label> </div> </div> <div class="obr_item_checklist"> <div class="obr_checkbox"> <input type="checkbox" class="obr_filtro_situacao" data-situacao="Em Projeto" id="obr_situacao_em_projeto" checked> <label for="obr_situacao_em_projeto" class="sw_lato_bold">Em Projeto</label> </div> </div> </div> </div> </div> <!-- FIM CHECKLIST SITUAÇÕES --> <!-- BOTÕES FORMULÁRIO --> <div class="sw_area_botoes_exportacao" style="padding-top: 8px; padding-bottom: 0px"> <div class="sw_cont_botoes_exportacao" style="float: none; display: flex; justify-content: center;"> <a href="/portal/dados-abertos/obras/2023" target='_blank'> <div id="sw_btn_dados_abertos" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Exportar dados abertos" style="width: 12em"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div> </a> </div> </div> <div class="obr_area_botoes_formulario" style="padding: 2px"> <button type="submit" class="obr_btn_formulario obr_btn_filtrar sw_lato_bold"><span class="swfa fas fa-search"></span>Filtrar</button> <button type="reset" class="obr_btn_formulario obr_btn_limpar sw_lato_bold" style="display: none;"><span class="swfa fas fa-eraser"></span>Limpar Filtro</button> </div> <!-- FIM BOTÕES FORMULÁRIO --> </div> </form> </div> <!-- FIM FORMULÁRIO --> <!-- LISTAGEM --> <div class="obr_area_listagem" style="display: none;" data-fim="0"> <div class="sw_area_info_resultado_busca sw_lato_bold" style="display: none;"> <div class="sw_info_resultado_busca"> <span class="sw_qtde_resultados" id="span_qtde_obras_encontradas"></span> <span id="span_obras_encontradas"></span> </div> <div class="obr_info_listagem_obras"></div> </div> <!-- BOTÃO VER MAIS LISTAGEM --> <button class="obr_btn_mostrar_mais_listagem obr_volta_pagina sw_lato_black"> <span class="swfa fas fa-angle-double-left"></span><span>VOLTAR</span> </button> <select class="obr_select_paginacao_listagem"> </select> <button class="obr_btn_mostrar_mais_listagem obr_avanca_pagina sw_lato_black"> <span>AVANÇAR</span><span class="swfa fas fa-angle-double-right"></span> </button> </div> <!-- FIM LISTAGEM --> </div>]]>
4863 <![CDATA[<span style="border-color: #81b6a5 !important; color: #ffffff; background: #81b6a5" class="swfa fa fa-angle-double-left"></span>]]>
4871 <![CDATA[<span style="border-color: #000000 !important; color: #ffffff; background: #000000" class="swfa fa fa-angle-double-left"></span>]]>
4879 <![CDATA[<span style="border-color: #36ce87 !important; color: #ffffff; background: #36ce87" class="swfa fa fa-angle-double-left"></span>]]>
4887 <![CDATA[<span style="border-color: #e2c269 !important; color: #ffffff; background: #e2c269" class="swfa fa fa-angle-double-left"></span>]]>
4895 <![CDATA[<span style="border-color: #51e63d !important; color: #ffffff; background: #51e63d" class="swfa fa fa-recycle"></span>]]>
4903 <![CDATA[<span style="border-color: #1870cd !important; color: #ffffff; background: #1870cd" class="swfa fa fa-plus-circle"></span>]]>
4911 <![CDATA[<span style="border-color: #9b3636 !important; color: #ffffff; background: #9b3636" class="swfa fa fa-angle-double-left"></span>]]>
4919 <![CDATA[<span style="border-color: #d8baba !important; color: #ffffff; background: #d8baba" class="swfa fa fa-angle-double-left"></span>]]>
5182 <![CDATA[<div class="sw_area_botoes_exportacao" style="padding-top: 8px; padding-bottom: 0px"> <div class="sw_cont_botoes_exportacao" style="float: none; display: flex; justify-content: center;"> <a href="/portal/dados-abertos/obras/2023" target='_blank'> <div id="sw_btn_dados_abertos" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Exportar dados abertos" style="width: 12em"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div> </a> </div> </div>]]>
5183 <![CDATA[<div class="sw_cont_botoes_exportacao" style="float: none; display: flex; justify-content: center;"> <a href="/portal/dados-abertos/obras/2023" target='_blank'> <div id="sw_btn_dados_abertos" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Exportar dados abertos" style="width: 12em"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div> </a> </div>]]>
5185 <![CDATA[<div id="sw_btn_dados_abertos" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Exportar dados abertos" style="width: 12em"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div>]]>
5195 <![CDATA[<div class="obr_area_botoes_formulario" style="padding: 2px"> <button type="submit" class="obr_btn_formulario obr_btn_filtrar sw_lato_bold"><span class="swfa fas fa-search"></span>Filtrar</button> <button type="reset" class="obr_btn_formulario obr_btn_limpar sw_lato_bold" style="display: none;"><span class="swfa fas fa-eraser"></span>Limpar Filtro</button> </div>]]>
5197 <![CDATA[<button type="reset" class="obr_btn_formulario obr_btn_limpar sw_lato_bold" style="display: none;"><span class="swfa fas fa-eraser"></span>Limpar Filtro</button>]]>
5207 <![CDATA[<div class="obr_area_listagem" style="display: none;" data-fim="0"> <div class="sw_area_info_resultado_busca sw_lato_bold" style="display: none;"> <div class="sw_info_resultado_busca"> <span class="sw_qtde_resultados" id="span_qtde_obras_encontradas"></span> <span id="span_obras_encontradas"></span> </div> <div class="obr_info_listagem_obras"></div> </div> <!-- BOTÃO VER MAIS LISTAGEM --> <button class="obr_btn_mostrar_mais_listagem obr_volta_pagina sw_lato_black"> <span class="swfa fas fa-angle-double-left"></span><span>VOLTAR</span> </button> <select class="obr_select_paginacao_listagem"> </select> <button class="obr_btn_mostrar_mais_listagem obr_avanca_pagina sw_lato_black"> <span>AVANÇAR</span><span class="swfa fas fa-angle-double-right"></span> </button> </div>]]>
5209 <![CDATA[<div class="sw_area_info_resultado_busca sw_lato_bold" style="display: none;"> <div class="sw_info_resultado_busca"> <span class="sw_qtde_resultados" id="span_qtde_obras_encontradas"></span> <span id="span_obras_encontradas"></span> </div> <div class="obr_info_listagem_obras"></div> </div>]]>
5234 <![CDATA[<div class="obr_content_menu obr_content_relatorio" id="obr_content_relatorio" style="display: none;"> <div class="obr_titulos sw_lato_black"> <span class="swfa fas fa-clipboard"></span> <span>Relatório de Obras</span> </div> <div class="obr_area_relatorio_obras"> <!-- NOME DO ÓRGÃO PÚBLICO --> <div class="obr_nome_orgao_publico sw_lato_black">Prefeitura Municipal de Taiobeiras - MG</div> <!-- FORMULÁRIO --> <div class="obr_formulario_filtro obr_relatorio"> <div class="sw_area_botoes_exportacao" style="padding-top: 8px; padding-bottom: 0px"> <div class="sw_cont_botoes_exportacao" style="float: none; display: flex; justify-content: center;"> <a href="/portal/dados-abertos/obras/2023" target='_blank'> <div id="sw_btn_pdf" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Gerar listagem em JSON"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div> </a> </div> </div> <div class="obr_cont_formulario"> <!-- PALAVRA-CHAVE --> <div class="obr_campo_form"> <label for="obr_filtro_ano" class="sw_lato_black">Filtrar obras por ano</label> <select id="obr_filtro_ano" name="obr_filtro_ano" class="sw_lato"> <option value="" class="sw_lato" selected>Todos os anos</option> </select> </div> </div> </div> <!-- FIM FORMULÁRIO --> <!-- OBRAS EXECUTADAS--> <div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa far fa-building"></span> <span class="obr_txt_titulo obr_total_executadas">Obras:</span> </div> <!-- INFO OBRAS --> <div class="obr_area_info_obras_executadas sw_lato_black"> <!-- CONCLUÍDAS --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_concluida"></div> <div class="obr_txt_info obr_situacao_concluida">Concluídas</div> </div> <!-- CONCLUÍDAS --> <!-- EM ANDAMENTO --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_em_andamento"></div> <div class="obr_txt_info obr_situacao_em_andamento">Em Andamento</div> </div> <!-- EM ANDAMENTO --> <!-- SUSPENSA --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_suspensa"></div> <div class="obr_txt_info obr_situacao_suspensa">Suspensas</div> </div> <!-- SUSPENSA --> <!-- EM PROJETO --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_em_projeto"></div> <div class="obr_txt_info obr_situacao_em_projeto">Em Projeto</div> </div> <!-- EM PROJETO --> </div> <!-- INFO OBRAS --> </div> <!-- OBRAS EXECUTADAS--> <!-- ACOMPANHAMENTOS --> <div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa far fa-folder-open"></span> <span class="obr_txt_titulo obr_total_acompanhamentos">Acompanhamentos:</span> </div> </div> <!-- ACOMPANHAMENTOS --> <!-- CONTRATOS --> <div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa fas fa-copy"></span> <span class="obr_txt_titulo obr_total_contratos">Contratos:</span> </div> </div> <!-- CONTRATOS --> <!-- VALOR TOTAL --> <div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa fas fa-dollar-sign"></span> <span class="obr_txt_titulo">Valor Total: <span class="obr_valor_obra"></span></span> </div> </div> <!-- VALOR TOTAL --> <!-- GRÁFICO CATEGORIAS--> <div class="obr_area_info_relatorio_obras"> <div id="obr_grafico_categoria"></div> <input type="hidden" id="dados_grafico_categorias" value="%5B%7B%22name%22%3A%22Constru%5Cu00e7%5Cu00f5es%20de%20quadras%20esportivas%20%28sem%20cobertura%29%22%2C%22y%22%3A3%2C%22color%22%3A%22%2381b6a5%22%7D%2C%7B%22name%22%3A%22Pavimenta%5Cu00e7%5Cu00f5es%20de%20vias%20p%5Cu00fablicas%22%2C%22y%22%3A10%2C%22color%22%3A%22%23000000%22%7D%2C%7B%22name%22%3A%22Constru%5Cu00e7%5Cu00f5es%20de%20pra%5Cu00e7as%20e%20cal%5Cu00e7adas%22%2C%22y%22%3A3%2C%22color%22%3A%22%2336ce87%22%7D%2C%7B%22name%22%3A%22Constru%5Cu00e7%5Cu00e3o%20de%20galp%5Cu00e3o%22%2C%22y%22%3A1%2C%22color%22%3A%22%23e2c269%22%7D%2C%7B%22name%22%3A%22Constru%5Cu00e7%5Cu00e3o%20de%20trincheira%22%2C%22y%22%3A1%2C%22color%22%3A%22%2351e63d%22%7D%2C%7B%22name%22%3A%22Constru%5Cu00e7%5Cu00e3o%20de%20unidades%20b%5Cu00e1sicas%20de%20sa%5Cu00fade%20%28UBSs%29%22%2C%22y%22%3A1%2C%22color%22%3A%22%231870cd%22%7D%2C%7B%22name%22%3A%22Reformas%20diversas%22%2C%22y%22%3A3%2C%22color%22%3A%22%239b3636%22%7D%2C%7B%22name%22%3A%22Constru%5Cu00e7%5Cu00e3o%20de%20ponte%22%2C%22y%22%3A1%2C%22color%22%3A%22%23d8baba%22%7D%5D"> </div> <!-- GRÁFICO CATEGORIAS--> <!-- GRÁFICO FONTE DE RECURSO --> <div class="obr_area_info_relatorio_obras"> <div id="obr_grafico_fonte_recurso"></div> <input type="hidden" id="dados_fonte_recurso" value="%5B%7B%22name%22%3A%22Conv%5Cu00eanio%20Estadual%22%2C%22y%22%3A6%2C%22color%22%3A%22%23853946%22%7D%2C%7B%22name%22%3A%22Conv%5Cu00eanio%20Federal%22%2C%22y%22%3A7%2C%22color%22%3A%22%232f21d7%22%7D%2C%7B%22name%22%3A%22Emenda%20parlamentar%22%2C%22y%22%3A1%2C%22color%22%3A%22%232d515c%22%7D%2C%7B%22name%22%3A%22Pr%5Cu00f3prio%22%2C%22y%22%3A4%2C%22color%22%3A%22%23193c1d%22%7D%2C%7B%22name%22%3A%22Transfer%5Cu00eancias%20especiais%22%2C%22y%22%3A2%2C%22color%22%3A%22%23a04c2d%22%7D%5D"> </div> <!-- GRÁFICO FONTE DE RECURSO --> </div> </div>]]>
5246 <![CDATA[<div class="sw_area_botoes_exportacao" style="padding-top: 8px; padding-bottom: 0px"> <div class="sw_cont_botoes_exportacao" style="float: none; display: flex; justify-content: center;"> <a href="/portal/dados-abertos/obras/2023" target='_blank'> <div id="sw_btn_pdf" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Gerar listagem em JSON"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div> </a> </div> </div>]]>
5247 <![CDATA[<div class="sw_cont_botoes_exportacao" style="float: none; display: flex; justify-content: center;"> <a href="/portal/dados-abertos/obras/2023" target='_blank'> <div id="sw_btn_pdf" class="sw_btn_exportacao sw_lato_bold sw_txt_tooltip" title="Gerar listagem em JSON"> <span> DADOS ABERTOS </span> <span class="far fa-file-code" aria-hidden="true"></span> </div> </a> </div>]]>
5272 <![CDATA[<div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa far fa-building"></span> <span class="obr_txt_titulo obr_total_executadas">Obras:</span> </div> <!-- INFO OBRAS --> <div class="obr_area_info_obras_executadas sw_lato_black"> <!-- CONCLUÍDAS --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_concluida"></div> <div class="obr_txt_info obr_situacao_concluida">Concluídas</div> </div> <!-- CONCLUÍDAS --> <!-- EM ANDAMENTO --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_em_andamento"></div> <div class="obr_txt_info obr_situacao_em_andamento">Em Andamento</div> </div> <!-- EM ANDAMENTO --> <!-- SUSPENSA --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_suspensa"></div> <div class="obr_txt_info obr_situacao_suspensa">Suspensas</div> </div> <!-- SUSPENSA --> <!-- EM PROJETO --> <div class="obr_info_obras_executadas"> <div class="obr_numero_info obr_situacao obr_situacao_em_projeto"></div> <div class="obr_txt_info obr_situacao_em_projeto">Em Projeto</div> </div> <!-- EM PROJETO --> </div> <!-- INFO OBRAS --> </div>]]>
5310 <![CDATA[<div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa far fa-folder-open"></span> <span class="obr_txt_titulo obr_total_acompanhamentos">Acompanhamentos:</span> </div> </div>]]>
5319 <![CDATA[<div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa fas fa-copy"></span> <span class="obr_txt_titulo obr_total_contratos">Contratos:</span> </div> </div>]]>
5328 <![CDATA[<div class="obr_area_info_relatorio_obras" style="display: none;"> <div class="obr_titulo_relatorio_obras sw_lato_black"> <span class="swfa fas fa-dollar-sign"></span> <span class="obr_txt_titulo">Valor Total: <span class="obr_valor_obra"></span></span> </div> </div>]]>
5490 <![CDATA[<span class="obra_porcentagem_concluida" style="min-width: 80%;"></span>]]>
5535 <![CDATA[<span class="obr_valor" style="min-width: 100%;"></span>]]>
5539 <![CDATA[<span class="obr_valor_pago" style="min-width: 70%;"></span>]]>
5546 <![CDATA[<div class="obr_cont_estatisticas_barra obr_prazo_dias" style="display: none;"> <div class="obr_titulo_estatistica">Prazo estimado</div> <div class="obr_estatistica_barra"><span class="obr_prazo_dias_valor" style="min-width: 80%;"></span></div> </div>]]>
5548 <![CDATA[<span class="obr_prazo_dias_valor" style="min-width: 80%;"></span>]]>
5552 <![CDATA[<span class="obr_total_dias_valor" style="min-width: 100%;"></span>]]>
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 = [-15.8143, -42.2274]; // 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 APÓS 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":"-15.812681228174494","longitude":"-42.22603797912598","icone":"angle-double-left","cor_fundo_circulo":"#81b6a5","cor_marcador":"#81b6a5","cor_icone":"#ffffff","nome_categoria":"Construções de quadras esportivas (sem cobertura)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/4\/69df1f4009f557e9f1526b6607b2efdc.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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\">Quadra de Futebol Society na Praça de Esportes<\/div>\r\n <\/div>\r\n\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\">Construções de quadras esportivas (sem cobertura)<\/div>\r\n <\/div>\r\n\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_concluida\">Concluído<\/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\">Centro<\/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\">Praça de Esportes, s\/n, <\/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=\"4\"><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":"Concluído","bairro":"Centro","logradouro_completo":"Praça de Esportes, s\/n, ","logradouro":"Praça de Esportes, s\/n","dt_inicio":1648436400,"dt_inicio_string":"28\/03\/2022","dt_fim":1663210800,"dt_fim_string":"15\/09\/2022","valor":"493.000,00","valor_pago":null,"titulo":"Quadra de Futebol Society na Praça de Esportes","codigo":4,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1813","nome":"Tomada de Preço - TP 004.2022 - (CONSTRUÇÃO DE QUADRA DE FUTEBOL SOCIETY)","numero":4,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/4\/69df1f4009f557e9f1526b6607b2efdc.jpg","legenda":"Quadra de Futebol Society 2"},{"arquivo":"\/fotos\/obras\/4\/84c7c5160e34c05f705b06ce648c9861.jpg","legenda":"Quadra de Futebol Society 3"},{"arquivo":"\/fotos\/obras\/4\/cec825b0a9eda02e39b977d56cb410e4.jpg","legenda":"Quadra de Futebol Society"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Fabio Rodrigues Cardoso","fiscal":"Arthur Herbert P. Soares","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.812681228174494","longitude":"-42.22603797912598","icone":"angle-double-left","cor_fundo_circulo":"#81b6a5","cor_marcador":"#81b6a5","cor_icone":"#ffffff","nome_categoria":"Construções de quadras esportivas (sem cobertura)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/5\/c8c9a4cfa75e32456498de87844819b4.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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\">Quadra de Beach Tennis, Vôlei de Praia, Peteca e Basquete<\/div>\r\n <\/div>\r\n\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\">Construções de quadras esportivas (sem cobertura)<\/div>\r\n <\/div>\r\n\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_concluida\">Concluído<\/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\">Centro<\/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\">Praça de Esportes, s\/n, <\/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=\"5\"><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":"Concluído","bairro":"Centro","logradouro_completo":"Praça de Esportes, s\/n, ","logradouro":"Praça de Esportes, s\/n","dt_inicio":1647918000,"dt_inicio_string":"22\/03\/2022","dt_fim":1668481200,"dt_fim_string":"15\/11\/2022","valor":"504.764,40","valor_pago":null,"titulo":"Quadra de Beach Tennis, Vôlei de Praia, Peteca e Basquete","codigo":5,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1812","nome":"Tomada de Preço - TP 003.2022 - (CONSTRUÇÃO DE QUADRAS DE BEACH TÊNIS E OUTROS)","numero":3,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/5\/c8c9a4cfa75e32456498de87844819b4.jpg","legenda":"Quadra de Beach Tennis e outros"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Antônio Coelho Campos","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.800499919443892","longitude":"-42.22378492355347","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/6\/13fa880c8deb9899dbf4a2c9f38fa2ca.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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 blocos sextavados de concreto e obras complementares<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Bom Jardim<\/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\">Tóquio e Belo Horizonte, <\/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=\"6\"><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":6,"situacao":"Em Andamento","bairro":"Bom Jardim","logradouro_completo":"Tóquio e Belo Horizonte, ","logradouro":"Tóquio e Belo Horizonte","dt_inicio":1651201200,"dt_inicio_string":"29\/04\/2022","dt_fim":1674097200,"dt_fim_string":"19\/01\/2023","valor":"273.904,29","valor_pago":null,"titulo":"Pavimentação em blocos sextavados de concreto e obras complementares","codigo":6,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1817","nome":"Tomada de Preço - TP 008.2022 - (OBRA DE PAVIMENTAÇÃO)","numero":8,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/6\/13fa880c8deb9899dbf4a2c9f38fa2ca.jpg","legenda":"Pav-1"},{"arquivo":"\/fotos\/obras\/6\/6371110693a42f74b6a6ab92a635115f.jpg","legenda":"Pav-2"},{"arquivo":"\/fotos\/obras\/6\/80c9e94833365606ad003b1c70238a63.jpg","legenda":"Pav-3"},{"arquivo":"\/fotos\/obras\/6\/2869ae62634cc38d0d73c6aa5faaf4aa.jpg","legenda":"Pav-4"},{"arquivo":"\/fotos\/obras\/6\/fe1dd147b4efb3adedc9568292c09c7e.jpg","legenda":"Pav-5"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Vinicius Hiago Sarmento de Carvalho","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.806838420734739","longitude":"-42.217004299163825","icone":"angle-double-left","cor_fundo_circulo":"#36ce87","cor_marcador":"#36ce87","cor_icone":"#ffffff","nome_categoria":"Construções de praças e calçadas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/8\/4dcec5b8c31bc06cd0048d7e505615f1.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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\">Construção de Pista de Caminhada, Av. do Contorno - 3ª etapa<\/div>\r\n <\/div>\r\n\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\">Construções de praças e calçadas<\/div>\r\n <\/div>\r\n\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\">Sagrada Família<\/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\">do Contorno, <\/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=\"8\"><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":7,"situacao":"Em Andamento","bairro":"Sagrada Família","logradouro_completo":"do Contorno, ","logradouro":"do Contorno","dt_inicio":1634094000,"dt_inicio_string":"13\/10\/2021","dt_fim":1659841200,"dt_fim_string":"07\/08\/2022","valor":"501.980,07","valor_pago":null,"titulo":"Construção de Pista de Caminhada, Av. do Contorno - 3ª etapa","codigo":8,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1266","nome":"Tomada de Preço - TP 007.2021 Constr. 3ª Etapa da Pista de Caminhada","numero":7,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/8\/4dcec5b8c31bc06cd0048d7e505615f1.jpg","legenda":"3 pista - 1"},{"arquivo":"\/fotos\/obras\/8\/2349bbabd56dc2f5a084a33ad5ffe34b.jpg","legenda":"3 pista - 2"},{"arquivo":"\/fotos\/obras\/8\/5120d2fdd80e84c416680b942229e5d3.jpg","legenda":"3 pista - 3"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.802671785001465","longitude":"-42.235889268559724","icone":"angle-double-left","cor_fundo_circulo":"#36ce87","cor_marcador":"#36ce87","cor_icone":"#ffffff","nome_categoria":"Construções de praças e calçadas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/9\/2601bbf290661d96599a6bcdd40b7c3b.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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\">Construção de Praça na Rua Turmalina, Bairro Planalto<\/div>\r\n <\/div>\r\n\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\">Construções de praças e calçadas<\/div>\r\n <\/div>\r\n\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\">Planalto<\/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\">Turmalina, <\/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=\"9\"><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":7,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":"Turmalina, ","logradouro":"Turmalina","dt_inicio":1636081200,"dt_inicio_string":"05\/11\/2021","dt_fim":1665975600,"dt_fim_string":"17\/10\/2022","valor":"236.301,25","valor_pago":null,"titulo":"Construção de Praça na Rua Turmalina, Bairro Planalto","codigo":9,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1262","nome":"Tomada de Preço - TP 011.2021 - Construção de Praça na Rua Turmalina","numero":11,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/9\/2601bbf290661d96599a6bcdd40b7c3b.jpg","legenda":"Praça rua Turmalina"},{"arquivo":"\/fotos\/obras\/9\/51e012806c60a443f66c97489d6e3a9d.jpg","legenda":"Praça rua Turmalina 4"},{"arquivo":"\/fotos\/obras\/9\/43410043a4900356567bb2f59ec4300b.jpg","legenda":"Praça rua Turmalina 3"},{"arquivo":"\/fotos\/obras\/9\/4450a6b09e1a7da05b3eb36ff5a2b76a.jpg","legenda":"Praça rua Turmalina 1"},{"arquivo":"\/fotos\/obras\/9\/d9a2f043aff20cb36711757da0c96c3f.jpg","legenda":"Praça rua Turmalina 2"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"Emenda parlamentar, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.79945087640446","longitude":"-42.23724034909476","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/10\/f4d70733be9ace9233c80a10354c44bb.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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 PMF, na Rua Paineiras, Bairro Planalto<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Planalto<\/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\">das Paineiras, <\/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=\"10\"><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":6,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":"das Paineiras, ","logradouro":"das Paineiras","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1678158000,"dt_fim_string":"07\/03\/2023","valor":"486.286,89","valor_pago":null,"titulo":"Pavimentação em PMF, na Rua Paineiras, Bairro Planalto","codigo":10,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1265","nome":"Tomada de Preço - TP 008.2021 - Obras de Pavimentação Asfáltica","numero":8,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/10\/f4d70733be9ace9233c80a10354c44bb.jpg","legenda":"R. Paineiras 1"},{"arquivo":"\/fotos\/obras\/10\/30f0d3a07a77e18e202497ee4252f93f.jpg","legenda":"R. Paineiras 2"},{"arquivo":"\/fotos\/obras\/10\/5a680233f7c2718ccbce97f7ac7a061a.jpg","legenda":"R. Paineiras 3"},{"arquivo":"\/fotos\/obras\/10\/d406d418105a74df981439f6ab6267b0.jpg","legenda":"R. Paineiras 4"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Transferências especiais, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.820659410488958","longitude":"-42.22543863788777","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/11\/2c45d4748aa56c212569b8a95ba2c3f4.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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 PMF, na Av. do Contorno (entre a Rua Xandú e Av. JK)<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Nossa Senhora de Fátima<\/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\">do Contorno, <\/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=\"11\"><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":6,"situacao":"Em Andamento","bairro":"Nossa Senhora de Fátima","logradouro_completo":"do Contorno, ","logradouro":"do Contorno","dt_inicio":1636081200,"dt_inicio_string":"05\/11\/2021","dt_fim":1657681200,"dt_fim_string":"13\/07\/2022","valor":"272.548,74","valor_pago":null,"titulo":"Pavimentação em PMF, na Av. do Contorno (entre a Rua Xandú e Av. JK)","codigo":11,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1265","nome":"Tomada de Preço - TP 008.2021 - Obras de Pavimentação Asfáltica","numero":8,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/11\/2c45d4748aa56c212569b8a95ba2c3f4.jpg","legenda":"Av. Contorno 1"},{"arquivo":"\/fotos\/obras\/11\/55693a6a269c95a3dbaf4fa8150ecd5f.jpg","legenda":"Av. Contorno 5"},{"arquivo":"\/fotos\/obras\/11\/cc4f69f8b16d78e30ff33e1d51dd6cfa.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/11\/a2dd790ae56966a3c8d145509277c1f1.jpg","legenda":"Av. Contorno 3"},{"arquivo":"\/fotos\/obras\/11\/0e7d17220aa2b8aaa0ba0debef55c6a9.jpg","legenda":null}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Carmen Silva Mendes","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.819865469280522","longitude":"-42.152352333068855","icone":"angle-double-left","cor_fundo_circulo":"#e2c269","cor_marcador":"#e2c269","cor_icone":"#ffffff","nome_categoria":"Construção de galpão","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/12\/8f825d405f88722f57ad36662c715b3a.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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\">Construção de galpão para produtos do cerrado, em Lagoa Grande<\/div>\r\n <\/div>\r\n\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\">Construção de galpão<\/div>\r\n <\/div>\r\n\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\">Povoado de Lagoa Grande<\/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=\"12\"><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":8,"situacao":"Em Andamento","bairro":"Povoado de Lagoa Grande","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":1647226800,"dt_inicio_string":"14\/03\/2022","dt_fim":1659841200,"dt_fim_string":"07\/08\/2022","valor":"269.872,43","valor_pago":null,"titulo":"Construção de galpão para produtos do cerrado, em Lagoa Grande","codigo":12,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1267","nome":"Tomada de Preço - TP 006.2021 Constr. Galpão - Comunid. Lagoa Grande","numero":6,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/12\/8f825d405f88722f57ad36662c715b3a.jpg","legenda":null}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"João Carlos Sarmento","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.802671785001465","longitude":"-42.235889268559724","icone":"angle-double-left","cor_fundo_circulo":"#81b6a5","cor_marcador":"#81b6a5","cor_icone":"#ffffff","nome_categoria":"Construções de quadras esportivas (sem cobertura)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/13\/c314d7e03c29409cee9475e2dcf72362.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\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\">Quadra poliesportiva sem cobertura, na Rua Turmalina, Bairro Planalto<\/div>\r\n <\/div>\r\n\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\">Construções de quadras esportivas (sem cobertura)<\/div>\r\n <\/div>\r\n\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\">Planalto<\/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\">Turmalina, <\/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=\"13\"><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":"Planalto","logradouro_completo":"Turmalina, ","logradouro":"Turmalina","dt_inicio":1626922800,"dt_inicio_string":"22\/07\/2021","dt_fim":1657594800,"dt_fim_string":"12\/07\/2022","valor":"209.147,06","valor_pago":null,"titulo":"Quadra poliesportiva sem cobertura, na Rua Turmalina, Bairro Planalto","codigo":13,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1272","nome":"Tomada de Preço - TP 001.2021 Constr. Quadra Poliesportiva Turmalina","numero":1,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/13\/c314d7e03c29409cee9475e2dcf72362.jpg","legenda":"Poli Planalto 4"},{"arquivo":"\/fotos\/obras\/13\/bfb7a4508451dfa0b34e1e2b636d6801.jpg","legenda":"Poli Planalto 2"},{"arquivo":"\/fotos\/obras\/13\/58f085f394641b730aad47504de9f930.jpg","legenda":"Poli Planalto 3"},{"arquivo":"\/fotos\/obras\/13\/e00d23f949c32aba3ff456582b783e2e.jpg","legenda":"Poli Planalto 1"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.802269515254464","longitude":"-42.23955098155233","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Recapeamento asfáltico em PMF, na Rua Alagoas e outras<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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_projeto\">Em Projeto<\/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\">Planalto<\/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=\"14\"><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":6,"situacao":"Em Projeto","bairro":"Planalto","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":"739.584,07","valor_pago":null,"titulo":"Recapeamento asfáltico em PMF, na Rua Alagoas e outras","codigo":14,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1773","nome":"Chamamento Público - C.P. 003.2022 - (RECAPEAMENTO ASFÁLTICO EM PMF)","numero":3,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.805099470070175","longitude":"-42.22963797020245","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Recapeamento asfáltico em PMF, em ruas e avenidas diversas<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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_projeto\">Em Projeto<\/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\">Vila Formosa<\/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=\"15\"><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":6,"situacao":"Em Projeto","bairro":"Vila Formosa","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":"3.655.968,01","valor_pago":null,"titulo":"Recapeamento asfáltico em PMF, em ruas e avenidas diversas","codigo":15,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1772","nome":"Chamamento Público - C.P. 002.2022 - ( RECAPEAMENTO ASFÁLTICO PMF)","numero":2,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.805407477580784","longitude":"-42.24872071424028","icone":"recycle","cor_fundo_circulo":"#51e63d","cor_marcador":"#51e63d","cor_icone":"#ffffff","nome_categoria":"Construção de trincheira","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Construção de aterro sanitário de pequeno porte, em Taiobeiras<\/div>\r\n <\/div>\r\n\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\">Construção de trincheira<\/div>\r\n <\/div>\r\n\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\">Zona Rural<\/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\">LMG 626 (Taiobeiras\/Rio Pardo de Minas), KM<\/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=\"16\"><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":10,"situacao":"Em Andamento","bairro":"Zona Rural","logradouro_completo":"LMG 626 (Taiobeiras\/Rio Pardo de Minas), KM","logradouro":"LMG 626 (Taiobeiras\/Rio Pardo de Minas)","dt_inicio":1670986800,"dt_inicio_string":"14\/12\/2022","dt_fim":1684119600,"dt_fim_string":"15\/05\/2023","valor":"224.711,72","valor_pago":null,"titulo":"Construção de aterro sanitário de pequeno porte, em Taiobeiras","codigo":16,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1261","nome":"Tomada de Preço - TP 012.2021 - Obra de Aterro Sanitário","numero":12,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.817496708133522","longitude":"-42.22847861537064","icone":"plus-circle","cor_fundo_circulo":"#1870cd","cor_marcador":"#1870cd","cor_icone":"#ffffff","nome_categoria":"Construção de unidades básicas de saúde (UBSs)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Construção de UBS T2T, Rua Bonfim, em Taiobeiras<\/div>\r\n <\/div>\r\n\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\">Construção de unidades básicas de saúde (UBSs)<\/div>\r\n <\/div>\r\n\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\">Centro<\/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\">Bonfim, 136<\/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=\"17\"><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":11,"situacao":"Em Andamento","bairro":"Centro","logradouro_completo":"Bonfim, 136","logradouro":"Bonfim","dt_inicio":1650250800,"dt_inicio_string":"18\/04\/2022","dt_fim":1674010800,"dt_fim_string":"18\/01\/2023","valor":"895.027,83","valor_pago":"215.314,86","titulo":"Construção de UBS T2T, Rua Bonfim, em Taiobeiras","codigo":17,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1327","nome":"Concorrência Pública - C.P 006.2021 - (OBRA DE UBS TIPO T2T)","numero":0,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Rogério Vieira Fernandes júnior","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.812949621636132","longitude":"-42.23069429397584","icone":"angle-double-left","cor_fundo_circulo":"#9b3636","cor_marcador":"#9b3636","cor_icone":"#ffffff","nome_categoria":"Reformas diversas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Prédio do Conselho Tutelar dos Direitos da Criança e do Adolescente<\/div>\r\n <\/div>\r\n\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\">Reformas diversas<\/div>\r\n <\/div>\r\n\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_projeto\">Em Projeto<\/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\">Centro<\/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\">Rio Pardo, 621<\/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=\"18\"><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":12,"situacao":"Em Projeto","bairro":"Centro","logradouro_completo":"Rio Pardo, 621","logradouro":"Rio Pardo","dt_inicio":1674442800,"dt_inicio_string":"23\/01\/2023","dt_fim":1687489200,"dt_fim_string":"23\/06\/2023","valor":"79.810,12","valor_pago":null,"titulo":"Prédio do Conselho Tutelar dos Direitos da Criança e do Adolescente","codigo":18,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1997","nome":"Tomada de Preço - Tomada de Preço 027-2022 - OBRA DE REFORMA DO CONSELHO TUTELAR","numero":27,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"33":{"nome":"Secretaria Municipal de Assistência Social - SEAS","link":"\/portal\/secretarias\/33\/secretaria-municipal-de-assistencia-social---seas","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"},"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Kaio Vinicius Soares de Sá","fiscal":"Arthur Herbert Pereira Soares","descricao":"","fonte_recurso":"Transferências especiais, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.82783457826833","longitude":"-42.22726106643677","icone":"angle-double-left","cor_fundo_circulo":"#d8baba","cor_marcador":"#d8baba","cor_icone":"#ffffff","nome_categoria":"Construção de ponte","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Ponte Mista na Comunidade Riinho<\/div>\r\n <\/div>\r\n\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\">Construção de ponte<\/div>\r\n <\/div>\r\n\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_projeto\">Em Projeto<\/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\">Zona Rural<\/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\">Comunidade Riinho<\/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=\"19\"><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":13,"situacao":"Em Projeto","bairro":"Zona Rural","logradouro_completo":"Comunidade Riinho","logradouro":"Comunidade Riinho","dt_inicio":1682478000,"dt_inicio_string":"26\/04\/2023","dt_fim":1687921200,"dt_fim_string":"28\/06\/2023","valor":"218.252,76","valor_pago":null,"titulo":"Ponte Mista na Comunidade Riinho","codigo":19,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1971","nome":"Tomada de Preço - Tomada de Preço 026-2022 - CONSTRUÇÃO DA PONTE MISTA NA COMUNIDADE RIINHO","numero":26,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"GERALDO SARMENTO DE SENA JUNIOR","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.804608612291354","longitude":"-42.23702430725098","icone":"angle-double-left","cor_fundo_circulo":"#9b3636","cor_marcador":"#9b3636","cor_icone":"#ffffff","nome_categoria":"Reformas diversas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Obra de reforma do CRAS Planalto<\/div>\r\n <\/div>\r\n\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\">Reformas diversas<\/div>\r\n <\/div>\r\n\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_projeto\">Em Projeto<\/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\">Planalto<\/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\">Paraíba, 140<\/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=\"22\"><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":12,"situacao":"Em Projeto","bairro":"Planalto","logradouro_completo":"Paraíba, 140","logradouro":"Paraíba","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":null,"valor_pago":null,"titulo":"Obra de reforma do CRAS Planalto","codigo":22,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1998","nome":"Tomada de Preço - Tomada de Preço 028-2022 - OBRA DE REFORMA DO CRAS PLANALTO","numero":28,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.834072553666598","longitude":"-42.17797279357911","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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 PMF, na Lagoa Dourada<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Zona Rural<\/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\">LMG 626, Km 1,2<\/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=\"23\"><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":6,"situacao":"Em Andamento","bairro":"Zona Rural","logradouro_completo":"LMG 626, Km 1,2","logradouro":"LMG 626","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":null,"valor_pago":null,"titulo":"Pavimentação em PMF, na Lagoa Dourada","codigo":23,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1951","nome":"Tomada de Preço - Tomada de Preço 022-2022 - OBRA DE PAVIMENTAÇÃO EM PMF - LAGOA DOURADA","numero":22,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.798272299464461","longitude":"-42.23535060882569","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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 asfáltica em PMF <\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Planalto<\/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\">, s\/n<\/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=\"24\"><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":6,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":", s\/n","logradouro":"nao_informado","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1678158000,"dt_fim_string":"07\/03\/2023","valor":"365.706,00","valor_pago":null,"titulo":"Pavimentação asfáltica em PMF ","codigo":24,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1953","nome":"Tomada de Preço - TP 023-2022 - OBRA DE PAVIMENTAÇÃO ASFALTICA - RUAS AIMORES E OUTRAS","numero":23,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Arthur Herbert Pereira Soares","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.848856614962308","longitude":"-42.01015233993531","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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 bloquete - Ruas Dom Pedro I e Tancredo Neves<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Distrito de Mirandópolis<\/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=\"25\"><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":6,"situacao":"Em Andamento","bairro":"Distrito de Mirandópolis","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":1657508400,"dt_inicio_string":"11\/07\/2022","dt_fim":1678503600,"dt_fim_string":"11\/03\/2023","valor":"427.108,64","valor_pago":null,"titulo":"Pavimentação em bloquete - Ruas Dom Pedro I e Tancredo Neves","codigo":25,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1824","nome":"Tomada de Preço - TP 015.2022 - (OBRA DE PAVIMENTAÇÃO DE BLOCO MIRANDÓPOLIS)","numero":15,"ano":1969},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Geraldo Sarmento de Sena Junior ","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.851429426449187","longitude":"-42.00983047485352","icone":"angle-double-left","cor_fundo_circulo":"#36ce87","cor_marcador":"#36ce87","cor_icone":"#ffffff","nome_categoria":"Construções de praças e calçadas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Revitalização da Praça Santo Menezes<\/div>\r\n <\/div>\r\n\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\">Construções de praças e calçadas<\/div>\r\n <\/div>\r\n\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\">Distrito de Mirandópolis<\/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\">Santo Menezes <\/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=\"26\"><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":7,"situacao":"Em Andamento","bairro":"Distrito de Mirandópolis","logradouro_completo":"Santo Menezes ","logradouro":"Santo Menezes ","dt_inicio":1663210800,"dt_inicio_string":"15\/09\/2022","dt_fim":1684119600,"dt_fim_string":"15\/05\/2023","valor":"219.563,00","valor_pago":null,"titulo":"Revitalização da Praça Santo Menezes","codigo":26,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1940","nome":"Tomada de Preço - Tomada de Preço 020-2022 - OBRA DE REVITALIZAÇÃO DA PRAÇA SANTO MENEZES - MIRANDÓPOLIS","numero":20,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Geraldo Sarmento de Sena Júnior","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.807333930386044","longitude":"-42.22088813781739","icone":"angle-double-left","cor_fundo_circulo":"#9b3636","cor_marcador":"#9b3636","cor_icone":"#ffffff","nome_categoria":"Reformas diversas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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\">Ampliação e reforma da UBS Dona Nininha<\/div>\r\n <\/div>\r\n\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\">Reformas diversas<\/div>\r\n <\/div>\r\n\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\">Sagrada Família<\/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\">Guaicurus, 1625<\/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=\"27\"><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":12,"situacao":"Em Andamento","bairro":"Sagrada Família","logradouro_completo":"Guaicurus, 1625","logradouro":"Guaicurus","dt_inicio":1663210800,"dt_inicio_string":"15\/09\/2022","dt_fim":1681527600,"dt_fim_string":"15\/04\/2023","valor":"160.595,00","valor_pago":null,"titulo":"Ampliação e reforma da UBS Dona Nininha","codigo":27,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1939","nome":"Tomada de Preço - Tomada de Preço 019-2022 - OBRA DE AMPLIAÇÃO E REFORMA DA UAPS DONA NININHA","numero":19,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.83372612996826","longitude":"-42.1794319152832","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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 PMF, na Lagoa Dourada<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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\">Zona Rural<\/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\">Povoado de Lagoa Dourada, LMG 626, K 1,2<\/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=\"28\"><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":6,"situacao":"Em Andamento","bairro":"Zona Rural","logradouro_completo":"Povoado de Lagoa Dourada, LMG 626, K 1,2","logradouro":"Povoado de Lagoa Dourada","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1680836400,"dt_fim_string":"07\/04\/2023","valor":"1.487.828,70","valor_pago":null,"titulo":"Pavimentação em PMF, na Lagoa Dourada","codigo":28,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1951","nome":"Tomada de Preço - Tomada de Preço 022-2022 - OBRA DE PAVIMENTAÇÃO EM PMF - LAGOA DOURADA","numero":22,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Geraldo Sarmento de Sena Júnior","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.817597094734548","longitude":"-42.221016883850105","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes 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 blocos sextavados de concreto<\/div>\r\n <\/div>\r\n\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\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\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_projeto\">Em Projeto<\/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\">Sagrada Família<\/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=\"29\"><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":6,"situacao":"Em Projeto","bairro":"Sagrada Família","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1680836400,"dt_fim_string":"07\/04\/2023","valor":"960.925,52","valor_pago":null,"titulo":"Pavimentação em blocos sextavados de concreto","codigo":29,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1955","nome":"Tomada de Preço - TP 025-2022 - OBRA DE PAVIMENTAÇÃO EM BLOCOS - BAIRROS SAGRADA FAMILIA E SANTOS CRUZEIRO","numero":25,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Arthur Herbert Pereira Soares","fiscal":"","descricao":"","fonte_recurso":"Convênio Federal, ","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 &copy; <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: "#FFFFFF", svgCircleColor: ponto.cor_marcador // Forma antiga de mostrar as cores dos pontos (contraste de cor para fundo e ícone) // 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) }); markerLeaflet.on('mouseover', function(e) { if (!$('.leaflet-popup:hover').length) { this.openPopup(); } }); // 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, ordem_vinculos: ponto.ordem_vinculos, 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)); // Revomendo marcadores do mapa conforme configuração de exibição var obcObrasSituacaoExibir = $("#obcObrasSituacaoExibir").val(); var obcObrasSituacaoExibirAux = obcObrasSituacaoExibir.split(";"); markers.forEach(function(item) { if (obcObrasSituacaoExibirAux.indexOf(item.situacao) < 0) { item.marker.removeFrom(leafLetMap); } }); 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"); } } } }); // SETANDO CLICK NO FILTRO EM MEDIAS NÃO MOBILE if (window.innerWidth > 1000) { divMenuObras.find(".obr_btn_filtro").trigger("click"); } /* 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(); }); /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* Verificar avaliação */ function verificarAvaliacao (nomeCookie) { var arrayCookies = document.cookie.split(";"); for(var i = 0; i < arrayCookies.length; i++) { var cookie = arrayCookies[i].split("="); if(nomeCookie == cookie[0].trim()) { return true; } } return false; } /* Ordenar Vínculos */ function ordenarVinculos (arrayOrdem) { // Revertendo elementos do array (para respeitar a ordem) let ordenacaoElementos = Object.values(arrayOrdem).reverse(); // A cada elemento do array ordenacaoElementos.forEach((elemento) => { let nomeClasse = ".obr_obra_" + elemento let estruturaHtml = document.querySelector(nomeClasse); const elementoAnterior = document.querySelector('.obr_acompanhamentos'); elementoAnterior.insertAdjacentElement('afterend', estruturaHtml); }); } /* 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); /* BOTAO SEGUIR */ 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(); } /* Botão avaliar */ btnAvaliarObra.attr("data-id", item.codigo); var obraAvaliada = verificarAvaliacao("PrefeituraMunicipaldeTaiobeiras-MG-avaliacao-obras-" + item.codigo); btnAvaliarObra.removeClass("avaliar_servico avaliado"); if (obraAvaliada) { btnAvaliarObra.addClass("avaliado") btnAvaliarObra.children(".swfa").removeClass("far fa-star"); btnAvaliarObra.children(".swfa").addClass("fas fa-star"); btnAvaliarObra.children(".sw_txt_btn").text("Avaliado"); } else { btnAvaliarObra.addClass("avaliar_servico") btnAvaliarObra.children(".swfa").removeClass("fas fa-star"); btnAvaliarObra.children(".swfa").addClass("far fa-star"); btnAvaliarObra.children(".sw_txt_btn").text("Avaliar"); } /* 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 && item.situacao === 'Em Andamento') { 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 */ // Ordena as estruturas HTML de acordo com os vínculos ordenarVinculos(item.ordem_vinculos); /* 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 = 8; 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>]]>
2696 <![CDATA[<script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-32052942-1'); </script>]]>
2710 <![CDATA[<script> var ua = window.navigator.userAgent; var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent); var msie = ua.indexOf("MSIE "); if ((((msie > 0) && (parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))) < 11)) === false) && isIE11 === false) { $('#vlibras_include').html('<div vw class="enabled"><div vw-access-button class="active"></div><div vw-plugin-wrapper><div class="vw-plugin-top-wrapper"></div></div></div>'); new window.VLibras.Widget('https://vlibras.gov.br/app'); $(window).on("load", function(){ $('#vlibras_include img').each( function(){ $(this).attr("alt", "Imagem VLibras"); }); }); } </script>]]>
2727 <![CDATA[<script> // Cancelar leitura digital window.onbeforeunload = window.speechSynthesis.cancel(); /* ============================================================================================ 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>]]>
3807 <![CDATA[<script> // Seta os cookies function f_cookies_criar(cookieCheckboxEstatistica) { // Cookies necessários document.cookie = "PrefeituraMunicipaldeTaiobeiras-MG-LGPD=S; max-age=604800; path=/"; // Cookies de estatística if (cookieCheckboxEstatistica) { document.cookie = "PrefeituraMunicipaldeTaiobeiras-MG-ESTATISTICA=S; max-age=604800; path=/"; } else { document.cookie = "PrefeituraMunicipaldeTaiobeiras-MG-ESTATISTICA=S; max-age=0; path=/"; } } // Altera o conteúdo da notificação function f_cookies_notificacao_alterar() { $("#lgpd").fadeOut(800, function() { $(this).remove(); }); $(".sw_cookies_aceitos").addClass("show sw_txt_tooltip"); } $(document).ready(function() { //CONFIGURAÇÃO DOS BOTÃO DO VISUALIZADOR DE FOTOS $('.fancybox').fancybox({ buttons : [ 'slideShow', //'thumbs', 'close' ], loop : true, arrows : true, slideShow : { autoStart : false, speed : 3500 }, }); // ANALISANDO SE HÁ NOTIFICAÇÕES var barra_notificacoes = $(".sw_barra_notificacoes"); if (barra_notificacoes.find(".sw_notificacao").length) { $(window).on("load", function() { barra_notificacoes.addClass("show"); }); /* ============================================================================================ FUNÇÕES INDIVIDUAIS DAS NOTIFICAÇÕES ============================================================================================ */ $(".sw_btn_fechar_notificacao").click(function() { var elemento_noticicacao = $(this).parents(".sw_notificacao"); // Fechando notificação elemento_noticicacao.fadeOut(800, function() { elemento_noticicacao.remove(); // Analisando se há mais notificações if (barra_notificacoes.find(".sw_notificacao").length < 1) { barra_notificacoes.removeClass("show"); } }); }); // Política de cookies $("#lgpd").find(".sw_btn_fechar_notificacao").click(function() { // Seta checked $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked", true); // Seta cookies (aceita os dois) f_cookies_criar(true) // Altera o conteúdo da notificação de cookies f_cookies_notificacao_alterar(); }); // Transmissão ao vivo $(".live_info_transmissao").find(".sw_btn_fechar_notificacao").click(function() { var data_video = $(this).attr("data-video"); $.post("/portal/transmissao/encerra/", { video: data_video }); }); } // Mostra ícone política de cookies $(window).on("load", function() { if ($("#lgpd").length === 0) { $(".sw_cookies_aceitos").addClass("show"); } }); // Modal de personalizar cookies if ($("#sw_cont_politica_privacidade").length) { // Ao clicar em personalizar let modalPersonalizarAberto = false; $(document.body).on('click', '.sw_btn_personalizar_cookies, .abrir_modal_personalizar_cookies', function() { // Cria pop-up sw_popup("#sw_cont_politica_privacidade", "S"); // Caso não tenha aberto o modal e não foi votado if (!modalPersonalizarAberto && $(".sw_cookies_aceitos").hasClass("show") === false) { $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked", true); } modalPersonalizarAberto = true; }); // Controle do atributo "checked" nos cookies de estatísticas $("input[type='checkbox'][name='cookies_estatisticas']").change(function() { let checadoEstatisticas = $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked"); if(checadoEstatisticas) { $(this).attr("checked", true); } else if(checadoEstatisticas === undefined) { $(this).attr("checked", false); } }); // Ao salvar preferências $("#salvar_preferencias_cookies").click(function() { // Verifica se está checado o botão dos cookies de estatísticas let checadoEstatisticas = $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked"); // Seta cookies f_cookies_criar(checadoEstatisticas); // Altera o conteúdo da notificação de cookies f_cookies_notificacao_alterar(); // Fecha pop-up let elementoPopupPrivacidade = document.getElementById("sw_cont_politica_privacidade"); sw_fechar_popup($(elementoPopupPrivacidade)); // Analisando se há mais notificações barra_notificacoes.fadeOut(800, function() { if (barra_notificacoes.find(".sw_notificacao").length < 1) { barra_notificacoes.removeClass("show"); } }); }); } }); </script>]]>
3963 <![CDATA[<script> // FUNÇÕES JS $(document).ready(function() { // FUNÇÃO PARA ACIONAR DROP DO LOGIN DO INTERNAUTA MOBILE $(window).click(function() { $("#itn_area_botoes_internauta").removeClass("itn_area_botoes_internauta_show"); }); $(".itn_area_img_internauta").on("click", function() { event.stopPropagation(); $("#itn_area_botoes_internauta").toggleClass("itn_area_botoes_internauta_show"); }); // ACIONANDO POPUP LOGIN $(".itn_btn_login").click(function() { sw_popup("#itn_login", "S"); }); // RECUPERAÇÃO DE SENHA $("#link_senha").click(function() { sw_abrir_janela("/portal/internautas/recuperar-senha", 450, 600) }); // SAIR $("#sair_internauta").click(function() { swal({ title: "Atenção!", text: "Deseja realmente sair do portal?", icon: "warning", buttons: ["Cancelar", "OK"], }) .then(function(acao) { if(acao === true) { location.href = "/portal/internautas/sair"; } }); }); }); // ABRIR POPUP INTERNAUTA function abrir_popup_internautas(elemento) { sw_abrir_popup(elemento); $("#cpf_cnpj_email").focus(); } // FECHAR POPUP INTERNAUTA function fechar_popup_internautas(elemento) { verifica_popups_termos(); sw_fechar_popup(elemento); } // TRANSFORMAR DADOS EM MAIÚSCULOS function internautas_transformar_string(string) { if(string.value != "" && string.id != "") { $("#"+string.id).val(string.value.toUpperCase()); } } // FORMATA VALOR (CPF OU CNPJ) function formata_cpf_cnpj(value) { const cnpjCpf = value.replace(/\D/g, ''); if (cnpjCpf.length === 11) { return cnpjCpf.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/g, "\$1.\$2.\$3-\$4"); } else if (cnpjCpf.length === 14) { return cnpjCpf.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/g, "\$1.\$2.\$3/\$4-\$5"); } } // VALIDAR CPF function validar_cpf(cpf) { cpf = cpf.replace(/[^\d]+/g,''); if(cpf == '') return false; // Elimina CPFs invalidos conhecidos if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false; // Valida 1o digito add = 0; for (i=0; i < 9; i ++) add += parseInt(cpf.charAt(i)) * (10 - i); rev = 11 - (add % 11); if (rev == 10 || rev == 11) rev = 0; if (rev != parseInt(cpf.charAt(9))) return false; // Valida 2o digito add = 0; for (i = 0; i < 10; i ++) add += parseInt(cpf.charAt(i)) * (11 - i); rev = 11 - (add % 11); if (rev == 10 || rev == 11) rev = 0; if (rev != parseInt(cpf.charAt(10))) return false; return true; } // VALIDAR CNPJ function validar_cnpj(cnpj) { cnpj = cnpj.replace(/[^\d]+/g,''); if(cnpj == '') return false; if (cnpj.length != 14) return false; if (cnpj == "00000000000000" || cnpj == "11111111111111" || cnpj == "22222222222222" || cnpj == "33333333333333" || cnpj == "44444444444444" || cnpj == "55555555555555" || cnpj == "66666666666666" || cnpj == "77777777777777" || cnpj == "88888888888888" || cnpj == "99999999999999") return false; tamanho = cnpj.length - 2 numeros = cnpj.substring(0,tamanho); digitos = cnpj.substring(tamanho); soma = 0; pos = tamanho - 7; for(i = tamanho; i >= 1; i--) { soma += numeros.charAt(tamanho - i) * pos--; if (pos < 2) pos = 9; } resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; if (resultado != digitos.charAt(0)) return false; tamanho = tamanho + 1; numeros = cnpj.substring(0,tamanho); soma = 0; pos = tamanho - 7; for (i = tamanho; i >= 1; i--) { soma += numeros.charAt(tamanho - i) * pos--; if (pos < 2) pos = 9; } resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; if (resultado != digitos.charAt(1)) return false; return true; } //// // VERIFICA SE ACABOU OS TERMOS PARA REDIRECIONAR INTERNAUTA function verifica_popups_termos() { var contador = $('#cont_popup').val(); var link = $('#link').val(); if(contador - 1 == 0 || contador == "") { setTimeout(function() { var elemento = ".itn_consentimentos"; elemento = $(""+elemento+""); fechar_popup_internautas(elemento); var elemento_link = ".itn_consentimentos_link"; elemento_link = $(""+elemento_link+""); fechar_popup_internautas(elemento_link); var url_atual = window.location.pathname; // REDIRECIONA APENAS QUANDO LOGAR OU CADASTRAR if(url_atual != "/portal/internautas/dados" && url_atual != "/portal/internautas/dados/consentimentos" && url_atual != "/portal/internautas/dados/preferencias") { if(link == "/portal/internautas/alterar") { location.href = link; } else if(link != "" && link != undefined) { location.href = link; } else { location.href = '/portal/obras/8'; } } $('#cont_popup').val("0"); }, 300); } else { contador = contador - 1; $('#cont_popup').val(contador); } return contador; } // SE ESTIVER NA PÁGINA DE CONSENTIMENTOS (ACEITANDO, RECUSANDO OU REVOGANDO) A PÁGINA DEVERÁ SER RECARREGADA function redireciona_internauta_consentimento() { setTimeout(function() { if(window.location.pathname == "/portal/internautas/dados/consentimentos" || window.location.pathname == "/portal/internautas/dados") { location.href = window.location.pathname; } }, 800); } // CLICK DO BOTÃO OK (QUANDO ENTRAR EM UMA FERRAMENTA QUE TIVER TERMO DO TIPO EMITE AVISO QUE FOI ENVIADO UM E-MAIL PARA CONFIRMAÇÃO) function btn_ok(id_consentimento) { if(id_consentimento != "") { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); fechar_popup_internautas(elemento); } } // CLICK DO BOTÃO REENVIAR function btn_reenviar_consentimento(id_consentimento) { if(id_consentimento != "") { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"reenviar_consentimento", consentimento:id_consentimento}, retorno); function retorno(data) { fechar_popup_internautas(elemento); } } } // EXIBE MENSAGENS DE SUCESSO E ERRO function int_msg_erro(mensagem) { $("#conteudo_esquerda").append('<div class="sw_lato sw_aviso_suspenso sw_aviso_suspenso_erro" style="display:none;"><i class="swfa fas fa-times-circle-o"></i><span>'+mensagem+'</span></div>'); $(".sw_aviso_suspenso_erro").fadeIn("slow"); setTimeout(function() { $(".sw_aviso_suspenso_erro").fadeOut("slow"); }, 1500); } function int_msg_sucesso(mensagem) { $("#conteudo_esquerda").append('<div class="sw_lato sw_aviso_suspenso sw_aviso_suspenso_sucesso" style="display:none;"><i class="swfa fas fa-check-circle-o"></i><span>'+mensagem+'</span></div>'); $(".sw_aviso_suspenso_sucesso").fadeIn("slow"); setTimeout(function() { $(".sw_aviso_suspenso_sucesso").fadeOut("slow"); }, 1500); } // CLICK DO BOTÃO "CONFIRMAR CÓDIGO" function btn_confirmar_codigo_consentimento(id_consentimento) { var codigo = $("#form_codigo_confirmacao_consentimento").val(); if(id_consentimento != "" && codigo != "") { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"confirmar_codigo_consentimento", consentimento:id_consentimento, codigo:codigo}, retorno); function retorno(data) { data = JSON.parse(data); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento confirmado com sucesso!"); } else { int_msg_erro("Erro ao confirmar consentimento!"); } } } } // EXIBE MENSAGEM DE ERRO NO PROCESSO (CASO FALTE ALGUM DADO) function exibe_mensagem_erro_processo() { $(".sw_area_botoes_popup").hide(); $(".sw_conteudo_popup").html('<div class="sw_aviso sw_aviso_erro sw_lato"><i class="swfa fas fa-exclamation-triangle"></i> <span>Ops, algo deu errado. Tente novamente mais tarde.</span></div>'); // setTimeout(function() { // fechar_popup_internautas(elemento); // }, 1000); } // CLICK DO BOTÃO ACEITAR function btn_aceitar(id_consentimento, id_termo) { if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"S"}, retorno); function retorno(data) { data = JSON.parse(data); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento aceito com sucesso!"); } else { int_msg_erro("Erro ao aceitar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } // CLICK DO BOTÃO RECUSAR function btn_recusar(id_consentimento, id_termo, obrigatorio) { // VERIFICA SE TERMO É OBRIGATÓRIO PARA SOLICITAR CONFIRMAÇÃO if(obrigatorio == "S") { swal({ text: "Tem certeza que deseja recusar? É obrigatório a aceitação desse termo.", icon: "warning", buttons: ['Cancelar', 'OK'] }) .then(function(acao) { if(acao === true) { if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"N", termo:id_termo}, retorno); function retorno(data) { data = JSON.parse(data); elemento.find(".sw_area_botoes_popup").hide(); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento recusado com sucesso!"); } else { int_msg_erro("Erro ao recusar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } }); } else { if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"N", termo:id_termo}, retorno); function retorno(data) { data = JSON.parse(data); elemento.find(".sw_area_botoes_popup").hide(); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento recusado com sucesso!"); } else { int_msg_erro("Erro ao recusar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } } // CLICK DO BOTÃO REVOGAR (ENVIAR - REVOGAR DE FATO) function btn_revogar(id_consentimento) { var motivo = $("#motivo_revogar").val(); if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"revogar_consentimento", consentimento:id_consentimento, motivo:motivo}, retorno); function retorno(data) { data = JSON.parse(data); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento revogado com sucesso!"); } else { int_msg_erro("Erro ao revogar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } // CLICK NO BOTÃO REVOGAR PARA EXIBIR CAMPO DO MOTIVO function btn_revogar_motivo(id_consentimento) { // EXIBE CAMPO PARA INFORMAR MOTIVO $(".itn_area_motivo").fadeIn(); // DESCE TELA $(".sw_popup_modal").animate({ scrollTop: $(document).height() }, 1000); // SETA NOVO ONCLICK PARA BOTÃO E REMOVE CLASSE $(".itn_btn_revogar").attr("onClick", "btn_revogar("+id_consentimento+")"); $(".itn_btn_revogar").removeClass("itn_btn_revogar_cinza"); // ADICIONA FOCO NO CAMPO $("#motivo_revogar").focus(); } // CLICK DO BOTÃO ASSINAR function btn_assinar(id_consentimento, id_termo, arquivo, diretorio, origem) { // DESABILITA BOTÃO $("#itn_consentimentos_int_"+id_consentimento).find(".itn_btn_aceitar").attr("disabled", "disabled"); $("#itn_consentimentos_int_"+id_consentimento).find(".itn_btn_aceitar").fadeOut(); var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); // AUTORIZADO OK SIGNIFICA QUE TEM CREDITOS PARA GASTAR COM A OPERAÇÃO, SE NÃO HOUVER VAI RETORNAR MENSSAGEM DE ERRO AO USUÁRIO if('ok' != 'ok') { swal({ text: "Você não possui créditos para assinar o documento, favor entrar em contato com Prefeitura Municipal de Taiobeiras - MG.", icon: "error" }); } else { // EXTRAI EXTENSÃO DO ARQUIVO var coleta_extensao = arquivo.split("."); // VERIFICA SE O ARQUIVO É UM PDF if (coleta_extensao[1] != "pdf") { swal({ text: "Extensão inválida, somente arquivos PDF podem ser assinados", icon: "error" }); } else { // CARREGA SELECT E MENSAGEM $("#itn_consentimentos_int_"+id_consentimento).find(".sw_area_botoes_popup").append('<div class="itn_area_assinatura"><div class="sw_aviso sw_aviso_alerta sw_lato"><i class="swfa fas fa-exclamation-triangle"></i><span>Por favor, selecione o certificado digital desejado para assinar este documento logo abaixo.</span></div><select id="certificateSelect"><option value="0">Selecione seu certificado A3...</option></select></div>'); // EXIBE SELECT E MENSAGEM $(".itn_area_assinatura").fadeIn(); // CRIA OBJETO PARA MANIPULAÇÃO DOAS CERTIFICADOS E ASSINATURAS var pki = new LacunaWebPKI(); pki.init({ ready: onWebPkiReady, notInstalled: onWebPkiNotInstalled, defaultError: onWebPkiError, restPkiUrl: 'https://pki.rest/' }); // FUNÇÃO DE LISTAGEM DOS CERTIFICADOS function onWebPkiReady () { pki.listCertificates().success(function (certs) { var selecao = $("#certificateSelect"); $.each(certs, function() { // VERIFICA SE É PESSOA FÍSICA OU JURÍDICA if(this.pkiBrazil.isPessoaFisica) { var doc = this.pkiBrazil.cpf; var doc_internauta = ""; } else { var doc = this.pkiBrazil.cnpj; var doc_internauta = ""; } var validadefim = this.validityEnd; // VERIFICA DOCUMENTO if(doc == doc_internauta) { selecao.append($('<option data-doc="'+doc+'" data-validadefim="'+validadefim+'" />').val(this.thumbprint) .text(this.subjectName) ); } }); }); } // FUNÇÃO SE O PLUGIN NÃO ESTIVER INSTALADO function onWebPkiNotInstalled (status, message) { swal({ text: "Plugin do Assinador não instalado, você será redirecionado para página de instalação.", icon: "warning" }) .then(function() { pki.redirectToInstallPage(); }); } // FUNÇÃO PARA IMPRIMIR O ERRO CASO OCORRA function onWebPkiError(message, error, origin) { swal({ text: "Erro ao assinador documento. Token/certificado não foi reconhecido. Tente conecta-lo em outra porta ou reinicie o navegador.", icon: "error" }) .then(function() { $("#sw_carregando_dados").hide(); }); } // CARREGA E EXIBE BOTÃO $("#itn_consentimentos_int_"+id_consentimento).find(".sw_area_botoes_popup").append('<div class="sw_btn_popup sw_btn_aceitar itn_btn_aceitar" id="signPDFButton" style="display:none;"><i class="swfa fas fa-check-circle-o" aria-hidden="true"></i><span>ASSINAR PDF</span></div>'); $("#signPDFButton").fadeIn(); // PASSA OS VALORES O BOTÃO "ASSINAR PDF" DENTRO DA SELEÇÃO DOS CERTIFICADOS $('#signPDFButton').attr("data-arquivo", arquivo); $('#signPDFButton').attr("data-diretorio", diretorio); $('#signPDFButton').attr("data-origem", origem); $('#signPDFButton').attr("data-codigo", id_consentimento); // CLICK DO BOTÃO ASSINAR PDF $('#signPDFButton').click(function(){ if(($('#certificateSelect').val() != null) && ($('#certificateSelect').val() != '0')) { // CARREGANDO $("#sw_carregando_dados").show(); // VALOR DO CERTIFCADO SELECIONADO var selectedCertThumb = $('#certificateSelect').val(); // VALOR COM ARQUIVO QUE SERÁ ASSINADO var arquivo = $(this).attr("data-arquivo"); // VALOR COM O DIRETÓRIO DO ARQUIVO QUE SERÁ ASSINADO var diretorio = $(this).attr("data-diretorio"); // MONTA DIRETÓRIO COMPLETO PARA O ARQUIVO QUE SERÁ ASSSINADO var arquivo_completo = diretorio+arquivo; // VALOR COM O NOME DO CERTIFICADO DIGITAL ESCOLHIDO var emissor = $('#certificateSelect option:selected').text(); // VALOR COM O DOCUMENTO DO CERTIFICADO QUE FOI ESCOLHIDO var documento = $('#certificateSelect option:selected').attr("data-doc"); // VALOR COM A VALIDADE DO CERTIFICADO ESCOLHIDO var finalvalidade = $('#certificateSelect option:selected').attr("data-validadefim"); // VALOR COM A ORIGEM DA PAGINA ONDE O ARQUIVO ESTA SENDO ASSINADO var origem = $(this).attr("data-origem"); // VALOR COM O ID DO ARQUIVO QUE ESTA SENDO ASSINADO var codigo = $(this).attr("data-codigo"); // PRIMEIRO POST INICIA O PROCESSO DE ASSINATURA $.post('/sg/assinador_a3.php', {arquivo:arquivo_completo, carimbo_tempo:'S', etapa:'1'}, retorno1); function retorno1(data1) { // FUNÇÃO QUE ASSINA O ARQUIVO pki.signWithRestPki({ token: data1, thumbprint: selectedCertThumb }).success(function () { // SEGUNDO POST IRÁ MONTAR O ARQUIVO ASSINADO $.post('/sg/assinador_a3.php', {token:data1, endereco:"../../tmp/", original:arquivo, origem:"Internautas", etapa: '2'}, retorno2); function retorno2(data2) { // TERCEIRO POST IRÁ ATUALIZAR O BANCO DE DADOS, CONFORME OS ATRIBUTOS PASSADOS $.post('/sg/assinador_a3.php', {origem: origem, codigo: codigo, titular: emissor, doc: documento, validade_cert:finalvalidade, pacote:'mensal', arquivo_completo:arquivo_completo, carimbo_tempo:'S', arquivo: arquivo, internauta: "", arquivo_assinado: data2, etapa: '3'}, retorno3); function retorno3(data3) { data3 = JSON.parse(data3); // CARREGANDO $("#sw_carregando_dados").hide(); // FECHA POPUP E EXIBE MENSAGEM fechar_popup_internautas(elemento); if(data3.resultado == "sucesso") { int_msg_sucesso("Consentimento aceito com sucesso!"); } else { int_msg_erro("Erro ao aceitar consentimento!"); } } } }); } } else { alert ("Nenhum certificado selecionado."); } }); // FIM $('#signPDFButton').click(function() } // FIM else verifica extensao do arquivo } // FIM else verifica os créditos } </script>]]>
4642 <![CDATA[<script> $(document).ready(function() { // FORMATA VALOR CONFORME INFORMA $("#cpf_cnpj_email").keyup(function() { var valor_formatado = formata_cpf_cnpj($(this).val()); if(valor_formatado != undefined) { $(this).val(valor_formatado); } }); // CONFIRMAÇÃO CAPTCHA $("#form_login").submit(function(e) { var response = grecaptcha.getResponse(captchaLogin); if(response.length == 0) { grecaptcha.reset(captchaLogin); swal({ text: "Ops, captcha confirmado incorretamente. Por favor, preencha-o para continuar!", icon: "warning" }); e.preventDefault(); return false; } }); $("#entrar_google").click(function(){ window.location.href="/internautas_login_servicos.php?tipo=google" }); }); </script>]]>
4676 <![CDATA[<script> var captchaLogin; var onloadCallbackLogin = function() { captchaLogin = grecaptcha.render('captchaLogin', { 'sitekey' : '6Lcg5gwUAAAAAFTAwOeaiRgV05MYvrWdi1U8jIwI' }); }; </script>]]>
5610 <![CDATA[<script> $(document).ready(function() { // #################################### FUNÇÕES MODAL #################################### // CHAMANDO FUNÇÃO EXIBIR MODAL $(document.body).on('click', '.avaliar_servico', function() { var data_origem = ""; var data_origem = $(this).attr('data-origem'); var data_id = ""; var data_id = $(this).attr("data-id"); var data_sic = ""; var attr_data_sic = $(this).attr('data-sic'); //VERFICA SE O ATRIBUTO DATA-SIC EXISTE NO BOTÃO DE AVALIAÇÃO if (typeof attr_data_sic !== typeof undefined && attr_data_sic !== false) { data_sic = attr_data_sic; } var dados_ajax = {"origem": data_origem, "id": data_id, "data_sic": data_sic }; var serializeDados = $.param(dados_ajax); $.ajax({ url: "/portal/avaliar/", dataType: 'html', type: 'POST', data: serializeDados, success: function(data) { $("#modal_avaliacao_conteudo").html(data); $("#modal_avaliacao_conteudo").find('.g-recaptcha').each(function(index, el) { grecaptcha.render(el, {'sitekey' : '6Lcg5gwUAAAAAFTAwOeaiRgV05MYvrWdi1U8jIwI'}); }); sw_popup("#modal_avaliacao", "S"); $("#form_data_solicitacao").mask("99/99/9999") $("#form_data_conclusao").mask("99/99/9999"); $("#form_hora_solicitacao").mask("99:99"); $("#form_data_solicitacao").datepicker(); $("#form_data_conclusao").datepicker(); }, error: function(xhr,er) { } }); }); // EXIBIR DATA DE CONCLUSÃO $('input[name=form_atendido]').change(function () { var valor = $(this).val(); if(valor == "S" || valor == "P") { $("#cont_data_conclusao").show(); $("#form_data_conclusao").val(""); } else { $("#cont_data_conclusao").hide(); $("#form_data_conclusao").val(""); } }); // ENVIAR AVALIAÇÃO $(document.body).on('click','#Avaliar', function() { // MOVE BARRA DE ROLAGEM PARA INÍCIO var obj = document.getElementById("modal_avaliacao"); obj.scrollTop = 0; if($("input[name=form_atendido]:checked").val() != undefined && $("input[name=form_nota]:checked").val() != undefined && ($("input[name=origem]").val() == "sic" || $("input[name=origem]").val() == "ouvidoria" || $("input[name=origem]").val() == "carta_servicos" || $("input[name=origem]").val() == "secretaria" || $("input[name=origem]").val() == "servico_menu" || $("input[name=origem]").val() == "noticia" || $("input[name=origem]").val() == "faq" || $("input[name=origem]").val() == "obras" || $("input[name=origem]").val() == "formulario" || $("input[name=origem]").val() == "paginas_dinamicas") && ($("input[name=origem_codigo]").val() != undefined || $("select[name=origem_codigo]").val())) { var serializeDados = $('#form_avaliacao').serialize(); $.ajax({ url: "/portal/avaliar/enviar/", dataType: 'html', type: 'POST', data: serializeDados, beforeSend: function() { $(".cad_carregar").fadeIn(); $("#Avaliar").attr("disabled", "disabled"); }, complete: function() { $(".cad_carregar").fadeOut(); }, success: function(data, textStatus) { data = JSON.parse(data); if(data.erro == "S") { $("#area_msg").fadeOut('', function() { $(this).html('<div class="cad_carregando_dados"><div class="cad_alerta_erro_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> '+data.msg+'</div></div>'); }).fadeIn(); grecaptcha.reset(); setTimeout(function() { $('.cad_alerta_erro_msg').fadeOut(); }, 3500); } if(data.erro == "N") { $("#area_msg").fadeOut('', function() { $(this).html('<div class="cad_carregando_dados"><div class="cad_alerta_sucesso_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> '+data.msg+'</div></div>'); }).fadeIn(); if(data.origem == "noticia") { setTimeout(function() { $(".ntc_btn_avaliar").toggleClass("ntc_btn_avaliar_gostei_ativo"); var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (!(msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))) { $(".ntc_efeito_avaliacao").show().addClass("ntc_efeito_avaliacao_show"); setTimeout(function() { $(".ntc_efeito_avaliacao").hide().removeClass("ntc_efeito_avaliacao_show"); }, 2000) } setTimeout(function() { location.reload(true); }, 3000); }, 1000); } else if (data.origem == "paginas_dinamicas") { setTimeout(function() { $(".pgd_btn_avaliar").toggleClass("pgd_btn_avaliar_gostei_ativo"); var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (!(msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))) { $(".pgd_efeito_avaliacao").show().addClass("pgd_efeito_avaliacao_show"); setTimeout(function() { $(".pgd_efeito_avaliacao").hide().removeClass("pgd_efeito_avaliacao_show"); }, 2000) } setTimeout(function() { location.reload(true); }, 3000); }, 1000); } else { setTimeout(function() { location.reload(true); }, 3500); } } if(data.erro == "A") { $("#area_msg").fadeOut('', function() { $(this).html('<div class="cad_carregando_dados"><div class="cad_alerta_aviso_msg"><i class="swfa fas fa-exclamation-circle fa-lg"></i> '+data.msg+'</div></div>'); }).fadeIn(); setTimeout(function() { location.reload(true); }, 3500); } $("#Avaliar").removeAttr("disabled"); }, error: function(xhr,er) { $('#area_msg').html('<div class="cad_carregando_dados"><div class="cad_alerta_erro_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> Ops, algo deu errado. Tente novamente mais tarde.</div></div>'); setTimeout(function() { location.reload(true); }, 3500); } }); } else { $('#area_msg').html('<div class="cad_carregando_dados"><div class="cad_alerta_erro_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> Ops, algo deu errado. Verifique os campos preenchidos e tente novamente.</div></div>'); setTimeout(function() { $('.cad_alerta_erro_msg').fadeOut(); }, 3500); } return false; }); }); </script>]]>
5774 <![CDATA[<script> var CaptchaCallback = function(){ $('.g-recaptcha').each(function(index, el) { grecaptcha.render(el, {'sitekey' : '6Lcg5gwUAAAAAFTAwOeaiRgV05MYvrWdi1U8jIwI'}); }); }; </script>]]>