Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][FIX]: account_general_ledger: Optimization for general_ledger #7

Conversation

sergiobstoj
Copy link

@sergiobstoj sergiobstoj commented Oct 11, 2024

Este PR introduce optimizaciones y mejoras en los archivos general_ledger.py y general_ledger_xlsx.py para mejorar el uso de memoria y el rendimiento al generar el informe del libro mayor.

Cambios en general_ledger.py

  1. Optimización de la Función _get_period_ml_data:
  • Se utilizaron funciones asíncronas para mejorar el procesamiento de datos: fetch_move_lines y process_batches.
  • Se utliza namedtuple para procesar los move_lines recogidos por el search_read.

Cambios en general_ledger_xlsx.py

  1. Optimización y refactorización de _generate_report_content:
    • Se utiliza nuevo Environment al procesar cada cuenta del dict general_ledger
    • Nuevo método _process_account_lines encargado de procesar cada cuenta del general_ledger
    • Dos nuevos método _process_single_account y _process_grouped_items. Se llama uno u otro dependiendo si la cuenta en general_ledger es list_grouped

Pruebas

  • Todo esto ha sido probado en una base de datos local con poco más de 1 millón de apuntes contables.
  • S̶e̶ ̶v̶e̶r̶i̶f̶i̶c̶ó̶ ̶q̶u̶e̶ ̶l̶a̶ ̶g̶e̶n̶e̶r̶a̶c̶i̶ó̶n̶ ̶d̶e̶l̶ ̶i̶n̶f̶o̶r̶m̶e̶ ̶s̶e̶ ̶c̶o̶m̶p̶l̶e̶t̶a̶ ̶c̶o̶n̶ ̶é̶x̶i̶t̶o̶.̶ ̶D̶e̶ ̶m̶o̶m̶e̶n̶t̶o̶ ̶e̶l̶ ̶i̶n̶f̶o̶r̶m̶e̶ ̶s̶e̶ ̶d̶e̶s̶c̶a̶r̶g̶a̶ ̶p̶e̶r̶o̶ ̶l̶u̶e̶g̶o̶ ̶d̶e̶ ̶e̶s̶o̶ ̶e̶l̶ ̶s̶e̶r̶v̶i̶d̶o̶r̶ ̶a̶l̶c̶a̶n̶z̶a̶ ̶e̶l̶ ̶l̶i̶m̶i̶t̶e̶ ̶d̶e̶ ̶m̶e̶m̶o̶r̶i̶a̶.̶
  • UPDATE: Se verificó que la generación del informe se completa con éxito. Se ha logrado descargar el informe multiples veces sin caer en errores de Memoria

…rformance of report download when having big dataset of records
@sergiobstoj sergiobstoj force-pushed the 16.0-opt-account_financial_report-general_ledger branch 2 times, most recently from f6ad300 to 66f98d3 Compare October 14, 2024 13:58
…urther. Report is downloading, but after that server crashes
@sergiobstoj sergiobstoj force-pushed the 16.0-opt-account_financial_report-general_ledger branch from 66f98d3 to 3f61b02 Compare October 14, 2024 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant