Files
TZU/js/rauheiten.js
2018-04-11 22:17:21 +02:00

387 lines
13 KiB
JavaScript

$(document).ready(function () {
var htmlstring = "";
var actCnt = 1;
var toAdd = true;
var lastRow = 0;
$("body").off("click", "#btnNew");
$("body").on("click", "#btnNew", function () {
actCnt = 1;
htmlstring = "";
toAdd = false;
$('#btnAdd').trigger("click");
toAdd = true;
});
$("body").off("click", "#btnAdd");
$("body").on("click", "#btnAdd", function () {
var template = '<tr id="%%TXLCODE%%">' +
' <td class="trMesswerte">%%CNT%%:&nbsp;</td>' +
' <td class="trMesswerte bauteilnr">%%BAUTEIL%%&nbsp;&nbsp;</td>' +
' <td class="trMesswerte"><input class="tbMesswerte" type="text" id="LWteil%%CNT%%"></td>' +
' <td class="trMesswerte"><input class="tbMesswerte" type="text" id="CWteil%%CNT%%"></td>' +
' <td class="trMesswerte"><input class="tbMesswerte" type="hidden" id="TXLCode%%CNT%%" value="%%TXLCODE%%"></td>' +
' <td class="trMesswerte"><input class="tbComment" type="text" id="raucomm%%CNT%%"></td>' +
' <td id="infoFromDB%%CNT%%"></td>' +
'</tr>';
var startCode = $('#tbStartwert').val();
var endCode = $('#tbEndwert').val();
var startPart = startCode.substring(7);
var endPart = endCode.substring(7);
var TMPType = startCode.substring(0,3);
var TMPTool = startCode.substring(3,5);
var TMPRev = startCode.substring(5,7);
var StartCodeOhneTyp = startCode.substring(3);
var first = true;
var actCode = "";
switch (TMPType) {
case "GW1":
tableHead = "<thead><tr><th></th><th></th><th>längs</th><th>quer</th><th></th><th>Kommentar</th></tr>" +
"<tr class=\"smallhead\"><th></th><th></th><th>(17,5mm)</th><th>(5,6mm)</th></tr></thead>";
break;
case "GX1":
tableHead = "<thead><tr><th></th><th></th><th>längs</th><th>quer</th><th></th><th>Kommentar</th></tr>" +
"<tr class=\"smallhead\"><th></th><th></th><th>(5,6mm)</th><th>(1,75mm)</th></tr></thead>"
break;
case "GA1":
tableHead = "<thead><tr><th></th><th></th><th>längs</th><th>quer</th><th></th><th>Kommentar</th></tr>" +
"<tr class=\"smallhead\"><th></th><th></th><th>(5,6mm)</th><th>(1,75mm)</th></tr></thead>"
break;
case "GC1":
tableHead = "<thead><tr><th></th><th></th><th>längs</th><th>quer</th><th></th><th>Kommentar</th></tr>" +
"<tr class=\"smallhead\"><th></th><th></th><th>(5,6mm)</th><th>(1,75mm)</th></tr></thead>"
break;
}
if ( toAdd ) { actCnt = getLastRowNr() + 1; }
for (i = startPart; i <= endPart; i++) {
var toolRevPart = "";
var locTmpl = "";
//var bauteilstatus;
var teilOk = false;
var teilNichtOk = 0;
if ( first ) {
actCode = startCode;
first = false;
} else {
actCode = helper.getNextPart(actCode);
}
// check bauteilstatus
//bauteilstatus = DB.getBauteilStatus(actCode);
switch (DB.getBauteilStatus(actCode)){
case 0:
case 1:
teilOk = true;
break;
default:
teilNichtOk++;
}
toolRevPart = helper.getToolRevPart(actCode);
if ( !teilOk ) { toolRevPart = "<b><i style=\"color: red\">" + toolRevPart + "</i></b>"; }
locTmpl = template.replace(/%%CNT%%/g, helper.pad(actCnt,2));
locTmpl = locTmpl.replace(/%%TXLCODE%%/g, actCode);
locTmpl = locTmpl.replace(/%%BAUTEIL%%/, toolRevPart);
htmlstring = htmlstring + "\n" + locTmpl;
actCnt++;
}
if ( toAdd ) {
htmlstring = htmlstring;
} else {
htmlstring = tableHead + htmlstring;
}
$('#tblMesswerte').html(htmlstring);
lastRow = getLastRowNr();
$("#debug").text("Eingabefelder für " + lastRow + " Bauteile erstellt.");
//var table = document.getElementById("tblMesswerte");
if ( teilNichtOk > 0 ) {
swal({
title: '<b>Achtung</b>',
type: 'warning',
html: 'Es wurden Bauteile eingetragen, die nicht in der Datenbank vorhanden sind. Die Messwerte für diese Teile werden nicht in der Datenbank erfasst.<br />Die betroffenen bauteile sind <b style="color: red;">rot</b> markiert.',
showCloseButton: true,
showCancelButton: false,
confirmButtonText: 'Ok'
});
}
//debugger;
});
/**
* die ganze Mausrad-Geschichte. Ziemliches Monster geworden!
*
* mit der Maus über dem Input-Feld hoovern und dann mittels
* Mausrad hoch/runter tickern.
*
* Mit modifier-Keys Shift, Ctrl und beiden
* Shift: nur das Tool wird geändert
* Strg : nur die Revision wird geändert
* beide: der Bauteiltyp wird geändert
*
* Bei Tool, Rev und Part gibt es noch überprüfungen, ob der
* Wert über 99 (bzw. 9999 bei Part) oder auf 0 ticken würde.
* Wird jeweils abgefangen. Ein Wert kann niemals 0 sein.
* Tool und Rev darf maximal 99 erreichen, Part maximal 9999.
*
* Bauteiltyp, Toolnummer und Revisionsnummer werden immer in
* beiden Input-Feldern geändert (#tbStartwert & #tbEndwert)
*
* Sollte Part in #tbStartwert größer als der in #tbEndwert sein,
* wird #tbEndwert.Part an #tbStartwert angeglichen.
* ViceVersa im negativem bei #tbEndwert.Part < #tbStartwert.Part
*
**/
$('body').off("mousewheel", "#tbStartwert");
$("body").on("mousewheel", "#tbStartwert", function(e) {
var curVal = e.currentTarget.value;
var dir = e.deltaY;
var tmpType = curVal.substring(0,3);
var tmpTool = curVal.substring(3,5);
var tmpRev = curVal.substring(5,7);
var tmpPart = curVal.substring(7);
if ( dir > 0 ){
if ( e.shiftKey &! e.ctrlKey ){
var newTool = pad(Number(tmpTool) + 1, 2)
if ( newTool >= 99 ) { newTool = "99"; }
e.currentTarget.value = tmpType + newTool + tmpRev + tmpPart;
$("#tbEndwert").val(tmpType + newTool + tmpRev + tmpPart);
} else if ( e.ctrlKey &! e.shiftKey ){
var newRev = pad(Number(tmpRev) + 1, 2)
if ( newRev >= 99 ) { newRev = "99"; }
e.currentTarget.value = tmpType + tmpTool + newRev + tmpPart;
$("#tbEndwert").val(tmpType + tmpTool + newRev + tmpPart);
} else if ( e.ctrlKey && e.shiftKey){
switch (tmpType){
case "GW1": newType = "GA1"; break;
case "GA1": newType = "GC1"; break;
case "GC1": newType = "GX1"; break;
case "GX1": newType = "GW1"; break;
}
e.currentTarget.value = newType + tmpTool + tmpRev + tmpPart;
$("#tbEndwert").val(newType + tmpTool + tmpRev + tmpPart);
} else {
var newPart = pad(Number(tmpPart) + 1, 4);
if ( newPart >= 9999 ) { newPart = "9999"; }
e.currentTarget.value = tmpType + tmpTool + tmpRev + newPart;
var endWert = $("#tbEndwert");
var endPart = Number(endWert[0].value.substring(7));
if ( endPart < Number(newPart) ) {
endWert[0].value = tmpType + tmpTool + tmpRev + newPart;
}
}
} else {
if ( e.shiftKey &! e.ctrlKey ){
var newTool = pad(Number(tmpTool) - 1, 2)
if ( newTool <= 0 ) { newTool = "01"; }
e.currentTarget.value = tmpType + newTool + tmpRev + tmpPart;
$("#tbEndwert").val(tmpType + newTool + tmpRev + tmpPart);
} else if ( e.ctrlKey &! e.shiftKey ){
var newRev = pad(Number(tmpRev) - 1, 2)
if ( newRev <= 0 ) { newRev = "01"; }
e.currentTarget.value = tmpType + tmpTool + newRev + tmpPart;
$("#tbEndwert").val(tmpType + tmpTool + newRev + tmpPart);
} else if ( e.ctrlKey && e.shiftKey){
switch (tmpType){
case "GW1": newType = "GA1"; break;
case "GA1": newType = "GC1"; break;
case "GC1": newType = "GX1"; break;
case "GX1": newType = "GW1"; break;
}
e.currentTarget.value = newType + tmpTool + tmpRev + tmpPart;
$("#tbEndwert").val(newType + tmpTool + tmpRev + tmpPart);
} else {
var newPart = pad(Number(tmpPart) - 1, 4);
if ( newPart <= 0 ) { newPart = "0001"; }
e.currentTarget.value = tmpType + tmpTool + tmpRev + newPart;
var endWert = $("#tbEndwert");
var endPart = Number(endWert[0].value.substring(7));
if ( endPart < Number(newPart) ) {
endWert[0].value = tmpType + tmpTool + tmpRev + newPart;
}
}
}
return false;
});
$('body').off("mousewheel", "#tbEndwert");
$("body").on("mousewheel", "#tbEndwert", function(e) {
var curVal = e.currentTarget.value;
var dir = e.deltaY;
var tmpType = curVal.substring(0,3);
var tmpTool = curVal.substring(3,5);
var tmpRev = curVal.substring(5,7);
var tmpPart = curVal.substring(7);
if ( dir > 0 ){
if ( e.shiftKey &! e.ctrlKey ){
var newTool = pad(Number(tmpTool) + 1, 2)
if ( newTool >= 99 ) { newTool = "99"; }
e.currentTarget.value = tmpType + newTool + tmpRev + tmpPart;
$("#tbStartwert").val(tmpType + newTool + tmpRev + tmpPart);
} else if ( e.ctrlKey &! e.shiftKey ){
var newRev = pad(Number(tmpRev) + 1, 2)
if ( newRev >= 99 ) { newRev = "99"; }
e.currentTarget.value = tmpType + tmpTool + newRev + tmpPart;
$("#tbStartwert").val(tmpType + tmpTool + newRev + tmpPart);
} else if ( e.ctrlKey && e.shiftKey){
switch (tmpType){
case "GW1": newType = "GA1"; break;
case "GA1": newType = "GC1"; break;
case "GC1": newType = "GX1"; break;
case "GX1": newType = "GW1"; break;
}
e.currentTarget.value = newType + tmpTool + tmpRev + tmpPart;
$("#tbStartwert").val(newType + tmpTool + tmpRev + tmpPart);
} else {
var newPart = pad(Number(tmpPart) + 1, 4);
if ( newPart >= 9999 ) { newPart = "9999"; }
e.currentTarget.value = tmpType + tmpTool + tmpRev + newPart;
var startWert = $("#tbStartwert");
var startPart = Number(startWert[0].value.substring(7));
if ( startPart > Number(newPart) ) {
startWert[0].value = tmpType + tmpTool + tmpRev + newPart;
}
}
} else {
if ( e.shiftKey &! e.ctrlKey ){
var newTool = pad(Number(tmpTool) - 1, 2)
if ( newTool <= 0 ) { newTool = "01"; }
e.currentTarget.value = tmpType + newTool + tmpRev + tmpPart;
$("#tbStartwert").val(tmpType + newTool + tmpRev + tmpPart);
} else if ( e.ctrlKey &! e.shiftKey ){
var newRev = pad(Number(tmpRev) - 1, 2)
if ( newRev <= 0 ) { newRev = "01"; }
e.currentTarget.value = tmpType + tmpTool + newRev + tmpPart;
$("#tbStartwert").val(tmpType + tmpTool + newRev + tmpPart);
} else if ( e.ctrlKey && e.shiftKey){
switch (tmpType){
case "GW1": newType = "GA1"; break;
case "GA1": newType = "GC1"; break;
case "GC1": newType = "GX1"; break;
case "GX1": newType = "GW1"; break;
}
e.currentTarget.value = newType + tmpTool + tmpRev + tmpPart;
$("#tbStartwert").val(newType + tmpTool + tmpRev + tmpPart);
} else {
var newPart = pad(Number(tmpPart) - 1, 4);
if ( newPart <= 0 ) { newPart = "0001"; }
e.currentTarget.value = tmpType + tmpTool + tmpRev + newPart;
var startWert = $("#tbStartwert");
var startPart = Number(startWert[0].value.substring(7));
if ( startPart > Number(newPart) ) {
startWert[0].value = tmpType + tmpTool + tmpRev + newPart;
}
}
}
return false;
});
$("body").off("keypress", "#tblMesswerte input");
$("body").on("keypress", "#tblMesswerte input", function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode === 13) {
var obj = e.target
messwert = obj.value
if ( !$.isNumeric(messwert) ) {
swal("Fehler", "Das ist keine Zahl", "error");
return;
}
dieseTB = obj.id;
messpunkt = obj.id.substring(0,2);
messreihe = obj.id.substring(6);
nextrow = pad(Number(messreihe) + 1,2);
lastRow = getLastRowNr();
nextTB = "#" + messpunkt + "teil" + nextrow;
//console.log(dieseTB + ": " + messpunkt +", " + messreihe + ", " + messwert);
//console.log("nextrow: " + nextrow);
if ( $(nextTB).length != 0 ) {
$(nextTB).focus();
} else {
if ( nextrow >= lastRow && messpunkt !== "CW"){
$("#CWteil01").focus();
} else {
alert("fertif");
}
}
if ( messpunkt === "CW" ) {
var messwerte = {};
messwerte.func = "updateBauteilRauheiten";
messwerte.TXLCode = $("#TXLCode" + messreihe)[0].value;
messwerte.LW = $("#LWteil" + messreihe)[0].value;
messwerte.CW = $("#CWteil" + messreihe)[0].value;
messwerte.raudate = heute() + " " + jetzt();
messwerte.raucomm = $("#raucomm" + messreihe)[0].value;
if ( !$.isNumeric(messwerte.LW) || !$.isNumeric(messwerte.CW)) {
$("#infoFromDB" + messreihe).html("<b style=\"color: red; font-size: 0.85em;\">Keine Zahl!</b>");
return;
}
updateResult = DB.sendJSONGeneric(messwerte);
//$("#infoFromDB" + messreihe).text(messwerte.TXLCode + "/" + messwerte.LW + "/" + messwerte.CW + "/" + messwerte.raudate + "/" + messwerte.raucomm);
if (updateResult.responseText === "1") {
$("#infoFromDB" + messreihe).html("<i>ok</i>");
} else {
$("#infoFromDB" + messreihe).html("<b style=\"color: red\">FEHLER</b>");
}
//console.log(messwerte);
}
}
});
function getLastRowNr(){
// die zwei oberen rows bedenken (header längs/quer und die messlängenangaben)
var table = document.getElementById("tblMesswerte");
var lastCnt = 0;
for (var i = 0, row; row = table.rows[i]; i++) {
lastCnt = i - 1;
}
return lastCnt;
}
});