Skip to content

Commit

Permalink
Merge branch 'release/0.4.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
alcfernandes committed Jun 17, 2020
2 parents 1b04cf5 + c5fd646 commit b2a19db
Show file tree
Hide file tree
Showing 39 changed files with 1,699 additions and 276 deletions.
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,26 @@ Front da aplicação _SIG.Escola_ da Secretaria de Educação da cidade de São

License: MIT

Versão: 0.3.0
Versão: 0.4.0

## Release Notes

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

- Geração do documento Relação de Bens na prestação de contas
- Adicionado campo "Nº do cheque" no lançamento de despesas
- Geração da Ata na prestação de contas
- Adicionada a verificação de suficiência de saldo por conta no lançamento de despesas
- Exibição de tabela de valores pendentes no processo de conciliação
- Melhoria na mensagem de validação de consistência de valores no lançamento de despesas
- Seleção de período na prestação de contas não exibe mais períodos futuros
- Lista de especificações de materiais serviços agora é exibida em ordem alfabética
- Agora é possível determinar a ordem que as ações serão exibidas no painel de ações e em outras partes da aplicação
- Adicionado feedback visual (loading) para processos demorados no módulo de receitas
- Agora a conciliação exibe transações não conciliadas mesmo de períodos anteriores
- 🐞 Correção de erros


### 0.3.0 - 28/05/2020 - Entregas da Sprint 4

