# -*- coding: utf-8 -*- ################################################################################ # # Cybrosys Technologies Pvt. Ltd. # # Copyright (C) 2023-TODAY Cybrosys Technologies(). # Author: MOHAMMED DILSHAD TK (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 class AccountMoveLine(models.Model): _inherit = 'account.move.line' def _create_stock_moves(self, picking): """Function to create stock move""" done = self.env['stock.move'].browse() for line in self: price_unit = line.price_unit if picking.picking_type_id.code == 'outgoing': template = { 'name': line.name or '', 'product_id': line.product_id.id, 'product_uom': line.product_uom_id.id, 'location_id': picking.picking_type_id. default_location_src_id.id, 'location_dest_id': line.move_id.partner_id. property_stock_customer.id, 'picking_id': picking.id, 'state': 'draft', 'company_id': line.move_id.company_id.id, 'price_unit': price_unit, 'picking_type_id': picking.picking_type_id.id, 'route_ids': 1 and [ (6, 0, [x.id for x in self.env['stock.rule'].search ([('id', 'in', (2, 3))])])] or [], 'warehouse_id': picking.picking_type_id.warehouse_id.id, } if picking.picking_type_id.code == 'incoming': template = { 'name': line.name or '', 'product_id': line.product_id.id, 'product_uom': line.product_uom_id.id, 'location_id': line.move_id.partner_id. property_stock_supplier.id, 'location_dest_id': picking.picking_type_id. default_location_dest_id.id, 'picking_id': picking.id, 'state': 'draft', 'company_id': line.move_id.company_id.id, 'price_unit': price_unit, 'picking_type_id': picking.picking_type_id.id, 'route_ids': 1 and [ (6, 0, [x.id for x in self.env['stock.rule'].search( [('id', 'in', (2, 3))])])] or [], 'warehouse_id': picking.picking_type_id.warehouse_id.id, } diff_quantity = line.quantity tmp = template.copy() tmp.update({ 'product_uom_qty': diff_quantity, }) template['product_uom_qty'] = diff_quantity done += self.env['stock.move'].create(template) return done