From c293c5501adc7ec6376d30e64a81f09b39225582 Mon Sep 17 00:00:00 2001
From: Matheus <matheus.diori@amcom.com.br>
Date: Fri, 10 May 2024 14:32:01 -0300
Subject: [PATCH] feat(29921): Adiciona carga de especificacoes e materiais e
 servicos

---
 .../Globais/ArquivosDeCarga/Filtros.js        |  4 +--
 .../Globais/ArquivosDeCarga/index.js          | 10 ++++++++
 .../context/MateriaisServicos.js              | 18 +++++++++++++
 .../EspecificacoesMateriaisServicos/index.js  | 25 +++++++++++++++++++
 src/rotas/index.js                            |  8 ++++++
 5 files changed, 63 insertions(+), 2 deletions(-)
 create mode 100644 src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/context/MateriaisServicos.js
 create mode 100644 src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/index.js

diff --git a/src/componentes/Globais/ArquivosDeCarga/Filtros.js b/src/componentes/Globais/ArquivosDeCarga/Filtros.js
index 9fc9e5234..dd289307a 100644
--- a/src/componentes/Globais/ArquivosDeCarga/Filtros.js
+++ b/src/componentes/Globais/ArquivosDeCarga/Filtros.js
@@ -1,7 +1,7 @@
 import React from "react";
 import {DatePickerField} from "../DatePickerField";
 
