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
3 changes: 2 additions & 1 deletion stock_reception_usability/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
from . import stock_move

from . import stock_picking
from . import stock_picking_type
38 changes: 23 additions & 15 deletions stock_reception_usability/models/stock_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,43 @@
# @author Kévin Roche <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from collections import defaultdict
from odoo import api, fields, models


class StockMove(models.Model):
_inherit = "stock.move"

location_dest_list = fields.Text(
string="Locations", compute="_compute_locations_dest_list"
string="Dest. Locations", compute="_compute_locations_list"
)

location_src_list = fields.Text(
string="Src. Locations", compute="_compute_locations_list"
)

@api.depends(
"move_line_ids", "move_line_ids.location_dest_id", "move_line_ids.qty_done"
"move_line_ids.location_dest_id",
"move_line_ids.location_id",
"move_line_ids.qty_done",
)
def _compute_locations_dest_list(self):
def _compute_locations_list(self):
def format_loc(data):
return "\n ".join([
f"{int(qty) if qty.is_integer() else qty}: {location.name}"
for location, qty in data.items()
])
for move in self:
data = []
separator = ", "
dest_list = move.move_line_ids.location_dest_id
for dest in dest_list:
lines_qty = move.move_line_ids.search(
[("move_id", "=", move.id), ("location_dest_id", "=", dest.id)]
).mapped("qty_done")
quantity = int(sum(lines_qty))
location = dest.name
data.append("{}: {}".format(quantity, location))
move.location_dest_list = separator.join(data)
dest = defaultdict(int)
src = defaultdict(int)
for line in move.move_line_ids:
dest[line.location_dest_id] += line.qty_done
src[line.location_id] += line.qty_done
move.location_src_list = format_loc(src)
move.location_dest_list = format_loc(dest)

def _compute_is_quantity_done_editable(self):
super()._compute_is_quantity_done_editable()
for move in self:
if len(move.move_line_ids) == 1 and move.show_details_visible:
if len(move.move_line_ids) <= 1:
move.is_quantity_done_editable = True
26 changes: 26 additions & 0 deletions stock_reception_usability/models/stock_picking.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright 2024 Akretion (https://www.akretion.com).
# @author Sébastien BEAU <[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).


from odoo import _, api, fields, models



class StockPicking(models.Model):
_inherit = 'stock.picking'

show_src_location = fields.Boolean(compute="_compute_show_location")
show_dest_location = fields.Boolean(compute="_compute_show_location")

@api.depends("picking_type_id.code", "location_id", "location_dest_id")
def _compute_show_location(self):
for picking in self:
picking.show_src_location = (
picking.picking_type_id.code != "incoming"
and picking.location_id.child_ids
)
picking.show_dest_location = (
picking.picking_type_id.code != "outgoing"
and picking.location_dest_id.child_ids
)
17 changes: 17 additions & 0 deletions stock_reception_usability/models/stock_picking_type.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Copyright 2024 Akretion (https://www.akretion.com).
# @author Sébastien BEAU <[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).


from odoo import _, api, fields, models


class StockPickingType(models.Model):
_inherit = 'stock.picking.type'

def _default_show_operations(self):
# super is not called as we want to always force the value to False
# super()._default_show_operations()
return False

show_operations = fields.Boolean(default=lambda s: s._default_show_operations())
7 changes: 6 additions & 1 deletion stock_reception_usability/views/stock_picking.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form" />
<field name="arch" type="xml">
<field name="picking_type_code" position="after">
<field name="show_src_location" invisible="1"/>
<field name="show_dest_location" invisible="1"/>
</field>
<xpath expr="//field[@name='product_uom']" position="after">
<field name="location_dest_list" />
<field name="location_src_list" attrs="{'column_invisible': [('parent.show_src_location', '=', False)]}"/>
<field name="location_dest_list" attrs="{'column_invisible': [('parent.show_dest_location', '=', False)]}"/>
</xpath>
<xpath expr="//field[@name='product_uom_qty']" position="attributes">
<attribute
Expand Down