You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
6.9 KiB
146 lines
6.9 KiB
# -*- coding: utf-8 -*-
|
|
###############################################################################
|
|
#
|
|
# Cybrosys Technologies Pvt. Ltd.
|
|
#
|
|
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
|
|
# Author: Afra MP (odoo@cybrosys.com)
|
|
#
|
|
# You can modify it under the terms of the GNU AFFERO
|
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
|
|
#
|
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
# (AGPL v3) along with this program.
|
|
# If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
###############################################################################
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class ResConfigSettings(models.TransientModel):
|
|
"""Inherited Configuration Settings"""
|
|
_inherit = "res.config.settings"
|
|
|
|
enable_service_charge = fields.Boolean(
|
|
string="Service Charges",
|
|
config_parameter="all_in_one_pos_kit.enable_service_charge",
|
|
help="Enable to add service charge")
|
|
visibility = fields.Selection(
|
|
[('global', 'Global'), ('session', 'Session')],
|
|
default='global', string="Visibility",
|
|
config_parameter="all_in_one_pos_kit.visibility",
|
|
help='Setup the Service charge globally or per session')
|
|
global_selection = fields.Selection([
|
|
('amount', 'Amount'),
|
|
('percentage', 'Percentage')],
|
|
string='Type', default='amount',
|
|
config_parameter="all_in_one_pos_kit.global_selection",
|
|
help='Set the service charge as a amount or percentage')
|
|
global_charge = fields.Float(
|
|
string='Service Charge',
|
|
config_parameter="all_in_one_pos_kit.global_charge",
|
|
help='Set a default service charge globally')
|
|
global_product_id = fields.Many2one(
|
|
'product.product', string='Service Product',
|
|
domain="[('available_in_pos', '=', True),('sale_ok', '=', True),"
|
|
"('type', '=', 'service')]",
|
|
config_parameter="all_in_one_pos_kit.global_product_id",
|
|
help='Set a service product globally')
|
|
custom_tip_percentage = fields.Float(
|
|
string="Custom Percentage",
|
|
config_parameter='all_in_one_pos_kit.custom_tip_percentage',
|
|
help="enter the percentage custom tips")
|
|
barcode = fields.Boolean(string='Order Barcode',
|
|
config_parameter='all_in_one_pos_kit.barcode',
|
|
help='Enable or disable the display of order '
|
|
'barcode')
|
|
invoice_number = fields.Boolean(
|
|
string='Invoice Number',
|
|
config_parameter='all_in_one_pos_kit.invoice_number',
|
|
help='Enable or disable the display of invoice number')
|
|
customer_details = fields.Boolean(
|
|
string='Customer Details',
|
|
config_parameter='all_in_one_pos_kit.customer_details',
|
|
help='Enable or disable the display of customer details')
|
|
customer_name = fields.Boolean(
|
|
string='Customer Name',
|
|
config_parameter='all_in_one_pos_kit.customer_name',
|
|
help='Enable or disable the display of customer name')
|
|
customer_address = fields.Boolean(
|
|
string='Customer Address',
|
|
config_parameter='all_in_one_pos_kit.customer_address',
|
|
help='Enable or disable the display of customer address')
|
|
customer_mobile = fields.Boolean(
|
|
string='Customer Mobile',
|
|
config_parameter='all_in_one_pos_kit.customer_mobile',
|
|
help='Enable or disable the display of customer mobile number')
|
|
customer_phone = fields.Boolean(
|
|
string='Customer Phone',
|
|
config_parameter='all_in_one_pos_kit.customer_phone',
|
|
help='Enable or disable the display of customer phone number')
|
|
customer_email = fields.Boolean(
|
|
string='Customer Email',
|
|
config_parameter='all_in_one_pos_kit.customer_email',
|
|
help='Enable or disable the display of customer email')
|
|
customer_vat = fields.Boolean(
|
|
string='Customer VAT',
|
|
config_parameter='all_in_one_pos_kit.customer_vat',
|
|
help='Enable or disable the display of customer VAT number')
|
|
barcode_type = fields.Selection(
|
|
selection=[('barcode', 'Barcode'),('qr_code', 'QRCode')],
|
|
string='Barcode Type',
|
|
config_parameter='all_in_one_pos_kit.barcode_type',
|
|
help='Select the type of barcode to be displayed (Barcode or QRCode)')
|
|
customer_msg = fields.Boolean(string='POS Greetings',
|
|
config_parameter='pos.customer_msg',
|
|
help='Create an account if you ever create an'
|
|
'account')
|
|
auth_token = fields.Char(string='Auth Token',
|
|
config_parameter='pos.auth_token',
|
|
help='Copy the token from your twilio console '
|
|
'window adn paste here')
|
|
account_sid = fields.Char(string='Account SID',
|
|
config_parameter='pos.account_sid',
|
|
help='Enter the Account SID provided by Twilio '
|
|
'for authentication.')
|
|
twilio_number = fields.Char(string='Twilio Number',
|
|
config_parameter='pos.twilio_number',
|
|
help='Enter the Twilio phone number used to '
|
|
'send the SMS.')
|
|
sms_body = fields.Text(string='Body',
|
|
help='Enter the content or message of the SMS to be'
|
|
'sent.')
|
|
|
|
@api.onchange('enable_service_charge')
|
|
def _onchange_enable_service_charge(self):
|
|
"""When the service charge is enabled set service product and amount
|
|
by default in globally"""
|
|
if self.enable_service_charge and not self.global_product_id:
|
|
self.global_product_id = self.env['product.product'].search(
|
|
[('available_in_pos', '=', True), ('sale_ok', '=', True),
|
|
('type', '=', 'service')], limit=1)
|
|
self.global_charge = 10.0
|
|
else:
|
|
self.global_product_id = False
|
|
self.global_charge = 0.0
|
|
|
|
def set_values(self):
|
|
"""Override method to set configuration values.
|
|
:return: Result of the super method"""
|
|
res = super(ResConfigSettings, self).set_values()
|
|
self.env['ir.config_parameter'].set_param(
|
|
'pos.sms_body', self.sms_body)
|
|
return res
|
|
|
|
def get_values(self):
|
|
"""Override method to get configuration values.
|
|
:return: Dictionary of configuration values"""
|
|
res = super(ResConfigSettings, self).get_values()
|
|
res.update(sms_body=self.env['ir.config_parameter'].sudo().get_param(
|
|
'pos.sms_body'))
|
|
return res
|
|
|