4 changed files with 48 additions and 2 deletions
			
			
		@ -0,0 +1,35 @@ | 
				
			|||||
 | 
					/** @odoo-module */ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import { Order } from "@point_of_sale/app/store/models"; | 
				
			||||
 | 
					import { patch } from "@web/core/utils/patch"; | 
				
			||||
 | 
					import RestrictStockPopup from "@pos_restrict_product_stock/js/RestrictStockPopup" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					patch(Order.prototype, { | 
				
			||||
 | 
					    async pay() { | 
				
			||||
 | 
					             var type = this.pos.config.stock_type | 
				
			||||
 | 
					             const pay = true | 
				
			||||
 | 
					             const body = [] | 
				
			||||
 | 
					             const pro_id = false | 
				
			||||
 | 
					            for (const line of this.orderlines) { | 
				
			||||
 | 
					             if (line.pos.config.is_restrict_product && ((type == 'qty_on_hand') && (line.product.qty_available <= 0)) | ((type == 'virtual_qty') && (line.product.virtual_available <= 0)) | | 
				
			||||
 | 
					                                     ((line.product.qty_available <= 0) && (line.product.virtual_available <= 0))) { | 
				
			||||
 | 
					                                     // If the product restriction is activated in the settings and quantity is out stock, it show the restrict popup.
 | 
				
			||||
 | 
					                                body.push(line.product.display_name) | 
				
			||||
 | 
					                 } | 
				
			||||
 | 
					             } | 
				
			||||
 | 
					             if (body.length > 0) { // Check if body has items
 | 
				
			||||
 | 
					                     const confirmed = await this.pos.popup.add(RestrictStockPopup, { | 
				
			||||
 | 
					                         body: body, | 
				
			||||
 | 
					                         pro_id: pro_id | 
				
			||||
 | 
					                     }); | 
				
			||||
 | 
					                     if (confirmed == true) { | 
				
			||||
 | 
					                         return super.pay(); // Proceed with payment
 | 
				
			||||
 | 
					                     } else { | 
				
			||||
 | 
					                          return ; | 
				
			||||
 | 
					                     } | 
				
			||||
 | 
					                 } else { | 
				
			||||
 | 
					                     return super.pay(); // No restrictions, proceed with payment
 | 
				
			||||
 | 
					                 } | 
				
			||||
 | 
					             } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }) | 
				
			||||
					Loading…
					
					
				
		Reference in new issue