Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
4
sale_cancel_reason/wizard/__init__.py
Executable file
4
sale_cancel_reason/wizard/__init__.py
Executable file
@@ -0,0 +1,4 @@
|
||||
# © 2013 Guewen Baconnier, Camptocamp SA
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import cancel_reason, mass_cancel_orders
|
||||
18
sale_cancel_reason/wizard/cancel_reason.py
Executable file
18
sale_cancel_reason/wizard/cancel_reason.py
Executable file
@@ -0,0 +1,18 @@
|
||||
# © 2013 Guewen Baconnier, Camptocamp SA
|
||||
# © 2022 Landoo Sistemas de Informacion SL
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class SaleOrderCancel(models.TransientModel):
|
||||
"""Ask a reason for the sale order cancellation."""
|
||||
|
||||
_inherit = "sale.order.cancel"
|
||||
|
||||
reason_id = fields.Many2one(
|
||||
"sale.order.cancel.reason", string="Reason", required=True
|
||||
)
|
||||
|
||||
def action_cancel(self):
|
||||
self.order_id.cancel_reason_id = self.reason_id
|
||||
return super().action_cancel()
|
||||
23
sale_cancel_reason/wizard/cancel_reason_view.xml
Executable file
23
sale_cancel_reason/wizard/cancel_reason_view.xml
Executable file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="view_sale_order_cancel" model="ir.ui.view">
|
||||
<field name="name">Reason for the cancellation</field>
|
||||
<field name="model">sale.order.cancel</field>
|
||||
<field name="inherit_id" ref="sale.sale_order_cancel_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//footer" position="before">
|
||||
<br />
|
||||
<p>
|
||||
Choose the reason for the cancellation of the
|
||||
sale order.
|
||||
</p>
|
||||
<group>
|
||||
<field
|
||||
name="reason_id"
|
||||
options="{'no_create': True, 'no_open': True}"
|
||||
/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
13
sale_cancel_reason/wizard/mass_cancel_orders.py
Executable file
13
sale_cancel_reason/wizard/mass_cancel_orders.py
Executable file
@@ -0,0 +1,13 @@
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class SaleMassCancelOrders(models.TransientModel):
|
||||
_inherit = "sale.mass.cancel.orders"
|
||||
|
||||
reason_id = fields.Many2one(
|
||||
"sale.order.cancel.reason", string="Reason", required=True
|
||||
)
|
||||
|
||||
def action_mass_cancel(self):
|
||||
self.sale_order_ids.write({"cancel_reason_id": self.reason_id.id})
|
||||
return super().action_mass_cancel()
|
||||
18
sale_cancel_reason/wizard/mass_cancel_orders_view.xml
Executable file
18
sale_cancel_reason/wizard/mass_cancel_orders_view.xml
Executable file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="mass_cancel_orders_view_form" model="ir.ui.view">
|
||||
<field name="name">sale.mass.cancel.orders.form</field>
|
||||
<field name="model">sale.mass.cancel.orders</field>
|
||||
<field name="inherit_id" ref="sale.mass_cancel_orders_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<footer position="before">
|
||||
<group>
|
||||
<field
|
||||
name="reason_id"
|
||||
options="{'no_create': True, 'no_open': True}"
|
||||
/>
|
||||
</group>
|
||||
</footer>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user