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.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							49 lines
						
					
					
						
							2.3 KiB
						
					
					
				| from odoo import fields, models | |
| 
 | |
| 
 | |
| class StockBackorderConfirmation(models.TransientModel): | |
|     _inherit = 'stock.backorder.confirmation' | |
| 
 | |
|     stock_id = fields.Many2one('stock.picking', setring="Stock", help="Stock") | |
| 
 | |
|     def process(self): | |
|         pickings_to_do = self.env['stock.picking'] | |
|         pickings_not_to_do = self.env['stock.picking'] | |
|         for line in self.backorder_confirmation_line_ids: | |
|             if line.to_backorder is True: | |
|                 pickings_to_do |= line.picking_id | |
|             else: | |
|                 pickings_not_to_do |= line.picking_id | |
|         pickings_to_validate = self.env.context.get( | |
|             'button_validate_picking_ids') | |
|         if pickings_to_validate: | |
|             pickings_to_validate = self.env['stock.picking'].browse( | |
|                 pickings_to_validate).with_context(skip_backorder=True) | |
|             if pickings_not_to_do: | |
|                 self._check_less_quantities_than_expected(pickings_not_to_do) | |
|                 pickings_to_validate = pickings_to_validate.with_context( | |
|                     picking_ids_not_to_backorder=pickings_not_to_do.ids) | |
|             result_validate = pickings_to_validate.button_validate() | |
|             result_transfer = '' | |
|             if not pickings_to_validate.auto_generated: | |
|                 result_transfer = pickings_to_validate.create_intercompany_transfer() | |
|                 pickings_to_validate.write( | |
|                     {'is_backorder_button_clicked': True}) | |
|             return result_validate, result_transfer | |
|         return True | |
| 
 | |
|     def process_cancel_backorder(self): | |
|         pickings_to_validate_ids = self.env.context.get( | |
|             'button_validate_picking_ids') | |
|         if pickings_to_validate_ids: | |
|             pickings_to_validate = self.env['stock.picking'].browse( | |
|                 pickings_to_validate_ids) | |
|             self._check_less_quantities_than_expected(pickings_to_validate) | |
|             result_validate = pickings_to_validate.with_context( | |
|                 skip_backorder=True, | |
|                 picking_ids_not_to_backorder=self.pick_ids.ids).button_validate() | |
|             result_transfer = '' | |
|             if not pickings_to_validate.auto_generated: | |
|                 result_transfer = pickings_to_validate.create_intercompany_transfer() | |
|             return result_validate, result_transfer | |
|         return True
 | |
| 
 |