From 8225ff6a2206556fd2429575e0d37340459e001d Mon Sep 17 00:00:00 2001
From: Borruso
Date: Fri, 2 Sep 2022 18:09:34 +0200
Subject: [PATCH 01/25] [ADD] l10n_it_central_journal_reportlab: aggiunto
modulo libro giornale stampa reportlab
---
l10n_it_central_journal_reportlab/README.rst | 82 +++
l10n_it_central_journal_reportlab/__init__.py | 4 +
.../__manifest__.py | 20 +
.../l10n_it_central_journal_reportlab.pot | 341 ++++++++++
.../models/__init__.py | 3 +
.../models/account.py | 25 +
.../readme/CONTRIBUTORS.rst | 4 +
.../readme/DESCRIPTION.rst | 7 +
.../security/ir.model.access.csv | 3 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 425 +++++++++++++
.../tests/__init__.py | 1 +
.../tests/test_central_journal_reportlab.py | 61 ++
.../views/date_range_view.xml | 46 ++
.../wizard/__init__.py | 3 +
.../wizard/print_giornale.py | 601 ++++++++++++++++++
.../wizard/print_giornale.xml | 84 +++
17 files changed, 1710 insertions(+)
create mode 100644 l10n_it_central_journal_reportlab/README.rst
create mode 100644 l10n_it_central_journal_reportlab/__init__.py
create mode 100644 l10n_it_central_journal_reportlab/__manifest__.py
create mode 100644 l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot
create mode 100644 l10n_it_central_journal_reportlab/models/__init__.py
create mode 100644 l10n_it_central_journal_reportlab/models/account.py
create mode 100644 l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.rst
create mode 100644 l10n_it_central_journal_reportlab/readme/DESCRIPTION.rst
create mode 100644 l10n_it_central_journal_reportlab/security/ir.model.access.csv
create mode 100755 l10n_it_central_journal_reportlab/static/description/icon.png
create mode 100644 l10n_it_central_journal_reportlab/static/description/index.html
create mode 100644 l10n_it_central_journal_reportlab/tests/__init__.py
create mode 100644 l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py
create mode 100644 l10n_it_central_journal_reportlab/views/date_range_view.xml
create mode 100644 l10n_it_central_journal_reportlab/wizard/__init__.py
create mode 100644 l10n_it_central_journal_reportlab/wizard/print_giornale.py
create mode 100644 l10n_it_central_journal_reportlab/wizard/print_giornale.xml
diff --git a/l10n_it_central_journal_reportlab/README.rst b/l10n_it_central_journal_reportlab/README.rst
new file mode 100644
index 000000000000..1e30f899d36f
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/README.rst
@@ -0,0 +1,82 @@
+================================
+ITA - Libro giornale - Reportlab
+================================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github
+ :target: https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_central_journal_reportlab
+ :alt: OCA/l10n-italy
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_central_journal_reportlab
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/122/14.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+**Italiano**
+
+Modulo per la stampa del libro giornale con reportlab
+
+**English**
+
+Module for print general journal with reportlab
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Gianmarco Conte - Dinamiche Aziendali srl
+
+Contributors
+~~~~~~~~~~~~
+
+* Gianmarco Conte
+* Lara Baggio
+* Glauco Prina
+* Giuseppe Borruso
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+This module is part of the `OCA/l10n-italy `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/l10n_it_central_journal_reportlab/__init__.py b/l10n_it_central_journal_reportlab/__init__.py
new file mode 100644
index 000000000000..68e14f9a5a28
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/__init__.py
@@ -0,0 +1,4 @@
+# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
+
+from . import models
+from . import wizard
diff --git a/l10n_it_central_journal_reportlab/__manifest__.py b/l10n_it_central_journal_reportlab/__manifest__.py
new file mode 100644
index 000000000000..781ec60cf9b4
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/__manifest__.py
@@ -0,0 +1,20 @@
+# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ "name": "ITA - Libro giornale - Reportlab",
+ "version": "14.0.1.0.0",
+ "development_status": "Beta",
+ "category": "Localization/Italy",
+ "author": "Gianmarco Conte - Dinamiche Aziendali srl, "
+ "Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/l10n-italy",
+ "license": "AGPL-3",
+ "depends": ["account", "date_range"],
+ "data": [
+ "security/ir.model.access.csv",
+ "wizard/print_giornale.xml",
+ "views/date_range_view.xml",
+ ],
+ "installable": True,
+}
diff --git a/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot b/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot
new file mode 100644
index 000000000000..7491a0991a48
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot
@@ -0,0 +1,341 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_it_central_journal_reportlab
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account Central Journal - %s.pdf"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account Central Journal.pdf"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account Move"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__all
+msgid "All"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Balance"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Cancel"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__company_id
+msgid "Company"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Credit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from
+msgid "Date Move Line From"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model,name:l10n_it_central_journal_reportlab.model_date_range
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__daterange_id
+msgid "Date Range"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Dates movements"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Debit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__display_name
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__display_name
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__draft
+msgid "Draft"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__central_journal_exclude
+msgid "Exclude from General Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Final Balance"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Final print"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from_view
+msgid "From date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.ui.menu,name:l10n_it_central_journal_reportlab.menu_giornale
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "General Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.view_date_range_form_inherit_view
+msgid "General Journal Info"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.actions.act_window,name:l10n_it_central_journal_reportlab.action_giornale_reportlab
+msgid "General Journal Reportlab"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__group_by_account
+msgid "Group by account"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__id
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__id
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__id
+msgid "ID"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Initial Balance"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model,name:l10n_it_central_journal_reportlab.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__journal_ids
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Journals"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal____last_update
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range____last_update
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__last_def_date_print
+msgid "Last definitive date print"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__date_last_print
+msgid "Last printed date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__fiscal_page_base
+msgid "Last printed page"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Layout"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Name"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "No documents found in the current selection"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "PDF"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Page: %s / %s"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__posted
+msgid "Posted"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Print"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__print_state__printed
+msgid "Printed"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_credit
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__progressive_credit
+msgid "Progressive Credit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_debit
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__progressive_debit2
+msgid "Progressive Debit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_line_number
+msgid "Progressive line"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_page_number
+msgid "Progressive of the page"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__print_state__print
+msgid "Ready for printing"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__report_giornale
+msgid "Report Giornale"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__report_giornale_name
+msgid "Report Giornale Name"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Row"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__start_row
+msgid "Start row"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__print_state
+msgid "State"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__target_move
+msgid "Target Move"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_to
+msgid "To date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,help:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__year_footer
+msgid "Value printed near number of page in the footer"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model,name:l10n_it_central_journal_reportlab.model_wizard_giornale_reportlab
+msgid "Wizard journal report with reportlab"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__year_footer
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Year for Footer"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "or"
+msgstr ""
diff --git a/l10n_it_central_journal_reportlab/models/__init__.py b/l10n_it_central_journal_reportlab/models/__init__.py
new file mode 100644
index 000000000000..63724e4c75e6
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/models/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
+
+from . import account
diff --git a/l10n_it_central_journal_reportlab/models/account.py b/l10n_it_central_journal_reportlab/models/account.py
new file mode 100644
index 000000000000..af8befde1c53
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/models/account.py
@@ -0,0 +1,25 @@
+# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
+
+from odoo import fields, models
+
+
+class AccountJournalInherit(models.Model):
+ _inherit = "account.journal"
+
+ central_journal_exclude = fields.Boolean("Exclude from General Journal")
+
+
+class DateRangeInherit(models.Model):
+ _inherit = "date.range"
+
+ date_last_print = fields.Date("Last printed date")
+ progressive_page_number = fields.Integer("Progressive of the page")
+ progressive_line_number = fields.Integer("Progressive line")
+ progressive_credit = fields.Float(
+ "Progressive Credit",
+ digits="Account",
+ )
+ progressive_debit = fields.Float(
+ "Progressive Debit",
+ digits="Account",
+ )
diff --git a/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.rst b/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000000..71dd092145b1
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.rst
@@ -0,0 +1,4 @@
+* Gianmarco Conte
+* Lara Baggio
+* Glauco Prina
+* Giuseppe Borruso
diff --git a/l10n_it_central_journal_reportlab/readme/DESCRIPTION.rst b/l10n_it_central_journal_reportlab/readme/DESCRIPTION.rst
new file mode 100644
index 000000000000..19123dd41b2c
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/readme/DESCRIPTION.rst
@@ -0,0 +1,7 @@
+**Italiano**
+
+Modulo per la stampa del libro giornale con reportlab
+
+**English**
+
+Module for print general journal with reportlab
diff --git a/l10n_it_central_journal_reportlab/security/ir.model.access.csv b/l10n_it_central_journal_reportlab/security/ir.model.access.csv
new file mode 100644
index 000000000000..88bfafe2bf0e
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_date_range_group_account_manager,group_account_manager model_date_range,model_date_range,account.group_account_manager,1,1,0,0
+access_wizard_giornale_reportlab_manager,access_wizard_giornale_reportlab manager,l10n_it_central_journal_reportlab.model_wizard_giornale_reportlab,,1,1,1,1
diff --git a/l10n_it_central_journal_reportlab/static/description/icon.png b/l10n_it_central_journal_reportlab/static/description/icon.png
new file mode 100755
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/l10n_it_central_journal_reportlab/static/description/index.html b/l10n_it_central_journal_reportlab/static/description/index.html
new file mode 100644
index 000000000000..7637731c9492
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/static/description/index.html
@@ -0,0 +1,425 @@
+
+
+
+
+
+
+ITA - Libro giornale - Reportlab
+
+
+
+
+
ITA - Libro giornale - Reportlab
+
+
+

