diff --git a/merge_picking_orders/README.rst b/merge_picking_orders/README.rst new file mode 100644 index 000000000..4df21df57 --- /dev/null +++ b/merge_picking_orders/README.rst @@ -0,0 +1,49 @@ +.. 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 + +Merge Picking Orders +==================== +This module provides an option to manage the different types of Picking orders, When large number of Delivery,Receipts, Returns we can Merge the similar type Pickings simply by selecting the Picking orders. + +Configuration +============= +* No additional configuration needed + +License +------- +Affero General Public License v3.0 (AGPL v3) +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +Developer : (V16) Vishnuraj P, + (V17) Gayathri V, + (V18) Sreerag PM, +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/merge_picking_orders/__init__.py b/merge_picking_orders/__init__.py new file mode 100644 index 000000000..950067d50 --- /dev/null +++ b/merge_picking_orders/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Sreerag PM(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 +from . import wizard diff --git a/merge_picking_orders/__manifest__.py b/merge_picking_orders/__manifest__.py new file mode 100644 index 000000000..48eb527aa --- /dev/null +++ b/merge_picking_orders/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Sreerag PM(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': 'Merge Picking Orders', + 'version': '18.0.1.0.0', + 'category': 'Warehouse', + 'summary': "With This Module, You Can Easily Merge Pickings such as " + "Receipts, Delivery Orders and Returns", + 'description': """This module provides an option to manage the different" + "types of Picking orders, When large number of Delivery," + "Receipts, Returns we can Merge the similar type Pickings" + "simply by selecting the Picking orders.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['stock'], + 'data': [ + 'security/ir.model.access.csv', + 'data/stock_picking_data.xml', + 'wizard/merge_picking_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False +} diff --git a/merge_picking_orders/data/stock_picking_data.xml b/merge_picking_orders/data/stock_picking_data.xml new file mode 100644 index 000000000..33a839929 --- /dev/null +++ b/merge_picking_orders/data/stock_picking_data.xml @@ -0,0 +1,12 @@ + + + + + Merge Records + + + list + code + action = records.action_merge_picking() + + diff --git a/merge_picking_orders/doc/RELEASE_NOTES.md b/merge_picking_orders/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..e3cab4a31 --- /dev/null +++ b/merge_picking_orders/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 12.02.2025 +#### Version 18.0.1.0.0 +##### ADD + +- Initial Commit for Merge Picking Orders diff --git a/merge_picking_orders/models/__init__.py b/merge_picking_orders/models/__init__.py new file mode 100644 index 000000000..23badaff9 --- /dev/null +++ b/merge_picking_orders/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Sreerag PM(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 stock_picking diff --git a/merge_picking_orders/models/stock_picking.py b/merge_picking_orders/models/stock_picking.py new file mode 100644 index 000000000..8571a1206 --- /dev/null +++ b/merge_picking_orders/models/stock_picking.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Sreerag PM(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from odoo import fields, models, _ + + +class StockPicking(models.Model): + """ + Inherit Pickings class for add merge orders action function, + Method: + action_merge_picking(self): + Create new wizard with selected records + """ + _inherit = 'stock.picking' + + def action_merge_picking(self): + """ Method create wizard for select pickings """ + merge_picking = self.env['merge.picking'].create({ + 'merge_picking_ids': [fields.Command.set(self.ids)], + }) + return { + 'name': _('Merge Picking Orders'), + 'type': 'ir.actions.act_window', + 'res_model': 'merge.picking', + 'view_mode': 'form', + 'res_id': merge_picking.id, + 'target': 'new' + } diff --git a/merge_picking_orders/security/ir.model.access.csv b/merge_picking_orders/security/ir.model.access.csv new file mode 100644 index 000000000..2c76cf630 --- /dev/null +++ b/merge_picking_orders/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_merge_picking_user,access.merge.picking.user,model_merge_picking,base.group_user,1,1,1,1 diff --git a/merge_picking_orders/static/description/assets/cybro-icon.png b/merge_picking_orders/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/merge_picking_orders/static/description/assets/cybro-icon.png differ diff --git a/merge_picking_orders/static/description/assets/cybro-odoo.png b/merge_picking_orders/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/merge_picking_orders/static/description/assets/cybro-odoo.png differ diff --git a/merge_picking_orders/static/description/assets/h2.png b/merge_picking_orders/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/merge_picking_orders/static/description/assets/h2.png differ diff --git a/merge_picking_orders/static/description/assets/icons/arrows-repeat.svg b/merge_picking_orders/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/banner-1.png b/merge_picking_orders/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/banner-1.png differ diff --git a/merge_picking_orders/static/description/assets/icons/banner-2.svg b/merge_picking_orders/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/banner-bg.png b/merge_picking_orders/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/banner-bg.png differ diff --git a/merge_picking_orders/static/description/assets/icons/banner-bg.svg b/merge_picking_orders/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/banner-call.svg b/merge_picking_orders/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/banner-mail.svg b/merge_picking_orders/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/banner-pattern.svg b/merge_picking_orders/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/banner-promo.svg b/merge_picking_orders/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/brand-pair.svg b/merge_picking_orders/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/check.png b/merge_picking_orders/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/check.png differ diff --git a/merge_picking_orders/static/description/assets/icons/chevron.png b/merge_picking_orders/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/chevron.png differ diff --git a/merge_picking_orders/static/description/assets/icons/close-icon.svg b/merge_picking_orders/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/cogs.png b/merge_picking_orders/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/cogs.png differ diff --git a/merge_picking_orders/static/description/assets/icons/collabarate-icon.svg b/merge_picking_orders/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/merge_picking_orders/static/description/assets/icons/consultation.png b/merge_picking_orders/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/consultation.png differ diff --git a/merge_picking_orders/static/description/assets/icons/cybro-logo.png b/merge_picking_orders/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/cybro-logo.png differ diff --git a/merge_picking_orders/static/description/assets/icons/down.svg b/merge_picking_orders/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/merge_picking_orders/static/description/assets/icons/ecom-black.png b/merge_picking_orders/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/ecom-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/education-black.png b/merge_picking_orders/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/education-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/faq.png b/merge_picking_orders/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/faq.png differ diff --git a/merge_picking_orders/static/description/assets/icons/feature-icon.svg b/merge_picking_orders/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/feature.png b/merge_picking_orders/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/feature.png differ diff --git a/merge_picking_orders/static/description/assets/icons/gear.svg b/merge_picking_orders/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/hero.gif b/merge_picking_orders/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..380654dfe Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/hero.gif differ diff --git a/merge_picking_orders/static/description/assets/icons/hire-odoo.svg b/merge_picking_orders/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/hotel-black.png b/merge_picking_orders/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/hotel-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/license.png b/merge_picking_orders/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/license.png differ diff --git a/merge_picking_orders/static/description/assets/icons/life-ring-icon.svg b/merge_picking_orders/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/lifebuoy.png b/merge_picking_orders/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/lifebuoy.png differ diff --git a/merge_picking_orders/static/description/assets/icons/mail.svg b/merge_picking_orders/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/merge_picking_orders/static/description/assets/icons/manufacturing-black.png b/merge_picking_orders/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/manufacturing-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/notes.png b/merge_picking_orders/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/notes.png differ diff --git a/merge_picking_orders/static/description/assets/icons/notification icon.svg b/merge_picking_orders/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/odoo-consultancy.svg b/merge_picking_orders/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/merge_picking_orders/static/description/assets/icons/odoo-licencing.svg b/merge_picking_orders/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/merge_picking_orders/static/description/assets/icons/odoo-logo.png b/merge_picking_orders/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/odoo-logo.png differ diff --git a/merge_picking_orders/static/description/assets/icons/patter.svg b/merge_picking_orders/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/pattern1.png b/merge_picking_orders/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/pattern1.png differ diff --git a/merge_picking_orders/static/description/assets/icons/pos-black.png b/merge_picking_orders/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/pos-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/puzzle-piece-icon.svg b/merge_picking_orders/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/puzzle.png b/merge_picking_orders/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/puzzle.png differ diff --git a/merge_picking_orders/static/description/assets/icons/replace-icon.svg b/merge_picking_orders/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/restaurant-black.png b/merge_picking_orders/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/restaurant-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/screenshot-main.png b/merge_picking_orders/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/screenshot-main.png differ diff --git a/merge_picking_orders/static/description/assets/icons/screenshot.png b/merge_picking_orders/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/screenshot.png differ diff --git a/merge_picking_orders/static/description/assets/icons/service-black.png b/merge_picking_orders/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/service-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/skype-fill.svg b/merge_picking_orders/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/skype.png b/merge_picking_orders/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/skype.png differ diff --git a/merge_picking_orders/static/description/assets/icons/skype.svg b/merge_picking_orders/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/merge_picking_orders/static/description/assets/icons/star-1.svg b/merge_picking_orders/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/star-2.svg b/merge_picking_orders/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/support.png b/merge_picking_orders/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/support.png differ diff --git a/merge_picking_orders/static/description/assets/icons/test-1 - Copy.png b/merge_picking_orders/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/test-1 - Copy.png differ diff --git a/merge_picking_orders/static/description/assets/icons/test-1.png b/merge_picking_orders/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/test-1.png differ diff --git a/merge_picking_orders/static/description/assets/icons/test-2.png b/merge_picking_orders/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/test-2.png differ diff --git a/merge_picking_orders/static/description/assets/icons/trading-black.png b/merge_picking_orders/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/trading-black.png differ diff --git a/merge_picking_orders/static/description/assets/icons/training.png b/merge_picking_orders/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/training.png differ diff --git a/merge_picking_orders/static/description/assets/icons/translate.svg b/merge_picking_orders/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/update.png b/merge_picking_orders/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/update.png differ diff --git a/merge_picking_orders/static/description/assets/icons/user.png b/merge_picking_orders/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/user.png differ diff --git a/merge_picking_orders/static/description/assets/icons/video.png b/merge_picking_orders/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/video.png differ diff --git a/merge_picking_orders/static/description/assets/icons/whatsapp.png b/merge_picking_orders/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/whatsapp.png differ diff --git a/merge_picking_orders/static/description/assets/icons/wrench-icon.svg b/merge_picking_orders/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/merge_picking_orders/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/merge_picking_orders/static/description/assets/icons/wrench.png b/merge_picking_orders/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/merge_picking_orders/static/description/assets/icons/wrench.png differ diff --git a/merge_picking_orders/static/description/assets/modules/1.jpg b/merge_picking_orders/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..0178d2964 Binary files /dev/null and b/merge_picking_orders/static/description/assets/modules/1.jpg differ diff --git a/merge_picking_orders/static/description/assets/modules/2.jpg b/merge_picking_orders/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..580ea075d Binary files /dev/null and b/merge_picking_orders/static/description/assets/modules/2.jpg differ diff --git a/merge_picking_orders/static/description/assets/modules/3.png b/merge_picking_orders/static/description/assets/modules/3.png new file mode 100644 index 000000000..662660527 Binary files /dev/null and b/merge_picking_orders/static/description/assets/modules/3.png differ diff --git a/merge_picking_orders/static/description/assets/modules/4.jpg b/merge_picking_orders/static/description/assets/modules/4.jpg new file mode 100644 index 000000000..cd5fffdd6 Binary files /dev/null and b/merge_picking_orders/static/description/assets/modules/4.jpg differ diff --git a/merge_picking_orders/static/description/assets/modules/5.jpg b/merge_picking_orders/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..73613d2fb Binary files /dev/null and b/merge_picking_orders/static/description/assets/modules/5.jpg differ diff --git a/merge_picking_orders/static/description/assets/modules/6.png b/merge_picking_orders/static/description/assets/modules/6.png new file mode 100644 index 000000000..5a36b384e Binary files /dev/null and b/merge_picking_orders/static/description/assets/modules/6.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/1.png b/merge_picking_orders/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..093d667d2 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/1.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/10.png b/merge_picking_orders/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..71fa300cf Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/10.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/11.png b/merge_picking_orders/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..f590bdcb0 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/11.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/12.png b/merge_picking_orders/static/description/assets/screenshots/12.png new file mode 100644 index 000000000..8fa94c19b Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/12.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/13.png b/merge_picking_orders/static/description/assets/screenshots/13.png new file mode 100644 index 000000000..c55fcf676 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/13.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/14.png b/merge_picking_orders/static/description/assets/screenshots/14.png new file mode 100644 index 000000000..27c3c8eed Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/14.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/15.png b/merge_picking_orders/static/description/assets/screenshots/15.png new file mode 100644 index 000000000..f89756b70 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/15.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/16.png b/merge_picking_orders/static/description/assets/screenshots/16.png new file mode 100644 index 000000000..981dffdfe Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/16.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/2.png b/merge_picking_orders/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..a208feac7 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/2.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/3.png b/merge_picking_orders/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..7876bbccd Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/3.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/4.png b/merge_picking_orders/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..74af553a2 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/4.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/5.png b/merge_picking_orders/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..7a09e669e Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/5.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/6.png b/merge_picking_orders/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..af1ba588b Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/6.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/7.png b/merge_picking_orders/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..073d35815 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/7.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/8.png b/merge_picking_orders/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..38e9ac2ce Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/8.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/9.png b/merge_picking_orders/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..7dc236c6b Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/9.png differ diff --git a/merge_picking_orders/static/description/assets/screenshots/hero.gif b/merge_picking_orders/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..0e7bd5ae7 Binary files /dev/null and b/merge_picking_orders/static/description/assets/screenshots/hero.gif differ diff --git a/merge_picking_orders/static/description/assets/y18.jpg b/merge_picking_orders/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/merge_picking_orders/static/description/assets/y18.jpg differ diff --git a/merge_picking_orders/static/description/banner.jpg b/merge_picking_orders/static/description/banner.jpg new file mode 100644 index 000000000..48dc349f6 Binary files /dev/null and b/merge_picking_orders/static/description/banner.jpg differ diff --git a/merge_picking_orders/static/description/icon.png b/merge_picking_orders/static/description/icon.png new file mode 100644 index 000000000..c5d767f10 Binary files /dev/null and b/merge_picking_orders/static/description/icon.png differ diff --git a/merge_picking_orders/static/description/index.html b/merge_picking_orders/static/description/index.html new file mode 100644 index 000000000..d6cd5a22a --- /dev/null +++ b/merge_picking_orders/static/description/index.html @@ -0,0 +1,1415 @@ + + + + + + Merge Picking Orders + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+
+

+ This Module Will Help to Manage all Type of Pickings by + Merging. +

+

Merge Picking Orders +

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

Key + Highlights

+
+
+
+
+ +
+
+ Manage the different types of Picking + orders. +
+

+

+
+
+
+
+
+ +
+
+ Large number of Delivery, Receipts, Returns we + can Merge the similar type Pickings simply by + selecting the Picking orders. +
+

+

+
+
+
+
+
+ +
+
+ Supports In Odoo Community And Enterprise. +
+

+

+
+
+
+
+
+ +
+
+ Option to Merge to Existing Picking Order. +
+

+

+
+
+
+
+ +
+
+
+ Merge Picking Orders +

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

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

+ Can Choose any Picking Like Receipts, + Delivery Orders, Returns, etc. + +

+
+
+

+

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

+ Here Going to Merge the Same Partner's Same + State Pickings ie, WH/IN/00003 & WH/IN/00004 + + +

+
+
+

+

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

+ + The Details of WH/IN/00004 + +

+
+
+

+

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

+ + The Details of WH/IN/00003 + +

+
+
+

+

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

+ + Select the Picking Orders for Merging + +

+
+
+

+

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

+ + When Selected Pickings, There Will be an + Option for Merge Under The Action + Menu + +

+
+
+

+

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

+ + Merge Popup Window, Shows Selected Pickings + and How to Use it + +

+
+
+

+

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

+ + A New Picking Will be Created With Source + Document Detail as Merged Pickings and + Merged Picking Canceled. + +

+
+
+

+

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

+ + The Newly Created Picking. The Source + Document Shows The Merged Pickings + +

+
+
+

+

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

+ + The Merging Window Also as an Option for + Merging to Selected Picking, Thus a New + Picking Will Not be Created, Instead of That + Picking Lines Merged to The Selected Picking + Order + +

+
+
+

+

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

+ + Except for The Selected Picking, All Other + Pickings Will be Canceled + +

+
+
+

+

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

+ + Details of Merged Picking Order. The Source + Document Field Shows The Names of The Merged + Records + +

+
+
+

+

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

+ + Access Error When Try To Merge Single Picking + +

+
+
+

+

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

+ + Error When Merging Done State Picking. + +

+
+
+

+

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

+ + Error When Try to Merge Pickings in Different Stages + +

+
+
+

+

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

+ + Error When Try to Merge Different Type Pickings + +

+
+
+

+

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

+ Easy to Manage Delivery Orders, Receipts, Returns etc... +

+
+
+

+

+
+
+
+
+
+
+
+ +
+

+ Simply Select And Merge.

+
+
+

+

+
+
+
+
+
+
+
+ +
+

+ Create Single Picking from Existing Large Number of Pickings.

+
+
+

+

+
+
+
+
+
+
+
+ +
+

+ Option to Merge to Existing Picking Order.

+
+
+

+

+
+
+
+
+
+
+
+ +
+

+ Track Merged Picking Using Source Document Field.

+
+
+

+

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

+ Yes, the module + supports connecting + multiple APIs for + syncing different + contact lists or + accounts. +

+
+
+ +
+ +
+

+ This module allows + seamless integration + between Odoo and + Mailercloud, + enabling + synchronization of + contacts. +

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

+ Latest Release 18.0.1.0.0 +

+ + 28th January, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • +
+
+
+
+
+
+
+
+
+
+ + + + + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/merge_picking_orders/wizard/__init__.py b/merge_picking_orders/wizard/__init__.py new file mode 100644 index 000000000..1d6190a39 --- /dev/null +++ b/merge_picking_orders/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Sreerag PM(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 merge_picking diff --git a/merge_picking_orders/wizard/merge_picking.py b/merge_picking_orders/wizard/merge_picking.py new file mode 100644 index 000000000..e2410ac2f --- /dev/null +++ b/merge_picking_orders/wizard/merge_picking.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Sreerag PM(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from odoo import fields, models, _ +from odoo.exceptions import AccessError + + +class MergePicking(models.TransientModel): + """ + Class for wizard to show selected pickings to merge + Method: + action_merge(self): + Method to merge the selected pickings + """ + _name = 'merge.picking' + _description = "Merge Picking Wizard" + + merge_picking_ids = fields.Many2many('stock.picking', string='Orders', + help="Selected orders") + existing_pick_id = fields.Many2one( + 'stock.picking', string="Merge to existing", + help="Select a pick if you want to merge pickings to a existing picking" + " else leave it as empty") + + def action_merge(self): + """ + Main method to merge selected pickings + - If checked 'merge to existing' then the selected pickings will be + merged to last record + - Else a new record will be created with the existing picking lines + - The selected pickings will be moved to cancelled state + - The newly created picking will be in ready state + """ + # Checking for exceptions if exist raise corresponding messages + if len(list(set(x.partner_id if x.partner_id else None for x in + self.merge_picking_ids))) > 1: + raise AccessError(_("Merging is not allowed on Different partners," + " please add same partner's orders")) + if len(list(set(self.merge_picking_ids.mapped('picking_type_id')))) > 1: + raise AccessError( + _("Merging is not allowed on Different picking type," + " please choose same type")) + if any(state in ['done', 'cancel'] for state in + self.merge_picking_ids.mapped('state')): + raise AccessError(_('Merging is not allowed on Done/Cancelled ' + 'pickings, so please remove them and continue')) + if len(list(set(self.merge_picking_ids.mapped('state')))) > 1: + raise AccessError(_('Merging is not allowed on Different State ' + 'Pickings, please add orders in same State')) + if len(self.merge_picking_ids) == 1: + raise AccessError(_('Merging is not allowed on Single picking,' + ' please add minimum Two')) + # If there is no exception, continues with the merging process + source_document = [] + if self.existing_pick_id: + main_pick = self.existing_pick_id + orders = self.merge_picking_ids-main_pick + moves = main_pick.move_ids + source_document.append(main_pick.name) + else: + orders = self.merge_picking_ids + moves = self.env['stock.move'] + main_pick = orders[0].copy({'move_ids': None}) + for record in orders: + for line in record.move_ids: + moves += line.copy({'picking_id': main_pick.id}) + source_document.append(record.name) + record.action_cancel() + main_pick.write( + {'origin': f"Merged ({(', '.join(source_document))})"}) + main_pick.action_confirm() diff --git a/merge_picking_orders/wizard/merge_picking_views.xml b/merge_picking_orders/wizard/merge_picking_views.xml new file mode 100644 index 000000000..76c5376fc --- /dev/null +++ b/merge_picking_orders/wizard/merge_picking_views.xml @@ -0,0 +1,35 @@ + + + + + merge.picking.view.form + merge.picking + +
+ +

When selecting pickings for merging, +
+ * Merging is not allowed in a single picking and Done + state picking +
+ * Pickings should be of the same partners, same types, + same states +

+ + + + + + +
+
+
+
+