diff --git a/refer_friend_and_earn/README.rst b/refer_friend_and_earn/README.rst new file mode 100644 index 000000000..60e1164bd --- /dev/null +++ b/refer_friend_and_earn/README.rst @@ -0,0 +1,46 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-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. + +Configuration +============= +Need to set the signup points in the settings of Website + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: (V15) Ammu Raj, Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://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 `Our Website `__ + +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..e5a192207 --- /dev/null +++ b/refer_friend_and_earn/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +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..ffdc09ab8 --- /dev/null +++ b/refer_friend_and_earn/__manifest__.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + 'name': 'Refer and Earn', + 'version': '15.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': ['mail', 'website_sale', 'contacts'], + 'data': [ + 'security/ir.model.access.csv', + 'data/product_template_data.xml', + 'data/lack_of_points_templates.xml', + 'data/website_menu_data.xml', + 'data/refer_and_earn_mail_data.xml', + 'views/refer_and_earn_templates.xml', + 'views/res_partner_views.xml', + 'views/res_config_settings_views.xml', + 'views/auth_signup_login_templates.xml', + 'views/apply_points_templates.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.png'], + 'license': 'AGPL-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..a174e2b6e --- /dev/null +++ b/refer_friend_and_earn/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import main +from . import refer_friend_and_earn diff --git a/refer_friend_and_earn/controllers/main.py b/refer_friend_and_earn/controllers/main.py new file mode 100644 index 000000000..97832a05b --- /dev/null +++ b/refer_friend_and_earn/controllers/main.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo.http import request +from odoo.addons.website_sale_product_configurator.controllers.main import \ + WebsiteSale + + +class Cart(WebsiteSale): + """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) + for line in request.website.sale_get_order().order_line: + if line.product_id.id == request.env[ + 'product.product'].sudo().search( + [('default_code', '=', 'DISCOUNT001')]).id: + original_total_price = sum( + request.website.sale_get_order().order_line.mapped( + 'price_subtotal')) - line.price_unit + discount_amount = original_total_price * ( + request.website.sale_get_order().discount_applied / 100) + request.website.sale_get_order().order_line.browse( + line.id).write({'price_unit': -discount_amount}) + return res 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..d17d8d6d8 --- /dev/null +++ b/refer_friend_and_earn/controllers/refer_friend_and_earn.py @@ -0,0 +1,229 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +import random, werkzeug +from werkzeug.urls import url_encode +from odoo import http, _ +from odoo.exceptions import UserError +from odoo.http import _logger, request +from odoo.addons.auth_signup.controllers.main import AuthSignupHome +from odoo.addons.auth_signup.models.res_users import SignupError +from odoo.addons.website_sale.controllers.main import WebsiteSale + + +class WebsiteLogin(AuthSignupHome): + """This class used to get the referral code from the website""" + + @http.route('/web/signup', type='http', auth='public', website=True, + sitemap=False) + 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: + res_user = request.env['res.users'].sudo().search( + [('email', '=', qcontext.get('signup_email')), + ('state', '!=', 'new')], limit=1) + if res_user: + return request.redirect('/web/signup?%s' % url_encode( + {'login': res_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) + res_user = request.env["res.users"].sudo().search( + [("login", "=", qcontext.get("login"))]) + if not res_user: + partner_rec = request.env['res.partner'].sudo().search( + [('referral_code', '=', qcontext.get('referral_code'))]) + if partner_rec: + partner_rec.points = partner_rec.points + float( + request.env['ir.config_parameter'].sudo().get_param( + 'refer_friend_and_earn.sign_up_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""" + url = '%s/web/signup?' % request.env[ + 'ir.config_parameter'].sudo().get_param('web.base.url') + email_values = {'email_to': post.get('email'), + '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, post.get('referral_code')), + } + request.env.ref( + 'refer_friend_and_earn.mail_template_refer_and_earn').send_mail( + request.env.user.partner_id.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""" + if kw.get('points'): + 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')) + discount_amount = (sum(sale_order.order_line.mapped( + 'price_subtotal')) * + (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(kw.get('r', '/shop/cart')) + + @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) + discount_order_line_id = 0 + order_line = request.website.sale_get_order().order_line + if sum(order_line.mapped('price_subtotal')) <= 0: + for line in 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 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 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) + + @http.route(['/shop/confirmation'], type='http', auth="public", + website=True, sitemap=False) + 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/data/lack_of_points_templates.xml b/refer_friend_and_earn/data/lack_of_points_templates.xml new file mode 100644 index 000000000..acdcc9fb1 --- /dev/null +++ b/refer_friend_and_earn/data/lack_of_points_templates.xml @@ -0,0 +1,22 @@ + + + + + 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..4a6aa1505 --- /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_data.xml b/refer_friend_and_earn/data/refer_and_earn_mail_data.xml new file mode 100644 index 000000000..25030f025 --- /dev/null +++ b/refer_friend_and_earn/data/refer_and_earn_mail_data.xml @@ -0,0 +1,10 @@ + + + + + Refer Code: Refer and Earn + + Refer And Earn + {{object.email}} + + diff --git a/refer_friend_and_earn/data/website_menu_data.xml b/refer_friend_and_earn/data/website_menu_data.xml new file mode 100644 index 000000000..e993e518f --- /dev/null +++ b/refer_friend_and_earn/data/website_menu_data.xml @@ -0,0 +1,10 @@ + + + + + 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..93f5f748a --- /dev/null +++ b/refer_friend_and_earn/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module +#### 28.11.2023 +#### Version 15.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..9e30c208a --- /dev/null +++ b/refer_friend_and_earn/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +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..eab87d721 --- /dev/null +++ b/refer_friend_and_earn/models/apply_discounts.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +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 point for getting the' + 'discount') + end_points = fields.Integer(string='Ending points', + help='The ending point of discount') + discount = fields.Float(string='Discount in %', + help='The percentage discount that can give between' + 'these point') 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..36d8b263b --- /dev/null +++ b/refer_friend_and_earn/models/res_config_settings.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +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..f151f99cb --- /dev/null +++ b/refer_friend_and_earn/models/res_partner.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +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", readonly=True, + help="Referral code of the partner") + points = fields.Integer(string='Points', help='Points acquired', + readonly=True) + sign_up = fields.Integer(string='Signups', readonly=True, + help='Shows number of signups happens by using' + 'your referral code') 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..c33933b7d --- /dev/null +++ b/refer_friend_and_earn/models/sale_order.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Ammu Raj (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +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..baf092855 --- /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,access.mail.template.portal,mail.model_mail_template,base.group_portal,1,1,1,1 +access_apply_discounts_user,access.apply.discounts.user,model_apply_discounts,base.group_user,1,1,1,1 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/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/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/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/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/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.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.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/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/modules/w1.png b/refer_friend_and_earn/static/description/assets/modules/w1.png new file mode 100644 index 000000000..f19f3578e Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/modules/w1.png 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..e6bee65a9 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..b64b96d92 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..aa9cb6262 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..bf93d4f80 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..4d7fa1223 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/5.png b/refer_friend_and_earn/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..4bad413f6 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/hero.gif b/refer_friend_and_earn/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..e5f4ffe95 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/assets/screenshots/re0001.png b/refer_friend_and_earn/static/description/assets/screenshots/re0001.png new file mode 100644 index 000000000..b600c2e72 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/re0001.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/re0002.png b/refer_friend_and_earn/static/description/assets/screenshots/re0002.png new file mode 100644 index 000000000..aaca9165c Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/re0002.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/re0003.png b/refer_friend_and_earn/static/description/assets/screenshots/re0003.png new file mode 100644 index 000000000..b57898cbe Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/re0003.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/rfr01.png b/refer_friend_and_earn/static/description/assets/screenshots/rfr01.png new file mode 100644 index 000000000..55c220e02 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/rfr01.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/rfr02.png b/refer_friend_and_earn/static/description/assets/screenshots/rfr02.png new file mode 100644 index 000000000..1ea6a7993 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/rfr02.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/rfr03.png b/refer_friend_and_earn/static/description/assets/screenshots/rfr03.png new file mode 100644 index 000000000..d0286075c Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/rfr03.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/rfr04.png b/refer_friend_and_earn/static/description/assets/screenshots/rfr04.png new file mode 100644 index 000000000..5d41581c6 Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/rfr04.png differ diff --git a/refer_friend_and_earn/static/description/assets/screenshots/rfr05.png b/refer_friend_and_earn/static/description/assets/screenshots/rfr05.png new file mode 100644 index 000000000..9b20a258b Binary files /dev/null and b/refer_friend_and_earn/static/description/assets/screenshots/rfr05.png differ diff --git a/refer_friend_and_earn/static/description/banner.png b/refer_friend_and_earn/static/description/banner.png new file mode 100644 index 000000000..de03404d9 Binary files /dev/null and b/refer_friend_and_earn/static/description/banner.png 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..f6571e4b2 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..1d4bb742f --- /dev/null +++ b/refer_friend_and_earn/static/description/index.html @@ -0,0 +1,583 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Refer And Earn

