| 
				
			 | 
			
			
				
				@@ -501,13 +501,20 @@ 
			 | 
		
		
	
		
			
			| 
				501
			 | 
			
				501
			 | 
			
			
				
				             var approval = findChildObject(this, 'approval'); 
			 | 
		
		
	
		
			
			| 
				502
			 | 
			
				502
			 | 
			
			
				
				             approval.checked = true; 
			 | 
		
		
	
		
			
			| 
				503
			 | 
			
				503
			 | 
			
			
				
				             var target = findChildObject(this, 'target'); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				504
			 | 
			
			
				
				+            var greenCheck = function() { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				505
			 | 
			
			
				
				+                var itemArray = table.columnArray(0, 32).split("\\s*,\\s*"); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				506
			 | 
			
			
				
				+                var weightArray = table.columnArray(1, 0).split("\\s*,\\s*"); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				507
			 | 
			
			
				
				+                return (itemArray.length == weightArray.length) && (itemArray.length > 0); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				508
			 | 
			
			
				
				+            } 
			 | 
		
		
	
		
			
			| 
				504
			 | 
			
				509
			 | 
			
			
				
				             var checkSubmitEnable = function () { 
			 | 
		
		
	
		
			
			| 
				505
			 | 
			
				510
			 | 
			
			
				
				                 if(roasted.currentIndex > 0) { 
			 | 
		
		
	
		
			
			| 
				506
			 | 
			
				511
			 | 
			
			
				
				                     if(timefield.text.length > 0) { 
			 | 
		
		
	
		
			
			| 
				507
			 | 
			
				512
			 | 
			
			
				
				                         if(duration.text.length > 0) { 
			 | 
		
		
	
		
			
			| 
				508
			 | 
			
				513
			 | 
			
			
				
				                             if(batch.tempData.length > 0) { 
			 | 
		
		
	
		
			
			| 
				509
			 | 
			
				514
			 | 
			
			
				
				                                 if(green.text.length > 0) { 
			 | 
		
		
	
		
			
			| 
				510
			 | 
			
				
			 | 
			
			
				
				-                                    return true; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				515
			 | 
			
			
				
				+                                    if(greenCheck()) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				516
			 | 
			
			
				
				+                                        return true; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				517
			 | 
			
			
				
				+                                    } 
			 | 
		
		
	
		
			
			| 
				511
			 | 
			
				518
			 | 
			
			
				
				                                 } 
			 | 
		
		
	
		
			
			| 
				512
			 | 
			
				519
			 | 
			
			
				
				                             } 
			 | 
		
		
	
		
			
			| 
				513
			 | 
			
				520
			 | 
			
			
				
				                         } 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -576,7 +583,7 @@ 
			 | 
		
		
	
		
			
			| 
				576
			 | 
			
				583
			 | 
			
			
				
				                 q2 = q2 + selectedRoasterID; 
			 | 
		
		
	
		
			
			| 
				577
			 | 
			
				584
			 | 
			
			
				
				                 q2 = q2 + ", :duration, :approval, NULL, NULL, NULL, NULL, '{"; 
			 | 
		
		
	
		
			
			| 
				578
			 | 
			
				585
			 | 
			
			
				
				                 q2 = q2 + fileno; 
			 | 
		
		
	
		
			
			| 
				579
			 | 
			
				
			 | 
			
			
				
				-                q2 = q2 + "}')"; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				586
			 | 
			
			
				
				+                q2 = q2 + "}') RETURNING time"; 
			 | 
		
		
	
		
			
			| 
				580
			 | 
			
				587
			 | 
			
			
				
				                 query2 = new QSqlQuery(); 
			 | 
		
		
	
		
			
			| 
				581
			 | 
			
				588
			 | 
			
			
				
				                 query2.prepare(q2); 
			 | 
		
		
	
		
			
			| 
				582
			 | 
			
				589
			 | 
			
			
				
				                 query2.bind(":time", timefield.text); 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -584,6 +591,12 @@ 
			 | 
		
		
	
		
			
			| 
				584
			 | 
			
				591
			 | 
			
			
				
				                 query2.bind(":duration", duration.text); 
			 | 
		
		
	
		
			
			| 
				585
			 | 
			
				592
			 | 
			
			
				
				                 query2.bind(":approval", approval.checked); 
			 | 
		
		
	
		
			
			| 
				586
			 | 
			
				593
			 | 
			
			
				
				                 query2.exec(); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				594
			 | 
			
			
				
				+                if(!query2.next()) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				595
			 | 
			
			
				
				+                    displayError(TTR("batchWindow", "Failed to save batch to database. Please check inputs and connection and try again.")); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				596
			 | 
			
			
				
				+                    query2 = query2.invalidate(); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				597
			 | 
			
			
				
				+                    query = query.invalidate(); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				598
			 | 
			
			
				
				+                    return; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				599
			 | 
			
			
				
				+                } 
			 | 
		
		
	
		
			
			| 
				587
			 | 
			
				600
			 | 
			
			
				
				                 query2 = query2.invalidate(); 
			 | 
		
		
	
		
			
			| 
				588
			 | 
			
				601
			 | 
			
			
				
				                 if(target.checked) { 
			 | 
		
		
	
		
			
			| 
				589
			 | 
			
				602
			 | 
			
			
				
				                     var q3 = "INSERT INTO item_files (time, item, files) VALUES(:time, :item, '{"; 
			 |