diff --git a/product_management_system/README.rst b/product_management_system/README.rst new file mode 100644 index 000000000..a1f3d8bb0 --- /dev/null +++ b/product_management_system/README.rst @@ -0,0 +1,44 @@ +.. 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 + +Product Management System +========================== + +* This module helps in product management system. + +Configuration +============ +- No additional configuration required + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developer: (V16) Amaya Aravind EV, Ashwin A +* Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ \ No newline at end of file diff --git a/product_management_system/__init__.py b/product_management_system/__init__.py new file mode 100644 index 000000000..87d985e08 --- /dev/null +++ b/product_management_system/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 wizard diff --git a/product_management_system/__manifest__.py b/product_management_system/__manifest__.py new file mode 100644 index 000000000..484db7166 --- /dev/null +++ b/product_management_system/__manifest__.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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': 'Product Management System', + 'version': '16.0.1.0.0', + 'category': 'Warehouse , Extra Tools', + 'summary': """This module helps in product management system.""", + 'description': """ Mass actions are operations that might be proceeded for + a number of product templates in batch. The tool offers multiple default + actions, among which you can select the required ones.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['product', 'website_sale', 'purchase', 'stock'], + 'data': [ + 'security/product_management_system_groups.xml', + 'security/ir.model.access.csv', + 'views/product_management_system_views.xml', + 'views/product_management_system_menus.xml', + 'wizard/product_add_vendor.xml', + 'wizard/product_category_change_views.xml', + 'wizard/product_update_price_views.xml', + 'wizard/product_make_purchasable_views.xml', + 'wizard/product_make_salable_views.xml', + 'wizard/product_delete_views.xml', + 'wizard/product_alternative_views.xml', + 'wizard/product_archive_views.xml', + 'wizard/product_accessory_views.xml', + 'wizard/product_optional_views.xml', + 'wizard/product_invoice_views.xml', + 'wizard/product_customer_tax_views.xml', + 'wizard/product_vendor_tax_views.xml', + 'wizard/product_publish_views.xml', + 'wizard/product_category_website_views.xml', + 'wizard/product_add_attribute_views.xml', + 'wizard/product_change_tracking_views.xml', + 'wizard/product_production_location_views.xml', + 'wizard/product_inventory_location_views.xml', + 'wizard/product_customer_lead_time_views.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'product_management_system/static/src/css/**.css', + 'product_management_system/static/src/xml/**.xml', + 'product_management_system/static/src/js/**.js', + ] + }, + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/product_management_system/doc/RELEASE_NOTES.md b/product_management_system/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..062dae864 --- /dev/null +++ b/product_management_system/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 04.05.2024 +#### Version 16.0.1.0.0 +#### ADD + +- Initial Commit for Product Management System diff --git a/product_management_system/security/ir.model.access.csv b/product_management_system/security/ir.model.access.csv new file mode 100644 index 000000000..c206d4e04 --- /dev/null +++ b/product_management_system/security/ir.model.access.csv @@ -0,0 +1,23 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_product_delete,product.delete,model_product_delete,base.group_user,1,1,1,1 +access_product_category_change,product.category.change,model_product_category_change,base.group_user,1,1,1,1 +access_product_update_price,product.update.price,model_product_update_price,base.group_user,1,1,1,1 +access_product_vendor,product.vendor,model_product_vendor,base.group_user,1,1,1,1 +access_product_add_vendor,product.add.vendor,model_product_add_vendor,base.group_user,1,1,1,1 +access_product_make_purchasable,product.make.purchasable,model_product_make_purchasable,base.group_user,1,1,1,1 +access_product_make_salable,product.make.salable,model_product_make_salable,base.group_user,1,1,1,1 +access_product_archive,product.archive,model_product_archive,base.group_user,1,1,1,1 +access_product_alternative,product.alternative,model_product_alternative,base.group_user,1,1,1,1 +access_product_accessory,product.accessory,model_product_accessory,base.group_user,1,1,1,1 +access_product_optional,product.optional,model_product_optional,base.group_user,1,1,1,1 +access_product_invoice,product.invoice,model_product_invoice,base.group_user,1,1,1,1 +access_product_customer_tax,product.customer.tax,model_product_customer_tax,base.group_user,1,1,1,1 +access_product_vendor_tax,product.vendor.tax,model_product_vendor_tax,base.group_user,1,1,1,1 +access_product_publish,product.publish,model_product_publish,base.group_user,1,1,1,1 +access_product_category_website,product.category.website,model_product_category_website,base.group_user,1,1,1,1 +access_product_add_attribute,product.add.attribute,model_product_add_attribute,base.group_user,1,1,1,1 +access_product_management_attribute,product.management.attribute,model_product_management_attribute,base.group_user,1,1,1,1 +access_product_change_tracking,product.change.tracking,model_product_change_tracking,base.group_user,1,1,1,1 +access_product_production_location,product.production.location,model_product_production_location,base.group_user,1,1,1,1 +access_product_inventory_location,product.inventory.location,model_product_inventory_location,base.group_user,1,1,1,1 +access_product_customer_lead_time,product.customer.lead.time,model_product_customer_lead_time,base.group_user,1,1,1,1 diff --git a/product_management_system/security/product_management_system_groups.xml b/product_management_system/security/product_management_system_groups.xml new file mode 100644 index 000000000..5b5d329e8 --- /dev/null +++ b/product_management_system/security/product_management_system_groups.xml @@ -0,0 +1,8 @@ + + + + + Product Management + + + diff --git a/product_management_system/static/description/assets/icons/cogs.png b/product_management_system/static/description/assets/icons/cogs.png new file mode 100755 index 000000000..95d0bad62 Binary files /dev/null and b/product_management_system/static/description/assets/icons/cogs.png differ diff --git a/product_management_system/static/description/assets/icons/consultation.png b/product_management_system/static/description/assets/icons/consultation.png new file mode 100755 index 000000000..8319d4baa Binary files /dev/null and b/product_management_system/static/description/assets/icons/consultation.png differ diff --git a/product_management_system/static/description/assets/icons/ecom-black.png b/product_management_system/static/description/assets/icons/ecom-black.png new file mode 100755 index 000000000..a9385ff13 Binary files /dev/null and b/product_management_system/static/description/assets/icons/ecom-black.png differ diff --git a/product_management_system/static/description/assets/icons/education-black.png b/product_management_system/static/description/assets/icons/education-black.png new file mode 100755 index 000000000..3eb09b27b Binary files /dev/null and b/product_management_system/static/description/assets/icons/education-black.png differ diff --git a/product_management_system/static/description/assets/icons/hotel-black.png b/product_management_system/static/description/assets/icons/hotel-black.png new file mode 100755 index 000000000..130f613be Binary files /dev/null and b/product_management_system/static/description/assets/icons/hotel-black.png differ diff --git a/product_management_system/static/description/assets/icons/license.png b/product_management_system/static/description/assets/icons/license.png new file mode 100755 index 000000000..a5869797e Binary files /dev/null and b/product_management_system/static/description/assets/icons/license.png differ diff --git a/product_management_system/static/description/assets/icons/lifebuoy.png b/product_management_system/static/description/assets/icons/lifebuoy.png new file mode 100755 index 000000000..658d56ccc Binary files /dev/null and b/product_management_system/static/description/assets/icons/lifebuoy.png differ diff --git a/product_management_system/static/description/assets/icons/manufacturing-black.png b/product_management_system/static/description/assets/icons/manufacturing-black.png new file mode 100755 index 000000000..697eb0e9f Binary files /dev/null and b/product_management_system/static/description/assets/icons/manufacturing-black.png differ diff --git a/product_management_system/static/description/assets/icons/pos-black.png b/product_management_system/static/description/assets/icons/pos-black.png new file mode 100755 index 000000000..97c0f90c1 Binary files /dev/null and b/product_management_system/static/description/assets/icons/pos-black.png differ diff --git a/product_management_system/static/description/assets/icons/puzzle.png b/product_management_system/static/description/assets/icons/puzzle.png new file mode 100755 index 000000000..65cf854e7 Binary files /dev/null and b/product_management_system/static/description/assets/icons/puzzle.png differ diff --git a/product_management_system/static/description/assets/icons/restaurant-black.png b/product_management_system/static/description/assets/icons/restaurant-black.png new file mode 100755 index 000000000..4a35eb939 Binary files /dev/null and b/product_management_system/static/description/assets/icons/restaurant-black.png differ diff --git a/product_management_system/static/description/assets/icons/service-black.png b/product_management_system/static/description/assets/icons/service-black.png new file mode 100755 index 000000000..301ab51cb Binary files /dev/null and b/product_management_system/static/description/assets/icons/service-black.png differ diff --git a/product_management_system/static/description/assets/icons/trading-black.png b/product_management_system/static/description/assets/icons/trading-black.png new file mode 100755 index 000000000..9398ba2f1 Binary files /dev/null and b/product_management_system/static/description/assets/icons/trading-black.png differ diff --git a/product_management_system/static/description/assets/icons/training.png b/product_management_system/static/description/assets/icons/training.png new file mode 100755 index 000000000..884ca024d Binary files /dev/null and b/product_management_system/static/description/assets/icons/training.png differ diff --git a/product_management_system/static/description/assets/icons/update.png b/product_management_system/static/description/assets/icons/update.png new file mode 100755 index 000000000..ecbc5a01a Binary files /dev/null and b/product_management_system/static/description/assets/icons/update.png differ diff --git a/product_management_system/static/description/assets/icons/user.png b/product_management_system/static/description/assets/icons/user.png new file mode 100755 index 000000000..6ffb23d9f Binary files /dev/null and b/product_management_system/static/description/assets/icons/user.png differ diff --git a/product_management_system/static/description/assets/icons/wrench.png b/product_management_system/static/description/assets/icons/wrench.png new file mode 100755 index 000000000..6c04dea0f Binary files /dev/null and b/product_management_system/static/description/assets/icons/wrench.png differ diff --git a/product_management_system/static/description/assets/misc/categories.png b/product_management_system/static/description/assets/misc/categories.png new file mode 100755 index 000000000..bedf1e0b1 Binary files /dev/null and b/product_management_system/static/description/assets/misc/categories.png differ diff --git a/product_management_system/static/description/assets/misc/check-box.png b/product_management_system/static/description/assets/misc/check-box.png new file mode 100755 index 000000000..42caf24b9 Binary files /dev/null and b/product_management_system/static/description/assets/misc/check-box.png differ diff --git a/product_management_system/static/description/assets/misc/compass.png b/product_management_system/static/description/assets/misc/compass.png new file mode 100755 index 000000000..d5fed8faa Binary files /dev/null and b/product_management_system/static/description/assets/misc/compass.png differ diff --git a/product_management_system/static/description/assets/misc/config.png b/product_management_system/static/description/assets/misc/config.png new file mode 100755 index 000000000..71915e76c Binary files /dev/null and b/product_management_system/static/description/assets/misc/config.png differ diff --git a/product_management_system/static/description/assets/misc/corporate.png b/product_management_system/static/description/assets/misc/corporate.png new file mode 100755 index 000000000..2eb13edbf Binary files /dev/null and b/product_management_system/static/description/assets/misc/corporate.png differ diff --git a/product_management_system/static/description/assets/misc/customer-support.png b/product_management_system/static/description/assets/misc/customer-support.png new file mode 100755 index 000000000..79efc72ed Binary files /dev/null and b/product_management_system/static/description/assets/misc/customer-support.png differ diff --git a/product_management_system/static/description/assets/misc/features.png b/product_management_system/static/description/assets/misc/features.png new file mode 100755 index 000000000..b41769f77 Binary files /dev/null and b/product_management_system/static/description/assets/misc/features.png differ diff --git a/product_management_system/static/description/assets/misc/logo.png b/product_management_system/static/description/assets/misc/logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/product_management_system/static/description/assets/misc/logo.png differ diff --git a/product_management_system/static/description/assets/misc/pictures.png b/product_management_system/static/description/assets/misc/pictures.png new file mode 100755 index 000000000..56d255fe9 Binary files /dev/null and b/product_management_system/static/description/assets/misc/pictures.png differ diff --git a/product_management_system/static/description/assets/misc/pie-chart.png b/product_management_system/static/description/assets/misc/pie-chart.png new file mode 100755 index 000000000..426e05244 Binary files /dev/null and b/product_management_system/static/description/assets/misc/pie-chart.png differ diff --git a/product_management_system/static/description/assets/misc/right-arrow.png b/product_management_system/static/description/assets/misc/right-arrow.png new file mode 100755 index 000000000..730984a06 Binary files /dev/null and b/product_management_system/static/description/assets/misc/right-arrow.png differ diff --git a/product_management_system/static/description/assets/misc/star.png b/product_management_system/static/description/assets/misc/star.png new file mode 100755 index 000000000..2eb9ab29f Binary files /dev/null and b/product_management_system/static/description/assets/misc/star.png differ diff --git a/product_management_system/static/description/assets/misc/support.png b/product_management_system/static/description/assets/misc/support.png new file mode 100755 index 000000000..4f18b8b82 Binary files /dev/null and b/product_management_system/static/description/assets/misc/support.png differ diff --git a/product_management_system/static/description/assets/misc/whatsapp.png b/product_management_system/static/description/assets/misc/whatsapp.png new file mode 100755 index 000000000..d513a5356 Binary files /dev/null and b/product_management_system/static/description/assets/misc/whatsapp.png differ diff --git a/product_management_system/static/description/assets/modules/1.png b/product_management_system/static/description/assets/modules/1.png new file mode 100644 index 000000000..66e5f3dd1 Binary files /dev/null and b/product_management_system/static/description/assets/modules/1.png differ diff --git a/product_management_system/static/description/assets/modules/2.png b/product_management_system/static/description/assets/modules/2.png new file mode 100644 index 000000000..359d3e4d6 Binary files /dev/null and b/product_management_system/static/description/assets/modules/2.png differ diff --git a/product_management_system/static/description/assets/modules/3.png b/product_management_system/static/description/assets/modules/3.png new file mode 100644 index 000000000..d21466f5f Binary files /dev/null and b/product_management_system/static/description/assets/modules/3.png differ diff --git a/product_management_system/static/description/assets/modules/4.png b/product_management_system/static/description/assets/modules/4.png new file mode 100644 index 000000000..7a17f2667 Binary files /dev/null and b/product_management_system/static/description/assets/modules/4.png differ diff --git a/product_management_system/static/description/assets/modules/5.png b/product_management_system/static/description/assets/modules/5.png new file mode 100644 index 000000000..ac15216fb Binary files /dev/null and b/product_management_system/static/description/assets/modules/5.png differ diff --git a/product_management_system/static/description/assets/modules/6.png b/product_management_system/static/description/assets/modules/6.png new file mode 100644 index 000000000..9fd41e44d Binary files /dev/null and b/product_management_system/static/description/assets/modules/6.png differ diff --git a/product_management_system/static/description/assets/screenshots/1.png b/product_management_system/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..176a58bc2 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/1.png differ diff --git a/product_management_system/static/description/assets/screenshots/10.png b/product_management_system/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..54e6bf44b Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/10.png differ diff --git a/product_management_system/static/description/assets/screenshots/11.png b/product_management_system/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..e033fcad8 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/11.png differ diff --git a/product_management_system/static/description/assets/screenshots/12.png b/product_management_system/static/description/assets/screenshots/12.png new file mode 100644 index 000000000..cfd944bc4 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/12.png differ diff --git a/product_management_system/static/description/assets/screenshots/13.png b/product_management_system/static/description/assets/screenshots/13.png new file mode 100644 index 000000000..affa0f57b Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/13.png differ diff --git a/product_management_system/static/description/assets/screenshots/14.png b/product_management_system/static/description/assets/screenshots/14.png new file mode 100644 index 000000000..2e7d13a29 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/14.png differ diff --git a/product_management_system/static/description/assets/screenshots/15.png b/product_management_system/static/description/assets/screenshots/15.png new file mode 100644 index 000000000..49f16bc63 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/15.png differ diff --git a/product_management_system/static/description/assets/screenshots/16.png b/product_management_system/static/description/assets/screenshots/16.png new file mode 100644 index 000000000..625b28781 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/16.png differ diff --git a/product_management_system/static/description/assets/screenshots/2.png b/product_management_system/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..4529c8c86 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/2.png differ diff --git a/product_management_system/static/description/assets/screenshots/3.png b/product_management_system/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..15a1f7b95 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/3.png differ diff --git a/product_management_system/static/description/assets/screenshots/4.png b/product_management_system/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..9fa4e5d3d Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/4.png differ diff --git a/product_management_system/static/description/assets/screenshots/5.png b/product_management_system/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..5cef5ac9f Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/5.png differ diff --git a/product_management_system/static/description/assets/screenshots/6.png b/product_management_system/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..407929122 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/6.png differ diff --git a/product_management_system/static/description/assets/screenshots/7.png b/product_management_system/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..925d5dee5 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/7.png differ diff --git a/product_management_system/static/description/assets/screenshots/8.png b/product_management_system/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..fcf361894 Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/8.png differ diff --git a/product_management_system/static/description/assets/screenshots/9.png b/product_management_system/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..b70c2eb5a Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/9.png differ diff --git a/product_management_system/static/description/assets/screenshots/hero.png b/product_management_system/static/description/assets/screenshots/hero.png new file mode 100644 index 000000000..eaa8d0b2c Binary files /dev/null and b/product_management_system/static/description/assets/screenshots/hero.png differ diff --git a/product_management_system/static/description/banner.jpg b/product_management_system/static/description/banner.jpg new file mode 100644 index 000000000..07c69a3fd Binary files /dev/null and b/product_management_system/static/description/banner.jpg differ diff --git a/product_management_system/static/description/icon.png b/product_management_system/static/description/icon.png new file mode 100644 index 000000000..9cbc63a22 Binary files /dev/null and b/product_management_system/static/description/icon.png differ diff --git a/product_management_system/static/description/index.html b/product_management_system/static/description/index.html new file mode 100755 index 000000000..05b881986 --- /dev/null +++ b/product_management_system/static/description/index.html @@ -0,0 +1,786 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+ +

