SELECT id, name FROM items WHERE id IN (SELECT item FROM current_items) ORDER BY name
0) {
expected.text = Number(query.value(0)) * 100;
} else {
expected.text = "";
}
if(query.value(1).length > 0) {
tolerance.text = Number(query.value(1)) * 100;
} else {
tolerance.text = "";
}
notes.plainText = query.value(2);
if(query.value(3).length > 0) {
var spec = JSON.parse(query.value(3));
if(spec.color.whole.expected === undefined) {
wholecolor.text = "";
} else {
wholecolor.text = spec.color.whole.expected;
}
if(spec.color.whole.tolerance === undefined) {
wholetolerance.text = "";
} else {
wholetolerance.text = spec.color.whole.tolerance;
}
if(spec.color.ground.expected === undefined) {
groundcolor.text = "";
} else {
groundcolor.text = spec.color.ground.expected;
}
if(spec.color.ground.tolerance === undefined) {
groundtolerance.text = "";
} else {
groundtolerance.text = spec.color.ground.tolerance;
}
}
} else {
expected.text = "";
tolerance.text = "";
notes.plainText = "";
wholecolor.text = "";
wholetolerance.text = "";
groundcolor.text = "";
groundtolerance.text = "";
}
query = query.invalidate();
};
updateDisplay();
selector['currentIndexChanged(int)'].connect(function() {
updateDisplay();
});
savebutton.clicked.connect(function() {
var specobject = new Object;
var query = new QSqlQuery();
var columnspec = "time, item, ";
var valuespec = "'now', :id, ";
if(expected.text.length > 0) {
columnspec += "loss, ";
valuespec += ":loss, ";
var lossspec = new Object;
lossspec.expected = expected.text;
if(tolerance.text.length > 0) {
columnspec += "tolerance, ";
valuespec += ":tolerance, ";
lossspec.tolerance = tolerance.text;
}
specobject.loss = lossspec;
}
colorspec = new Object;
if(wholecolor.text.length > 0) {
wholespec = new Object;
wholespec.expected = wholecolor.text;
if(wholetolerance.text.length > 0) {
wholespec.tolerance = wholetolerance.text;
}
colorspec.whole = wholespec;
}
if(groundcolor.text.length > 0) {
groundspec = new Object;
groundspec.expected = groundcolor.text;
if(groundtolerance.text.length > 0) {
groundspec.tolerance = groundtolerance.text;
}
colorspec.ground = groundspec;
}
if(colorspec.whole || colorspec.ground) {
specobject.color = colorspec;
}
if(notes.plainText.length > 0) {
specobject.notes = notes.plainText;
}
columnspec += "notes, spec";
valuespec += ":notes, :spec";
query.prepare("INSERT INTO roasting_specification (" + columnspec + ") VALUES (" + valuespec + ")");
query.bind(":id", selector.currentData());
if(expected.text.length > 0) {
query.bind(":loss", Number(expected.text) / 100);
}
if(tolerance.text.length > 0) {
query.bind(":tolerance", Number(tolerance.text) / 100);
}
query.bind(":notes", notes.plainText);
query.bind(":spec", JSON.stringify(specobject));
query.exec();
displayInfo(TTR("roastspec", "New Specification Saved"),
TTR("roastspec", "New roasting specification saved"));
});
]]>