Skip to content

Commit

Permalink
Merge pull request #2158 from prefeiturasp/hotfix/8.16.2
Browse files Browse the repository at this point in the history
Hotfix/8.16.2
  • Loading branch information
Lucas-Santos-Rocha-dev authored Jan 17, 2024
2 parents 4d42b18 + d83e452 commit b528db2
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 90 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

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": "8.16.1",
"version": "8.16.2",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.2.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ export const FormUsuario = ({usuario}) => {
username: values.username,
name: values.name,
email: values.email ? values.email : "",
unidade: uuidUnidadeBase,
unidade: uuidUnidadeBase === 'SME' ? null : uuidUnidadeBase,
visao: visaoBase
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,26 @@ export const TabelaValoresReprogramados = ({
acoesTemplate
}) => {

const retornaNomeContas = () => {
let objetoContas = {
nomeContaUm: '-',
nomeContaDois: '-'
}

if(listaDeValoresReprogramados && listaDeValoresReprogramados.length > 0){
let conta_um = listaDeValoresReprogramados[0].nome_conta_um
let conta_dois = listaDeValoresReprogramados[0].nome_conta_dois

objetoContas.nomeContaUm = `Saldo ${conta_um}`
objetoContas.nomeContaDois = `Saldo ${conta_dois}`
}

return objetoContas;

}

const {nomeContaUm, nomeContaDois} = retornaNomeContas();

return(
<DataTable
value={listaDeValoresReprogramados}
Expand All @@ -27,13 +47,13 @@ export const TabelaValoresReprogramados = ({
<Column field="periodo.referencia" header="Período" style={{width: '8%'}}/>
<Column
field="total_conta_um"
header="Saldo Cheque"
header={nomeContaUm}
body={valorTemplateCheque}
style={{width: '14%'}}
/>
<Column
field="total_conta_dois"
header="Saldo Cartão"
header={nomeContaDois}
body={valorTemplateCartao}
style={{width: '14%'}}
/>
Expand Down
168 changes: 83 additions & 85 deletions src/componentes/escolas/Receitas/Formularios/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -889,102 +889,100 @@ export const ReceitaForm = () => {
}
};

const filtraContasPelaDataInicial = ({contasNaoFiltradas = [], dataDigitadaFormulario = initialValue.data}) => {
let contasFiltradasPelaDataInicial = []
if(contasNaoFiltradas && dataDigitadaFormulario) {
contasFiltradasPelaDataInicial = contasNaoFiltradas.filter((acc) => {
if (acc.data_inicio && moment(acc.data_inicio, 'YYYY-MM-DD').isValid()) {
return moment(acc.data_inicio, 'YYYY-MM-DD').toDate() <= moment(dataDigitadaFormulario, 'YYYY-MM-DD').toDate();
}
return false;
});
}

return contasFiltradasPelaDataInicial;
}


const retornaSeDataDoCreditoEhPosteriorDataEncerramento = (dataDoCredito, dataEncerramento) => {
let momentDataDoCredito = moment(dataDoCredito,"DD/MM/YYYY");
let momentDataEncerramento = moment(dataEncerramento,"DD/MM/YYYY");
return momentDataDoCredito > momentDataEncerramento
}

const getOptionPorStatus = (item, values) => {

const defaultProps = {
key: item.uuid,
value: item.uuid
}
if(item.status === STATUS_CONTA_ASSOCIACAO.ATIVA){
return <option {...defaultProps}>{item.nome}</option>

} else if(item.solicitacao_encerramento) {

let dataDoCredito = moment(values.data).format('DD/MM/YYYY')
let dataEncerramento = moment(item.solicitacao_encerramento.data_de_encerramento_na_agencia).format('DD/MM/YYYY')
let informacaoExtra = item.solicitacao_encerramento ? `- Conta encerrada em ${moment(item.solicitacao_encerramento.data_de_encerramento_na_agencia).format('DD/MM/YYYY')}` : ''

// Verifica se a origem é Analise de Lancamento
if (origemAnaliseLancamento()){
// Se a data do Crédito for posterior a data de encerramento da conta, atribui disabled ao <option>
if (retornaSeDataDoCreditoEhPosteriorDataEncerramento(dataDoCredito, dataEncerramento)){
return <option {...defaultProps} disabled>{item.nome} {informacaoExtra}</option>
}else {
return <option {...defaultProps}>{item.nome} {informacaoExtra}</option>
}

// Verifica se é estorno
} else if(parametros && parametros.state && parametros.state.uuid_rateio) {
return <option {...defaultProps} disabled>{item.nome} {informacaoExtra}</option>

}else {
// Se não for Analise de Lancamento continua setando disabled ao <option> no caso de uma edição
// Caso não seja uma edição nem mostra a conta encerrada
return <option {...defaultProps} disabled>{item.nome} {informacaoExtra}</option>
const retornaTiposDeContas = useCallback((values) => {

const filtraContasPelaDataInicial = ({contasNaoFiltradas = [], dataDigitadaFormulario = initialValue.data}) => {
let contasFiltradasPelaDataInicial = []
if(contasNaoFiltradas && dataDigitadaFormulario) {
contasFiltradasPelaDataInicial = contasNaoFiltradas.filter((acc) => {
if (acc.data_inicio && moment(acc.data_inicio, 'YYYY-MM-DD').isValid()) {
return moment(acc.data_inicio, 'YYYY-MM-DD').toDate() <= moment(dataDigitadaFormulario, 'YYYY-MM-DD').toDate();
}
return false;
});
}

return contasFiltradasPelaDataInicial;
}
}


const retornaTiposDeContas = (values) => {

// É estorno
if (parametros && parametros.state && parametros.state.uuid_rateio){
if (tabelas.contas_associacao !== undefined && tabelas.contas_associacao.length > 0) {
return (tabelas.contas_associacao.map((item, key) => (
getOptionPorStatus(item, values)
)))

const retornaSeDataDoCreditoEhPosteriorDataEncerramento = (dataDoCredito, dataEncerramento) => {
let momentDataDoCredito = moment(dataDoCredito,"DD/MM/YYYY");
let momentDataEncerramento = moment(dataEncerramento,"DD/MM/YYYY");
return momentDataDoCredito > momentDataEncerramento
}

const getOptionPorStatus = (item, data_credito) => {
const defaultProps = {
key: item.uuid,
value: item.uuid
}
// Não é estorno
} else {
if (tabelas.contas_associacao !== undefined && tabelas.contas_associacao.length > 0 && values.tipo_receita) {
const tipoReceita = tabelas.tipos_receita.find(element => element.id === Number(values.tipo_receita));
if(item.status === STATUS_CONTA_ASSOCIACAO.ATIVA){
return <option {...defaultProps}>{item.nome}</option>

// Lista dos nomes dos tipos de conta que são aceitos pelo tipo de receita selecionado.
const tipos_conta = tipoReceita.tipos_conta.map(item => item.nome);
} else if(item.solicitacao_encerramento) {

const contasFiltradasPelaDataInicialEPeloTipo = filtraContasPelaDataInicial({contasNaoFiltradas: tabelas.contas_associacao.filter(conta => (tipos_conta.includes(conta.nome))), dataDigitadaFormulario: values.data})
let dataDoCredito = moment(data_credito).format('DD/MM/YYYY')
let dataEncerramento = moment(item.solicitacao_encerramento.data_de_encerramento_na_agencia).format('DD/MM/YYYY')
let informacaoExtra = item.solicitacao_encerramento ? `- Conta encerrada em ${moment(item.solicitacao_encerramento.data_de_encerramento_na_agencia).format('DD/MM/YYYY')}` : ''

// Verifica se a origem é Analise de Lancamento
if (origemAnaliseLancamento()){
// Se a data do Crédito for posterior a data de encerramento da conta, atribui disabled ao <option>
if (retornaSeDataDoCreditoEhPosteriorDataEncerramento(dataDoCredito, dataEncerramento)){
return <option {...defaultProps} disabled>{item.nome} {informacaoExtra}</option>
}else {
return <option {...defaultProps}>{item.nome} {informacaoExtra}</option>
}

let dataDoCredito = moment(values.data).format('DD/MM/YYYY')
const contasFiltradasExcluindoContasComEncerramentoAprovado = contasFiltradasPelaDataInicialEPeloTipo.filter((elemento) => {
return !(!origemAnaliseLancamento() && elemento.status === STATUS_CONTA_ASSOCIACAO.INATIVA && retornaSeDataDoCreditoEhPosteriorDataEncerramento(dataDoCredito, moment(elemento.solicitacao_encerramento.data_de_encerramento_na_agencia).format('DD/MM/YYYY')) )
})
// Verifica se é estorno
} else if(parametros && parametros.state && parametros.state.uuid_rateio) {
return <option {...defaultProps} disabled>{item.nome} {informacaoExtra}</option>

if(!contasFiltradasExcluindoContasComEncerramentoAprovado.length && moment(values.data, 'YYYY-MM-DD').isValid()) {
setMensagemDataInicialConta("Não existem contas disponíveis para a data do crédito.")
} else {
setMensagemDataInicialConta("")
}else {
// Se não for Analise de Lancamento continua setando disabled ao <option> no caso de uma edição
// Caso não seja uma edição nem mostra a conta encerrada
return <option {...defaultProps} disabled>{item.nome} {informacaoExtra}</option>
}

return (
contasFiltradasPelaDataInicialEPeloTipo.map((item, key) => (
getOptionPorStatus(item, values)
)))
}
}
};

const filterContas = () => {
// É estorno
if (parametros && parametros.state && parametros.state.uuid_rateio){
if (tabelas.contas_associacao !== undefined && tabelas.contas_associacao.length > 0) {
return tabelas.contas_associacao;
}
// Não é estorno
} else {
if (tabelas.contas_associacao !== undefined && tabelas.contas_associacao.length > 0 && values.tipo_receita) {
const tipoReceita = tabelas.tipos_receita.find(element => element.id === Number(values.tipo_receita));

// Lista dos nomes dos tipos de conta que são aceitos pelo tipo de receita selecionado.
const tipos_conta = tipoReceita.tipos_conta.map(item => item.nome);

const contasFiltradasPelaDataInicialEPeloTipo = filtraContasPelaDataInicial({contasNaoFiltradas: tabelas.contas_associacao.filter(conta => (tipos_conta.includes(conta.nome))), dataDigitadaFormulario: values.data})


let dataDoCredito = moment(values.data).format('DD/MM/YYYY')
const contasFiltradasExcluindoContasComEncerramentoAprovado = contasFiltradasPelaDataInicialEPeloTipo.filter((elemento) => {
return !(!origemAnaliseLancamento() && elemento.status === STATUS_CONTA_ASSOCIACAO.INATIVA && retornaSeDataDoCreditoEhPosteriorDataEncerramento(dataDoCredito, moment(elemento.solicitacao_encerramento.data_de_encerramento_na_agencia).format('DD/MM/YYYY')) )
})

return contasFiltradasExcluindoContasComEncerramentoAprovado;
}
}
return []
}
const contas = filterContas();

if(!contas.length && moment(values.data, 'YYYY-MM-DD').isValid()) {
setMensagemDataInicialConta("Não existem contas disponíveis para a data do crédito.")
} else {
setMensagemDataInicialConta("")
}
return contas.map((item, key) => getOptionPorStatus(item, values.data));

}, [tabelas]);

const validateFormReceitas = async (values) => {
const errors = {};
Expand Down

0 comments on commit b528db2

Please sign in to comment.