Skip to content

Commit

Permalink
Merge pull request #2396 from prefeiturasp/fix/105253-consolidado-pcs
Browse files Browse the repository at this point in the history
Merge fix/105253 em Hotfix/8.10.1
  • Loading branch information
rayanemsantos authored Oct 9, 2023
2 parents 65852d8 + 6f46b0b commit 414f8ba
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 41 deletions.
15 changes: 15 additions & 0 deletions sme_ptrf_apps/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ def tipo_conta_cheque(tipo_conta):
def tipo_conta_cartao():
return baker.make('TipoConta', nome='Cartão')

@pytest.fixture
def tipo_conta_teste():
return baker.make('TipoConta', nome='Teste')

@pytest.fixture
def acao():
Expand Down Expand Up @@ -532,6 +535,18 @@ def conta_associacao_tipo_cheque(associacao, tipo_conta_cheque):
numero_conta='123456-x',
numero_cartao='534653264523'
)
@pytest.fixture
def conta_associacao_tipo_teste(associacao, tipo_conta_teste, periodo_2020_1):
return baker.make(
'ContaAssociacao',
associacao=associacao,
tipo_conta=tipo_conta_teste,
banco_nome='Banco do Brasil',
agencia='12345',
numero_conta='123456-x',
numero_cartao='534653264523',
data_inicio=periodo_2020_1.data_inicio_realizacao_despesas
)

@pytest.fixture
def conta_associacao_incompleta(associacao_cadastro_incompleto, tipo_conta_cartao):
Expand Down
89 changes: 48 additions & 41 deletions sme_ptrf_apps/dre/services/relatorio_consolidado_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
FechamentoPeriodo,
PrevisaoRepasseSme,
DevolucaoAoTesouro, TipoConta,
ContaAssociacao
)
from sme_ptrf_apps.dre.models import RelatorioConsolidadoDRE, ObsDevolucaoRelatorioConsolidadoDRE, \
JustificativaRelatorioConsolidadoDRE, ConsolidadoDRE
Expand Down Expand Up @@ -71,7 +72,6 @@ def status_de_geracao_do_relatorio(dre, periodo, tipo_conta):

def retorna_informacoes_execucao_financeira_todas_as_contas(dre, periodo, consolidado_dre=None):
from .consolidado_dre_service import verificar_se_status_parcial_ou_total_e_retornar_sequencia_de_publicacao

eh_retificacao = True if consolidado_dre and consolidado_dre.eh_retificacao else False

