Skip to content

Commit

Permalink
Merge branch 'release/0.5.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
alcfernandes committed Jul 8, 2020
2 parents b2a19db + ff86aac commit fd3f72d
Show file tree
Hide file tree
Showing 54 changed files with 3,092 additions and 974 deletions.
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,31 @@ Front da aplicação _SIG.Escola_ da Secretaria de Educação da cidade de São

License: MIT

Versão: 0.4.0
Versão: 0.5.0

## Release Notes

### 0.5.0 - 07/07/2020 - Entregas da Sprint 6
- Confirmação de repasses na entrada de créditos agora considera a classificação da receita em capital ou custeio;
- Lançamento de saldos reprogramados (implantação de saldos);
- Cadastramento de todos os cargos da Associação;
- Cadastramento de dados das contas da Associação;
- Verificação de duplicidade no lançamento de uma despesa;
- CNPJ/CPF do fornecedor agora é brigatório no lançamento de uma despesa;
- Períodos futuros não são mais exibidos no painel de ações;
- Implementadas buscas por data e fornecedor na consulta de despesas;
- Implementada busca por data na consulta de créditos;
- Parametrização por tipo de documento para aceitar apenas dígitos no lançamento de despesas;
- Exibição de "Carregando" nos módulos de despesas, prestações de contas e dados da associação;
- Implementado botão para limpar filtros na consulta de créditos;
- Implementado botão para limpar filtros na consulta de despesas;
- O número do processo de incorporação recebeu uma máscara 0000.0000/0000000-0;
- Criado campo para detalhamento de créditos parametrizavel por tipo de crédito;
- O campo de observação da prestação de contas agora é vinculado à ação da associação;
- Exibição de valores de créditos futuros na ata da prestação de contas;
- Exibição do nome da escola abaixo do usuário em vez do nome da associação;
- Várias melhorias visuais no front (Ex: cor do logo, icones do menu, etc.);

### 0.4.0 - 16/06/2020 - Entregas da Sprint 5

- Geração do documento Relação de Bens na prestação de contas
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ptrf",
"version": "0.4.0",
"version": "0.5.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.27",
Expand All @@ -10,6 +10,7 @@
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"@trendmicro/react-sidenav": "^0.5.0",
"array-find-duplicates": "^2.0.1",
"axios": "^0.19.2",
"date-fns": "^2.11.0",
"formik": "^2.1.4",
Expand All @@ -21,7 +22,7 @@
"primeicons": "^2.0.0",
"primereact": "^4.1.2",
"react": "^16.13.1",
"react-bootstrap": "^1.0.0",
"react-bootstrap": "1.0.1",
"react-currency-input": "^1.3.6",
"react-datepicker": "^2.14.1",
"react-dom": "^16.13.1",
Expand Down
Binary file added src/assets/img/logo-ptrf-verde.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 39 additions & 16 deletions src/componentes/Associacao/DadosDaAssociacao/index.js
Original file line number Diff line number Diff line change
@@ -1,80 +1,103 @@
import React, {useEffect, useState} from "react";
import {getAssociacao, alterarAssociacao} from "../../../services/Associacao.service";
import {CancelarModalAssociacao, SalvarModalAssociacao} from "../../../utils/Modais";
import {MenuInterno} from "../../MenuInterno";
import "../associacao.scss"
import Loading from "../../../utils/Loading";
import {UrlsMenuInterno} from "../UrlsMenuInterno";

export const DadosDaAsssociacao = () => {

const [stateAssociacao, setStateAssociacao] = useState(undefined);
const [showModalReceitasCancelar, setShowModalReceitasCancelar] = useState(false);
const [showModalReceitasSalvar, setShowModalReceitasSalvar] = useState(false);
const [loading, setLoading] = useState(true);

useEffect(()=> {
buscaAssociacao();
}, [])
setLoading(false)
}, []);

const buscaAssociacao = async () => {
const associacao = await getAssociacao();
setStateAssociacao(associacao)
}
};

const handleSubmit = async (event) => {
setLoading(true);
event.preventDefault();
const payload = {
"nome": stateAssociacao.nome,
"presidente_associacao_nome": stateAssociacao.presidente_associacao_nome,
"presidente_associacao_rf": "",
"presidente_conselho_fiscal_nome": stateAssociacao.presidente_conselho_fiscal_nome,
"presidente_conselho_fiscal_rf": ""
}
};

try {
const response = await alterarAssociacao(payload);
if (response.status === 200) {
console.log("Operação realizada com sucesso!");
onShowModalSalvar()
} else {
console.log(response)
console.log(response);
return
}
} catch (error) {
console.log(error)
console.log(error);
return
}
}

setLoading(false)
};

const handleChange = (name, value) => {
setStateAssociacao({
...stateAssociacao,
[name]: value
});
}
};

const onHandleClose = () => {
setShowModalReceitasCancelar(false);
}
};

const onCancelarAssociacaoTrue = () => {
setShowModalReceitasCancelar(false);
buscaAssociacao();
}
};

const onShowModalCancelar = () => {
setShowModalReceitasCancelar(true);
}
};

const onSalvarAssociacaoTrue = () => {
setShowModalReceitasSalvar(false);
}
};

const onShowModalSalvar = () => {
setShowModalReceitasSalvar(true);
}
};

