diff --git a/refer_friend_and_earn/README.rst b/refer_friend_and_earn/README.rst new file mode 100644 index 000000000..0765a851f --- /dev/null +++ b/refer_friend_and_earn/README.rst @@ -0,0 +1,52 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Refer and Earn +============= +* By utilizing this module, we have the capability to share a referral code +with our friends through email, enabling them to log in using the same code. +In this system, it is feasible to define a specific points for single sign-up +in the settings, can also specify the discount in percentage for a range of +points.Login with our referral code allows us to accumulate points, which can +then be utilized to make discounted purchases. + +Installation +============ + - www.odoo.com/documentation/17.0/administration/install.html + - Install our custom addon + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: (v16) Anjana P V + (V17) Gayathri V +Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/refer_friend_and_earn/__init__.py b/refer_friend_and_earn/__init__.py new file mode 100644 index 000000000..449d048fa --- /dev/null +++ b/refer_friend_and_earn/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import controllers +from . import models diff --git a/refer_friend_and_earn/__manifest__.py b/refer_friend_and_earn/__manifest__.py new file mode 100644 index 000000000..de56249e0 --- /dev/null +++ b/refer_friend_and_earn/__manifest__.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Refer and Earn', + 'version': '17.0.1.0.0', + 'category': 'Website', + 'summary': """ Refer your friend by using referral code and have points + while they log in with that referral code. According to the secured points, + it is possible to have discount on products """, + 'description': """By using this module,we are able to share a referral code + with our friends and they are able to log in by that referral code. + Here it is possible to set a sign up points in the settings and it is + also able to give the discounts in percentage, for each points. + Log in with our referral code will helps to have points, and by using + that points, purchase the product at discount price""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['base', 'mail', 'website_sale', 'contacts'], + 'data': [ + 'security/ir.model.access.csv', + 'data/product_template_data.xml', + 'data/refer_and_earn_mail_template.xml', + 'data/lack_of_points_template.xml', + 'data/refer_and_earn_menu.xml', + 'views/refer_and_earn_template.xml', + 'views/res_partner_views.xml', + 'views/res_config_settings_views.xml', + 'views/auth_signup_login_templates.xml', + 'views/apply_points_template.xml', + 'views/apply_discounts_views.xml', + 'views/sale_order_views.xml', + ], + 'assets': { + 'web.assets_frontend': [ + 'refer_friend_and_earn/static/src/js/website_sale.js', + 'refer_friend_and_earn/static/src/css/refer_and_earn.css', + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/refer_friend_and_earn/controllers/__init__.py b/refer_friend_and_earn/controllers/__init__.py new file mode 100644 index 000000000..ac16a8689 --- /dev/null +++ b/refer_friend_and_earn/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import refer_friend_and_earn +from . import variants_discount diff --git a/refer_friend_and_earn/controllers/refer_friend_and_earn.py b/refer_friend_and_earn/controllers/refer_friend_and_earn.py new file mode 100644 index 000000000..f83097bd9 --- /dev/null +++ b/refer_friend_and_earn/controllers/refer_friend_and_earn.py @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +import random, werkzeug +from werkzeug.urls import url_encode +from odoo import _, http +from odoo.addons.auth_signup.controllers.main import AuthSignupHome +from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo.addons.auth_signup.models.res_users import SignupError +from odoo.exceptions import UserError +from odoo.http import _logger, request + + +class WebsiteLogin(AuthSignupHome): + """This class used to get the referral code from the website""" + + def web_auth_signup(self, *args, **kw): + """Overwrite the function web_auth_signup, to add the referral code + to qcontext""" + qcontext = self.get_auth_signup_qcontext() + qcontext.update({ + 'referral_code': kw.get('referral_code') + }) + if not qcontext.get('token') and not qcontext.get('signup_enabled'): + raise werkzeug.exceptions.NotFound() + if 'error' not in qcontext and request.httprequest.method == 'POST': + try: + self.do_signup(qcontext) + User = request.env['res.users'] + user_sudo = User.sudo().search( + User._get_login_domain(qcontext.get('login')), + order=User._get_login_order(), limit=1 + ) + template = request.env.ref( + 'auth_signup.mail_template_user_signup_account_created', + raise_if_not_found=False) + if user_sudo and template: + template.sudo().send_mail(user_sudo.id, force_send=True) + return self.web_login(*args, **kw) + except UserError as e: + qcontext['error'] = e.args[0] + except (SignupError, AssertionError) as e: + if request.env["res.users"].sudo().search( + [("login", "=", qcontext.get("login"))]): + qcontext["error"] = _("Another user is already registered" + " using this email address.") + else: + _logger.error("%s", e) + qcontext['error'] = _("Could not create a new account.") + elif 'signup_email' in qcontext: + user = request.env['res.users'].sudo().search( + [('email', '=', qcontext.get('signup_email')), + ('state', '!=', 'new')], limit=1) + if user: + return request.redirect('/web/login?%s' % url_encode( + {'login': user.login, 'redirect': '/web'})) + response = request.render('auth_signup.signup', qcontext) + response.headers['X-Frame-Options'] = 'SAMEORIGIN' + response.headers['Content-Security-Policy'] = "frame-ancestors 'self'" + return response + + def _prepare_signup_values(self, qcontext, **post): + """Inherited the function _prepare_signup_values to get the current + referral code and thus want to find partner with that referral code, + to add points""" + res = super(WebsiteLogin, self)._prepare_signup_values(qcontext, **post) + current_referral_code = qcontext.get('referral_code') + partner_rec = request.env['res.partner'].sudo().search( + [('referral_code', '=', current_referral_code)]) + if partner_rec: + signup_points = request.env['ir.config_parameter'].sudo().get_param( + 'refer_friend_and_earn.sign_up_points') + partner_rec.points = partner_rec.points + float(signup_points) + partner_rec.sign_up = partner_rec.sign_up + 1 + return res + + +class ReferAndEarn(http.Controller): + """This class will allow to generate the referral code and send to + other person """ + + @http.route('/refer/earn', type='http', auth="user", website=True) + def refer_earn(self): + """This function is used to create new referral code for newly signup + one if already logged one is login again, then it will return already + created referral code""" + current_user_code = request.env.user.partner_id.referral_code + if not current_user_code: + num = "0123456789" + lowercase = "abcdefghijklmnopqrstuvwxyz" + capital = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + no_of_digit = 7 + comb = num + lowercase + capital + codes = "".join(random.sample(comb, no_of_digit)) + request.env.user.partner_id.referral_code = codes + else: + codes = request.env.user.partner_id.referral_code + return request.render('refer_friend_and_earn.refer_earn_template', { + 'codes': codes, + 'points': request.env.user.partner_id.points, + 'sign_up': request.env.user.partner_id.sign_up, + }) + + @http.route('/refer_and_earn/form/submit', type='http', auth="user", + website=True) + def refer_and_earn_popup(self, **post): + """This function will help to collect the recipient of + mail and send mail to them""" + base_url = request.env['ir.config_parameter'].sudo().get_param( + 'web.base.url') + url = '%s/web/signup?' % base_url + code = post.get('referral_code') + email_to = post.get('email') + email_values = {'email_to': email_to, + 'body_html': '

