Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions sale_order_invoicing_picking_filter/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
===================================
Sale Order Invoicing Picking Filter
===================================

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

.. |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%2Fsale--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/sale-workflow/tree/18.0/sale_order_invoicing_picking_filter
:alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-workflow-18-0/sale-workflow-18-0-sale_order_invoicing_picking_filter
: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/sale-workflow&target_branch=18.0
:alt: Try me on Runboat

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

This modules allows to create invoices from sale orders based on the
products in pickings related to the order.

**Table of contents**

.. contents::
:local:

Usage
=====

To create invoices from a single sale order containing the products and
quantities in the pickings related to the order, you need to:

- Click on the "Create Invoice" button in the sale order.
- Select "Regular Invoice" as the invoicing mode.
- Select the pickings whose products and quantities need to be invoiced.
If no pickings are selected, the process follows the regular flow.

To create invoices from multiple sale orders containing products and
quantities in the pickings related to those orders, you need to:

- Select the sale orders from the sale order tree view.
- Click on Action > Create Invoices
- Select the pickings whose products and quantities need to be invoiced.
The invoices are grouped when possible. If no pickings are selected,
the process follows the regular flow.

To invoice the products and quantities in the pickings related to the
orders and also invoice the service products from the sales orders (if
any), check the 'Invoice Service Products' checkbox.

In addition, you will notice that if there is any sale of the selected
pickings that contains any uninvoiced service products, a message will
appear confirming this fact and the 'Invoice Service Products' checkbox
will be checked by default, but it is editable.

The field "Invoiced" in the "Additional Info" tab in pickings shows
whether the products in the stock picking have been invoiced. This field
is automatically updated. However, it can manually be set to True or
False. Only pickings with the field set to False can be selected in the
invoicing Wizard.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/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/sale-workflow/issues/new?body=module:%20sale_order_invoicing_picking_filter%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
-------

* Sygel

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

- `Sygel <https://sygel.es>`__:

- Manuel Regidor <manuel.regidor@sygel.es>
- Harald Panten <harald.panten@sygel.es>
- Valentín Vinagre <valentin.vinagre@sygel.es>

- `Tessera <https://tesseratech.es>`__:

- Abraham Anes <abraham@tesseratech.es>

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/sale-workflow <https://github.com/OCA/sale-workflow/tree/18.0/sale_order_invoicing_picking_filter>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions sale_order_invoicing_picking_filter/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright 2023 Manuel Regidor <manuel.regidor@sygel.es>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
from . import wizard
18 changes: 18 additions & 0 deletions sale_order_invoicing_picking_filter/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2023 Manuel Regidor <manuel.regidor@sygel.es>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Sale Order Invoicing Picking Filter",
"summary": "Create invoices from sale orders based on the products in pickings.",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"author": "Sygel, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/sale-workflow",
"category": "Invoicing",
"depends": ["sale_stock", "stock_picking_invoice_link"],
"data": [
"wizard/sale_make_invoice_advanced_views.xml",
"views/stock_picking_views.xml",
],
"installable": True,
}
76 changes: 76 additions & 0 deletions sale_order_invoicing_picking_filter/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_invoicing_picking_filter
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-01-12 14:34+0000\n"
"Last-Translator: Harald Panten <harald.panten@sygel.es>\n"
"Language-Team: none\n"
"Language: es\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.17\n"

#. module: sale_order_invoicing_picking_filter
#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_picking_filter.sale_order_invoiceing_picking_filter_invoice_wizard
msgid ""
"<span attrs=\"{'invisible': [('there_are_service_product', '=', False)]}\">\n"
" There are any non-invoiced service products among the selected pickings\n"
" </span>"
msgstr ""
"<span attrs=\"{'invisible': [('there_are_service_product', '=', False)]}\">\n"
" Existen productos de tipo servicio sin facturar en "
"los albaranes seleccionados\n"
" </span>"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,help:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__inv_service_products
msgid "If selected and there is a service type product, it will be invoiced."
msgstr ""
"Si se selecciona, en caso de que exista algún producto de tipo servicio "
"también será facturado."

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__inv_service_products
msgid "Invoice Service Products"
msgstr "Facturar productos de tipo servicio"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_stock_picking__invoiced
msgid "Invoiced"
msgstr "Facturado"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__stock_picking_ids
msgid "Pickings"
msgstr "Albaranes"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Factura de anticipo de ventas"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venta"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línea de pedido de venta"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__there_are_service_product
msgid "There are a Service Product"
msgstr "Existe algún producto de tipo servicio"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_stock_picking
msgid "Transfer"
msgstr "Transferencia"
75 changes: 75 additions & 0 deletions sale_order_invoicing_picking_filter/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_invoicing_picking_filter
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-01-05 13:53+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\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.17\n"

#. module: sale_order_invoicing_picking_filter
#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_picking_filter.sale_order_invoiceing_picking_filter_invoice_wizard
msgid ""
"<span attrs=\"{'invisible': [('there_are_service_product', '=', False)]}\">\n"
" There are any non-invoiced service products among the selected pickings\n"
" </span>"
msgstr ""
"<span attrs=\"{'invisible': [('there_are_service_product', '=', False)]}\">\n"
" Ci sono dei prodtti servizio non fatturati tra i "
"prelievi selezionati\n"
" </span>"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,help:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__inv_service_products
msgid "If selected and there is a service type product, it will be invoiced."
msgstr ""
"Se selezionata e ci sono dei prodotti di tipo servizio, verrà fatturata."

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__inv_service_products
msgid "Invoice Service Products"
msgstr "Fattura prodotti servizio"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_stock_picking__invoiced
msgid "Invoiced"
msgstr "Fatturato"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__stock_picking_ids
msgid "Pickings"
msgstr "Prelievi"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Fattura di vendita con pagamento anticipato"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_order
msgid "Sales Order"
msgstr "Ordine di vendita"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_order_line
msgid "Sales Order Line"
msgstr "Riga ordine di vendita"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__there_are_service_product
msgid "There are a Service Product"
msgstr "C'è un prodotto servizio"

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_stock_picking
msgid "Transfer"
msgstr "Trasferimento"
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_invoicing_picking_filter
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.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: sale_order_invoicing_picking_filter
#: model_terms:ir.ui.view,arch_db:sale_order_invoicing_picking_filter.sale_order_invoiceing_picking_filter_invoice_wizard
msgid ""
"<span attrs=\"{'invisible': [('there_are_service_product', '=', False)]}\">\n"
" There are any non-invoiced service products among the selected pickings\n"
" </span>"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,help:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__inv_service_products
msgid "If selected and there is a service type product, it will be invoiced."
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__inv_service_products
msgid "Invoice Service Products"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_stock_picking__invoiced
msgid "Invoiced"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__stock_picking_ids
msgid "Pickings"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_order
msgid "Sales Order"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model.fields,field_description:sale_order_invoicing_picking_filter.field_sale_advance_payment_inv__there_are_service_product
msgid "There are a Service Product"
msgstr ""

#. module: sale_order_invoicing_picking_filter
#: model:ir.model,name:sale_order_invoicing_picking_filter.model_stock_picking
msgid "Transfer"
msgstr ""
6 changes: 6 additions & 0 deletions sale_order_invoicing_picking_filter/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright 2023 Manuel Regidor <manuel.regidor@sygel.es>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import stock_picking
from . import sale_order
from . import sale_order_line
Loading
Loading