diff --git a/auto_generate_lot_number/README.rst b/auto_generate_lot_number/README.rst new file mode 100755 index 000000000..c1015461c --- /dev/null +++ b/auto_generate_lot_number/README.rst @@ -0,0 +1,52 @@ +.. 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 + +Auto Generate Serial/Lot number +=============================== +This app allows you to automatically Generate and manage serial/lot number for products while +confirming the purchase order. + +Configuration +============= +- Additional configuration not required + +Installation +============ +- www.odoo.com/documentation/17.0/setup/install.html +- Install our custom addon + +License +------- +GNU AFFERO GENERAL PUBLIC LICENSE v3.0 (AGPL-3) +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +Developer: (V17) Nivedhya T 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/auto_generate_lot_number/__init__.py b/auto_generate_lot_number/__init__.py new file mode 100644 index 000000000..2eded5524 --- /dev/null +++ b/auto_generate_lot_number/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import models diff --git a/auto_generate_lot_number/__manifest__.py b/auto_generate_lot_number/__manifest__.py new file mode 100644 index 000000000..3d712e82a --- /dev/null +++ b/auto_generate_lot_number/__manifest__.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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": "Auto Generate Serial/Lot number", + "version": "17.0.1.0.0", + "category": "Purchases", + "summary": "Generate And Manage Lot and Serial Numbers.", + "description": "Auto generate lot/serial number on click of validate " + "button in purchase order.", + "author": "Cybrosys Techno Solutions", + "company": "Cybrosys Techno Solutions", + "maintainer": "Cybrosys Techno Solutions", + "website": "https://www.cybrosys.com", + "depends": ["stock", "purchase", "mrp"], + "data": [ + "views/stock_move_views.xml", + "views/res_config_settings_views.xml", + "views/product_template_views.xml", + "views/res_company_views.xml", + ], + "images": ["static/description/banner.jpg"], + "license": "AGPL-3", + "installable": True, + "auto_install": False, + "application": False, +} diff --git a/auto_generate_lot_number/doc/RELEASE_NOTES.md b/auto_generate_lot_number/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..cc0ed07ec --- /dev/null +++ b/auto_generate_lot_number/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 10.09.2024 +#### Version 17.0.1.0.0 +#### ADD + +- Initial commit for Auto Generate Serial/Lot Number diff --git a/auto_generate_lot_number/models/__init__.py b/auto_generate_lot_number/models/__init__.py new file mode 100644 index 000000000..e902f2ebd --- /dev/null +++ b/auto_generate_lot_number/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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_template +from . import res_company +from . import res_config_settings +from . import stock_move diff --git a/auto_generate_lot_number/models/product_template.py b/auto_generate_lot_number/models/product_template.py new file mode 100644 index 000000000..1588edfb3 --- /dev/null +++ b/auto_generate_lot_number/models/product_template.py @@ -0,0 +1,94 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class ProductTemplate(models.Model): + """Inherited product.template class to add fields and functions""" + _inherit = 'product.template' + + is_auto_generate = fields.Boolean(string="Is Auto Generate", + compute='_compute_is_auto_generate', + help="Used to hide and show the prefix " + "and digit field based on the " + "option that we choose in settings") + prefix = fields.Char(string='Prefix', + help="Prefix value of the record for sequence") + digits = fields.Integer(string='Digits', + help="Used to set number of digits contain in a " + "sequence") + number_next = fields.Integer(string='Next call', help="Next number that " + "will be used. This " + "number can be" + "incremented " + "frequently so the " + "displayed value " + "might" + "already be obsolete") + + @api.onchange('prefix', 'digits') + def onchange_digits_prefix(self): + """ This function is used to set number_next to zero if we change the + prefix or digits""" + self.number_next = 0 + + def check_string_for_nine(self, string): + """This function used to check whether the given string contain only '9' + then it will return true else it returns false""" + return all(char == '9' for char in string) + + def _number_next_actual(self): + """This function used to generate the sequence number""" + if self.is_auto_generate: + number_next = self.number_next + 1 + self.number_next = number_next + if (len(str(self.digits)) == len(str(self.number_next)) and + self.check_string_for_nine(str(self.number_next))): + self.digits = self.digits + 1 + if self.digits - len(str(self.number_next)) <= 0: + value = self.prefix + else: + digits = ("{:%s}" % ('0%sd' % str(self.digits - len( + str(self.number_next))))).format(0) + value = self.prefix + digits + return value + str(number_next) + + @api.depends('tracking') + def _compute_is_auto_generate(self): + """This function is used to set value to the field 'is_auto_generate' + based on the value that we choose in + settings page""" + for rec in self: + rec.is_auto_generate = False + product_type = rec.env['ir.config_parameter'].sudo().get_param( + 'auto_generate_lot_number.serial_number_type') + auto_generate = rec.env['ir.config_parameter'].sudo().get_param( + 'auto_generate_lot_number.is_auto_generate') + if product_type == 'product' and auto_generate: + rec.is_auto_generate = True + + def write(self, values): + """This function is used to set 'number_next' to zero""" + res = super(ProductTemplate, self).write(values) + if values.get('prefix') or values.get('digits'): + self.number_next = 0 + return res diff --git a/auto_generate_lot_number/models/res_company.py b/auto_generate_lot_number/models/res_company.py new file mode 100644 index 000000000..201bd6aef --- /dev/null +++ b/auto_generate_lot_number/models/res_company.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 ResCompany(models.Model): + """This class is inherited to add a field""" + _inherit = 'res.company' + + check_auto_generate = fields.Boolean(string='Auto Generate', + help="Used for setting the sequence " + "number based on the company") diff --git a/auto_generate_lot_number/models/res_config_settings.py b/auto_generate_lot_number/models/res_config_settings.py new file mode 100644 index 000000000..e7182e780 --- /dev/null +++ b/auto_generate_lot_number/models/res_config_settings.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class ResConfigSettings(models.TransientModel): + """Inherited res.config.settings class to add fields and functions to get + and set values in purchase settings form""" + _inherit = 'res.config.settings' + + is_auto_generate = fields.Boolean(string='Auto Generate', + help="Based on this selection it shows " + "the fields for auto generating " + "lot/serial number", + config_parameter="auto_generate_lot_number.is_auto_generate") + serial_number_type = fields.Selection( + [('global', 'Global'), ('product', 'Product Wise')], + default='global', string='Serial/lot Number', + help="Generate the lot/serial number product wise or globally", + config_parameter="auto_generate_lot_number.serial_number_type") + prefix = fields.Char(string='Prefix', + help="Prefix value of the record for sequence", + config_parameter="auto_generate_lot_number.prefix") + digits = fields.Integer(string='Digits', + help="Used to set number of digits contain in a " + "sequence", + config_parameter="auto_generate_lot_number.digits") + + @api.onchange('is_auto_generate') + def _onchange_auto_generate(self): + """Based on the change of is_auto_generate is updated the boolean field + 'check_auto_generate' in company""" + self.env.company.check_auto_generate = False + if self.is_auto_generate: + self.env.company.check_auto_generate = True \ No newline at end of file diff --git a/auto_generate_lot_number/models/stock_move.py b/auto_generate_lot_number/models/stock_move.py new file mode 100644 index 000000000..035be3c65 --- /dev/null +++ b/auto_generate_lot_number/models/stock_move.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# 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 models +from odoo.tools.float_utils import float_compare, float_round + + +class StockMove(models.Model): + """Inherited StockMove class to super the functions""" + _inherit = 'stock.move' + + def _prepare_move_line_vals(self, quantity=None,reserved_quant=None): + """ super the function o update the lot/serial number in + stock.move.line""" + self.ensure_one() + vals = { + 'move_id': self.id, + 'product_id': self.product_id.id, + 'product_uom_id': self.product_uom.id, + 'location_id': self.location_id.id, + 'location_dest_id': self.location_dest_id.id, + 'picking_id': self.picking_id.id, + 'company_id': self.company_id.id, + } + auto_generate = self.env['ir.config_parameter'].sudo().get_param( + 'auto_generate_lot_number.is_auto_generate') + if auto_generate: + serial_number_type = self.env[ + 'ir.config_parameter'].sudo().get_param( + 'auto_generate_lot_number.serial_number_type') + prefix = self.env['ir.config_parameter'].sudo().get_param('auto_generate_lot_number.prefix', default='') + digits = int(self.env['ir.config_parameter'].sudo().get_param('auto_generate_lot_number.digits', default=0)) + if serial_number_type == 'global': + sequence = self.env['ir.sequence'].create({'code': 'res.config.code', + 'name':'Res config code'}) + if sequence: + lot_name = sequence.next_by_code('res.config.code') + lot_name = f"{prefix}{lot_name.zfill(digits)}" + vals.update({'lot_name': lot_name}) + else: + vals.update({ + 'lot_name': self.product_id.product_tmpl_id._number_next_actual(), + }) + if quantity: + rounding = self.env['decimal.precision'].precision_get('Product ' + 'Unit of ' + 'Measure') + uom_quantity = self.product_id.uom_id._compute_quantity(quantity, + self.product_uom, + rounding_method='HALF-UP') + uom_quantity = float_round(uom_quantity, precision_digits=rounding) + uom_quantity_back_to_product_uom = self.product_uom._compute_quantity( + uom_quantity, self.product_id.uom_id, + rounding_method='HALF-UP') + if float_compare(quantity, uom_quantity_back_to_product_uom, + precision_digits=rounding) == 0: + vals = dict(vals, quantity=uom_quantity) + else: + vals = dict(vals, quantity=quantity, product_uom_id=self.product_id.uom_id.id) + if reserved_quant: + package = reserved_quant.package_id + vals = dict( + vals, + location_id=reserved_quant.location_id.id, + lot_id=reserved_quant.lot_id.id or False, + package_id=package.id or False, + owner_id=reserved_quant.owner_id.id or False, + ) + return vals + + def action_show_details(self): + """This used to overriden 'view_stock_move_operations' view""" + res = super(StockMove, self).action_show_details() + auto_generate = self.env['ir.config_parameter'].sudo().get_param( + 'auto_generate_lot_number.is_auto_generate') + if auto_generate: + view = self.env.ref('auto_generate_lot_number' + '.view_stock_move_operations') + res.update({ + 'views': [(view.id, 'form')], + 'view_id': view.id, + }) + return res \ No newline at end of file diff --git a/auto_generate_lot_number/static/description/assets/icons/check.png b/auto_generate_lot_number/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/check.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/chevron.png b/auto_generate_lot_number/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/chevron.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/cogs.png b/auto_generate_lot_number/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/cogs.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/consultation.png b/auto_generate_lot_number/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/consultation.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/ecom-black.png b/auto_generate_lot_number/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/ecom-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/education-black.png b/auto_generate_lot_number/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/education-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/hotel-black.png b/auto_generate_lot_number/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/hotel-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/license.png b/auto_generate_lot_number/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/license.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/lifebuoy.png b/auto_generate_lot_number/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/lifebuoy.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/manufacturing-black.png b/auto_generate_lot_number/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/manufacturing-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/pos-black.png b/auto_generate_lot_number/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/pos-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/puzzle.png b/auto_generate_lot_number/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/puzzle.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/restaurant-black.png b/auto_generate_lot_number/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/restaurant-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/service-black.png b/auto_generate_lot_number/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/service-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/trading-black.png b/auto_generate_lot_number/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/trading-black.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/training.png b/auto_generate_lot_number/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/training.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/update.png b/auto_generate_lot_number/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/update.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/user.png b/auto_generate_lot_number/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/user.png differ diff --git a/auto_generate_lot_number/static/description/assets/icons/wrench.png b/auto_generate_lot_number/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/icons/wrench.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/Cybrosys R.png b/auto_generate_lot_number/static/description/assets/misc/Cybrosys R.png new file mode 100755 index 000000000..da4058087 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/Cybrosys R.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/categories.png b/auto_generate_lot_number/static/description/assets/misc/categories.png new file mode 100755 index 000000000..bedf1e0b1 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/categories.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/check-box.png b/auto_generate_lot_number/static/description/assets/misc/check-box.png new file mode 100755 index 000000000..42caf24b9 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/check-box.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/compass.png b/auto_generate_lot_number/static/description/assets/misc/compass.png new file mode 100755 index 000000000..d5fed8faa Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/compass.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/corporate.png b/auto_generate_lot_number/static/description/assets/misc/corporate.png new file mode 100755 index 000000000..2eb13edbf Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/corporate.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/customer-support.png b/auto_generate_lot_number/static/description/assets/misc/customer-support.png new file mode 100755 index 000000000..79efc72ed Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/customer-support.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/cybrosys-logo.png b/auto_generate_lot_number/static/description/assets/misc/cybrosys-logo.png new file mode 100755 index 000000000..cc3cc0ccf Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/cybrosys-logo.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/email.svg b/auto_generate_lot_number/static/description/assets/misc/email.svg new file mode 100755 index 000000000..15291cdc3 --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/features.png b/auto_generate_lot_number/static/description/assets/misc/features.png new file mode 100755 index 000000000..b41769f77 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/features.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/logo.png b/auto_generate_lot_number/static/description/assets/misc/logo.png new file mode 100755 index 000000000..478462d3e Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/logo.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/phone.svg b/auto_generate_lot_number/static/description/assets/misc/phone.svg new file mode 100755 index 000000000..b7bd7f251 --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/pictures.png b/auto_generate_lot_number/static/description/assets/misc/pictures.png new file mode 100755 index 000000000..56d255fe9 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/pictures.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/pie-chart.png b/auto_generate_lot_number/static/description/assets/misc/pie-chart.png new file mode 100755 index 000000000..426e05244 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/pie-chart.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/right-arrow.png b/auto_generate_lot_number/static/description/assets/misc/right-arrow.png new file mode 100755 index 000000000..730984a06 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/right-arrow.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/star (1) 2.svg b/auto_generate_lot_number/static/description/assets/misc/star (1) 2.svg new file mode 100755 index 000000000..5ae9f507a --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/star.png b/auto_generate_lot_number/static/description/assets/misc/star.png new file mode 100755 index 000000000..2eb9ab29f Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/star.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/support (1) 1.svg b/auto_generate_lot_number/static/description/assets/misc/support (1) 1.svg new file mode 100755 index 000000000..7d37a8f30 --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/support-email.svg b/auto_generate_lot_number/static/description/assets/misc/support-email.svg new file mode 100755 index 000000000..eb70370d6 --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/support.png b/auto_generate_lot_number/static/description/assets/misc/support.png new file mode 100755 index 000000000..4f18b8b82 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/support.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/tick-mark.svg b/auto_generate_lot_number/static/description/assets/misc/tick-mark.svg new file mode 100755 index 000000000..2dbb40187 --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/whatsapp 1.svg b/auto_generate_lot_number/static/description/assets/misc/whatsapp 1.svg new file mode 100755 index 000000000..0bfaf8fc6 --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/misc/whatsapp.png b/auto_generate_lot_number/static/description/assets/misc/whatsapp.png new file mode 100755 index 000000000..d513a5356 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/misc/whatsapp.png differ diff --git a/auto_generate_lot_number/static/description/assets/misc/whatsapp.svg b/auto_generate_lot_number/static/description/assets/misc/whatsapp.svg new file mode 100755 index 000000000..b618aea1d --- /dev/null +++ b/auto_generate_lot_number/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/auto_generate_lot_number/static/description/assets/modules/1.png b/auto_generate_lot_number/static/description/assets/modules/1.png new file mode 100644 index 000000000..fe3a7c8d2 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/modules/1.png differ diff --git a/auto_generate_lot_number/static/description/assets/modules/2.png b/auto_generate_lot_number/static/description/assets/modules/2.png new file mode 100644 index 000000000..2fa0bcbac Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/modules/2.png differ diff --git a/auto_generate_lot_number/static/description/assets/modules/3.png b/auto_generate_lot_number/static/description/assets/modules/3.png new file mode 100644 index 000000000..fd64cf8ca Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/modules/3.png differ diff --git a/auto_generate_lot_number/static/description/assets/modules/4.png b/auto_generate_lot_number/static/description/assets/modules/4.png new file mode 100644 index 000000000..d8acd14d1 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/modules/4.png differ diff --git a/auto_generate_lot_number/static/description/assets/modules/5.png b/auto_generate_lot_number/static/description/assets/modules/5.png new file mode 100644 index 000000000..d644e4bea Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/modules/5.png differ diff --git a/auto_generate_lot_number/static/description/assets/modules/6.png b/auto_generate_lot_number/static/description/assets/modules/6.png new file mode 100644 index 000000000..5dfa8196a Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/modules/6.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/hero.gif b/auto_generate_lot_number/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..a99a6acb3 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/hero.gif differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s1.png b/auto_generate_lot_number/static/description/assets/screenshots/s1.png new file mode 100644 index 000000000..33410cb2d Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s1.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s2.png b/auto_generate_lot_number/static/description/assets/screenshots/s2.png new file mode 100644 index 000000000..2ca39dd71 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s2.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s3.png b/auto_generate_lot_number/static/description/assets/screenshots/s3.png new file mode 100644 index 000000000..a03794537 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s3.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s4.png b/auto_generate_lot_number/static/description/assets/screenshots/s4.png new file mode 100644 index 000000000..dc37babd1 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s4.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s5.png b/auto_generate_lot_number/static/description/assets/screenshots/s5.png new file mode 100644 index 000000000..e2c8ba2cd Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s5.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s6.png b/auto_generate_lot_number/static/description/assets/screenshots/s6.png new file mode 100644 index 000000000..469f479cf Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s6.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s7.png b/auto_generate_lot_number/static/description/assets/screenshots/s7.png new file mode 100644 index 000000000..6271ca344 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s7.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/s8.png b/auto_generate_lot_number/static/description/assets/screenshots/s8.png new file mode 100644 index 000000000..f337ef3ff Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/s8.png differ diff --git a/auto_generate_lot_number/static/description/banner.jpg b/auto_generate_lot_number/static/description/banner.jpg new file mode 100644 index 000000000..0a570d0f0 Binary files /dev/null and b/auto_generate_lot_number/static/description/banner.jpg differ diff --git a/auto_generate_lot_number/static/description/icon.png b/auto_generate_lot_number/static/description/icon.png new file mode 100644 index 000000000..2581d1189 Binary files /dev/null and b/auto_generate_lot_number/static/description/icon.png differ diff --git a/auto_generate_lot_number/static/description/index.html b/auto_generate_lot_number/static/description/index.html new file mode 100644 index 000000000..a0927972f --- /dev/null +++ b/auto_generate_lot_number/static/description/index.html @@ -0,0 +1,789 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Auto Generate Serial/Lot number +

