diff --git a/cw_mrp/README.rst b/cw_mrp/README.rst new file mode 100644 index 000000000..f18fbeecd --- /dev/null +++ b/cw_mrp/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Catch Weight - Manufacturing +============================ +This Module Brings The Catch Weight System In the Manufacturing Module. + +Configuration +============= +* No additional configuration is needed. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Affero General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +Developers: (V16) Swaroop N P, + (V17) Jumana Haseen, + (V18) Aysha Shalin + +Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/cw_mrp/__init__.py b/cw_mrp/__init__.py new file mode 100644 index 000000000..2534e61f8 --- /dev/null +++ b/cw_mrp/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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/cw_mrp/__manifest__.py b/cw_mrp/__manifest__.py new file mode 100644 index 000000000..3fc597a35 --- /dev/null +++ b/cw_mrp/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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': "Catch Weight - Manufacturing", + 'version': '18.0.1.0.0', + 'category': 'Manufacturing', + 'summary': """Catch Weight Management In Manufacturing Module.""", + 'description': """This Module allows to enable Catch Weight Management + System in Manufacturing Module.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['mrp', 'mrp_subcontracting', 'stock', 'cw_stock'], + 'data': [ + 'views/mrp_bom_views.xml', + 'views/mrp_production_views.xml', + 'views/mrp_unbuild_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/cw_mrp/doc/RELEASE_NOTES.md b/cw_mrp/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..c6898320d --- /dev/null +++ b/cw_mrp/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 19.04.2025 +#### Version 18.0.1.0.0 +##### ADD +- Initial commit for Catch Weight - Manufacturing diff --git a/cw_mrp/models/__init__.py b/cw_mrp/models/__init__.py new file mode 100644 index 000000000..aff6ba3af --- /dev/null +++ b/cw_mrp/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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 mrp_bom +from . import mrp_bom_line +from . import mrp_production +from . import mrp_unbuild diff --git a/cw_mrp/models/mrp_bom.py b/cw_mrp/models/mrp_bom.py new file mode 100644 index 000000000..e2a0a7f09 --- /dev/null +++ b/cw_mrp/models/mrp_bom.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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 MrpBom(models.Model): + """Inherited model 'mrp.bom'""" + _inherit = 'mrp.bom' + + cw_qty = fields.Float(string='CW-Qty', digits=(16, 4), + help="Catch weight quantity") + category_id = fields.Many2one('uom.category', + default=lambda self: self.env.ref( + 'uom.product_uom_categ_kgm'), + help="UOM category of product.") + cw_uom_id = fields.Many2one('uom.uom', string='CW-Uom', + help="Catch weight unit of measure", + domain="[('category_id', '=', category_id)]", + store=True) + toggle_cw = fields.Boolean(string='is_cw_product', default=False, + help="Check whether uom product or not.") + + @api.onchange('product_tmpl_id') + def _onchange_product(self): + """Calculating cw qty and cw uom on changing the product""" + self.toggle_cw = bool(self.product_tmpl_id.catch_weigth_ok) + self.cw_uom_id = self.product_tmpl_id.cw_uom_id + self.cw_qty = self.product_tmpl_id.average_cw_qty + + @api.onchange('cw_qty') + def _onchange_cw_qty(self): + """Calculating product qty on changing the cw quantity""" + if self.toggle_cw and self.product_tmpl_id.average_cw_qty != 0: + if self.cw_uom_id == self.product_uom_id: + self.product_qty = self.cw_qty + else: + self.product_qty = self.cw_qty / self.product_tmpl_id.average_cw_qty + + @api.onchange('product_qty') + def _onchange_product_qty(self): + """Calculating cw qty on changing the product quantity""" + if self.toggle_cw: + if self.cw_uom_id == self.product_uom_id: + self.cw_qty = self.product_qty + else: + self.cw_qty = self.product_tmpl_id.average_cw_qty * self.product_qty + + @api.onchange('product_uom_id', 'cw_uom_id') + def compute_weight(self): + """Calculating the cw qty based on product uom""" + if (self.product_tmpl_id.catch_weigth_ok and self.cw_uom_id and + self.product_uom_id.category_id == self.cw_uom_id.category_id): + self.cw_qty = self.cw_uom_id.factor / self.product_uom_id.factor diff --git a/cw_mrp/models/mrp_bom_line.py b/cw_mrp/models/mrp_bom_line.py new file mode 100644 index 000000000..9d1ac29c2 --- /dev/null +++ b/cw_mrp/models/mrp_bom_line.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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 MrpBomLine(models.Model): + """Inherited model 'mrp.bom.line'""" + _inherit = 'mrp.bom.line' + + cw_qty = fields.Float(string='CW-Qty', digits=(16, 4), + help="Catch weight quantity") + category_id = fields.Many2one('uom.category', + default=lambda self: self.env.ref( + 'uom.product_uom_categ_kgm'), + help="UOM category of product.") + cw_uom_id = fields.Many2one('uom.uom', string='CW-Uom', + domain="[('category_id', '=', category_id)]", + store=True, help="Catch Weight Uom") + cw_hide = fields.Boolean(string='CW-Hide', default=False, + help="Check whether uom product or not.") + + @api.onchange('product_id', 'product_qty') + def onchange_bom_product_id(self): + """Update cw qty and uom based on product and quantity changes""" + for rec in self: + rec.cw_uom_id = rec.product_id.cw_uom_id.id + rec.cw_hide = bool(rec.product_id.catch_weigth_ok) + if rec.cw_uom_id == rec.product_uom_id: + rec.cw_qty = rec.product_qty + else: + rec.cw_qty = rec.product_qty * rec.product_id.average_cw_qty + + @api.onchange('cw_qty') + def onchange_bom_cw_qty(self): + """Update product qty based on cw quantity""" + for rec in self: + if rec.product_id.catch_weigth_ok and rec.product_qty and rec.cw_qty != 0 and rec.product_id.average_cw_qty != 0: + if rec.cw_uom_id == rec.product_uom_id: + rec.product_qty = rec.cw_qty + else: + rec.product_qty = rec.cw_qty / rec.product_id.average_cw_qty + + @api.onchange('product_uom_id', 'cw_uom_id') + def compute_weight(self): + """Update cw qty based on product uom""" + for rec in self: + if rec.product_id.catch_weigth_ok and rec.cw_uom_id and rec.product_uom_id.category_id == rec.cw_uom_id.category_id: + rec.cw_qty = rec.cw_uom_id.factor / rec.product_uom_id.factor diff --git a/cw_mrp/models/mrp_production.py b/cw_mrp/models/mrp_production.py new file mode 100644 index 000000000..8be3e5506 --- /dev/null +++ b/cw_mrp/models/mrp_production.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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 MrpProduction(models.Model): + """Inherited model 'mrp.production'""" + _inherit = 'mrp.production' + + cw_qty = fields.Float(string='CW-Qty', digits=(16, 4), + help="Catch weight quantity") + category_id = fields.Many2one('uom.category', + default=lambda self: self.env.ref( + 'uom.product_uom_categ_kgm'), + help="UOM category of product.") + cw_uom_id = fields.Many2one('uom.uom', string='CW-Uom', + help="Catch weight unit of measure.", + domain="[('category_id', '=', category_id)]", + store=True) + toggle_cw = fields.Boolean(string='is_cw_product', default=False, + help="Check whether uom product or not.") + + @api.onchange('product_tmpl_id') + def _onchange_product(self): + """Updating the cw qty and cw uom on changing the product""" + self.toggle_cw = bool(self.product_tmpl_id.catch_weigth_ok) + self.cw_uom_id = self.product_tmpl_id.cw_uom_id + self.cw_qty = self.product_tmpl_id.average_cw_qty + + @api.onchange('cw_qty') + def _onchange_cw_qty(self): + """Updating the product qty on changing the cw quantity""" + if self.toggle_cw and self.product_tmpl_id.average_cw_qty != 0: + self.product_qty = self.cw_qty / self.product_tmpl_id.average_cw_qty + + @api.onchange('product_qty') + def _onchange_product_qty(self): + """Updating cw qty on changing the product quantity""" + if self.toggle_cw: + self.cw_qty = self.product_tmpl_id.average_cw_qty * self.product_qty diff --git a/cw_mrp/models/mrp_unbuild.py b/cw_mrp/models/mrp_unbuild.py new file mode 100644 index 000000000..52cfb73d9 --- /dev/null +++ b/cw_mrp/models/mrp_unbuild.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Aysha Shalin (odoo@cybrosys.info) +# +# 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 MrpUnbuild(models.Model): + """Inherited model 'mrp.unbuild'""" + _inherit = 'mrp.unbuild' + + cw_qty = fields.Float(string='CW-Qty', digits=(16, 4), + help="Catch weight quantity") + category_id = fields.Many2one('uom.category', + default=lambda self: self.env.ref( + 'uom.product_uom_categ_kgm'), + help="UOM category of product.") + cw_uom_id = fields.Many2one('uom.uom', string='CW-Uom', + help="Catch weight unit of measure.", + domain="[('category_id', '=', category_id)]", + store=True) + toggle_cw = fields.Boolean(string='is_cw_product', default=False, + help="Check whether uom product or not.") + + @api.onchange('product_id') + def _onchange_product(self): + """Updating the cw qty and cw uom on changing the product_id""" + self.toggle_cw = bool(self.product_id.catch_weigth_ok) + self.cw_uom_id = self.product_id.cw_uom_id + self.cw_qty = self.product_id.average_cw_qty * self.product_qty + + @api.onchange('cw_qty') + def _onchange_cw_qty_unbuild(self): + """Updating the product quantity based on the cw quantity""" + if self.toggle_cw and self.product_id.average_cw_qty != 0: + if self.cw_uom_id == self.product_uom_id: + self.product_qty = self.cw_qty + else: + self.product_qty = self.cw_qty / self.product_id.average_cw_qty + + @api.onchange('product_qty') + def _onchange_product_qty_unbuild(self): + """Updating the cw qty on changing the product quantity""" + if self.toggle_cw: + if self.cw_uom_id == self.product_uom_id: + self.cw_qty = self.product_qty + else: + self.cw_qty = self.product_id.average_cw_qty * self.product_qty + + @api.onchange('product_uom_id', 'cw_uom_id') + def compute_weight(self): + """Updating the cw qty based on uom""" + if (self.product_id.catch_weigth_ok and self.cw_uom_id and + self.product_uom_id.category_id == self.cw_uom_id.category_id): + self.cw_qty = self.cw_uom_id.factor / self.product_uom_id.factor diff --git a/cw_mrp/static/description/assets/icons/arrows-repeat.svg b/cw_mrp/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/banner-1.png b/cw_mrp/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/banner-1.png differ diff --git a/cw_mrp/static/description/assets/icons/banner-2.svg b/cw_mrp/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/banner-bg.png b/cw_mrp/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/banner-bg.png differ diff --git a/cw_mrp/static/description/assets/icons/banner-bg.svg b/cw_mrp/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/cw_mrp/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/banner-call.svg b/cw_mrp/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/cw_mrp/static/description/assets/icons/banner-mail.svg b/cw_mrp/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/cw_mrp/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/cw_mrp/static/description/assets/icons/banner-pattern.svg b/cw_mrp/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/banner-promo.svg b/cw_mrp/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/brand-pair.svg b/cw_mrp/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/cw_mrp/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/check.png b/cw_mrp/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/cw_mrp/static/description/assets/icons/check.png differ diff --git a/cw_mrp/static/description/assets/icons/chevron.png b/cw_mrp/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/chevron.png differ diff --git a/cw_mrp/static/description/assets/icons/close-icon.svg b/cw_mrp/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/cw_mrp/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/cw_mrp/static/description/assets/icons/cogs.png b/cw_mrp/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/cogs.png differ diff --git a/cw_mrp/static/description/assets/icons/collabarate-icon.svg b/cw_mrp/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/cw_mrp/static/description/assets/icons/consultation.png b/cw_mrp/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/cw_mrp/static/description/assets/icons/consultation.png differ diff --git a/cw_mrp/static/description/assets/icons/cybro-logo.png b/cw_mrp/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/cybro-logo.png differ diff --git a/cw_mrp/static/description/assets/icons/down.svg b/cw_mrp/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cw_mrp/static/description/assets/icons/ecom-black.png b/cw_mrp/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/ecom-black.png differ diff --git a/cw_mrp/static/description/assets/icons/education-black.png b/cw_mrp/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/cw_mrp/static/description/assets/icons/education-black.png differ diff --git a/cw_mrp/static/description/assets/icons/faq.png b/cw_mrp/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/faq.png differ diff --git a/cw_mrp/static/description/assets/icons/feature-icon.svg b/cw_mrp/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/feature.png b/cw_mrp/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/feature.png differ diff --git a/cw_mrp/static/description/assets/icons/gear.svg b/cw_mrp/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/cw_mrp/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/hero.gif b/cw_mrp/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..380654dfe Binary files /dev/null and b/cw_mrp/static/description/assets/icons/hero.gif differ diff --git a/cw_mrp/static/description/assets/icons/hire-odoo.svg b/cw_mrp/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/hotel-black.png b/cw_mrp/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/cw_mrp/static/description/assets/icons/hotel-black.png differ diff --git a/cw_mrp/static/description/assets/icons/license.png b/cw_mrp/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/cw_mrp/static/description/assets/icons/license.png differ diff --git a/cw_mrp/static/description/assets/icons/life-ring-icon.svg b/cw_mrp/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/lifebuoy.png b/cw_mrp/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/cw_mrp/static/description/assets/icons/lifebuoy.png differ diff --git a/cw_mrp/static/description/assets/icons/mail.svg b/cw_mrp/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/cw_mrp/static/description/assets/icons/manufacturing-black.png b/cw_mrp/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/cw_mrp/static/description/assets/icons/manufacturing-black.png differ diff --git a/cw_mrp/static/description/assets/icons/notes.png b/cw_mrp/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/notes.png differ diff --git a/cw_mrp/static/description/assets/icons/notification icon.svg b/cw_mrp/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/odoo-consultancy.svg b/cw_mrp/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/cw_mrp/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/cw_mrp/static/description/assets/icons/odoo-licencing.svg b/cw_mrp/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/cw_mrp/static/description/assets/icons/odoo-logo.png b/cw_mrp/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/cw_mrp/static/description/assets/icons/odoo-logo.png differ diff --git a/cw_mrp/static/description/assets/icons/patter.svg b/cw_mrp/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/cw_mrp/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/pattern1.png b/cw_mrp/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/cw_mrp/static/description/assets/icons/pattern1.png differ diff --git a/cw_mrp/static/description/assets/icons/pos-black.png b/cw_mrp/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/pos-black.png differ diff --git a/cw_mrp/static/description/assets/icons/puzzle-piece-icon.svg b/cw_mrp/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/puzzle.png b/cw_mrp/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/puzzle.png differ diff --git a/cw_mrp/static/description/assets/icons/replace-icon.svg b/cw_mrp/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/restaurant-black.png b/cw_mrp/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/restaurant-black.png differ diff --git a/cw_mrp/static/description/assets/icons/screenshot-main.png b/cw_mrp/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/screenshot-main.png differ diff --git a/cw_mrp/static/description/assets/icons/screenshot.png b/cw_mrp/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/screenshot.png differ diff --git a/cw_mrp/static/description/assets/icons/service-black.png b/cw_mrp/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/cw_mrp/static/description/assets/icons/service-black.png differ diff --git a/cw_mrp/static/description/assets/icons/skype-fill.svg b/cw_mrp/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/skype.png b/cw_mrp/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/skype.png differ diff --git a/cw_mrp/static/description/assets/icons/skype.svg b/cw_mrp/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/cw_mrp/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/cw_mrp/static/description/assets/icons/star-1.svg b/cw_mrp/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/star-2.svg b/cw_mrp/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/cw_mrp/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/support.png b/cw_mrp/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/support.png differ diff --git a/cw_mrp/static/description/assets/icons/test-1 - Copy.png b/cw_mrp/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/test-1 - Copy.png differ diff --git a/cw_mrp/static/description/assets/icons/test-1.png b/cw_mrp/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/cw_mrp/static/description/assets/icons/test-1.png differ diff --git a/cw_mrp/static/description/assets/icons/test-2.png b/cw_mrp/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/cw_mrp/static/description/assets/icons/test-2.png differ diff --git a/cw_mrp/static/description/assets/icons/trading-black.png b/cw_mrp/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/trading-black.png differ diff --git a/cw_mrp/static/description/assets/icons/training.png b/cw_mrp/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/cw_mrp/static/description/assets/icons/training.png differ diff --git a/cw_mrp/static/description/assets/icons/translate.svg b/cw_mrp/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/cw_mrp/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/update.png b/cw_mrp/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/cw_mrp/static/description/assets/icons/update.png differ diff --git a/cw_mrp/static/description/assets/icons/user.png b/cw_mrp/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/cw_mrp/static/description/assets/icons/user.png differ diff --git a/cw_mrp/static/description/assets/icons/video.png b/cw_mrp/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/video.png differ diff --git a/cw_mrp/static/description/assets/icons/whatsapp.png b/cw_mrp/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/cw_mrp/static/description/assets/icons/whatsapp.png differ diff --git a/cw_mrp/static/description/assets/icons/wrench-icon.svg b/cw_mrp/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/cw_mrp/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/cw_mrp/static/description/assets/icons/wrench.png b/cw_mrp/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/cw_mrp/static/description/assets/icons/wrench.png differ diff --git a/cw_mrp/static/description/assets/modules/1.png b/cw_mrp/static/description/assets/modules/1.png new file mode 100644 index 000000000..24c4e583b Binary files /dev/null and b/cw_mrp/static/description/assets/modules/1.png differ diff --git a/cw_mrp/static/description/assets/modules/2.jpg b/cw_mrp/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..eaa3c4ef8 Binary files /dev/null and b/cw_mrp/static/description/assets/modules/2.jpg differ diff --git a/cw_mrp/static/description/assets/modules/3.png b/cw_mrp/static/description/assets/modules/3.png new file mode 100644 index 000000000..fd61a071f Binary files /dev/null and b/cw_mrp/static/description/assets/modules/3.png differ diff --git a/cw_mrp/static/description/assets/modules/4.jpg b/cw_mrp/static/description/assets/modules/4.jpg new file mode 100644 index 000000000..d4570cbc9 Binary files /dev/null and b/cw_mrp/static/description/assets/modules/4.jpg differ diff --git a/cw_mrp/static/description/assets/modules/5.png b/cw_mrp/static/description/assets/modules/5.png new file mode 100644 index 000000000..b86b8b342 Binary files /dev/null and b/cw_mrp/static/description/assets/modules/5.png differ diff --git a/cw_mrp/static/description/assets/modules/6.jpg b/cw_mrp/static/description/assets/modules/6.jpg new file mode 100644 index 000000000..345828a0c Binary files /dev/null and b/cw_mrp/static/description/assets/modules/6.jpg differ diff --git a/cw_mrp/static/description/assets/screenshots/1.png b/cw_mrp/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..4bebf004e Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/1.png differ diff --git a/cw_mrp/static/description/assets/screenshots/2.png b/cw_mrp/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..97cfc2b5f Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/2.png differ diff --git a/cw_mrp/static/description/assets/screenshots/3.png b/cw_mrp/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..53c6fc4ae Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/3.png differ diff --git a/cw_mrp/static/description/assets/screenshots/4.png b/cw_mrp/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..294d308ec Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/4.png differ diff --git a/cw_mrp/static/description/assets/screenshots/5.png b/cw_mrp/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..9303a157f Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/5.png differ diff --git a/cw_mrp/static/description/assets/screenshots/6.png b/cw_mrp/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..e15c4db01 Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/6.png differ diff --git a/cw_mrp/static/description/assets/screenshots/hero.gif b/cw_mrp/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..1a94dd778 Binary files /dev/null and b/cw_mrp/static/description/assets/screenshots/hero.gif differ diff --git a/cw_mrp/static/description/banner.jpg b/cw_mrp/static/description/banner.jpg new file mode 100644 index 000000000..57b2df251 Binary files /dev/null and b/cw_mrp/static/description/banner.jpg differ diff --git a/cw_mrp/static/description/icon.png b/cw_mrp/static/description/icon.png new file mode 100644 index 000000000..cb5bdf5ec Binary files /dev/null and b/cw_mrp/static/description/icon.png differ diff --git a/cw_mrp/static/description/index.html b/cw_mrp/static/description/index.html new file mode 100644 index 000000000..f47713e80 --- /dev/null +++ b/cw_mrp/static/description/index.html @@ -0,0 +1,1072 @@ + + + + + + Catch Weight - Manufacturing + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+
+

