You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.0 KiB
54 lines
2.0 KiB
# -*- coding: utf-8 -*-
|
|
###############################################################################
|
|
#
|
|
# Cybrosys Technologies Pvt. Ltd.
|
|
#
|
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
|
|
# Author: Aysha Shalin (odoo@cybrosys.com)
|
|
#
|
|
# You can modify it under the terms of the GNU LESSER
|
|
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
|
|
#
|
|
# You should have received a copy of the GNU LESSER GENERAL PUBLIC
|
|
# LICENSE (LGPL v3) along with this program.
|
|
# If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
###############################################################################
|
|
from odoo import fields, models
|
|
import base64
|
|
import openpyxl
|
|
from io import BytesIO
|
|
|
|
|
|
class StockMove(models.Model):
|
|
""" Inheriting stock_move to add additional new field and function """
|
|
_inherit = 'stock.move'
|
|
|
|
attachment = fields.Binary(string="Upload")
|
|
|
|
def action_import_lot(self):
|
|
""" Import and write lots to stock_move_line """
|
|
vals_list = []
|
|
wb = openpyxl.load_workbook(
|
|
filename=BytesIO(base64.b64decode(self.attachment)),
|
|
read_only=True)
|
|
ws = wb.active
|
|
for record in ws.iter_rows(min_row=2, max_row=None,
|
|
min_col=None,
|
|
max_col=None, values_only=True):
|
|
if record[1] == self.product_id.display_name:
|
|
vals_list.append((0, 0, {
|
|
'lot_name': record[0],
|
|
'quantity': record[2],
|
|
'product_id': self.product_id.id
|
|
}))
|
|
continue
|
|
self.move_line_ids.unlink()
|
|
self.write({
|
|
'move_line_ids': vals_list
|
|
})
|
|
|