Merge PR #132 into 14.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2021-01-11 15:06:04 +00:00
24 changed files with 1622 additions and 0 deletions

View File

@@ -0,0 +1 @@
../../../../stock_picking_report_valued

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)

View File

@@ -0,0 +1,110 @@
=====================
Valued Picking Report
=====================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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%2Fstock--logistics--reporting-lightgray.png?logo=github
:target: https://github.com/OCA/stock-logistics-reporting/tree/14.0/stock_picking_report_valued
:alt: OCA/stock-logistics-reporting
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/stock-logistics-reporting-14-0/stock-logistics-reporting-14-0-stock_picking_report_valued
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/151/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
Add amount information to Delivery Slip report.
You can select at partner level if picking list report must be valued or not.
If the picking is done it's valued with quantity done, otherwise the picking
is valued with reserved quantity.
**Table of contents**
.. contents::
:local:
Configuration
=============
#. Go to *Customers > (select one of your choice) > Sales & Purchases*.
#. Set *Valued picking* field on.
Usage
=====
To get the stock picking valued report:
#. Create a Sales Order with storable products a *Valued picking* able
customer.
#. Confirm the Sale Order.
#. Click on *Delivery* stat button.
#. Go to *Print > Delivery Slip*.
Known issues / Roadmap
======================
* If the picking is not reserved, values aren't computed.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-reporting/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 <https://github.com/OCA/stock-logistics-reporting/issues/new?body=module:%20stock_picking_report_valued%0Aversion:%2014.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
~~~~~~~
* Tecnativa
Contributors
~~~~~~~~~~~~
* `Avanzosc <http://www.avanzosc.es>`_:
* Oihane Crucelaegui
* `Tecnativa <https://www.tecnativa.com>`_:
* Pedro M. Baeza
* Antonio Espinosa
* Carlos Dauden
* David Vidal
* Luis M. Ontalba
* Ernesto Tejeda
* Sergio Teruel
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/stock-logistics-reporting <https://github.com/OCA/stock-logistics-reporting/tree/14.0/stock_picking_report_valued>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,19 @@
# Copyright 2014 Pedro M. Baeza - Tecnativa <pedro.baeza@tecnativa.com>
# Copyright 2015 Antonio Espinosa - Tecnativa <antonio.espinosa@tecnativa.com>
# Copyright 2016-2019 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
# Copyright 2017 David Vidal - Tecnativa <david.vidal@tecnativa.com>
# Copyright 2017 Luis M. Ontalba - Tecnativa <luis.martinez@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Valued Picking Report",
"summary": "Adding Valued Picking on Delivery Slip report",
"version": "14.0.1.0.0",
"author": "Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/stock-logistics-reporting",
"category": "Warehouse Management",
"license": "AGPL-3",
"depends": ["sale_management", "stock"],
"data": ["views/res_partner_view.xml", "report/stock_picking_report_valued.xml"],
"installable": True,
}

View File

@@ -0,0 +1,154 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_report_valued
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-21 08:13+0000\n"
"PO-Revision-Date: 2017-08-21 10:13+0200\n"
"Last-Translator: Carlos Dauden <carlos.dauden@tecnativa.com>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"X-Generator: Poedit 1.8.7.1\n"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Discount</strong>"
msgstr "<strong>Dto</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
#, fuzzy
msgid "<strong>Qty Reserved</strong>"
msgstr "<strong>Precio Unidad</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Subtotal</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Taxes</strong>"
msgstr "<strong>Impuestos</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Total</strong>"
msgstr "<strong>Total</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Unit Price</strong>"
msgstr "<strong>Precio Unidad</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Untaxed Amount</strong>"
msgstr "<strong>Base imponible</strong>"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_res_partner
msgid "Contact"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__currency_id
msgid "Currency"
msgstr "Moneda"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_subtotal
msgid "Price subtotal"
msgstr "Subtotal"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_move_line
msgid "Product Moves (Stock Move Line)"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_line
msgid "Related order line"
msgstr "Línea de pedido relacionada"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__currency_id
#, fuzzy
msgid "Sale Currency"
msgstr "Moneda"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_id
msgid "Sale Tax"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_discount
msgid "Sale discount (%)"
msgstr "Descuento venta (%)"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_unit
msgid "Sale price unit"
msgstr "Precio venta"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_description
msgid "Tax Description"
msgstr "Descripción de impuesto"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_tax
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_tax
msgid "Taxes"
msgstr "Impuestos"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_total
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_total
msgid "Total"
msgstr "Total"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_picking
msgid "Transfer"
msgstr "Transferir"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_untaxed
msgid "Untaxed Amount"
msgstr "Base imponible"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__valued
#, fuzzy
msgid "Valued Picking"
msgstr "Albarán valorado"
#. module: stock_picking_report_valued
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_stock_picking__valued
msgid "You can select which partners have valued pickings"
msgstr "Puede seleccionar qué empresas tienen albarán valorado"
#~ msgid "Packing Operation"
#~ msgstr "Operación de empaquetado"
#~ msgid "Partner"
#~ msgstr "Empresa"
#~ msgid "Website Messages"
#~ msgstr "Mensajes del sitio web"
#~ msgid "Website communication history"
#~ msgstr "Historial de comunicaciones del sitio web"

