mirror of
https://github.com/ForgeFlow/stock-rma.git
synced 2025-01-21 12:57:49 +02:00
[FIX] rma: Do not set 'Destination Package' if RMA package comes from 'Customers' location
This commit is contained in:
committed by
AaronHForgeFlow
parent
ab02ca6b36
commit
6fab740b56
@@ -2,6 +2,7 @@ from . import rma_order
|
||||
from . import rma_order_line
|
||||
from . import rma_operation
|
||||
from . import stock_move
|
||||
from . import stock_quant_package
|
||||
from . import stock_warehouse
|
||||
from . import product
|
||||
from . import product_category
|
||||
|
||||
14
rma/models/stock_quant_package.py
Normal file
14
rma/models/stock_quant_package.py
Normal file
@@ -0,0 +1,14 @@
|
||||
# Copyright (C) 2023 ForgeFlow S.L.
|
||||
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html)
|
||||
|
||||
from odoo import models
|
||||
|
||||
|
||||
class QuantPackage(models.Model):
|
||||
_inherit = "stock.quant.package"
|
||||
|
||||
def _allowed_to_move_between_transfers(self):
|
||||
res = super()._allowed_to_move_between_transfers()
|
||||
return res and self.location_id != self.env.ref(
|
||||
"stock.stock_location_customers"
|
||||
)
|
||||
@@ -213,7 +213,7 @@ class RmaMakePicking(models.TransientModel):
|
||||
action = self.item_ids.line_id.action_view_in_shipments()
|
||||
# Force the reservation of the RMA specific lot for incoming shipments.
|
||||
# FIXME: still needs fixing, not reserving appropriate serials.
|
||||
for move in pickings.move_lines.filtered(
|
||||
for move in pickings.move_ids.filtered(
|
||||
lambda x: x.state not in ("draft", "cancel", "done", "waiting")
|
||||
and x.rma_line_id
|
||||
and x.product_id.tracking in ("lot", "serial")
|
||||
@@ -232,7 +232,7 @@ class RmaMakePicking(models.TransientModel):
|
||||
)
|
||||
move.move_line_ids.write(
|
||||
{
|
||||
"product_uom_qty": 1 if picking_type == "incoming" else 0,
|
||||
"reserved_uom_qty": 1 if picking_type == "incoming" else 0,
|
||||
"qty_done": 0,
|
||||
"package_id": len(quants) == 1 and quants.package_id.id,
|
||||
}
|
||||
@@ -240,11 +240,12 @@ class RmaMakePicking(models.TransientModel):
|
||||
elif move.product_id.tracking == "lot":
|
||||
if picking_type == "incoming":
|
||||
qty = self.item_ids.filtered(
|
||||
lambda x: x.line_id.id == move.rma_line_id.id
|
||||
lambda x, move=move: x.line_id.id == move.rma_line_id.id
|
||||
).qty_to_receive
|
||||
|
||||
else:
|
||||
qty = self.item_ids.filtered(
|
||||
lambda x: x.line_id.id == move.rma_line_id.id
|
||||
lambda x, move=move: x.line_id.id == move.rma_line_id.id
|
||||
).qty_to_deliver
|
||||
move_line_data = move._prepare_move_line_vals()
|
||||
move_line_data.update(
|
||||
@@ -252,7 +253,7 @@ class RmaMakePicking(models.TransientModel):
|
||||
"lot_id": move.rma_line_id.lot_id.id,
|
||||
"product_uom_id": move.product_id.uom_id.id,
|
||||
"qty_done": 0,
|
||||
"product_uom_qty": qty if picking_type == "incoming" else 0,
|
||||
"reserved_uom_qty": qty if picking_type == "incoming" else 0,
|
||||
}
|
||||
)
|
||||
move_line_model.create(move_line_data)
|
||||
|
||||
Reference in New Issue
Block a user