dre_uuid = dre.uuid
Expand Down Expand Up @@ -135,63 +135,70 @@ def retorna_informacoes_execucao_financeira_todas_as_contas(dre, periodo, consol
# TODO Tratativa dos Bugs: 91797, 93549 e 93018 da Sprint 65
# totais = informacoes_execucao_financeira(dre, periodo, tipo_conta, apenas_nao_publicadas=True, consolidado_dre=consolidado_dre)
# Foi adicionado and consolidado_dre.versao == "FINAL" para verificar se passa ou não o consolidado

if consolidado_dre and consolidado_dre.versao == "FINAL":
totais = informacoes_execucao_financeira(dre, periodo, tipo_conta, apenas_nao_publicadas=True,
consolidado_dre=consolidado_dre)
if periodo.data_fim_realizacao_despesas:
existem_contas_criadas_no_periodo_ou_anterior = ContaAssociacao.objects.filter(Q(data_inicio__isnull=True) | Q(data_inicio__lte=periodo.data_fim_realizacao_despesas),
tipo_conta=tipo_conta).exists()
else:
totais = informacoes_execucao_financeira(dre, periodo, tipo_conta, apenas_nao_publicadas=True)
existem_contas_criadas_no_periodo_ou_anterior = True

if consolidado_dre and consolidado_dre.eh_retificacao:
if consolidado_dre.laudas_do_consolidado_dre.all():
# foi gerado
if existem_contas_criadas_no_periodo_ou_anterior:

if consolidado_dre and consolidado_dre.versao == "FINAL":
totais = informacoes_execucao_financeira(dre, periodo, tipo_conta, apenas_nao_publicadas=True,
consolidado_dre=consolidado_dre)
else:
totais = informacoes_execucao_financeira(dre, periodo, tipo_conta, apenas_nao_publicadas=True)

if consolidado_dre and consolidado_dre.eh_retificacao:
if consolidado_dre.laudas_do_consolidado_dre.all():
# foi gerado

justificativa = JustificativaRelatorioConsolidadoDRE.objects.filter(
dre=dre,
tipo_conta=tipo_conta,
periodo=periodo,
consolidado_dre=consolidado_dre,
eh_retificacao=True
).last()

else:
justificativa = JustificativaRelatorioConsolidadoDRE.objects.filter(
dre=dre,
tipo_conta=tipo_conta,
periodo=periodo,
consolidado_dre__isnull=True,
eh_retificacao=True
).last()

elif consolidado_dre and consolidado_dre.versao == 'FINAL':
# Justificativa
justificativa = JustificativaRelatorioConsolidadoDRE.objects.filter(
dre=dre,
tipo_conta=tipo_conta,
periodo=periodo,
consolidado_dre=consolidado_dre,
eh_retificacao=True
eh_retificacao=False
).last()

else:
justificativa = JustificativaRelatorioConsolidadoDRE.objects.filter(
dre=dre,
tipo_conta=tipo_conta,
periodo=periodo,
consolidado_dre__isnull=True,
eh_retificacao=True
eh_retificacao=False
).last()

elif consolidado_dre and consolidado_dre.versao == 'FINAL':
# Justificativa
justificativa = JustificativaRelatorioConsolidadoDRE.objects.filter(
dre=dre,
tipo_conta=tipo_conta,
periodo=periodo,
consolidado_dre=consolidado_dre,
eh_retificacao=False
).last()
else:
justificativa = JustificativaRelatorioConsolidadoDRE.objects.filter(
dre=dre,
tipo_conta=tipo_conta,
periodo=periodo,
consolidado_dre__isnull=True,
eh_retificacao=False
).last()

objeto_tipo_de_conta.append({
'tipo_conta': tipo_conta.nome if tipo_conta.nome else '',
'valores': totais,
'justificativa_texto': justificativa.texto if justificativa else '',
'justificativa_uuid': justificativa.uuid if justificativa else None,
'consolidado_dre': consolidado_dre.uuid if justificativa and justificativa.consolidado_dre and justificativa.consolidado_dre.uuid else None,
'tipo_conta_uuid': tipo_conta.uuid,
'eh_retificacao': consolidado_dre.eh_retificacao if consolidado_dre else False
})

dados['por_tipo_de_conta'] = objeto_tipo_de_conta
objeto_tipo_de_conta.append({
'tipo_conta': tipo_conta.nome if tipo_conta.nome else '',
'valores': totais,
'justificativa_texto': justificativa.texto if justificativa else '',
'justificativa_uuid': justificativa.uuid if justificativa else None,
'consolidado_dre': consolidado_dre.uuid if justificativa and justificativa.consolidado_dre and justificativa.consolidado_dre.uuid else None,
'tipo_conta_uuid': tipo_conta.uuid,
'eh_retificacao': consolidado_dre.eh_retificacao if consolidado_dre else False
})

dados['por_tipo_de_conta'] = objeto_tipo_de_conta

return dados

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -691,6 +691,39 @@ def test_api_get_info_execucao_financeira_relatorio(
assert result == resultado_esperado


def test_api_get_info_execucao_financeira_relatorio_tipos_com_contas_criadas_no_periodo_ou_anterior(
jwt_authenticated_client_relatorio_consolidado,
dre,
periodo,
tipo_conta_cheque,
tipo_conta_cartao,
tipo_conta_teste,
prestacao_conta,
fechamento_conta_cartao,
fechamento_conta_cheque,
fechamento_conta_cheque_anterior,
devolucao_ao_tesouro,
receita_rendimento,
conta_associacao_cheque,
conta_associacao_tipo_teste,
acao_associacao,
previsao_repasse_sme_conta_cartao,
previsao_repasse_sme_conta_cheque,
):
response = jwt_authenticated_client_relatorio_consolidado.get(
f'/api/relatorios-consolidados-dre/info-execucao-financeira/?dre={dre.uuid}&periodo={periodo.uuid}&tipo_conta={tipo_conta_cheque.uuid}',
content_type='application/json')
result = json.loads(response.content)

result_uuids = []
for item in result['por_tipo_de_conta']:
result_uuids.append(item['tipo_conta_uuid'])

resultado_esperado = [f'{tipo_conta_cheque.uuid}', f'{tipo_conta_cartao.uuid}']

assert response.status_code == status.HTTP_200_OK
assert result_uuids == resultado_esperado

def test_api_get_info_execucao_financeira_relatorio_sem_passa_dre(jwt_authenticated_client_relatorio_consolidado, dre,
periodo, tipo_conta):
response = jwt_authenticated_client_relatorio_consolidado.get(
Expand Down

0 comments on commit 414f8ba

Please sign in to comment.