Hello,
Now, its your chance to ' + 'have unbelivable offers, for that just ' + ' click the link %s and use the code %s to' + ' login

' % (url, code), + } + login_user = request.env.user.partner_id + mail_template = request.env.ref( + 'refer_friend_and_earn.mail_template_refer_and_earn') + mail_template.send_mail(login_user.id, email_values=email_values, + force_send=True) + return request.render('refer_friend_and_earn.website_success_page', {}) + + +class WebsiteSale(WebsiteSale): + """This class will calculate the discount percentage according to the + points secured, and also helps to add the discount product in the + order line""" + + @http.route('/shop/pricelist/points', type='http', auth="user", + website=True) + def refer_earn(self, **kw): + """This function will help to apply the discount according + to the points secured""" + redirect = kw.get('r', '/shop/cart') + points_rec = request.env['apply.discounts'].sudo().search( + [('starting_points', '<=', int(kw.get('points'))), + ('end_points', '>=', int(kw.get('points')))], + order='create_date desc', limit=1) + if int(kw.get('points')) > request.env.user.partner_id.points: + return request.render( + 'refer_friend_and_earn.lack_of_points_template', {}) + if points_rec: + sale_order = request.website.sale_get_order() + sale_order.discount_applied = points_rec.discount + sale_order.points_applied = int(kw.get('points')) + total_price = sum(sale_order.order_line.mapped('price_subtotal')) + discount_amount = total_price * (sale_order.discount_applied / 100) + discount_product_id = request.env['product.product'].sudo().search( + [('default_code', '=', 'DISCOUNT001')]) + discount_product_id.list_price = -discount_amount + sale_order.write({'order_line': [(0, 0, + {'id': sale_order.order_line, + 'order_id': sale_order, + 'product_id': discount_product_id.id, + 'product_uom_qty': 1, + })] + }) + else: + return request.render( + 'refer_friend_and_earn.lack_of_points_template', {}) + return request.redirect(redirect) + + @http.route() + def cart_update_json(self, *args, set_qty=None, **kwargs): + """This function will work when we have some updates from the cart, ie, + add or delete the products from the cart""" + super().cart_update_json(*args, set_qty=set_qty, **kwargs) + total_price = sum(request.website.sale_get_order().order_line.mapped( + 'price_subtotal')) + discount_order_line_id = 0 + if total_price <= 0: + for line in request.website.sale_get_order().order_line: + line.product_uom_qty = 0 + line.sudo().unlink() + else: + discount_product_id = request.env[ + 'product.product'].sudo().search( + [('default_code', '=', 'DISCOUNT001')]) + original_total_price = 0 + for line in request.website.sale_get_order().order_line: + if line.product_id.id != discount_product_id.id: + original_total_price += line.price_subtotal + else: + discount_order_line_id = line.id + for line in request.website.sale_get_order().order_line: + if line.product_id.id == discount_product_id.id: + discount_percentage = request.website.sale_get_order().discount_applied + discount_amount = original_total_price * ( + discount_percentage / 100) + order_line_discount_price = -discount_amount + discount_product_id.list_price = -discount_amount + order_line = request.website.sale_get_order().order_line.browse( + discount_order_line_id) + order_line.write({ + 'price_unit': order_line_discount_price, + }) + return http.request.redirect(http.request.httprequest.url) + + def shop_payment_confirmation(self, **post): + """This function is used to decrease the applied points from the + partner's secured points""" + sale_order_id = request.session.get('sale_last_order_id') + res = super().shop_payment_confirmation(**post) + points = request.env['sale.order'].browse(sale_order_id).points_applied + request.env.user.partner_id.points = request.env.user.partner_id.points - points + return res diff --git a/refer_friend_and_earn/controllers/variants_discount.py b/refer_friend_and_earn/controllers/variants_discount.py new file mode 100644 index 000000000..218b4399b --- /dev/null +++ b/refer_friend_and_earn/controllers/variants_discount.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo.addons.website_sale_product_configurator.controllers.main import \ + WebsiteSaleProductConfiguratorController +from odoo.http import request + + +class Cart(WebsiteSaleProductConfiguratorController): + """This class is used to recalculate the discount when we add a product with + variants to the cart""" + def cart_options_update_json(self, *args, **kwargs): + """This class is used to recalculate the discount when we add a product + with variants to the cart""" + res = super().cart_options_update_json(*args, **kwargs) + discount_product_id = request.env['product.product'].sudo().search( + [('default_code', '=', 'DISCOUNT001')]) + for line in request.website.sale_get_order().order_line: + if line.product_id.id == discount_product_id.id: + order_line_discount = line.price_unit + total_price = sum(request.website.sale_get_order().order_line.mapped('price_subtotal')) + original_total_price = total_price - order_line_discount + discount_percentage = request.website.sale_get_order().discount_applied + discount_amount = original_total_price * ( + discount_percentage / 100) + order_line_discount_price = -discount_amount + order_line = request.website.sale_get_order().order_line.browse(line.id) + order_line.write({ + 'price_unit': order_line_discount_price, + }) + return res diff --git a/refer_friend_and_earn/data/lack_of_points_template.xml b/refer_friend_and_earn/data/lack_of_points_template.xml new file mode 100644 index 000000000..36c3567c3 --- /dev/null +++ b/refer_friend_and_earn/data/lack_of_points_template.xml @@ -0,0 +1,20 @@ + + + + + diff --git a/refer_friend_and_earn/data/product_template_data.xml b/refer_friend_and_earn/data/product_template_data.xml new file mode 100644 index 000000000..0d35b539b --- /dev/null +++ b/refer_friend_and_earn/data/product_template_data.xml @@ -0,0 +1,13 @@ + + + + + + Discount + + 0.0 + DISCOUNT001 + service + + + diff --git a/refer_friend_and_earn/data/refer_and_earn_mail_template.xml b/refer_friend_and_earn/data/refer_and_earn_mail_template.xml new file mode 100644 index 000000000..ebb30ee13 --- /dev/null +++ b/refer_friend_and_earn/data/refer_and_earn_mail_template.xml @@ -0,0 +1,10 @@ + + + + + Refer Code: Refer and Earn + + Refer And Earn + {{object.email}} + + diff --git a/refer_friend_and_earn/data/refer_and_earn_menu.xml b/refer_friend_and_earn/data/refer_and_earn_menu.xml new file mode 100644 index 000000000..c933f687d --- /dev/null +++ b/refer_friend_and_earn/data/refer_and_earn_menu.xml @@ -0,0 +1,12 @@ + + + + + + Refer and Earn + /refer/earn + + 80 + + + diff --git a/refer_friend_and_earn/doc/RELEASE_NOTES.md b/refer_friend_and_earn/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..301479ba2 --- /dev/null +++ b/refer_friend_and_earn/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module +#### 09.01.2024 +#### Version 17.0.1.0.0 +##### ADD +- Initial Commit for Refer and Earn diff --git a/refer_friend_and_earn/models/__init__.py b/refer_friend_and_earn/models/__init__.py new file mode 100644 index 000000000..b40de5f67 --- /dev/null +++ b/refer_friend_and_earn/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import apply_discounts +from . import res_config_settings +from . import res_partner +from . import sale_order diff --git a/refer_friend_and_earn/models/apply_discounts.py b/refer_friend_and_earn/models/apply_discounts.py new file mode 100644 index 000000000..4c81f193a --- /dev/null +++ b/refer_friend_and_earn/models/apply_discounts.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ApplyDiscounts(models.Model): + """This class is used to define the discounts in percentage according the + points acquired""" + _name = 'apply.discounts' + _description = 'Apply discounts according to the points' + + starting_points = fields.Integer(string='Starting point', help='Starting ' + 'points') + end_points = fields.Integer(string='Ending points', help='Ending points') + discount = fields.Float(string='Discount in %', help='Discounts in ' + 'Percentage') diff --git a/refer_friend_and_earn/models/res_config_settings.py b/refer_friend_and_earn/models/res_config_settings.py new file mode 100644 index 000000000..4a93838e0 --- /dev/null +++ b/refer_friend_and_earn/models/res_config_settings.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + """Inherited the module res.config.settings to add a field which shows how + much points will earn for single signup""" + _inherit = 'res.config.settings' + + sign_up_points = fields.Float(string="Signup Points", + help='shows how much points will earn for ' + 'single signup', + config_parameter='refer_friend_and_earn.sign_up_points') diff --git a/refer_friend_and_earn/models/res_partner.py b/refer_friend_and_earn/models/res_partner.py new file mode 100644 index 000000000..1c24b7275 --- /dev/null +++ b/refer_friend_and_earn/models/res_partner.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ResPartner(models.Model): + """Inherited the module res.partner to add the following fields, which + indicate the referral code, points earned and no: of signups happened by + using their referral code""" + _inherit = 'res.partner' + + referral_code = fields.Char(string="Referral Code", help="Referral code", + readonly=True) + points = fields.Integer(string='points', help='Points acquired', + readonly=True) + sign_up = fields.Integer(string='signups', help='shows number of signup ' + 'happens by using your' + ' referral code', + readonly=True) diff --git a/refer_friend_and_earn/models/sale_order.py b/refer_friend_and_earn/models/sale_order.py new file mode 100644 index 000000000..3fa616911 --- /dev/null +++ b/refer_friend_and_earn/models/sale_order.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Gayathti V (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class SaleOrder(models.Model): + """Inherited the module sale.order to add a field which shows how + much points applied for sale order""" + _inherit = 'sale.order' + + points_applied = fields.Float(string='Points applied', + help='Points applied to the corresponding ' + 'sale order') + discount_applied = fields.Float(string='discount applied', + help='The percentage of discount applied') diff --git a/refer_friend_and_earn/security/ir.model.access.csv b/refer_friend_and_earn/security/ir.model.access.csv new file mode 100644 index 000000000..0f586cfee --- /dev/null +++ b/refer_friend_and_earn/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_mail_template_portal,mail.template,mail.model_mail_template,base.group_portal,1,1,1,1 +access_apply_discounts,access.apply.discounts,refer_friend_and_earn.model_apply_discounts,base.group_user,1,1,1,1 diff --git a/refer_friend_and_earn/static/description/assets/icons/capture (1).png b/refer_friend_and_earn/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/capture (1).png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/check.png b/refer_friend_and_earn/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/check.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/chevron.png b/refer_friend_and_earn/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/chevron.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/cogs.png b/refer_friend_and_earn/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/cogs.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/consultation.png b/refer_friend_and_earn/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/consultation.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/ecom-black.png b/refer_friend_and_earn/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/ecom-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/education-black.png b/refer_friend_and_earn/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/education-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/hotel-black.png b/refer_friend_and_earn/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/hotel-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/img.png b/refer_friend_and_earn/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/img.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/license.png b/refer_friend_and_earn/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/license.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/lifebuoy.png b/refer_friend_and_earn/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/lifebuoy.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/manufacturing-black.png b/refer_friend_and_earn/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/manufacturing-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/photo-capture.png b/refer_friend_and_earn/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/photo-capture.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/pos-black.png b/refer_friend_and_earn/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/pos-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/puzzle.png b/refer_friend_and_earn/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/puzzle.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/restaurant-black.png b/refer_friend_and_earn/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/restaurant-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/service-black.png b/refer_friend_and_earn/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/service-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/trading-black.png b/refer_friend_and_earn/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/trading-black.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/training.png b/refer_friend_and_earn/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/training.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/update.png b/refer_friend_and_earn/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/update.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/user.png b/refer_friend_and_earn/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/user.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/wrench.png b/refer_friend_and_earn/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/wrench.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/Cybrosys R.png b/refer_friend_and_earn/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/Cybrosys R.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/categories.png b/refer_friend_and_earn/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/categories.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/check-box.png b/refer_friend_and_earn/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/check-box.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/compass.png b/refer_friend_and_earn/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/compass.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/corporate.png b/refer_friend_and_earn/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/corporate.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/customer-support.png b/refer_friend_and_earn/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/customer-support.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/cybrosys-logo.png b/refer_friend_and_earn/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/cybrosys-logo.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/email.svg b/refer_friend_and_earn/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/features.png b/refer_friend_and_earn/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/features.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/logo.png b/refer_friend_and_earn/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/logo.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/phone.svg b/refer_friend_and_earn/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/pictures.png b/refer_friend_and_earn/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/pictures.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/pie-chart.png b/refer_friend_and_earn/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/pie-chart.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/right-arrow.png b/refer_friend_and_earn/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/right-arrow.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/star (1) 2.svg b/refer_friend_and_earn/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/star.png b/refer_friend_and_earn/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/star.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/support (1) 1.svg b/refer_friend_and_earn/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/support-email.svg b/refer_friend_and_earn/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/support.png b/refer_friend_and_earn/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/support.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/tick-mark.svg b/refer_friend_and_earn/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/whatsapp 1.svg b/refer_friend_and_earn/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/misc/whatsapp.png b/refer_friend_and_earn/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/misc/whatsapp.png differ diff --git a/refer_friend_and_earn/static/description/assets/misc/whatsapp.svg b/refer_friend_and_earn/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/modules/1.gif b/refer_friend_and_earn/static/description/assets/modules/1.gif new file mode 100644 index 000000000..8ac32db03 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/1.gif differ diff --git a/refer_friend_and_earn/static/description/assets/modules/1.png b/refer_friend_and_earn/static/description/assets/modules/1.png new file mode 100644 index 000000000..3bedf7981 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/1.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/2.jpg b/refer_friend_and_earn/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..a1dc39c89 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/2.jpg differ diff --git a/refer_friend_and_earn/static/description/assets/modules/2.png b/refer_friend_and_earn/static/description/assets/modules/2.png new file mode 100644 index 000000000..2c8fbb83f Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/2.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/3.png b/refer_friend_and_earn/static/description/assets/modules/3.png new file mode 100644 index 000000000..25ed3e0b6 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/3.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/4.png b/refer_friend_and_earn/static/description/assets/modules/4.png new file mode 100644 index 000000000..bc5648b1a Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/4.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/5.png b/refer_friend_and_earn/static/description/assets/modules/5.png new file mode 100644 index 000000000..7cc3625c7 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/5.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/6.png b/refer_friend_and_earn/static/description/assets/modules/6.png new file mode 100644 index 000000000..745d6db78 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/6.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/banner.jpg b/refer_friend_and_earn/static/description/assets/modules/banner.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/banner.jpg differ diff --git a/refer_friend_and_earn/static/description/assets/modules/w1.gif b/refer_friend_and_earn/static/description/assets/modules/w1.gif new file mode 100644 index 000000000..db040e0de Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w1.gif differ diff --git a/refer_friend_and_earn/static/description/assets/modules/w2.png b/refer_friend_and_earn/static/description/assets/modules/w2.png new file mode 100644 index 000000000..b3c3ca084 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w2.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/w3.png b/refer_friend_and_earn/static/description/assets/modules/w3.png new file mode 100644 index 000000000..082948398 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w3.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/w4.png b/refer_friend_and_earn/static/description/assets/modules/w4.png new file mode 100644 index 000000000..4e506f79b Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w4.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/w5.png b/refer_friend_and_earn/static/description/assets/modules/w5.png new file mode 100644 index 000000000..33372bdc1 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w5.png differ diff --git a/refer_friend_and_earn/static/description/assets/modules/w6.png b/refer_friend_and_earn/static/description/assets/modules/w6.png new file mode 100644 index 000000000..1b57f61b3 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w6.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/1.png b/refer_friend_and_earn/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..7dbf8e9a7 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/1.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/2.png b/refer_friend_and_earn/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..0dc284962 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/2.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/3.png b/refer_friend_and_earn/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..414f66b30 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/3.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/4.png b/refer_friend_and_earn/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..66fe63e87 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/4.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/5.png b/refer_friend_and_earn/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..886bf291f Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/5.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/6.png b/refer_friend_and_earn/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..dada6e014 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/6.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/7.png b/refer_friend_and_earn/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..3b918211a Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/7.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/8.png b/refer_friend_and_earn/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..a5d49565d Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/8.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/9.png b/refer_friend_and_earn/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..80df68287 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/9.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/hero.gif b/refer_friend_and_earn/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..811873554 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/hero.gif differ diff --git a/refer_friend_and_earn/static/description/banner.jpg b/refer_friend_and_earn/static/description/banner.jpg new file mode 100644 index 000000000..cd9103b86 Binary files /dev/null and b/refer_friend_and_earn/static/description/banner.jpg differ diff --git a/refer_friend_and_earn/static/description/icon.png b/refer_friend_and_earn/static/description/icon.png new file mode 100644 index 000000000..095f42821 Binary files /dev/null and b/refer_friend_and_earn/static/description/icon.png differ diff --git a/refer_friend_and_earn/static/description/index.html b/refer_friend_and_earn/static/description/index.html new file mode 100644 index 000000000..0bfecbd6c --- /dev/null +++ b/refer_friend_and_earn/static/description/index.html @@ -0,0 +1,844 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Refer And Earn

+

+ Refer your friends and Earn. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ You can easily refer your friend.

+
+
+
+
+
+
+ +
+
+

+ Can send your referral code through mail.

+
+
+
+
+
+
+ +
+
+

+ Your friends can also refer another person .

+
+
+
+
+
+
+ +
+
+

+ Your friend can use your referral code to sign + up, and thus you will get points , and by using + this points you can purchase at a discount + price.

+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+

+ Signup points

+

+ From Website > Configuration > Settings, + specify the points that can be earned,while + someone login by using referral code .

+
+
+
+
+
+
+ +
+
+

+ Menu, Apply Discount

+

+ From, Website > Configuration > Apply + Discount.

+ +
+
+
+
+
+
+ +
+
+

+ Discount

+

+ Specify the points and discount in %.

+ +
+
+
+
+
+
+ +
+
+

+ Refer and Earn

+

+ From the website, you can click on Refer and + Earn menu, and thus you are directed to the + webpage, from there it is possible to share + the referral code via email.

+
+
+
+
+
+
+ +
+
+

+ Send mail

+

+ Here, mention your friends email and able to + send your referral code to them.

+
+
+
+
+
+
+ +
+
+

+ Sign up

+

+ Friends can sign up with referral code.

+
+
+
+
+
+
+ +
+
+

+ Click on I have points

+
+
+
+
+
+
+ +
+
+

+ Apply points

+

+ Specify the points, and click on 'Apply' + button.

+
+
+
+
+
+
+ +
+
+

+ Discount is applied

+

+ Specify the points, and click on 'Apply' + button.

+
+
+
+
+
+
+
    +
  • + You can easily + refer your friend. +
  • +
  • + Your friend can + use your referral code to sign up, and thus you + will get points , and by using this points you + can purchase at a discount price. +
  • +
  • + Can send your + referral code through mail. +
  • +
  • + Your friends can + also refer another person. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:06th Jan 2024 +
+

+ + Initial Commit for Refer and Earn.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

+ +
+
+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Customization

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Support

+
+
+
+
+
+
+ service-icon +
+
+

Hire + Odoo Developer

+
+
+
+
+ +
+
+ service-icon +
+
+

Odoo + Integration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Migration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Consultancy

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

+
+
+
+
+
+
+
+ +
+ Need + Help? +

Got + questions or need help? Get in touch.

+
odoo@cybrosys.com +
+
+
+
+
+
+
+
+ +
+ WhatsApp +

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/refer_friend_and_earn/static/src/css/refer_and_earn.css b/refer_friend_and_earn/static/src/css/refer_and_earn.css new file mode 100644 index 000000000..059b10e9b --- /dev/null +++ b/refer_friend_and_earn/static/src/css/refer_and_earn.css @@ -0,0 +1,57 @@ +.image{ +background-image:url("/refer_friend_and_earn/static/src/img/refer_earn.jpg"); +background-size:cover; +height:300px; +width:600px; +} + +.code{ +width: 314px; +margin-top: 20px; +} + +.main1{ +background-color:#dfebe9; +height:100%; +width:100%; +display:flex; +padding-top:50px; +} + +.share{ +margin-top: 20px; +} + +.main-right{ + text-align: center; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.content{ +width: 472px; +margin-left: 33px; +line-height: 34px; +text-align: justify; +padding:-3px; +} + +@media (max-width:998px){ +.main1{ +flex-wrap: wrap; +justify-content:center; +} +.content { + width: 95%; + padding-right: 20px; + } +} + +@media (max-width:616px){ +.image { + width: 312px; + height: 200px; +} +} diff --git a/refer_friend_and_earn/static/src/img/refer_earn.jpg b/refer_friend_and_earn/static/src/img/refer_earn.jpg new file mode 100644 index 000000000..b6138b91c Binary files /dev/null and b/refer_friend_and_earn/static/src/img/refer_earn.jpg differ diff --git a/refer_friend_and_earn/static/src/js/website_sale.js b/refer_friend_and_earn/static/src/js/website_sale.js new file mode 100644 index 000000000..940b91c1e --- /dev/null +++ b/refer_friend_and_earn/static/src/js/website_sale.js @@ -0,0 +1,16 @@ +/** @odoo-module **/ + /** + * This file used control the visibility of 'I have points' + */ +import publicWidget from "@web/legacy/js/public/public_widget"; +publicWidget.registry.ReferAndEarn = publicWidget.Widget.extend({ + selector: '.oe_website_sale', + events: { + 'click .show_points': '_onClickShowPoints', + }, +// While click on the 'I have points', hide the text and shows the input field + _onClickShowPoints: function (ev) { + this.$el.find(".show_points").hide(); + this.$el.find('.point_form').removeClass('d-none'); + }, +}); diff --git a/refer_friend_and_earn/views/apply_discounts_views.xml b/refer_friend_and_earn/views/apply_discounts_views.xml new file mode 100644 index 000000000..0cf810a75 --- /dev/null +++ b/refer_friend_and_earn/views/apply_discounts_views.xml @@ -0,0 +1,27 @@ + + + + + Apply Discounts + apply.discounts + tree + + + + apply.discounts.view.tree + apply.discounts + + + + + + + + + + + diff --git a/refer_friend_and_earn/views/apply_points_template.xml b/refer_friend_and_earn/views/apply_points_template.xml new file mode 100644 index 000000000..947b4824f --- /dev/null +++ b/refer_friend_and_earn/views/apply_points_template.xml @@ -0,0 +1,61 @@ + + + + + + + diff --git a/refer_friend_and_earn/views/auth_signup_login_templates.xml b/refer_friend_and_earn/views/auth_signup_login_templates.xml new file mode 100644 index 000000000..c72ddbffe --- /dev/null +++ b/refer_friend_and_earn/views/auth_signup_login_templates.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/refer_friend_and_earn/views/refer_and_earn_template.xml b/refer_friend_and_earn/views/refer_and_earn_template.xml new file mode 100644 index 000000000..d32f782b4 --- /dev/null +++ b/refer_friend_and_earn/views/refer_and_earn_template.xml @@ -0,0 +1,165 @@ + + + + + + + diff --git a/refer_friend_and_earn/views/res_config_settings_views.xml b/refer_friend_and_earn/views/res_config_settings_views.xml new file mode 100644 index 000000000..1d44b4813 --- /dev/null +++ b/refer_friend_and_earn/views/res_config_settings_views.xml @@ -0,0 +1,19 @@ + + + + + + res.config.settings.view.form.inherit.refer.friend.and.earn + + res.config.settings + + + +
+
+
+
+
+
diff --git a/refer_friend_and_earn/views/res_partner_views.xml b/refer_friend_and_earn/views/res_partner_views.xml new file mode 100644 index 000000000..cc0f4dbe7 --- /dev/null +++ b/refer_friend_and_earn/views/res_partner_views.xml @@ -0,0 +1,18 @@ + + + + + + res.partner.view.form.inherit.refer.friend.and.earn + + res.partner + + + + + + + + + + diff --git a/refer_friend_and_earn/views/sale_order_views.xml b/refer_friend_and_earn/views/sale_order_views.xml new file mode 100644 index 000000000..d28dd2a02 --- /dev/null +++ b/refer_friend_and_earn/views/sale_order_views.xml @@ -0,0 +1,16 @@ + + + + + sale.order.view.form.inherit.refer.friend.and.earn + + sale.order + + + + + + + + +