// custom scripts // Zusatzfunktionen zur schnelleren Datumseingabe /** * */ $(document).ready(function () { initFaelligkeit(); }); /* * Hier setzen wir einen Event handler und berechnen anhand der Eingabe im Feld alexander-logistic-date-days * ein neues Datum auf basis des Rechnungsdatum (date_invoice) */ function initFaelligkeit(ajax_event) { $(".alexander-logistic-date-days").change(function (e) { var days = $(this).val(); if (days == '') { return true; } // find the basis date 'date_invoice' var basisDateString = $("input[id$='date_invoice']").val(); const parts = basisDateString.split("."); var basisDay = parts[0]; var basisMonth = (parts[1]) - 1; var basisYear = parts[2]; var basisDate = new Date(basisYear, basisMonth, basisDay); var newDate = new Date(basisYear, basisMonth, basisDay); newDate.setDate(newDate.getDate() + (Number(days))); var day = '' + newDate.getDate(); if (day.length == 1) { day = '0' + day; } var month = '' + (newDate.getMonth() + 1); if (month.length == 1) { month = '0' + month; } var year = '' + newDate.getFullYear(); year = year.substring(2); // ddmmyy var dateFormated = day + month + year; //alert(dateFormated); var dateInput = $(this).next(); dateInput.val(dateFormated); validateBuchungsDatum(dateInput); // clear input $(this).val(''); }); } // erweitere datums eingabe // TTMM // TTMMYY // TT-MM-YY // TT.MM.YY // jahreszahl falls zweistellig function validateBuchungsDatum(item) { //var mhd = $("[id$=mhdinput_id]"); var mhd = $(item); var text = $(mhd).val(); while (text.indexOf('-') > -1) { text = text.replace("-", "."); } var d = new Date(); // check for TTMMYY if (text.length == 6 && text.indexOf('.') == -1) { text = text.substring(0, 2) + "." + text.substring(2, 4) + ".20" + text.substring(4); } // check TTMMYYYY if (text.length == 8 && text.indexOf('.') == -1) { text = text.substring(0, 2) + "." + text.substring(2, 4) + "." + text.substring(4); } // check for TTMM if (text.length == 4 && text.indexOf('.') == -1) { text = text.substring(0, 2) + "." + text.substring(2); text = text + "." + d.getFullYear(); } // check for missing full year var n = text.lastIndexOf("."); if (n > 0 && n > text.length - 4) { // we insert 20 var left = text.substring(0, n + 1); var right = text.substring(n + 1); text = left + "20" + right; } // validate if year has more then 4 digits // TT.MM.YYYY is allowed if (text.length != 10) { console.log("Invalid Date=" + text); text = ""; } // update field.... $(mhd).val(text); // hier aktualisiereh wir die Fälligkeit wenn das Rechnungsdatum sich ändert // und wir ein Zahlungsziel kennen. var inputElementZahlungszielCdtr = $("input[id$='cdtr_creditperiod']"); var itemID = item.id; if (itemID && itemID.endsWith('date_invoice')) { // update zahlungsziel if (inputElementZahlungszielCdtr && inputElementZahlungszielCdtr.val() != '') { var inputElementZahlungsziel = $("input[data-item='cdtr.creditperiod']"); if (inputElementZahlungsziel) { inputElementZahlungsziel.val(inputElementZahlungszielCdtr.val()); inputElementZahlungsziel.change(); $('.alexander-logistic-date').focus().select(); } } } }