-export const Filtros = ({stateFiltros, handleChangeFiltros, handleSubmitFiltros, limpaFiltros, tabelaArquivos}) => {
+export const Filtros = ({stateFiltros, handleChangeFiltros, handleSubmitFiltros, limpaFiltros, tabelaArquivos, tipoCarga}) => {
     return (
         <>
             <form>
@@ -15,7 +15,7 @@ export const Filtros = ({stateFiltros, handleChangeFiltros, handleSubmitFiltros,
                             id="filtrar_por_identificador"
                             type="text"
                             className="form-control"
-                            placeholder='Escreva o nome da associação'
+                            placeholder={tipoCarga === 'CARGA_ASSOCIACOES' ? 'Escreva o nome da associação' : ''}
                         />
                     </div>
                     <div className="form-group col">
diff --git a/src/componentes/Globais/ArquivosDeCarga/index.js b/src/componentes/Globais/ArquivosDeCarga/index.js
index 1e75e739f..2ddee3ddc 100644
--- a/src/componentes/Globais/ArquivosDeCarga/index.js
+++ b/src/componentes/Globais/ArquivosDeCarga/index.js
@@ -57,6 +57,15 @@ const ArquivosDeCarga = () => {
                     {label: "Cargas de arquivo", url: 'parametro-arquivos-de-carga', origem:'CARGA_USUARIOS'},
                 ],
             }
+        }else if (url_params.tipo_de_carga === 'CARGA_MATERIAIS_SERVICOS') {
+            obj = {
+                titulo: 'Especificações de Materiais e Serviços',
+                acesso_permitido: true,
+                UrlsMenuInterno:[
+                    {label: "Dados especificações de Materiais e Serviços", url: "parametro-especificacoes"},
+                    {label: "Cargas de arquivo", url: "parametro-arquivos-de-carga", origem:'CARGA_MATERIAIS_SERVICOS'},
+                ],
+            }
         }
         return obj
     }, [url_params]);
@@ -399,6 +408,7 @@ const ArquivosDeCarga = () => {
                                 handleSubmitFiltros={handleSubmitFiltros}
                                 limpaFiltros={limpaFiltros}
                                 tabelaArquivos={tabelaArquivos}
+                                tipoCarga={url_params.tipo_de_carga}
                             />
                             <p>Exibindo <span className='total-acoes'>{totalDeArquivos}</span> cargas de arquivo</p>
                             <TabelaArquivosDeCarga
diff --git a/src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/context/MateriaisServicos.js b/src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/context/MateriaisServicos.js
new file mode 100644
index 000000000..5d472ac64
--- /dev/null
+++ b/src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/context/MateriaisServicos.js
@@ -0,0 +1,18 @@
+import React, { createContext, useMemo } from 'react';
+
+export const MateriaisServicosContext = createContext({
+})
+
+export const MateriaisServicosProvider = ({children}) => {
+
+    const contextValue = useMemo(() => {
+        return {
+        };
+    }, []);
+
+    return (
+        <MateriaisServicosContext.Provider value={contextValue}>
+            {children}
+        </MateriaisServicosContext.Provider>
+    )
+}
\ No newline at end of file
diff --git a/src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/index.js b/src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/index.js
new file mode 100644
index 000000000..154b0831d
--- /dev/null
+++ b/src/componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos/index.js
@@ -0,0 +1,25 @@
+import React from "react";
+
+import {MateriaisServicosProvider} from "./context//MateriaisServicos";
+import {PaginasContainer} from "../../../../../paginas/PaginasContainer";
+import {MenuInterno} from "../../../../Globais/MenuInterno";
+
+export const EspecificacoesMateriaisServicos = () => {
+    const UrlsMenuInterno = [
+        {label: "Dados especificações de Materiais e Serviços", url: "parametro-especificacoes"},
+        {label: "Cargas de arquivo", url: "parametro-arquivos-de-carga", origem:'CARGA_MATERIAIS_SERVICOS'},
+    ];
+
+    return (
+        <MateriaisServicosProvider>
+            <PaginasContainer>
+                <h1 className="titulo-itens-painel mt-5">Especificações de Materiais e Serviços</h1>
+                <div className="page-content-inner">
+                    <MenuInterno
+                        caminhos_menu_interno={UrlsMenuInterno}
+                    />
+                </div>
+            </PaginasContainer>
+        </MateriaisServicosProvider>
+    )
+}
\ No newline at end of file
diff --git a/src/rotas/index.js b/src/rotas/index.js
index 9b0f450ee..74bb945a3 100644
--- a/src/rotas/index.js
+++ b/src/rotas/index.js
@@ -72,6 +72,7 @@ import {Tags} from "../componentes/sme/Parametrizacoes/Estrutura/Tags";
 import {TiposConta} from "../componentes/sme/Parametrizacoes/Estrutura/TiposConta";
 import {FiqueDeOlho} from "../componentes/sme/Parametrizacoes/EdicaoDeTextos/FiqueDeOlho";
 import ArquivosDeCarga from "../componentes/Globais/ArquivosDeCarga";
+import {EspecificacoesMateriaisServicos} from "../componentes/sme/Parametrizacoes/Despesas/EspecificacoesMateriaisServicos";
 import {TiposDeCusteio} from "../componentes/sme/Parametrizacoes/Despesas/TiposDeCusteio"
 import {Fornecedores} from "../componentes/sme/Parametrizacoes/Despesas/Fornecedores";
 import {AnaliseDre} from "../componentes/escolas/AnaliseDre";
@@ -106,6 +107,7 @@ import {
     PaginaDetalhePrestacaoContaReprovadaNaoApresentacao
 } from "../componentes/dres/PrestacaoDeContas/DetalhePrestacaoDeContasNaoApresentada/pages/PaginaDetalhePrestacaoContaReprovadaNaoApresentacao";
 
+
 const routesConfig = [
     {
         exact: true,
@@ -558,6 +560,12 @@ const routesConfig = [
         component: VinculaAssociacoesAAcao,
         permissoes: ['access_painel_parametrizacoes'],
     },
+    {
+        exact: true,
+        path: "/parametro-especificacoes",
+        component: EspecificacoesMateriaisServicos,
+        permissoes: ['access_painel_parametrizacoes', 'change_painel_parametrizacoes'],
+    },
     {
         exact: true,
         path: "/parametro-tipos-custeio",