diff --git a/sales_commission_users/README.rst b/sales_commission_users/README.rst new file mode 100755 index 000000000..16f36dd52 --- /dev/null +++ b/sales_commission_users/README.rst @@ -0,0 +1,46 @@ +.. 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 + +Sales Commission +================== +To Create Sales Commission for Sales Person. + +Configuration +============= +- www.odoo.com/documentation/17.0/setup/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: (v17) Vishnu KP , 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/sales_commission_users/__init__.py b/sales_commission_users/__init__.py new file mode 100644 index 000000000..0d46e3816 --- /dev/null +++ b/sales_commission_users/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu K P(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 models +from . import report +from . import wizard diff --git a/sales_commission_users/__manifest__.py b/sales_commission_users/__manifest__.py new file mode 100644 index 000000000..8a0a4de9b --- /dev/null +++ b/sales_commission_users/__manifest__.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu K P(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': 'Sales Commission', + 'version': '17.0.1.0.0', + 'category': 'Sales', + 'summary': """To Create Sales Commission for Sales Person.""", + 'description': """Allows to create sales commission based on Product, + Partner, and Discount of Sale order to the sales person.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com/', + 'depends': ['sale_management', 'account'], + 'data': [ + 'security/ir.model.access.csv', + 'wizard/sales_commission_report_views.xml', + 'views/commission_lines_views.xml', + 'views/res_partner_views.xml', + 'views/sale_order_views.xml', + 'views/sales_commission_views.xml', + 'views/sales_commission_menus.xml', + 'report/sales_commission_action.xml', + 'report/sales_commission_templates.xml', + ], + 'images': [ + 'static/description/banner.jpg', + ], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/sales_commission_users/doc/RELEASE_NOTES.md b/sales_commission_users/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..cc0213e43 --- /dev/null +++ b/sales_commission_users/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 02.08.2025 +#### Version 17.0.1.0.0 +#### ADD +- Initial commit for Sales Commission diff --git a/sales_commission_users/models/__init__.py b/sales_commission_users/models/__init__.py new file mode 100644 index 000000000..cf05405f4 --- /dev/null +++ b/sales_commission_users/models/__init__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu KP () +# +# 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 commission_lines +from . import discount_based_sales_commission +from . import product_based_sales_commission +from . import res_partner +from . import sale_order +from . import sales_commision diff --git a/sales_commission_users/models/commission_lines.py b/sales_commission_users/models/commission_lines.py new file mode 100644 index 000000000..03b6a2b91 --- /dev/null +++ b/sales_commission_users/models/commission_lines.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu KP () +# +# 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 datetime import datetime +from odoo import fields, models, _ +from odoo.exceptions import UserError + + +class CommissionLines(models.Model): + """Creating a commission lines model.""" + _name = "commission.lines" + _description = "Commission Lines" + + date = fields.Date(string="Date", help="Date") + sale_order_id = fields.Many2one('sale.order', help="Sale order", + string='Sale Order') + description = fields.Char(string="Name", help="Description") + sales_person_id = fields.Many2one('res.users', + string='Sales Person', + help="Sales person") + order_ref = fields.Char(string='Order Reference', help="Order reference") + partner_id = fields.Many2one('res.partner', string='Partner', + help="Partner") + commission = fields.Char(string='Commission Name', + help="Name of the commission") + commission_type = fields.Selection( + string="Commission Type", + selection=[('standard', 'Standard'), + ('partner_based', 'Partner Based'), + ('product_based', 'Product Based'), + ('discount_based', 'Discount Based') + ], help="Commission type") + commission_amount = fields.Float(string="Commission Amount", + help="Commission Amount") + + def action_create_invoice(self): + """Creating invoice for sales commission""" + if len(self.sales_person_id.mapped('partner_id')) > 1: + raise UserError(_('Sales Person should be same.')) + else: + lines = [(0, 0, { + 'name': rec.description, + 'quantity': 1.0, + 'discount': 0.00, + 'price_unit': rec.commission_amount, + }) for rec in self] + invoice = self.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': self.sales_person_id.mapped('partner_id').id, + 'payment_reference': self.mapped('order_ref'), + 'invoice_date': (datetime.now()).date(), + 'invoice_line_ids': lines + }) + return { + 'type': 'ir.actions.act_window', + 'name': 'Invoices', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'account.move', + 'res_id': invoice.id, + 'domain': [ + ('payment_reference', '=', self.mapped('order_ref'))], + 'context': "{'create': False}" + } diff --git a/sales_commission_users/models/discount_based_sales_commission.py b/sales_commission_users/models/discount_based_sales_commission.py new file mode 100644 index 000000000..5f9a126a8 --- /dev/null +++ b/sales_commission_users/models/discount_based_sales_commission.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu KP () +# +# 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 DiscountBasedSalesCommission(models.Model): + """Creating a discount based sales commission model.""" + _name = "discount.based.sales.commission" + _description = " Discount Based Sales Commission" + + sale_commission_id = fields.Many2one("sales.commission", + string='Sales Commission', + help="Sales commission") + discount = fields.Float(string='Discount %', help="Discount %") + commission = fields.Float(string='Commission %', help="Commission %") diff --git a/sales_commission_users/models/product_based_sales_commission.py b/sales_commission_users/models/product_based_sales_commission.py new file mode 100644 index 000000000..2048c2649 --- /dev/null +++ b/sales_commission_users/models/product_based_sales_commission.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu KP () +# +# 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 ProductBasedSalesCommission(models.Model): + """Creating product based sales commission model.""" + _name = "product.based.sales.commission" + _description = " Product Based Sales Commission" + + sale_commission_id = fields.Many2one("sales.commission", + help="Sales commission", + string='Sale Commission') + product_id = fields.Many2one('product.product', string='Product', + help="Product") + commission = fields.Float(string='Commission %', help="Commission %") diff --git a/sales_commission_users/models/res_partner.py b/sales_commission_users/models/res_partner.py new file mode 100644 index 000000000..17ebd75f5 --- /dev/null +++ b/sales_commission_users/models/res_partner.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu KP () +# +# 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): + """Inherits res partner model.""" + _inherit = 'res.partner' + + affiliated = fields.Boolean( + string='Affiliated', + help='To differentiate partner is affiliated or not') diff --git a/sales_commission_users/models/sale_order.py b/sales_commission_users/models/sale_order.py new file mode 100644 index 000000000..f256cb5da --- /dev/null +++ b/sales_commission_users/models/sale_order.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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): + """Inherits Sale order model for adding sales commission.""" + _inherit = 'sale.order' + + commission_ids = fields.One2many('commission.lines', + 'sale_order_id', + string='Sales Commission', + help="Commission") + + def action_confirm(self): + """To add the commission lines in the sale order when its confirmed.""" + res = super(SaleOrder, self).action_confirm() + commission = self.env['sales.commission'].search( + [('sales_person_ids', 'in', self.user_id.id)]) + for com in commission: + commission_amount = 0.0 + description = '' + if com.commission_type == 'standard': + description = 'Sales Commission - Standard' + commission_amount = self.amount_total * com.std_commission_perc / 100 + if com.commission_type == 'partner_based': + if self.partner_id.affiliated: + description = 'Sales Commission - Partner based' + commission_amount = self.amount_total * com.affiliated_commission_perc / 100 + else: + description = 'Sales Commission - Partner based' + commission_amount = self.amount_total * com.non_affiliated_commission_perc / 100 + if com.commission_type == 'product_based': + for rec in com.product_based_ids: + order_line = self.order_line.filtered( + lambda product: product.product_id == rec.product_id) + if order_line: + description = 'Sales Commission - Product Based' + commission_amount += order_line.product_id.list_price * rec.commission / 100 + if com.commission_type == 'discount_based': + for rec in com.discount_based_ids: + order_line = self.order_line.filtered( + lambda product: product.discount >= rec.discount) + if order_line: + description = 'Sales Commission - Discount Based' + commission_amount += self.amount_total * rec.commission / 100 + if description and commission_amount: + self.commission_ids = [(0, 0, { + 'date': self.date_order, + 'description': description, + 'sales_person_id': self.user_id.id, + 'order_ref': self.name, + 'partner_id': self.partner_id.id, + 'commission': com.name, + 'commission_type': com.commission_type, + 'commission_amount': commission_amount, + })] + return res diff --git a/sales_commission_users/models/sales_commision.py b/sales_commission_users/models/sales_commision.py new file mode 100644 index 000000000..d1710374c --- /dev/null +++ b/sales_commission_users/models/sales_commision.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu KP () +# +# 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 SalesCommission(models.Model): + """Creating sales commission model.""" + _name = "sales.commission" + _description = "Sales Commission" + + name = fields.Char(string="Commission Name", help="Name of the commission", required=True) + sales_person_ids = fields.Many2many('res.users', string='Sales Person', + help="Sales person") + commission_type = fields.Selection( + string="Commission Type", + selection=[('standard', 'Standard'), + ('partner_based', 'Partner Based'), + ('product_based', 'Product Based'), + ('discount_based', 'Discount Based') + ], help="Type of commission") + std_commission_perc = fields.Float(string='Standard Commission Percentage', + help="Standard commission type") + affiliated_commission_perc = fields.Float( + string='Affiliated Partner Commission Percentage', + help="Affiliated partner commission percentage") + non_affiliated_commission_perc = fields.Float( + string='Non-Affiliated Partner Commission Percentage', + help="Non affiliated commission percentage") + product_based_ids = fields.One2many( + "product.based.sales.commission", 'sale_commission_id', + string='Sales commission Exceptions', + help="Product based sales commission") + date = fields.Date(string="Date", help="Date") + description = fields.Char(string="Description", help="Description") + commission_amount = fields.Float(string="Commission Amount", + help="Commission amount") + + discount_based_ids = fields.One2many( + "discount.based.sales.commission", 'sale_commission_id', + string='Commission Rules', help="Discount based") diff --git a/sales_commission_users/report/__init__.py b/sales_commission_users/report/__init__.py new file mode 100644 index 000000000..37656c1a1 --- /dev/null +++ b/sales_commission_users/report/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu K P(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 sales_commission_report diff --git a/sales_commission_users/report/sales_commission_action.xml b/sales_commission_users/report/sales_commission_action.xml new file mode 100644 index 000000000..07632fdb6 --- /dev/null +++ b/sales_commission_users/report/sales_commission_action.xml @@ -0,0 +1,12 @@ + + + + + Sales Commission Report + commission.lines + qweb-pdf + sales_commission_users.report_sales_commission + sales_commission_users.report_sales_commission + + + diff --git a/sales_commission_users/report/sales_commission_report.py b/sales_commission_users/report/sales_commission_report.py new file mode 100644 index 000000000..422de571a --- /dev/null +++ b/sales_commission_users/report/sales_commission_report.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu K P(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 api, models + + +class SalesCommissionReportAbstract(models.AbstractModel): + """To create report for sales commission""" + _name = 'report.sales_commission_users.report_sales_commission' + _description = 'Sales Commission Report' + + @api.model + def _get_report_values(self, docids, data=None): + """To get values of for the report for sales commission for a sales + person""" + sale_commission_id = self.env['commission.lines'].browse(docids) + if docids: + return { + 'doc_ids ': docids, + 'doc_model': 'commission.lines', + 'docs': sale_commission_id, + 'data': data + } + else: + domain = [] + if data.get('sales_person_id'): + domain.append( + ('sales_person_id', '=', data['sales_person_id'])) + if data.get('start_date'): + domain.append(('date', '>=', data['start_date'])) + if data.get('end_date'): + domain.append(('date', '<=', data['end_date'])) + docs = self.env['commission.lines'].search(domain) + return { + 'doc_ids ': docids, + 'doc_model': 'commission.lines', + 'docs': docs, + 'data': data + } diff --git a/sales_commission_users/report/sales_commission_templates.xml b/sales_commission_users/report/sales_commission_templates.xml new file mode 100644 index 000000000..86e8c3944 --- /dev/null +++ b/sales_commission_users/report/sales_commission_templates.xml @@ -0,0 +1,90 @@ + + + + + diff --git a/sales_commission_users/security/ir.model.access.csv b/sales_commission_users/security/ir.model.access.csv new file mode 100644 index 000000000..4fc05c63a --- /dev/null +++ b/sales_commission_users/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_sales_commission,access.sales.commission,model_sales_commission,base.group_user,1,1,1,1 +access_commission_lines,access.commission.lines,model_commission_lines,base.group_user,1,1,1,1 +access_product_based_sales_commission,access.product.based.sales.commission,model_product_based_sales_commission,base.group_user,1,1,1,1 +access_discount_based_sales_commission,access.discount.based.sales.commission,model_discount_based_sales_commission,base.group_user,1,1,1,1 +access_sales_commission_report,access.sales.commission.report,model_sales_commission_report,base.group_user,1,1,1,1 diff --git a/sales_commission_users/static/description/assets/icons/capture (1).png b/sales_commission_users/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/capture (1).png differ diff --git a/sales_commission_users/static/description/assets/icons/check.png b/sales_commission_users/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/check.png differ diff --git a/sales_commission_users/static/description/assets/icons/chevron.png b/sales_commission_users/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/chevron.png differ diff --git a/sales_commission_users/static/description/assets/icons/cogs.png b/sales_commission_users/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/cogs.png differ diff --git a/sales_commission_users/static/description/assets/icons/consultation.png b/sales_commission_users/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/consultation.png differ diff --git a/sales_commission_users/static/description/assets/icons/ecom-black.png b/sales_commission_users/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/ecom-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/education-black.png b/sales_commission_users/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/education-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/hotel-black.png b/sales_commission_users/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/hotel-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/img.png b/sales_commission_users/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/img.png differ diff --git a/sales_commission_users/static/description/assets/icons/license.png b/sales_commission_users/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/license.png differ diff --git a/sales_commission_users/static/description/assets/icons/lifebuoy.png b/sales_commission_users/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/lifebuoy.png differ diff --git a/sales_commission_users/static/description/assets/icons/manufacturing-black.png b/sales_commission_users/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/manufacturing-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/photo-capture.png b/sales_commission_users/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/photo-capture.png differ diff --git a/sales_commission_users/static/description/assets/icons/pos-black.png b/sales_commission_users/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/pos-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/puzzle.png b/sales_commission_users/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/puzzle.png differ diff --git a/sales_commission_users/static/description/assets/icons/restaurant-black.png b/sales_commission_users/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/restaurant-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/service-black.png b/sales_commission_users/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/service-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/trading-black.png b/sales_commission_users/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/trading-black.png differ diff --git a/sales_commission_users/static/description/assets/icons/training.png b/sales_commission_users/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/training.png differ diff --git a/sales_commission_users/static/description/assets/icons/update.png b/sales_commission_users/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/update.png differ diff --git a/sales_commission_users/static/description/assets/icons/user.png b/sales_commission_users/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/user.png differ diff --git a/sales_commission_users/static/description/assets/icons/wrench.png b/sales_commission_users/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/sales_commission_users/static/description/assets/icons/wrench.png differ diff --git a/sales_commission_users/static/description/assets/misc/Cybrosys R.png b/sales_commission_users/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/sales_commission_users/static/description/assets/misc/Cybrosys R.png differ diff --git a/sales_commission_users/static/description/assets/misc/email.svg b/sales_commission_users/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sales_commission_users/static/description/assets/misc/phone.svg b/sales_commission_users/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/sales_commission_users/static/description/assets/misc/star (1) 2.svg b/sales_commission_users/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sales_commission_users/static/description/assets/misc/support (1) 1.svg b/sales_commission_users/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sales_commission_users/static/description/assets/misc/support-email.svg b/sales_commission_users/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/sales_commission_users/static/description/assets/misc/tick-mark.svg b/sales_commission_users/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/sales_commission_users/static/description/assets/misc/whatsapp 1.svg b/sales_commission_users/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sales_commission_users/static/description/assets/misc/whatsapp.svg b/sales_commission_users/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/sales_commission_users/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sales_commission_users/static/description/assets/modules/m1.png b/sales_commission_users/static/description/assets/modules/m1.png new file mode 100644 index 000000000..acb4c76c6 Binary files /dev/null and b/sales_commission_users/static/description/assets/modules/m1.png differ diff --git a/sales_commission_users/static/description/assets/modules/m2.png b/sales_commission_users/static/description/assets/modules/m2.png new file mode 100644 index 000000000..3ef91f771 Binary files /dev/null and b/sales_commission_users/static/description/assets/modules/m2.png differ diff --git a/sales_commission_users/static/description/assets/modules/m3.png b/sales_commission_users/static/description/assets/modules/m3.png new file mode 100644 index 000000000..72febf6ae Binary files /dev/null and b/sales_commission_users/static/description/assets/modules/m3.png differ diff --git a/sales_commission_users/static/description/assets/modules/m4.png b/sales_commission_users/static/description/assets/modules/m4.png new file mode 100644 index 000000000..f7d7f9241 Binary files /dev/null and b/sales_commission_users/static/description/assets/modules/m4.png differ diff --git a/sales_commission_users/static/description/assets/modules/m5.png b/sales_commission_users/static/description/assets/modules/m5.png new file mode 100644 index 000000000..1d3324e88 Binary files /dev/null and b/sales_commission_users/static/description/assets/modules/m5.png differ diff --git a/sales_commission_users/static/description/assets/modules/m6.png b/sales_commission_users/static/description/assets/modules/m6.png new file mode 100644 index 000000000..80938c15a Binary files /dev/null and b/sales_commission_users/static/description/assets/modules/m6.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/hero.gif b/sales_commission_users/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..a733c1012 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/hero.gif differ diff --git a/sales_commission_users/static/description/assets/screenshots/img1.png b/sales_commission_users/static/description/assets/screenshots/img1.png new file mode 100644 index 000000000..ddea37ddf Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img1.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img10.png b/sales_commission_users/static/description/assets/screenshots/img10.png new file mode 100644 index 000000000..b81b9d697 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img10.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img11.png b/sales_commission_users/static/description/assets/screenshots/img11.png new file mode 100644 index 000000000..b4f25717b Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img11.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img12.png b/sales_commission_users/static/description/assets/screenshots/img12.png new file mode 100644 index 000000000..2cd2553d3 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img12.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img13.png b/sales_commission_users/static/description/assets/screenshots/img13.png new file mode 100644 index 000000000..61952dcda Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img13.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img14.png b/sales_commission_users/static/description/assets/screenshots/img14.png new file mode 100644 index 000000000..6513fb302 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img14.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img15.png b/sales_commission_users/static/description/assets/screenshots/img15.png new file mode 100644 index 000000000..177dae908 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img15.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img2.png b/sales_commission_users/static/description/assets/screenshots/img2.png new file mode 100644 index 000000000..50a21ec8b Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img2.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img3.png b/sales_commission_users/static/description/assets/screenshots/img3.png new file mode 100644 index 000000000..d22798c89 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img3.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img4.png b/sales_commission_users/static/description/assets/screenshots/img4.png new file mode 100644 index 000000000..473a3574d Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img4.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img5.png b/sales_commission_users/static/description/assets/screenshots/img5.png new file mode 100644 index 000000000..00e4ded2c Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img5.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img6.png b/sales_commission_users/static/description/assets/screenshots/img6.png new file mode 100644 index 000000000..0425b24bf Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img6.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img7.png b/sales_commission_users/static/description/assets/screenshots/img7.png new file mode 100644 index 000000000..490d86906 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img7.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img8.png b/sales_commission_users/static/description/assets/screenshots/img8.png new file mode 100644 index 000000000..de5044a01 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img8.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/img9.png b/sales_commission_users/static/description/assets/screenshots/img9.png new file mode 100644 index 000000000..e6379849d Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/img9.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s1.png b/sales_commission_users/static/description/assets/screenshots/s1.png new file mode 100644 index 000000000..260ffb914 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s1.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s2.png b/sales_commission_users/static/description/assets/screenshots/s2.png new file mode 100644 index 000000000..cb71f5f20 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s2.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s3.png b/sales_commission_users/static/description/assets/screenshots/s3.png new file mode 100644 index 000000000..a13953bc8 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s3.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s4.png b/sales_commission_users/static/description/assets/screenshots/s4.png new file mode 100644 index 000000000..23f758fff Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s4.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s5.png b/sales_commission_users/static/description/assets/screenshots/s5.png new file mode 100644 index 000000000..a18e12978 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s5.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s6.png b/sales_commission_users/static/description/assets/screenshots/s6.png new file mode 100644 index 000000000..9aeea2c08 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s6.png differ diff --git a/sales_commission_users/static/description/assets/screenshots/s7.png b/sales_commission_users/static/description/assets/screenshots/s7.png new file mode 100644 index 000000000..9871b7196 Binary files /dev/null and b/sales_commission_users/static/description/assets/screenshots/s7.png differ diff --git a/sales_commission_users/static/description/banner.jpg b/sales_commission_users/static/description/banner.jpg new file mode 100644 index 000000000..2f21145e2 Binary files /dev/null and b/sales_commission_users/static/description/banner.jpg differ diff --git a/sales_commission_users/static/description/icon.png b/sales_commission_users/static/description/icon.png new file mode 100644 index 000000000..b671e9a48 Binary files /dev/null and b/sales_commission_users/static/description/icon.png differ diff --git a/sales_commission_users/static/description/index.html b/sales_commission_users/static/description/index.html new file mode 100644 index 000000000..04cdfb363 --- /dev/null +++ b/sales_commission_users/static/description/index.html @@ -0,0 +1,872 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Sales Commission

+

+ A Module For Sales Commission on Sale Order. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Odoo 17 Community & Enterprise Edition + Support.

+

Sale commission + in Odoo 17 Community & Enterprise + Edition. +

+
+
+
+
+
+
+ +
+
+

+ Sales Commission based on Partner, Product and + Discount.

+

+

+
+
+
+
+
+
+ +
+
+

+ Commission Analysis and Report.

+

+

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

+ Sales Commission Menu +

+
+ Under Sales > Configuration > Sales Commission, you can create various types of + commission.
+
+
+
+
+
+
+ +
+
+

+ Commission Types

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

+ Standard Commission

+
+
+
+ Standard Commission is the simplest type of commission where you only need to + specify + the percentage to be given to the selected salesperson, based on the total sales + orders assigned to that sales user.
+
+
+
+
+
+
+ + +
+
+

+ Partner Based Commission

+
+
+
+ In Partner-Based Commission, you can define two separate commission percentages + based on the partner category—whether the partner is classified as "Affiliated" or + "Non-Affiliated".
+
+
+
+
+
+
+ +
+
+

+ Product Based Commission

+
+
+
+ You can select the calculation based on Product, where the sales commission will be + applied to the unit sale price of each product.
+
+
+
+
+
+
+ +
+
+

+ Discount Based Commission

+
+
+
+ You can set up commission rules based on specific discount percentages.
+
+
+
+
+
+
+ +
+
+

+ Confirm Sale Order

+ +
+ The salesperson's commission is calculated when the sales order is confirmed.
+
+
+
+
+
+
+ + +
+
+

+ Commission Lines Menu

+ +
+ Navigate to Sales > Configuration > Commission Lines to view the generated commission lines
+
+
+
+
+
+
+ + +
+
+

+ Generate Invoice

+ +
+ Users can generate an invoice directly from the commission line.
+
+
+
+
+
+
+ + + +
+
+

+ Sales Commission Report

+
+ Navigate to Sales > Reporting > Sales Commission Report to view an analysis of the commissions awarded to each sales user.
+
+
+
+
+
+
+
    +
  • + Commission on + Sales Order +
  • +
  • + Sales Commission + based on Partner, Product and + Discount. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:16th April 2024 +
+

+ Odoo 17 Sales Commission

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/sales_commission_users/views/commission_lines_views.xml b/sales_commission_users/views/commission_lines_views.xml new file mode 100644 index 000000000..d8e489dbf --- /dev/null +++ b/sales_commission_users/views/commission_lines_views.xml @@ -0,0 +1,44 @@ + + + + + Create Invoice + ir.actions.server + + + list + + code + + if records: + action = records.action_create_invoice() + + + + + commission.lines.view.tree + commission.lines + + + + + + + + + + + + + + + + Commission Lines + commission.lines + tree,form + + diff --git a/sales_commission_users/views/res_partner_views.xml b/sales_commission_users/views/res_partner_views.xml new file mode 100644 index 000000000..6e7f2be17 --- /dev/null +++ b/sales_commission_users/views/res_partner_views.xml @@ -0,0 +1,16 @@ + + + + + + res.partner.view.form.inherit.sales.commission.users + + res.partner + + + + + + + + diff --git a/sales_commission_users/views/sale_order_views.xml b/sales_commission_users/views/sale_order_views.xml new file mode 100644 index 000000000..9556764ee --- /dev/null +++ b/sales_commission_users/views/sale_order_views.xml @@ -0,0 +1,24 @@ + + + + + + sale.order.view.form.inherit.sales.commission.users + + sale.order + + + + + + + + + + + + + + + + diff --git a/sales_commission_users/views/sales_commission_menus.xml b/sales_commission_users/views/sales_commission_menus.xml new file mode 100644 index 000000000..0d3fe40e6 --- /dev/null +++ b/sales_commission_users/views/sales_commission_menus.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/sales_commission_users/views/sales_commission_views.xml b/sales_commission_users/views/sales_commission_views.xml new file mode 100644 index 000000000..889f78804 --- /dev/null +++ b/sales_commission_users/views/sales_commission_views.xml @@ -0,0 +1,75 @@ + + + + + sales.commission.view.form + sales.commission + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + sales.commission.view.tree + sales.commission + + + + + + + + + + + Sales Commission + sales.commission + tree,form + +
diff --git a/sales_commission_users/wizard/__init__.py b/sales_commission_users/wizard/__init__.py new file mode 100644 index 000000000..37656c1a1 --- /dev/null +++ b/sales_commission_users/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu K P(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 sales_commission_report diff --git a/sales_commission_users/wizard/sales_commission_report.py b/sales_commission_users/wizard/sales_commission_report.py new file mode 100644 index 000000000..633f234d7 --- /dev/null +++ b/sales_commission_users/wizard/sales_commission_report.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Vishnu K P(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 SalesCommissionReport(models.TransientModel): + """Creating sales commission report model.""" + _name = 'sales.commission.report' + _description = 'Sales Commission Report' + + sales_person_id = fields.Many2one('res.users', string='Sales Person', + help="Sales person") + start_date = fields.Date(string='Start Date', help="Start date") + end_date = fields.Date(string='End Date', help="End date") + + def action_print_report(self): + """To create a report for sale commission for a sales person""" + data = { + 'sales_person_id': self.sales_person_id.name, + 'start_date': self.start_date, + 'end_date': self.end_date, + } + return self.env.ref( + 'sales_commission_users.sales_commission_report_action' + ).report_action(self, data=data) diff --git a/sales_commission_users/wizard/sales_commission_report_views.xml b/sales_commission_users/wizard/sales_commission_report_views.xml new file mode 100644 index 000000000..7727c4b3b --- /dev/null +++ b/sales_commission_users/wizard/sales_commission_report_views.xml @@ -0,0 +1,33 @@ + + + + + sales.commission.report.view.form + sales.commission.report + +
+ + + + + +
+
+
+
+
+ + + Sales Commission Report + ir.actions.act_window + sales.commission.report + form + + new + +