summaryrefslogtreecommitdiff
path: root/addons/sale/models/res_config_settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/sale/models/res_config_settings.py')
-rw-r--r--addons/sale/models/res_config_settings.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/addons/sale/models/res_config_settings.py b/addons/sale/models/res_config_settings.py
new file mode 100644
index 00000000..61620dcd
--- /dev/null
+++ b/addons/sale/models/res_config_settings.py
@@ -0,0 +1,82 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models
+
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ group_auto_done_setting = fields.Boolean("Lock Confirmed Sales", implied_group='sale.group_auto_done_setting')
+ module_sale_margin = fields.Boolean("Margins")
+ quotation_validity_days = fields.Integer(related='company_id.quotation_validity_days', string="Default Quotation Validity (Days)", readonly=False)
+ use_quotation_validity_days = fields.Boolean("Default Quotation Validity", config_parameter='sale.use_quotation_validity_days')
+ group_warning_sale = fields.Boolean("Sale Order Warnings", implied_group='sale.group_warning_sale')
+ portal_confirmation_sign = fields.Boolean(related='company_id.portal_confirmation_sign', string='Online Signature', readonly=False)
+ portal_confirmation_pay = fields.Boolean(related='company_id.portal_confirmation_pay', string='Online Payment', readonly=False)
+ group_sale_delivery_address = fields.Boolean("Customer Addresses", implied_group='sale.group_delivery_invoice_address')
+ group_proforma_sales = fields.Boolean(string="Pro-Forma Invoice", implied_group='sale.group_proforma_sales',
+ help="Allows you to send pro-forma invoice.")
+ default_invoice_policy = fields.Selection([
+ ('order', 'Invoice what is ordered'),
+ ('delivery', 'Invoice what is delivered')
+ ], 'Invoicing Policy',
+ default='delivery',
+ default_model='product.template')
+ deposit_default_product_id = fields.Many2one(
+ 'product.product',
+ 'Deposit Product',
+ domain="[('type', '=', 'service')]",
+ config_parameter='sale.default_deposit_product_id',
+ help='Default product used for payment advances')
+
+ auth_signup_uninvited = fields.Selection([
+ ('b2b', 'On invitation'),
+ ('b2c', 'Free sign up'),
+ ], string='Customer Account', default='b2b', config_parameter='auth_signup.invitation_scope')
+
+ module_delivery = fields.Boolean("Delivery Methods")
+ module_delivery_dhl = fields.Boolean("DHL USA Connector")
+ module_delivery_fedex = fields.Boolean("FedEx Connector")
+ module_delivery_ups = fields.Boolean("UPS Connector")
+ module_delivery_usps = fields.Boolean("USPS Connector")
+ module_delivery_bpost = fields.Boolean("bpost Connector")
+ module_delivery_easypost = fields.Boolean("Easypost Connector")
+
+ module_product_email_template = fields.Boolean("Specific Email")
+ module_sale_coupon = fields.Boolean("Coupons & Promotions")
+ module_sale_amazon = fields.Boolean("Amazon Sync")
+
+ automatic_invoice = fields.Boolean("Automatic Invoice",
+ help="The invoice is generated automatically and available in the customer portal "
+ "when the transaction is confirmed by the payment acquirer.\n"
+ "The invoice is marked as paid and the payment is registered in the payment journal "
+ "defined in the configuration of the payment acquirer.\n"
+ "This mode is advised if you issue the final invoice at the order and not after the delivery.",
+ config_parameter='sale.automatic_invoice')
+ template_id = fields.Many2one('mail.template', 'Email Template',
+ domain="[('model', '=', 'account.move')]",
+ config_parameter='sale.default_email_template',
+ default=lambda self: self.env.ref('account.email_template_edi_invoice', False))
+ confirmation_template_id = fields.Many2one('mail.template', string='Confirmation Email',
+ domain="[('model', '=', 'sale.order')]",
+ config_parameter='sale.default_confirmation_template',
+ help="Email sent to the customer once the order is paid.")
+
+ def set_values(self):
+ super(ResConfigSettings, self).set_values()
+ if self.default_invoice_policy != 'order':
+ self.env['ir.config_parameter'].set_param('sale.automatic_invoice', False)
+
+ @api.onchange('use_quotation_validity_days')
+ def _onchange_use_quotation_validity_days(self):
+ if self.quotation_validity_days <= 0:
+ self.quotation_validity_days = self.env['res.company'].default_get(['quotation_validity_days'])['quotation_validity_days']
+
+ @api.onchange('quotation_validity_days')
+ def _onchange_quotation_validity_days(self):
+ if self.quotation_validity_days <= 0:
+ self.quotation_validity_days = self.env['res.company'].default_get(['quotation_validity_days'])['quotation_validity_days']
+ return {
+ 'warning': {'title': "Warning", 'message': "Quotation Validity is required and must be greater than 0."},
+ }