[MIG] rma_scrap: Migration to 16.0

This commit is contained in:
SergiCForgeFlow
2023-06-23 11:27:28 +02:00
committed by AaronHForgeFlow
parent 4e8c7a6350
commit 0aa49894e6
7 changed files with 91 additions and 16 deletions

View File

@@ -1,7 +1,9 @@
# Copyright 2022 ForgeFlow S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0.html).
from odoo import fields, models
from odoo import _, fields, models
from odoo.exceptions import UserError
from odoo.tools import float_compare, float_is_zero
class StockScrap(models.Model):
@@ -17,10 +19,11 @@ class StockScrap(models.Model):
)
def do_scrap(self):
super(StockScrap, self).do_scrap()
res = super(StockScrap, self).do_scrap()
if self.is_rma_scrap:
self.move_id.is_rma_scrap = True
self.rma_line_id.move_ids |= self.move_id
return res
def _prepare_move_values(self):
res = super(StockScrap, self)._prepare_move_values()
@@ -39,3 +42,55 @@ class StockScrap(models.Model):
result["views"] = [(res and res.id or False, "form")]
result["res_id"] = self.rma_line_id.id
return result
def action_validate(self):
self.ensure_one()
if float_is_zero(
self.scrap_qty, precision_rounding=self.product_uom_id.rounding
):
raise UserError(_("You can only enter positive quantities."))
if self.product_id.type != "product":
return self.do_scrap()
precision = self.env["decimal.precision"].precision_get(
"Product Unit of Measure"
)
available_qty = sum(
self.env["stock.quant"]
._gather(
self.product_id,
self.location_id,
self.lot_id,
self.package_id,
self.owner_id,
strict=True,
)
.mapped("quantity")
)
scrap_qty = self.product_uom_id._compute_quantity(
self.scrap_qty, self.product_id.uom_id
)
if float_compare(available_qty, scrap_qty, precision_digits=precision) >= 0:
return self.do_scrap()
else:
ctx = dict(self.env.context)
ctx.update(
{
"default_product_id": self.product_id.id,
"default_location_id": self.location_id.id,
"default_scrap_id": self.id,
"default_quantity": scrap_qty,
"default_product_uom_name": self.product_id.uom_name,
}
)
return {
"name": self.product_id.display_name
+ _(": Insufficient Quantity To Scrap"),
"view_mode": "form",
"res_model": "stock.warn.insufficient.qty.scrap",
"view_id": self.env.ref(
"stock.stock_warn_insufficient_qty_scrap_form_view"
).id,
"type": "ir.actions.act_window",
"context": ctx,
"target": "new",
}