return (
<>
{stateAssociacao !== undefined ? (
{loading ? (
<Loading
corGrafico="black"
corFonte="dark"
marginTop="0"
marginBottom="0"
/>
) :
stateAssociacao !== undefined ? (

<div className="row">
<div className="col-12">

<MenuInterno
caminhos_menu_interno = {UrlsMenuInterno}
/>

<form onSubmit={handleSubmit}>
<div className="form-row">
<div className="form-group col-md-6">
Expand All @@ -100,7 +123,7 @@ export const DadosDaAsssociacao = () => {
</div>
</div>

<div className="form-row">
{/*<div className="form-row">
<div className="form-group col-md-6">
<label htmlFor="presidente_associacao_nome"><strong>Presidente da Associação</strong></label>
<input value={stateAssociacao.presidente_associacao_nome ? stateAssociacao.presidente_associacao_nome : ""} onChange={(e)=>handleChange(e.target.name, e.target.value)} name="presidente_associacao_nome" id="presidente_associacao_nome" type="text" className="form-control" />
Expand All @@ -110,7 +133,7 @@ export const DadosDaAsssociacao = () => {
<label htmlFor="presidente_conselho_fiscal_nome"><strong>Presidente do Conselho Fiscal</strong></label>
<input value={stateAssociacao.presidente_conselho_fiscal_nome} onChange={(e)=>handleChange(e.target.name, e.target.value)} name="presidente_conselho_fiscal_nome" id="presidente_conselho_fiscal_nome" type="text" className="form-control" />
</div>
</div>
</div>*/}
<div className="d-flex justify-content-end pb-3">
<button onClick={onShowModalCancelar} type="reset" className="btn btn btn-outline-success mt-2">Cancelar </button>
<button type="submit" className="btn btn-success mt-2 ml-2">Salvar</button>
Expand All @@ -125,4 +148,4 @@ export const DadosDaAsssociacao = () => {
</section>
</>
);
}
};
132 changes: 132 additions & 0 deletions src/componentes/Associacao/DadosDasContas/FormDadosDasContas/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
import React from "react";
import {Formik, FieldArray} from "formik";

export const FormDadosDasContas = ({intialValues, setaCampoReadonly, validateFormDadosDasContas, onSubmit}) => {
const valores_inciais = {
contas: intialValues
};
return (
<>
<Formik
initialValues={valores_inciais}
validate={validateFormDadosDasContas}
enableReinitialize={true}
validateOnBlur={true}
onSubmit={onSubmit}
>
{props => {
const {
values,
} = props;

return (
<form onSubmit={props.handleSubmit}>
<FieldArray
name="contas"
render={() => (
<>
{values.contas && values.contas.length > 0 && values.contas.map((conta, index) => {
return (
<div className="row" key={index}>
<div className={`col-12 mt-${index === 0 ? "2" : 4} mb-4 ml-0`}>
<p className="mb-0">
<strong>Conta {index + 1}</strong>
</p>
<hr className="mt-0 mb-1"/>
</div>
<div className='col-12 col-md-3'>
<div className="form-group">
<label htmlFor="banco_nome">Banco</label>
<input
readOnly={setaCampoReadonly(conta.tipo_conta.nome)}
name={`contas[${index}].banco_nome`}
value={conta.banco_nome}
onChange={(e) => {
props.handleChange(e);
}
}
type="text"
className="form-control"
/>
{props.errors.banco_nome && <span className="text-danger mt-1">{props.errors.banco_nome}</span>}
</div>
</div>

<div className='col-12 col-md-3'>
<div className="form-group">
<label htmlFor="tipo_conta">Tipo de Conta</label>
<input
readOnly={true}
name={`contas[${index}].tipo_conta`}
value={conta.tipo_conta && conta.tipo_conta.nome ? conta.tipo_conta.nome : ""}
onChange={(e) => {
props.handleChange(e);
}
}
type="text"
className="form-control"
/>
{props.errors.tipo_conta && <span className="text-danger mt-1">{props.errors.tipo_conta}</span>}
</div>
</div>

<div className='col-12 col-md-3'>
<div className="form-group">
<label htmlFor="agencia">Agência {setaCampoReadonly(conta.tipo_conta.nome) ? 'do programa' : ""}</label>
<input
readOnly={setaCampoReadonly(conta.tipo_conta.nome)}
name={`contas[${index}].agencia`}
value={conta.agencia}
onChange={(e) => {
props.handleChange(e);
}
}
type="text"
className="form-control"
/>
{props.errors.agencia && <span className="text-danger mt-1">{props.errors.agencia}</span>}
</div>
</div>

<div className='col-12 col-md-3'>
<div className="form-group">
<label htmlFor="numero_conta">Nº da conta com o dígito {setaCampoReadonly(conta.tipo_conta.nome) ? 'do programa' : ""}</label>
<input
readOnly={setaCampoReadonly(conta.tipo_conta.nome)}
name={`contas[${index}].numero_conta`}
value={conta.numero_conta}
onChange={(e) => {
props.handleChange(e);
}
}
type="text"
className="form-control"
/>
{props.errors.numero_conta && <span className="text-danger mt-1">{props.errors.numero_conta}</span>}
</div>
</div>
</div>
)
})}
{props.errors.campos_obrigatorios &&
<div className="col-12 mt-2">
<span className="text-danger"> {props.errors.campos_obrigatorios}</span>
</div>
}
</>
)}
>
</FieldArray>

<div className="d-flex justify-content-end pb-3 mt-3">
<button onClick={props.handleReset} type="button" className="btn btn btn-outline-success mt-2 mr-2">Cancelar</button>
<button type="submit" className="btn btn-success mt-2">Salvar</button>
</div>

</form>
)
}}
</Formik>
</>
)
};
Loading

0 comments on commit fd3f72d

Please sign in to comment.