+

+ Automatically Generate And Manage Serial and Lot numbers. +

+
+ +
+
+
+
+
+

+ Key Highlights +

+
+
+
+
+
+ +
+
+

+ Community and Enterprise Support.

+
+
+
+
+
+
+ +
+
+

+ Auto generate lot/serial number on click of validate button in purchase order.

+
+
+
+
+
+
+ +
+
+

+ Set the lot/serial number in product wise or globally. +

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

+ Serial Number Configuration: Global +

+
+
+

+ Go to Purchase --> Configuration --> Settings --> Enable the + boolean field Auto Generate. + Based on global we need to provide the prefix and digits in settings. +

+
+
+
+
+
+
+ +
+
+

+ Set Traceability as By Lots or Serial Number. +

+
+
+
+
+
+
+ +
+
+

+ Create purchase order then select the products and confirm the order. +

+
+
+
+
+
+
+ +
+
+

+ On click of validate button transfer will be created and unique serial number is generated for the products automatically +

+
+
+
+
+
+
+ +
+
+

+ Serial Number Configuration: Product Wise +

+
+
+
+
+
+
+ +
+
+

+ We can set separate prefix and digits for each product. +

+
+
+
+
+
+
+ +
+
+

+ Create purchase order then select the products and confirm the + order. +

