=============================
Report Display Name in Footer
=============================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:36608933c95d495c5b1ec36cf366820be3d8ccb5b4646203cd2dd7bc3224e359
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
    :target: https://odoo-community.org/page/development-status
    :alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
    :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
    :alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
    :target: https://github.com/OCA/reporting-engine/tree/18.0/report_display_name_in_footer
    :alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-report_display_name_in_footer
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the pagination functionality in reports to display
the name of the document on each page of PDFs, allowing you to know
which document each page belongs to and in what order they should
appear.

Pagination will appear on the left side and document name on the right
side of the footer.

Implementation Details
~~~~~~~~~~~~~~~~~~~~~~

The pagination and document name positioning is implemented differently
across report layouts:

**Layouts using ``replace`` (``Standard``, ``Folder``):**

- The entire report_footer container div is **replaced** to recreate the
  structure with the pagination moved below the company footer
- This approach is necessary because these layouts use
  ``<div t-field="company.report_footer"/>`` instead of ``<span>``, and
  you cannot add child elements inside the element.
- The original pagination div is deleted first, then the new structure
  is created with both the company footer and pagination in the correct
  order

**Other layouts (``Striped``, ``Boxed``, ``Bold``, ``Bubble``,
``Wave``):**

- Elements are repositioned using ``move`` operations or by adding CSS
  classes (``float-start``, ``float-end``)

In all cases, the comma separator originally present in the document
name is removed by modifying the ``t-out`` attribute.

.. IMPORTANT::
   This is an alpha version, the data model and design can change at any time without warning.
   Only for development or testing purpose, do not use in production.
   `More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
   :local:

Use Cases / Context
===================

Printing the name of the document on footer is only allowed by default
to invoices by setting ``account.display_name_in_footer`` to True.

This module was developed because there is no way to print other
document names on each page of reports.

It will be useful for you if you want to print the name of the document
in the footer pages to quickly know what page belongs to what document.

Also you can define what documents will have the document name in its
footer.

Configuration
=============

To configure this module, you need to:

1. Go to System parameters and create or edit
   ``report.display_name_in_footer_models`` parameter.

2. Add desired model names separated by comma.

   - If you want to print name on all reports, just write 'all' on the
     value.
   - If you want to exclude certain models, add '-' before model name.

3. Examples:

   - Only few models: sale.order,purchase.order,stock.picking
   - All models: all
   - All models except two: all,-sale.order,-purchase.order

4. The field printed in the report will be *name* for any type of
   document. If your document doesn't have this field, please exclude
   from the list with '-' and the name of the model.

5. Compatible on all document layout:

   - Light
   - Boxed
   - Bold
   - Striped
   - Bubble
   - Wave
   - Folder

6. Compatible report types:

   - PDF

Usage
=====

To use this module, you need to:

1. Go to System Parameters.
2. Add your desired models or use 'all' to show document name on all
   type of documents.
3. Print a report for you desired model.
4. Check Footer to see document name.

Known issues / Roadmap
======================

When this module is checking if the model has to display the name in the
footer is done at the level of the initial model of the report you are
printing.

Examples of strange cases/uses: *stock_picking_batch_print_pickings* and
*stock_picking_batch_print_invoices* modules print the delivery notes or
invoices of the Pickings associated with the Batch, but the report is
being launched from the Batch. So, the header and footer belongs to the
Batch.

Within that report, calls are made to the invoice or delivery note
reports, but the check to see if the name of the document has to be
printed in the footer is done on the Batch.

Therefore, if you set the configuration parameter to "stock.picking,
account.move" , the names printed from that report will not appear. By
setting it to "stock.picking.batch", the module will establish that all
the documents contained in that report (whether invoices or delivery
notes) must include the name in the footer.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/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
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_display_name_in_footer%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Moduon

Contributors
------------

- Eduardo de Miguel (`Moduon <https://www.moduon.team/>`__)
- Rafael Blasco (`Moduon <https://www.moduon.team/>`__)
- Joel Estrada (`Moduon <https://www.moduon.team/>`__)

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.

.. |maintainer-Shide| image:: https://github.com/Shide.png?size=40px
    :target: https://github.com/Shide
    :alt: Shide
.. |maintainer-rafaelbn| image:: https://github.com/rafaelbn.png?size=40px
    :target: https://github.com/rafaelbn
    :alt: rafaelbn

Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-Shide| |maintainer-rafaelbn| 

This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/18.0/report_display_name_in_footer>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
