diff --git a/refer_friend_and_earn/README.rst b/refer_friend_and_earn/README.rst new file mode 100644 index 000000000..d0159e0a1 --- /dev/null +++ b/refer_friend_and_earn/README.rst @@ -0,0 +1,53 @@ +.. 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 + (V18) Farook Al Ameen +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..7f7844597 --- /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: Farook Al Ameen (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..ea5de8ff7 --- /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: Farook Al Ameen (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': '18.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.gif'], + '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..982d9c29c --- /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: Farook Al Ameen (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..db3b1a4f1 --- /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: Farook Al Ameen (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..3edb44b81 --- /dev/null +++ b/refer_friend_and_earn/controllers/variants_discount.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Farook Al Ameen (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.controllers.product_configurator 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..d120b8460 --- /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..86693ce4f --- /dev/null +++ b/refer_friend_and_earn/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ +## Module +#### 09.01.2024 +#### Version 18.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..0fef62076 --- /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: Farook Al Ameen (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..3c4dc842a --- /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: Farook Al Ameen (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..c534e1e87 --- /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: Farook Al Ameen (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..4729323ec --- /dev/null +++ b/refer_friend_and_earn/models/res_partner.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Farook Al Ameen (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..be335b514 --- /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: Farook Al Ameen (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/cybro-icon.png b/refer_friend_and_earn/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/cybro-icon.png differ diff --git a/refer_friend_and_earn/static/description/assets/cybro-odoo.png b/refer_friend_and_earn/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/cybro-odoo.png differ diff --git a/refer_friend_and_earn/static/description/assets/h2.png b/refer_friend_and_earn/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/h2.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/arrows-repeat.svg b/refer_friend_and_earn/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-1.png b/refer_friend_and_earn/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/banner-1.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-2.svg b/refer_friend_and_earn/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-bg.png b/refer_friend_and_earn/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/banner-bg.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-bg.svg b/refer_friend_and_earn/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-call.svg b/refer_friend_and_earn/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-mail.svg b/refer_friend_and_earn/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-pattern.svg b/refer_friend_and_earn/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/banner-promo.svg b/refer_friend_and_earn/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/brand-pair.svg b/refer_friend_and_earn/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/close-icon.svg b/refer_friend_and_earn/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + 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/collabarate-icon.svg b/refer_friend_and_earn/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + 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/cybro-logo.png b/refer_friend_and_earn/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/cybro-logo.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/down.svg b/refer_friend_and_earn/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file 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/faq.png b/refer_friend_and_earn/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/faq.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/feature-icon.svg b/refer_friend_and_earn/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/feature.png b/refer_friend_and_earn/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/feature.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/gear.svg b/refer_friend_and_earn/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/hero.gif b/refer_friend_and_earn/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..7d80323ab Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/hero.gif differ diff --git a/refer_friend_and_earn/static/description/assets/icons/hire-odoo.svg b/refer_friend_and_earn/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + 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/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/life-ring-icon.svg b/refer_friend_and_earn/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + 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/mail.svg b/refer_friend_and_earn/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + 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/notes.png b/refer_friend_and_earn/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/notes.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/notification icon.svg b/refer_friend_and_earn/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/odoo-consultancy.svg b/refer_friend_and_earn/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/odoo-licencing.svg b/refer_friend_and_earn/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/odoo-logo.png b/refer_friend_and_earn/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/odoo-logo.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/patter.svg b/refer_friend_and_earn/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/pattern1.png b/refer_friend_and_earn/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/pattern1.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-piece-icon.svg b/refer_friend_and_earn/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + 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/replace-icon.svg b/refer_friend_and_earn/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + 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/screenshot-main.png b/refer_friend_and_earn/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/screenshot-main.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/screenshot.png b/refer_friend_and_earn/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/screenshot.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/skype-fill.svg b/refer_friend_and_earn/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/skype.png b/refer_friend_and_earn/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/skype.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/skype.svg b/refer_friend_and_earn/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/star-1.svg b/refer_friend_and_earn/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/star-2.svg b/refer_friend_and_earn/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/refer_friend_and_earn/static/description/assets/icons/support.png b/refer_friend_and_earn/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/support.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/test-1 - Copy.png b/refer_friend_and_earn/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/test-1 - Copy.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/test-1.png b/refer_friend_and_earn/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/test-1.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/test-2.png b/refer_friend_and_earn/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/test-2.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/translate.svg b/refer_friend_and_earn/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + 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/video.png b/refer_friend_and_earn/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/video.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/whatsapp.png b/refer_friend_and_earn/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/icons/whatsapp.png differ diff --git a/refer_friend_and_earn/static/description/assets/icons/wrench-icon.svg b/refer_friend_and_earn/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/refer_friend_and_earn/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + 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/modules/1.gif b/refer_friend_and_earn/static/description/assets/modules/1.gif new file mode 100644 index 000000000..ae3a880a2 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/2.gif b/refer_friend_and_earn/static/description/assets/modules/2.gif new file mode 100644 index 000000000..d19e2b352 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/2.gif 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..8513873ea 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..3bedf7981 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..0e311ca87 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.jpg b/refer_friend_and_earn/static/description/assets/modules/6.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/6.jpg 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..01534fa54 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..43434930e 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..ddc06ef56 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..09e49fad8 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..75613cbf1 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..6017e4844 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..f7edaac7a 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..9822ff76f 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..3b0609da3 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/y18.jpg b/refer_friend_and_earn/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/y18.jpg differ diff --git a/refer_friend_and_earn/static/description/banner.gif b/refer_friend_and_earn/static/description/banner.gif new file mode 100644 index 000000000..f51e30182 Binary files /dev/null and b/refer_friend_and_earn/static/description/banner.gif 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..0d502cd75 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..0cb52840f --- /dev/null +++ b/refer_friend_and_earn/static/description/index.html @@ -0,0 +1,1223 @@ + + + + + + Refer and Earn + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+ + + + +
+
+ +
+
+
+
+

+ Refer your friends and Earn. +

+

Refer 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. +
+
+
+
+
+ +
+
+
+ Refer and Earn +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ 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. +

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

+ Add + + Discount +

+
+
+

+ Specify the points and discount in %. +

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

+ Refer and Earn + + + Points. +

+
+
+

+ 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.

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

+ You can easily refer your friend by sharing your referral code with them through email. +

+
+
+ +
+ +
+

+ You earn points when your friend signs up using your referral code, which you can later use to get discounts on purchases. +

+
+
+ +
+ +
+

+ Yes, your friend can also refer another person after signing up, allowing them to earn points as well. +

+
+ +
+ +
+

+ You can redeem your points during checkout to purchase items at a discounted price. +

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

+ Latest Release 18.0.1.0.0 +

+ + 26th September, 2024 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + + + + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + 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..e218a52bc --- /dev/null +++ b/refer_friend_and_earn/views/apply_discounts_views.xml @@ -0,0 +1,27 @@ + + + + + Apply Discounts + apply.discounts + list + + + + 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 + + + + + + + + +