Skip to content

Commit 8b91d19

Browse files
sergio-teruellk-eska
authored andcommitted
[ADD] stock_secondary_unit: New module for getting stock in a secondary unit
1 parent 6a79163 commit 8b91d19

20 files changed

+1152
-0
lines changed

stock_secondary_unit/README.rst

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
====================
2+
Stock Secondary Unit
3+
====================
4+
5+
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6+
!! This file is generated by oca-gen-addon-readme !!
7+
!! changes will be overwritten. !!
8+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9+
10+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
11+
:target: https://odoo-community.org/page/development-status
12+
:alt: Beta
13+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
14+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
15+
:alt: License: AGPL-3
16+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github
17+
:target: https://github.com/OCA/stock-logistics-warehouse/tree/11.0/stock_secondary_unit
18+
:alt: OCA/stock-logistics-warehouse
19+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
20+
:target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-11-0/stock-logistics-warehouse-11-0-stock_secondary_unit
21+
:alt: Translate me on Weblate
22+
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
23+
:target: https://runbot.odoo-community.org/runbot/153/11.0
24+
:alt: Try me on Runbot
25+
26+
|badge1| |badge2| |badge3| |badge4| |badge5|
27+
28+
This module extends the functionality of stock module to allow define
29+
other units with their conversion factor.
30+
31+
**Table of contents**
32+
33+
.. contents::
34+
:local:
35+
36+
Usage
37+
=====
38+
39+
To use this module you need to:
40+
41+
#. Go to a *Product > General Information tab*.
42+
#. Create any record in "Secondary unit of measure".
43+
#. Set the conversion factor.
44+
#. Go to *Inventory tab* and set a second unit of measure.
45+
#. Push button 'Quantity on hand' and set quantities in stock for this product.
46+
#. Go to product list and you can see the secondary unit value.
47+
48+
Bug Tracker
49+
===========
50+
51+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-warehouse/issues>`_.
52+
In case of trouble, please check there if your issue has already been reported.
53+
If you spotted it first, help us smashing it by providing a detailed and welcomed
54+
`feedback <https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_secondary_unit%0Aversion:%2011.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
55+
56+
Do not contact contributors directly about support or help with technical issues.
57+
58+
Credits
59+
=======
60+
61+
Authors
62+
~~~~~~~
63+
64+
* Tecnativa
65+
66+
Contributors
67+
~~~~~~~~~~~~
68+
69+
* Carlos Dauden <carlos.dauden@tecnativa.com>
70+
* Sergio Teruel <sergio.teruel@tecnativa.com>
71+
72+
Maintainers
73+
~~~~~~~~~~~
74+
75+
This module is maintained by the OCA.
76+
77+
.. image:: https://odoo-community.org/logo.png
78+
:alt: Odoo Community Association
79+
:target: https://odoo-community.org
80+
81+
OCA, or the Odoo Community Association, is a nonprofit organization whose
82+
mission is to support the collaborative development of Odoo features and
83+
promote its widespread use.
84+
85+
This module is part of the `OCA/stock-logistics-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/11.0/stock_secondary_unit>`_ project on GitHub.
86+
87+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

stock_secondary_unit/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2+
from . import models

stock_secondary_unit/__manifest__.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Copyright 2018 Tecnativa - Sergio Teruel
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
{
4+
'name': 'Stock Secondary Unit',
5+
'summary': 'Get product quantities in a secondary unit',
6+
'version': '11.0.1.0.0',
7+
'development_status': 'Beta',
8+
'category': 'stock',
9+
'website': 'https://github.com/OCA/stock-logistics-warehouse',
10+
'author': 'Tecnativa, Odoo Community Association (OCA)',
11+
'license': 'AGPL-3',
12+
'application': False,
13+
'installable': True,
14+
'depends': [
15+
'sale_stock',
16+
'product_secondary_unit',
17+
],
18+
'data': [
19+
'views/product_views.xml',
20+
'views/stock_move_views.xml',
21+
'views/stock_picking_views.xml',
22+
'report/report_deliveryslip.xml',
23+
],
24+
}