+ Product Management System +

+

This module helps in product management system.

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

+ Explore This + Module

+
+ + + + +
+
+ +
+

+ Overview +

+
+
+
+ Mass actions and operations that might be proceeded for a number of + product templates in batch. + The tool offers multiple default actions, among which you can select the + required ones. +
+
+ + + +
+
+ +
+

+ Features +

+
+
+
+
+ +
+ Change the product category of all selected items. +
+
+
+ +
+ Change the product customer lead time of all selected items. +
+
+ +
+ +
+ Archive products in bulk. +
+
+
+ +
+ Update the product sales price of all selected items. +
+
+
+ +
+ Add product vendors for all selected items. +
+
+
+ +
+ Make product salable and purchasable for all selected items. +
+
+
+ +
+ Delete all selected products. +
+
+
+ +
+ Publish or unpublish products in batch. +
+
+
+ +
+ Add Alternative products for all selected items. +
+
+
+ +
+ Add Accessory products for all selected items. +
+
+
+ +
+ Add Optional products for all selected items. +
+
+
+ +
+ Change invoice policy of all selected items. +
+
+
+ +
+ Add Customer/Vendor taxes for all selected items. +
+
+
+ +
+ Change website product category of all selected items. +
+
+
+ +
+ Add Attribute & Variants for all selected items. +
+
+
+ +
+ Change product tracking for all selected items. +
+
+
+ +
+ Change Production/Inventory location for all selected items. +
+
+
+
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+
+

