diff --git a/package.json b/package.json index e4f919d24..2b1f8accf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ptrf", - "version": "8.16.0", + "version": "8.16.1", "private": true, "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.2.1", diff --git a/src/componentes/escolas/Despesas/CadastroDeDespesas/CadastroSaidaForm.js b/src/componentes/escolas/Despesas/CadastroDeDespesas/CadastroSaidaForm.js index 131c90fb6..43cbfb1ab 100644 --- a/src/componentes/escolas/Despesas/CadastroDeDespesas/CadastroSaidaForm.js +++ b/src/componentes/escolas/Despesas/CadastroDeDespesas/CadastroSaidaForm.js @@ -1,5 +1,6 @@ import React, {useCallback, useContext, useEffect, useState} from "react"; import {Formik} from "formik"; +import {useDispatch} from "react-redux"; import { YupSignupSchemaCadastroDespesaSaida, validaPayloadDespesas, @@ -25,13 +26,14 @@ import CurrencyInput from "react-currency-input"; import HTTP_STATUS from "http-status-codes"; import {getReceita} from '../../../../services/escolas/Receitas.service'; import {ASSOCIACAO_UUID} from "../../../../services/auth.service"; -import {ModalValorReceitaDespesaDiferente} from "./ModalValorReceitaDespesaDiferente"; import {ModalDeletarDespesa} from "./ModalDeletarDespesa"; import {visoesService} from "../../../../services/visoes.service"; import { apenasNumero } from "../../../../utils/ValidacoesAdicionaisFormularios"; +import { ModalConfirm } from "../../../Globais/Modal/ModalConfirm"; export const CadastroSaidaForm = () => { + const dispatch = useDispatch(); const aux = metodosAuxiliares; let {uuid_receita, uuid_despesa} = useParams(); @@ -81,7 +83,6 @@ export const CadastroSaidaForm = () => { const [loading, setLoading] = useState(true); const [receita, setReceita] = useState(true); const [initalValues, setInitialValues] = useState(initial) - const [showModalValorReceitaDespesaDiferente, setShowModalValorReceitaDespesaDiferente] = useState(false) const [showModalDeletarDespesa, setShowModalDeletarDespesa] = useState(false) @@ -103,7 +104,6 @@ export const CadastroSaidaForm = () => { if (uuid_despesa){ try { await patchAtrelarSaidoDoRecurso(uuid_receita, uuid_despesa) - console.log("Despesa atrelada com sucesso!") }catch (e){ console.log("Erro ao atrelar despesa ", e) } @@ -219,17 +219,25 @@ export const CadastroSaidaForm = () => { aux.getPath(); }; - const serviceVerificacoes = useCallback(async (e, values)=>{ - let valor_receita = parseFloat(receita.valor) - let valor_despesa = trataNumericos(values.valor_original) - if (valor_receita !== valor_despesa){ - e.preventDefault(); - setShowModalValorReceitaDespesaDiferente(true) + const handleValidation = (values) => { + const isMismatchedValues = parseFloat(receita.valor) !== trataNumericos(values.valor_original); + + if (isMismatchedValues) { + ModalConfirm({ + dispatch, + title: 'Valores distintos', + message: 'Os valores cadastrados do crédito de Recurso Externo e de sua saída são distintos, deseja salvar assim mesmo?', + cancelText: 'Não', + confirmText: 'Sim', + dataQa: 'modal-confirmar-salvar-valores-cadastro-saida-form', + onConfirm: () => onSubmit(values), + }); + } else { + onSubmit(values); } - }, [receita]) + } const onSubmit = async (values) => { - setFormErrors(validacoesPersonalizadas(values)); let erros_personalizados = validacoesPersonalizadas(values) @@ -314,7 +322,7 @@ export const CadastroSaidaForm = () => { validateOnChange={false} validateOnBlur={false} enableReinitialize={true} - onSubmit={onSubmit} + onSubmit={handleValidation} > {props => { const { @@ -566,25 +574,12 @@ export const CadastroSaidaForm = () => { } -
- setShowModalValorReceitaDespesaDiferente(false)} - onSalvarValoresDiferentes={() => { - setShowModalValorReceitaDespesaDiferente(false) - props.handleSubmit() - }} - titulo="Valores distintos" - texto="

Os valores cadastrados do crédito de Recurso Externo e de sua saída são distintos, deseja salvar assim mesmo?

" - /> -
{ - return ( - - ) -}; \ No newline at end of file diff --git a/src/utils/ValidacoesAdicionaisFormularios.js b/src/utils/ValidacoesAdicionaisFormularios.js index 887204015..8031bc28d 100644 --- a/src/utils/ValidacoesAdicionaisFormularios.js +++ b/src/utils/ValidacoesAdicionaisFormularios.js @@ -338,34 +338,36 @@ export const validaPayloadDespesas = (values, despesasTabelas=null, parametroLoc values.data_transacao = null } - // validacoes da despesa imposto - values.despesas_impostos.map((despesa_imposto) => { - if(despesa_imposto.data_transacao !== "" && despesa_imposto.data_transacao !== null){ - despesa_imposto.data_transacao = moment(despesa_imposto.data_transacao).format("YYYY-MM-DD"); - } - else{ - despesa_imposto.data_transacao = null; - } + if (values.despesas_impostos){ + // validacoes da despesa imposto + values.despesas_impostos.map((despesa_imposto) => { + if(despesa_imposto.data_transacao !== "" && despesa_imposto.data_transacao !== null){ + despesa_imposto.data_transacao = moment(despesa_imposto.data_transacao).format("YYYY-MM-DD"); + } + else{ + despesa_imposto.data_transacao = null; + } - if(despesa_imposto.rateios.length >= 0){ - despesa_imposto.rateios.map((rateio) => { - // o valor total e original da despesa imposto, devem ser o mesmo que o dos rateios - despesa_imposto.valor_total = trataNumericos(rateio.valor_rateio); - despesa_imposto.valor_original = trataNumericos(rateio.valor_original); - - rateio.quantidade_itens_capital = convertToNumber(rateio.quantidade_itens_capital); - rateio.valor_item_capital = trataNumericos(rateio.valor_item_capital); - rateio.valor_rateio = round(trataNumericos(rateio.valor_rateio), 2); - rateio.valor_original = round(trataNumericos(rateio.valor_original), 2); - }); - - if(parametroLocation){ - if(metodosAuxiliares.origemAnaliseLancamento(parametroLocation)){ - metodosAuxiliares.mantemConciliacaoAtualImposto(despesa_imposto); + if(despesa_imposto.rateios.length >= 0){ + despesa_imposto.rateios.map((rateio) => { + // o valor total e original da despesa imposto, devem ser o mesmo que o dos rateios + despesa_imposto.valor_total = trataNumericos(rateio.valor_rateio); + despesa_imposto.valor_original = trataNumericos(rateio.valor_original); + + rateio.quantidade_itens_capital = convertToNumber(rateio.quantidade_itens_capital); + rateio.valor_item_capital = trataNumericos(rateio.valor_item_capital); + rateio.valor_rateio = round(trataNumericos(rateio.valor_rateio), 2); + rateio.valor_original = round(trataNumericos(rateio.valor_original), 2); + }); + + if(parametroLocation){ + if(metodosAuxiliares.origemAnaliseLancamento(parametroLocation)){ + metodosAuxiliares.mantemConciliacaoAtualImposto(despesa_imposto); + } } - } - } - }); + } + }); + } values.rateios.map((rateio) => {