diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2015-09-22 15:51:27 +0200 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2015-09-22 16:24:12 +0200 |
| commit | 3f17f7efb70370d3466066a2f26e357f4e340d8f (patch) | |
| tree | c0d3e9255cf48ccfccf389be2876f61edc9cc1b9 | |
| parent | 0037547e8a92267f07910b7443f306926c0f097c (diff) | |
[IMP] sale: add option to set a SO to done automatically
This option will set a SO automatically to Done when it is confirmed.
The purpose is to prevent a user to modify a SO after confirmation, as
it was the case up to v8.0.
| -rw-r--r-- | addons/sale/i18n/sale.pot | 14 | ||||
| -rw-r--r-- | addons/sale/res_config.py | 9 | ||||
| -rw-r--r-- | addons/sale/res_config_view.xml | 1 | ||||
| -rw-r--r-- | addons/sale/sale.py | 2 |
4 files changed, 26 insertions, 0 deletions
diff --git a/addons/sale/i18n/sale.pot b/addons/sale/i18n/sale.pot index a1f5b1f39b6..d052647b5c1 100644 --- a/addons/sale/i18n/sale.pot +++ b/addons/sale/i18n/sale.pot @@ -1794,3 +1794,17 @@ msgstr "" msgid "unknown" msgstr "" +#. module: sale +#: selection:sale.config.settings,auto_done_setting:0 +msgid "Allow to edit sales order from the 'Sales Order' menu (not from the Quotation menu)" +msgstr "" + +#. module: sale +#: selection:sale.config.settings,auto_done_setting:0 +msgid "Never allow to modify a confirmed sale order" +msgstr "" + +#. module: sale +#: model:ir.model.fields,field_description:sale.field_sale_config_settings_auto_done_setting +msgid "Sale Order Modification" +msgstr "" diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 29b4005694d..78da0d750ef 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -68,6 +68,10 @@ class sale_configuration(osv.TransientModel): 'deposit_product_id_setting': fields.many2one('product.product', 'Default Advance Product',\ domain="[('type', '=', 'service')]",\ help='Default product used for payment advances'), + 'auto_done_setting': fields.selection([ + (0, "Allow to edit sales order from the 'Sales Order' menu (not from the Quotation menu)"), + (1, "Never allow to modify a confirmed sale order") + ], "Sale Order Modification"), } _defaults = { @@ -85,6 +89,11 @@ class sale_configuration(osv.TransientModel): res = self.pool.get('ir.values').set_default(cr, uid, 'sale.config.settings', 'deposit_product_id_setting', deposit_product_id.id) return res + def set_auto_done_defaults(self, cr, uid, ids, context=None): + auto_done = self.browse(cr, uid, ids, context=context).auto_done_setting + res = self.pool.get('ir.values').set_default(cr, uid, 'sale.config.settings', 'auto_done_setting', auto_done) + return res + def onchange_sale_price(self, cr, uid, ids, sale_pricelist_setting, context=None): if sale_pricelist_setting == 'percentage': return {'value': {'group_product_pricelist': True, 'group_sale_pricelist': True, 'group_pricelist_item': False}} diff --git a/addons/sale/res_config_view.xml b/addons/sale/res_config_view.xml index d01c66027a6..811dad1bd96 100644 --- a/addons/sale/res_config_view.xml +++ b/addons/sale/res_config_view.xml @@ -20,6 +20,7 @@ <field name="group_discount_per_so_line" widget="radio"/> <field name="module_website_quote" widget="radio"/> <field name="module_sale_margin" widget="radio"/> + <field name="auto_done_setting" widget="radio"/> </group> <group name="manage_price"> <label for="sale_pricelist_setting" string="Sale Price"/> diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 4fbcd558723..19b127e8b7d 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -390,6 +390,8 @@ class SaleOrder(models.Model): if line.product_id.invoice_policy == 'cost': order._create_analytic_account() break + if self.env['ir.values'].get_default('sale.config.settings', 'auto_done_setting'): + self.action_done() @api.multi def _create_analytic_account(self, prefix=None): |
