diff --git a/auto_generate_lot_number/README.rst b/auto_generate_lot_number/README.rst new file mode 100755 index 000000000..1814cc55c --- /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/16.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: (V16) Shonima, 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..641fe8004 --- /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: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import models diff --git a/auto_generate_lot_number/__manifest__.py b/auto_generate_lot_number/__manifest__.py new file mode 100644 index 000000000..dc7cc62cd --- /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: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +{ + "name": "Auto Generate Serial/Lot number", + "version": "16.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.png"], + "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..178e8759d --- /dev/null +++ b/auto_generate_lot_number/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 05.02.2024 +#### Version 16.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..2210c8e89 --- /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: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from . import 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..0b657eecc --- /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: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class 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..8a79a605e --- /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: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import fields, models + + +class 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..1de2ea014 --- /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: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import api, fields, models + + +class 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 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..76bd72fda --- /dev/null +++ b/auto_generate_lot_number/models/stock_move.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Shonima (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +################################################################################ +from odoo import 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') + if serial_number_type == 'global': + vals.update({ + 'lot_name': self.env['ir.sequence'].next_by_code('res' + '.config' + '.settings'), + }) + 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, reserved_uom_qty=uom_quantity) + else: + vals = dict(vals, reserved_uom_qty=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 by + 'view_stock_move_nosuggest_operations_custom' 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_nosuggest_operations_custom') + res.update({ + 'views': [(view.id, 'form')], + 'view_id': view.id, + }) + return res 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/categories.png b/auto_generate_lot_number/static/description/assets/misc/categories.png new file mode 100644 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 100644 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 100644 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 100644 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 100644 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 100644 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/features.png b/auto_generate_lot_number/static/description/assets/misc/features.png new file mode 100644 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 100644 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/pictures.png b/auto_generate_lot_number/static/description/assets/misc/pictures.png new file mode 100644 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 100644 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 100644 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.png b/auto_generate_lot_number/static/description/assets/misc/star.png new file mode 100644 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.png b/auto_generate_lot_number/static/description/assets/misc/support.png new file mode 100644 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/whatsapp.png b/auto_generate_lot_number/static/description/assets/misc/whatsapp.png new file mode 100644 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/modules/1.png b/auto_generate_lot_number/static/description/assets/modules/1.png new file mode 100755 index 000000000..19de058d1 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 100755 index 000000000..b80a7a99b 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..b64e82a7a 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..81fc26ad8 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..0cc9efd4a 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..ed05c1729 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/auto.png b/auto_generate_lot_number/static/description/assets/screenshots/auto.png new file mode 100644 index 000000000..b6d8547d0 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/auto.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..e60002e2c 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/lot_no.png b/auto_generate_lot_number/static/description/assets/screenshots/lot_no.png new file mode 100644 index 000000000..2789bc0c9 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/lot_no.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/new.png b/auto_generate_lot_number/static/description/assets/screenshots/new.png new file mode 100644 index 000000000..b9a6c410e Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/new.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/product.png b/auto_generate_lot_number/static/description/assets/screenshots/product.png new file mode 100644 index 000000000..8e252fa68 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/product.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/product_lot.png b/auto_generate_lot_number/static/description/assets/screenshots/product_lot.png new file mode 100644 index 000000000..57035cc6b Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/product_lot.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/product_wise.png b/auto_generate_lot_number/static/description/assets/screenshots/product_wise.png new file mode 100644 index 000000000..9e8eb8e62 Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/product_wise.png differ diff --git a/auto_generate_lot_number/static/description/assets/screenshots/serial.png b/auto_generate_lot_number/static/description/assets/screenshots/serial.png new file mode 100644 index 000000000..8b9b7e3cc Binary files /dev/null and b/auto_generate_lot_number/static/description/assets/screenshots/serial.png differ diff --git a/auto_generate_lot_number/static/description/banner.png b/auto_generate_lot_number/static/description/banner.png new file mode 100644 index 000000000..a515a82a7 Binary files /dev/null and b/auto_generate_lot_number/static/description/banner.png 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..74052a1da 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..1078f48c8 --- /dev/null +++ b/auto_generate_lot_number/static/description/index.html @@ -0,0 +1,732 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Auto Generate Serial/Lot number

+

+ Automatically Generate And Manage Serial and Lot + numbers.

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

+ Explore This + Module

+
+ + + + +
+
+ +
+

+ Overview +

+ The module allows the user to automatically generate lot or serial number + for a product globally or + product wise on sale order confirmation. +
+ + + + +
+
+ +
+

+ Features +

+
+
+
+
+ + Community & 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. +
+ + +
+
+ + +
+
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+
+

+ 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. +

+ + +
+
+

+ Click the 'Assign Serial Numbers' button to assign serial numbers to the product based on the configuration. +

+
+ +
+
+

+ 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. +

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

+ Related + Products +

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

+ Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

+ Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need + help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on + WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ + + diff --git a/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..74c5a1b13 --- /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..6a5b3b686 --- /dev/null +++ b/auto_generate_lot_number/views/res_config_settings_views.xml @@ -0,0 +1,92 @@ + + + + + + res.config.settings.view.form.inherit.auto.generate.lot.number + + res.config.settings + + + +

Auto Generate Lot Number

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..bdbff1488 --- /dev/null +++ b/auto_generate_lot_number/views/stock_move_views.xml @@ -0,0 +1,125 @@ + + + + + stock.move.operations.nosuggest.form + stock.move + 1000 + primary + + + + + + + + + + stock.move.line.operations.tree + stock.move.line + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + +