-
-
Notifications
You must be signed in to change notification settings - Fork 649
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
41 changed files
with
2,329 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../../../stock_weighing |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import setuptools | ||
|
||
setuptools.setup( | ||
setup_requires=['setuptools-odoo'], | ||
odoo_addon=True, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
================== | ||
Weighing assistant | ||
================== | ||
|
||
.. | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! source digest: sha256:9f20f82a50a6f75d07c87cec07e8dda0c359770fae19121cb231a7bc35a17cfe | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
.. |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--workflow-lightgray.png?logo=github | ||
:target: https://github.com/OCA/stock-logistics-workflow/tree/15.0/stock_weighing | ||
:alt: OCA/stock-logistics-workflow | ||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png | ||
:target: https://translation.odoo-community.org/projects/stock-logistics-workflow-15-0/stock-logistics-workflow-15-0-stock_weighing | ||
: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/stock-logistics-workflow&target_branch=15.0 | ||
:alt: Try me on Runboat | ||
|
||
|badge1| |badge2| |badge3| |badge4| |badge5| | ||
|
||
A shopfloor assistant for weighing on stock operations. | ||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
Use Cases / Context | ||
=================== | ||
|
||
Some bussiness must weigh their operations in order to process them. For | ||
example in fresh product factories where the demand could not fit the | ||
exact a amount of delivered product and that depends on the final | ||
operation weight. | ||
|
||
Configuration | ||
============= | ||
|
||
You need to configure an operation type so its operations show up in the | ||
weighing assistant. | ||
|
||
To do so: | ||
|
||
1. Go to *Configuration > Operations Types* and choose the one you want | ||
to configure. | ||
2. Set *Weighing operations* on. | ||
3. You can choose your desired *Weighing lable report*. | ||
4. If you want to print your labels automatically, set *Print weighing | ||
label* on. | ||
|
||
If you don't have any product with units of measure of the weight | ||
category, you'll have to add some. | ||
|
||
- Allow to show the units of measure in your config settings if isn't | ||
ready yet. | ||
- Add some products with a unit of measure of the weight category | ||
(kilograms, grams, etc.). | ||
- Place some pending operations for those products. | ||
|
||
Usage | ||
===== | ||
|
||
You've got several ways to start weighing pending operations: | ||
|
||
**From the app menu** | ||
|
||
1. Go to the app menu an click on *Weighing* | ||
2. You'll be presented with your weighing options (Incoming, Outgoing or | ||
more if a third module extends it) | ||
3. You can start weighing. | ||
|
||
**From a weighing operation type** | ||
|
||
1. Go to *Inventory > Overview*. | ||
2. Those operation types with *weighing operation* active will show a | ||
button with the pending ones. | ||
3. Click on it and you can start weighing. | ||
|
||
**From a picking** | ||
|
||
1. In any picking with weighing operations, you can click on the smart | ||
button and start processing them. | ||
|
||
Using the assitant | ||
------------------ | ||
|
||
You'll be presented with a list of operations to weigh. To weigh them, | ||
just press the red circle button to record a new weight: | ||
|
||
- If there's only one detailed operation reserved, a popup will show up | ||
to record the operation weight. | ||
- If there are several, you'll enter the detailed view and you'll be | ||
able to weigh every detailed operation. | ||
- If you just want to weigh one, you can force the operation as done | ||
using the checkmark button. | ||
|
||
You can reset your weighing using the cross button. You can print the | ||
label on demand using the printer button. You can add a new detailed | ||
operation using the plus button. | ||
|
||
Known issues / Roadmap | ||
====================== | ||
|
||
- This PR should be https://github.com/odoo/odoo/pull/161042 merged in | ||
order to reload the kanban view properly after each action. Otherwise | ||
we should reimplement the whole core method in our override. | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-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/stock-logistics-workflow/issues/new?body=module:%20stock_weighing%0Aversion:%2015.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 | ||
------------ | ||
|
||
- `Tecnativa <https://www.tecnativa.com>`__ | ||
|
||
- David Vidal | ||
- 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-workflow <https://github.com/OCA/stock-logistics-workflow/tree/15.0/stock_weighing>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
from . import controllers | ||
from . import models | ||
from . import wizards | ||
from .init_hook import pre_init_hook, post_init_hook |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Copyright 2024 Tecnativa - David Vidal | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
{ | ||
"name": "Weighing assistant", | ||
"summary": "Weighing assistant for stock operations", | ||
"version": "15.0.1.0.0", | ||
"author": "Tecnativa, Odoo Community Association (OCA)", | ||
"website": "https://github.com/OCA/stock-logistics-workflow", | ||
"license": "AGPL-3", | ||
"category": "Inventory", | ||
"depends": [ | ||
"stock", | ||
"web_filter_header_button", | ||
], | ||
"data": [ | ||
"security/ir.model.access.csv", | ||
"views/start_screen_banner.xml", | ||
"wizards/weigh_operation_selection_views.xml", | ||
"views/stock_move_line_views.xml", | ||
"views/stock_move_views.xml", | ||
"views/stock_picking_views.xml", | ||
"views/stock_picking_type_views.xml", | ||
"wizards/weighing_wizard_views.xml", | ||
], | ||
"demo": [ | ||
"demo/weight_label_demo.xml", | ||
"demo/picking_type_demo.xml", | ||
], | ||
"assets": { | ||
"web.assets_backend": [ | ||
"stock_weighing/static/src/**/*.scss", | ||
"stock_weighing/static/src/**/*.js", | ||
], | ||
"web.assets_qweb": [ | ||
"stock_weighing/static/src/**/*.xml", | ||
], | ||
}, | ||
"post_init_hook": "post_init_hook", | ||
"pre_init_hook": "pre_init_hook", | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import start_screen |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Copyright 2024 Tecnativa - David Vidal | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
from odoo import http | ||
from odoo.http import request | ||
|
||
|
||
class StockWeighing(http.Controller): | ||
@http.route("/stock_weighing/start_screen", auth="user", type="json") | ||
def stock_weighing_start_screen(self): | ||
"""Returns the banner for the weighing options""" | ||
return { | ||
"html": request.env.ref( | ||
"stock_weighing.stock_weighing_start_screen" | ||
)._render( | ||
{ | ||
"actions": request.env[ | ||
"weigh.operation.selection" | ||
]._get_weighing_start_screen_actions() | ||
} | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo> | ||
<record id="stock.picking_type_out" model="stock.picking.type"> | ||
<field name="weighing_operations" eval="True" /> | ||
<field name="print_weighing_label" eval="True" /> | ||
<field | ||
name="weighing_label_report_id" | ||
ref="stock_weighing.label_weight_record" | ||
/> | ||
</record> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo> | ||
<template id="report_weight_record_label"> | ||
<t t-call="web.basic_layout"> | ||
<div class="page"> | ||
<!-- Don't print empty labels --> | ||
<t t-foreach="docs.filtered('qty_done')" t-as="sml"> | ||
<t t-set="lot_name" t-value="sml.lot_id.name or sml.lot_name" /> | ||
<div class="o_label_page o_label_dymo"> | ||
<div> | ||
<span t-out="sml.product_id.display_name" /> | ||
</div> | ||
<div class="h5 pt-2"> | ||
<span | ||
t-out="sml.qty_done" | ||
t-options="{'widget': 'float', 'decimal_precision': 'Product Unit of Measure'}" | ||
/> <span t-out="sml.product_uom_id.name" /> | ||
</div> | ||
<div t-if="lot_name"> | ||
<span>LOT: <t t-out="lot_name" /></span> | ||
</div> | ||
<div t-out="sml.move_id.reference" /> | ||
</div> | ||
</t> | ||
</div> | ||
</t> | ||
</template> | ||
<record id="label_weight_record" model="ir.actions.report"> | ||
<field name="name">Weight Record Label</field> | ||
<field name="model">stock.move.line</field> | ||
<field name="report_type">qweb-pdf</field> | ||
<field name="report_name">stock_weighing.report_weight_record_label</field> | ||
<field name="report_file">stock_weighing.report_weight_record_label</field> | ||
<field name="paperformat_id" ref="product.paperformat_label_sheet_dymo" /> | ||
<field name="binding_type">report</field> | ||
</record> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Copyright 2024 Tecnativa - David Vidal | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
import logging | ||
|
||
from odoo import SUPERUSER_ID, api | ||
|
||
_logger = logging.getLogger(__name__) | ||
|
||
|
||
def pre_init_hook(cr): | ||
_logger.info("Pre-creating weighing state column to avoid computing everyone...") | ||
cr.execute("ALTER TABLE stock_move ADD COLUMN IF NOT EXISTS weighing_state VARCHAR") | ||
|
||
|
||
def post_init_hook(cr, registry): | ||
"""Recompute weighing_state only in pending moves""" | ||
env = api.Environment(cr, SUPERUSER_ID, {}) | ||
_logger.info("Computing weighing state on pending moves...") | ||
env["stock.move"].search( | ||
[ | ||
("has_weight", "=", True), | ||
("state", "in", ("assigned", "confirmed", "waiting")), | ||
] | ||
)._compute_weighing_state() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from . import weighing_mixin | ||
from . import stock_move_line | ||
from . import stock_move | ||
from . import stock_picking_type | ||
from . import stock_picking |
Oops, something went wrong.