+

Refer Your Friends and Earn

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

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ By using this module you can refer your friend and by sharing the referral code you can earn points, while your friend login + with that referral code. And by using that points, you can purchase the product at a discount price +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + You can easily refer your friend +
+
+ + Can send your referral code through mail +
+
+ + 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 +
+
+ + Your friends can also refer another person +
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+
+

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

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

Related + Products +

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

Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ 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 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file 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..5253cb736 --- /dev/null +++ b/refer_friend_and_earn/static/src/css/refer_and_earn.css @@ -0,0 +1,51 @@ +.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..69087f3bf --- /dev/null +++ b/refer_friend_and_earn/static/src/js/website_sale.js @@ -0,0 +1,19 @@ +odoo.define('refer_friend_and_earn.refer_and_earn', function(require) { + "use strict"; + /** + * This file used control the visibility of 'I have points' + */ +var publicWidget = require('web.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'); + }, +}); +return publicWidget.registry.ReferAndEarn; +}); 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..a2a5a221b --- /dev/null +++ b/refer_friend_and_earn/views/apply_discounts_views.xml @@ -0,0 +1,26 @@ + + + + + apply.discounts.view.tree + apply.discounts + + + + + + + + + + + Apply Discounts + apply.discounts + tree + + + + diff --git a/refer_friend_and_earn/views/apply_points_templates.xml b/refer_friend_and_earn/views/apply_points_templates.xml new file mode 100644 index 000000000..947b4824f --- /dev/null +++ b/refer_friend_and_earn/views/apply_points_templates.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_templates.xml b/refer_friend_and_earn/views/refer_and_earn_templates.xml new file mode 100644 index 000000000..dd49e6477 --- /dev/null +++ b/refer_friend_and_earn/views/refer_and_earn_templates.xml @@ -0,0 +1,163 @@ + + + + + + + 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..6e3ae264c --- /dev/null +++ b/refer_friend_and_earn/views/res_config_settings_views.xml @@ -0,0 +1,20 @@ + + + + + + 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..febca44b6 --- /dev/null +++ b/refer_friend_and_earn/views/res_partner_views.xml @@ -0,0 +1,17 @@ + + + + + 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..c33dafc6b --- /dev/null +++ b/refer_friend_and_earn/views/sale_order_views.xml @@ -0,0 +1,17 @@ + + + + + sale.order.view.form.inherit.refer.friend.and.earn + + sale.order + + + + + + + + +