mirror of
https://github.com/bringout/oca-warehouse.git
synced 2026-04-21 14:42:00 +02:00
80 lines
2.7 KiB
Python
80 lines
2.7 KiB
Python
# Copyright 2023 Tecnativa - Sergio Teruel
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
from odoo import models
|
|
|
|
MODEL_UPDATE_INVENTORY = ["wiz.stock.barcodes.read.inventory"]
|
|
|
|
|
|
class StockQuant(models.Model):
|
|
_name = "stock.quant"
|
|
_inherit = ["stock.quant", "barcodes.barcode_events_mixin"]
|
|
|
|
def action_barcode_inventory_quant_unlink(self):
|
|
self.with_context(inventory_mode=True).action_set_inventory_quantity_to_zero()
|
|
context = dict(self.env.context)
|
|
params = context.get("params", {})
|
|
res_model = params.get("model", False)
|
|
res_id = params.get("id", False)
|
|
if res_id and res_model in MODEL_UPDATE_INVENTORY:
|
|
wiz_id = self.env[params["model"]].browse(params["id"])
|
|
wiz_id._compute_count_inventory_quants()
|
|
wiz_id.send_bus_done(
|
|
"stock_barcodes_form_update",
|
|
"count_apply_inventory",
|
|
{"count": wiz_id.count_inventory_quants},
|
|
)
|
|
|
|
def _get_fields_to_edit(self):
|
|
return [
|
|
"location_id",
|
|
"product_id",
|
|
"product_uom_id",
|
|
"lot_id",
|
|
"package_id",
|
|
]
|
|
|
|
def action_barcode_inventory_quant_edit(self):
|
|
wiz_barcode_id = self.env.context.get("wiz_barcode_id", False)
|
|
wiz_barcode = self.env["wiz.stock.barcodes.read.inventory"].browse(
|
|
wiz_barcode_id
|
|
)
|
|
for quant in self:
|
|
# Try to assign fields with the same name between quant and the scan wizard
|
|
for fname in self._get_fields_to_edit():
|
|
wiz_barcode[fname] = quant[fname]
|
|
wiz_barcode.product_qty = quant.inventory_quantity
|
|
|
|
wiz_barcode.manual_entry = True
|
|
self.send_bus_done(
|
|
"stock_barcodes_scan",
|
|
"stock_barcodes_edit_manual",
|
|
{
|
|
"manual_entry": True,
|
|
},
|
|
)
|
|
|
|
def enable_current_operations(self):
|
|
self.send_bus_done(
|
|
"stock_barcodes_kanban_update",
|
|
"enable_operations",
|
|
{
|
|
"id": self.id,
|
|
},
|
|
)
|
|
|
|
def operation_quantities_rest(self):
|
|
self.write({"inventory_quantity": self.inventory_quantity - 1})
|
|
self.enable_current_operations()
|
|
|
|
def operation_quantities(self):
|
|
self.write({"inventory_quantity": self.inventory_quantity + 1})
|
|
self.enable_current_operations()
|
|
|
|
def action_apply_inventory(self):
|
|
res = super().action_apply_inventory()
|
|
self.send_bus_done(
|
|
"stock_barcodes_scan",
|
|
"actions_barcode",
|
|
{"apply_inventory": True},
|
|
)
|
|
return res
|