Skip to content

Commit

Permalink
Merge pull request #2392 from prefeiturasp/release/9.4.0
Browse files Browse the repository at this point in the history
Release/9.4.0
  • Loading branch information
Lucas-Santos-Rocha-dev authored May 6, 2024
2 parents 2547a44 + afe905e commit 63da367
Show file tree
Hide file tree
Showing 30 changed files with 334 additions and 388 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ptrf",
"version": "9.3.0",
"version": "9.4.0",
"private": true,
"dependencies": {
"@dnd-kit/core": "^6.1.0",
Expand Down
30 changes: 0 additions & 30 deletions src/componentes/Globais/Ambientes/index.js

This file was deleted.

37 changes: 37 additions & 0 deletions src/componentes/Globais/Ambientes/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import React, {useCallback, useEffect, useState} from "react";
import {getAmbientes} from "../../../services/Core.service";


interface Ambiente {
id: number;
prefixo: string;
nome: string;
}

export const Ambientes: React.FC = () => {

const url: string = window.location.href
const prefixo_url: string = url.split('/')[2].split('.', 1)[0]

const [ambiente, setAmbiente] = useState<string>('')

const carregaAmbiente = useCallback(async () => {
const ambientes: Ambiente[] = await getAmbientes();
if (ambientes && ambientes.length > 0) {
const ambienteEncontrado: Ambiente|undefined = ambientes.find(prefixo => prefixo.prefixo === prefixo_url);
if (ambienteEncontrado) {
setAmbiente(ambienteEncontrado.nome);
} else {
setAmbiente('Local');
}
}
}, [prefixo_url])

useEffect(()=>{
carregaAmbiente().then()
}, [carregaAmbiente])

return (
<span>{`${ambiente}`}</span>
)
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
import React, {useCallback, useEffect, useState} from "react";

export const AmbientesApi = () =>{
export const AmbientesApi: React.FC = () => {

let url = window.location.href
let prefixo_url = url.split('/')[2].split('.', 1)[0]
const url: string = window.location.href
const prefixo_url: string = url.split('/')[2].split('.', 1)[0]

const [ambienteApi, setAmbienteApi] = useState('')
const [ambienteApi, setAmbienteApi] = useState<string>('')

const carregaAmbienteApi = useCallback( ()=>{
let API_URL = "API_URL_REPLACE_ME";

if (process.env.REACT_APP_NODE_ENV === "local") {
API_URL = process.env.REACT_APP_API_URL;
const carregaAmbienteApi = useCallback(()=>{
let API_URL: string = "API_URL_REPLACE_ME"
if (process.env.REACT_APP_NODE_ENV === "local"){
API_URL = process.env.REACT_APP_API_URL || "";
}

if (API_URL.split('/')[2].split('.', 1)[0] !== prefixo_url){
setAmbienteApi(API_URL.split('/')[2].split('.', 1)[0])
}

}, [prefixo_url])

useEffect(()=>{
Expand All @@ -29,6 +29,5 @@ export const AmbientesApi = () =>{
<span>{`API: ${ambienteApi}`}</span>
}
</>

)
}
}
8 changes: 3 additions & 5 deletions src/componentes/Globais/ArquivosDeCarga/BotoesTopo.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import React from "react";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faUpload, faDownload} from "@fortawesome/free-solid-svg-icons";
import { RetornaSeTemPermissaoEdicaoPainelParametrizacoes } from "../../sme/Parametrizacoes/RetornaSeTemPermissaoEdicaoPainelParametrizacoes";

export const BotoesTopo = ({setShowModalForm, setStateFormModal, initialStateFormModal, handleClickDownloadModeloArquivoDeCarga}) =>{
const TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES = RetornaSeTemPermissaoEdicaoPainelParametrizacoes()
export const BotoesTopo = ({setShowModalForm, setStateFormModal, initialStateFormModal, handleClickDownloadModeloArquivoDeCarga, temPermissaoEditarCarga}) =>{

return(
<>
Expand All @@ -16,15 +14,15 @@ export const BotoesTopo = ({setShowModalForm, setStateFormModal, initialStateFor
setStateFormModal(initialStateFormModal);
setShowModalForm(true);
}}
disabled={!TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES}
disabled={!temPermissaoEditarCarga()}
>
<FontAwesomeIcon
style={{fontSize: '15px', marginRight: "3px", color:"#fff"}}
icon={faUpload}
/>
Adicionar carga
</button>
<button onClick={()=>handleClickDownloadModeloArquivoDeCarga()} type="submit" className="btn btn-outline-success mt-2 ml-2" disabled={!TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES}>
<button onClick={()=>handleClickDownloadModeloArquivoDeCarga()} type="submit" className="btn btn-outline-success mt-2 ml-2" disabled={!temPermissaoEditarCarga()}>
<FontAwesomeIcon
style={{fontSize: '15px', marginRight: "3px"}}
icon={faDownload}
Expand Down

This file was deleted.

71 changes: 34 additions & 37 deletions src/componentes/Globais/ArquivosDeCarga/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ import {faEdit, faCogs, faDownload, faTrashAlt} from "@fortawesome/free-solid-sv
import {Filtros} from "./Filtros";
import {MenuInterno} from "../MenuInterno";
import ModalFormArquivosDeCarga from "./ModalFormArquivosDeCarga";
import {ModalInfoArquivoDeCargas} from "./ModalInfoArquivoDeCargas";
import {ModalConfirmDeleteArquivoDeCarga} from "./ModalConfirmDeleteArquivoDeCarga";
import { RetornaSeTemPermissaoEdicaoPainelParametrizacoes } from "../../sme/Parametrizacoes/RetornaSeTemPermissaoEdicaoPainelParametrizacoes";
import { RetornaSeTemPermissaoEdicaoGestaoUsuarios } from "../GestaoDeUsuarios/utils/RetornaSeTemPermissaoEdicaoGestaoUsuarios";
import {toastCustom} from "../ToastCustom";

const ArquivosDeCarga = () => {
const TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES = RetornaSeTemPermissaoEdicaoPainelParametrizacoes()
const TEM_PERMISSAO_EDICAO_GESTAO_USUARIOS = RetornaSeTemPermissaoEdicaoGestaoUsuarios()

const url_params = useParams();
const dadosDeOrigem = useMemo(() => {
Expand All @@ -37,6 +39,15 @@ const ArquivosDeCarga = () => {
{label: "Cargas de arquivo", url: 'parametro-arquivos-de-carga', origem:'CARGA_ASSOCIACOES'},
],
}
}else if (url_params.tipo_de_carga === 'CARGA_USUARIOS' && url_params.versao === 'V2'){
obj = {
titulo: 'Usuários',
acesso_permitido: true,
UrlsMenuInterno:[
{label: "Dados dos usuários", url: "gestao-de-usuarios-list"},
{label: "Cargas de arquivo", url: 'parametro-arquivos-de-carga', origem:'CARGA_USUARIOS'},
],
}
}else if (url_params.tipo_de_carga === 'CARGA_USUARIOS'){
obj = {
titulo: 'Usuários',
Expand Down Expand Up @@ -174,9 +185,8 @@ const ArquivosDeCarga = () => {

const [showModalForm, setShowModalForm] = useState(false);
const [stateFormModal, setStateFormModal] = useState(initialStateFormModal);
const [showModalInfoArquivosDeCarga, setShowModalInfoArquivosDeCarga] = useState(false);
const [showModalConfirmDeleteArquivosDeCarga, setShowModalConfirmDeleteArquivosDeCarga] = useState(false);
const [infoModalArquivosDeCarga, setInfoModalArquivosDeCarga] = useState('');


const handleClickEditarArquivos = useCallback(async (rowData) => {
setShowModalForm(true);
Expand Down Expand Up @@ -245,28 +255,28 @@ const ArquivosDeCarga = () => {
<button className="btn-acoes"><span className="btn-acoes-dots">...</span></button>
</span>
<div className="dropdown-menu" aria-labelledby="dropdownMenuButton">
<button onClick={()=>handleClickProcessarArquivoDeCarga(rowData)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES}>
<button onClick={()=>handleClickProcessarArquivoDeCarga(rowData)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!temPermissaoEditarCarga()}>
<FontAwesomeIcon
style={{fontSize: '15px', marginRight: "5px", color: "#00585E"}}
icon={faCogs}
/>
<strong>Processar</strong>
</button>
<button onClick={() => handleClickEditarArquivos(rowData)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES}>
<button onClick={() => handleClickEditarArquivos(rowData)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!temPermissaoEditarCarga()}>
<FontAwesomeIcon
style={{fontSize: '15px', marginRight: "5px", color: "#00585E"}}
icon={faEdit}
/>
<strong>Editar</strong>
</button>
<button onClick={()=>handleClickDownloadArquivoDeCarga(rowData)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES}>
<button onClick={()=>handleClickDownloadArquivoDeCarga(rowData)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!temPermissaoEditarCarga()}>
<FontAwesomeIcon
style={{fontSize: '15px', marginRight: "5px", color: "#00585E"}}
icon={faDownload}
/>
<strong>Baixar</strong>
</button>
<button onClick={()=>handleClickDeleteArquivoDeCarga(rowData.uuid)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES}>
<button onClick={()=>handleClickDeleteArquivoDeCarga(rowData.uuid)} className="btn btn-link dropdown-item fonte-14" type="button" disabled={!temPermissaoEditarCarga()}>
<FontAwesomeIcon
style={{fontSize: '15px', marginRight: "5px", color: "#B40C02"}}
icon={faTrashAlt}
Expand All @@ -291,16 +301,13 @@ const ArquivosDeCarga = () => {
await postCreateArquivoDeCarga(payload);
console.log("Arquivo de carga criado com sucesso");
setShowModalForm(false);
setInfoModalArquivosDeCarga('Arquivo de carga criado com sucesso');
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomSuccess('Arquivo de carga', `Arquivo de carga criado com sucesso`)
await carregaArquivosPeloTipoDeCarga();
}catch (e) {
console.log("Erro ao criar Arquivo de carga ", e.response.data);
setInfoModalArquivosDeCarga('Erro ao criar Arquivo de carga');
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomError('Arquivo de carga', `Erro ao criar arquivo de carga.`)
if (e.response.data.identificador[0]){
setInfoModalArquivosDeCarga(e.response.data.identificador[0]);
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomError('Arquivo de carga', `${e.response.data.identificador[0]}`)
}
}
}else if (values.operacao === 'edit'){
Expand All @@ -321,16 +328,13 @@ const ArquivosDeCarga = () => {
await patchAlterarArquivoDeCarga(values.uuid, payload);
console.log("Arquivo de carga alterado com sucesso");
setShowModalForm(false);
setInfoModalArquivosDeCarga('Arquivo de carga alterado com sucesso');
toastCustom.ToastCustomSuccess('Arquivo de carga', `Arquivo de carga alterado com sucesso`)
await carregaArquivosPeloTipoDeCarga();
setShowModalInfoArquivosDeCarga(true);
}catch (e) {
console.log("Erro ao alterar Arquivo de carga ", e.response.data);
setInfoModalArquivosDeCarga('Erro ao criar Arquivo de carga');
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomError('Arquivo de carga', `Erro ao alterar arquivo de carga.`)
if (e.response.data.identificador[0]){
setInfoModalArquivosDeCarga(e.response.data.identificador[0]);
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomError('Arquivo de carga', `${e.response.data.identificador[0]}`)
}
}
}
Expand All @@ -342,28 +346,30 @@ const ArquivosDeCarga = () => {
console.log("Arquivo de Carga excluído com sucesso");
setShowModalConfirmDeleteArquivosDeCarga(false);
setShowModalForm(false);
setInfoModalArquivosDeCarga('Arquivo de Carga excluído com sucesso');
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomSuccess('Arquivo de carga', `Arquivo de Carga excluído com sucesso`)
await carregaArquivosPeloTipoDeCarga();
}catch (e) {
console.log("Erro ao excluir Arquivo de carga ", e.response.data);
setInfoModalArquivosDeCarga('Erro ao excluir Arquivo de carga');
setShowModalInfoArquivosDeCarga(true);
toastCustom.ToastCustomError('Arquivo de carga', `Erro ao excluir Arquivo de carga`)
}
};

const handleCloseFormModal = () => {
setShowModalForm(false)
};

const handleCloseModalInfoArquivosDeCarga = useCallback(() => {
setShowModalInfoArquivosDeCarga(false);
}, []);

const handleCloseConfirmDeleteArquivoDeCarga = useCallback(()=>{
setShowModalConfirmDeleteArquivosDeCarga(false)
}, []);

const temPermissaoEditarCarga = () => {
if(url_params && url_params.versao === 'V2'){
return TEM_PERMISSAO_EDICAO_GESTAO_USUARIOS
}

return TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES;
}

return (
<PaginasContainer>
<>
Expand All @@ -385,6 +391,7 @@ const ArquivosDeCarga = () => {
setStateFormModal={setStateFormModal}
initialStateFormModal={initialStateFormModal}
handleClickDownloadModeloArquivoDeCarga={handleClickDownloadModeloArquivoDeCarga}
temPermissaoEditarCarga={temPermissaoEditarCarga}
/>
<Filtros
stateFiltros={stateFiltros}
Expand Down Expand Up @@ -416,16 +423,6 @@ const ArquivosDeCarga = () => {
handleSubmitModalForm={handleSubmitModalForm}
/>
</section>
<section>
<ModalInfoArquivoDeCargas
show={showModalInfoArquivosDeCarga}
handleClose={handleCloseModalInfoArquivosDeCarga}
titulo='Arquivos de Carga'
texto={`<p class="mb-0"> ${infoModalArquivosDeCarga}</p>`}
primeiroBotaoTexto="Fechar"
primeiroBotaoCss="success"
/>
</section>
<section>
<ModalConfirmDeleteArquivoDeCarga
show={showModalConfirmDeleteArquivosDeCarga}
Expand Down
13 changes: 10 additions & 3 deletions src/componentes/Globais/ExtracaoDados/Cards.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,21 +52,21 @@ export const cards = [
descricao: 'Arquivo com informações das atas de reuniões relativas às prestações de contas, por período e unidade.',
tags: ['CSV'],
endpoint: '/api/exportacoes-dados/atas-prestacoes-contas/',
visao: ['SME']
visao: ['SME', 'DRE']
},
{
titulo: 'Despesas: Classificação das despesas',
descricao: 'Arquivo com informações de despesas (item de despesa classificado) por conta, período e unidade. ',
tags: ['CSV'],
endpoint: '/api/exportacoes-dados/rateios/',
visao: ['SME']
visao: ['DRE', 'SME']
},
{
titulo: 'Prestações de contas: Demonstrativos',
descricao: 'Arquivo com informações dos demonstrativos financeiros das prestações de contas por conta, período e unidade. ',
tags: ['CSV'],
endpoint: '/api/exportacoes-dados/demonstrativos-financeiros/',
visao: ['SME']
visao: ['DRE','SME']
},
{
titulo: 'Despesas: Documentos',
Expand Down Expand Up @@ -102,5 +102,12 @@ export const cards = [
tags: ['CSV'],
endpoint: '/api/exportacoes-dados/processos-sei-regularidade/',
visao: ['SME']
},
{
titulo: 'Processos SEI de prestação de contas',
descricao: 'Arquivo com dados dos processos SEI de prestação de contas das associações.',
tags: ['CSV'],
endpoint: '/api/exportacoes-dados/processos-sei-prestacao-contas/',
visao: ['DRE','SME']
},
]
Loading

0 comments on commit 63da367

Please sign in to comment.