+ This Module Brings The Catch Weight System In The + Manufacturing Module +

+

Catch Weight - Manufacturing +

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

Key + Highlights

+
+
+
+
+ +
+
+ Bill of Materials Based on Catch Weight. +
+
+
+
+
+
+ +
+
+ Manufacturing Orders based on catch weight. +
+
+
+
+
+
+ +
+
+ Unbuild Orders based on catch weight. +
+
+
+
+
+ +
+
+
+ Catch Weight - Manufacturing +

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

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

+ Enable Catch Weight on + + Products +

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

+ Setting Catch Weight + + UOM +

+
+
+

+ We can set the Catch Weight UOM + and weight on each product. +

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

+ Bill of Material Based on + Catch Weight +

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

+ Manufacturing Order Based on + Catch Weight +

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

+ Unbuild Order Based on + Catch Weight +

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

+ Unbuild Orders : Stock Move with + Catch weight +

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

+ We can Manufacture, Scrap and Unbuild + products based on the weight of the product. +

+
+
+
+
+
+
+
+ +
+

+ Available in Odoo 18.0 Community and Enterprise.

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

+ While configuring a + backup, selecting + the Zip option will + include the + filestore in the + backup, while + choosing the Dump + option will create a + backup without the + filestore. +

+
+
+ +
+ +
+

