commit 54ed0475087617af8de92ffe691f6883ea314794 Author: Ernad Husremovic Date: Fri Aug 29 15:49:21 2025 +0200 Initial commit: Cybrosys Odoo packages (10 packages) diff --git a/README.md b/README.md new file mode 100644 index 0000000..18464b6 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# Cybrosys Odoo Packages + +This repository contains **10** Odoo packages from Cybrosys vendor. + +## About Cybrosys + +Cybrosys is a recognized vendor in the Odoo ecosystem, providing specialized addons and customizations. + +## Packages Included (10 packages) + +- **odoo-bringout-cybrosys-hr_payroll_input_add** - Hr Payroll Input Add +- **odoo-bringout-cybrosys-ohrms_loan** - Ohrms Loan +- **odoo-bringout-cybrosys-order_line_sequences** - Order Line Sequences +- **odoo-bringout-cybrosys-product_brand_ecommerce** - Product Brand Ecommerce +- **odoo-bringout-cybrosys-product_brand_inventory** - Product Brand Inventory +- **odoo-bringout-cybrosys-product_brand_invoicing** - Product Brand Invoicing +- **odoo-bringout-cybrosys-product_brand_purchase** - Product Brand Purchase +- **odoo-bringout-cybrosys-product_brand_sale** - Product Brand Sale +- **odoo-bringout-cybrosys-stock_move_invoice** - Stock Move Invoice +- **odoo-bringout-cybrosys-warehouse_reports** - Warehouse Reports + + +## Installation + +Install any package from this collection: + +```bash +# Install from local directory +pip install packages/cybrosys/PACKAGE_NAME/ + +# Install in development mode +pip install -e packages/cybrosys/PACKAGE_NAME/ + +# Using uv (recommended for speed) +uv add packages/cybrosys/PACKAGE_NAME/ +``` + +## Repository Structure + +Each package in this repository follows the standard Odoo addon structure: + +``` +cybrosys/ +├── odoo-bringout-cybrosys-ADDON/ +│ ├── ADDON_NAME/ # Complete addon code +│ │ ├── __init__.py +│ │ ├── __manifest__.py +│ │ └── ... (models, views, etc.) +│ ├── pyproject.toml # Python package configuration +│ └── README.md # Package documentation +└── ... +``` + +## License + +Each package maintains its original license as specified by Cybrosys. + +## Support + +For support with these packages, please refer to the original Cybrosys documentation or community resources. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/README.md b/odoo-bringout-cybrosys-hr_payroll_input_add/README.md new file mode 100644 index 0000000..c9a2d5b --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/README.md @@ -0,0 +1,50 @@ +# Payroll input add STIMUL + + + Helps you to manage add salary requests. + + +## Installation + +```bash +pip install odoo-bringout-cybrosys-hr_payroll_input_add +``` + +## Dependencies + +This addon depends on: +- base +- hr +- payroll + +## Manifest Information + +- **Name**: Payroll input add STIMUL +- **Version**: 16.0.1.0.0 +- **Category**: Generic Modules/Human Resources +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Custom addon from bringout-cybrosys vendor, addon `hr_payroll_input_add`. + +## License + +This package maintains the original AGPL-3 license from the addon. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/ARCHITECTURE.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/ARCHITECTURE.md new file mode 100644 index 0000000..32610d6 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Hr_payroll_input_add Module - hr_payroll_input_add + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/CONFIGURATION.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/CONFIGURATION.md new file mode 100644 index 0000000..41be211 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for hr_payroll_input_add. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/CONTROLLERS.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/DEPENDENCIES.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/DEPENDENCIES.md new file mode 100644 index 0000000..61cb906 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- base +- [hr](../../odoo-bringout-oca-ocb-hr) +- [payroll](../../odoo-bringout-oca-payroll-payroll) diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/FAQ.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/FAQ.md new file mode 100644 index 0000000..3e3221e --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon hr_payroll_input_add or install in UI. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/INSTALL.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/INSTALL.md new file mode 100644 index 0000000..39c9a24 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-cybrosys-hr_payroll_input_add" +# or +uv pip install odoo-bringout-cybrosys-hr_payroll_input_add" +``` diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/MODELS.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/MODELS.md new file mode 100644 index 0000000..146d639 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/MODELS.md @@ -0,0 +1,15 @@ +# Models + +Detected core models and extensions in hr_payroll_input_add. + +```mermaid +classDiagram + class hr_payroll_input_add + class hr_employee + class hr_payslip + class hr_payslip_input +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/OVERVIEW.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/OVERVIEW.md new file mode 100644 index 0000000..b1ce4cf --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: hr_payroll_input_add. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon hr_payroll_input_add +- License: LGPL-3 diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/REPORTS.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/SECURITY.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/SECURITY.md new file mode 100644 index 0000000..c3d0c6d --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/SECURITY.md @@ -0,0 +1,41 @@ +# Security + +Access control and security definitions in hr_payroll_input_add. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../hr_payroll_input_add/security/ir.model.access.csv)** + - 4 model access rules + +## Record Rules + +Row-level security rules defined in: + +## Security Groups & Configuration + +Security groups and permissions defined in: +- **[security.xml](../hr_payroll_input_add/security/security.xml)** + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../hr_payroll_input_add/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) +- **[security.xml](../hr_payroll_input_add/security/security.xml)** + - Security groups, categories, and XML-based rules + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/TROUBLESHOOTING.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/USAGE.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/USAGE.md new file mode 100644 index 0000000..e3911ae --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon hr_payroll_input_add +``` diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/doc/WIZARDS.md b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/README.md b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/README.md new file mode 100644 index 0000000..7c47800 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/README.md @@ -0,0 +1,38 @@ +Payroll Input Add +================================ + +Addition to NETO salary (bosnian: STIMULACIJA) + + +Installation +============ +- + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Credits +======= + + +based on odoo_OpenHRMS/ohrms_loan by +* Cybrosys Techno Solutions + +Author +------ + +hernad@bring.out.ba + +based on odoo_OpenHRMS/ohrms_loan by +Developers: Anusha P P + +Maintainer +---------- + +This module is maintained by bring.out doo Sarajevo, Bosnia and Herzegovina \ No newline at end of file diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/__init__.py b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/__init__.py new file mode 100644 index 0000000..601ffa6 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import models + diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/__manifest__.py b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/__manifest__.py new file mode 100644 index 0000000..e6ff5ee --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +################################################################################### +# A part of OpenHRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2022-TODAY Cybrosys Technologies (). +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +{ + 'name': 'Payroll input add STIMUL', + 'version': '16.0.1.0.0', + 'summary': 'Manage Payroll ADD Requests', + 'description': """ + Helps you to manage add salary requests. + """, + 'category': 'Generic Modules/Human Resources', + 'author': "bring.out doo Sarajevo", + 'company': 'bring.out doo Sarajevo', + 'maintainer': 'bring.out doo Sarajevo', + 'depends': [ + 'base', 'hr', 'payroll', + ], + 'data': [ + 'security/ir.model.access.csv', + 'security/security.xml', + 'views/hr_payroll_input_add_seq.xml', + 'data/salary_rule_payroll_add.xml', + 'views/hr_payroll_input_add.xml', + 'views/hr_payroll.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/data/salary_rule_payroll_add.xml b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/data/salary_rule_payroll_add.xml new file mode 100644 index 0000000..013caae --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/data/salary_rule_payroll_add.xml @@ -0,0 +1,28 @@ + + + + + diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/__init__.py b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/__init__.py new file mode 100644 index 0000000..3123cf0 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from . import hr_payroll_input_add +from . import hr_payroll + diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/hr_payroll.py b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/hr_payroll.py new file mode 100644 index 0000000..77fff95 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/hr_payroll.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +import time +import babel +from odoo import models, fields, api, tools, _ +from datetime import datetime + + +class HrPayslipInput(models.Model): + _inherit = 'hr.payslip.input' + + payroll_add_id = fields.Many2one('hr.payroll.input.add', string="Payroll add", help="Payroll add") + + +class HrPayslip(models.Model): + _inherit = 'hr.payslip' + + #@api.onchange('employee_id', 'date_from', 'date_to') + #def onchange_employee(self): + # if (not self.employee_id) or (not self.date_from) or (not self.date_to): + # return + + # employee = self.employee_id + # date_from = self.date_from + # date_to = self.date_to + # contract_ids = [] + + # ttyme = datetime.fromtimestamp(time.mktime(time.strptime(str(date_from), "%Y-%m-%d"))) + # locale = self.env.context.get('lang') or 'en_US' + # self.name = _('Salary Slip of %s for %s') % ( + # employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale))) + # self.company_id = employee.company_id + # + # if not self.env.context.get('contract') or not self.contract_id: + # contract_ids = self.get_contract(employee, date_from, date_to) + # if not contract_ids: + # return + # self.contract_id = self.env['hr.contract'].browse(contract_ids[0]) + # + # if not self.contract_id.struct_id: + # return + # self.struct_id = self.contract_id.struct_id + # + # # computation of the salary input + # contracts = self.env['hr.contract'].browse(contract_ids) + # worked_days_line_ids = self.get_worked_day_lines(contracts, date_from, date_to) + # worked_days_lines = self.worked_days_line_ids.browse([]) + # for r in worked_days_line_ids: + # worked_days_lines += worked_days_lines.new(r) + # self.worked_days_line_ids = worked_days_lines + # if contracts: + # input_line_ids = self.get_inputs(contracts, date_from, date_to) + # input_lines = self.input_line_ids.browse([]) + # for r in input_line_ids: + # input_lines += input_lines.new(r) + # self.input_line_ids = input_lines + # return + + def get_inputs(self, contract_ids, date_from, date_to): + """This Compute the other inputs to employee payslip. + """ + res = super(HrPayslip, self).get_inputs(contract_ids, date_from, date_to) + contract_obj = self.env['hr.contract'] + + contract_for_add = None + for contract in contract_ids: + if not ('INO' in contract.struct_id.code): + contract_for_add = contract + break + + if not contract_for_add: + return res + + emp_id = contract_obj.browse(contract_for_add.id).employee_id + db_payroll_add = self.env['hr.payroll.input.add'].search([('employee_id', '=', emp_id.id), ('state', '=', 'approve')]) + for payroll_add in db_payroll_add: + + if date_from <= payroll_add.payment_date <= date_to: + for result in res: + if result.get('code') == 'ADD': + result['amount_qty'] = 1 + result['amount'] = payroll_add.add_amount + result['payroll_add_id'] = payroll_add.id + return res + + + def action_payslip_done(self): + # set input_line payslip_id for payroll add + for line in self.input_line_ids: + if line.payroll_add_id: + line.payroll_add_id.payslip_id = self.id + return super(HrPayslip, self).action_payslip_done() diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/hr_payroll_input_add.py b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/hr_payroll_input_add.py new file mode 100644 index 0000000..18172c1 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/models/hr_payroll_input_add.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api, _ +from datetime import datetime +from dateutil.relativedelta import relativedelta +from odoo.exceptions import ValidationError, UserError + + +class HrPayrollInputAdd(models.Model): + _name = 'hr.payroll.input.add' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = "Payroll Add Request" + + @api.model + def default_get(self, field_list): + result = super(HrPayrollInputAdd, self).default_get(field_list) + if result.get('user_id'): + ts_user_id = result['user_id'] + else: + ts_user_id = self.env.context.get('user_id', self.env.user.id) + result['employee_id'] = self.env['hr.employee'].search([('user_id', '=', ts_user_id)], limit=1).id + + return result + + @api.onchange('employee_id') + def onchange_employee(self): + if not self.employee_id: + return + + employee = self.employee_id + self.company_id = self.env['res.company'].search([('id', '=', employee.company_id.id)], limit=1) + + + + name = fields.Char(string="Payroll Add Name", readonly=True, help="Name of the payroll add") + date = fields.Date(string="Date", default=fields.Date.today(), readonly=True, help="Date") + employee_id = fields.Many2one('hr.employee', string="Employee", required=True, help="Employee") + department_id = fields.Many2one('hr.department', related="employee_id.department_id", readonly=True, + string="Department", help="Employee") + payment_date = fields.Date(string="Payment Start Date", required=True, default=fields.Date.today(), help="Date of " + "the " + "paymemt") + company_id = fields.Many2one('res.company', 'Company', readonly=True, help="Company", + default=lambda self: self.env.user.company_id, + states={'draft': [('readonly', False)]}) + currency_id = fields.Many2one('res.currency', string='Currency', required=True, help="Currency", + default=lambda self: self.env.user.company_id.currency_id) + job_position = fields.Many2one('hr.job', related="employee_id.job_id", readonly=True, string="Job Position", + help="Job position") + add_amount = fields.Float(string="Add amount", required=True, help="Payroll add amount") + + state = fields.Selection([ + ('draft', 'Draft'), + ('waiting_approval_1', 'Submitted'), + ('approve', 'Approved'), + ('refuse', 'Refused'), + ('cancel', 'Canceled'), + ], string="State", default='draft', track_visibility='onchange', copy=False, ) + + payslip_id = fields.Many2one('hr.payslip', string="Payslip Ref.", help="Payslip") + + @api.model + def create(self, values): + #add_count = self.env['hr.payroll.input.add'].search_count( + # [('employee_id', '=', values['employee_id']), ('state', '=', 'approve')]) + #if add_count: + # raise ValidationError(_("The employee has already a pending installment")) + #else: + values['name'] = self.env['ir.sequence'].get('hr.payroll.input.add.seq') or ' ' + #number = payslip.number or self.env["ir.sequence"].next_by_code( + # "salary.slip" + #) + res = super(HrPayrollInputAdd, self).create(values) + return res + + + def action_move_to_status_draft(self): + for input_add_id in self._context['active_ids']: + input_add = self.env['hr.payroll.input.add'].browse(input_add_id) + input_add.write({'state': 'draft'}) + + def action_refuse(self): + return self.write({'state': 'refuse'}) + + def action_submit(self): + self.write({'state': 'waiting_approval_1'}) + + def action_cancel(self): + self.write({'state': 'cancel'}) + + def action_approve(self): + for data in self: + #if not data.loan_lines: + # raise ValidationError(_("Please Compute installment")) + #else: + self.write({'state': 'approve'}) + + def unlink(self): + for add in self: + if add.state not in ('draft', 'cancel'): + raise UserError( + 'You cannot delete a pyroll add which is not in draft or cancelled state') + return super(HrPayrollInputAdd, self).unlink() + + + +class HrEmployee(models.Model): + _inherit = "hr.employee" + + def _compute_employee_payroll_adds(self): + """This compute total payroll adds count of an employee. + """ + self.payroll_add_count = self.env['hr.payroll.input.add'].search_count([('employee_id', '=', self.id)]) + + payroll_add_count = fields.Integer(string="Payroll adds", compute='_compute_employee_payroll_adds') diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/security/ir.model.access.csv b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/security/ir.model.access.csv new file mode 100644 index 0000000..bcd87b2 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_hr_payroll_input_add_user,hr.payroll.input.add.group_user,model_hr_payroll_input_add,base.group_user,1,1,1,0 +access_hr_jobuser,hr.job.group_user,hr.model_hr_job,base.group_user,1,1,1,0 +access_hr_payroll_input_add_officer,hr.payroll.input.add.group_hr_user,model_hr_payroll_input_add,hr.group_hr_user,1,1,1,1 +access_hr_payroll_input_add_manager,hr.payroll.input.add,model_hr_payroll_input_add,hr.group_hr_manager,1,1,1,1 diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/security/security.xml b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/security/security.xml new file mode 100644 index 0000000..72a6bb7 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/security/security.xml @@ -0,0 +1,34 @@ + + + + + Payroll input add Request Multi Company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Payroll input add Forms Modification Accounts and Hr + + + + + + + + + + + User: Modify own payroll input add only + + [('employee_id.user_id','=',user.id)] + + + + + + + + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll.xml b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll.xml new file mode 100644 index 0000000..b1d6095 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll.xml @@ -0,0 +1,13 @@ + + + + hr.payslip.payroll.input.add.form + hr.payslip + + + + + + + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll_input_add.xml b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll_input_add.xml new file mode 100644 index 0000000..b75de87 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll_input_add.xml @@ -0,0 +1,156 @@ + + + + + + hr.payroll.input.add.tree + hr.payroll.input.add + + + + + + + + + + + + + + hr.payroll.input.add.form + hr.payroll.input.add + +
+
+
+ + +
+
+
+

