Skip to content

Commit

Permalink
Merge pull request #2417 from prefeiturasp/master
Browse files Browse the repository at this point in the history
Release 9.5.0
  • Loading branch information
Lucas-Santos-Rocha-dev authored May 20, 2024
2 parents e49b1e5 + af66dda commit 2bda4ec
Show file tree
Hide file tree
Showing 34 changed files with 2,640 additions and 1,472 deletions.
2,481 changes: 1,049 additions & 1,432 deletions package-lock.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ptrf",
"version": "9.4.0",
"version": "9.5.0",
"private": true,
"dependencies": {
"@dnd-kit/core": "^6.1.0",
Expand All @@ -10,8 +10,8 @@
"@fortawesome/react-fontawesome": "^0.2.0",
"@sentry/browser": "^6.19.7",
"@sentry/react": "^6.19.7",
"@tanstack/react-query": "^4.29.19",
"@tanstack/react-query-devtools": "^4.29.19",
"@tanstack/react-query": "^4.29.25",
"@tanstack/react-query-devtools": "^4.29.25",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
Expand All @@ -24,7 +24,7 @@
"antd": "^5.16.0",
"array-find-duplicates": "^2.0.1",
"array-move": "^3.0.1",
"axios": "^0.22.0",
"axios": "^0.27.2",
"date-fns": "^2.11.1",
"formik": "^2.1.7",
"http-status-codes": "^1.4.0",
Expand Down
11 changes: 11 additions & 0 deletions src/assets/img/icone-parametro-repasses.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/componentes/Globais/ArquivosDeCarga/Filtros.js
Original file line number Diff line number Diff line change
@@ -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>
Expand All @@ -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">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import {ModalFormBodyText} from "../ModalBootstrap";
import {Formik} from "formik";
import {YupSignupSchemaArquivosDeCarga} from "./YupSignupSchemaArquivosDeCarga";

const ModalFormArquivosDeCarga = ({show, stateFormModal, handleClose, handleSubmitModalForm, tabelaArquivos, statusTemplate}) => {
const ModalFormArquivosDeCarga = ({show, stateFormModal, handleClose, handleSubmitModalForm, tabelaArquivos, statusTemplate, dadosDeOrigem, periodos, verificaSeArquivoRequerPeriodo}) => {
const bodyTextarea = () => {
return (
<>
<Formik
initialValues={stateFormModal}
validationSchema={YupSignupSchemaArquivosDeCarga}
validationSchema={YupSignupSchemaArquivosDeCarga(verificaSeArquivoRequerPeriodo)}
validateOnBlur={true}
enableReinitialize={true}
onSubmit={handleSubmitModalForm}
Expand Down Expand Up @@ -59,7 +59,25 @@ const ModalFormArquivosDeCarga = ({show, stateFormModal, handleClose, handleSubm
</div>
</div>
</div>
<div className='row'>
{verificaSeArquivoRequerPeriodo() && <div className='row'>
<div className='col'>
<label htmlFor="tipo_periodo">Período *</label>
<select
value={props.values.periodo && props.values.periodo ? props.values.periodo : ""}
onChange={props.handleChange}
name="periodo"
id="periodo"
className="form-control"
>
<option value=''>Selecione o período</option>
{periodos && periodos.length > 0 && periodos.map((periodo) =>
<option key={periodo.uuid} value={periodo.uuid}>{periodo.referencia}</option>
)}
</select>
{props.errors && props.errors.periodo && props.errors.periodo && <span className="span_erro text-danger mt-1"> {props.errors.periodo} </span>}
</div>
</div>}
<div className='row mt-3'>
<div className='col'>
<label htmlFor="tipo_delimitador">Tipo delimitador</label>
<select
Expand Down Expand Up @@ -137,7 +155,7 @@ const ModalFormArquivosDeCarga = ({show, stateFormModal, handleClose, handleSubm
return (
<ModalFormBodyText
show={show}
titulo={stateFormModal && stateFormModal && stateFormModal.operacao === 'edit' ? 'Editar associação' : 'Adicionar associação'}
titulo={stateFormModal && stateFormModal && stateFormModal.operacao === 'edit' ? `Editar ${dadosDeOrigem.titulo}` : `Adicionar ${dadosDeOrigem.titulo}`}
onHide={handleClose}
size='lg'
bodyText={bodyTextarea()}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as yup from "yup";

export const YupSignupSchemaArquivosDeCarga = yup.object().shape({
export const YupSignupSchemaArquivosDeCarga = (verificaSeArquivoRequerPeriodo) => {
return yup.object().shape({
identificador: yup.string().required("Identificador é obrigatório"),
valida_conteudo: yup.boolean(),
conteudo: yup.mixed()
Expand All @@ -23,5 +24,11 @@ export const YupSignupSchemaArquivosDeCarga = yup.object().shape({
'text/tab-separated-values'.includes(value.type)
)
)
}),
periodo: yup.string().when('valida_conteudo', {
is: verificaSeArquivoRequerPeriodo,
then: yup.string().required('Período é obrigatório'),
otherwise: yup.string()
})
});
}
62 changes: 61 additions & 1 deletion src/componentes/Globais/ArquivosDeCarga/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {ModalConfirmDeleteArquivoDeCarga} from "./ModalConfirmDeleteArquivoDeCar
import { RetornaSeTemPermissaoEdicaoPainelParametrizacoes } from "../../sme/Parametrizacoes/RetornaSeTemPermissaoEdicaoPainelParametrizacoes";
import { RetornaSeTemPermissaoEdicaoGestaoUsuarios } from "../GestaoDeUsuarios/utils/RetornaSeTemPermissaoEdicaoGestaoUsuarios";
import {toastCustom} from "../ToastCustom";
import { getPeriodos } from "../../../services/dres/Dashboard.service";

const ArquivosDeCarga = () => {
const TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES = RetornaSeTemPermissaoEdicaoPainelParametrizacoes()
Expand Down Expand Up @@ -57,6 +58,35 @@ 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'},
],
}
}else if (url_params.tipo_de_carga === 'REPASSE_PREVISTO') {
obj = {
titulo: 'Repasses',
acesso_permitido: true,
UrlsMenuInterno:[
{label: "Repasses", url: "parametro-repasse"},
{label: "Cargas de repasses previstos", url: "parametro-arquivos-de-carga", origem:'REPASSE_PREVISTO'},
{label: "Cargas de repasses realizados", url: "parametro-arquivos-de-carga", origem:'REPASSE_REALIZADO'},
],
}
}else if (url_params.tipo_de_carga === 'REPASSE_REALIZADO') {
obj = {
titulo: 'Repasses',
acesso_permitido: true,
UrlsMenuInterno:[
{label: "Repasses", url: "parametro-repasse"},
{label: "Cargas de repasses previstos", url: "parametro-arquivos-de-carga", origem:'REPASSE_PREVISTO'},
{label: "Cargas de repasses realizados", url: "parametro-arquivos-de-carga", origem:'REPASSE_REALIZADO'},
],
}
}
return obj
}, [url_params]);
Expand Down Expand Up @@ -204,6 +234,7 @@ const ArquivosDeCarga = () => {
id: rowData.id,
log: rowData.log,
operacao: 'edit',
periodo: rowData.periodo
}
)
}, [stateFormModal]);
Expand Down Expand Up @@ -288,6 +319,10 @@ const ArquivosDeCarga = () => {
)
}, [handleClickDeleteArquivoDeCarga, handleClickDownloadArquivoDeCarga, handleClickEditarArquivos, handleClickProcessarArquivoDeCarga]);

const verificaSeArquivoRequerPeriodo = () => {
return tabelaArquivos.tipos_cargas.find(tipo => tipo.id === url_params.tipo_de_carga)?.requer_periodo;
}

const handleSubmitModalForm = useCallback(async (values) => {
if (values.operacao === 'create'){
try {
Expand All @@ -296,8 +331,11 @@ const ArquivosDeCarga = () => {
'tipo_carga': url_params.tipo_de_carga,
'tipo_delimitador': values.tipo_delimitador,
'status': 'PENDENTE',
'conteudo': values.conteudo
'conteudo': values.conteudo,
};
if(url_params.tipo_de_carga === 'REPASSE_PREVISTO') {
payload.periodo = values.periodo;
}
await postCreateArquivoDeCarga(payload);
console.log("Arquivo de carga criado com sucesso");
setShowModalForm(false);
Expand All @@ -324,6 +362,9 @@ const ArquivosDeCarga = () => {
'tipo_delimitador': values.tipo_delimitador,
};
}
if(verificaSeArquivoRequerPeriodo()) {
payload.periodo = values.periodo;
};
try {
await patchAlterarArquivoDeCarga(values.uuid, payload);
console.log("Arquivo de carga alterado com sucesso");
Expand Down Expand Up @@ -370,6 +411,21 @@ const ArquivosDeCarga = () => {
return TEM_PERMISSAO_EDICAO_PAINEL_PARAMETRIZACOES;
}

const [periodos, setPeriodos] = useState([]);

const carregaPeriodos = async () => {
try {
let response = await getPeriodos();
setPeriodos(response);
} catch (error) {
console.log("Erro ao tentar resgatar períodos: ", error)
}
}

useEffect(() => {
carregaPeriodos();
}, []);

return (
<PaginasContainer>
<>
Expand Down Expand Up @@ -399,6 +455,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
Expand All @@ -421,6 +478,9 @@ const ArquivosDeCarga = () => {
statusTemplate={statusTemplate}
handleClose={handleCloseFormModal}
handleSubmitModalForm={handleSubmitModalForm}
dadosDeOrigem={dadosDeOrigem}
periodos={periodos}
verificaSeArquivoRequerPeriodo={verificaSeArquivoRequerPeriodo}
/>
</section>
<section>
Expand Down
Loading

0 comments on commit 2bda4ec

Please sign in to comment.