+ Enable the "Remove + Old Backups" option + in the backup + creation view to + automatically delete + previous backups + based on the number + of days specified. +

+
+
+ +
+ +
+

+ Enable the "Notify + User" option and + specify a contact to + receive an email + containing a + detailed report with + the failure reason + and backup details. + This option will + also send an email + upon successful + backup. +

+
+
+ +
+ +
+

+ Select the backup + destination as local + storage and specify + a backup path to a + location on the + system to create + backups on your own + system. +

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

+ Latest Release 18.0.1.0.0 +

+ + 20th April, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/cw_mrp/views/mrp_bom_views.xml b/cw_mrp/views/mrp_bom_views.xml new file mode 100644 index 000000000..cfa232c89 --- /dev/null +++ b/cw_mrp/views/mrp_bom_views.xml @@ -0,0 +1,35 @@ + + + + + mrp.bom.view.form.inherit.cw.mrp + mrp.bom + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cw_mrp/views/mrp_production_views.xml b/cw_mrp/views/mrp_production_views.xml new file mode 100644 index 000000000..4849fca8a --- /dev/null +++ b/cw_mrp/views/mrp_production_views.xml @@ -0,0 +1,43 @@ + + + + + mrp.production.view.form.cw.mrp + mrp.production + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cw_mrp/views/mrp_unbuild_views.xml b/cw_mrp/views/mrp_unbuild_views.xml new file mode 100644 index 000000000..d6c297411 --- /dev/null +++ b/cw_mrp/views/mrp_unbuild_views.xml @@ -0,0 +1,50 @@ + + + + + mrp.unbuild.view.form.cw.mrp + mrp.unbuild + + + + + + + + + + + mrp.unbuild.simplified.cw.inherit + mrp.unbuild + + + + + + + + +