+ +

+
+ + + + + + + + + + +
+
+ + +
+
+
+
+ + + + hr.payroll.input.add.search.form + hr.payroll.input.add + + + + + + + + + + + + + + + + + + Request for Payroll Add + hr.payroll.input.add + tree,form + + + +

+ Click to create a new Payroll add request. +

+ Use this menu to create payroll add requests. +

+
+
+ + + + + + + + Payroll adds + ir.actions.act_window + hr.payroll.input.add + + tree,form + + + + + + + + hr.employee.payroll.input.add.form.inherit + hr.employee + + + + + + + + + + + Prebaci u pripremu + + + list,form + code + + action = model.action_move_to_status_draft() + + +
diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll_input_add_seq.xml b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll_input_add_seq.xml new file mode 100644 index 0000000..9cdadf9 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/hr_payroll_input_add/views/hr_payroll_input_add_seq.xml @@ -0,0 +1,12 @@ + + + + Payroll add Request + hr.payroll.input.add.seq + ADD/ + 4 + 1 + 1 + standard + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-hr_payroll_input_add/pyproject.toml b/odoo-bringout-cybrosys-hr_payroll_input_add/pyproject.toml new file mode 100644 index 0000000..8663ea2 --- /dev/null +++ b/odoo-bringout-cybrosys-hr_payroll_input_add/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-cybrosys-hr_payroll_input_add" +version = "16.0.0" +description = "Payroll input add STIMUL - Manage Payroll ADD Requests" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-base>=16.0.0", + "odoo-bringout-oca-ocb-hr>=16.0.0", + "odoo-bringout-cybrosys-payroll>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["hr_payroll_input_add"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-cybrosys-ohrms_loan/README.md b/odoo-bringout-cybrosys-ohrms_loan/README.md new file mode 100644 index 0000000..70a1e1f --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/README.md @@ -0,0 +1,50 @@ +# Open HRMS Loan Management + + + Helps you to manage Loan Requests of your company's staff. + + +## Installation + +```bash +pip install odoo-bringout-cybrosys-ohrms_loan +``` + +## Dependencies + +This addon depends on: +- base +- hr +- payroll + +## Manifest Information + +- **Name**: Open HRMS Loan Management +- **Version**: 16.0.1.0.0 +- **Category**: Generic Modules/Human Resources +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Custom addon from bringout-cybrosys vendor, addon `ohrms_loan`. + +## License + +This package maintains the original AGPL-3 license from the addon. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/ARCHITECTURE.md b/odoo-bringout-cybrosys-ohrms_loan/doc/ARCHITECTURE.md new file mode 100644 index 0000000..0c6bd4c --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Ohrms_loan Module - ohrms_loan + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/CONFIGURATION.md b/odoo-bringout-cybrosys-ohrms_loan/doc/CONFIGURATION.md new file mode 100644 index 0000000..2e2ae2c --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for ohrms_loan. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/CONTROLLERS.md b/odoo-bringout-cybrosys-ohrms_loan/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/DEPENDENCIES.md b/odoo-bringout-cybrosys-ohrms_loan/doc/DEPENDENCIES.md new file mode 100644 index 0000000..61cb906 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- base +- [hr](../../odoo-bringout-oca-ocb-hr) +- [payroll](../../odoo-bringout-oca-payroll-payroll) diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/FAQ.md b/odoo-bringout-cybrosys-ohrms_loan/doc/FAQ.md new file mode 100644 index 0000000..75193d3 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon ohrms_loan or install in UI. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/INSTALL.md b/odoo-bringout-cybrosys-ohrms_loan/doc/INSTALL.md new file mode 100644 index 0000000..3cbac52 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-cybrosys-ohrms_loan" +# or +uv pip install odoo-bringout-cybrosys-ohrms_loan" +``` diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/MODELS.md b/odoo-bringout-cybrosys-ohrms_loan/doc/MODELS.md new file mode 100644 index 0000000..6bd0859 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/MODELS.md @@ -0,0 +1,16 @@ +# Models + +Detected core models and extensions in ohrms_loan. + +```mermaid +classDiagram + class hr_loan + class hr_loan_line + class hr_employee + class hr_payslip + class hr_payslip_input +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/OVERVIEW.md b/odoo-bringout-cybrosys-ohrms_loan/doc/OVERVIEW.md new file mode 100644 index 0000000..7d2e1b6 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: ohrms_loan. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon ohrms_loan +- License: LGPL-3 diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/REPORTS.md b/odoo-bringout-cybrosys-ohrms_loan/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/SECURITY.md b/odoo-bringout-cybrosys-ohrms_loan/doc/SECURITY.md new file mode 100644 index 0000000..e0d2cbb --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/SECURITY.md @@ -0,0 +1,41 @@ +# Security + +Access control and security definitions in ohrms_loan. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../ohrms_loan/security/ir.model.access.csv)** + - 7 model access rules + +## Record Rules + +Row-level security rules defined in: + +## Security Groups & Configuration + +Security groups and permissions defined in: +- **[security.xml](../ohrms_loan/security/security.xml)** + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../ohrms_loan/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) +- **[security.xml](../ohrms_loan/security/security.xml)** + - Security groups, categories, and XML-based rules + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/TROUBLESHOOTING.md b/odoo-bringout-cybrosys-ohrms_loan/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/USAGE.md b/odoo-bringout-cybrosys-ohrms_loan/doc/USAGE.md new file mode 100644 index 0000000..db3b16c --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon ohrms_loan +``` diff --git a/odoo-bringout-cybrosys-ohrms_loan/doc/WIZARDS.md b/odoo-bringout-cybrosys-ohrms_loan/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/README.md b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/README.md new file mode 100644 index 0000000..47ce9f1 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/README.md @@ -0,0 +1,35 @@ +Open HRMS Loan Management +========================= + +Manage Loan Requests. + + +Installation +============ +- www.odoo.com/documentation/15.0/setup/install.html +- Install our custom addon + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Credits +======= +* Cybrosys Techno Solutions + +Author +------ + +Developers: Anusha P P + +Maintainer +---------- + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/__init__.py b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/__init__.py new file mode 100644 index 0000000..601ffa6 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import models + diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/__manifest__.py b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/__manifest__.py new file mode 100644 index 0000000..0299710 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/__manifest__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +################################################################################### +# A part of OpenHRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2022-TODAY Cybrosys Technologies (). +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +{ + 'name': 'Open HRMS Loan Management', + 'version': '16.0.1.0.0', + 'summary': 'Manage Loan Requests', + 'description': """ + Helps you to manage Loan Requests of your company's staff. + """, + 'category': 'Generic Modules/Human Resources', + 'author': "Cybrosys Techno Solutions,Open HRMS", + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'live_test_url': 'https://youtu.be/lAT5cqVZTZI', + 'website': "https://www.openhrms.com", + 'depends': [ + 'base', 'hr', 'payroll' + ], + 'data': [ + 'security/ir.model.access.csv', + 'security/security.xml', + 'views/hr_loan_seq.xml', + 'data/salary_rule_loan.xml', + 'views/hr_loan.xml', + 'views/hr_payroll.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/data/salary_rule_loan.xml b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/data/salary_rule_loan.xml new file mode 100644 index 0000000..304ce8a --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/data/salary_rule_loan.xml @@ -0,0 +1,28 @@ + + + + + diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/doc/RELEASE_NOTES.md b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/doc/RELEASE_NOTES.md new file mode 100644 index 0000000..6fa80c7 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/doc/RELEASE_NOTES.md @@ -0,0 +1,11 @@ +## Module + +#### 18.10.2021 +#### Version 15.0.1.0.0 +##### ADD +- Initial commit for Open HRMS Project + +#### 26.07.2022 +#### Version 15.0.1.1.0 +##### UPDATE +- Change the PO file \ No newline at end of file diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/__init__.py b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/__init__.py new file mode 100644 index 0000000..c4e2501 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from . import hr_loan +from . import hr_payroll + diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/hr_loan.py b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/hr_loan.py new file mode 100644 index 0000000..b64e440 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/hr_loan.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- + +from odoo import models, fields, api, _ +from datetime import datetime +from dateutil.relativedelta import relativedelta +from odoo.exceptions import ValidationError, UserError + + +class HrLoan(models.Model): + _name = 'hr.loan' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = "Loan Request" + + @api.model + def default_get(self, field_list): + result = super(HrLoan, self).default_get(field_list) + if result.get('user_id'): + ts_user_id = result['user_id'] + else: + ts_user_id = self.env.context.get('user_id', self.env.user.id) + result['employee_id'] = self.env['hr.employee'].search([('user_id', '=', ts_user_id)], limit=1).id + + return result + + @api.onchange('employee_id') + def onchange_employee(self): + if not self.employee_id: + return + + employee = self.employee_id + self.company_id = self.env['res.company'].search([('id', '=', employee.company_id.id)], limit=1) + + def _compute_loan_amount(self): + total_paid = 0.0 + self.name = self.name or self.env['ir.sequence'].next_by_code('hr.loan.seq') + + for loan in self: + for line in loan.loan_lines: + if line.paid: + total_paid += line.amount + balance_amount = loan.loan_amount - total_paid + loan.total_amount = loan.loan_amount + loan.balance_amount = balance_amount + loan.total_paid_amount = total_paid + + name = fields.Char(string="Loan Name", readonly=True, help="Name of the loan") + date = fields.Date(string="Date", default=fields.Date.today(), readonly=True, help="Date") + employee_id = fields.Many2one('hr.employee', string="Employee", required=True, help="Employee") + department_id = fields.Many2one('hr.department', related="employee_id.department_id", readonly=True, + string="Department", help="Employee") + installment = fields.Integer(string="No Of Installments", default=1, help="Number of installments") + payment_date = fields.Date(string="Payment Start Date", required=True, default=fields.Date.today(), help="Date of " + "the " + "paymemt") + loan_lines = fields.One2many('hr.loan.line', 'loan_id', string="Loan Line", index=True) + company_id = fields.Many2one('res.company', 'Company', readonly=True, help="Company", + default=lambda self: self.env.user.company_id, + states={'draft': [('readonly', False)]}) + currency_id = fields.Many2one('res.currency', string='Currency', required=True, help="Currency", + default=lambda self: self.env.user.company_id.currency_id) + job_position = fields.Many2one('hr.job', related="employee_id.job_id", readonly=True, string="Job Position", + help="Job position") + loan_amount = fields.Float(string="Loan Amount", required=True, help="Loan amount") + total_amount = fields.Float(string="Total Amount", store=True, readonly=True, compute='_compute_loan_amount', + help="Total loan amount") + balance_amount = fields.Float(string="Balance Amount", store=True, compute='_compute_loan_amount', help="Balance amount") + total_paid_amount = fields.Float(string="Total Paid Amount", store=True, compute='_compute_loan_amount', + help="Total paid amount") + + state = fields.Selection([ + ('draft', 'Draft'), + ('waiting_approval_1', 'Submitted'), + ('approve', 'Approved'), + ('refuse', 'Refused'), + ('cancel', 'Canceled'), + ], string="State", default='draft', track_visibility='onchange', copy=False, ) + + @api.model + def create(self, values): + loan_count = self.env['hr.loan'].search_count( + [('employee_id', '=', values['employee_id']), ('state', '=', 'approve'), + ('balance_amount', '!=', 0)]) + if loan_count: + raise ValidationError(_("The employee has already a pending installment")) + else: + #values['name'] = self.env['ir.sequence'].get('hr.loan.seq') or ' ' + #number = payslip.number or self.env["ir.sequence"].next_by_code( + # "salary.slip" + #) + values['name'] = False + res = super(HrLoan, self).create(values) + return res + + def compute_installment(self): + """This automatically create the installment the employee need to pay to + company based on payment start date and the no of installments. + """ + for loan in self: + loan.loan_lines.unlink() + date_start = datetime.strptime(str(loan.payment_date), '%Y-%m-%d') + amount = loan.loan_amount / loan.installment + for i in range(1, loan.installment + 1): + self.env['hr.loan.line'].create({ + 'date': date_start, + 'amount': amount, + 'employee_id': loan.employee_id.id, + 'loan_id': loan.id}) + date_start = date_start + relativedelta(months=1) + loan._compute_loan_amount() + return True + + def action_refuse(self): + return self.write({'state': 'refuse'}) + + def action_submit(self): + self.write({'state': 'waiting_approval_1'}) + + def action_cancel(self): + self.write({'state': 'cancel'}) + + def action_approve(self): + for data in self: + if not data.loan_lines: + raise ValidationError(_("Please Compute installment")) + else: + self.write({'state': 'approve'}) + + def unlink(self): + for loan in self: + if loan.state not in ('draft', 'cancel'): + raise UserError( + 'You cannot delete a loan which is not in draft or cancelled state') + return super(HrLoan, self).unlink() + + +class InstallmentLine(models.Model): + _name = "hr.loan.line" + _description = "Installment Line" + + date = fields.Date(string="Payment Date", required=True, help="Date of the payment") + employee_id = fields.Many2one('hr.employee', string="Employee", help="Employee") + amount = fields.Float(string="Amount", required=True, help="Amount") + paid = fields.Boolean(string="Paid", help="Paid") + loan_id = fields.Many2one('hr.loan', string="Loan Ref.", help="Loan") + payslip_id = fields.Many2one('hr.payslip', string="Payslip Ref.", help="Payslip") + + +class HrEmployee(models.Model): + _inherit = "hr.employee" + + def _compute_employee_loans(self): + """This compute the loan amount and total loans count of an employee. + """ + self.loan_count = self.env['hr.loan'].search_count([('employee_id', '=', self.id)]) + + loan_count = fields.Integer(string="Loan Count", compute='_compute_employee_loans') diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/hr_payroll.py b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/hr_payroll.py new file mode 100644 index 0000000..89ca501 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/models/hr_payroll.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +import time +import babel +from odoo import models, fields, api, tools, _ +from datetime import datetime + + +class HrPayslipInput(models.Model): + _inherit = 'hr.payslip.input' + + loan_line_id = fields.Many2one('hr.loan.line', string="Loan Installment", help="Loan installment") + + +class HrPayslip(models.Model): + _inherit = 'hr.payslip' + + #@api.onchange('employee_id', 'date_from', 'date_to') + #def onchange_employee(self): + # if (not self.employee_id) or (not self.date_from) or (not self.date_to): + # return + + # employee = self.employee_id + # date_from = self.date_from + # date_to = self.date_to + # contract_ids = [] + + # ttyme = datetime.fromtimestamp(time.mktime(time.strptime(str(date_from), "%Y-%m-%d"))) + # locale = self.env.context.get('lang') or 'en_US' + # self.name = _('Salary Slip of %s for %s') % ( + # employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale))) + # self.company_id = employee.company_id + # + # if not self.env.context.get('contract') or not self.contract_id: + # contract_ids = self.get_contract(employee, date_from, date_to) + # if not contract_ids: + # return + # self.contract_id = self.env['hr.contract'].browse(contract_ids[0]) + # + # if not self.contract_id.struct_id: + # return + # self.struct_id = self.contract_id.struct_id + # + # # computation of the salary input + # contracts = self.env['hr.contract'].browse(contract_ids) + # worked_days_line_ids = self.get_worked_day_lines(contracts, date_from, date_to) + # worked_days_lines = self.worked_days_line_ids.browse([]) + # for r in worked_days_line_ids: + # worked_days_lines += worked_days_lines.new(r) + # self.worked_days_line_ids = worked_days_lines + # if contracts: + # input_line_ids = self.get_inputs(contracts, date_from, date_to) + # input_lines = self.input_line_ids.browse([]) + # for r in input_line_ids: + # input_lines += input_lines.new(r) + # self.input_line_ids = input_lines + # return + + def get_inputs(self, contract_ids, date_from, date_to): + """This Compute the other inputs to employee payslip. + """ + res = super(HrPayslip, self).get_inputs(contract_ids, date_from, date_to) + contract_obj = self.env['hr.contract'] + + contract_for_loan = None + for contract in contract_ids: + if not ('INO' in contract.struct_id.code): + contract_for_loan = contract + break + + if not contract_for_loan: + return res + + emp_id = contract_obj.browse(contract_for_loan.id).employee_id + lon_obj = self.env['hr.loan'].search([('employee_id', '=', emp_id.id), ('state', '=', 'approve')]) + for loan in lon_obj: + for loan_line in loan.loan_lines: + # pick unpaid lines + if date_from <= loan_line.date <= date_to and not loan_line.paid: + for result in res: + if result.get('code') == 'LOAN': + result['amount_qty'] = 1 + result['amount'] = loan_line.amount + result['loan_line_id'] = loan_line.id + return res + + + def action_payslip_done(self): + # + calculate loan amount + for line in self.input_line_ids: + if line.loan_line_id: + line.loan_line_id.paid = True + line.loan_line_id.payslip_id = self.id + line.loan_line_id.loan_id._compute_loan_amount() + return super(HrPayslip, self).action_payslip_done() diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/security/ir.model.access.csv b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/security/ir.model.access.csv new file mode 100644 index 0000000..7d95234 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/security/ir.model.access.csv @@ -0,0 +1,8 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_hr_loan_user,hr.loan.group_user,model_hr_loan,base.group_user,1,1,1,0 +access_hr_jobuser,hr.job.group_user,hr.model_hr_job,base.group_user,1,1,1,0 +access_hr_loan_line_user,hr.loan.line.group_user,model_hr_loan_line,base.group_user,1,1,0,0 +access_hr_loan_officer,hr.loan.group_hr_user,model_hr_loan,hr.group_hr_user,1,1,1,1 +access_hr_loan_line_officer,hr.loan.line.group_hr_user,model_hr_loan_line,hr.group_hr_user,1,1,1,1 +access_hr_loan_manager,hr.loan,model_hr_loan,hr.group_hr_manager,1,1,1,1 +access_hr_loan_line_manager,hr.loan.line,model_hr_loan_line,hr.group_hr_manager,1,1,1,1 diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/security/security.xml b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/security/security.xml new file mode 100644 index 0000000..bd96d90 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/security/security.xml @@ -0,0 +1,34 @@ + + + + + Loan Request Multi Company + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Loan Forms Modification Accounts and Hr + + + + + + + + + + + User: Modify own loan only + + [('employee_id.user_id','=',user.id)] + + + + + + + + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/check.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/check.png new file mode 100644 index 0000000..c8e85f5 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/check.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/chevron.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/chevron.png new file mode 100644 index 0000000..2089293 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/chevron.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/cogs.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/cogs.png new file mode 100644 index 0000000..95d0bad Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/cogs.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/consultation.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/consultation.png new file mode 100644 index 0000000..8319d4b Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/consultation.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/ecom-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000..a9385ff Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/ecom-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/education-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/education-black.png new file mode 100644 index 0000000..3eb09b2 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/education-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/hotel-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/hotel-black.png new file mode 100644 index 0000000..130f613 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/hotel-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/license.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/license.png new file mode 100644 index 0000000..a586979 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/license.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/lifebuoy.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000..658d56c Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/lifebuoy.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/manufacturing-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 0000000..697eb0e Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/manufacturing-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/pos-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/pos-black.png new file mode 100644 index 0000000..97c0f90 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/pos-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/puzzle.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000..65cf854 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/puzzle.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/restaurant-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000..4a35eb9 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/restaurant-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/service-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/service-black.png new file mode 100644 index 0000000..301ab51 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/service-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/trading-black.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/trading-black.png new file mode 100644 index 0000000..9398ba2 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/trading-black.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/training.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/training.png new file mode 100644 index 0000000..884ca02 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/training.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/update.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/update.png new file mode 100644 index 0000000..ecbc5a0 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/update.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/user.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/user.png new file mode 100644 index 0000000..6ffb23d Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/user.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/wrench.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/wrench.png new file mode 100644 index 0000000..6c04dea Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/icons/wrench.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/categories.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/categories.png new file mode 100644 index 0000000..c517ff9 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/categories.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/check-box.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/check-box.png new file mode 100644 index 0000000..fe805ca Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/check-box.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/compass.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/compass.png new file mode 100644 index 0000000..534624c Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/compass.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/corporate.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/corporate.png new file mode 100644 index 0000000..96ad8b0 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/corporate.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/customer-support.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/customer-support.png new file mode 100644 index 0000000..90ecf20 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/customer-support.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/features.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/features.png new file mode 100644 index 0000000..913021d Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/features.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/logo.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/logo.png new file mode 100644 index 0000000..478462d Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/logo.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/open-hrms-logo.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/open-hrms-logo.png new file mode 100644 index 0000000..bf9bdda Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/open-hrms-logo.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/pictures.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/pictures.png new file mode 100644 index 0000000..9cc144a Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/pictures.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/pie-chart.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/pie-chart.png new file mode 100644 index 0000000..9cd0dda Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/pie-chart.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/right-arrow.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/right-arrow.png new file mode 100644 index 0000000..fdf04b1 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/right-arrow.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/star.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/star.png new file mode 100644 index 0000000..55c44ff Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/star.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/support.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/support.png new file mode 100644 index 0000000..4f18b8b Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/support.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/whatsapp.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/whatsapp.png new file mode 100644 index 0000000..d513a53 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/misc/whatsapp.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/advance_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/advance_image.png new file mode 100644 index 0000000..3d05cac Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/advance_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/appraisal_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/appraisal_image.png new file mode 100644 index 0000000..cecf986 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/appraisal_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/core_image.gif b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/core_image.gif new file mode 100644 index 0000000..4619d40 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/core_image.gif differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/info_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/info_image.png new file mode 100644 index 0000000..8bb7c80 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/info_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/multi_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/multi_image.png new file mode 100644 index 0000000..0e2e34c Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/multi_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/overtime_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/overtime_image.png new file mode 100644 index 0000000..9a7adb1 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/overtime_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/salary_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/salary_image.png new file mode 100644 index 0000000..3d05cac Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/modules/salary_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/hero.gif b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/hero.gif new file mode 100644 index 0000000..6aadd09 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/hero.gif differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-1.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-1.png new file mode 100644 index 0000000..94627c3 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-1.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-2.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-2.png new file mode 100644 index 0000000..119debd Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-2.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-3.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-3.png new file mode 100644 index 0000000..bd21550 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-3.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-4.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-4.png new file mode 100644 index 0000000..837716a Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-4.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-5.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-5.png new file mode 100644 index 0000000..af30da6 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-5.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-6.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-6.png new file mode 100644 index 0000000..c74004e Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/assets/screenshots/screenshot-6.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/banner.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/banner.png new file mode 100644 index 0000000..7c0ec16 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/banner.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/cybro_logo.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/cybro_logo.png new file mode 100755 index 0000000..bb30911 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/cybro_logo.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/icon.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/icon.png new file mode 100644 index 0000000..e78e747 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/icon.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/1loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/1loan.png new file mode 100644 index 0000000..ca125fb Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/1loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/2loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/2loan.png new file mode 100644 index 0000000..de2c02a Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/2loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/3loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/3loan.png new file mode 100644 index 0000000..87e3af8 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/3loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/4loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/4loan.png new file mode 100644 index 0000000..2c0267d Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/4loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/5loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/5loan.png new file mode 100644 index 0000000..64ee6d2 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/5loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/6loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/6loan.png new file mode 100644 index 0000000..ce54261 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/6loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/announce_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/announce_image.png new file mode 100644 index 0000000..dc88ceb Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/announce_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/checked.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/checked.png new file mode 100644 index 0000000..c8e371f Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/checked.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/core_image.gif b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/core_image.gif new file mode 100644 index 0000000..e303923 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/core_image.gif differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/dash_image.gif b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/dash_image.gif new file mode 100644 index 0000000..f5cac4e Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/dash_image.gif differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/dashboard_image.gif b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/dashboard_image.gif new file mode 100644 index 0000000..b492c67 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/dashboard_image.gif differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/disciplinary_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/disciplinary_image.png new file mode 100644 index 0000000..3619b53 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/disciplinary_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/documents_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/documents_image.png new file mode 100644 index 0000000..0a51347 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/documents_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/hero.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/hero.png new file mode 100644 index 0000000..d66ee54 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/hero.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/loan.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/loan.png new file mode 100644 index 0000000..7654ca1 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/loan.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/openhrms.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/openhrms.png new file mode 100644 index 0000000..a462223 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/openhrms.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/salary_image.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/salary_image.png new file mode 100644 index 0000000..04ebbeb Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/images/salary_image.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/index.html b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/index.html new file mode 100644 index 0000000..0d8957f --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/index.html @@ -0,0 +1,565 @@ + + +
+ +
+ + +
+ + + +

