summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorSimon Lejeune <sle@openerp.com>2019-10-24 09:18:34 +0000
committerSimon Lejeune <sle@openerp.com>2019-10-25 08:10:40 +0000
commitf1972c21309a23394736e2684b0a175300a822bf (patch)
tree3ec5cec78f671a64645d3b1e204b997b99c0952d /addons
parent6ab4b0d4967490ed1ee0559ec296da6637705125 (diff)
[REF] stock_picking_batch: use picking button_validate multi
Diffstat (limited to 'addons')
-rw-r--r--addons/stock_picking_batch/models/stock_picking_batch.py37
-rw-r--r--addons/stock_picking_batch/tests/test_batch_picking.py14
-rw-r--r--addons/stock_picking_batch/wizard/__init__.py1
-rw-r--r--addons/stock_picking_batch/wizard/stock_immediate_transfer.py20
4 files changed, 8 insertions, 64 deletions
diff --git a/addons/stock_picking_batch/models/stock_picking_batch.py b/addons/stock_picking_batch/models/stock_picking_batch.py
index accf7fa0fda..ad8b77c0c71 100644
--- a/addons/stock_picking_batch/models/stock_picking_batch.py
+++ b/addons/stock_picking_batch/models/stock_picking_batch.py
@@ -67,43 +67,8 @@ class StockPickingBatch(models.Model):
picking.batch_id.id,
picking.batch_id.name))
- picking_to_backorder = self.env['stock.picking']
- picking_without_qty_done = self.env['stock.picking']
- for picking in pickings:
- if all([x.qty_done == 0.0 for x in picking.move_line_ids]):
- # If no lots when needed, raise error
- picking_type = picking.picking_type_id
- if (picking_type.use_create_lots or picking_type.use_existing_lots):
- for ml in picking.move_line_ids:
- if ml.product_id.tracking != 'none':
- raise UserError(_('Some products require lots/serial numbers.'))
- # Check if we need to set some qty done.
- picking_without_qty_done |= picking
- elif picking._check_backorder():
- picking_to_backorder |= picking
- else:
- picking._action_done()
self.write({'state': 'done'})
- if picking_without_qty_done:
- view = self.env.ref('stock.view_immediate_transfer')
- wiz = self.env['stock.immediate.transfer'].create({
- 'pick_ids': [(4, p.id) for p in picking_without_qty_done],
- 'pick_to_backorder_ids': [(4, p.id) for p in picking_to_backorder],
- })
- return {
- 'name': _('Immediate Transfer?'),
- 'type': 'ir.actions.act_window',
- 'view_mode': 'form',
- 'res_model': 'stock.immediate.transfer',
- 'views': [(view.id, 'form')],
- 'view_id': view.id,
- 'target': 'new',
- 'res_id': wiz.id,
- 'context': self.env.context,
- }
- if picking_to_backorder:
- return picking_to_backorder.action_generate_backorder_wizard()
- return True
+ return self.picking_ids.button_validate()
def _track_subtype(self, init_values):
if 'state' in init_values:
diff --git a/addons/stock_picking_batch/tests/test_batch_picking.py b/addons/stock_picking_batch/tests/test_batch_picking.py
index 0c477f88dc0..286e029d5ea 100644
--- a/addons/stock_picking_batch/tests/test_batch_picking.py
+++ b/addons/stock_picking_batch/tests/test_batch_picking.py
@@ -102,7 +102,7 @@ class TestBatchPicking(TransactionCase):
# There should be a wizard asking to process picking without quantity done
immediate_transfer_wizard_dict = self.batch.done()
self.assertTrue(immediate_transfer_wizard_dict)
- immediate_transfer_wizard = self.env[(immediate_transfer_wizard_dict.get('res_model'))].browse(immediate_transfer_wizard_dict.get('res_id'))
+ immediate_transfer_wizard = self.env[(immediate_transfer_wizard_dict.get('res_model'))].browse(immediate_transfer_wizard_dict.get('res_id')).with_context(immediate_transfer_wizard_dict['context'])
self.assertEqual(len(immediate_transfer_wizard.pick_ids), 2)
immediate_transfer_wizard.process()
@@ -135,11 +135,11 @@ class TestBatchPicking(TransactionCase):
# There should be a wizard asking to process picking without quantity done
back_order_wizard_dict = self.batch.done()
self.assertTrue(back_order_wizard_dict)
- back_order_wizard = self.env[(back_order_wizard_dict.get('res_model'))].browse(back_order_wizard_dict.get('res_id'))
+ back_order_wizard = self.env[(back_order_wizard_dict.get('res_model'))].browse(back_order_wizard_dict.get('res_id')).with_context(back_order_wizard_dict['context'])
self.assertEqual(len(back_order_wizard.pick_ids), 1)
- self.assertEqual(self.picking_client_2.state, 'done', 'Picking 2 should be done')
back_order_wizard.process()
+ self.assertEqual(self.picking_client_2.state, 'done', 'Picking 2 should be done')
self.assertEqual(self.picking_client_1.state, 'done', 'Picking 1 should be done')
self.assertEqual(self.picking_client_1.move_lines.product_uom_qty, 5, 'initial demand should be 5 after picking split')
self.assertTrue(self.env['stock.picking'].search([('backorder_id', '=', self.picking_client_1.id)]), 'no back order created')
@@ -168,11 +168,11 @@ class TestBatchPicking(TransactionCase):
# There should be a wizard asking to process picking without quantity done
immediate_transfer_wizard_dict = self.batch.done()
self.assertTrue(immediate_transfer_wizard_dict)
- immediate_transfer_wizard = self.env[(immediate_transfer_wizard_dict.get('res_model'))].browse(immediate_transfer_wizard_dict.get('res_id'))
+ immediate_transfer_wizard = self.env[(immediate_transfer_wizard_dict.get('res_model'))].browse(immediate_transfer_wizard_dict.get('res_id')).with_context(immediate_transfer_wizard_dict['context'])
self.assertEqual(len(immediate_transfer_wizard.pick_ids), 2)
back_order_wizard_dict = immediate_transfer_wizard.process()
self.assertTrue(back_order_wizard_dict)
- back_order_wizard = self.env[(back_order_wizard_dict.get('res_model'))].browse(back_order_wizard_dict.get('res_id'))
+ back_order_wizard = self.env[(back_order_wizard_dict.get('res_model'))].browse(back_order_wizard_dict.get('res_id')).with_context(back_order_wizard_dict['context'])
self.assertEqual(len(back_order_wizard.pick_ids), 1)
back_order_wizard.process()
@@ -205,11 +205,11 @@ class TestBatchPicking(TransactionCase):
# There should be a wizard asking to process picking without quantity done
immediate_transfer_wizard_dict = self.batch.done()
self.assertTrue(immediate_transfer_wizard_dict)
- immediate_transfer_wizard = self.env[(immediate_transfer_wizard_dict.get('res_model'))].browse(immediate_transfer_wizard_dict.get('res_id'))
+ immediate_transfer_wizard = self.env[(immediate_transfer_wizard_dict.get('res_model'))].browse(immediate_transfer_wizard_dict.get('res_id')).with_context(immediate_transfer_wizard_dict['context'])
self.assertEqual(len(immediate_transfer_wizard.pick_ids), 1)
back_order_wizard_dict = immediate_transfer_wizard.process()
self.assertTrue(back_order_wizard_dict)
- back_order_wizard = self.env[(back_order_wizard_dict.get('res_model'))].browse(back_order_wizard_dict.get('res_id'))
+ back_order_wizard = self.env[(back_order_wizard_dict.get('res_model'))].browse(back_order_wizard_dict.get('res_id')).with_context(back_order_wizard_dict['context'])
self.assertEqual(len(back_order_wizard.pick_ids), 1)
back_order_wizard.process()
diff --git a/addons/stock_picking_batch/wizard/__init__.py b/addons/stock_picking_batch/wizard/__init__.py
index 92e3d6e014e..063ece3795c 100644
--- a/addons/stock_picking_batch/wizard/__init__.py
+++ b/addons/stock_picking_batch/wizard/__init__.py
@@ -2,4 +2,3 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import stock_picking_to_batch
-from . import stock_immediate_transfer
diff --git a/addons/stock_picking_batch/wizard/stock_immediate_transfer.py b/addons/stock_picking_batch/wizard/stock_immediate_transfer.py
deleted file mode 100644
index 9997800934f..00000000000
--- a/addons/stock_picking_batch/wizard/stock_immediate_transfer.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from odoo import models, fields, api
-
-
-class StockImmediateTransfer(models.TransientModel):
- _inherit = 'stock.immediate.transfer'
- _description = 'Immediate Transfer'
-
- pick_to_backorder_ids = fields.Many2many('stock.picking', help='Picking to backorder')
-
- def process(self):
- backorder_wizard_dict = super(StockImmediateTransfer, self).process()
- # If the immediate transfer wizard process all our picking but with some back order maybe needed we want to add the backorder already passed to the wizard.
- if backorder_wizard_dict:
- backorder_wizard = self.env['stock.backorder.confirmation'].browse(backorder_wizard_dict.get('res_id', False))
- backorder_wizard.write({'pick_ids': [(4, p.id) for p in self.pick_to_backorder_ids]})
- return backorder_wizard_dict
- # If there is no backorder returned by the immediate transfer basic function we still wanted to process those manually given
- elif self.pick_to_backorder_ids:
- return self.pick_to_backorder_ids.action_generate_backorder_wizard()
- return False