View File

@@ -0,0 +1,149 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_report_valued
#
# Translators:
# Bole <bole@dajmi5.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-01 02:22+0000\n"
"PO-Revision-Date: 2017-12-01 02:22+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2018\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Discount</strong>"
msgstr "<strong>Popust</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
#, fuzzy
msgid "<strong>Qty Reserved</strong>"
msgstr "<strong>Jed.cijena</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Subtotal</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Taxes</strong>"
msgstr "<strong>Porezi</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Total</strong>"
msgstr "<strong>Total</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Unit Price</strong>"
msgstr "<strong>Jed.cijena</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Untaxed Amount</strong>"
msgstr "<strong>Bez poreza</strong>"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_res_partner
msgid "Contact"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__currency_id
msgid "Currency"
msgstr "Valuta"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_subtotal
msgid "Price subtotal"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_move_line
msgid "Product Moves (Stock Move Line)"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_line
msgid "Related order line"
msgstr "Povezana stavka ponude"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__currency_id
#, fuzzy
msgid "Sale Currency"
msgstr "Valuta"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_id
msgid "Sale Tax"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_discount
msgid "Sale discount (%)"
msgstr "Popust prodaje (%)"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_unit
msgid "Sale price unit"
msgstr "Prodajna cijena"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_description
msgid "Tax Description"
msgstr "Opis poreza"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_tax
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_tax
msgid "Taxes"
msgstr "Porezi"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_total
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_total
msgid "Total"
msgstr "Ukupno"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_picking
msgid "Transfer"
msgstr "Transfer"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_untaxed
msgid "Untaxed Amount"
msgstr "Iznos bez poreza"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__valued
msgid "Valued Picking"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_stock_picking__valued
msgid "You can select which partners have valued pickings"
msgstr ""
#~ msgid "Packing Operation"
#~ msgstr "Operacija pakiranja"
#~ msgid "Partner"
#~ msgstr "Partner"

View File

@@ -0,0 +1,139 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_report_valued
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-09-29 11:00+0000\n"
"Last-Translator: erik-bzcl <erik@bizicloud.ro>\n"
"Language-Team: none\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 3.10\n"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Discount</strong>"
msgstr "<strong>Discount</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Qty Reserved</strong>"
msgstr "<strong>Cant Rezervată</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Subtotal</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Taxes</strong>"
msgstr "<strong>Taxe</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Total</strong>"
msgstr "<strong>Total</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Unit Price</strong>"
msgstr "<strong>Preţ unitar</strong>"
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Untaxed Amount</strong>"
msgstr "<strong>Valoare fără TVA</strong>"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_res_partner
msgid "Contact"
msgstr "Contact"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__currency_id
msgid "Currency"
msgstr "Moneda"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_subtotal
msgid "Price subtotal"
msgstr "Subtotal preţ"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_move_line
msgid "Product Moves (Stock Move Line)"
msgstr "Mişcări de produs (Linie mişcare stoc)"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_line
msgid "Related order line"
msgstr "Linie de comandă asociată"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__currency_id
msgid "Sale Currency"
msgstr "Moneda vânzării"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_id
msgid "Sale Tax"
msgstr "TVA"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_discount
msgid "Sale discount (%)"
msgstr "Discount (%)"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_unit
msgid "Sale price unit"
msgstr "Preţ unitar"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_description
msgid "Tax Description"
msgstr "Descriere taxă"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_tax
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_tax
msgid "Taxes"
msgstr "Taxe"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_total
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_total
msgid "Total"
msgstr "Total"
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_picking
msgid "Transfer"
msgstr "Transfer"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_untaxed
msgid "Untaxed Amount"
msgstr "Valoare fără TVA"
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__valued
msgid "Valued Picking"
msgstr "Transfer preţuit"
#. module: stock_picking_report_valued
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_stock_picking__valued
msgid "You can select which partners have valued pickings"
msgstr "Puteţi selecta partenerii cu transferuri preţuite"

View File

@@ -0,0 +1,135 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_picking_report_valued
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.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: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Discount</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Qty Reserved</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Subtotal</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Taxes</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Total</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Unit Price</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model_terms:ir.ui.view,arch_db:stock_picking_report_valued.valued_report_picking
msgid "<strong>Untaxed Amount</strong>"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_res_partner
msgid "Contact"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__currency_id
msgid "Currency"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_subtotal
msgid "Price subtotal"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_move_line
msgid "Product Moves (Stock Move Line)"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_line
msgid "Related order line"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__currency_id
msgid "Sale Currency"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_id
msgid "Sale Tax"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_discount
msgid "Sale discount (%)"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_unit
msgid "Sale price unit"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_tax_description
msgid "Tax Description"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_tax
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_tax
msgid "Taxes"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_move_line__sale_price_total
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_total
msgid "Total"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model,name:stock_picking_report_valued.model_stock_picking
msgid "Transfer"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__amount_untaxed
msgid "Untaxed Amount"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,field_description:stock_picking_report_valued.field_stock_picking__valued
msgid "Valued Picking"
msgstr ""
#. module: stock_picking_report_valued
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_partner__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_res_users__valued_picking
#: model:ir.model.fields,help:stock_picking_report_valued.field_stock_picking__valued
msgid "You can select which partners have valued pickings"
msgstr ""

View File

@@ -0,0 +1,3 @@
from . import res_partner
from . import stock_move_line
from . import stock_picking

View File

@@ -0,0 +1,14 @@
# Copyright 2014 Pedro M. Baeza - Tecnativa <pedro.baeza@tecnativa.com>
# Copyright 2015 Antonio Espinosa - Tecnativa <antonio.espinosa@tecnativa.com>
# Copyright 2016 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResPartner(models.Model):
_inherit = "res.partner"
valued_picking = fields.Boolean(
default=True, help="You can select which partners have valued pickings"
)

View File

@@ -0,0 +1,79 @@
# Copyright 2014-2018 Tecnativa - Pedro M. Baeza
# Copyright 2015 Antonio Espinosa - Tecnativa <antonio.espinosa@tecnativa.com>
# Copyright 2018 Luis M. Ontalba - Tecnativa <luis.martinez@tecnativa.com>
# Copyright 2016-2018 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class StockMoveLine(models.Model):
_inherit = "stock.move.line"
sale_line = fields.Many2one(
related="move_id.sale_line_id", readonly=True, string="Related order line"
)
currency_id = fields.Many2one(
related="sale_line.currency_id", readonly=True, string="Sale Currency"
)
sale_tax_id = fields.Many2many(
related="sale_line.tax_id", readonly=True, string="Sale Tax"
)
sale_price_unit = fields.Float(
related="sale_line.price_unit", readonly=True, string="Sale price unit"
)
sale_discount = fields.Float(
related="sale_line.discount", readonly=True, string="Sale discount (%)"
)
sale_tax_description = fields.Char(
compute="_compute_sale_order_line_fields",
string="Tax Description",
compute_sudo=True, # See explanation for sudo in compute method
)
sale_price_subtotal = fields.Monetary(
compute="_compute_sale_order_line_fields",
string="Price subtotal",
compute_sudo=True,
)
sale_price_tax = fields.Float(
compute="_compute_sale_order_line_fields", string="Taxes", compute_sudo=True
)
sale_price_total = fields.Monetary(
compute="_compute_sale_order_line_fields", string="Total", compute_sudo=True
)
def _compute_sale_order_line_fields(self):
"""This is computed with sudo for avoiding problems if you don't have
access to sales orders (stricter warehouse users, inter-company
records...).
"""
for line in self:
sale_line = line.sale_line
price_unit = (
sale_line.price_subtotal / sale_line.product_uom_qty
if sale_line.product_uom_qty
else sale_line.price_reduce
)
taxes = line.sale_tax_id.compute_all(
price_unit=price_unit,
currency=line.currency_id,
quantity=line.qty_done or line.product_qty,
product=line.product_id,
partner=sale_line.order_id.partner_shipping_id,
)
if sale_line.company_id.tax_calculation_rounding_method == (
"round_globally"
):
price_tax = sum(t.get("amount", 0.0) for t in taxes.get("taxes", []))
else:
price_tax = taxes["total_included"] - taxes["total_excluded"]
line.update(
{
"sale_tax_description": ", ".join(
t.name or t.description for t in line.sale_tax_id
),
"sale_price_subtotal": taxes["total_excluded"],
"sale_price_tax": price_tax,
"sale_price_total": taxes["total_included"],
}
)

