diff --git a/rma/views/res_config_settings_views.xml b/rma/views/res_config_settings_views.xml
index d3e205c4..b462df4f 100644
--- a/rma/views/res_config_settings_views.xml
+++ b/rma/views/res_config_settings_views.xml
@@ -17,7 +17,10 @@
>
Return Merchandise Authorization
-
-
-
diff --git a/rma_sale/models/rma_operation.py b/rma_sale/models/rma_operation.py
index e9089dba..224bf33f 100644
--- a/rma_sale/models/rma_operation.py
+++ b/rma_sale/models/rma_operation.py
@@ -14,3 +14,13 @@ class RmaOperation(models.Model):
],
default="no",
)
+ auto_confirm_rma_sale = fields.Boolean(
+ string="Auto confirm Sales Order upon creation from RMA",
+ help="When a sales is created from an RMA, automatically confirm it",
+ readonly=False,
+ )
+ free_of_charge_rma_sale = fields.Boolean(
+ string="Free of charge RMA Sales Order",
+ help="Sales orders created from RMA are free of charge by default",
+ readonly=False,
+ )
diff --git a/rma_sale/views/rma_operation_view.xml b/rma_sale/views/rma_operation_view.xml
index a8b91640..3fb083b4 100644
--- a/rma_sale/views/rma_operation_view.xml
+++ b/rma_sale/views/rma_operation_view.xml
@@ -20,6 +20,10 @@
+
+
+
+
diff --git a/rma_sale/wizards/rma_order_line_make_sale_order.py b/rma_sale/wizards/rma_order_line_make_sale_order.py
index abe5910e..bed93c63 100644
--- a/rma_sale/wizards/rma_order_line_make_sale_order.py
+++ b/rma_sale/wizards/rma_order_line_make_sale_order.py
@@ -29,6 +29,7 @@ class RmaLineMakeSaleOrder(models.TransientModel):
@api.model
def _prepare_item(self, line):
+ free_of_charge_rma_sale = line.operation_id.free_of_charge_rma_sale
return {
"line_id": line.id,
"product_id": line.product_id.id,
@@ -37,6 +38,7 @@ class RmaLineMakeSaleOrder(models.TransientModel):
"rma_id": line.rma_id.id,
"out_warehouse_id": line.out_warehouse_id.id,
"product_uom_id": line.uom_id.id,
+ "free_of_charge": free_of_charge_rma_sale,
}
@api.model
@@ -106,6 +108,11 @@ class RmaLineMakeSaleOrder(models.TransientModel):
vals["price_unit"] = 0.0
return vals
+ def _post_process_sale_order(self, item, sale_line):
+ line = item.line_id
+ if line.operation_id.auto_confirm_rma_sale:
+ sale_line.order_id.action_confirm()
+
def make_sale_order(self):
res = []
sale_obj = self.env["sale.order"]
@@ -125,7 +132,8 @@ class RmaLineMakeSaleOrder(models.TransientModel):
sale.name = sale.name + " - " + line.name
so_line_data = self._prepare_sale_order_line(sale, item)
- so_line_obj.create(so_line_data)
+ sale_line = so_line_obj.create(so_line_data)
+ self._post_process_sale_order(item, sale_line)
res.append(sale.id)
action = self.env.ref("sale.action_orders")