+
+
+
+
+
+
+ +
+
+

+ On click of validate button transfer + will be created and lot number is generated for the products + automatically. +

+
+
+
+
+
+
+
    +
  • + Community and Enterprise Support. +
  • +
  • + + Auto generate lot/serial number on click of validate button in purchase order. +
  • +
  • + + Set the lot/serial number in product wise or globally. +
  • +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:10th September 2024 +
+

+ Initial commit for Auto Generate Serial/Lot Number.

+
+
+
+
+
+
+
+

+ Related Products

+
+
+ +
+
+

+ Our Services

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

Odoo + Customization

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

Odoo + Implementation

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

Odoo + Support

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

Hire + Odoo Developer

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

Odoo + Integration

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

Odoo + Migration

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

Odoo + Consultancy

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

Odoo + Implementation

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

Odoo + Licensing Consultancy

+
+
+
+
+
+
+

+ Our Industries

+ +
+
+
+
+
+
+ +

Trading

+

Easily procure and sell your products

+
+
+
+
+ +

POS

+

Easy configuration and convivial experience

+
+
+
+
+ +

+ Education

+

A platform for educational management

+
+
+
+
+ +

+ Manufacturing

+

Plan, track and schedule your operations

+
+
+
+
+ +

E-commerce & + Website

+