stock_secondary_unit/i18n/es.po

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * stock_secondary_unit
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 11.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2018-09-11 06:27+0000\n"
10+
"PO-Revision-Date: 2018-09-11 08:28+0200\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"Language: es_ES\n"
14+
"MIME-Version: 1.0\n"
15+
"Content-Type: text/plain; charset=UTF-8\n"
16+
"Content-Transfer-Encoding: 8bit\n"
17+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
18+
"X-Generator: Poedit 2.0.6\n"
19+
20+
#. module: stock_secondary_unit
21+
#: model:ir.ui.view,arch_db:stock_secondary_unit.report_delivery_document
22+
msgid "<strong>Secondary Qty</strong>"
23+
msgstr ""
24+
25+
#. module: stock_secondary_unit
26+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit_display_name
27+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_display_name
28+
msgid "Display Name"
29+
msgstr "Mostrar Nombre"
30+
31+
#. module: stock_secondary_unit
32+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit_id
33+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_id
34+
msgid "ID"
35+
msgstr "ID"
36+
37+
#. module: stock_secondary_unit
38+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit___last_update
39+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin___last_update
40+
msgid "Last Modified on"
41+
msgstr "Última modificación en"
42+
43+
#. module: stock_secondary_unit
44+
#: model:ir.model,name:stock_secondary_unit.model_stock_move_line
45+
msgid "Packing Operation"
46+
msgstr ""
47+
48+
#. module: stock_secondary_unit
49+
#: model:ir.model,name:stock_secondary_unit.model_procurement_rule
50+
msgid "Procurement Rule"
51+
msgstr ""
52+
53+
#. module: stock_secondary_unit
54+
#: model:ir.model,name:stock_secondary_unit.model_product_product
55+
msgid "Product"
56+
msgstr "Producto"
57+
58+
#. module: stock_secondary_unit
59+
#: model:ir.model,name:stock_secondary_unit.model_product_template
60+
msgid "Product Template"
61+
msgstr "Plantilla de producto"
62+
63+
#. module: stock_secondary_unit
64+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_product_secondary_unit_qty_available
65+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_template_secondary_unit_qty_available
66+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit_secondary_unit_qty_available
67+
msgid "Quantity On Hand (2Unit)"
68+
msgstr "Cantidad a mano (2Ud.)"
69+
70+
#. module: stock_secondary_unit
71+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_line_secondary_uom_id
72+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_secondary_uom_id
73+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_secondary_uom_id
74+
#, fuzzy
75+
msgid "Second unit"
76+
msgstr "Unidad Secundaria"
77+
78+
#. module: stock_secondary_unit
79+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_product_stock_secondary_uom_id
80+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_template_stock_secondary_uom_id
81+
msgid "Second unit for inventory"
82+
msgstr "Segunda unidad de medida para inventario"
83+
84+
#. module: stock_secondary_unit
85+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_line_secondary_uom_qty
86+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_secondary_uom_qty
87+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_secondary_uom_qty
88+
#, fuzzy
89+
msgid "Secondary Qty"
90+
msgstr "Unidad Secundaria"
91+
92+
#. module: stock_secondary_unit
93+
#: model:ir.ui.view,arch_db:stock_secondary_unit.view_template_property_form
94+
msgid "Secondary unit"
95+
msgstr "Unidad Secundaria"
96+
97+
#. module: stock_secondary_unit
98+
#: model:ir.model,name:stock_secondary_unit.model_stock_move
99+
msgid "Stock Move"
100+
msgstr ""
101+
102+
#. module: stock_secondary_unit
103+
#: model:ir.model,name:stock_secondary_unit.model_stock_product_secondary_unit
104+
msgid "stock.product.secondary.unit"
105+
msgstr ""
106+
107+
#. module: stock_secondary_unit
108+
#: model:ir.model,name:stock_secondary_unit.model_stock_secondary_unit_mixin
109+
#, fuzzy
110+
msgid "stock.secondary.unit.mixin"
111+
msgstr "Unidad Secundaria"
112+
113+
#~ msgid "On Hand (2unit)"
114+
#~ msgstr "A mano (2Ud.)"
115+
116+
#~ msgid "Second Unit Quantity On Hand"
117+
#~ msgstr "Segunda unidad de medida por defecto"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * stock_secondary_unit
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 11.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"Last-Translator: <>\n"
10+
"Language-Team: \n"
11+
"MIME-Version: 1.0\n"
12+
"Content-Type: text/plain; charset=UTF-8\n"
13+
"Content-Transfer-Encoding: \n"
14+
"Plural-Forms: \n"
15+
16+
#. module: stock_secondary_unit
17+
#: model:ir.ui.view,arch_db:stock_secondary_unit.report_delivery_document
18+
msgid "<strong>Secondary Qty</strong>"
19+
msgstr ""
20+
21+
#. module: stock_secondary_unit
22+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit_display_name
23+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_display_name
24+
msgid "Display Name"
25+
msgstr ""
26+
27+
#. module: stock_secondary_unit
28+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit_id
29+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_id
30+
msgid "ID"
31+
msgstr ""
32+
33+
#. module: stock_secondary_unit
34+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit___last_update
35+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin___last_update
36+
msgid "Last Modified on"
37+
msgstr ""
38+
39+
#. module: stock_secondary_unit
40+
#: model:ir.model,name:stock_secondary_unit.model_stock_move_line
41+
msgid "Packing Operation"
42+
msgstr ""
43+
44+
#. module: stock_secondary_unit
45+
#: model:ir.model,name:stock_secondary_unit.model_procurement_rule
46+
msgid "Procurement Rule"
47+
msgstr ""
48+
49+
#. module: stock_secondary_unit
50+
#: model:ir.model,name:stock_secondary_unit.model_product_product
51+
msgid "Product"
52+
msgstr ""
53+
54+
#. module: stock_secondary_unit
55+
#: model:ir.model,name:stock_secondary_unit.model_product_template
56+
msgid "Product Template"
57+
msgstr ""
58+
59+
#. module: stock_secondary_unit
60+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_product_secondary_unit_qty_available
61+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_template_secondary_unit_qty_available
62+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_product_secondary_unit_secondary_unit_qty_available
63+
msgid "Quantity On Hand (2Unit)"
64+
msgstr ""
65+
66+
#. module: stock_secondary_unit
67+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_line_secondary_uom_id
68+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_secondary_uom_id
69+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_secondary_uom_id
70+
msgid "Second unit"
71+
msgstr ""
72+
73+
#. module: stock_secondary_unit
74+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_product_stock_secondary_uom_id
75+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_product_template_stock_secondary_uom_id
76+
msgid "Second unit for inventory"
77+
msgstr ""
78+
79+
#. module: stock_secondary_unit
80+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_line_secondary_uom_qty
81+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_move_secondary_uom_qty
82+
#: model:ir.model.fields,field_description:stock_secondary_unit.field_stock_secondary_unit_mixin_secondary_uom_qty
83+
msgid "Secondary Qty"
84+
msgstr ""
85+
86+
#. module: stock_secondary_unit
87+
#: model:ir.ui.view,arch_db:stock_secondary_unit.view_template_property_form
88+
msgid "Secondary unit"
89+
msgstr ""
90+
91+
#. module: stock_secondary_unit
92+
#: model:ir.model,name:stock_secondary_unit.model_stock_move
93+
msgid "Stock Move"
94+
msgstr ""
95+
96+
#. module: stock_secondary_unit
97+
#: model:ir.model,name:stock_secondary_unit.model_stock_product_secondary_unit
98+
msgid "stock.product.secondary.unit"
99+
msgstr ""
100+
101+
#. module: stock_secondary_unit
102+
#: model:ir.model,name:stock_secondary_unit.model_stock_secondary_unit_mixin
103+
msgid "stock.secondary.unit.mixin"
104+
msgstr ""
105+
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2+
from . import procurement_rule
3+
from . import product
4+
from . import stock_move
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright 2018 Tecnativa - Sergio Teruel
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
from odoo import models
4+
5+
6+
class ProcurementRule(models.Model):
7+
_inherit = 'procurement.rule'
8+
9+
def _get_stock_move_values(self, product_id, product_qty, product_uom,
10+
location_id, name, origin, values, group_id):
11+
res = super(ProcurementRule, self)._get_stock_move_values(
12+
product_id, product_qty, product_uom, location_id, name, origin,
13+
values, group_id
14+
)
15+
if values.get('sale_line_id', False):
16+
sale_line = self.env['sale.order.line'].browse(
17+
values['sale_line_id'])
18+
if sale_line.secondary_uom_id:
19+
res.update({
20+
'secondary_uom_id': sale_line.secondary_uom_id.id,
21+
'secondary_uom_qty': sale_line.secondary_uom_qty,
22+
})
23+
return res

0 commit comments

Comments
 (0)