View File

@@ -0,0 +1,66 @@
# Copyright 2014-2018 Tecnativa - Pedro M. Baeza
# Copyright 2015 Antonio Espinosa - Tecnativa <antonio.espinosa@tecnativa.com>
# Copyright 2016 Carlos Dauden - Tecnativa <carlos.dauden@tecnativa.com>
# Copyright 2016 Luis M. Ontalba - Tecnativa <luis.martinez@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class StockPicking(models.Model):
_inherit = "stock.picking"
valued = fields.Boolean(related="partner_id.valued_picking", readonly=True)
currency_id = fields.Many2one(
related="sale_id.currency_id",
readonly=True,
string="Currency",
related_sudo=True, # See explanation for sudo in compute method
)
amount_untaxed = fields.Monetary(
compute="_compute_amount_all",
string="Untaxed Amount",
compute_sudo=True, # See explanation for sudo in compute method
)
amount_tax = fields.Monetary(
compute="_compute_amount_all", string="Taxes", compute_sudo=True
)
amount_total = fields.Monetary(
compute="_compute_amount_all", string="Total", compute_sudo=True
)
def _compute_amount_all(self):
"""This is computed with sudo for avoiding problems if you don't have
access to sales orders (stricter warehouse users, inter-company
records...).
"""
for pick in self:
round_curr = pick.sale_id.currency_id.round
amount_tax = 0.0
for tax_group in pick.get_taxes_values().values():
amount_tax += round_curr(tax_group["amount"])
amount_untaxed = sum(
line.sale_price_subtotal for line in pick.move_line_ids
)
pick.update(
{
"amount_untaxed": amount_untaxed,
"amount_tax": amount_tax,
"amount_total": amount_untaxed + amount_tax,
}
)
def get_taxes_values(self):
tax_grouped = {}
for line in self.move_line_ids:
for tax in line.sale_line.tax_id:
tax_id = tax.id
if tax_id not in tax_grouped:
tax_grouped[tax_id] = {"base": line.sale_price_subtotal, "tax": tax}
else:
tax_grouped[tax_id]["base"] += line.sale_price_subtotal
for tax_id, tax_group in tax_grouped.items():
tax_grouped[tax_id]["amount"] = tax_group["tax"].compute_all(
tax_group["base"], self.sale_id.currency_id
)["taxes"][0]["amount"]
return tax_grouped

View File

@@ -0,0 +1,2 @@
#. Go to *Customers > (select one of your choice) > Sales & Purchases*.
#. Set *Valued picking* field on.

View File

@@ -0,0 +1,13 @@
* `Avanzosc <http://www.avanzosc.es>`_:
* Oihane Crucelaegui
* `Tecnativa <https://www.tecnativa.com>`_:
* Pedro M. Baeza
* Antonio Espinosa
* Carlos Dauden
* David Vidal
* Luis M. Ontalba
* Ernesto Tejeda
* Sergio Teruel

View File

@@ -0,0 +1,4 @@
Add amount information to Delivery Slip report.
You can select at partner level if picking list report must be valued or not.
If the picking is done it's valued with quantity done, otherwise the picking
is valued with reserved quantity.

View File

@@ -0,0 +1 @@
* If the picking is not reserved, values aren't computed.

View File

@@ -0,0 +1,7 @@
To get the stock picking valued report:
#. Create a Sales Order with storable products a *Valued picking* able
customer.
#. Confirm the Sale Order.
#. Click on *Delivery* stat button.
#. Go to *Print > Delivery Slip*.

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="valued_report_picking" inherit_id="stock.report_delivery_document">
<xpath
expr="//table[@t-if=&quot;o.move_line_ids and o.state==&apos;done&apos;&quot;]/thead/tr"
position="inside"
>
<t t-if="o.valued and o.sale_id and o.move_line_ids">
<t t-if="o.state != 'done'">
<th class="text-right"><strong>Qty Reserved</strong></th>
</t>
<th class="text-right"><strong>Unit Price</strong></th>
<th class="text-right" groups="product.group_discount_per_so_line">
<strong>Discount</strong>
</th>
<th class="text-right"><strong>Subtotal</strong></th>
<th class="text-right"><strong>Taxes</strong></th>
</t>
</xpath>
<xpath
expr="//t[@t-foreach='packages']//t[@t-if='has_serial_number']"
position="attributes"
>
<attribute
name="t-if"
add="or (o.valued and o.sale_id and o.move_line_ids)"
separator=" "
/>
</xpath>
<xpath
expr="//t[@name='no_package_move_lines']//t[@t-if='has_serial_number']"
position="attributes"
>
<attribute
name="t-if"
add="or (o.valued and o.sale_id and o.move_line_ids)"
separator=" "
/>
</xpath>
<xpath
expr="//table[@name='stock_move_line_table']/tbody/t[@t-else='']//t[@t-if='has_serial_number']"
position="attributes"
>
<attribute
name="t-if"
add="or (o.valued and o.sale_id and o.move_line_ids)"
separator=" "
/>
</xpath>
<xpath
expr="//table[@t-if=&quot;o.move_line_ids and o.state==&apos;done&apos;&quot;]"
position="after"
>
<t t-if="o.valued and o.sale_id and o.move_line_ids">
<table class="table table-sm mt32">
<thead>
<tr>
<th class="text-right"><strong>Untaxed Amount</strong></th>
<th class="text-right"><strong>Taxes</strong></th>
<th class="text-right"><strong>Total</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-right">
<span t-field="o.amount_untaxed" />
</td>
<td class="text-right">
<span t-field="o.amount_tax" />
</td>
<td class="text-right">
<span t-field="o.amount_total" />
</td>
</tr>
</tbody>
</table>
</t>
</xpath>
</template>
<template
id="valued_report_picking_has_serial_move_line"
inherit_id="stock.stock_report_delivery_has_serial_move_line"
>
<xpath expr="//span[@t-field='move_line.qty_done']/.." position="after">
<t t-if="o.valued and o.sale_id and o.move_line_ids">
<t t-if="move_line.picking_id.state != 'done'">
<td class="text-right">
<span t-field="move_line.product_uom_qty" />
<span t-field="move_line.product_uom_id" /></td>
</t>
<td class="text-right"><span t-field="move_line.sale_price_unit" /></td>
<td class="text-right" groups="product.group_discount_per_so_line">
<span t-field="move_line.sale_discount" />
</td>
<td class="text-right"><span
t-field="move_line.sale_price_subtotal"
/></td>
<td class="text-right"><span
t-field="move_line.sale_tax_description"
/></td>
</t>
</xpath>
</template>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,462 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Valued Picking Report</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="valued-picking-report">
<h1 class="title">Valued Picking Report</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/stock-logistics-reporting/tree/14.0/stock_picking_report_valued"><img alt="OCA/stock-logistics-reporting" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--reporting-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/stock-logistics-reporting-14-0/stock-logistics-reporting-14-0-stock_picking_report_valued"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/151/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>Add amount information to Delivery Slip report.
You can select at partner level if picking list report must be valued or not.
If the picking is done its valued with quantity done, otherwise the picking
is valued with reserved quantity.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="id3">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#id1">Configuration</a></h1>
<ol class="arabic simple">
<li>Go to <em>Customers &gt; (select one of your choice) &gt; Sales &amp; Purchases</em>.</li>
<li>Set <em>Valued picking</em> field on.</li>
</ol>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id2">Usage</a></h1>
<p>To get the stock picking valued report:</p>
<ol class="arabic simple">
<li>Create a Sales Order with storable products a <em>Valued picking</em> able
customer.</li>
<li>Confirm the Sale Order.</li>
<li>Click on <em>Delivery</em> stat button.</li>
<li>Go to <em>Print &gt; Delivery Slip</em>.</li>
</ol>
</div>
<div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id3">Known issues / Roadmap</a></h1>
<ul class="simple">
<li>If the picking is not reserved, values arent computed.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id4">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/stock-logistics-reporting/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/stock-logistics-reporting/issues/new?body=module:%20stock_picking_report_valued%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id6">Authors</a></h2>
<ul class="simple">
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id7">Contributors</a></h2>
<ul class="simple">
<li><a class="reference external" href="http://www.avanzosc.es">Avanzosc</a>:<ul>
<li>Oihane Crucelaegui</li>
</ul>
</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Pedro M. Baeza</li>
<li>Antonio Espinosa</li>
<li>Carlos Dauden</li>
<li>David Vidal</li>
<li>Luis M. Ontalba</li>
<li>Ernesto Tejeda</li>
<li>Sergio Teruel</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id8">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/stock-logistics-reporting/tree/14.0/stock_picking_report_valued">OCA/stock-logistics-reporting</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
from . import test_stock_picking_valued

View File

@@ -0,0 +1,131 @@
# Copyright 2017 Tecnativa - David Vidal
# Copyright 2017 Tecnativa - Luis M. Ontalba
# Copyright 2019 Tecnativa - Carlos Dauden
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests import common
class TestStockPickingValued(common.SavepointCase):
@classmethod
def setUpClass(cls):
super(TestStockPickingValued, cls).setUpClass()
company = cls.env.user.company_id
cls.tax = cls.env["account.tax"].create(
{
"name": "TAX 15%",
"amount_type": "percent",
"type_tax_use": "sale",
"amount": 15.0,
}
)
cls.tax10 = cls.env["account.tax"].create(
{
"name": "TAX 10%",
"amount_type": "percent",
"type_tax_use": "sale",
"amount": 10.0,
}
)
cls.product = cls.env["product.product"].create(
{
"name": "Test stuff",
"list_price": 100.0,
"taxes_id": [(6, 0, cls.tax.ids)],
}
)
cls.partner = cls.env["res.partner"].create({"name": "Mr. Odoo"})
cls.sale_order = cls.env["sale.order"].create(
{
"partner_id": cls.partner.id,
"order_line": [
(
0,
0,
{
"product_id": cls.product.id,
"price_unit": 100,
"product_uom_qty": 1,
},
)
],
"company_id": company.id,
}
)
cls.sale_order2 = cls.env["sale.order"].create(
{
"partner_id": cls.partner.id,
"order_line": [
(
0,
0,
{
"product_id": cls.product.id,
"price_unit": 100,
"product_uom_qty": 1,
},
),
(
0,
0,
{
"product_id": cls.product.id,
"price_unit": 100,
"product_uom_qty": 1,
},
),
(
0,
0,
{
"product_id": cls.product.id,
"price_unit": 100,
"product_uom_qty": 1,
"tax_id": [(6, 0, cls.tax10.ids)],
},
),
],
"company_id": company.id,
}
)
cls.sale_order.company_id.tax_calculation_rounding_method = "round_per_line"
def test_01_confirm_order(self):
self.assertTrue(self.partner.valued_picking)
self.sale_order.action_confirm()
self.assertTrue(len(self.sale_order.picking_ids))
for picking in self.sale_order.picking_ids:
picking.action_assign()
self.assertEqual(picking.amount_untaxed, 100.0)
self.assertEqual(picking.amount_tax, 15.0)
self.assertEqual(picking.amount_total, 115.0)
def test_02_confirm_order(self):
""" Valued picking isn't computed if not reserved """
self.sale_order.action_confirm()
for picking in self.sale_order.picking_ids:
picking.action_assign()
picking.do_unreserve()
self.assertEqual(picking.amount_untaxed, 0.0)
self.assertEqual(picking.amount_tax, 0.0)
self.assertEqual(picking.amount_total, 0.0)
def test_03_tax_rounding_method(self):
self.sale_order.company_id.tax_calculation_rounding_method = "round_globally"
self.sale_order.action_confirm()
self.assertTrue(len(self.sale_order.picking_ids))
for picking in self.sale_order.picking_ids:
picking.action_assign()
self.assertEqual(picking.amount_untaxed, 100.0)
self.assertEqual(picking.amount_tax, 15.0)
self.assertEqual(picking.amount_total, 115.0)
def test_04_lines_distinct_tax(self):
self.sale_order2.company_id.tax_calculation_rounding_method = "round_globally"
self.sale_order2.action_confirm()
self.assertTrue(len(self.sale_order2.picking_ids))
for picking in self.sale_order2.picking_ids:
picking.action_assign()
self.assertEqual(picking.amount_untaxed, 300.0)
self.assertEqual(picking.amount_tax, 40.0)
self.assertEqual(picking.amount_total, 340.0)

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="view_partner_valued_picking">
<field name="name">Partner view (Valued picking)</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml">
<xpath
expr="//page[@name='sales_purchases']//field[@name='user_id']"
position="after"
>
<field name="valued_picking" />
</xpath>
</field>
</record>
</odoo>