Skip to content

Commit

Permalink
Merge branch 'release/0.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
alcfernandes committed May 29, 2020
2 parents 230fe59 + 3f67f4a commit 1b04cf5
Show file tree
Hide file tree
Showing 60 changed files with 3,102 additions and 809 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.2.0
Versão: 0.3.0

## Release Notes

### 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
- Alteração automática do status do período na associação
- Exibição de outras receitas no painel de ações
- Navegação entre períodos no painel de ações
- Alerta no lançamento de despesas acima do saldo por ação
- Exibição de totais de despesas em Gastos da Escola
- Categorização de receitas em Custeio e Capital
- Destacar campos incompletos no cadastro de despesa
- Inicio do processo de prestação de contas
- Conciliação de lançamentos na prestação de contas
- Bloqueio de alterações em receitas de períodos fechados
- Bloqueio de alterações em despesas de períodos fechados
- Geração de demonstrativo financeiro

### 0.2.0 - 28/04/2020 - Entregas da Sprint 3

- Confirmação de repasses pela Associação
Expand Down
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": "0.2.0",
"version": "0.3.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.27",
Expand Down
7 changes: 5 additions & 2 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="SME PTRF"
/>
<meta name="description" content="SME PTRF"/>
<meta http-equiv='Cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='Pragma' content='no-cache'>

<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />

<!-- Bootstrap CSS -->
Expand Down
38 changes: 20 additions & 18 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
import React from 'react'
import { useHistory } from 'react-router-dom'
import { Rotas } from './rotas'

import 'primereact/resources/themes/nova-light/theme.css'
import 'primereact/resources/primereact.min.css'
import 'primeicons/primeicons.css'

import './assets/css/styles.scss'
import { Cabecalho } from './componentes/Cabecalho'
import { SidebarLeft } from './componentes/SidebarLeft'

export const App = () => {
const pathName = useHistory().location.pathname

return (
<section role="main" id="main" className="row">
{pathName === '/login' ? (
<Rotas />
) : (
<>
<Cabecalho />
<SidebarLeft />
<Rotas />
</>
)}
</section>
)
const pathName = useHistory().location.pathname
return (
<section role="main" id="main" className="row">
{pathName === '/login' ? (
<Rotas />
) : pathName === '/detalhe-das-prestacoes' ? (
<>
<Cabecalho />
<Rotas />
</>
) :
<>
<Cabecalho />
<SidebarLeft />
<Rotas />
</>
}
</section>
)
}

