mirror of
https://github.com/ForgeFlow/stock-rma.git
synced 2025-01-21 12:57:49 +02:00
[IMP] rma: prevent the creation of zero qty moves
This commit is contained in:
@@ -645,3 +645,16 @@ class TestRma(common.SavepointCase):
|
||||
self.assertTrue(new_line.product_id.categ_id.rma_customer_operation_id)
|
||||
new_line._onchange_product_id()
|
||||
self.assertEqual(new_line.operation_id, rma_operation)
|
||||
|
||||
def test_06_no_zero_qty_moves(self):
|
||||
rma_lines = self.rma_customer_id.rma_line_ids
|
||||
rma_lines.write({"receipt_policy": "delivered"})
|
||||
self.assertEqual(sum(rma_lines.mapped("qty_to_receive")), 0)
|
||||
wizard = self.rma_make_picking.with_context({
|
||||
'active_ids': rma_lines.ids,
|
||||
'active_model': 'rma.order.line',
|
||||
'picking_type': 'incoming',
|
||||
'active_id': 1
|
||||
}).create({})
|
||||
with self.assertRaisesRegex(ValidationError, "No quantity to transfer"):
|
||||
wizard._create_picking()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import time
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT as DT_FORMAT
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT as DT_FORMAT, float_compare
|
||||
import odoo.addons.decimal_precision as dp
|
||||
|
||||
|
||||
@@ -149,12 +149,18 @@ class RmaMakePicking(models.TransientModel):
|
||||
else:
|
||||
qty = item.qty_to_deliver
|
||||
values = self._get_procurement_data(item, group, qty, picking_type)
|
||||
product = item.line_id.product_id
|
||||
if float_compare(qty, 0, product.uom_id.rounding) != 1:
|
||||
raise ValidationError(
|
||||
_("No quantity to transfer on %s shipment of product %s.") %
|
||||
(_(picking_type), product.default_code or product.name)
|
||||
)
|
||||
# create picking
|
||||
try:
|
||||
self.env['procurement.group'].run(
|
||||
item.line_id.product_id,
|
||||
product,
|
||||
qty,
|
||||
item.line_id.product_id.product_tmpl_id.uom_id,
|
||||
product.uom_id,
|
||||
values.get('location_id'),
|
||||
values.get('origin'),
|
||||
values.get('origin'),
|
||||
|
||||
Reference in New Issue
Block a user