+ User Configuration

+

Settings -> Users -> Turn on Product Management

+ +
+
+

+ Kanban View Of Products

+ +
+
+

+ By selecting Products in kanban view a new list of buttons will be shown

+

+ We can perform different actions for the selected products.

+ +
+
+

+ Change Product Category

+

+ By clicking the change category button a wizard appear for changing category of selected products.

+ +
+
+

+ Change Customer Lead Time

+ +
+
+

+ Archive Products

+

+ +

+
+

+ Update Sale Price Of Selected Products

+ +
+
+

+ Add Vendors For Selected Products

+ +
+
+

+ Make Product Salable

+ +
+
+

+ Add Alternative Products For Selected Products

+ +
+
+

+ Edit Invoice Policy Of Selected Products

+ +
+
+

+ Change Customer Tax Of Selected Products

+ +
+
+

+ Change Website Category Of Selected Products

+ +
+
+

+ Add Product Attributes

+ +
+
+

+ Change Product Tracking Method Of Selected Products

+ +
+
+

+ Change Production Location Of Selected Products

+ +
+ +
+
+ + + +
+
+

Suggested 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/product_management_system/static/src/css/product_management.css b/product_management_system/static/src/css/product_management.css new file mode 100644 index 000000000..2463bffa8 --- /dev/null +++ b/product_management_system/static/src/css/product_management.css @@ -0,0 +1,3 @@ +.o_cp_bottom_right{ + height: fit-content; +} diff --git a/product_management_system/static/src/js/product_management_system.js b/product_management_system/static/src/js/product_management_system.js new file mode 100644 index 000000000..7199a4d01 --- /dev/null +++ b/product_management_system/static/src/js/product_management_system.js @@ -0,0 +1,364 @@ +/** @odoo-module **/ + +var KanbanController = require('web.KanbanController'); +var KanbanView = require('web.KanbanView'); +var viewRegistry = require('web.view_registry'); +var products_selected = []; + +var KanbanButton = KanbanController.extend({ +// Extending KanbanController and Creating buttons and its functions + buttons_template: 'button_in_kanban.button', + events: _.extend({}, KanbanController.prototype.events, { + 'click .product_check_box': '_onSelectDocs', + 'click .on_change_category': '_onChangeCategory', + 'click .on_customer_lead_time_products': '_onCustLeadTimeProducts', + 'click .on_archive_products': '_onArchiveProducts', + 'click .on_update_price': '_onUpdatePrice', + 'click .on_add_vendor': '_onAddVendor', + 'click .on_make_salable': '_onMakeSalable', + 'click .on_make_purchasable': '_onMakePurchasable', + 'click .on_delete_products': '_onDeleteProducts', + 'click .on_alternative_products': '_onAlternativeProducts', + 'click .on_accessory_products': '_onAccessoryProducts', + 'click .on_optional_products': '_onOptionalProducts', + 'click .on_edit_invoice_policy_products': '_onEditInvoicePolicyProducts', + 'click .on_add_cust_tax_products': '_onAddCustomerTaxProducts', + 'click .on_add_vendor_tax_products': '_onAddVendorTaxProducts', + 'click .on_publish_products': '_onPublishProducts', + 'click .on_change_web_category_products': '_onWebCategChangeProducts', + 'click .on_add_attribute_products': '_onAddAttributeProducts', + 'click .on_change_tracking_products': '_onChangeTrackingProducts', + 'click .change_production_location_products': '_onChangeProductionLocation', + 'click .change_inventory_location_products': '_onChangeInventoryLocation', + }), + + start: function(){ + return this._super().then(function() {}) + }, + + _onSelectDocs: function(ev){ + // Function for selecting products and appending in the products_selected list + var toast = $('.toast') + var checked = $(ev.target).is(':checked'); + var record_id =parseInt($(ev.target).data('id')); + if (checked){ + toast.addClass('show'); + toast.css("display","inline"); + products_selected.push(record_id); + } + else{ + let index = products_selected.indexOf(record_id); + products_selected.splice(index, 1) + if ( products_selected.length == 0){ + toast.css("display",""); + toast.removeClass('show'); + } + } + }, + + _onChangeCategory: function(ev){ + // Function for changing category of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Category', + res_model: 'product.category.change', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onCustLeadTimeProducts: function(ev){ + // Function for changing Customer Lead Time of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Customer Lead Time', + res_model: 'product.customer.lead.time', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onArchiveProducts: function(ev){ + // Function for changing Archive Product of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Archive Product', + res_model: 'product.archive', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onUpdatePrice: function(ev){ + // Function for changing Update Price of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Update Price', + res_model: 'product.update.price', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onAddVendor: function(ev){ + // Function for changing Add Vendor of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Add Vendor', + res_model: 'product.add.vendor', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onMakeSalable: function(ev){ + // Function for Make Salable of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Make Products Salable', + res_model: 'product.make.salable', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onMakePurchasable: function(ev){ + // Function for Make Purchasable of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Make Products Purchasable', + res_model: 'product.make.purchasable', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onDeleteProducts: function(ev){ + // Function for Deleting the selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Delete Product', + res_model: 'product.delete', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onPublishProducts : function(ev){ + // Function for Publish On Website of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Publish On Website', + res_model: 'product.publish', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onAlternativeProducts: function(ev){ + // Function for Adding Alternative Product of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Add Alternative Product', + res_model: 'product.alternative', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onAccessoryProducts: function(ev){ + // Function for Adding Accessory Product of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Add Accessory Product', + res_model: 'product.accessory', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onOptionalProducts: function(ev){ + // Function for Adding Optional Product of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Add Optional Product', + res_model: 'product.optional', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onEditInvoicePolicyProducts:function(ev){ + // Function for Editing Invoice Policy of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Edit Invoice Policy', + res_model: 'product.invoice', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onAddCustomerTaxProducts: function(ev){ + // Function for Changing Customer Tax of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Customer Tax', + res_model: 'product.customer.tax', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onAddVendorTaxProducts: function(ev){ + // Function for Changing Vendor Tax of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Vendor Tax', + res_model: 'product.vendor.tax', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onWebCategChangeProducts: function(ev){ + // Function for Changing Category On Website of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Category On Website', + res_model: 'product.category.website', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + _onAddAttributeProducts : function(ev){ + // Function for Adding Product Attributes of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Add Product Attributes', + res_model: 'product.add.attribute', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onChangeTrackingProducts: function(ev){ + // Function for Changing Product Tracking of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Product Tracking', + res_model: 'product.change.tracking', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onChangeProductionLocation: function(ev){ + // Function for Changing Production Location of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Production Location', + res_model: 'product.production.location', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, + + _onChangeInventoryLocation: function(ev){ + // Function for Changing Inventory Location of selected products + this.do_action({ + type: 'ir.actions.act_window', + name: 'Change Inventory Location', + res_model: 'product.inventory.location', + view_mode: 'form', + views: [[false, 'form']], + target: 'new', + context: { + 'default_product_ids': products_selected, + }, + }); + }, +}); + +var ProductKanbanView = KanbanView.extend({ + config: _.extend({}, KanbanView.prototype.config, { + Controller: KanbanButton, + }), +}); +viewRegistry.add('product_management_kanban_view', ProductKanbanView); diff --git a/product_management_system/static/src/xml/product_management_system.xml b/product_management_system/static/src/xml/product_management_system.xml new file mode 100644 index 000000000..2cfc36685 --- /dev/null +++ b/product_management_system/static/src/xml/product_management_system.xml @@ -0,0 +1,151 @@ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
diff --git a/product_management_system/views/product_management_system_menus.xml b/product_management_system/views/product_management_system_menus.xml new file mode 100644 index 000000000..9d63e4fb8 --- /dev/null +++ b/product_management_system/views/product_management_system_menus.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/product_management_system/views/product_management_system_views.xml b/product_management_system/views/product_management_system_views.xml new file mode 100644 index 000000000..313d44ac1 --- /dev/null +++ b/product_management_system/views/product_management_system_views.xml @@ -0,0 +1,106 @@ + + + + + product.template.search + product.template + + + + + + + + + + + + + Product.template.view.kanban + product.template + + + + + + + + + +
+
+ Product +
+
+
+
+ + + + + + [] + +
+ +
+
+ Category: +
+ + + Variants + +
+
+ Price: + + +
+
+ Type :
+ Invoice Policy :
+ + Can be sold
+ + Can be Purchased
+ + Website Published +
+
+
+
+
+
+
+
+ + + Product Management + ir.actions.act_window + product.template + kanban + + + +

+ Create a new product +

+
+
+
diff --git a/product_management_system/wizard/__init__.py b/product_management_system/wizard/__init__.py new file mode 100644 index 000000000..d06f176f8 --- /dev/null +++ b/product_management_system/wizard/__init__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 product_accessory +from . import product_add_attribute +from . import product_add_vendor +from . import product_alternative +from . import product_archive +from . import product_category_change +from . import product_category_website +from . import product_change_tracking +from . import product_customer_lead_time +from . import product_customer_tax +from . import product_delete +from . import product_inventory_location +from . import product_invoice +from . import product_make_purchasable +from . import product_make_salable +from . import product_optional +from . import product_production_location +from . import product_publish +from . import product_update_price +from . import product_vendor_tax diff --git a/product_management_system/wizard/product_accessory.py b/product_management_system/wizard/product_accessory.py new file mode 100644 index 000000000..64b04643d --- /dev/null +++ b/product_management_system/wizard/product_accessory.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductAccessory(models.TransientModel): + """ + Model for adding Accessory Products + """ + _name = 'product.accessory' + _description = 'Product Accessory' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + accessory_ids = fields.Many2many('product.product', + string="Accessory Products", + help='Products wanted to added as Accessory Products') + + def action_add_accessory_products(self): + """ + Function for adding Accessory Products for the selected products + """ + if self.product_ids and self.accessory_ids: + for products in self.product_ids: + for items in self.accessory_ids: + products.accessory_product_ids = [ + fields.Command.link(items.id)] diff --git a/product_management_system/wizard/product_accessory_views.xml b/product_management_system/wizard/product_accessory_views.xml new file mode 100644 index 000000000..e3c39651f --- /dev/null +++ b/product_management_system/wizard/product_accessory_views.xml @@ -0,0 +1,22 @@ + + + + + product.accessory.view.form + product.accessory + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_add_attribute.py b/product_management_system/wizard/product_add_attribute.py new file mode 100644 index 000000000..06f6d5987 --- /dev/null +++ b/product_management_system/wizard/product_add_attribute.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductAddAttribute(models.TransientModel): + """ + Model for adding Attributes and Variants + """ + _name = 'product.add.attribute' + _description = 'Product Add Attribute' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + attribute_line_ids = fields.One2many('product.management.attribute', + 'wizard_id', + string="Product Attributes", + help='Attribute Lines') + + def action_add_product_attributes(self): + """ + Function for adding Attributes and Variants for Selected Products + """ + if self.product_ids and self.attribute_line_ids: + for products in self.product_ids: + for line in self.attribute_line_ids: + products.attribute_line_ids = [fields.Command.create({ + 'attribute_id': line.attribute_id.id, + 'value_ids': line.value_ids, + })] + + +class ProductAttribute(models.TransientModel): + """ + Model for attribute_lines for the model product.add.attribute + """ + _name = 'product.management.attribute' + _description = 'Product Attributes' + + attribute_id = fields.Many2one('product.attribute', + string='Attribute', + help='Attribute ID') + value_ids = fields.Many2many('product.attribute.value', + string='Values', + help='Attribute Values', + domain="[('attribute_id','=',attribute_id)]") + wizard_id = fields.Many2one('product.add.attribute', + string='ID', + help='Wizard ID') diff --git a/product_management_system/wizard/product_add_attribute_views.xml b/product_management_system/wizard/product_add_attribute_views.xml new file mode 100644 index 000000000..1dbca9845 --- /dev/null +++ b/product_management_system/wizard/product_add_attribute_views.xml @@ -0,0 +1,31 @@ + + + + + product.add.attribute.view.form + product.add.attribute + +
+ + + + + + + + + + + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_add_vendor.py b/product_management_system/wizard/product_add_vendor.py new file mode 100644 index 000000000..4b6b77ae0 --- /dev/null +++ b/product_management_system/wizard/product_add_vendor.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductAddVendor(models.TransientModel): + """ + Model for adding seller_ids (product vendors) + """ + _name = 'product.add.vendor' + _description = 'Product Add Vendors' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + vendor_ids = fields.One2many('product.vendor', 'wizard_id', + string="Product Attributes", + help='Product Vendors') + + def action_add_product_vendors(self): + """ + Function for adding seller_ids (product vendors) for Selected Products + """ + if self.product_ids and self.vendor_ids: + for products in self.product_ids: + for vendor in self.vendor_ids: + products.seller_ids = [fields.Command.create({ + 'partner_id': vendor.partner_id.id, + 'price': vendor.price, + 'currency_id': vendor.currency_id.id, + 'delay': vendor.delay, + })] + + +class ProductAttribute(models.TransientModel): + _name = 'product.vendor' + _description = 'Product Vendors' + + partner_id = fields.Many2one('res.partner', + string='Vendor', + help='Partner ID') + price = fields.Float(string='Price', help='Price', + required=True) + delay = fields.Integer(string='Delivery Lead Time', + help='Delivery Lead Time', required=True) + currency_id = fields.Many2one('res.currency', string='Currency', + help='Currency', required=True) + wizard_id = fields.Many2one('product.add.vendor', string='ID', + help='Wizard ID') diff --git a/product_management_system/wizard/product_add_vendor.xml b/product_management_system/wizard/product_add_vendor.xml new file mode 100644 index 000000000..673b6a8dc --- /dev/null +++ b/product_management_system/wizard/product_add_vendor.xml @@ -0,0 +1,33 @@ + + + + + product.add.vendor.view.form + product.add.vendor + +
+ + + + + + + + + + + + + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_alternative.py b/product_management_system/wizard/product_alternative.py new file mode 100644 index 000000000..32d8ad8c8 --- /dev/null +++ b/product_management_system/wizard/product_alternative.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductAlternative(models.TransientModel): + """ + Model for adding alternative products + """ + _name = 'product.alternative' + _description = 'Alternative Product' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + alternative_ids = fields.Many2many('product.template', + 'product_management_alternative_rel', + string="Alternative Products", + help='Alternative Products', + domain="[('id', 'not in', product_ids)]") + + def action_add_alternative_products(self): + """ + Function for adding alternative products for Selected Products + """ + if self.product_ids and self.alternative_ids: + for products in self.product_ids: + for items in self.alternative_ids: + products.alternative_product_ids = [ + fields.Command.link(items.id)] diff --git a/product_management_system/wizard/product_alternative_views.xml b/product_management_system/wizard/product_alternative_views.xml new file mode 100644 index 000000000..050dfa586 --- /dev/null +++ b/product_management_system/wizard/product_alternative_views.xml @@ -0,0 +1,22 @@ + + + + + product.alternative.view.form + product.alternative + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_archive.py b/product_management_system/wizard/product_archive.py new file mode 100644 index 000000000..6159bce03 --- /dev/null +++ b/product_management_system/wizard/product_archive.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductArchive(models.TransientModel): + """ + Model for archiving products + """ + _name = 'product.archive' + _description = 'Archive Products' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + + def action_archive_product(self): + """ + Function for archiving Selected Products + """ + if self.product_ids: + for products in self.product_ids: + products.write({ + 'active': False + }) diff --git a/product_management_system/wizard/product_archive_views.xml b/product_management_system/wizard/product_archive_views.xml new file mode 100644 index 000000000..3f5316dd0 --- /dev/null +++ b/product_management_system/wizard/product_archive_views.xml @@ -0,0 +1,22 @@ + + + + + product.archive.view.form + product.archive + +
+ + + +

Do you want to make these products Archive?

+
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_category_change.py b/product_management_system/wizard/product_category_change.py new file mode 100644 index 000000000..397a105b0 --- /dev/null +++ b/product_management_system/wizard/product_category_change.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductCategoryChange(models.TransientModel): + """ + Model for changing category + """ + _name = 'product.category.change' + _description = 'Change Product Category' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + category_id = fields.Many2one('product.category', + string='New Category', + help='Category') + + def action_product_category_change_confirm(self): + """ + Function for changing category of Selected Products + """ + if self.product_ids and self.category_id: + for rec in self.product_ids: + rec.write({ + 'categ_id': self.category_id + }) diff --git a/product_management_system/wizard/product_category_change_views.xml b/product_management_system/wizard/product_category_change_views.xml new file mode 100644 index 000000000..fd66044d9 --- /dev/null +++ b/product_management_system/wizard/product_category_change_views.xml @@ -0,0 +1,26 @@ + + + + + product.category.change.view.form + product.category.change + +
+ + + + + + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_category_website.py b/product_management_system/wizard/product_category_website.py new file mode 100644 index 000000000..37223ef82 --- /dev/null +++ b/product_management_system/wizard/product_category_website.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductWebsiteCategory(models.TransientModel): + """ + Model for changing public_categ_ids (Website Category) + """ + _name = 'product.category.website' + _description = 'Product Website Category' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + public_categ_ids = fields.Many2many('product.public.category', + string="Website Product Category", + help='Select Product Category In Website') + + def action_change_website_category(self): + """ + Function for changing public_categ_ids (Website Category) of Selected Products + """ + if self.product_ids and self.public_categ_ids: + for products in self.product_ids: + for items in self.public_categ_ids: + products.public_categ_ids = [fields.Command.link(items.id)] diff --git a/product_management_system/wizard/product_category_website_views.xml b/product_management_system/wizard/product_category_website_views.xml new file mode 100644 index 000000000..2daf086d7 --- /dev/null +++ b/product_management_system/wizard/product_category_website_views.xml @@ -0,0 +1,22 @@ + + + + + product.category.website.view.form + product.category.website + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_change_tracking.py b/product_management_system/wizard/product_change_tracking.py new file mode 100644 index 000000000..27a446090 --- /dev/null +++ b/product_management_system/wizard/product_change_tracking.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductChangeTracking(models.TransientModel): + """ + Model for changing tracking method + """ + _name = 'product.change.tracking' + _description = 'Change Product Tracking Method' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + tracking = fields.Selection([ + ('serial', 'By Unique Serial Number'), + ('lot', 'By Lots'), + ('none', 'No Tracking')], + string='Tracking', + help='Select a tracking type', + default='none', required=True) + + def action_change_product_tracking(self): + """ + Function for changing tracking method of selected products + """ + if self.product_ids: + for products in self.product_ids: + products.write({'tracking': self.tracking}) diff --git a/product_management_system/wizard/product_change_tracking_views.xml b/product_management_system/wizard/product_change_tracking_views.xml new file mode 100644 index 000000000..08fe397af --- /dev/null +++ b/product_management_system/wizard/product_change_tracking_views.xml @@ -0,0 +1,22 @@ + + + + + product.change.tracking.view.form + product.change.tracking + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_customer_lead_time.py b/product_management_system/wizard/product_customer_lead_time.py new file mode 100644 index 000000000..3de1becd6 --- /dev/null +++ b/product_management_system/wizard/product_customer_lead_time.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductCustomerLeadTime(models.TransientModel): + """ + Model for changing sale_delay (Customer Lead Time) + """ + _name = 'product.customer.lead.time' + _description = 'Product Customer Lead Time' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + sale_delay = fields.Float(string='Customer Lead Time', + help='Delivery lead time in days') + + def action_change_customer_lead_time(self): + """ + Function for changing sale_delay (Customer Lead Time) of Selected Products + """ + if self.product_ids and self.sale_delay != 0: + for products in self.product_ids: + products.write({'sale_delay': self.sale_delay}) diff --git a/product_management_system/wizard/product_customer_lead_time_views.xml b/product_management_system/wizard/product_customer_lead_time_views.xml new file mode 100644 index 000000000..ce9320f5c --- /dev/null +++ b/product_management_system/wizard/product_customer_lead_time_views.xml @@ -0,0 +1,22 @@ + + + + + product.customer.lead.time.view.form + product.customer.lead.time + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_customer_tax.py b/product_management_system/wizard/product_customer_tax.py new file mode 100644 index 000000000..2b3960f9e --- /dev/null +++ b/product_management_system/wizard/product_customer_tax.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductCustomerTax(models.TransientModel): + """ + Model for changing tax_ids (Customer Tax) + """ + _name = 'product.customer.tax' + _description = 'Product Customer Tax' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + tax_ids = fields.Many2many('account.tax', + domain="[('type_tax_use', '=', 'sale')]", + string="Customer Tax", + help='Customer Tax') + + def action_change_customer_tax(self): + """ + Function for changing tax_ids (Customer Tax) of selected products + """ + if self.product_ids and self.tax_ids: + for products in self.product_ids: + for items in self.tax_ids: + products.taxes_id = [fields.Command.link(items.id)] diff --git a/product_management_system/wizard/product_customer_tax_views.xml b/product_management_system/wizard/product_customer_tax_views.xml new file mode 100644 index 000000000..6135a5fce --- /dev/null +++ b/product_management_system/wizard/product_customer_tax_views.xml @@ -0,0 +1,26 @@ + + + + + product.customer.tax.view.form + product.customer.tax + +
+ + + + + + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_delete.py b/product_management_system/wizard/product_delete.py new file mode 100644 index 000000000..181e3fa4c --- /dev/null +++ b/product_management_system/wizard/product_delete.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductDelete(models.TransientModel): + """ + Model for deleting products + """ + _name = 'product.delete' + _description = 'Product Delete' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + + def action_delete_product(self): + """ + Function for deleting selected products + """ + if self.product_ids: + for products in self.product_ids: + products.unlink() diff --git a/product_management_system/wizard/product_delete_views.xml b/product_management_system/wizard/product_delete_views.xml new file mode 100644 index 000000000..dc5893dad --- /dev/null +++ b/product_management_system/wizard/product_delete_views.xml @@ -0,0 +1,22 @@ + + + + + product.delete.view.form + product.delete + +
+ + + +

Do you want to make these products Delete?

+
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_inventory_location.py b/product_management_system/wizard/product_inventory_location.py new file mode 100644 index 000000000..7451fe9d2 --- /dev/null +++ b/product_management_system/wizard/product_inventory_location.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductInventoryLocation(models.TransientModel): + """ + Model for changing product inventory location + """ + _name = 'product.inventory.location' + _description = 'Product Inventory Location' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + inventory_location_id = fields.Many2one('stock.location', + string='Inventory Location', + help='Inventory location of the products', + domain="[('usage','=','inventory')]") + + def action_change_inventory_location(self): + """ + Function for changing product inventory location of selected products + """ + if self.product_ids and self.inventory_location_id: + for products in self.product_ids: + products.write( + {'property_stock_inventory': self.inventory_location_id}) diff --git a/product_management_system/wizard/product_inventory_location_views.xml b/product_management_system/wizard/product_inventory_location_views.xml new file mode 100644 index 000000000..b1cf26263 --- /dev/null +++ b/product_management_system/wizard/product_inventory_location_views.xml @@ -0,0 +1,23 @@ + + + + + product.inventory.location.view.form + product.inventory.location + +
+ + + + +
+
+
+
+
+ +
\ No newline at end of file diff --git a/product_management_system/wizard/product_invoice.py b/product_management_system/wizard/product_invoice.py new file mode 100644 index 000000000..b6f54f1d9 --- /dev/null +++ b/product_management_system/wizard/product_invoice.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductInvoice(models.TransientModel): + """ + Model for changing invoice policy + """ + _name = 'product.invoice' + _description = 'Product Invoice' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + invoice_policy = fields.Selection([ + ('order', 'Ordered Quantities'), + ('delivery', 'Delivered Quantities')], + string='Invoicing Policy', help='Invoice policy of the product', + default='order', required=True) + + def action_change_invoice_policy_products(self): + """ + Function for changing invoice policy of selected products + """ + if self.product_ids: + for products in self.product_ids: + products.write({'invoice_policy': self.invoice_policy}) diff --git a/product_management_system/wizard/product_invoice_views.xml b/product_management_system/wizard/product_invoice_views.xml new file mode 100644 index 000000000..93958848f --- /dev/null +++ b/product_management_system/wizard/product_invoice_views.xml @@ -0,0 +1,22 @@ + + + + + product.invoice.view.form + product.invoice + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_make_purchasable.py b/product_management_system/wizard/product_make_purchasable.py new file mode 100644 index 000000000..612dae04e --- /dev/null +++ b/product_management_system/wizard/product_make_purchasable.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductMakePurchasable(models.TransientModel): + """ + Model for making product purchasable + """ + _name = 'product.make.purchasable' + _description = 'Make Product Purchasable' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + + def action_product_make_purchasable_confirm(self): + """ + Function for making product purchasable + """ + if self.product_ids: + for rec in self.product_ids: + rec.write({ + 'purchase_ok': True + }) + + def action_product_make_purchasable_false(self): + """ + Function for making product not purchasable + """ + if self.product_ids: + for rec in self.product_ids: + rec.write({ + 'purchase_ok': False + }) diff --git a/product_management_system/wizard/product_make_purchasable_views.xml b/product_management_system/wizard/product_make_purchasable_views.xml new file mode 100644 index 000000000..ac5747ee6 --- /dev/null +++ b/product_management_system/wizard/product_make_purchasable_views.xml @@ -0,0 +1,24 @@ + + + + + product.make.purchasable.view.form + product.make.purchasable + +
+ + + +

Do you want to make these products purchasable?

+
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_make_salable.py b/product_management_system/wizard/product_make_salable.py new file mode 100644 index 000000000..4ec291a3a --- /dev/null +++ b/product_management_system/wizard/product_make_salable.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductMakeSaleable(models.TransientModel): + """ + Model for making product Salable + """ + _name = 'product.make.salable' + _description = 'Make Product Salable' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + + def action_product_make_salable_confirm(self): + """ + Function for making product Salable + """ + if self.product_ids: + for rec in self.product_ids: + rec.write({ + 'sale_ok': True + }) + + def action_product_make_salable_false(self): + """ + Function for making product not Salable + """ + if self.product_ids: + for rec in self.product_ids: + rec.write({ + 'sale_ok': False + }) diff --git a/product_management_system/wizard/product_make_salable_views.xml b/product_management_system/wizard/product_make_salable_views.xml new file mode 100644 index 000000000..49b54c2ed --- /dev/null +++ b/product_management_system/wizard/product_make_salable_views.xml @@ -0,0 +1,24 @@ + + + + + product.make.salable.view.form + product.make.salable + +
+ + + +

Do you want to make these products salable?

+
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_optional.py b/product_management_system/wizard/product_optional.py new file mode 100644 index 000000000..6e6e00ba2 --- /dev/null +++ b/product_management_system/wizard/product_optional.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductOptional(models.TransientModel): + """ + Model for adding optional products + """ + _name = 'product.optional' + _description = 'Optional Product' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + optional_ids = fields.Many2many('product.template', + string="Optional Products", + help='Optional Products', + relation="product_management_optional_rel", + domain="[('id', 'not in', product_ids)]") + + def action_add_optional_products(self): + """ + Function for adding optional products for selected products + """ + if self.product_ids and self.optional_ids: + for products in self.product_ids: + for items in self.optional_ids: + products.optional_product_ids = [ + fields.Command.link(items.id)] diff --git a/product_management_system/wizard/product_optional_views.xml b/product_management_system/wizard/product_optional_views.xml new file mode 100644 index 000000000..4cd578c34 --- /dev/null +++ b/product_management_system/wizard/product_optional_views.xml @@ -0,0 +1,22 @@ + + + + + product.optional.view.form + product.optional + +
+ + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_production_location.py b/product_management_system/wizard/product_production_location.py new file mode 100644 index 000000000..9ae48eac4 --- /dev/null +++ b/product_management_system/wizard/product_production_location.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductProductionLocation(models.TransientModel): + """ + Model for changing production location + """ + _name = 'product.production.location' + _description = 'Product Production Location' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + production_location_id = fields.Many2one('stock.location', + string='Production Location', + help='Production location of the products', + domain="[('usage','=','production')]") + + def action_change_production_location(self): + """ + Function for changing production location of the selected products + """ + if self.product_ids: + for products in self.product_ids: + products.write( + {'property_stock_production': self.production_location_id}) diff --git a/product_management_system/wizard/product_production_location_views.xml b/product_management_system/wizard/product_production_location_views.xml new file mode 100644 index 000000000..3fc839802 --- /dev/null +++ b/product_management_system/wizard/product_production_location_views.xml @@ -0,0 +1,23 @@ + + + + + product.production.location.view.form + product.production.location + +
+ + + + +
+
+
+
+
+ +
\ No newline at end of file diff --git a/product_management_system/wizard/product_publish.py b/product_management_system/wizard/product_publish.py new file mode 100644 index 000000000..943b089b9 --- /dev/null +++ b/product_management_system/wizard/product_publish.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductPublish(models.TransientModel): + """ + Model for making products publish on website + """ + _name = 'product.publish' + _description = 'Publish Products' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + + def action_publish_product(self): + """ + Function for making selected products publish on website + """ + if self.product_ids: + for products in self.product_ids: + products.write({'is_published': True}) + + def action_not_publish_product(self): + """ + Function for not making selected products publish on website + """ + if self.product_ids: + for products in self.product_ids: + products.write({'is_published': False}) diff --git a/product_management_system/wizard/product_publish_views.xml b/product_management_system/wizard/product_publish_views.xml new file mode 100644 index 000000000..3aaef20e0 --- /dev/null +++ b/product_management_system/wizard/product_publish_views.xml @@ -0,0 +1,24 @@ + + + + + product.publish.view.form + product.publish + +
+ + + +

Do you want to make these products Publish On Website ?

+
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_update_price.py b/product_management_system/wizard/product_update_price.py new file mode 100644 index 000000000..9d007d03b --- /dev/null +++ b/product_management_system/wizard/product_update_price.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductUpdatePrice(models.TransientModel): + """ + Model for updating price + """ + _name = 'product.update.price' + _description = 'Update Product Price' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + product_price = fields.Float(string='Price to change', + help='Price of the product') + + def action_product_update_price_confirm(self): + """ + Function for updating price of the selected products + """ + if self.product_ids: + for rec in self.product_ids: + rec.write({ + 'list_price': self.product_price if self.product_price != 0 else rec.list_price, + }) diff --git a/product_management_system/wizard/product_update_price_views.xml b/product_management_system/wizard/product_update_price_views.xml new file mode 100644 index 000000000..79fd3ecc7 --- /dev/null +++ b/product_management_system/wizard/product_update_price_views.xml @@ -0,0 +1,26 @@ + + + + + product.update.price.view.form + product.update.price + +
+ + + + + + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/product_management_system/wizard/product_vendor_tax.py b/product_management_system/wizard/product_vendor_tax.py new file mode 100644 index 000000000..f0ba30f39 --- /dev/null +++ b/product_management_system/wizard/product_vendor_tax.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technologies () +# +# 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 ProductVendorTax(models.TransientModel): + """ + Model for updating vendor tax + """ + _name = 'product.vendor.tax' + _description = 'Product Vendor Tax' + + product_ids = fields.Many2many('product.template', + string='Selected Products', + help='Products which are selected') + tax_ids = fields.Many2many('account.tax', + string="Vendor Tax", + help='Vendor tax of the product', + domain="[('type_tax_use', '=', 'purchase')]") + + def action_change_vendor_tax(self): + """ + Function for updating vendor tax of the selected products + """ + if self.product_ids and self.tax_ids: + for products in self.product_ids: + for items in self.tax_ids: + products.supplier_taxes_id = [fields.Command.link(items.id)] diff --git a/product_management_system/wizard/product_vendor_tax_views.xml b/product_management_system/wizard/product_vendor_tax_views.xml new file mode 100644 index 000000000..ab22a7219 --- /dev/null +++ b/product_management_system/wizard/product_vendor_tax_views.xml @@ -0,0 +1,26 @@ + + + + + product.vendor.tax.view.form + product.vendor.tax + +
+ + + + + + + + + +
+
+
+
\ No newline at end of file