Mobile friendly, awe-inspiring product pages

+
+
+
+
+ +

Service + Management

+

Keep track of services and invoice

+
+
+
+
+ +

+ Restaurant

+

Run your bar or restaurant methodically

+
+
+
+
+ +

Hotel + Management

+

An all-inclusive hotel management application

+
+
+
+
+
+
+

+ Support

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

Got + questions or need help? Get in touch.

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

Say hi to + us on WhatsApp!

+
+91 + 99456767686 +
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/auto_generate_lot_number/views/product_template_views.xml b/auto_generate_lot_number/views/product_template_views.xml new file mode 100644 index 000000000..109f5c724 --- /dev/null +++ b/auto_generate_lot_number/views/product_template_views.xml @@ -0,0 +1,25 @@ + + + + + + product.template.view.form.inherit.auto.generate.lot.number + + product.template + + + + + + + + + + + + diff --git a/auto_generate_lot_number/views/res_company_views.xml b/auto_generate_lot_number/views/res_company_views.xml new file mode 100644 index 000000000..110154dbf --- /dev/null +++ b/auto_generate_lot_number/views/res_company_views.xml @@ -0,0 +1,16 @@ + + + + + + res.company.view.form.inherit.auto.generate.lot.number + + res.company + + + + + + + + diff --git a/auto_generate_lot_number/views/res_config_settings_views.xml b/auto_generate_lot_number/views/res_config_settings_views.xml new file mode 100644 index 000000000..66bdc7f3e --- /dev/null +++ b/auto_generate_lot_number/views/res_config_settings_views.xml @@ -0,0 +1,81 @@ + + + + + + res.config.settings.view.form.inherit.auto.generate.lot.number + + res.config.settings + + + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/auto_generate_lot_number/views/stock_move_views.xml b/auto_generate_lot_number/views/stock_move_views.xml new file mode 100644 index 000000000..f5bed690d --- /dev/null +++ b/auto_generate_lot_number/views/stock_move_views.xml @@ -0,0 +1,79 @@ + + + + + view.stock.move.operations.form.inherit.auto.generate.lot.number + stock.move + 1000 + primary + + + + + + + + + + stock.move.line.operations.tree + stock.move.line + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +