|
@@ -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, '{";
|