OpenHRMS Loan Management

+

Manage Loan Request of Employees

+ + + +
+ + +
+
+ +
+

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ Open HRMS Loan is a component of Open HRMS suit. Open HRMS Loan module helps the user to + configure different loan policies, assign approval authority, conduct the verification + process and sanction loan for employees. +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ +
+ Employee can create loan request +
+
+
+ +
+ Double layer approval, from Accounting & HR Department. +
+
+
+ +
+ Loan amount is deducted from the salary. +
+
+
+ +
+ Current month installment is automatically listed in payslip. +
+
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ +
+

Enabling option

+

Enable the option "Loan Approval From Accounting Department" In accounting settings

+ +
+ +
+

Adding deduction rule

+

Add the deduction rule for loan in Salary Structure.

+ +
+ +
+

Creating request

+

Employee can create loan request

+ +
+
+

Making decisions

+

Once the HR department has given the Approval, the accounts department take the + decision.

+ +
+
+

Listing pending + installments

+

When we create the payslip, all the pending installments of the month will be listed + there.

+ +
+
+

Checking loan + requests changes deducted installments to paid

+

When we check the Loan request again, the deducted installments will be changed to paid.

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

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

+
+
+
+
+
+
+
+ +
+
+
+ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/loan_web.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/loan_web.png new file mode 100644 index 0000000..00a133a Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/loan_web.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/oh_icon.png b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/oh_icon.png new file mode 100644 index 0000000..37ae628 Binary files /dev/null and b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/static/description/oh_icon.png differ diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_loan.xml b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_loan.xml new file mode 100644 index 0000000..80f8ca9 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_loan.xml @@ -0,0 +1,159 @@ + + + + + + hr.loan.tree + hr.loan + + + + + + + + + + + + + + hr.loan.form + hr.loan + +
+
+
+ + +
+
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +
+ + + + + + + hr.loan.search.form + hr.loan + + + + + + + + + + + + + + + + + + Request for Loan + hr.loan + tree,form + + + +

