mirror of
https://github.com/ForgeFlow/stock-rma.git
synced 2025-01-21 12:57:49 +02:00
Merge pull request #300 from ForgeFlow/15.0-fp-299
[15.0][IMP] rma_sale: add hook _post_process_sale_order for better extensibility
This commit is contained in:
@@ -17,7 +17,10 @@
|
||||
>
|
||||
<h2>Return Merchandise Authorization</h2>
|
||||
<div class="row mt16 o_settings_container">
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div
|
||||
name="rma_delivery_address"
|
||||
class="col-12 col-lg-6 o_setting_box"
|
||||
>
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="group_rma_delivery_address" />
|
||||
</div>
|
||||
@@ -28,7 +31,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div
|
||||
name="group_rma_lines"
|
||||
class="col-12 col-lg-6 o_setting_box"
|
||||
>
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="group_rma_lines" />
|
||||
</div>
|
||||
@@ -39,7 +45,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div name="rma_account" class="col-12 col-lg-6 o_setting_box">
|
||||
<div class="o_setting_left_pane">
|
||||
<field name="module_rma_account" />
|
||||
</div>
|
||||
@@ -50,7 +56,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -20,6 +20,10 @@
|
||||
<field name="delivery_policy" position="after">
|
||||
<field name="sale_policy" />
|
||||
</field>
|
||||
<field name="company_id" position="after">
|
||||
<field name="auto_confirm_rma_sale" />
|
||||
<field name="free_of_charge_rma_sale" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user