+
Italiano
+
Modulo per la stampa del libro giornale con reportlab
+
English
+
Module for print general journal with reportlab
+
Table of contents
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+- Gianmarco Conte - Dinamiche Aziendali srl
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/l10n-italy project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/l10n_it_central_journal_reportlab/tests/__init__.py b/l10n_it_central_journal_reportlab/tests/__init__.py
new file mode 100644
index 000000000000..2d4275cae870
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_central_journal_reportlab
diff --git a/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py b/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py
new file mode 100644
index 000000000000..7b9c97f9e28a
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py
@@ -0,0 +1,61 @@
+# Copyright 2022 Giuseppe Borruso
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
+
+import base64
+import io
+from datetime import datetime
+
+from dateutil.rrule import MONTHLY
+
+from odoo.tests.common import Form, TransactionCase
+from odoo.tools import pdf
+
+
+class TestCentralJournalReportlab(TransactionCase):
+ def setUp(self):
+ super(TestCentralJournalReportlab, self).setUp()
+
+ self.today = datetime.now()
+ self.range_type = self.env["date.range.type"].create({"name": "Fiscal year"})
+ self.env["date.range.generator"].create(
+ {
+ "date_start": "%s-01-01" % self.today.year,
+ "name_prefix": "%s-" % self.today.year,
+ "type_id": self.range_type.id,
+ "duration_count": 1,
+ "unit_of_time": str(MONTHLY),
+ "count": 12,
+ }
+ ).action_apply()
+ self.current_period = self.env["date.range"].search(
+ [
+ ("date_start", "<=", self.today.date()),
+ ("date_end", ">=", self.today.date()),
+ ]
+ )
+ self.wizard_model = self.env["wizard.giornale.reportlab"]
+ self.report_model = self.env["ir.actions.report"]
+ self.report_name = "l10n_it_central_journal_reportlab.report_giornale_reportlab"
+ self.journals = self.env["account.journal"].search([])
+
+ def test_wizard_reportlab(self):
+ wizard_form = Form(self.wizard_model)
+ wizard_form.daterange_id = self.current_period
+ wizard = wizard_form.save()
+ self.assertEqual(
+ len(wizard.journal_ids),
+ len(self.journals.filtered(lambda j: not j.central_journal_exclude)),
+ )
+ self.assertEqual(wizard.date_move_line_from, self.current_period.date_start)
+ self.assertEqual(wizard.date_move_line_to, self.current_period.date_end)
+ self.assertEqual(wizard.year_footer, str(self.today.year))
+ next_year = self.today.year + 1
+
+ wizard.year_footer = next_year
+ wizard.fiscal_page_base = 99
+
+ wizard.print_giornale_reportlab()
+ decode_giornale = base64.b64decode(wizard.report_giornale)
+ self.minimal_reader_buffer = io.BytesIO(decode_giornale)
+ self.minimal_pdf_reader = pdf.OdooPdfFileReader(self.minimal_reader_buffer)
+ self.assertTrue(self.minimal_reader_buffer)
diff --git a/l10n_it_central_journal_reportlab/views/date_range_view.xml b/l10n_it_central_journal_reportlab/views/date_range_view.xml
new file mode 100644
index 000000000000..7a79c86e946d
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/views/date_range_view.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+ view.central.journal.account.journal.form
+ account.journal
+
+
+
+
+
+
+
+
+
+ date.range.form
+ date.range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ date.range.tree.inherit
+ date.range
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n_it_central_journal_reportlab/wizard/__init__.py b/l10n_it_central_journal_reportlab/wizard/__init__.py
new file mode 100644
index 000000000000..5a77f776d3c1
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/wizard/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
+
+from . import print_giornale
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.py b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
new file mode 100644
index 000000000000..8340a85c01cc
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
@@ -0,0 +1,601 @@
+# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
+
+import base64
+import io
+from datetime import timedelta
+
+from reportlab.lib import colors
+from reportlab.lib.enums import TA_RIGHT
+from reportlab.lib.pagesizes import A4
+from reportlab.lib.styles import ParagraphStyle
+from reportlab.lib.units import cm
+from reportlab.pdfgen import canvas
+from reportlab.platypus import Table
+from reportlab.platypus.paragraph import Paragraph
+
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
+from odoo.tools.misc import flatten, format_date, formatLang
+
+gap = 1 * cm # gap between header/footer and page content
+gap_text = 0.5 * cm # gap between text
+margin_left = 0.5 * cm # layout margin left
+margin_bottom = 0.5 * cm # layout margin bottom
+footer_height = 2 * gap_text + 12 # layout footer height
+
+
+class WizardGiornaleReportlab(models.TransientModel):
+ @api.model
+ def _get_journal(self):
+ journal_obj = self.env["account.journal"]
+ journal_ids = journal_obj.search(
+ [
+ ("central_journal_exclude", "=", False),
+ ]
+ )
+ return journal_ids
+
+ _name = "wizard.giornale.reportlab"
+ _description = "Wizard journal report with reportlab"
+
+ date_move_line_from = fields.Date(required=True)
+ date_move_line_from_view = fields.Date("From date")
+ last_def_date_print = fields.Date("Last definitive date print")
+ date_move_line_to = fields.Date("To date", required=True)
+ daterange_id = fields.Many2one("date.range", "Date Range", required=True)
+ company_id = fields.Many2one(
+ related="daterange_id.company_id", readonly=True, store=True
+ )
+ progressive_credit = fields.Float("Progressive Credit")
+ progressive_debit2 = fields.Float("Progressive Debit")
+ print_state = fields.Selection(
+ [("print", "Ready for printing"), ("printed", "Printed")],
+ "State",
+ default="print",
+ readonly=True,
+ )
+ journal_ids = fields.Many2many(
+ "account.journal",
+ "giornale_reportlab_journals_rel",
+ "journal_id",
+ "giornale_reportlab_id",
+ default=_get_journal,
+ string="Journals",
+ required=True,
+ )
+ target_move = fields.Selection(
+ [("all", "All"), ("posted", "Posted"), ("draft", "Draft")],
+ "Target Move",
+ default="all",
+ )
+ fiscal_page_base = fields.Integer("Last printed page", required=True)
+ start_row = fields.Integer("Start row", required=True)
+ year_footer = fields.Char(
+ string="Year for Footer",
+ help="Value printed near number " "of page in the footer",
+ )
+ report_giornale = fields.Binary(string="Report Giornale")
+ report_giornale_name = fields.Char(
+ string="Report Giornale Name",
+ compute="_compute_report_giornale_name",
+ )
+ group_by_account = fields.Boolean(string="Group by account", default=False)
+
+ @api.depends("report_giornale", "daterange_id")
+ def _compute_report_giornale_name(self):
+ for wizard in self:
+ if wizard.report_giornale and wizard.daterange_id:
+ wizard.report_giornale_name = _(
+ "Account Central Journal - %s.pdf" % wizard.daterange_id.name
+ )
+ elif wizard.report_giornale:
+ wizard.report_giornale_name = _("Account Central Journal.pdf")
+ else:
+ wizard.report_giornale_name = False
+
+ @api.onchange("date_move_line_from_view")
+ def get_year_footer_reportlab(self):
+ if self.date_move_line_from_view:
+ self.year_footer = fields.Date.to_date(self.date_move_line_from_view).year
+
+ @api.onchange("daterange_id")
+ def on_change_daterange_reportlab(self):
+ if self.daterange_id:
+ date_start = fields.Date.to_date(self.daterange_id.date_start)
+ date_end = fields.Date.to_date(self.daterange_id.date_end)
+
+ if self.daterange_id.date_last_print:
+ date_last_print = fields.Date.to_date(self.daterange_id.date_last_print)
+ self.last_def_date_print = date_last_print
+ date_start = (date_last_print + timedelta(days=1)).__str__()
+ else:
+ self.last_def_date_print = None
+ self.date_move_line_from = date_start
+ self.date_move_line_from_view = date_start
+ self.date_move_line_to = date_end
+ if self.daterange_id.progressive_line_number != 0:
+ self.start_row = self.daterange_id.progressive_line_number + 1
+ else:
+ self.start_row = self.daterange_id.progressive_line_number
+ self.progressive_debit2 = self.daterange_id.progressive_debit
+ self.progressive_credit = self.daterange_id.progressive_credit
+
+ if self.last_def_date_print == self.daterange_id.date_end:
+ self.date_move_line_from_view = self.last_def_date_print
+
+ def get_grupped_line_reportlab_ids(self):
+ wizard = self
+ if wizard.target_move == "all":
+ target_type = ["posted", "draft"]
+ else:
+ target_type = [wizard.target_move]
+ sql = """
+ SELECT
+ am.date,
+ am.name AS move_name,
+ aa.code AS account_code,
+ aa.name AS account_name,
+ COALESCE(am.ref, '') AS name,
+ SUM(aml.debit) AS debit,
+ SUM(aml.credit) AS credit
+ FROM
+ account_move_line aml
+ LEFT JOIN account_move am ON (am.id = aml.move_id)
+ LEFT JOIN account_account aa ON (aa.id = aml.account_id)
+ WHERE
+ aml.date >= %(date_from)s
+ AND aml.date <= %(date_to)s
+ AND am.state in %(target_type)s
+ AND aml.journal_id in %(journal_ids)s
+ GROUP BY
+ am.date,
+ am.name,
+ aa.code,
+ aa.name,
+ am.ref
+ ORDER BY
+ am.date,
+ am.name,
+ aa.code
+ """
+ params = {
+ "date_from": wizard.date_move_line_from,
+ "date_to": wizard.date_move_line_to,
+ "target_type": tuple(target_type),
+ "journal_ids": tuple(self.journal_ids.ids),
+ }
+ self.env.cr.execute(sql, params)
+ list_grupped_line = self.env.cr.dictfetchall()
+ return list_grupped_line
+
+ def get_line_reportlab_ids(self):
+ if self.target_move == "all":
+ target_type = ["posted", "draft"]
+ else:
+ target_type = [self.target_move]
+ sql = """
+ SELECT aml.id FROM account_move_line aml
+ LEFT JOIN account_move am ON (am.id = aml.move_id)
+ LEFT JOIN account_account aa ON (aa.id = aml.account_id)
+ WHERE
+ aml.date >= %(date_from)s
+ AND aml.date <= %(date_to)s
+ AND am.state in %(target_type)s
+ AND aml.journal_id in %(journal_ids)s
+ ORDER BY am.date, am.name, aa.code
+ """
+ params = {
+ "date_from": self.date_move_line_from,
+ "date_to": self.date_move_line_to,
+ "target_type": tuple(target_type),
+ "journal_ids": tuple(self.journal_ids.ids),
+ }
+ self.env.cr.execute(sql, params)
+ res = self.env.cr.fetchall()
+ move_line_ids = flatten(res)
+ return move_line_ids
+
+ def _get_move_name_reportlab(self, line):
+ return " - ".join(filter(None, [line.move_id.ref, line.move_id.name]))
+
+ def _get_account_name_reportlab(self, line):
+ return " - ".join(filter(None, [line.account_id.code, line.account_id.name]))
+
+ def get_template_header_report_giornale(self, report, height_available):
+ report.setFont("Helvetica-Bold", 12)
+ height_available -= gap
+ report.drawString(margin_left, height_available, self.env.user.company_id.name)
+ report.setFont("Helvetica", 10)
+ text = ""
+ if self.env.user.company_id.street:
+ text += self.env.user.company_id.street
+ if self.env.user.company_id.zip:
+ text += " " + self.env.user.company_id.zip
+ if self.env.user.company_id.city:
+ text += " - " + self.env.user.company_id.city
+ if self.env.user.company_id.state_id.code:
+ text += " - " + self.env.user.company_id.state_id.code
+ if self.env.user.company_id.vat:
+ text += " IVA: " + self.env.user.company_id.vat
+ height_available -= gap_text
+ report.drawString(margin_left, height_available, text)
+ return height_available
+
+ def get_template_footer_report_giornale(self, report):
+ page_num = report.getPageNumber() + self.fiscal_page_base
+ page_text = _("Page: %s / %s" % (self.year_footer, page_num))
+ report.drawString(margin_left, margin_bottom + 12, page_text)
+
+ def get_styles_report_giornale_line(self):
+ style_header = ParagraphStyle("style_header")
+ style_header.fontSize = 10
+ style_header.fontName = "Helvetica-Bold"
+
+ style_header_number = ParagraphStyle("style_header_number")
+ style_header_number.alignment = TA_RIGHT
+ style_header_number.fontSize = 10
+ style_header_number.fontName = "Helvetica-Bold"
+
+ style_name = ParagraphStyle("style_name")
+ style_name.fontSize = 6.5
+ style_name.fontName = "Helvetica"
+
+ style_number = ParagraphStyle("style_number")
+ style_number.fontSize = 6.5
+ style_number.alignment = TA_RIGHT
+ style_number.fontName = "Helvetica"
+
+ style_table = [
+ ("VALIGN", (0, 0), (-1, -1), "TOP"),
+ ("LEFTPADDING", (0, 0), (-1, -1), 1),
+ ("RIGHTPADDING", (0, 0), (-1, -1), 1),
+ ("TOPPADDING", (0, 0), (-1, -1), 1),
+ ("BOTTOMPADDING", (0, 0), (-1, -1), 1),
+ ]
+ style_table_line_above = [
+ ("VALIGN", (0, 0), (-1, -1), "TOP"),
+ ("LEFTPADDING", (0, 0), (-1, -1), 1),
+ ("RIGHTPADDING", (0, 0), (-1, -1), 1),
+ ("TOPPADDING", (0, 0), (-1, -1), 1),
+ ("BOTTOMPADDING", (0, 0), (-1, -1), 1),
+ ("LINEABOVE", (0, 0), (-1, -1), 1, colors.black),
+ ]
+ return {
+ "style_header": style_header,
+ "style_header_number": style_header_number,
+ "style_name": style_name,
+ "style_number": style_number,
+ "style_table": style_table,
+ "style_table_line_above": style_table_line_above,
+ }
+
+ def get_colwidths_report_giornale(self, width_available):
+ colwidths = [32, 35, 130, 130, 130, 50, 50]
+ total = sum(colwidths)
+ return [c / total * width_available for c in colwidths]
+
+ def get_data_header_report_giornale(self):
+ style_header = self.get_styles_report_giornale_line()["style_header"]
+ style_header_number = self.get_styles_report_giornale_line()[
+ "style_header_number"
+ ]
+
+ data_header = [
+ [
+ Paragraph(_("Row"), style_header),
+ Paragraph(_("Date"), style_header),
+ Paragraph(_("Account Move"), style_header),
+ Paragraph(_("Account"), style_header),
+ Paragraph(_("Name"), style_header),
+ Paragraph(_("Debit"), style_header_number),
+ Paragraph(_("Credit"), style_header_number),
+ ]
+ ]
+ return data_header
+
+ def get_initial_balance_data_report_giornale(self):
+ style_name = self.get_styles_report_giornale_line()["style_name"]
+ style_number = self.get_styles_report_giornale_line()["style_number"]
+
+ initial_balance_data = [
+ [
+ "",
+ "",
+ "",
+ "",
+ Paragraph(_("Initial Balance"), style_name),
+ Paragraph(formatLang(self.env, self.progressive_debit2), style_number),
+ Paragraph(formatLang(self.env, self.progressive_credit), style_number),
+ ]
+ ]
+ return initial_balance_data
+
+ def get_grupped_final_tables_report_giornale(
+ self, list_grupped_line, tables, start_row, width_available
+ ):
+ style_name = self.get_styles_report_giornale_line()["style_name"]
+ style_number = self.get_styles_report_giornale_line()["style_number"]
+ style_table = self.get_styles_report_giornale_line()["style_table"]
+ style_table_line_above = self.get_styles_report_giornale_line()[
+ "style_table_line_above"
+ ]
+ colwidths = self.get_colwidths_report_giornale(width_available)
+
+ previous_move_name = ""
+ list_balance = [
+ (0, 0),
+ (self.progressive_debit2, self.progressive_credit),
+ ]
+ for line in list_grupped_line:
+ start_row += 1
+ row = Paragraph(str(start_row), style_name)
+ date = Paragraph(format_date(self.env, line["date"]), style_name)
+ move = Paragraph(line["move_name"], style_name)
+ account_name = (
+ line["account_code"] + " - " + line["account_name"]
+ if line["account_code"]
+ else line["account_name"]
+ )
+ account = Paragraph(account_name, style_name)
+ name = Paragraph(line["name"], style_name)
+ # dato che nel SQL ho la somma dei crediti e debiti potrei avere
+ # che un conto ha sia debito che credito
+ lines_data = []
+ if line["debit"] > 0:
+ debit = Paragraph(formatLang(self.env, line["debit"]), style_number)
+ credit = Paragraph(formatLang(self.env, 0), style_number)
+ list_balance.append((line["debit"], 0))
+ lines_data.append([[row, date, move, account, name, debit, credit]])
+ if line["credit"] > 0:
+ debit = Paragraph(formatLang(self.env, 0), style_number)
+ credit = Paragraph(formatLang(self.env, line["credit"]), style_number)
+ list_balance.append((0, line["credit"]))
+ lines_data.append([[row, date, move, account, name, debit, credit]])
+ for line_data in lines_data:
+ if previous_move_name != line["move_name"]:
+ previous_move_name = line["move_name"]
+ tables.append(
+ Table(
+ line_data, colWidths=colwidths, style=style_table_line_above
+ )
+ )
+ else:
+ tables.append(
+ Table(line_data, colWidths=colwidths, style=style_table)
+ )
+ return tables, list_balance
+
+ def get_final_tables_report_giornale(
+ self, move_line_ids, tables, start_row, width_available
+ ):
+ style_name = self.get_styles_report_giornale_line()["style_name"]
+ style_number = self.get_styles_report_giornale_line()["style_number"]
+ style_table = self.get_styles_report_giornale_line()["style_table"]
+ style_table_line_above = self.get_styles_report_giornale_line()[
+ "style_table_line_above"
+ ]
+ colwidths = self.get_colwidths_report_giornale(width_available)
+
+ previous_move_name = ""
+ list_balance = [
+ (0, 0),
+ (self.progressive_debit2, self.progressive_credit),
+ ]
+
+ for line in self.env["account.move.line"].browse(move_line_ids):
+ start_row += 1
+ row = Paragraph(str(start_row), style_name)
+ date = Paragraph(format_date(self.env, line.date), style_name)
+ move_name = self._get_move_name_reportlab(line)
+ move = Paragraph(move_name, style_name)
+ account_name = self._get_account_name_reportlab(line)
+ account = Paragraph(account_name, style_name)
+ if line.account_id.user_type_id.type in ["receivable", "payable"]:
+ name = Paragraph(str(line.partner_id.name or ""), style_name)
+ else:
+ name = Paragraph(str(line.name or ""), style_name)
+ debit = Paragraph(formatLang(self.env, line.debit), style_number)
+ credit = Paragraph(formatLang(self.env, line.credit), style_number)
+ list_balance.append((line.debit, line.credit))
+ line_data = [[row, date, move, account, name, debit, credit]]
+ if previous_move_name != move_name:
+ previous_move_name = move_name
+ tables.append(
+ Table(line_data, colWidths=colwidths, style=style_table_line_above)
+ )
+ else:
+ tables.append(Table(line_data, colWidths=colwidths, style=style_table))
+ return tables, list_balance
+
+ def get_balance_data_report_giornale(self, tot_debit, tot_credit, final=False):
+ style_name = self.get_styles_report_giornale_line()["style_name"]
+ style_number = self.get_styles_report_giornale_line()["style_number"]
+
+ if final:
+ name = Paragraph(_("Final Balance"), style_name)
+ else:
+ name = Paragraph(_("Balance"), style_name)
+
+ balance_data = [
+ [
+ "",
+ "",
+ "",
+ "",
+ name,
+ Paragraph(formatLang(self.env, tot_debit), style_number),
+ Paragraph(formatLang(self.env, tot_credit), style_number),
+ ]
+ ]
+ return balance_data
+
+ def create_report_giornale_reportlab(self):
+ pdf_bytes = io.BytesIO()
+
+ WIDTH, HEIGHT = A4
+ width_available = WIDTH - (2 * margin_left)
+ height_available = HEIGHT
+ report = canvas.Canvas(pdf_bytes, pagesize=A4)
+ height_available = self.get_template_header_report_giornale(
+ report, height_available
+ )
+
+ style_table = self.get_styles_report_giornale_line()["style_table"]
+ style_table_line_above = self.get_styles_report_giornale_line()[
+ "style_table_line_above"
+ ]
+
+ colwidths = self.get_colwidths_report_giornale(width_available)
+ data_header = self.get_data_header_report_giornale()
+ tables = [Table(data_header, colWidths=colwidths, style=style_table)]
+ initial_balance_data = self.get_initial_balance_data_report_giornale()
+ tables.append(
+ Table(initial_balance_data, colWidths=colwidths, style=style_table)
+ )
+ start_row = self.start_row
+ if self.group_by_account:
+ list_grupped_line = self.get_grupped_line_reportlab_ids()
+ if not list_grupped_line:
+ raise UserError(_("No documents found in the current selection"))
+ final_tables, list_balance = self.get_grupped_final_tables_report_giornale(
+ list_grupped_line, tables, start_row, width_available
+ )
+ else:
+ move_line_ids = self.get_line_reportlab_ids()
+ if not move_line_ids:
+ raise UserError(_("No documents found in the current selection"))
+ final_tables, list_balance = self.get_final_tables_report_giornale(
+ move_line_ids, tables, start_row, width_available
+ )
+
+ height_available -= gap
+ i = 0
+ tot_debit = 0
+ tot_credit = 0
+ for table in final_tables:
+ table_width, table_height = table.wrapOn(report, width_available, HEIGHT)
+ if height_available - footer_height < table_height:
+ balance_data = self.get_balance_data_report_giornale(
+ tot_debit, tot_credit, final=False
+ )
+ table_balance = Table(
+ balance_data, colWidths=colwidths, style=style_table_line_above
+ )
+ table_balance_width, table_balance_height = table_balance.wrapOn(
+ report, WIDTH, HEIGHT
+ )
+ height_available -= table_balance_height
+ table_balance.drawOn(report, margin_left, height_available)
+ self.get_template_footer_report_giornale(report)
+
+ report.showPage()
+ height_available = self.get_template_header_report_giornale(
+ report, HEIGHT
+ )
+ height_available -= gap
+ header_table = Table(
+ data_header, colWidths=colwidths, style=style_table
+ )
+ header_table_width, header_table_height = header_table.wrapOn(
+ report, WIDTH, HEIGHT
+ )
+ height_available -= header_table_height
+ header_table.drawOn(report, margin_left, height_available)
+ table_balance = Table(
+ balance_data, colWidths=colwidths, style=style_table
+ )
+ table_balance.wrapOn(report, WIDTH, HEIGHT)
+ height_available -= header_table_height + table_balance_height
+ table_balance.drawOn(report, margin_left, height_available)
+
+ tot_debit += list_balance[i][0]
+ tot_credit += list_balance[i][1]
+ height_available -= table_height
+ table.drawOn(report, margin_left, height_available)
+ i += 1
+
+ final_balance_data = self.get_balance_data_report_giornale(
+ tot_debit, tot_credit, final=True
+ )
+ final_balance_table = Table(
+ final_balance_data, colWidths=colwidths, style=style_table_line_above
+ )
+ (
+ final_balance_table_width,
+ final_balance_table_height,
+ ) = final_balance_table.wrapOn(report, WIDTH, HEIGHT)
+ if height_available - footer_height >= final_balance_table_height:
+ height_available -= final_balance_table_height
+ final_balance_table.drawOn(report, margin_left, height_available)
+ else:
+ self.get_template_footer_report_giornale(report)
+
+ report.showPage()
+ height_available = self.get_template_header_report_giornale(report, HEIGHT)
+ height_available -= gap
+ header_table = Table(data_header, colWidths=colwidths, style=style_table)
+ header_table_width, header_table_height = header_table.wrapOn(
+ report, WIDTH, HEIGHT
+ )
+ height_available -= header_table_height
+ header_table.drawOn(report, margin_left, height_available)
+ height_available -= header_table_height + final_balance_table_height
+ final_balance_table.drawOn(report, margin_left, height_available)
+ self.get_template_footer_report_giornale(report)
+ report.showPage()
+ report.save()
+
+ file_base64 = base64.b64encode(pdf_bytes.getvalue())
+ self.write({"report_giornale": file_base64})
+
+ return start_row, tot_debit, tot_credit
+
+ def print_giornale_reportlab(self):
+ self.create_report_giornale_reportlab()
+
+ model_data_obj = self.env["ir.model.data"]
+ view_rec = model_data_obj.get_object_reference(
+ "l10n_it_central_journal_reportlab", "wizard_giornale_reportlab"
+ )
+ view_id = view_rec and view_rec[1] or False
+
+ return {
+ "view_id": [view_id],
+ "view_mode": "form",
+ "res_model": "wizard.giornale.reportlab",
+ "res_id": self.id,
+ "type": "ir.actions.act_window",
+ "target": "new",
+ }
+
+ def print_giornale_reportlab_final(self):
+ end_row, end_debit, end_credit = self.create_report_giornale_reportlab()
+
+ if (
+ not self.company_id.period_lock_date
+ or self.company_id.period_lock_date < self.date_move_line_to
+ ):
+ self.company_id.sudo().period_lock_date = self.date_move_line_to
+
+ daterange_vals = {
+ "date_last_print": self.date_move_line_to,
+ "progressive_line_number": end_row,
+ "progressive_debit": end_debit,
+ "progressive_credit": end_credit,
+ }
+ self.daterange_id.write(daterange_vals)
+
+ model_data_obj = self.env["ir.model.data"]
+ view_rec = model_data_obj.get_object_reference(
+ "l10n_it_central_journal_reportlab", "wizard_giornale_reportlab"
+ )
+ view_id = view_rec and view_rec[1] or False
+
+ return {
+ "view_id": [view_id],
+ "view_mode": "form",
+ "res_model": "wizard.giornale.reportlab",
+ "res_id": self.id,
+ "type": "ir.actions.act_window",
+ "target": "new",
+ }
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.xml b/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
new file mode 100644
index 000000000000..39f0e1316092
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
@@ -0,0 +1,84 @@
+
+
+
+ General Journal Reportlab
+ wizard.giornale.reportlab
+ form
+
+
+
+
+
+
+ General Journal Reportlab
+ wizard.giornale.reportlab
+ form
+
+ new
+
+
+
+
From b353b7a23f53cc051be314b4a8a2d1e5b731613d Mon Sep 17 00:00:00 2001
From: Francesco Foresti
Date: Mon, 17 Oct 2022 16:01:57 +0000
Subject: [PATCH 02/25] Added translation using Weblate (Italian)
---
l10n_it_central_journal_reportlab/i18n/it.po | 342 +++++++++++++++++++
1 file changed, 342 insertions(+)
create mode 100644 l10n_it_central_journal_reportlab/i18n/it.po
diff --git a/l10n_it_central_journal_reportlab/i18n/it.po b/l10n_it_central_journal_reportlab/i18n/it.po
new file mode 100644
index 000000000000..eb80b3387808
--- /dev/null
+++ b/l10n_it_central_journal_reportlab/i18n/it.po
@@ -0,0 +1,342 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_it_central_journal_reportlab
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account Central Journal - %s.pdf"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account Central Journal.pdf"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Account Move"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__all
+msgid "All"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Balance"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Cancel"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__company_id
+msgid "Company"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Credit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from
+msgid "Date Move Line From"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model,name:l10n_it_central_journal_reportlab.model_date_range
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__daterange_id
+msgid "Date Range"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Dates movements"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Debit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__display_name
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__display_name
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__draft
+msgid "Draft"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__central_journal_exclude
+msgid "Exclude from General Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Final Balance"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Final print"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from_view
+msgid "From date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.ui.menu,name:l10n_it_central_journal_reportlab.menu_giornale
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "General Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.view_date_range_form_inherit_view
+msgid "General Journal Info"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.actions.act_window,name:l10n_it_central_journal_reportlab.action_giornale_reportlab
+msgid "General Journal Reportlab"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__group_by_account
+msgid "Group by account"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__id
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__id
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__id
+msgid "ID"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Initial Balance"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model,name:l10n_it_central_journal_reportlab.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__journal_ids
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Journals"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal____last_update
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range____last_update
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__last_def_date_print
+msgid "Last definitive date print"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__date_last_print
+msgid "Last printed date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__fiscal_page_base
+msgid "Last printed page"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Layout"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Name"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "No documents found in the current selection"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "PDF"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Page: %s / %s"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__posted
+msgid "Posted"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Print"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__print_state__printed
+msgid "Printed"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_credit
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__progressive_credit
+msgid "Progressive Credit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_debit
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__progressive_debit2
+msgid "Progressive Debit"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_line_number
+msgid "Progressive line"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_page_number
+msgid "Progressive of the page"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__print_state__print
+msgid "Ready for printing"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__report_giornale
+msgid "Report Giornale"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__report_giornale_name
+msgid "Report Giornale Name"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid "Row"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__start_row
+msgid "Start row"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__print_state
+msgid "State"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__target_move
+msgid "Target Move"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_to
+msgid "To date"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,help:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__year_footer
+msgid "Value printed near number of page in the footer"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model,name:l10n_it_central_journal_reportlab.model_wizard_giornale_reportlab
+msgid "Wizard journal report with reportlab"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__year_footer
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "Year for Footer"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
+msgid "or"
+msgstr ""
From 0d0fc69001094b52461b25fa6de60b049536161f Mon Sep 17 00:00:00 2001
From: Francesco Foresti
Date: Mon, 17 Oct 2022 16:02:35 +0000
Subject: [PATCH 03/25] Translated using Weblate (Italian)
Currently translated at 88.3% (53 of 60 strings)
Translation: l10n-italy-14.0/l10n-italy-14.0-l10n_it_central_journal_reportlab
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_central_journal_reportlab/it/
---
l10n_it_central_journal_reportlab/i18n/it.po | 110 ++++++++++---------
1 file changed, 56 insertions(+), 54 deletions(-)
diff --git a/l10n_it_central_journal_reportlab/i18n/it.po b/l10n_it_central_journal_reportlab/i18n/it.po
index eb80b3387808..2894368c0934 100644
--- a/l10n_it_central_journal_reportlab/i18n/it.po
+++ b/l10n_it_central_journal_reportlab/i18n/it.po
@@ -6,19 +6,21 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2022-10-17 18:19+0000\n"
+"Last-Translator: Francesco Foresti \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.14.1\n"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account"
-msgstr ""
+msgstr "Conto"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
@@ -36,50 +38,50 @@ msgstr ""
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account Move"
-msgstr ""
+msgstr "Movimento contabile"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__all
msgid "All"
-msgstr ""
+msgstr "Tutti"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Balance"
-msgstr ""
+msgstr "Saldo"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Cancel"
-msgstr ""
+msgstr "Annulla"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__company_id
msgid "Company"
-msgstr ""
+msgstr "Azienda"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__create_uid
msgid "Created by"
-msgstr ""
+msgstr "Creato da"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__create_date
msgid "Created on"
-msgstr ""
+msgstr "Creato il"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Credit"
-msgstr ""
+msgstr "Avere"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Date"
-msgstr ""
+msgstr "Data"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from
@@ -90,199 +92,199 @@ msgstr ""
#: model:ir.model,name:l10n_it_central_journal_reportlab.model_date_range
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__daterange_id
msgid "Date Range"
-msgstr ""
+msgstr "Intervallo data"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Dates movements"
-msgstr ""
+msgstr "Date dei movimenti"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Debit"
-msgstr ""
+msgstr "Dare"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__display_name
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__display_name
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__display_name
msgid "Display Name"
-msgstr ""
+msgstr "Nome visualizzato"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__draft
msgid "Draft"
-msgstr ""
+msgstr "Bozza"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__central_journal_exclude
msgid "Exclude from General Journal"
-msgstr ""
+msgstr "Escludere da libro giornale"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Final Balance"
-msgstr ""
+msgstr "Saldo finale"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Final print"
-msgstr ""
+msgstr "Stampa definitiva"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from_view
msgid "From date"
-msgstr ""
+msgstr "Dalla data"
#. module: l10n_it_central_journal_reportlab
#: model:ir.ui.menu,name:l10n_it_central_journal_reportlab.menu_giornale
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "General Journal"
-msgstr ""
+msgstr "Libro giornale"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.view_date_range_form_inherit_view
msgid "General Journal Info"
-msgstr ""
+msgstr "Informazioni libro giornale"
#. module: l10n_it_central_journal_reportlab
#: model:ir.actions.act_window,name:l10n_it_central_journal_reportlab.action_giornale_reportlab
msgid "General Journal Reportlab"
-msgstr ""
+msgstr "Libro Giornale Reportlab"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__group_by_account
msgid "Group by account"
-msgstr ""
+msgstr "Raggruppa per conto"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__id
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__id
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__id
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Initial Balance"
-msgstr ""
+msgstr "Saldo iniziale"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model,name:l10n_it_central_journal_reportlab.model_account_journal
msgid "Journal"
-msgstr ""
+msgstr "Registro"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__journal_ids
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Journals"
-msgstr ""
+msgstr "Registri"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal____last_update
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range____last_update
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab____last_update
msgid "Last Modified on"
-msgstr ""
+msgstr "Ultima modifica il"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__write_uid
msgid "Last Updated by"
-msgstr ""
+msgstr "Ultimo aggiornamento di"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__write_date
msgid "Last Updated on"
-msgstr ""
+msgstr "Ultimo aggiornamento il"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__last_def_date_print
msgid "Last definitive date print"
-msgstr ""
+msgstr "Ultima data di stampa in definitivo"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__date_last_print
msgid "Last printed date"
-msgstr ""
+msgstr "Ultima data di stampa"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__fiscal_page_base
msgid "Last printed page"
-msgstr ""
+msgstr "Ultima pagina stampata"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Layout"
-msgstr ""
+msgstr "Struttura"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Name"
-msgstr ""
+msgstr "Nome"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "No documents found in the current selection"
-msgstr ""
+msgstr "Nessun documento trovato per la selezione corrente"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "PDF"
-msgstr ""
+msgstr "PDF"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Page: %s / %s"
-msgstr ""
+msgstr "Pagina: %s / %s"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__target_move__posted
msgid "Posted"
-msgstr ""
+msgstr "Registrato"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Print"
-msgstr ""
+msgstr "Stampa"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__print_state__printed
msgid "Printed"
-msgstr ""
+msgstr "Stampato"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_credit
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__progressive_credit
msgid "Progressive Credit"
-msgstr ""
+msgstr "Progressivo avere"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_debit
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__progressive_debit2
msgid "Progressive Debit"
-msgstr ""
+msgstr "Progressivo dare"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_line_number
msgid "Progressive line"
-msgstr ""
+msgstr "Progressivo riga"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__progressive_page_number
msgid "Progressive of the page"
-msgstr ""
+msgstr "Progressivo pagina"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields.selection,name:l10n_it_central_journal_reportlab.selection__wizard_giornale_reportlab__print_state__print
msgid "Ready for printing"
-msgstr ""
+msgstr "Pronto per la stampa"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__report_giornale
@@ -298,17 +300,17 @@ msgstr ""
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Row"
-msgstr ""
+msgstr "Riga"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__start_row
msgid "Start row"
-msgstr ""
+msgstr "Riga iniziale"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__print_state
msgid "State"
-msgstr ""
+msgstr "Stato"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__target_move
@@ -318,12 +320,12 @@ msgstr ""
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_to
msgid "To date"
-msgstr ""
+msgstr "Alla data"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,help:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__year_footer
msgid "Value printed near number of page in the footer"
-msgstr ""
+msgstr "Valore stampato nel piè di pagina vicino al numero pagina"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model,name:l10n_it_central_journal_reportlab.model_wizard_giornale_reportlab
@@ -334,9 +336,9 @@ msgstr ""
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__year_footer
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "Year for Footer"
-msgstr ""
+msgstr "Anno per il piè di pagina"
#. module: l10n_it_central_journal_reportlab
#: model_terms:ir.ui.view,arch_db:l10n_it_central_journal_reportlab.wizard_giornale_reportlab
msgid "or"
-msgstr ""
+msgstr "oppure"
From 2b16a1bbe43d34aea34444d1c5163fe2f36fd392 Mon Sep 17 00:00:00 2001
From: Francesco Foresti
Date: Wed, 26 Oct 2022 14:26:40 +0000
Subject: [PATCH 04/25] Translated using Weblate (Italian)
Currently translated at 95.0% (57 of 60 strings)
Translation: l10n-italy-14.0/l10n-italy-14.0-l10n_it_central_journal_reportlab
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_central_journal_reportlab/it/
---
l10n_it_central_journal_reportlab/i18n/it.po | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/l10n_it_central_journal_reportlab/i18n/it.po b/l10n_it_central_journal_reportlab/i18n/it.po
index 2894368c0934..6a04f0a79192 100644
--- a/l10n_it_central_journal_reportlab/i18n/it.po
+++ b/l10n_it_central_journal_reportlab/i18n/it.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2022-10-17 18:19+0000\n"
+"PO-Revision-Date: 2022-10-26 16:44+0000\n"
"Last-Translator: Francesco Foresti \n"
"Language-Team: none\n"
"Language: it\n"
@@ -26,13 +26,13 @@ msgstr "Conto"
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account Central Journal - %s.pdf"
-msgstr ""
+msgstr "Libro giornale - %s.pdf"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account Central Journal.pdf"
-msgstr ""
+msgstr "Libro giornale.pdf"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
@@ -86,7 +86,7 @@ msgstr "Data"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__date_move_line_from
msgid "Date Move Line From"
-msgstr ""
+msgstr "Data movimento contabile da"
#. module: l10n_it_central_journal_reportlab
#: model:ir.model,name:l10n_it_central_journal_reportlab.model_date_range
@@ -294,7 +294,7 @@ msgstr ""
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__report_giornale_name
msgid "Report Giornale Name"
-msgstr ""
+msgstr "Nome report giornale"
#. module: l10n_it_central_journal_reportlab
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
From 0efb6605c7acee09de80537483a1619cc65e96b9 Mon Sep 17 00:00:00 2001
From: Borruso
Date: Fri, 4 Nov 2022 10:44:20 +0100
Subject: [PATCH 05/25] [MIG] l10n_it_central_journal_reportlab: Migration to
16.0
---
l10n_it_central_journal_reportlab/README.rst | 34 ++++++---
.../__manifest__.py | 3 +-
.../l10n_it_central_journal_reportlab.pot | 33 +++++---
.../models/account.py | 10 +--
.../static/description/index.html | 40 +++++-----
.../tests/test_central_journal_reportlab.py | 2 +-
.../views/date_range_view.xml | 76 +++++++++----------
.../wizard/print_giornale.py | 53 +++++++------
.../wizard/print_giornale.xml | 6 +-
9 files changed, 146 insertions(+), 111 deletions(-)
diff --git a/l10n_it_central_journal_reportlab/README.rst b/l10n_it_central_journal_reportlab/README.rst
index 1e30f899d36f..0375a736833d 100644
--- a/l10n_it_central_journal_reportlab/README.rst
+++ b/l10n_it_central_journal_reportlab/README.rst
@@ -2,10 +2,13 @@
ITA - Libro giornale - Reportlab
================================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:81dc66dc5700122e5bbf4c1928bbf12a22de5e9c8731d8dd9a4587f0ad927e99
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -14,16 +17,16 @@ ITA - Libro giornale - Reportlab
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github
- :target: https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_central_journal_reportlab
+ :target: https://github.com/OCA/l10n-italy/tree/16.0/l10n_it_central_journal_reportlab
:alt: OCA/l10n-italy
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_central_journal_reportlab
+ :target: https://translation.odoo-community.org/projects/l10n-italy-16-0/l10n-italy-16-0-l10n_it_central_journal_reportlab
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/122/14.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=16.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
**Italiano**
@@ -43,8 +46,8 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -77,6 +80,17 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/l10n-italy `_ project on GitHub.
+.. |maintainer-MarcoCalcagni| image:: https://github.com/MarcoCalcagni.png?size=40px
+ :target: https://github.com/MarcoCalcagni
+ :alt: MarcoCalcagni
+.. |maintainer-Borruso| image:: https://github.com/Borruso.png?size=40px
+ :target: https://github.com/Borruso
+ :alt: Borruso
+
+Current `maintainers `__:
+
+|maintainer-MarcoCalcagni| |maintainer-Borruso|
+
+This module is part of the `OCA/l10n-italy `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/l10n_it_central_journal_reportlab/__manifest__.py b/l10n_it_central_journal_reportlab/__manifest__.py
index 781ec60cf9b4..d224bfe58f05 100644
--- a/l10n_it_central_journal_reportlab/__manifest__.py
+++ b/l10n_it_central_journal_reportlab/__manifest__.py
@@ -3,13 +3,14 @@
{
"name": "ITA - Libro giornale - Reportlab",
- "version": "14.0.1.0.0",
+ "version": "16.0.1.0.0",
"development_status": "Beta",
"category": "Localization/Italy",
"author": "Gianmarco Conte - Dinamiche Aziendali srl, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/l10n-italy",
"license": "AGPL-3",
+ "maintainers": ["MarcoCalcagni", "Borruso"],
"depends": ["account", "date_range"],
"data": [
"security/ir.model.access.csv",
diff --git a/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot b/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot
index 7491a0991a48..ba889f8c4184 100644
--- a/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot
+++ b/l10n_it_central_journal_reportlab/i18n/l10n_it_central_journal_reportlab.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -14,24 +14,35 @@ msgstr ""
"Plural-Forms: \n"
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
+#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
+#, python-format
+msgid " Account Central Journal"
+msgstr ""
+
+#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account Central Journal - %s.pdf"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account Central Journal.pdf"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Account Move"
@@ -43,6 +54,7 @@ msgid "All"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Balance"
@@ -69,12 +81,14 @@ msgid "Created on"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Credit"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Date"
@@ -97,14 +111,13 @@ msgid "Dates movements"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Debit"
msgstr ""
#. module: l10n_it_central_journal_reportlab
-#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__display_name
-#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__display_name
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__display_name
msgid "Display Name"
msgstr ""
@@ -120,6 +133,7 @@ msgid "Exclude from General Journal"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Final Balance"
@@ -153,17 +167,16 @@ msgstr ""
#. module: l10n_it_central_journal_reportlab
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__group_by_account
-msgid "Group by account"
+msgid "Group By Account"
msgstr ""
#. module: l10n_it_central_journal_reportlab
-#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal__id
-#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range__id
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab__id
msgid "ID"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Initial Balance"
@@ -181,8 +194,6 @@ msgid "Journals"
msgstr ""
#. module: l10n_it_central_journal_reportlab
-#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_account_journal____last_update
-#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_date_range____last_update
#: model:ir.model.fields,field_description:l10n_it_central_journal_reportlab.field_wizard_giornale_reportlab____last_update
msgid "Last Modified on"
msgstr ""
@@ -218,12 +229,14 @@ msgid "Layout"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Name"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
@@ -236,9 +249,10 @@ msgid "PDF"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
-msgid "Page: %s / %s"
+msgid "Page: %(year_footer)s / %(page_num)s"
msgstr ""
#. module: l10n_it_central_journal_reportlab
@@ -294,6 +308,7 @@ msgid "Report Giornale Name"
msgstr ""
#. module: l10n_it_central_journal_reportlab
+#. odoo-python
#: code:addons/l10n_it_central_journal_reportlab/wizard/print_giornale.py:0
#, python-format
msgid "Row"
diff --git a/l10n_it_central_journal_reportlab/models/account.py b/l10n_it_central_journal_reportlab/models/account.py
index af8befde1c53..aed850fe182b 100644
--- a/l10n_it_central_journal_reportlab/models/account.py
+++ b/l10n_it_central_journal_reportlab/models/account.py
@@ -15,11 +15,5 @@ class DateRangeInherit(models.Model):
date_last_print = fields.Date("Last printed date")
progressive_page_number = fields.Integer("Progressive of the page")
progressive_line_number = fields.Integer("Progressive line")
- progressive_credit = fields.Float(
- "Progressive Credit",
- digits="Account",
- )
- progressive_debit = fields.Float(
- "Progressive Debit",
- digits="Account",
- )
+ progressive_credit = fields.Float(digits="Account")
+ progressive_debit = fields.Float(digits="Account")
diff --git a/l10n_it_central_journal_reportlab/static/description/index.html b/l10n_it_central_journal_reportlab/static/description/index.html
index 7637731c9492..d6bc5eacd13c 100644
--- a/l10n_it_central_journal_reportlab/static/description/index.html
+++ b/l10n_it_central_journal_reportlab/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
ITA - Libro giornale - Reportlab
-
-
ITA - Libro giornale - Reportlab
+
+
+
+
+
+
+
ITA - Libro giornale - Reportlab
-

+

Italiano
Modulo per la stampa del libro giornale con reportlab
English
@@ -387,7 +392,7 @@
ITA - Libro giornale - Reportlab
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -395,15 +400,15 @@
Do not contact contributors directly about support or help with technical issues.
-
+
-
+
- Gianmarco Conte - Dinamiche Aziendali srl
-
+
This module is maintained by the OCA.
@@ -431,5 +436,6 @@
+
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.py b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
index 3116c46bd801..d5170197371c 100644
--- a/l10n_it_central_journal_reportlab/wizard/print_giornale.py
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
@@ -67,7 +67,7 @@ def _get_journal(self):
)
target_move = fields.Selection(
[("all", "All"), ("posted", "Posted"), ("draft", "Draft")],
- default="all",
+ default="posted",
)
fiscal_page_base = fields.Integer("Last printed page", required=True)
start_row = fields.Integer("Start row", required=True)
@@ -163,6 +163,7 @@ def get_grupped_line_reportlab_ids(self):
AND aml.journal_id IN %(journal_ids)s
AND aml.company_id = %(company_id)s
AND (aml.debit + aml.credit) != 0.0
+ AND aml.account_id IS NOT NULL
GROUP BY
aml.account_id,
am.date,
@@ -214,6 +215,7 @@ def get_line_reportlab_ids(self):
AND am.state IN %(target_type)s
AND aml.journal_id IN %(journal_ids)s
AND aml.company_id = %(company_id)s
+ AND aml.account_id IS NOT NULL
ORDER BY
am.date,
am.name
@@ -400,7 +402,7 @@ def get_grupped_final_tables_report_giornale(
row = Paragraph(str(start_row), style_name)
date = Paragraph(format_date(self.env, line["date"]), style_name)
ref = Paragraph(str(line["ref"]), style_name)
- move = Paragraph(line["move_name"], style_name)
+ move = Paragraph(line["move_name"] or "", style_name)
account = Paragraph(account_name, style_name)
name = Paragraph(line["name"], style_name)
# dato che nel SQL ho la somma dei crediti e debiti potrei avere
@@ -476,7 +478,7 @@ def get_final_tables_report_giornale(
row = Paragraph(str(start_row), style_name)
date = Paragraph(format_date(self.env, line["date"]), style_name)
ref = Paragraph(str(line["ref"]), style_name)
- move = Paragraph(line["move_name"], style_name)
+ move = Paragraph(line["move_name"] or "", style_name)
move_name = line["move_name"] or ""
account = Paragraph(account_name, style_name)
From 76b482477016817266ce95f48727e88840975edf Mon Sep 17 00:00:00 2001
From: Marco Colombo
Date: Thu, 22 Jan 2026 21:02:40 +0100
Subject: [PATCH 22/25] [FIX] l10n_it_central_journal_reportlab: default
company id
Company does not need to be copied from date range.
---
l10n_it_central_journal_reportlab/README.rst | 2 +-
l10n_it_central_journal_reportlab/__manifest__.py | 2 +-
.../static/description/index.html | 2 +-
.../wizard/print_giornale.py | 9 ++++++---
.../wizard/print_giornale.xml | 4 +---
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/l10n_it_central_journal_reportlab/README.rst b/l10n_it_central_journal_reportlab/README.rst
index 87d93f9e35be..71e3f1d71922 100644
--- a/l10n_it_central_journal_reportlab/README.rst
+++ b/l10n_it_central_journal_reportlab/README.rst
@@ -11,7 +11,7 @@ ITA - Libro giornale - Reportlab
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:28212bb97787ae798a6659ad3c61d8c18308eccde4751c93482dc2dbca470111
+ !! source digest: sha256:8abf889bd5d3de88451f307369925ad95acdcb5a0a4deed9e8a94f6e53728a84
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/l10n_it_central_journal_reportlab/__manifest__.py b/l10n_it_central_journal_reportlab/__manifest__.py
index f8759b9b9082..e0e9c1a6c43b 100644
--- a/l10n_it_central_journal_reportlab/__manifest__.py
+++ b/l10n_it_central_journal_reportlab/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "ITA - Libro giornale - Reportlab",
- "version": "18.0.1.0.1",
+ "version": "18.0.1.1.0",
"development_status": "Beta",
"category": "Localization/Italy",
"author": "Gianmarco Conte - Dinamiche Aziendali srl, "
diff --git a/l10n_it_central_journal_reportlab/static/description/index.html b/l10n_it_central_journal_reportlab/static/description/index.html
index 645251813a6c..2bdfdc1fb86c 100644
--- a/l10n_it_central_journal_reportlab/static/description/index.html
+++ b/l10n_it_central_journal_reportlab/static/description/index.html
@@ -372,7 +372,7 @@ ITA - Libro giornale - Reportlab
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:28212bb97787ae798a6659ad3c61d8c18308eccde4751c93482dc2dbca470111
+!! source digest: sha256:8abf889bd5d3de88451f307369925ad95acdcb5a0a4deed9e8a94f6e53728a84
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Italiano
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.py b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
index d5170197371c..d2a24f705163 100644
--- a/l10n_it_central_journal_reportlab/wizard/print_giornale.py
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
@@ -46,7 +46,10 @@ def _get_journal(self):
date_move_line_to = fields.Date("To date", required=True)
daterange_id = fields.Many2one("date.range", "Date Range", required=True)
company_id = fields.Many2one(
- related="daterange_id.company_id", readonly=True, store=True
+ comodel_name="res.company",
+ default=lambda self: self.env.company.id,
+ readonly=True,
+ store=True,
)
progressive_credit = fields.Float()
progressive_debit2 = fields.Float("Progressive Debit")
@@ -181,7 +184,7 @@ def get_grupped_line_reportlab_ids(self):
"date_to": wizard.date_move_line_to,
"target_type": tuple(target_type),
"journal_ids": tuple(self.journal_ids.ids),
- "company_id": self.env.company.id,
+ "company_id": wizard.company_id.id,
}
self.env.cr.execute(sql, params)
list_grupped_line = self.env.cr.dictfetchall()
@@ -225,7 +228,7 @@ def get_line_reportlab_ids(self):
"date_to": wizard.date_move_line_to,
"target_type": tuple(target_type),
"journal_ids": tuple(self.journal_ids.ids),
- "company_id": self.env.company.id,
+ "company_id": wizard.company_id.id,
}
self.env.cr.execute(sql, params)
list_line_not_grouped = self.env.cr.dictfetchall()
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.xml b/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
index faca0fcf12b4..83d2415ee093 100644
--- a/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
@@ -8,9 +8,7 @@
Do not contact contributors directly about support or help with technical issues.
diff --git a/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py b/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py
index d0beaeda78d5..f5633d657c30 100644
--- a/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py
+++ b/l10n_it_central_journal_reportlab/tests/test_central_journal_reportlab.py
@@ -8,17 +8,36 @@
from dateutil.rrule import MONTHLY
-from odoo.tests import Form
-from odoo.tests.common import TransactionCase
+from odoo.tests import Form, tagged
from odoo.tools import pdf
+from odoo.addons.account.tests.common import AccountTestInvoicingCommon
-class TestCentralJournalReportlab(TransactionCase):
+
+@tagged("post_install", "-at_install")
+class TestCentralJournalReportlab(AccountTestInvoicingCommon):
def setUp(self):
super().setUp()
self.today = datetime.now()
- self.range_type = self.env["date.range.type"].create({"name": "Fiscal year"})
+ self.data_it_company = self.setup_other_company(
+ name="IT Company2",
+ vat="IT01234560157",
+ phone="0266766700",
+ email="test@test.it",
+ street="1234 Test Street",
+ zip="12345",
+ city="Prova",
+ )
+ self.it_company = self.data_it_company["company"]
+ self.env.user.company_ids |= self.it_company
+ self.env.user.company_id = self.it_company
+ # Now that current user can access the company,
+ # log the user *only* in this company so that
+ # searching, reading and other operations behave as expected
+ self.env.user.company_ids = self.it_company
+
+ self.range_type = self.env["date.range.type"].create({"name": "Fiscal Year"})
self.env["date.range.generator"].create(
{
"date_start": f"{self.today.year}-01-01",
@@ -33,14 +52,39 @@ def setUp(self):
[
("date_start", "<=", self.today.date()),
("date_end", ">=", self.today.date()),
- ]
+ ],
+ limit=1,
)
self.wizard_model = self.env["wizard.giornale.reportlab"]
self.report_model = self.env["ir.actions.report"]
self.report_name = "central_journal_reportlab.report_giornale_reportlab"
self.journals = self.env["account.journal"].search([])
+ self.partner = self.env["res.partner"].create(
+ {
+ "name": "Wood Corner",
+ "is_company": True,
+ "street": "1839 Arbor Way",
+ "city": "Turlock",
+ "state_id": self.env.ref("base.state_us_5").id,
+ "zip": "95380",
+ "email": "wood.corner26@example.com",
+ "phone": "(623)-853-7197",
+ "vat": "US12345672",
+ }
+ )
def test_wizard_reportlab(self):
+ out_invoice = Form(
+ self.env["account.move"].with_context(default_move_type="out_invoice")
+ )
+ out_invoice.partner_id = self.partner
+ out_invoice.invoice_date = self.today
+ with out_invoice.invoice_line_ids.new() as line:
+ line.name = "Test line"
+ line.price_unit = 100
+ out_invoice = out_invoice.save()
+ out_invoice.action_post()
+
wizard_form = Form(self.wizard_model)
wizard_form.daterange_id = self.current_period
wizard = wizard_form.save()
@@ -68,7 +112,7 @@ def test_grouped_move_line_no_account(self):
out_invoice = Form(
self.env["account.move"].with_context(default_move_type="out_invoice")
)
- out_invoice.partner_id = self.env.ref("base.res_partner_1")
+ out_invoice.partner_id = self.partner
out_invoice.invoice_date = self.today
with out_invoice.invoice_line_ids.new() as note_line:
note_line.display_type = "line_note"
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.py b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
index 80ac477b3951..3be89522dc42 100644
--- a/l10n_it_central_journal_reportlab/wizard/print_giornale.py
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
@@ -15,7 +15,7 @@
from reportlab.platypus import Table
from reportlab.platypus.paragraph import Paragraph
-from odoo import _, api, fields, models
+from odoo import api, fields, models
from odoo.exceptions import UserError
from odoo.tools.misc import format_date, formatLang
@@ -64,7 +64,7 @@ def _get_journal(self):
"giornale_reportlab_journals_rel",
"journal_id",
"giornale_reportlab_id",
- default=_get_journal,
+ default=lambda self: self._get_journal(),
string="Journals",
required=True,
)
@@ -86,11 +86,11 @@ def _get_journal(self):
def _compute_report_giornale_name(self):
for wizard in self:
if wizard.report_giornale and wizard.daterange_id:
- wizard.report_giornale_name = (
- _("Account Central Journal - %s.pdf") % wizard.daterange_id.name
+ wizard.report_giornale_name = self.env._(
+ "Account Central Journal - %s.pdf", wizard.daterange_id.name
)
elif wizard.report_giornale:
- wizard.report_giornale_name = _("Account Central Journal.pdf")
+ wizard.report_giornale_name = self.env._("Account Central Journal.pdf")
else:
wizard.report_giornale_name = False
@@ -145,7 +145,8 @@ def get_grupped_line_reportlab_ids(self):
target_type = ["posted", "draft"]
else:
target_type = [wizard.target_move]
- sql = """SELECT
+ sql = """
+ SELECT
aml.account_id AS account_id,
am.date,
am.name AS move_name,
@@ -178,7 +179,7 @@ def get_grupped_line_reportlab_ids(self):
ORDER BY
am.date,
am.name
- """
+ """
params = {
"date_from": wizard.date_move_line_from,
"date_to": wizard.date_move_line_to,
@@ -196,33 +197,34 @@ def get_line_reportlab_ids(self):
target_type = ["posted", "draft"]
else:
target_type = [wizard.target_move]
- sql = """SELECT
- aml.account_id AS account_id,
- am.date,
- am.name AS move_name,
- COALESCE(aml.ref, '') AS ref,
- aa.name AS account_name,
- COALESCE(aml.name, '') AS name,
- rp.name AS partner_name,
- aa.account_type AS account_type,
- aml.debit AS debit,
- aml.credit AS credit
- FROM
- account_move_line aml
- LEFT JOIN account_move am ON (am.id = aml.move_id)
- LEFT JOIN account_account aa ON (aa.id = aml.account_id)
- LEFT JOIN res_partner rp ON am.partner_id = rp.id
- WHERE
- aml.date >= %(date_from)s
- AND aml.date <= %(date_to)s
- AND am.state IN %(target_type)s
- AND aml.journal_id IN %(journal_ids)s
- AND aml.company_id = %(company_id)s
- AND aml.account_id IS NOT NULL
- ORDER BY
- am.date,
- am.name
- """
+ sql = """
+ SELECT
+ aml.account_id AS account_id,
+ am.date,
+ am.name AS move_name,
+ COALESCE(aml.ref, '') AS ref,
+ aa.name AS account_name,
+ COALESCE(aml.name, '') AS name,
+ rp.name AS partner_name,
+ aa.account_type AS account_type,
+ aml.debit AS debit,
+ aml.credit AS credit
+ FROM
+ account_move_line aml
+ LEFT JOIN account_move am ON (am.id = aml.move_id)
+ LEFT JOIN account_account aa ON (aa.id = aml.account_id)
+ LEFT JOIN res_partner rp ON am.partner_id = rp.id
+ WHERE
+ aml.date >= %(date_from)s
+ AND aml.date <= %(date_to)s
+ AND am.state IN %(target_type)s
+ AND aml.journal_id IN %(journal_ids)s
+ AND aml.company_id = %(company_id)s
+ AND aml.account_id IS NOT NULL
+ ORDER BY
+ am.date,
+ am.name
+ """
params = {
"date_from": wizard.date_move_line_from,
"date_to": wizard.date_move_line_to,
@@ -243,7 +245,7 @@ def get_template_header_report_giornale(self, report, height_available):
report.drawString(
margin_left,
height_available,
- self.company_id.name + _(" Account Central Journal"),
+ self.company_id.name + self.env._(" Account Central Journal"),
)
report.setFont("Helvetica", 10)
text = ""
@@ -263,10 +265,11 @@ def get_template_header_report_giornale(self, report, height_available):
def get_template_footer_report_giornale(self, report):
page_num = report.getPageNumber() + self.fiscal_page_base
- page_text = _("Page: %(year_footer)s / %(page_num)s") % {
- "year_footer": self.year_footer,
- "page_num": page_num,
- }
+ page_text = self.env._(
+ "Page: %(year_footer)s / %(page_num)s",
+ year_footer=self.year_footer,
+ page_num=page_num,
+ )
report.drawString(margin_left, margin_bottom + 12, page_text)
def get_styles_report_giornale_line(self):
@@ -326,14 +329,14 @@ def get_data_header_report_giornale(self):
data_header = [
[
- Paragraph(_("Row"), style_header),
- Paragraph(_("Date"), style_header),
- Paragraph(_("Ref"), style_header),
- Paragraph(_("Number"), style_header),
- Paragraph(_("Account"), style_header),
- Paragraph(_("Name"), style_header),
- Paragraph(_("Debit"), style_header_number),
- Paragraph(_("Credit"), style_header_number),
+ Paragraph(self.env._("Row"), style_header),
+ Paragraph(self.env._("Date"), style_header),
+ Paragraph(self.env._("Ref"), style_header),
+ Paragraph(self.env._("Number"), style_header),
+ Paragraph(self.env._("Account"), style_header),
+ Paragraph(self.env._("Name"), style_header),
+ Paragraph(self.env._("Debit"), style_header_number),
+ Paragraph(self.env._("Credit"), style_header_number),
]
]
return data_header
@@ -349,7 +352,7 @@ def get_initial_balance_data_report_giornale(self):
"",
"",
"",
- Paragraph(_("Initial Balance"), style_name),
+ Paragraph(self.env._("Initial Balance"), style_name),
Paragraph(formatLang(self.env, progressive_debit), style_number),
Paragraph(formatLang(self.env, progressive_credit), style_number),
]
@@ -381,6 +384,8 @@ def get_grupped_final_tables_report_giornale(
company = self.env.company
user_lang = company.partner_id.lang
model_account = self.env["account.account"]
+
+ # pylint: disable=no-search-all
all_account = model_account.search([]).filtered(
lambda acc: company.id in acc.company_ids.ids
)
@@ -459,6 +464,8 @@ def get_final_tables_report_giornale(
company = self.env.company
user_lang = company.partner_id.lang
model_account = self.env["account.account"]
+
+ # pylint: disable=no-search-all
all_account = model_account.search([]).filtered(
lambda acc: company.id in acc.company_ids.ids
)
@@ -517,9 +524,9 @@ def get_balance_data_report_giornale(self, tot_debit, tot_credit, final=False):
style_number = self.get_styles_report_giornale_line()["style_number"]
if final:
- name = Paragraph(_("Final Balance"), style_name)
+ name = Paragraph(self.env._("Final Balance"), style_name)
else:
- name = Paragraph(_("Balance"), style_name)
+ name = Paragraph(self.env._("Balance"), style_name)
balance_data = [
[
@@ -562,14 +569,18 @@ def create_report_giornale_reportlab(self):
if self.group_by_account:
list_grupped_line = self.get_grupped_line_reportlab_ids()
if not list_grupped_line:
- raise UserError(_("No documents found in the current selection"))
+ raise UserError(
+ self.env._("No documents found in the current selection")
+ )
final_tables, list_balance = self.get_grupped_final_tables_report_giornale(
list_grupped_line, tables, start_row, width_available
)
else:
list_line_not_grouped = self.get_line_reportlab_ids()
if not list_line_not_grouped:
- raise UserError(_("No documents found in the current selection"))
+ raise UserError(
+ self.env._("No documents found in the current selection")
+ )
final_tables, list_balance = self.get_final_tables_report_giornale(
list_line_not_grouped, tables, start_row, width_available
)
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.xml b/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
index 83d2415ee093..9755ee32661f 100644
--- a/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.xml
@@ -66,6 +66,7 @@
General Journal Reportlab
+ general-journal-reportlab
wizard.giornale.reportlab
form
From 536120476095ee779c7c815ee5142e0a6e45207b Mon Sep 17 00:00:00 2001
From: micheledic
Date: Thu, 11 Sep 2025 11:02:29 +0200
Subject: [PATCH 25/25] [FIX] l10n_it_central_journal_reportlab: exclude notes
and sections from report This PR fixes exclude the lines of notes and section
from the export
---
l10n_it_central_journal_reportlab/README.rst | 4 ++++
l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.md | 2 ++
.../static/description/index.html | 4 ++++
l10n_it_central_journal_reportlab/wizard/print_giornale.py | 2 ++
4 files changed, 12 insertions(+)
diff --git a/l10n_it_central_journal_reportlab/README.rst b/l10n_it_central_journal_reportlab/README.rst
index 511c529b52e2..5474aa3f52f2 100644
--- a/l10n_it_central_journal_reportlab/README.rst
+++ b/l10n_it_central_journal_reportlab/README.rst
@@ -74,6 +74,10 @@ Contributors
- Simone Rubino
+- `Stesi Consulting `__:
+
+ - Michele Di Croce
+
Maintainers
-----------
diff --git a/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.md b/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.md
index b28d80fd098c..b3dd883d5953 100644
--- a/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.md
+++ b/l10n_it_central_journal_reportlab/readme/CONTRIBUTORS.md
@@ -4,3 +4,5 @@
- Giuseppe Borruso \<\>
- [Aion Tech](https://aiontech.company/):
- Simone Rubino \<\>
+- [Stesi Consulting](https://www.stesi.consulting/):
+ - Michele Di Croce \<\>
\ No newline at end of file
diff --git a/l10n_it_central_journal_reportlab/static/description/index.html b/l10n_it_central_journal_reportlab/static/description/index.html
index 32acbb376cb9..41c420453e28 100644
--- a/l10n_it_central_journal_reportlab/static/description/index.html
+++ b/l10n_it_central_journal_reportlab/static/description/index.html
@@ -418,6 +418,10 @@
Simone Rubino <simone.rubino@aion-tech.it>
+Stesi Consulting:
+
diff --git a/l10n_it_central_journal_reportlab/wizard/print_giornale.py b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
index 3be89522dc42..c1cc804ebb1c 100644
--- a/l10n_it_central_journal_reportlab/wizard/print_giornale.py
+++ b/l10n_it_central_journal_reportlab/wizard/print_giornale.py
@@ -1,6 +1,7 @@
# Copyright 2018 Gianmarco Conte (gconte@dinamicheaziendali.it)
# Copyright 2022 Giuseppe Borruso (gborruso@dinamicheaziendali.it)
# Copyright 2024 Simone Rubino - Aion Tech
+# Copyright 2025 Michele Di Croce - Stesi Consulting
import base64
import io
@@ -221,6 +222,7 @@ def get_line_reportlab_ids(self):
AND aml.journal_id IN %(journal_ids)s
AND aml.company_id = %(company_id)s
AND aml.account_id IS NOT NULL
+ AND aml.display_type NOT IN ('line_note','line_section')
ORDER BY
am.date,
am.name