+ Click to create a new Loan request. +

+ Use this menu to create loan requests. +

+
+
+ + + + + + + + Loans + ir.actions.act_window + hr.loan + + tree,form + + + + + + + + hr.employee.loan.form.inherit + hr.employee + + + + + + + + diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_loan_seq.xml b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_loan_seq.xml new file mode 100644 index 0000000..c9af955 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_loan_seq.xml @@ -0,0 +1,12 @@ + + + + Loan Request + hr.loan.seq + LOAN/ + 4 + 1 + 1 + standard + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_payroll.xml b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_payroll.xml new file mode 100644 index 0000000..c767e91 --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/ohrms_loan/views/hr_payroll.xml @@ -0,0 +1,13 @@ + + + + hr.payslip.form.loan + hr.payslip + + + + + + + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-ohrms_loan/pyproject.toml b/odoo-bringout-cybrosys-ohrms_loan/pyproject.toml new file mode 100644 index 0000000..4a9bbac --- /dev/null +++ b/odoo-bringout-cybrosys-ohrms_loan/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-cybrosys-ohrms_loan" +version = "16.0.0" +description = "Open HRMS Loan Management - Manage Loan Requests" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-base>=16.0.0", + "odoo-bringout-oca-ocb-hr>=16.0.0", + "odoo-bringout-cybrosys-payroll>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["ohrms_loan"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-cybrosys-order_line_sequences/README.md b/odoo-bringout-cybrosys-order_line_sequences/README.md new file mode 100644 index 0000000..6b96e0e --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/README.md @@ -0,0 +1,51 @@ +# Order Line Sequences/Line Numbers + +This module will help you to add sequence for order lines + in sales, purchase and delivery. It will also add line + numbers in report lines. + +## Installation + +```bash +pip install odoo-bringout-cybrosys-order_line_sequences +``` + +## Dependencies + +This addon depends on: +- base +- sale_management +- purchase +- stock + +## Manifest Information + +- **Name**: Order Line Sequences/Line Numbers +- **Version**: 16.0.1.0.0 +- **Category**: Extra Tools +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Custom addon from bringout-cybrosys vendor, addon `order_line_sequences`. + +## License + +This package maintains the original AGPL-3 license from the addon. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/ARCHITECTURE.md b/odoo-bringout-cybrosys-order_line_sequences/doc/ARCHITECTURE.md new file mode 100644 index 0000000..b97d513 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Order_line_sequences Module - order_line_sequences + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/CONFIGURATION.md b/odoo-bringout-cybrosys-order_line_sequences/doc/CONFIGURATION.md new file mode 100644 index 0000000..6c8442a --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for order_line_sequences. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/CONTROLLERS.md b/odoo-bringout-cybrosys-order_line_sequences/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/DEPENDENCIES.md b/odoo-bringout-cybrosys-order_line_sequences/doc/DEPENDENCIES.md new file mode 100644 index 0000000..6d32c45 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/DEPENDENCIES.md @@ -0,0 +1,8 @@ +# Dependencies + +This addon depends on: + +- base +- [sale_management](../../odoo-bringout-oca-ocb-sale_management) +- [purchase](../../odoo-bringout-oca-ocb-purchase) +- [stock](../../odoo-bringout-oca-ocb-stock) diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/FAQ.md b/odoo-bringout-cybrosys-order_line_sequences/doc/FAQ.md new file mode 100644 index 0000000..f6f3734 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon order_line_sequences or install in UI. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/INSTALL.md b/odoo-bringout-cybrosys-order_line_sequences/doc/INSTALL.md new file mode 100644 index 0000000..5957ad5 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-cybrosys-order_line_sequences" +# or +uv pip install odoo-bringout-cybrosys-order_line_sequences" +``` diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/MODELS.md b/odoo-bringout-cybrosys-order_line_sequences/doc/MODELS.md new file mode 100644 index 0000000..78ec1a8 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/MODELS.md @@ -0,0 +1,14 @@ +# Models + +Detected core models and extensions in order_line_sequences. + +```mermaid +classDiagram + class purchase_order_line + class sale_order_line + class stock_move +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/OVERVIEW.md b/odoo-bringout-cybrosys-order_line_sequences/doc/OVERVIEW.md new file mode 100644 index 0000000..4a773ab --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: order_line_sequences. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon order_line_sequences +- License: LGPL-3 diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/REPORTS.md b/odoo-bringout-cybrosys-order_line_sequences/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/SECURITY.md b/odoo-bringout-cybrosys-order_line_sequences/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/TROUBLESHOOTING.md b/odoo-bringout-cybrosys-order_line_sequences/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/USAGE.md b/odoo-bringout-cybrosys-order_line_sequences/doc/USAGE.md new file mode 100644 index 0000000..dee6cef --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon order_line_sequences +``` diff --git a/odoo-bringout-cybrosys-order_line_sequences/doc/WIZARDS.md b/odoo-bringout-cybrosys-order_line_sequences/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/README.rst b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/README.rst new file mode 100644 index 0000000..f78c28f --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Order Line Sequences/Line Numbers V16 +================ +This module will help you to add sequence for order lines in sales, purchase and delivery. +It will also add line numbers in report lines. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Affero General Public License v3.0 (AGPL v3) +(https://www.odoo.com/documentation/16.0/legal/licenses.html) + +Credits +------- +Developer: (V16) Amaya Aravind @ Cybrosys + +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/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/__init__.py b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/__init__.py new file mode 100644 index 0000000..a519b56 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Amaya Aravind (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 models diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/__manifest__.py b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/__manifest__.py new file mode 100644 index 0000000..03516c5 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/__manifest__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Amaya Aravind (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': 'Order Line Sequences/Line Numbers', + 'version': '16.0.1.0.0', + 'category': 'Extra Tools', + 'summary': 'Sequence numbers in order lines of sales,purchase and delivery.', + 'description': """This module will help you to add sequence for order lines + in sales, purchase and delivery. It will also add line + numbers in report lines.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'license': 'AGPL-3', + 'depends': ['base', 'sale_management', 'purchase', 'stock'], + 'data': [ + 'views/sale_order_view.xml', + 'views/purchase_order_view.xml', + 'views/stock_view.xml', + 'views/sale_order_document_view.xml', + 'views/report_picking_view.xml', + 'views/report_purchaseorder_document_view.xml', + ], + 'images': ['static/description/banner.png'], + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/doc/RELEASE_NOTES.md b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/doc/RELEASE_NOTES.md new file mode 100644 index 0000000..d21a9d5 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 18.04.2023 +#### Version 16.0.1.0.0 +#### ADD +Initial Commit for Order Line Sequences/Line Numbers. diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/__init__.py b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/__init__.py new file mode 100644 index 0000000..b088f5f --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Amaya Aravind (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 sale_order +from . import purchase_order +from . import stock diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/purchase_order.py b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/purchase_order.py new file mode 100644 index 0000000..cb84a75 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/purchase_order.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Amaya Aravind (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 api, fields, models + + +class PurchaseOrderLine(models.Model): + """ class for inherited model purchase order line. Contains a field for line + numbers and a function for computing line numbers. + """ + + _inherit = 'purchase.order.line' + + sequence_number = fields.Integer(string='#', compute='_compute_sequence_number', help='Line Numbers') + + @api.depends('sequence', 'order_id') + def _compute_sequence_number(self): + """Function to compute line numbers""" + for order in self.mapped('order_id'): + sequence_number = 1 + for lines in order.order_line: + if lines.display_type: + lines.sequence_number = sequence_number + sequence_number += 0 + else: + lines.sequence_number = sequence_number + sequence_number += 1 diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/sale_order.py b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/sale_order.py new file mode 100644 index 0000000..d1b324f --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/sale_order.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Amaya Aravind (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 api, fields, models + + +class SaleOrderLine(models.Model): + """ class for inherited model sale order line. Contains a field for line + numbers and a function for computing line numbers. + """ + + _inherit = 'sale.order.line' + + sequence_number = fields.Integer(string='#', compute='_compute_sequence_number', help='Line Numbers') + + @api.depends('sequence', 'order_id') + def _compute_sequence_number(self): + """Function to compute line numbers""" + for order in self.mapped('order_id'): + sequence_number = 1 + for lines in order.order_line: + if lines.display_type: + lines.sequence_number = sequence_number + sequence_number += 0 + else: + lines.sequence_number = sequence_number + sequence_number += 1 diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/stock.py b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/stock.py new file mode 100644 index 0000000..e6ac311 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/models/stock.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Amaya Aravind (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 api, fields, models + + +class StockMove(models.Model): + """ class for inherited model stock move. Contains a field for line + numbers and a function for computing line numbers. + """ + + _inherit = 'stock.move' + + sequence_number = fields.Integer(string='#', compute='_compute_sequence_number', help='Line Numbers') + + @api.depends('picking_id') + def _compute_sequence_number(self): + """Function to compute line numbers""" + for ids in self.mapped('picking_id'): + sequence_number = 1 + for lines in ids.move_ids_without_package: + lines.sequence_number = sequence_number + sequence_number += 1 diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/check.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/check.png new file mode 100644 index 0000000..c8e85f5 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/check.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/chevron.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/chevron.png new file mode 100644 index 0000000..2089293 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/chevron.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/cogs.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/cogs.png new file mode 100644 index 0000000..95d0bad Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/cogs.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/consultation.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/consultation.png new file mode 100644 index 0000000..8319d4b Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/consultation.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/ecom-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000..a9385ff Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/ecom-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/education-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/education-black.png new file mode 100644 index 0000000..3eb09b2 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/education-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/hotel-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/hotel-black.png new file mode 100644 index 0000000..130f613 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/hotel-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/license.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/license.png new file mode 100644 index 0000000..a586979 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/license.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/lifebuoy.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000..658d56c Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/lifebuoy.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/manufacturing-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 0000000..697eb0e Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/manufacturing-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/pos-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/pos-black.png new file mode 100644 index 0000000..97c0f90 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/pos-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/puzzle.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000..65cf854 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/puzzle.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/restaurant-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000..4a35eb9 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/restaurant-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/service-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/service-black.png new file mode 100644 index 0000000..301ab51 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/service-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/trading-black.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/trading-black.png new file mode 100644 index 0000000..9398ba2 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/trading-black.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/training.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/training.png new file mode 100644 index 0000000..884ca02 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/training.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/update.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/update.png new file mode 100644 index 0000000..ecbc5a0 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/update.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/user.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/user.png new file mode 100644 index 0000000..6ffb23d Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/user.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/wrench.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/wrench.png new file mode 100644 index 0000000..6c04dea Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/icons/wrench.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/categories.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/categories.png new file mode 100644 index 0000000..bedf1e0 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/categories.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/check-box.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/check-box.png new file mode 100644 index 0000000..42caf24 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/check-box.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/compass.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/compass.png new file mode 100644 index 0000000..d5fed8f Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/compass.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/corporate.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/corporate.png new file mode 100644 index 0000000..2eb13ed Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/corporate.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/customer-support.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/customer-support.png new file mode 100644 index 0000000..79efc72 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/customer-support.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/cybrosys-logo.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 0000000..cc3cc0c Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/cybrosys-logo.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/features.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/features.png new file mode 100644 index 0000000..b41769f Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/features.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/logo.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/logo.png new file mode 100644 index 0000000..478462d Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/logo.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/pictures.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/pictures.png new file mode 100644 index 0000000..56d255f Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/pictures.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/pie-chart.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/pie-chart.png new file mode 100644 index 0000000..426e052 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/pie-chart.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/right-arrow.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/right-arrow.png new file mode 100644 index 0000000..730984a Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/right-arrow.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/star.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/star.png new file mode 100644 index 0000000..2eb9ab2 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/star.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/support.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/support.png new file mode 100644 index 0000000..4f18b8b Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/support.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/whatsapp.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/whatsapp.png new file mode 100644 index 0000000..d513a53 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/misc/whatsapp.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/1.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/1.png new file mode 100644 index 0000000..51555e8 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/1.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/2.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/2.png new file mode 100644 index 0000000..7cc3625 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/2.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/3.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/3.png new file mode 100644 index 0000000..f3c986f Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/3.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/4.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/4.png new file mode 100644 index 0000000..2c8fbb8 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/4.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/5.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/5.png new file mode 100644 index 0000000..8683378 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/5.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/6.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/6.png new file mode 100644 index 0000000..29a17f2 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/modules/6.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/1.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/1.png new file mode 100644 index 0000000..6e37500 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/1.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/10.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/10.png new file mode 100644 index 0000000..b5b2ca8 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/10.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/11.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/11.png new file mode 100644 index 0000000..db8d73a Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/11.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/12.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/12.png new file mode 100644 index 0000000..5ab962e Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/12.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/13.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/13.png new file mode 100644 index 0000000..6b108d3 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/13.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/2.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/2.png new file mode 100644 index 0000000..6b5b314 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/2.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/3.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/3.png new file mode 100644 index 0000000..d4fc1d8 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/3.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/4.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/4.png new file mode 100644 index 0000000..d1d2a9f Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/4.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/5.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/5.png new file mode 100644 index 0000000..397286b Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/5.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/6.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/6.png new file mode 100644 index 0000000..8a709d6 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/6.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/7.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/7.png new file mode 100644 index 0000000..5942a6b Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/7.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/8.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/8.png new file mode 100644 index 0000000..c8b28b8 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/8.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/9.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/9.png new file mode 100644 index 0000000..f693d29 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/9.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/hero.gif b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/hero.gif new file mode 100644 index 0000000..d4c61ed Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/assets/screenshots/hero.gif differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/banner.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/banner.png new file mode 100644 index 0000000..69ecacf Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/banner.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/icon.png b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/icon.png new file mode 100644 index 0000000..247cfa8 Binary files /dev/null and b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/icon.png differ diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/index.html b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/index.html new file mode 100644 index 0000000..7119e18 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/static/description/index.html @@ -0,0 +1,546 @@ +
+ +
+ +
+
+ Community +
+
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Order Line Sequences/Line Numbers

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

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+This module will help you to add sequence for order lines in sales, purchase and delivery. It will also add line numbers in report lines. +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + Sequence numbers in order lines of sales, purchase and delivery. +
+
+ + Line numbers for reports in sales , purchase and delivery.. +
+
+ + No additional configurations needed. +
+
+
+ + +
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ +
+

