mirror of
https://github.com/ForgeFlow/stock-rma.git
synced 2025-01-21 12:57:49 +02:00
[IMP] rma: cancel rma_lines
This commit is contained in:
@@ -231,6 +231,7 @@ class RmaOrderLine(models.Model):
|
||||
("to_approve", "To Approve"),
|
||||
("approved", "Approved"),
|
||||
("done", "Done"),
|
||||
("canceled", "Canceled"),
|
||||
],
|
||||
string="State",
|
||||
default="draft",
|
||||
@@ -620,6 +621,25 @@ class RmaOrderLine(models.Model):
|
||||
self.write({"state": "done"})
|
||||
return True
|
||||
|
||||
def check_cancel(self):
|
||||
for move in self.move_ids:
|
||||
if move.state == "done":
|
||||
raise UserError(
|
||||
_("Unable to cancel %s as some receptions have already been done.")
|
||||
% (self.name)
|
||||
)
|
||||
|
||||
def action_rma_cancel(self):
|
||||
for order in self:
|
||||
order.check_cancel()
|
||||
order.write({"state": "canceled"})
|
||||
order.move_ids._action_cancel()
|
||||
shipments = order._get_in_pickings()
|
||||
shipments |= order._get_out_pickings()
|
||||
for ship in shipments:
|
||||
ship.action_cancel()
|
||||
return True
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
if not vals.get("name") or vals.get("name") == "/":
|
||||
|
||||
@@ -318,7 +318,14 @@
|
||||
name="action_rma_done"
|
||||
type="object"
|
||||
string="Done"
|
||||
attrs="{'invisible':[('state', 'in', ('done', 'draft'))]}"
|
||||
attrs="{'invisible':[('state', 'in', ('done', 'draft', 'canceled'))]}"
|
||||
groups="rma.group_rma_customer_user"
|
||||
/>
|
||||
<button
|
||||
name="action_rma_cancel"
|
||||
type="object"
|
||||
string="Cancel"
|
||||
attrs="{'invisible':[('state', 'in', ('done', 'canceled'))]}"
|
||||
groups="rma.group_rma_customer_user"
|
||||
/>
|
||||
<field name="state" widget="statusbar" nolabel="1" />
|
||||
@@ -682,5 +689,15 @@ if records.filtered(lambda x: x.state == "draft"):
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.server" id="action_request_cancel_rma_order_line">
|
||||
<field name="name">Cancel</field>
|
||||
<field name="model_id" ref="rma.model_rma_order_line" />
|
||||
<field name="binding_model_id" ref="rma.model_rma_order_line" />
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
records.action_rma_cancel()
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user