{"id":953,"date":"2024-08-07T19:28:15","date_gmt":"2024-08-07T19:28:15","guid":{"rendered":"https:\/\/msjose.com.br\/wordpress\/?page_id=953"},"modified":"2024-10-25T13:47:09","modified_gmt":"2024-10-25T13:47:09","slug":"convenios-e-contratos","status":"publish","type":"page","link":"https:\/\/msjose.com.br\/index.php\/convenios-e-contratos\/","title":{"rendered":"Contratos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"953\" class=\"elementor elementor-953\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0ec47b1 elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"0ec47b1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-efb44a8 elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-transform elementor-widget elementor-widget-heading\" data-id=\"efb44a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_translateX_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/msjose.com.br\/index.php\/inicio\/\">IN\u00cdCIO<\/a>  &#8226; SOBRE  &#8226;  CONTRATOS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b4ef568 e-flex e-con-boxed e-con e-parent\" data-id=\"b4ef568\" 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-62f7246 elementor-widget elementor-widget-heading\" data-id=\"62f7246\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CONTRATOS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1269c4c e-flex e-con-boxed e-con e-parent\" data-id=\"1269c4c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a269675 e-con-full e-flex e-con e-child\" data-id=\"a269675\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ef4875 elementor-widget elementor-widget-heading\" data-id=\"1ef4875\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Atualizado 05\/12\/2023 \u00e0s 15:03<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0651f43 e-flex e-con-boxed e-con e-parent\" data-id=\"0651f43\" 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-223a6a7 elementor-widget elementor-widget-shortcode\" data-id=\"223a6a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\r\n    \/* Estilos da pagina\u00e7\u00e3o *\/\r\n    .pagination a {\r\n        color: black !important;\r\n        float: left !important;\r\n        padding: 8px 16px !important;\r\n        text-decoration: none !important;\r\n        transition: background-color 0.3s !important;\r\n        border: 1px solid #ddd !important;\r\n        margin: 0 4px !important;\r\n    }\r\n    \r\n    .pagination a.active {\r\n        background-color: #4CAF50 !important;\r\n        color: white !important;\r\n        border: 1px solid #4CAF50 !important;\r\n    }\r\n    \r\n    .pagination a:hover:not(.active) {\r\n        background-color: #ddd !important;\r\n    }\r\n    \r\n    \/* Estilos para os posts *\/\r\n    .posts {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 20px;\r\n        flex-direction: column;\r\n    }\r\n    \r\n    .post {\r\n        width: 100%;\r\n        padding: 10px;\r\n        border: 1px solid #ddd;\r\n        background-color: #f9f9f9;\r\n    }\r\n    \r\n    \/* Estilo para a barra de busca *\/\r\n    #search-bar {\r\n        width: 100%;\r\n        padding: 10px;\r\n        font-size: 16px;\r\n        margin-bottom: 20px;\r\n        border: 1px solid #ccc;\r\n        border-radius: 5px;\r\n    }\r\n@media (max-width: 700px) {\r\n    \/* Estilo para a caixa de cada resultado *\/\r\n    .post {\r\n        font-size: 10px; \/* Tamanho de fonte menor em telas m\u00f3veis *\/\r\n\t}\r\n}\r\n<\/style>\r\n\r\n<!-- Barra de busca -->\r\n<input type=\"text\" id=\"search-bar\" placeholder=\"Busque aqui...\" \/>\r\n\r\n<!-- Cont\u00eainer Principal (Pai) -->\r\n<div id=\"post-container\" class=\"posts\" data-id=\"pai-1\">\r\n    <div class=\"post\" data-id=\"post-1\"><style>\r\n.container {\r\n    width: 100%;\r\n    border: 1px solid #ddd;\r\n    margin-bottom: 20px;\r\n    padding: 10px;\r\n}\r\n\r\n.process-info {\r\n    display: grid;\r\n    grid-template-columns: repeat(4, 1fr);\r\n    border-bottom: 1px solid #ddd;\r\n    padding-bottom: 10px;\r\n    margin-bottom: 10px;\r\n}\r\n\r\n.process-info div {\r\n    padding: 5px 0;\r\n}\r\n\r\n.objeto, .concedente, .contabanc {\r\n    border-bottom: 1px solid #ddd;\r\n    padding: 10px 0;\r\n}\r\n\r\n\r\n.download a {\r\n    display: inline-block;\r\n    background-color: #2a3b67;\r\n    color: white;\r\n    padding: 10px 20px;\r\n    text-decoration: none;\r\n    border-radius: 5px;\r\n}\r\n\r\n\r\n.download a:hover {\r\n    background-color: #1b2a52;\r\n}\r\n\r\n\r\n.download-btn {\r\n    background: none;\r\n    border: none;\r\n    color: inherit;\r\n    font: inherit;\r\n    cursor: pointer;\r\n}\r\n@media (max-width: 700px) {\r\n    .container {\r\n        font-size: 10px; \r\n    }\r\n}\r\n<\/style>\r\n\r\n<div class=\"container\">\r\n    <div class=\"process-info\">\r\n        <div><strong>Contrato N\u00ba<\/strong><\/div>\r\n        <div><strong>Vig\u00eancia<\/strong><\/div>\r\n        <div><strong>Situa\u00e7\u00e3o<\/strong><\/div>\r\n        <div><strong>Valor Estimado<\/strong><\/div>\r\n\r\n        <div>001\/2023<\/div>\r\n        <div>02\/01\/2020 a 02\/01\/2021<\/div>\r\n        <div>EM EXECU\u00c7\u00c3O<\/div>\r\n        <div>R$ 10.668.207,98<\/div>\r\n    <\/div>\r\n\r\n    <div class=\"objeto\">\r\n        <div><strong>Objeto<\/strong><\/div>\r\n        <div>PRESTA\u00c7\u00c3O DE SERVI\u00c7OS DE SA\u00daDE<\/div>\r\n    <\/div>\r\n\r\n    <div class=\"concedente\">\r\n        <div><strong>Concedente<\/strong><\/div>\r\n        <div>SECRETARIA MUNICIPAL DE SA\u00daDE DE ITABAIANA\/SE<\/div>\r\n    <\/div>\r\n\t\r\n\t<div class=\"contabanc\">\r\n        <div><strong>Conta Banc\u00e1ria<\/strong><\/div>\r\n        <div>-<\/div>\r\n    <\/div>\r\n\t\r\n\t<div class=\"download\">\r\n    \t<p><strong>Download:<\/strong><\/p>\r\n    \t<a href=\"https:\/\/msjose.com.br\/wp-content\/uploads\/2024\/10\/004-2020.pdf\" target=\"_blank\">\r\n        \t<button class=\"download-btn\">CONTRATO SMS<\/button>\r\n    \t<\/a>\r\n\t<\/div>\r\n<\/div>\r\n\r\n<script>\r\n    document.querySelector('.download a').addEventListener('click', function(e) {\r\n    });\r\n<\/script><\/div>\r\n<\/div>\r\n\r\n<!-- Navega\u00e7\u00e3o de Pagina\u00e7\u00e3o -->\r\n<div class=\"pagination\">\r\n    <a href=\"#\" class=\"prev\">&laquo;<\/a>\r\n    <a href=\"#\" class=\"page-num\" data-page=\"1\">1<\/a>\r\n    <a href=\"#\" class=\"next\">&raquo;<\/a>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n    const postContainer = document.getElementById('post-container');\r\n    const searchBar = document.getElementById('search-bar');\r\n    let posts = Array.from(postContainer.children); \/\/ Todos os posts\r\n    let currentPage = 1;\r\n    const postsPerPage = 4;\r\n    let filteredPosts = posts; \/\/ Inicialmente, todos os posts s\u00e3o vis\u00edveis\r\n    let totalPages = Math.ceil(filteredPosts.length \/ postsPerPage);\r\n\r\n    \/\/ Fun\u00e7\u00e3o para carregar os posts da p\u00e1gina atual\r\n    function loadPosts(page) {\r\n        filteredPosts.forEach((post, index) => {\r\n            post.style.display = (index >= (page - 1) * postsPerPage && index < page * postsPerPage) ? 'block' : 'none';\r\n        });\r\n\r\n        updatePagination(page);\r\n    }\r\n\r\n    \/\/ Fun\u00e7\u00e3o para calcular a similaridade entre duas strings\r\n    function calculateSimilarity(str1, str2) {\r\n        str1 = str1.toLowerCase();\r\n        str2 = str2.toLowerCase();\r\n        \r\n        \/\/ Se uma palavra exata for encontrada, retorna maior similaridade\r\n        if (str1.includes(str2)) {\r\n            return 1.0;\r\n        }\r\n        \r\n        \/\/ Caso contr\u00e1rio, calcula dist\u00e2ncia de edi\u00e7\u00e3o (Levenshtein)\r\n        return (str1.length - editDistance(str1, str2)) \/ str1.length;\r\n    }\r\n\r\n    \/\/ Fun\u00e7\u00e3o auxiliar para calcular a dist\u00e2ncia de edi\u00e7\u00e3o (Levenshtein)\r\n    function editDistance(s1, s2) {\r\n        s1 = s1.toLowerCase();\r\n        s2 = s2.toLowerCase();\r\n        let costs = new Array();\r\n        for (let i = 0; i <= s1.length; i++) {\r\n            let lastValue = i;\r\n            for (let j = 0; j <= s2.length; j++) {\r\n                if (i === 0) costs[j] = j;\r\n                else {\r\n                    if (j > 0) {\r\n                        let newValue = costs[j - 1];\r\n                        if (s1.charAt(i - 1) !== s2.charAt(j - 1))\r\n                            newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\r\n                        costs[j - 1] = lastValue;\r\n                        lastValue = newValue;\r\n                    }\r\n                }\r\n            }\r\n            if (i > 0) costs[s2.length] = lastValue;\r\n        }\r\n        return costs[s2.length];\r\n    }\r\n\r\n    \/\/ Fun\u00e7\u00e3o para filtrar os posts com base na busca\r\n    searchBar.addEventListener('input', function () {\r\n        const filter = searchBar.value.toLowerCase();\r\n        filteredPosts = posts.filter(post => post.textContent.toLowerCase().includes(filter));\r\n        filteredPosts.sort((a, b) => {\r\n            let similarityA = calculateSimilarity(a.textContent, filter);\r\n            let similarityB = calculateSimilarity(b.textContent, filter);\r\n            return similarityB - similarityA;\r\n        });\r\n        \r\n        totalPages = Math.ceil(filteredPosts.length \/ postsPerPage); \/\/ Atualiza o n\u00famero total de p\u00e1ginas\r\n        currentPage = 1; \/\/ Reseta para a primeira p\u00e1gina\r\n        renderPosts(); \/\/ Recarrega os posts com o filtro aplicado\r\n        updatePagination(currentPage); \/\/ Atualiza a pagina\u00e7\u00e3o conforme os resultados filtrados\r\n    });\r\n\r\n    \/\/ Fun\u00e7\u00e3o para renderizar os posts na ordem correta\r\n    function renderPosts() {\r\n        postContainer.innerHTML = '';\r\n        filteredPosts.forEach(post => {\r\n            postContainer.appendChild(post);\r\n        });\r\n        loadPosts(currentPage);\r\n    }\r\n\r\n    \/\/ Fun\u00e7\u00e3o para atualizar a pagina\u00e7\u00e3o\r\n    function updatePagination(page) {\r\n        const paginationContainer = document.querySelector('.pagination');\r\n        const pageNums = paginationContainer.querySelectorAll('a.page-num');\r\n\r\n        pageNums.forEach(pageLink => {\r\n            pageLink.classList.remove('active');\r\n            if (parseInt(pageLink.getAttribute('data-page')) === page) {\r\n                pageLink.classList.add('active');\r\n            }\r\n        });\r\n\r\n        \/\/ Atualiza os links de p\u00e1gina conforme o n\u00famero de p\u00e1ginas filtradas\r\n        pageNums.forEach(pageLink => {\r\n            const pageNum = parseInt(pageLink.getAttribute('data-page'));\r\n            if (pageNum > totalPages) {\r\n                pageLink.remove();\r\n            }\r\n        });\r\n\r\n        \/\/ Cria novos links de p\u00e1gina se necess\u00e1rio\r\n        for (let i = pageNums.length + 1; i <= totalPages; i++) {\r\n            const newPageLink = document.createElement('a');\r\n            newPageLink.href = \"#\";\r\n            newPageLink.classList.add('page-num');\r\n            newPageLink.setAttribute('data-page', i);\r\n            newPageLink.innerText = i;\r\n            paginationContainer.insertBefore(newPageLink, document.querySelector('.pagination .next'));\r\n\r\n            newPageLink.addEventListener('click', function (e) {\r\n                e.preventDefault();\r\n                currentPage = i;\r\n                loadPosts(currentPage);\r\n            });\r\n        }\r\n    }\r\n\r\n    \/\/ Adicionar eventos de clique na pagina\u00e7\u00e3o\r\n    document.querySelectorAll('.pagination a.page-num').forEach(pageLink => {\r\n        pageLink.addEventListener('click', function (e) {\r\n            e.preventDefault();\r\n            const page = parseInt(this.getAttribute('data-page'));\r\n            currentPage = page;\r\n            loadPosts(currentPage);\r\n        });\r\n    });\r\n\r\n    document.querySelector('.pagination .prev').addEventListener('click', function (e) {\r\n        e.preventDefault();\r\n        if (currentPage > 1) {\r\n            currentPage--;\r\n            loadPosts(currentPage);\r\n        }\r\n    });\r\n\r\n    document.querySelector('.pagination .next').addEventListener('click', function (e) {\r\n        e.preventDefault();\r\n        if (currentPage < totalPages) {\r\n            currentPage++;\r\n            loadPosts(currentPage);\r\n        }\r\n    });\r\n\r\n    \/\/ Carrega a primeira p\u00e1gina ao iniciar\r\n    loadPosts(currentPage);\r\n});\r\n<\/script>\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c810645 e-flex e-con-boxed e-con e-parent\" data-id=\"c810645\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\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>IN\u00cdCIO &#8226; SOBRE &#8226; CONTRATOS CONTRATOS Atualizado 05\/12\/2023 \u00e0s 15:03<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-953","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/pages\/953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=953"}],"version-history":[{"count":49,"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/pages\/953\/revisions"}],"predecessor-version":[{"id":1993,"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/pages\/953\/revisions\/1993"}],"wp:attachment":[{"href":"https:\/\/msjose.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}