There will be sequence numbers for order lines in Sales ,Purchase and Delivery. +

+

In Sales.

+ +

In Sales Delivery.

+ +

In Purchase.

+ +

In Purchase Delivery.

+ +
+ +
+

There will be line numbers when printing pdf reports. +

+

On Sales Quotation/Order Report.

+ + +

On Sales Delivery-Picking Operations Report.

+ + +

On Purchase Order and Request for Quotation Reports.

+ + + +

On Purchase Delivery-Picking Operations Report.

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

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/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/purchase_order_view.xml b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/purchase_order_view.xml new file mode 100644 index 0000000..dac8635 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/purchase_order_view.xml @@ -0,0 +1,14 @@ + + + + + purchase.order.form.view.inherit.order_line_sequences + purchase.order + + + + + + + + diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/report_picking_view.xml b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/report_picking_view.xml new file mode 100644 index 0000000..83a4633 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/report_picking_view.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/report_purchaseorder_document_view.xml b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/report_purchaseorder_document_view.xml new file mode 100644 index 0000000..ae9e6cb --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/report_purchaseorder_document_view.xml @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/sale_order_document_view.xml b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/sale_order_document_view.xml new file mode 100644 index 0000000..a6dc19a --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/sale_order_document_view.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/sale_order_view.xml b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/sale_order_view.xml new file mode 100644 index 0000000..36d7f6d --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/sale_order_view.xml @@ -0,0 +1,14 @@ + + + + + sale.order.form.view.inherit.order_line_sequences + sale.order + + + + + + + + diff --git a/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/stock_view.xml b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/stock_view.xml new file mode 100644 index 0000000..e52ca69 --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/order_line_sequences/views/stock_view.xml @@ -0,0 +1,14 @@ + + + + + stock.picking.form.view.inherit.order_line_sequences + stock.picking + + + + + + + + diff --git a/odoo-bringout-cybrosys-order_line_sequences/pyproject.toml b/odoo-bringout-cybrosys-order_line_sequences/pyproject.toml new file mode 100644 index 0000000..a8e4eaa --- /dev/null +++ b/odoo-bringout-cybrosys-order_line_sequences/pyproject.toml @@ -0,0 +1,45 @@ +[project] +name = "odoo-bringout-cybrosys-order_line_sequences" +version = "16.0.0" +description = "Order Line Sequences/Line Numbers - Sequence numbers in order lines of sales,purchase and delivery." +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-base>=16.0.0", + "odoo-bringout-cybrosys-sale_management>=16.0.0", + "odoo-bringout-oca-ocb-purchase>=16.0.0", + "odoo-bringout-oca-ocb-stock>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["order_line_sequences"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/README.md b/odoo-bringout-cybrosys-product_brand_ecommerce/README.md new file mode 100644 index 0000000..b6c5a2d --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/README.md @@ -0,0 +1,47 @@ +# Product Brand in eCommerce + +Product Brand in eCommerce + +## Installation + +```bash +pip install odoo-bringout-cybrosys-product_brand_ecommerce +``` + +## Dependencies + +This addon depends on: +- product_brand_sale +- website_sale + +## Manifest Information + +- **Name**: Product Brand in eCommerce +- **Version**: 16.0.1.0.0 +- **Category**: eCommerce +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Custom addon from bringout-cybrosys vendor, addon `product_brand_ecommerce`. + +## License + +This package maintains the original AGPL-3 license from the addon. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/ARCHITECTURE.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/ARCHITECTURE.md new file mode 100644 index 0000000..775baa2 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Product_brand_ecommerce Module - product_brand_ecommerce + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/CONFIGURATION.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/CONFIGURATION.md new file mode 100644 index 0000000..6d48cad --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for product_brand_ecommerce. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/CONTROLLERS.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/CONTROLLERS.md new file mode 100644 index 0000000..ff097c0 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/CONTROLLERS.md @@ -0,0 +1,17 @@ +# Controllers + +HTTP routes provided by this module. + +```mermaid +sequenceDiagram + participant U as User/Client + participant C as Module Controllers + participant O as ORM/Views + + U->>C: HTTP GET/POST (routes) + C->>O: ORM operations, render templates + O-->>U: HTML/JSON/PDF +``` + +Notes +- See files in controllers/ for route definitions. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/DEPENDENCIES.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/DEPENDENCIES.md new file mode 100644 index 0000000..0f18f38 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [product_brand_sale](../../odoo-bringout-cybrosys-product_brand_sale) +- [website_sale](../../odoo-bringout-oca-ocb-website_sale) diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/FAQ.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/FAQ.md new file mode 100644 index 0000000..d825b4a --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon product_brand_ecommerce or install in UI. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/INSTALL.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/INSTALL.md new file mode 100644 index 0000000..9bd115a --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-cybrosys-product_brand_ecommerce" +# or +uv pip install odoo-bringout-cybrosys-product_brand_ecommerce" +``` diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/MODELS.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/MODELS.md new file mode 100644 index 0000000..5a5c380 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in product_brand_ecommerce. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/OVERVIEW.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/OVERVIEW.md new file mode 100644 index 0000000..e562712 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: product_brand_ecommerce. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon product_brand_ecommerce +- License: LGPL-3 diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/REPORTS.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/SECURITY.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/TROUBLESHOOTING.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/USAGE.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/USAGE.md new file mode 100644 index 0000000..c44d1bc --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon product_brand_ecommerce +``` diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/doc/WIZARDS.md b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/README.md b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/README.md new file mode 100644 index 0000000..dbc3369 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/README.md @@ -0,0 +1,33 @@ +Product Brand in eCommerce +========================== + +Installation +============ +- www.odoo.com/documentation/16.0/setup/install.html +- Install our custom addon + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Credits +======= +* Cybrosys Techno Solutions + + +Developer: Afras Habis - odoo@cybrosys.com, + V15 Midilaj V K - odoo@cybrosys.com + V16 Neenu Merlin Jose - odoo@cybrosys.com + +Maintainer +---------- + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com. + diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/__init__.py b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/__init__.py new file mode 100644 index 0000000..afbd69d --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Midilaj () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import controllers diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/__manifest__.py b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/__manifest__.py new file mode 100644 index 0000000..a602fa4 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies() +# Author: Midilaj () +# +# 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': 'Product Brand in eCommerce', + 'version': '16.0.1.0.0', + 'category': 'eCommerce', + 'summary': 'Product Brand in eCommerce', + 'description': 'Product Brand in eCommerce', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'images': ['static/description/banner.png'], + 'website': 'https://www.cybrosys.com', + 'depends': ['product_brand_sale', 'website_sale'], + 'data': [ + 'views/template.xml', + 'views/sale_report_views.xml' + ], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, + +} diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/controllers/__init__.py b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/controllers/__init__.py new file mode 100644 index 0000000..5871b7c --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Midilaj () +# +# 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 main diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/controllers/main.py b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/controllers/main.py new file mode 100644 index 0000000..78c4adf --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/controllers/main.py @@ -0,0 +1,389 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2020-TODAY Cybrosys Technologies() +# Author: Midilaj () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# + +import json +import logging +from collections import defaultdict +from datetime import datetime +from werkzeug.exceptions import Forbidden, NotFound +from itertools import product as cartesian_product + +from odoo import fields, http, tools, _ +from odoo.http import request +from odoo.addons.http_routing.models.ir_http import slug +from odoo.addons.website.controllers.main import QueryURL +from odoo.addons.website_sale.controllers.main import WebsiteSale +from odoo.tools import lazy + +_logger = logging.getLogger(__name__) + + +class TableCompute(object): + + def __init__(self): + self.table = {} + + def _check_place(self, posx, posy, sizex, sizey, ppr): + res = True + for y in range(sizey): + for x in range(sizex): + if posx + x >= ppr: + res = False + break + row = self.table.setdefault(posy + y, {}) + if row.setdefault(posx + x) is not None: + res = False + break + for x in range(ppr): + self.table[posy + y].setdefault(x, None) + return res + + def process(self, products, ppg=20, ppr=4): + # Compute products positions on the grid + minpos = 0 + index = 0 + maxy = 0 + x = 0 + for p in products: + x = min(max(p.website_size_x, 1), ppr) + y = min(max(p.website_size_y, 1), ppr) + if index >= ppg: + x = y = 1 + + pos = minpos + while not self._check_place(pos % ppr, pos // ppr, x, y, ppr): + pos += 1 + # if 21st products (index 20) and the last line is full (ppr products in it), break + # (pos + 1.0) / ppr is the line where the product would be inserted + # maxy is the number of existing lines + # + 1.0 is because pos begins at 0, thus pos 20 is actually the 21st block + # and to force python to not round the division operation + if index >= ppg and ((pos + 1.0) // ppr) > maxy: + break + + if x == 1 and y == 1: # simple heuristic for CPU optimization + minpos = pos // ppr + + for y2 in range(y): + for x2 in range(x): + self.table[(pos // ppr) + y2][(pos % ppr) + x2] = False + self.table[pos // ppr][pos % ppr] = { + 'product': p, 'x': x, 'y': y, + 'ribbon': p.website_ribbon_id, + } + if index <= ppg: + maxy = max(maxy, y + (pos // ppr)) + index += 1 + + # Format table according to HTML needs + rows = sorted(self.table.items()) + rows = [r[1] for r in rows] + for col in range(len(rows)): + cols = sorted(rows[col].items()) + x += len(cols) + rows[col] = [r[1] for r in cols if r[1]] + + return rows + + +class WebsiteSales(WebsiteSale): + @http.route([ + '''/shop''', + '''/shop/page/''', + '''/shop/category/''', + '''/shop/category//page/''', + '''/shop/brand/''', + ], type='http', auth="public", website=True) + def shop(self, page=0, category=None, search='', min_price=0.0, max_price=0.0, ppg=False, brand=None, + **post, ): + add_qty = int(post.get('add_qty', 1)) + try: + min_price = float(min_price) + except ValueError: + min_price = 0 + try: + max_price = float(max_price) + except ValueError: + max_price = 0 + compute_brand = brand + Category = request.env['product.public.category'] + if category: + category = Category.search([('id', '=', int(category))], limit=1) + if not category or not category.can_access_from_current_website(): + raise NotFound() + else: + category = Category + + Brand = request.env['product.brand'] + if not brand: + brand = Brand + + if ppg: + try: + ppg = int(ppg) + post['ppg'] = ppg + except ValueError: + ppg = False + if not ppg: + ppg = request.env['website'].get_current_website().shop_ppg or 20 + + ppr = request.env['website'].get_current_website().shop_ppr or 4 + + attrib_list = request.httprequest.args.getlist('attrib') + attrib_values = [[int(x) for x in v.split("-")] for v in attrib_list if v] + attributes_ids = {v[0] for v in attrib_values} + attrib_set = {v[1] for v in attrib_values} + + domain = self._get_search_domain(search, category, attrib_values) + + keep = QueryURL('/shop', category=category and int(category), search=search, attrib=attrib_list, + order=post.get('order')) + now = datetime.timestamp(datetime.now()) + pricelist = request.website.get_current_pricelist() + if not pricelist or request.session.get('website_sale_pricelist_time', + 0) < now - 60 * 60: # test: 1 hour in session + pricelist = request.website.get_current_pricelist() + request.session['website_sale_pricelist_time'] = now + request.session['website_sale_current_pl'] = pricelist.id + + request.update_context(pricelist=pricelist.id, partner=request.env.user.partner_id) + + filter_by_price_enabled = request.website.is_view_active('website_sale.filter_products_price') + if filter_by_price_enabled: + company_currency = request.website.company_id.currency_id + conversion_rate = request.env['res.currency']._get_conversion_rate( + company_currency, pricelist.currency_id, request.website.company_id, fields.Date.today()) + else: + conversion_rate = 1 + + url = "/shop" + if search: + post["search"] = search + if attrib_list: + post['attrib'] = attrib_list + options = self._get_search_options( + category=category, + attrib_values=attrib_values, + pricelist=pricelist, + min_price=min_price, + max_price=max_price, + conversion_rate=conversion_rate, + **post + ) + product_count, details, fuzzy_search_term = request.website._search_with_fuzzy("products_only", search, + limit=None, + order=self._get_search_order( + post), + options=options) + search_product = details[0].get('results', request.env['product.template']).with_context(bin_size=True) + if attrib_set: + # Attributes value per attribute + attribute_values = request.env['product.attribute.value'].browse(attrib_set) + values_per_attribute = defaultdict(lambda: request.env['product.attribute.value']) + # In case we have only one value per attribute we can check for a combination using those attributes directly + + multi_value_attribute = False + for value in attribute_values: + values_per_attribute[value.attribute_id] |= value + if len(values_per_attribute[value.attribute_id]) > 1: + multi_value_attribute = True + + def filter_template(template, attribute_values_list): + # Transform product.attribute.value to product.template.attribute.value + attribute_value_to_ptav = dict() + for ptav in template.attribute_line_ids.product_template_value_ids: + attribute_value_to_ptav[ptav.product_attribute_value_id] = ptav.id + possible_combinations = False + for attribute_values in attribute_values_list: + ptavs = request.env['product.template.attribute.value'].browse( + [attribute_value_to_ptav[val] for val in attribute_values if val in attribute_value_to_ptav] + ) + if len(ptavs) < len(attribute_values): + # In this case the template is not compatible with this specific combination + continue + if len(ptavs) == len(template.attribute_line_ids): + if template._is_combination_possible(ptavs): + return True + elif len(ptavs) < len(template.attribute_line_ids): + if len(attribute_values_list) == 1: + if any(template._get_possible_combinations(necessary_values=ptavs)): + return True + if not possible_combinations: + possible_combinations = template._get_possible_combinations() + if any(len(ptavs & combination) == len(ptavs) for combination in possible_combinations): + return True + return False + + if not multi_value_attribute: + possible_attrib_values_list = [attribute_values] + else: + # Cartesian product from dict keys and values + possible_attrib_values_list = [request.env['product.attribute.value'].browse([v.id for v in values]) + for + values in cartesian_product(*values_per_attribute.values())] + + search_product = search_product.filtered( + lambda tmpl: filter_template(tmpl, possible_attrib_values_list)) + + filter_by_price_enabled = request.website.is_view_active('website_sale.filter_products_price') + if filter_by_price_enabled: + # TODO Find an alternative way to obtain the domain through the search metadata. + Product = request.env['product.template'].with_context(bin_size=True) + domain = self._get_search_domain(search, category, attrib_values) + + # This is ~4 times more efficient than a search for the cheapest and most expensive products + from_clause, where_clause, where_params = Product._where_calc(domain).get_sql() + query = f""" + SELECT COALESCE(MIN(list_price), 0) * {conversion_rate}, COALESCE(MAX(list_price), 0) * {conversion_rate} + FROM {from_clause} + WHERE {where_clause} + """ + request.env.cr.execute(query, where_params) + available_min_price, available_max_price = request.env.cr.fetchone() + + if min_price or max_price: + if min_price: + min_price = min_price if min_price <= available_max_price else available_min_price + post['min_price'] = min_price + if max_price: + max_price = max_price if max_price >= available_min_price else available_max_price + post['max_price'] = max_price + + + website_domain = request.website.website_domain() + categs_domain = [('parent_id', '=', False)] + website_domain + if search: + search_categories = Category.search( + [('product_tmpl_ids', 'in', search_product.ids)] + website_domain).parents_and_self + categs_domain.append(('id', 'in', search_categories.ids)) + else: + search_categories = Category + categs = Category.search(categs_domain) + + if category: + url = "/shop/category/%s" % slug(category) + + product_count = len(search_product) + pager = request.website.pager(url=url, total=product_count, page=page, step=ppg, scope=7, url_args=post) + products = Product.search(domain, limit=ppg, offset=pager['offset'], order=self._get_search_order(post)) + + ProductAttribute = request.env['product.attribute'] + if products: + # get all products without limit + attributes = ProductAttribute.search([('product_tmpl_ids', 'in', search_product.ids)]) + else: + attributes = ProductAttribute.browse(attributes_ids) + + layout_mode = request.session.get('website_sale_shop_layout_mode') + if not layout_mode: + if request.website.viewref('website_sale.products_list_view').active: + layout_mode = 'list' + else: + layout_mode = 'grid' + products_prices = products._get_sales_prices(pricelist) + + Brand = request.env['product.brand'].search([]) + if compute_brand: + products_brand = request.env['product.template'].search( + ['&', ('brand_id', '=', brand.id), ('sale_ok', '=', True)]) + product_brand_count = len(products_brand) + pager_brand = request.website.pager(url=url, total=product_brand_count, page=page, step=ppg, scope=7, + url_args=post) + values = { + 'search': search, + 'original_search':fuzzy_search_term and search, + 'category': category, + 'brand': brand, + 'attrib_values': attrib_values, + 'attrib_set': attrib_set, + 'pager': pager_brand, + 'pricelist': pricelist, + # 'website_sale_pricelists': pricelist, + 'add_qty': add_qty, + 'products': products_brand, + 'search_count': product_brand_count, # common for all searchbox + 'bins': TableCompute().process(products_brand, ppg, ppr), + 'ppg': ppg, + 'ppr': ppr, + 'categories': categs, + 'attributes': attributes, + 'keep': keep, + 'search_categories_ids': search_categories.ids, + 'layout_mode': layout_mode, + 'brands': Brand, + 'products_prices': products_prices, + 'get_product_prices': lambda product: lazy(lambda: products_prices[product.id]), + 'float_round': tools.float_round, + + } + website = request.env['website'].get_current_website() + filter_by_price_enabled = website.is_view_active('website_sale.filter_products_price') + if filter_by_price_enabled: + values['min_price'] = min_price or available_min_price + values['max_price'] = max_price or available_max_price + values['available_min_price'] = tools.float_round(available_min_price, 2) + values['available_max_price'] = tools.float_round(available_max_price, 2) + if category: + values['main_object'] = category + values.update(self._get_additional_shop_values(values)) + print(values,'if values') + return request.render("website_sale.products", values) + else: + values = { + 'brand': brand, + 'search': search, + 'category': category, + 'original_search': fuzzy_search_term and search, + 'order': post.get('order', ''), + 'attrib_values': attrib_values, + 'attrib_set': attrib_set, + 'pager': pager, + 'pricelist': pricelist, + 'add_qty': add_qty, + 'products': products, + 'search_count': product_count, # common for all searchbox + 'bins': TableCompute().process(products, ppg, ppr), + 'ppg': ppg, + 'ppr': ppr, + 'categories': categs, + 'attributes': attributes, + 'keep': keep, + 'search_categories_ids': search_categories.ids, + 'layout_mode': layout_mode, + 'brands': Brand, + 'products_prices': products_prices, + 'get_product_prices': lambda product: lazy(lambda: products_prices[product.id]), + 'float_round': tools.float_round, + + } + website = request.env['website'].get_current_website() + filter_by_price_enabled = website.is_view_active('website_sale.filter_products_price') + if filter_by_price_enabled: + values['min_price'] = min_price or available_min_price + values['max_price'] = max_price or available_max_price + values['available_min_price'] = tools.float_round(available_min_price, 2) + values['available_max_price'] = tools.float_round(available_max_price, 2) + if category: + values['main_object'] = category + values.update(self._get_additional_shop_values(values)) + print(values,'else values') + return request.render("website_sale.products", values) diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/doc/RELEASE_NOTES.md b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/doc/RELEASE_NOTES.md new file mode 100644 index 0000000..a1e3c4e --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/doc/RELEASE_NOTES.md @@ -0,0 +1,4 @@ +## Module + +#### 26.09.2022 +#### Version 16.0.1.0.0 \ No newline at end of file diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/check.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/check.png new file mode 100644 index 0000000..c8e85f5 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/check.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/chevron.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/chevron.png new file mode 100644 index 0000000..2089293 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/chevron.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/cogs.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/cogs.png new file mode 100644 index 0000000..95d0bad Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/cogs.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/consultation.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/consultation.png new file mode 100644 index 0000000..8319d4b Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/consultation.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/ecom-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000..a9385ff Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/ecom-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/education-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/education-black.png new file mode 100644 index 0000000..3eb09b2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/education-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/hotel-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/hotel-black.png new file mode 100644 index 0000000..130f613 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/hotel-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/license.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/license.png new file mode 100644 index 0000000..a586979 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/license.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/lifebuoy.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000..658d56c Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/lifebuoy.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/manufacturing-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 0000000..697eb0e Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/manufacturing-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/pos-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/pos-black.png new file mode 100644 index 0000000..97c0f90 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/pos-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/puzzle.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000..65cf854 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/puzzle.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/restaurant-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000..4a35eb9 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/restaurant-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/service-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/service-black.png new file mode 100644 index 0000000..301ab51 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/service-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/trading-black.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/trading-black.png new file mode 100644 index 0000000..9398ba2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/trading-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/training.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/training.png new file mode 100644 index 0000000..884ca02 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/training.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/update.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/update.png new file mode 100644 index 0000000..ecbc5a0 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/update.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/user.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/user.png new file mode 100644 index 0000000..6ffb23d Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/user.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/wrench.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/wrench.png new file mode 100644 index 0000000..6c04dea Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/icons/wrench.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/categories.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/categories.png new file mode 100644 index 0000000..bedf1e0 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/categories.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/check-box.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/check-box.png new file mode 100644 index 0000000..42caf24 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/check-box.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/compass.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/compass.png new file mode 100644 index 0000000..d5fed8f Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/compass.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/corporate.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/corporate.png new file mode 100644 index 0000000..2eb13ed Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/corporate.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/customer-support.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/customer-support.png new file mode 100644 index 0000000..79efc72 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/customer-support.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/cybrosys-logo.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 0000000..cc3cc0c Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/cybrosys-logo.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/features.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/features.png new file mode 100644 index 0000000..b41769f Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/features.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/logo.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/logo.png new file mode 100644 index 0000000..478462d Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/logo.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/pictures.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/pictures.png new file mode 100644 index 0000000..56d255f Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/pictures.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/pie-chart.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/pie-chart.png new file mode 100644 index 0000000..426e052 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/pie-chart.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/right-arrow.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/right-arrow.png new file mode 100644 index 0000000..730984a Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/right-arrow.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/star.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/star.png new file mode 100644 index 0000000..2eb9ab2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/star.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/support.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/support.png new file mode 100644 index 0000000..4f18b8b Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/support.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/whatsapp.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/whatsapp.png new file mode 100644 index 0000000..d513a53 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/misc/whatsapp.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/1.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/1.png new file mode 100644 index 0000000..5238bde Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/1.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/2.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/2.png new file mode 100644 index 0000000..1ae7cfe Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/2.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/3.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/3.png new file mode 100644 index 0000000..3c3ff1a Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/3.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/4.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/4.png new file mode 100644 index 0000000..3fae463 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/4.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/5.gif b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/5.gif new file mode 100644 index 0000000..2a5f8e6 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/5.gif differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/6.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/6.png new file mode 100644 index 0000000..7f28152 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/modules/6.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/1.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/1.png new file mode 100644 index 0000000..b745716 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/1.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/2.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/2.png new file mode 100644 index 0000000..1e9d5b2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/2.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/3.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/3.png new file mode 100644 index 0000000..fcf5a31 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/3.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/4.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/4.png new file mode 100644 index 0000000..ce8af30 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/4.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/hero.gif b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/hero.gif new file mode 100644 index 0000000..fcf6ec2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/assets/screenshots/hero.gif differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/banner.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/banner.png new file mode 100644 index 0000000..1d2238b Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/banner.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/icon.png b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/icon.png new file mode 100644 index 0000000..f86fc39 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/icon.png differ diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/index.html b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/index.html new file mode 100644 index 0000000..cf9ed77 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/static/description/index.html @@ -0,0 +1,555 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ + + +

Product Brand in eCommerce

+

Easily Manage Product Brands

+ + + +
+ + +
+
+ +
+

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ This module allows the odoo users to manage their product brands easily.

+ +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + Community & Enterprise Support +
+
+ + Available 23 language transliteration. +
+

+ Available in Odoo 15.0 Community and Enterprise.

+
+
+
+ + Activate Product Brand Filter. +
+
+ + Product Brand Filter in eCommerce. +
+
+ + Product Brand in Pivot View. +
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ + + +
+

Product Brand Filter in eCommerce

+

Product Brand Filter will be shows in the eCommerce website.

+ +
+
+

Products in the selected brand

+

view products available in the each brand.

+ +
+ +
+

Product Brand in Pivot View

+

Brand filter available in pivot view.

+ +
+
+

Filtered by Product Brand

+

User can Filtered by product brand in pivot view.

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

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/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/views/sale_report_views.xml b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/views/sale_report_views.xml new file mode 100644 index 0000000..522d1fd --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/views/sale_report_views.xml @@ -0,0 +1,16 @@ + + + + + + sale.report.search.inherit + sale.report + + + + + + + + + \ No newline at end of file diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/views/template.xml b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/views/template.xml new file mode 100644 index 0000000..8489796 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/product_brand_ecommerce/views/template.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/odoo-bringout-cybrosys-product_brand_ecommerce/pyproject.toml b/odoo-bringout-cybrosys-product_brand_ecommerce/pyproject.toml new file mode 100644 index 0000000..ce544a0 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_ecommerce/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-cybrosys-product_brand_ecommerce" +version = "16.0.0" +description = "Product Brand in eCommerce - Product Brand in eCommerce" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-cybrosys-product_brand_sale>=16.0.0", + "odoo-bringout-oca-ocb-website_sale>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["product_brand_ecommerce"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-cybrosys-product_brand_inventory/README.md b/odoo-bringout-cybrosys-product_brand_inventory/README.md new file mode 100644 index 0000000..72b3f04 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/README.md @@ -0,0 +1,46 @@ +# Product Brand in Inventory + +This module lets you add Brand in Inventory and for products. + +## Installation + +```bash +pip install odoo-bringout-cybrosys-product_brand_inventory +``` + +## Dependencies + +This addon depends on: +- stock + +## Manifest Information + +- **Name**: Product Brand in Inventory +- **Version**: 16.0.1.0.1 +- **Category**: Warehouse +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Custom addon from bringout-cybrosys vendor, addon `product_brand_inventory`. + +## License + +This package maintains the original AGPL-3 license from the addon. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/ARCHITECTURE.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/ARCHITECTURE.md new file mode 100644 index 0000000..acf1cb0 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Product_brand_inventory Module - product_brand_inventory + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/CONFIGURATION.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/CONFIGURATION.md new file mode 100644 index 0000000..73f72a2 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for product_brand_inventory. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/CONTROLLERS.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/DEPENDENCIES.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/DEPENDENCIES.md new file mode 100644 index 0000000..83fb42f --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [stock](../../odoo-bringout-oca-ocb-stock) diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/FAQ.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/FAQ.md new file mode 100644 index 0000000..6bd0769 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon product_brand_inventory or install in UI. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/INSTALL.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/INSTALL.md new file mode 100644 index 0000000..8c759f8 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-cybrosys-product_brand_inventory" +# or +uv pip install odoo-bringout-cybrosys-product_brand_inventory" +``` diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/MODELS.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/MODELS.md new file mode 100644 index 0000000..8fdd28b --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/MODELS.md @@ -0,0 +1,14 @@ +# Models + +Detected core models and extensions in product_brand_inventory. + +```mermaid +classDiagram + class product_brand + class product_template + class stock_quant +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/OVERVIEW.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/OVERVIEW.md new file mode 100644 index 0000000..45d1e15 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: product_brand_inventory. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon product_brand_inventory +- License: LGPL-3 diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/REPORTS.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/SECURITY.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/SECURITY.md new file mode 100644 index 0000000..e56d852 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/SECURITY.md @@ -0,0 +1,34 @@ +# Security + +Access control and security definitions in product_brand_inventory. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../product_brand_inventory/security/ir.model.access.csv)** + - 0 model access rules + +## Record Rules + +Row-level security rules defined in: + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../product_brand_inventory/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/TROUBLESHOOTING.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/USAGE.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/USAGE.md new file mode 100644 index 0000000..2a79393 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon product_brand_inventory +``` diff --git a/odoo-bringout-cybrosys-product_brand_inventory/doc/WIZARDS.md b/odoo-bringout-cybrosys-product_brand_inventory/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/README.rst b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/README.rst new file mode 100644 index 0000000..796d4b8 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/README.rst @@ -0,0 +1,44 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Product Brand in Inventory +========================== + +This module lets you add Brand in Inventory and for products. + +Installation +============ +- www.odoo.com/documentation/16.0/setup/install.html +- Install our custom addon + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +Bug Tracker +=========== +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com + +Credits +======= + +Developer: (V16) Sonu Soman, Contact: odoo@cybrosys.com + +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/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/__init__.py b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/__init__.py new file mode 100644 index 0000000..f319b7c --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +from . import models diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/__manifest__.py b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/__manifest__.py new file mode 100644 index 0000000..d400837 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/__manifest__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +{ + 'name': 'Product Brand in Inventory', + 'version': '16.0.1.0.1', + 'category': 'Warehouse', + 'summary': 'Product Brand in Inventory', + 'description': 'This module lets you add ' + 'Brand in Inventory and for products.', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'images': ['static/description/banner.png'], + 'website': 'https://www.cybrosys.com', + 'depends': ['stock'], + 'data': [ + 'security/ir.model.access.csv', + 'views/brand_views.xml', + ], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/doc/RELEASE_NOTES.md b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/doc/RELEASE_NOTES.md new file mode 100644 index 0000000..8a4e12f --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/doc/RELEASE_NOTES.md @@ -0,0 +1,13 @@ +## Module + +#### 20.09.2021 +#### Version 16.0.1.0.0 +#### ADD + +- Initial commit for Product Brand in Inventory + +#### 18.08.2023 +#### Version 16.0.1.0.1 +#### UPDT + +- Update Brand Group By in Inventory Report diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/models/__init__.py b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/models/__init__.py new file mode 100644 index 0000000..5854857 --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/models/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +from . import brand diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/models/brand.py b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/models/brand.py new file mode 100644 index 0000000..b0fb76c --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/models/brand.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2021-TODAY Cybrosys Technologies(). +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### +from odoo import models, fields, api + + +class ProductBrand(models.Model): + _inherit = 'product.template' + + brand_id = fields.Many2one('product.brand', string='Brand') + + +class BrandProduct(models.Model): + _name = 'product.brand' + + name = fields.Char(String="Name") + brand_image = fields.Binary() + member_ids = fields.One2many('product.template', 'brand_id') + product_count = fields.Char(String='Product Count', compute='get_count_products', store=True) + + @api.depends('member_ids') + def get_count_products(self): + self.product_count = len(self.member_ids) + + +class BrandReportStock(models.Model): + _inherit = 'stock.quant' + + brand_id = fields.Many2one(related='product_id.brand_id', + string='Brand', store=True, readonly=True) diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/security/ir.model.access.csv b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/security/ir.model.access.csv new file mode 100644 index 0000000..6c654dd --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_product_brand,access_product_brand,model_product_brand,,1,1,1,1 \ No newline at end of file diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/check.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/check.png new file mode 100644 index 0000000..c8e85f5 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/check.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/chevron.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/chevron.png new file mode 100644 index 0000000..2089293 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/chevron.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/cogs.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/cogs.png new file mode 100644 index 0000000..95d0bad Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/cogs.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/consultation.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/consultation.png new file mode 100644 index 0000000..8319d4b Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/consultation.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/ecom-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000..a9385ff Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/ecom-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/education-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/education-black.png new file mode 100644 index 0000000..3eb09b2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/education-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/hotel-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/hotel-black.png new file mode 100644 index 0000000..130f613 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/hotel-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/license.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/license.png new file mode 100644 index 0000000..a586979 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/license.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/lifebuoy.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000..658d56c Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/lifebuoy.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/manufacturing-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 0000000..697eb0e Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/manufacturing-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/pos-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/pos-black.png new file mode 100644 index 0000000..97c0f90 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/pos-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/puzzle.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000..65cf854 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/puzzle.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/restaurant-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000..4a35eb9 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/restaurant-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/service-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/service-black.png new file mode 100644 index 0000000..301ab51 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/service-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/trading-black.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/trading-black.png new file mode 100644 index 0000000..9398ba2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/trading-black.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/training.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/training.png new file mode 100644 index 0000000..884ca02 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/training.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/update.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/update.png new file mode 100644 index 0000000..ecbc5a0 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/update.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/user.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/user.png new file mode 100644 index 0000000..6ffb23d Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/user.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/wrench.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/wrench.png new file mode 100644 index 0000000..6c04dea Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/icons/wrench.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/categories.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/categories.png new file mode 100644 index 0000000..bedf1e0 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/categories.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/check-box.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/check-box.png new file mode 100644 index 0000000..42caf24 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/check-box.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/compass.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/compass.png new file mode 100644 index 0000000..d5fed8f Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/compass.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/corporate.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/corporate.png new file mode 100644 index 0000000..2eb13ed Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/corporate.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/customer-support.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/customer-support.png new file mode 100644 index 0000000..79efc72 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/customer-support.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/cybrosys-logo.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 0000000..cc3cc0c Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/cybrosys-logo.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/features.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/features.png new file mode 100644 index 0000000..b41769f Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/features.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/logo.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/logo.png new file mode 100644 index 0000000..478462d Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/logo.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/pictures.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/pictures.png new file mode 100644 index 0000000..56d255f Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/pictures.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/pie-chart.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/pie-chart.png new file mode 100644 index 0000000..426e052 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/pie-chart.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/right-arrow.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/right-arrow.png new file mode 100644 index 0000000..730984a Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/right-arrow.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/star.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/star.png new file mode 100644 index 0000000..2eb9ab2 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/star.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/support.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/support.png new file mode 100644 index 0000000..4f18b8b Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/support.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/whatsapp.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/whatsapp.png new file mode 100644 index 0000000..d513a53 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/misc/whatsapp.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/1.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/1.png new file mode 100644 index 0000000..359d3e4 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/1.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/2.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/2.png new file mode 100644 index 0000000..7a17f26 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/2.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/3.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/3.png new file mode 100644 index 0000000..baaa600 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/3.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/4.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/4.png new file mode 100644 index 0000000..ed99b59 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/4.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/5.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/5.png new file mode 100644 index 0000000..55fb7ba Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/5.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/6.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/6.png new file mode 100644 index 0000000..e339ff7 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/modules/6.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/1.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/1.png new file mode 100644 index 0000000..402e9eb Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/1.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/2.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/2.png new file mode 100644 index 0000000..add98b1 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/2.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/3.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/3.png new file mode 100644 index 0000000..690cfcc Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/3.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/4.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/4.png new file mode 100644 index 0000000..0d6c0ac Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/4.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/hero.gif b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/hero.gif new file mode 100644 index 0000000..9b40d2b Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/assets/screenshots/hero.gif differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/banner.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/banner.png new file mode 100644 index 0000000..e281bd6 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/banner.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/icon.png b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/icon.png new file mode 100644 index 0000000..5f93b43 Binary files /dev/null and b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/icon.png differ diff --git a/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/index.html b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/index.html new file mode 100644 index 0000000..d9d8a8b --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/static/description/index.html @@ -0,0 +1,534 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ + + +

Product Brand in Inventory

+

This module allows the odoo users to manage their product brands easily.

+ + + +
+ + +
+
+ +
+

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ This module allows the odoo users to manage their product brands easily. +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + Easy adding of brands +
+
+ + Easy adding of products to Product Brand. +
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ +
+

Product Brand Menu

+ +
+ +
+

Create a new Product Brand . We can add products directly from here itself.

+ +
+ +
+

Also we can add the brand inside the product form.

+ +
+ +
+

Group by Product Brand

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

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/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/views/brand_views.xml b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/views/brand_views.xml new file mode 100644 index 0000000..ebba3ef --- /dev/null +++ b/odoo-bringout-cybrosys-product_brand_inventory/product_brand_inventory/views/brand_views.xml @@ -0,0 +1,111 @@ + + + + + product.template.form.view.inherit.product.brand + product.template + + + + + + + + + + + + Product Brand + product.brand + tree,form + + + + + + product.brand.view.form + product.brand + +
+ + +
+