- Exibição de referência e status do período no painel de ações
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ptrf",
"version": "0.3.0",
"version": "0.4.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.27",
Expand All @@ -17,6 +17,7 @@
"jwt-decode": "^2.2.0",
"moment": "^2.24.0",
"node-sass": "^4.13.1",
"numero-por-extenso": "^1.0.8",
"primeicons": "^2.0.0",
"primereact": "^4.1.2",
"react": "^16.13.1",
Expand Down
2 changes: 1 addition & 1 deletion src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const App = () => {
<section role="main" id="main" className="row">
{pathName === '/login' ? (
<Rotas />
) : pathName === '/detalhe-das-prestacoes' ? (
) : pathName === '/detalhe-das-prestacoes' || pathName === "/visualizacao-da-ata" ? (
<>
<Cabecalho />
<Rotas />
Expand Down
18 changes: 18 additions & 0 deletions src/assets/css/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ body {
#main {
color: $corFonte;

// Fontes

.fonte-10 {
font-size: 10px;
}

.fonte-12 {
font-size: 12px;
}

.fonte-14 {
font-size: 14px;
}

.fonte-16 {
font-size: 16px;
}

.btn-success {
background-color: $corBtnSuccess;
border-color: $corBtnSuccess;
Expand Down
1 change: 1 addition & 0 deletions src/assets/css/variaveis.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ $corBtnSuccess: #00585E;
$mainColor: #00585E;
$whiteColor: #ffffff;
$hoverBackgroundColor: #2B7D83;
$verdeClaro: #29d612;

// Fontes

Expand Down
1 change: 1 addition & 0 deletions src/componentes/Cabecalho/cabecalho.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.cabecalho{
box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
background-color: #fff;
.logo-cabecalho{
width: 100px;
Expand Down
5 changes: 4 additions & 1 deletion src/componentes/DatePickerField/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ registerLocale("pt", pt );


export const DatePickerField = ({ name, about, value, onChange, disabled }) => {

return (
<DatePicker
disabled={disabled}
selected={(value && new Date(moment(value).format('MMMM D, YYYY'))) || null}
//selected={(value && new Date(moment(value).format('MMMM D, YYYY'))) || null}
//selected={(value && new Date(value)) || null}
selected={(value && new Date(moment(value))) || null}
onChange={val => {
onChange(name, val);
}}
Expand Down
183 changes: 109 additions & 74 deletions src/componentes/Despesas/CadastroDeDespesas/CadastroForm.js

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {calculaValorRateio, trataNumericos,} from "../../../utils/ValidacoesAdic
import CurrencyInput from "react-currency-input";

export const CadastroFormCapital = (propriedades) => {
const {formikProps, rateio, index, despesasTabelas, especificaoes_capital, verboHttp, disabled} = propriedades
const {formikProps, rateio, index, despesasTabelas, especificaoes_capital, verboHttp, disabled, errors} = propriedades

return (
<>
Expand Down Expand Up @@ -136,7 +136,7 @@ export const CadastroFormCapital = (propriedades) => {
onChangeEvent={formikProps.handleChange}
disabled={disabled}
/>

{errors.valor_recusos_acoes && <span className="span_erro text-danger mt-1"> A soma dos valores do rateio não está correspondendo ao valor total utilizado com recursos do Programa.</span>}
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {trataNumericos} from "../../../utils/ValidacoesAdicionaisFormularios";

export const CadastroFormCusteio = (propriedades) => {

const {formikProps, rateio, index, despesasTabelas, especificacoes_custeio, verboHttp, disabled} = propriedades
const {formikProps, rateio, index, despesasTabelas, especificacoes_custeio, verboHttp, disabled, errors} = propriedades

return (
<>
Expand Down Expand Up @@ -121,6 +121,7 @@ export const CadastroFormCusteio = (propriedades) => {
onChangeEvent={formikProps.handleChange}
disabled={disabled}
/>
{errors.valor_recusos_acoes && <span className="span_erro text-danger mt-1"> A soma dos valores do rateio não está correspondendo ao valor total utilizado com recursos do Programa.</span>}
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import React from "react";
import "../geracao-da-ata.scss"

export const BoxPrestacaoDeContasPorPeriodo = ({corBoxPrestacaoDeContasPorPeriodo, textoBoxPrestacaoDeContasPorPeriodo, dataBoxPrestacaoDeContasPorPeriodo}) => {

const onClickVisualizarAta = () =>{
window.location.assign('/visualizacao-da-ata')
}

return (
<div className="row mt-5">
<div className="col-12">
<h1 className="titulo-box-prestacao-de-contas-por-periodo">Ata de apresentação da prestação de contas por período</h1>
<div className="col-12">
<div className="row mt-3 border pt-4 pb-4">
<div className="col-12 col-md-8">
<p className='fonte-14 mb-1'><strong>{textoBoxPrestacaoDeContasPorPeriodo}</strong></p>
<p className={`fonte-12 mb-1 status-data-${corBoxPrestacaoDeContasPorPeriodo}`}>{dataBoxPrestacaoDeContasPorPeriodo}</p>
</div>
<div className="col-12 col-md-4 align-self-center">
<button onClick={onClickVisualizarAta} type="button" className="btn btn-success float-right">Visualizar ata</button>
</div>
</div>
</div>
</div>
</div>
)
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import React from "react";
import {TextoDespesas} from "../TextoDespesas";

export const TabelaDinamica = ({infoAta, valorTemplate})=> {
return(
<>
{infoAta.acoes && infoAta.acoes.length > 0 && infoAta.acoes.map((info)=>(
<div key={info.acao_associacao_uuid}>
<p className='titulo-tabela-acoes mt-5'>
{info.acao_associacao_nome}
</p>
<table className="table table-bordered tabela-acoes">
<thead>
<tr className="tr-titulo">
<th scope="col">&nbsp;</th>
<th scope="col">Custeio (R$)</th>
<th scope="col">Capital (R$)</th>
<th scope="col">Total (R$) </th>
</tr>
</thead>
<tbody>
<tr>
<td>Saldo anterior</td>
<td>{valorTemplate(info.saldo_reprogramado_custeio)}</td>
<td>{valorTemplate(info.saldo_reprogramado_capital)}</td>
<td>{valorTemplate(info.saldo_reprogramado)}</td>
</tr>
<tr>
<td>Recebimento</td>
<td>{valorTemplate(info.repasses_no_periodo_custeio)}</td>
<td>{valorTemplate(info.repasses_no_periodo_capital)}</td>
<td>{valorTemplate(info.repasses_no_periodo)}</td>
</tr>
<tr>
<td>Demais créditos (rendimento e outros)</td>
<td>{valorTemplate(info.outras_receitas_no_periodo_custeio)}</td>
<td>{valorTemplate(info.outras_receitas_no_periodo_capital)}</td>
<td>{valorTemplate(info.outras_receitas_no_periodo)}</td>
</tr>
<tr>
<td>Despesas</td>
<td>{valorTemplate(info.despesas_no_periodo_custeio)}</td>
<td>{valorTemplate(info.despesas_no_periodo_capital)}</td>
<td>{valorTemplate(info.despesas_no_periodo)}</td>
</tr>
<tr>
<td>Saldo atual</td>
<td>{valorTemplate(info.saldo_atual_custeio)}</td>
<td>{valorTemplate(info.saldo_atual_capital)}</td>
<td>{valorTemplate(info.saldo_atual_total)}</td>
</tr>
<tr>
<td>Pagamentos a compensar</td>
<td>{valorTemplate(info.despesas_nao_conciliadas_custeio)}</td>
<td>{valorTemplate(info.despesas_nao_conciliadas_capital)}</td>
<td>{valorTemplate(info.despesas_nao_conciliadas)}</td>
</tr>
<tr>
<td>Crédito não demonstrado</td>
<td>{valorTemplate(info.receitas_nao_conciliadas_custeio)}</td>
<td>{valorTemplate(info.receitas_nao_conciliadas_capital)}</td>
<td>{valorTemplate(info.receitas_nao_conciliadas)}</td>
</tr>
</tbody>
</table>
<TextoDespesas
especificaoesDespesaCusteio={info.especificacoes_despesas_custeio}
especificaoesDespesaCapital={info.especificacoes_despesas_capital}
despesasPeriodoCusteio={info.despesas_no_periodo_custeio}
despesasPeriodoCapital={info.despesas_no_periodo_capital}
valorTemplate={valorTemplate}
/>
</div>
))}

</>
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import React from "react";

export const TabelaTotais = ({infoAta, valorTemplate}) => {
return (
<>
{infoAta.totais && Object.entries(infoAta.totais).length > 0 &&
<>
<p className='titulo-tabela-acoes mt-5'>
Totais
</p>
<table className="table table-bordered tabela-totais">
<thead>
<tr className="tr-titulo">
<th scope="col">&nbsp;</th>
<th scope="col">Custeio (R$)</th>
<th scope="col">Capital (R$)</th>
<th scope="col">Total (R$)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Saldo anterior</td>
<td>{valorTemplate(infoAta.totais.saldo_reprogramado_custeio)}</td>
<td>{valorTemplate(infoAta.totais.saldo_reprogramado_capital)}</td>
<td>{valorTemplate(infoAta.totais.saldo_reprogramado)}</td>
</tr>
<tr>
<td>Recebimento</td>
<td>{valorTemplate(infoAta.totais.repasses_no_periodo_custeio)}</td>
<td>{valorTemplate(infoAta.totais.repasses_no_periodo_capital)}</td>
<td>{valorTemplate(infoAta.totais.repasses_no_periodo)}</td>
</tr>
<tr>
<td>Demais créditos (rendimento e outros)</td>
<td>{valorTemplate(infoAta.totais.outras_receitas_no_periodo_custeio)}</td>
<td>{valorTemplate(infoAta.totais.outras_receitas_no_periodo_capital)}</td>
<td>{valorTemplate(infoAta.totais.outras_receitas_no_periodo)}</td>
</tr>
<tr>
<td>Despesas</td>
<td>{valorTemplate(infoAta.totais.despesas_no_periodo_custeio)}</td>
<td>{valorTemplate(infoAta.totais.despesas_no_periodo_capital)}</td>
<td>{valorTemplate(infoAta.totais.despesas_no_periodo)}</td>
</tr>
<tr>
<td>Saldo atual</td>
<td>{valorTemplate(infoAta.totais.saldo_atual_custeio)}</td>
<td>{valorTemplate(infoAta.totais.saldo_atual_capital)}</td>
<td>{valorTemplate(infoAta.totais.saldo_atual_total)}</td>
</tr>
<tr>
<td>Pagamentos a compensar</td>
<td>{valorTemplate(infoAta.totais.despesas_nao_conciliadas_custeio)}</td>
<td>{valorTemplate(infoAta.totais.despesas_nao_conciliadas_capital)}</td>
<td>{valorTemplate(infoAta.totais.despesas_nao_conciliadas)}</td>
</tr>
<tr>
<td>Crédito não demonstrado</td>
<td>{valorTemplate(infoAta.totais.receitas_nao_conciliadas_custeio)}</td>
<td>{valorTemplate(infoAta.totais.receitas_nao_conciliadas_capital)}</td>
<td>{valorTemplate(infoAta.totais.receitas_nao_conciliadas)}</td>
</tr>
</tbody>
</table>
</>
}
</>
)
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import React from "react";

export const TextoDespesas = ({especificaoesDespesaCusteio, especificaoesDespesaCapital, despesasPeriodoCusteio, despesasPeriodoCapital, valorTemplate}) => {

const divideArrayColunas = (array, cols) => {

let indexAtual = 0;

let ret = [];
if (cols == 1 || array.length <= 5) {
ret.push(array);
} else {
let size = Math.ceil(array.length / cols);
for (let i = 0; i < cols; i++) {
let start = i * size;
ret.push(array.slice(start, start + size));
}
}

return ret.map((item, index) => {
return (
<div key={index} className='col-3'>
{item.map((textoDespesa, textoDespesaIndex) => {
indexAtual = indexAtual + 1;
return (
<p key={textoDespesaIndex} className="mb-0">{indexAtual}-{textoDespesa}</p>
)
})}
</div>
);
})
}

return (
<>
{especificaoesDespesaCusteio && especificaoesDespesaCusteio.length > 0 ? (
<div className="mt-3 mb-3">
<p className="texto-despesas-titulo">Despesas de custeio: <span className="texto-despesas-valor">R${valorTemplate(despesasPeriodoCusteio)}</span></p>
<div id='contem' className='row'>
{divideArrayColunas(especificaoesDespesaCusteio, 3)}
</div>
</div>
) :
<p className="texto-despesas-titulo">Despesas de custeio: <span className='font-weight-normal'>Não foram realizadas despesas de Custeio no período.</span></p>
}

{especificaoesDespesaCapital && especificaoesDespesaCapital.length > 0 ? (
<>
<p className="texto-despesas-titulo">Despesas de capital: <span className="texto-despesas-valor">R${valorTemplate(despesasPeriodoCapital)}</span></p>
<div id='contem' className='row'>
{divideArrayColunas(especificaoesDespesaCapital, 3)}
</div>
</>
) :
<p className="texto-despesas-titulo">Despesas de capital: <span className='font-weight-normal'>Não foram realizadas despesas de Capital no período. </span></p>
}
</>
)
}
Loading

0 comments on commit b2a19db

Please sign in to comment.