diff --git a/odex25_inventory/picking_return_fill/__init__.py b/odex25_inventory/picking_return_fill/__init__.py new file mode 100644 index 000000000..83e278c63 --- /dev/null +++ b/odex25_inventory/picking_return_fill/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import wizard \ No newline at end of file diff --git a/odex25_inventory/picking_return_fill/__manifest__.py b/odex25_inventory/picking_return_fill/__manifest__.py new file mode 100644 index 000000000..2c6d79336 --- /dev/null +++ b/odex25_inventory/picking_return_fill/__manifest__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +{ + 'name': "Return Autofill", + 'summary': """auto fill return picking""", + 'category': 'Inventory', + 'description': """ + Inventory auto fill return picking + """, + 'version': '0.1', + 'depends': ['stock'], +} diff --git a/odex25_inventory/picking_return_fill/__pycache__/__init__.cpython-37.pyc b/odex25_inventory/picking_return_fill/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 000000000..b43dc2038 Binary files /dev/null and b/odex25_inventory/picking_return_fill/__pycache__/__init__.cpython-37.pyc differ diff --git a/odex25_inventory/picking_return_fill/wizard/__init__.py b/odex25_inventory/picking_return_fill/wizard/__init__.py new file mode 100644 index 000000000..1674a1008 --- /dev/null +++ b/odex25_inventory/picking_return_fill/wizard/__init__.py @@ -0,0 +1 @@ +from . import stock_picking_return \ No newline at end of file diff --git a/odex25_inventory/picking_return_fill/wizard/__pycache__/__init__.cpython-37.pyc b/odex25_inventory/picking_return_fill/wizard/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 000000000..60dbd4f43 Binary files /dev/null and b/odex25_inventory/picking_return_fill/wizard/__pycache__/__init__.cpython-37.pyc differ diff --git a/odex25_inventory/picking_return_fill/wizard/__pycache__/stock_picking_return.cpython-37.pyc b/odex25_inventory/picking_return_fill/wizard/__pycache__/stock_picking_return.cpython-37.pyc new file mode 100644 index 000000000..c35fd5d8d Binary files /dev/null and b/odex25_inventory/picking_return_fill/wizard/__pycache__/stock_picking_return.cpython-37.pyc differ diff --git a/odex25_inventory/picking_return_fill/wizard/stock_picking_return.py b/odex25_inventory/picking_return_fill/wizard/stock_picking_return.py new file mode 100644 index 000000000..3d174fde0 --- /dev/null +++ b/odex25_inventory/picking_return_fill/wizard/stock_picking_return.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +from odoo import api, models +from odoo.exceptions import UserError +from odoo.tools.translate import _ + + +class ReturnPicking(models.TransientModel): + _inherit = 'stock.return.picking' + + @api.onchange('picking_id') + def _onchange_picking_id(self): + move_dest_exists = False + product_return_moves = [(5,)] + if self.picking_id and self.picking_id.state != 'done': + raise UserError(_("You may only return Done pickings.")) + # In case we want to set specific default values (e.g. 'to_refund'), we must fetch the + # default values for creation. + line_fields = [f for f in self.env['stock.return.picking.line']._fields.keys()] + product_return_moves_data_tmpl = self.env['stock.return.picking.line'].default_get(line_fields) + for move in self.picking_id.move_lines: + if move.state == 'cancel': + continue + if move.move_dest_ids: + move_dest_exists = True + product_return_moves_data = dict(product_return_moves_data_tmpl) + product_return_moves_data.update(self._prepare_stock_return_picking_line_vals_from_move(move)) + product_return_moves.append((0, 0, product_return_moves_data)) + if self.picking_id and not product_return_moves: + raise UserError( + _("No products to return (only lines in Done state and not fully returned yet can be returned).")) + if self.picking_id: + self.product_return_moves = product_return_moves + self.move_dest_exists = move_dest_exists + self.parent_location_id = self.picking_id.picking_type_id.warehouse_id and self.picking_id.picking_type_id.warehouse_id.view_location_id.id or self.picking_id.location_id.location_id.id + self.original_location_id = self.picking_id.location_id.id + location_id = self.picking_id.location_id.id + if self.picking_id.picking_type_id.return_picking_type_id.default_location_dest_id.return_location: + location_id = self.picking_id.picking_type_id.return_picking_type_id.default_location_dest_id.id + self.location_id = location_id \ No newline at end of file