{"id":286314,"date":"2026-05-27T11:36:35","date_gmt":"2026-05-27T14:36:35","guid":{"rendered":"https:\/\/goias.gov.br\/meioambiente\/?page_id=286314"},"modified":"2026-08-27T18:14:26","modified_gmt":"2026-08-27T21:14:26","slug":"atos-autorizativos-alocacao","status":"publish","type":"page","link":"https:\/\/goias.gov.br\/meioambiente\/home\/srh\/geurh\/atos-autorizativos-alocacao\/","title":{"rendered":"Atos Autorizativos &#8211; Aloca\u00e7\u00e3o"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"286314\" class=\"elementor elementor-286314\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f371c6 e-flex e-con-boxed e-con e-parent\" data-id=\"8f371c6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c0ad132 elementor-widget elementor-widget-html\" data-id=\"c0ad132\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"tabela-outorga-container\">\r\n\r\n<style>\r\n    :root {\r\n        --verde-goias: #008d4c;\r\n        --azul-goias: #005696;\r\n        --azul-hover: #004070;\r\n    }\r\n\r\n    .tabela-outorga-container {\r\n        width: 100%; \r\n        margin: 20px auto; \r\n        font-family: 'Rawline', 'Segoe UI', Arial, sans-serif; \r\n    }\r\n\r\n    \/* Painel Superior de Filtros *\/\r\n    .filtros-container {\r\n        background: #f8f9fa;\r\n        padding: 15px;\r\n        border: 1px solid #ddd;\r\n        border-radius: 8px 8px 0 0;\r\n        display: flex;\r\n        gap: 15px;\r\n        flex-wrap: wrap;\r\n        align-items: flex-end;\r\n    }\r\n\r\n    .filtros-container div {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 5px;\r\n    }\r\n\r\n    .filtros-container label { \r\n        font-weight: bold; \r\n        font-size: 14px; \r\n        color: #333;\r\n    }\r\n\r\n    .filtros-container input,\r\n    .filtros-container select {\r\n        padding: 8px;\r\n        border-radius: 4px;\r\n        border: 1px solid #ccc;\r\n        font-size: 14px;\r\n        min-width: 160px;\r\n        height: 38px;\r\n        background-color: #fff;\r\n    }\r\n\r\n    \/* Bot\u00e3o de Exportar Sele\u00e7\u00e3o *\/\r\n    .btn-exportar-filtrados {\r\n        background-color: var(--azul-goias);\r\n        color: #ffffff !important;\r\n        font-weight: bold;\r\n        padding: 9px 15px;\r\n        border: none;\r\n        border-radius: 4px;\r\n        font-size: 14px;\r\n        cursor: pointer;\r\n        transition: 0.2s;\r\n        height: 38px;\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 5px;\r\n    }\r\n\r\n    .btn-exportar-filtrados:hover {\r\n        background-color: var(--azul-hover);\r\n    }\r\n\r\n    \/* CONTAINER CR\u00cdTICO PARA RESPONSIVIDADE MOBILE *\/\r\n    .tabela-responsiva-wrapper {\r\n        width: 100%;\r\n        overflow-x: auto; \r\n        -webkit-overflow-scrolling: touch; \r\n        border: 1px solid #ddd;\r\n        border-top: none;\r\n        background: #ffffff;\r\n    }\r\n\r\n    \/* Estiliza\u00e7\u00e3o da Tabela SEMAD *\/\r\n    #tabela-outorga {\r\n        margin: 0 !important;\r\n        width: 100% !important;\r\n    }\r\n\r\n    #tabela-outorga thead th {\r\n        background-color: var(--verde-goias) !important;\r\n        color: #ffffff !important;\r\n        padding: 15px;\r\n        font-size: 14px;\r\n        border-bottom: 3px solid #006b39 !important;\r\n        text-align: left;\r\n        white-space: nowrap; \r\n    }\r\n\r\n    #tabela-outorga tbody td {\r\n        padding: 12px 14px;\r\n        border-bottom: 1px solid #dee2e6;\r\n        font-size: 15px; \r\n        color: #333;\r\n        white-space: nowrap; \r\n    }\r\n\r\n    \/* Bot\u00e3o de Link *\/\r\n    .btn-link-doc {\r\n        color: var(--azul-goias) !important;\r\n        font-weight: 700 !important;\r\n        text-decoration: none !important;\r\n        padding: 6px 12px;\r\n        border: 2px solid var(--azul-goias);\r\n        border-radius: 4px;\r\n        font-size: 12px;\r\n        display: inline-block;\r\n        transition: 0.3s;\r\n        text-align: center;\r\n        white-space: nowrap;\r\n    }\r\n\r\n    .btn-link-doc:hover { \r\n        background-color: var(--azul-goias); \r\n        color: #fff !important; \r\n    }\r\n\r\n    .download-container { \r\n        margin-top: 20px; \r\n        font-size: 15px; \r\n        font-weight: 500;\r\n        color: #333;\r\n    }\r\n    .btn-download { \r\n        color: #d9534f; \r\n        font-weight: bold; \r\n        text-decoration: underline; \r\n    }\r\n<\/style>\r\n\r\n<div class=\"filtros-container\">\r\n    <div>\r\n        <label for=\"filtro-ano\">Filtrar por Ano<\/label>\r\n        <select id=\"filtro-ano\">\r\n            <option value=\"\">Todos os anos<\/option>\r\n            <option value=\"2025\">2025<\/option>\r\n            <option value=\"2024\">2024<\/option>\r\n        <\/select>\r\n    <\/div>\r\n    <div>\r\n        <label for=\"filtro-ato\">N\u00ba do Ato<\/label>\r\n        <input type=\"text\" id=\"filtro-ato\" placeholder=\"Ex: 01\/2025\">\r\n    <\/div>\r\n    <div>\r\n        <label for=\"filtro-tipo\">Tipo<\/label>\r\n        <select id=\"filtro-tipo\">\r\n            <option value=\"\">Todos os tipos<\/option>\r\n            <option value=\"Outorga\">Outorga<\/option>\r\n            <option value=\"Indeferimento\">Indeferimento<\/option>\r\n            <option value=\"Prorrogac\u00e3o\">Prorroga\u00e7\u00e3o<\/option>\r\n            <option value=\"Retificac\u00e3o\">Retifica\u00e7\u00e3o<\/option>\r\n            <option value=\"Revogac\u00e3o\">Revoga\u00e7\u00e3o<\/option>\r\n        <\/select>\r\n    <\/div>\r\n    <div>\r\n        <label for=\"filtro-usuario\">Usu\u00e1rio<\/label>\r\n        <input type=\"text\" id=\"filtro-usuario\" placeholder=\"Nome do requerente...\">\r\n    <\/div>\r\n    <div>\r\n        <button id=\"btn-exportar\" class=\"btn-exportar-filtrados\" type=\"button\">\u2b07\ufe0f Baixar Selecionados<\/button>\r\n    <\/div>\r\n<\/div>\r\n\r\n<div class=\"tabela-responsiva-wrapper\">\r\n    <table id=\"tabela-outorga\" class=\"cell-border display\" style=\"width:100%\">\r\n        <thead>\r\n            <tr>\r\n                <th>N\u00ba do Ato<\/th>\r\n                <th>Origem<\/th>\r\n                <th>Tipo<\/th>\r\n                <th>Usu\u00e1rio<\/th>\r\n                <th>Link do Ato<\/th>\r\n            <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr><td colspan=\"5\" style=\"text-align:center;\">Carregando dados...<\/td><\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n<\/div>\r\n\r\n<div class=\"download-container\">\r\n    <span>Arquivo completo atualizado para consulta: <\/span>\r\n    <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vTbm1__0-DRs2OFSytct33SedWH4ubAZcQG4IkmLgh3XPHI_uHxyxffFz_ERgrOJYHcJ5YjLg0sxMaV\/pub?output=csv\" class=\"btn-download\" target=\"_blank\">\r\n        Baixar Planilha de Atos Completa (.csv)\r\n    <\/a>\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.datatables.net\/1.13.6\/css\/jquery.dataTables.min.css\">\r\n<script src=\"https:\/\/code.jquery.com\/jquery-3.7.1.min.js\"><\/script>\r\n<script src=\"https:\/\/cdn.datatables.net\/1.13.6\/js\/jquery.dataTables.min.js\" defer><\/script>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/papaparse@5.4.1\/papaparse.min.js\" defer><\/script>\r\n\r\n<script>\r\nfunction iniciarProcessamentoTabela() {\r\n    const $ = jQuery;\r\n    let table;\r\n\r\n    \/\/ Garante que o DataTables e o PapaParse j\u00e1 carregaram na p\u00e1gina antes de executar\r\n    if (!$.fn.dataTable || !window.Papa) {\r\n        setTimeout(iniciarProcessamentoTabela, 150);\r\n        return;\r\n    }\r\n\r\n    \/\/ Mecanismo customizado multi-filtro do DataTables\r\n    $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {\r\n        const bAno = $('#filtro-ano').val();\r\n        const bAto = $('#filtro-ato').val().trim().toLowerCase();\r\n        const bTipo = $('#filtro-tipo').val();\r\n        const bUsuario = $('#filtro-usuario').val().trim().toLowerCase();\r\n\r\n        const textoAto = data[0].toLowerCase();\r\n        const textoTipo = data[2].toLowerCase();\r\n        const textoUsuario = data[3].toLowerCase();\r\n\r\n        \/\/ Filtro de Ano Inteligente: verifica se o ano selecionado consta no texto do N\u00ba do Ato (ex: \"01\/2025\" possui \"2025\")\r\n        if (bAno && !textoAto.includes(bAno)) return false;\r\n        if (bAto && !textoAto.includes(bAto)) return false;\r\n        if (bTipo && !textoTipo.includes(bTipo.toLowerCase())) return false;\r\n        if (bUsuario && !textoUsuario.includes(bUsuario)) return false;\r\n\r\n        return true;\r\n    });\r\n\r\n    const urlPlanilha = \"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vTbm1__0-DRs2OFSytct33SedWH4ubAZcQG4IkmLgh3XPHI_uHxyxffFz_ERgrOJYHcJ5YjLg0sxMaV\/pub?output=csv\";\r\n\r\n    Papa.parse(urlPlanilha, {\r\n        download: true,\r\n        fastMode: true,\r\n        complete: function(results) {\r\n            const dados = results.data;\r\n            const datasetJS = [];\r\n\r\n            \/\/ Come\u00e7a em 1 para pular o cabe\u00e7alho da planilha\r\n            for (let i = 1; i < dados.length; i++) {\r\n                const r = dados[i];\r\n                if (!r || !r[0] || r[0].trim().length === 0) continue;\r\n\r\n                let campoNumeroAto = r[0].trim();        \r\n                let campoOrigem    = r[1] ? r[1].trim() : \"Portaria-REGLA\"; \r\n                let campoTipo      = r[2] ? r[2].trim() : \"-\"; \r\n                let campoUsuario   = r[3] ? r[3].trim() : \"-\"; \r\n                let urlDocumento   = r[5] ? r[5].trim() : \"\";  \r\n\r\n                let linkHTML = \"-\";\r\n                if (urlDocumento.toLowerCase().includes('http')) {\r\n                    linkHTML = `<a href=\"${urlDocumento}\" target=\"_blank\" class=\"btn-link-doc\">ACESSAR DOCUMENTO<\/a>`;\r\n                }\r\n\r\n                \/\/ Normaliza\u00e7\u00e3o matem\u00e1tica interna para manter a ordena\u00e7\u00e3o sequencial perfeita (Ano + N\u00famero com zeros \u00e0 esquerda)\r\n                let partes = campoNumeroAto.split('\/');\r\n                let chaveOrdem = \"0000_000000\";\r\n                if(partes.length === 2) {\r\n                    let numPuro = partes[0].replace(\/\\D\/g, '');\r\n                    let anoPuro = partes[1].replace(\/\\D\/g, '');\r\n                    chaveOrdem = anoPuro + '_' + String(numPuro).padStart(6, '0');\r\n                }\r\n\r\n                datasetJS.push({\r\n                    0: campoNumeroAto,\r\n                    1: campoOrigem,\r\n                    2: campoTipo,\r\n                    3: campoUsuario,\r\n                    4: linkHTML,\r\n                    urlCrua: urlDocumento,\r\n                    ordemIndex: chaveOrdem\r\n                });\r\n            }\r\n\r\n            \/\/ Engine de ordena\u00e7\u00e3o customizada atribu\u00edda \u00e0 coluna 0\r\n            $.fn.dataTable.ext.type.order['sequencial-historico-pre'] = function(data) {\r\n                return data.ordemIndex;\r\n            };\r\n\r\n            \/\/ Destruir tabela existente se houver erro ou reinicializa\u00e7\u00e3o\r\n            if ($.fn.DataTable.isDataTable('#tabela-outorga')) {\r\n                $('#tabela-outorga').DataTable().destroy();\r\n            }\r\n\r\n            table = $('#tabela-outorga').DataTable({\r\n                \"data\": datasetJS,\r\n                \"deferRender\": true, \r\n                \"pageLength\": 50,\r\n                \"lengthMenu\": [10, 25, 50, 100],\r\n                \"autoWidth\": false,\r\n                \"columnDefs\": [\r\n                    { \r\n                        \"type\": \"sequencial-historico\", \r\n                        \"targets\": 0,\r\n                        \"data\": function(row, type, val) {\r\n                            if (type === 'sort' || type === 'type') return row;\r\n                            return row[0];\r\n                        }\r\n                    },\r\n                    {\r\n                        \"targets\": [1, 2, 3, 4],\r\n                        \"data\": function(row, type, val, meta) {\r\n                            return row[meta.col];\r\n                        }\r\n                    }\r\n                ],\r\n                \"order\": [[0, \"desc\"]], \/\/ Inicia exibindo os atos mais recentes primeiro\r\n                \"language\": {\r\n                    \"url\": \"https:\/\/cdn.datatables.net\/plug-ins\/1.13.6\/i18n\/pt-BR.json\"\r\n                }\r\n            });\r\n\r\n            \/\/ For\u00e7a a atualiza\u00e7\u00e3o da tabela ao interagir com os novos filtros\r\n            $('#filtro-ano, #filtro-ato, #filtro-tipo, #filtro-usuario').on('keyup change', function() {\r\n                table.draw();\r\n            });\r\n\r\n            \/\/ L\u00f3gica do bot\u00e3o de baixar a sele\u00e7\u00e3o atual da tela em formato amig\u00e1vel ao Excel brasileiro\r\n            $('#btn-exportar').on('click', function() {\r\n                const dadosFiltrados = table.rows({ filter: 'applied' }).data();\r\n                \r\n                if (dadosFiltrados.length === 0) {\r\n                    alert('Nenhum registro encontrado com os filtros atuais.');\r\n                    return;\r\n                }\r\n\r\n                let conteudoCSV = \"\\uFEFFN\u00b0 do Ato;Origem;Tipo;Usu\u00e1rio;Link do Ato\\n\";\r\n                \r\n                for (let i = 0; i < dadosFiltrados.length; i++) {\r\n                    const item = dadosFiltrados[i];\r\n                    let u = item[3].replace(\/;\/g, ',');\r\n                    conteudoCSV += `${item[0]};${item[1]};${item[2]};${u};${item.urlCrua}\\n`;\r\n                }\r\n\r\n                const blob = new Blob([conteudoCSV], { type: 'text\/csv;charset=utf-8;' });\r\n                const linkDownload = document.createElement(\"a\");\r\n                const url = URL.createObjectURL(blob);\r\n                \r\n                linkDownload.setAttribute(\"href\", url);\r\n                linkDownload.setAttribute(\"download\", \"portarias_sao_marcos_filtradas.csv\");\r\n                linkDownload.style.visibility = 'hidden';\r\n                document.body.appendChild(linkDownload);\r\n                linkDownload.click();\r\n                document.body.removeChild(linkDownload);\r\n            });\r\n        },\r\n        error: function(err, file, inputElem, reason) {\r\n            console.error(\"Erro ao processar CSV via PapaParse:\", err, reason);\r\n            $(\"#tabela-outorga tbody\").html('<tr><td colspan=\"5\" style=\"text-align:center; color:red;\">Erro ao carregar dados da planilha p\u00fablica. Verifique as configura\u00e7\u00f5es de publica\u00e7\u00e3o da tabela.<\/td><\/tr>');\r\n        }\r\n    });\r\n}\r\n\r\n\/\/ Inicializador seguro baseado nos estados de carregamento da p\u00e1gina\r\nif (document.readyState === \"complete\" || document.readyState === \"interactive\") {\r\n    setTimeout(iniciarProcessamentoTabela, 1);\r\n} else {\r\n    document.addEventListener(\"DOMContentLoaded\", iniciarProcessamentoTabela);\r\n}\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Filtrar por Ano Todos os anos20252024 N\u00ba do Ato Tipo Todos os tiposOutorgaIndeferimentoProrroga\u00e7\u00e3oRetifica\u00e7\u00e3oRevoga\u00e7\u00e3o Usu\u00e1rio \u2b07\ufe0f Baixar Selecionados N\u00ba do Ato Origem Tipo Usu\u00e1rio Link do Ato Carregando dados&#8230; Arquivo completo atualizado para consulta: Baixar Planilha de Atos Completa (.csv)<\/p>\n","protected":false},"author":877,"featured_media":0,"parent":386842,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-286314","page","type-page","status-publish","hentry"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"fabricioaires","author_link":"https:\/\/goias.gov.br\/meioambiente\/author\/fabricioaires\/"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"Filtrar por Ano Todos os anos20252024 N\u00ba do Ato Tipo Todos os tiposOutorgaIndeferimentoProrroga\u00e7\u00e3oRetifica\u00e7\u00e3oRevoga\u00e7\u00e3o Usu\u00e1rio \u2b07\ufe0f Baixar Selecionados N\u00ba do Ato Origem Tipo Usu\u00e1rio Link do Ato Carregando dados&#8230; Arquivo completo atualizado para consulta: Baixar Planilha de Atos Completa (.csv)","_links":{"self":[{"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/pages\/286314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/users\/877"}],"replies":[{"embeddable":true,"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/comments?post=286314"}],"version-history":[{"count":2,"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/pages\/286314\/revisions"}],"predecessor-version":[{"id":396553,"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/pages\/286314\/revisions\/396553"}],"up":[{"embeddable":true,"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/pages\/386842"}],"wp:attachment":[{"href":"https:\/\/goias.gov.br\/meioambiente\/wp-json\/wp\/v2\/media?parent=286314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}