export default App
export default App
2 changes: 1 addition & 1 deletion src/assets/css/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ body {

/* DataTable PrimeReact */
.p-datatable-thead > tr > th {
text-align: left !important;
text-align: left;
}

.datatable-footer-coad {
Expand Down
3 changes: 3 additions & 0 deletions src/assets/img/icone-nao-conciliado.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/componentes/Associacao/DadosDaAssociacao/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export const DadosDaAsssociacao = () => {

<div className="form-row">
<div className="form-group col-md-6">
<label htmlFor="presidente_associacao_nome"><strong>Presidente da APM</strong></label>
<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" />
</div>

Expand Down
16 changes: 16 additions & 0 deletions src/componentes/Dashborard/BarraDeStatusPeriodoAssociacao.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React from 'react'

export const BarraDeStatusPeriodoAssociacao = ({ statusPeriodoAssociacao, corBarraDeStatusPeriodoAssociacao, textoBarraDeStatusPeriodoAssociacao,
}) => {
return (
statusPeriodoAssociacao !== undefined && (
<div className={`col-12 barra-status-${corBarraDeStatusPeriodoAssociacao}`}
>
<p className="titulo-status pt-1 pb-1 mb-0">
{textoBarraDeStatusPeriodoAssociacao}
</p>
</div>

)
)
}
137 changes: 83 additions & 54 deletions src/componentes/Dashborard/DashboardCard.js
Original file line number Diff line number Diff line change
@@ -1,79 +1,108 @@
import React, {useEffect, useState} from "react";
import "./dashboard.scss"
import "../../paginas/404/pagina-404.scss"
import {MsgImgLadoDireito} from "../Mensagens/MsgImgLadoDireito";
import Img404 from "../../assets/img/img-404.svg"
import {exibeDataPT_BR, exibeDateTimePT_BR, exibeValorFormatadoPT_BR} from "../../utils/ValidacoesAdicionaisFormularios";
import Loading from "../../utils/Loading";
import React from 'react'
import './dashboard.scss'
import '../../paginas/404/pagina-404.scss'
import {MsgImgLadoDireito} from '../Mensagens/MsgImgLadoDireito'
import Img404 from '../../assets/img/img-404.svg'
import {
exibeDataPT_BR,
exibeDateTimePT_BR,
exibeValorFormatadoPT_BR,
} from '../../utils/ValidacoesAdicionaisFormularios'

export const DashboardCard = ({acoesAssociacao}) => {

const [loading, setLoading] = useState(true);

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

return (
<>
{
loading ? (
<Loading
corGrafico="black"
corFonte="dark"
marginTop="0"
marginBottom="0"
/>
) : null
}
{!loading && acoesAssociacao.info_acoes && acoesAssociacao.info_acoes.length > 0 ? (
{acoesAssociacao.info_acoes && acoesAssociacao.info_acoes.length > 0 ? (
<div className="row row-cols-1 row-cols-md-2">
{acoesAssociacao.info_acoes.map((acao, index) =>
{acoesAssociacao.info_acoes.map((acao, index) => (
<div key={index} className="col mb-4 container-dashboard-card">
<div className="card h-100">
<div className="card-header bg-white">
{acao.acao_associacao_nome ? (
<span><strong>{acao.acao_associacao_nome}</strong> </span>
) : null }
{acao.acao_associacao_nome &&
<span><strong>{acao.acao_associacao_nome}</strong>{' '}</span>
}
</div>
<div className="card-body">
<div className='row'>
<div className="row">
<div className="col-12 col-md-5 align-self-center">
<div className="col-12 container-lado-esquerdo pt-1 pb-1">
<p className="pt-1 mb-1" >Custeio: <strong>{exibeValorFormatadoPT_BR(acao.saldo_atual_custeio)}</strong></p>
<p className="pt-1 mb-1">Capital: <strong>{exibeValorFormatadoPT_BR(acao.saldo_atual_capital)}</strong></p>
<p className="pt-1 pb-1 mb-0">Total: <strong>{exibeValorFormatadoPT_BR(acao.saldo_atual_total)}</strong></p>
<p className="pt-1 mb-1">
Custeio:{' '}
<strong>
{exibeValorFormatadoPT_BR(acao.saldo_atual_custeio)}
</strong>
</p>
<p className="pt-1 mb-1">
Capital:{' '}
<strong>
{exibeValorFormatadoPT_BR(acao.saldo_atual_capital)}
</strong>
</p>
<p className="pt-1 pb-1 mb-0">
Total:{' '}
<strong>
{exibeValorFormatadoPT_BR(acao.saldo_atual_total)}
</strong>
</p>
</div>
</div>
<div className="col-12 col-md-7 container-lado-direito align-self-center ">
<p className="pt-1 mb-1" >Saldo reprogramado: <strong>{exibeValorFormatadoPT_BR(acao.saldo_reprogramado)}</strong></p>
<p className="pt-1 mb-1">Repasses no período: <strong>{exibeValorFormatadoPT_BR(acao.repasses_no_periodo)}</strong></p>
<p className="pt-1 pb-1 mb-0">Despesa declarada: <strong>{exibeValorFormatadoPT_BR(acao.despesas_no_periodo)}</strong></p>
{acao.acao_associacao_nome.trim() === "PTRF" ? (
<p className="pt-1 pb-1 mb-0">Próx. repasse a partir de: <strong>{exibeDataPT_BR(acoesAssociacao.data_prevista_repasse)}</strong></p>
) : null }
<p className="pt-1 mb-1">
Saldo reprogramado:{' '}
<strong>
{exibeValorFormatadoPT_BR(acao.saldo_reprogramado)}
</strong>
</p>
<p className="pt-1 mb-1">
Repasses no período:{' '}
<strong>
{exibeValorFormatadoPT_BR(acao.repasses_no_periodo)}
</strong>
</p>
<p className="pt-1 mb-1">
Outras receitas:{' '}
<strong>
{exibeValorFormatadoPT_BR(
acao.outras_receitas_no_periodo
)}
</strong>
</p>
<p className="pt-1 pb-1 mb-0">
Despesa declarada:{' '}
<strong>
{exibeValorFormatadoPT_BR(acao.despesas_no_periodo)}
</strong>
</p>
{acao.acao_associacao_nome.trim() === 'PTRF' ? (
<p className="pt-1 pb-1 mb-0">
Próx. repasse a partir de:{' '}
<strong>
{exibeDataPT_BR(
acoesAssociacao.data_prevista_repasse
)}
</strong>
</p>
) : null}
</div>
</div>
</div>
</div>
</div>
)}
))}
</div>
):
!loading ? (
<>
<MsgImgLadoDireito
texto='A sua escola não possui ações ativas nesse período.'
img={Img404}
/>
</>
) : null
) :

<MsgImgLadoDireito
texto="A sua escola não possui ações ativas nesse período."
img={Img404}
/>
}
<div className="d-flex justify-content-end pb-3 mt-5">
<p className="ultima-atualizacao">Última atualização: {exibeDateTimePT_BR(acoesAssociacao.ultima_atualizacao)}</p>
<p className="ultima-atualizacao">
Última atualização:{' '}
{exibeDateTimePT_BR(acoesAssociacao.ultima_atualizacao)}
</p>
</div>
</>
);
}
)
}
14 changes: 9 additions & 5 deletions src/componentes/DatePickerField/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,26 @@ import React from "react";
import MaskedInput from 'react-text-mask'
import DatePicker, {registerLocale} from "react-datepicker";
import 'react-datepicker/dist/react-datepicker.css';
import pt from "date-fns/locale/pt-BR"
import "./datePickerField.scss"
import pt from "date-fns/locale/pt-BR";
import "./datePickerField.scss";
import moment from "moment";

registerLocale("pt", pt );

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

export const DatePickerField = ({ name, about, value, onChange, disabled }) => {
return (
<DatePicker
selected={(value && new Date(value)) || null}
disabled={disabled}
selected={(value && new Date(moment(value).format('MMMM D, YYYY'))) || null}
onChange={val => {
onChange(name, val);
}}
dateFormat="dd/MM/yyyy"
name={name}
locale="pt"
showYearDropdown
className="form-control"
className={`${ (name === "data_documento" || name === "data_transacao") && !value && about === "PUT" ? 'is_invalid' : ""} form-control`}
placeholderText="Somente números"
customInput={
<MaskedInput
Expand Down
Loading

0 comments on commit 1b04cf5

Please sign in to comment.