diff --git a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js index ea96a8c7c..00750430f 100644 --- a/public/js/lehre/lehrauftrag/acceptLehrauftrag.js +++ b/public/js/lehre/lehrauftrag/acceptLehrauftrag.js @@ -17,7 +17,7 @@ const COLOR_LIGHTGREY = "#f5f5f5"; const ICON_LEHRAUFTRAG_ORDERED = ''; const ICON_LEHRAUFTRAG_APPROVED = ''; const ICON_LEHRAUFTRAG_CHANGED = ''; - +const ICON_LEHRAUFTRAG_CANCELLED = ''; // ----------------------------------------------------------------------------------------------------------------- // Mutators - setter methods to manipulate table data when entering the tabulator @@ -134,10 +134,12 @@ function func_selectableCheck(row){ var betrag = parseFloat(row.getData().betrag); var vertrag_betrag = parseFloat(row.getData().vertrag_betrag); - if (isNaN(betrag)) - { - betrag = 0; - } + var is_storniert = row.getData().storniert != undefined; + + if (isNaN(betrag)) + { + betrag = 0; + } // only allow to select bestellte && erteilte && nicht geaenderte Lehraufträge return row.getData().bestellt != null && // bestellt @@ -149,18 +151,18 @@ function func_selectableCheck(row){ // Adds column status function func_tableBuilt(table) { - // Add status column to table - table.addColumn( - { - title: "", - field: "status", - width:40, - align:"center", - downloadTitle: 'Status', - formatter: status_formatter, - tooltip: status_tooltip - }, true - ); + // Add status column to table + table.addColumn( + { + title: "", + field: "status", + width:40, + align:"center", + downloadTitle: 'Status', + formatter: status_formatter, + tooltip: status_tooltip + }, true + ); } // Sets status values into column status @@ -311,9 +313,10 @@ function func_rowSelectionChanged(data, rows){ // Generates status icons status_formatter = function(cell, formatterParams, onRendered){ - var bestellt = cell.getRow().getData().bestellt; - var erteilt = cell.getRow().getData().erteilt; - var akzeptiert = cell.getRow().getData().akzeptiert; + var bestellt = cell.getRow().getData().bestellt; + var erteilt = cell.getRow().getData().erteilt; + var akzeptiert = cell.getRow().getData().akzeptiert; + var is_storniert = cell.getRow().getData().storniert != undefined; var stunden = parseFloat(cell.getRow().getData().stunden); var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); @@ -326,47 +329,54 @@ status_formatter = function(cell, formatterParams, onRendered){ betrag = 0; } - // commented icons would be so nice to have with fontawsome 5.11... - if (bestellt != null && isNaN(vertrag_betrag)) - { - return ""; // kein Vertrag - } - else if (bestellt != null && (betrag != vertrag_betrag) || - bestellt != null && stunden != vertrag_stunden) - { - return ICON_LEHRAUFTRAG_CHANGED; // geaendert - // return ""; - } - else if (bestellt == null && erteilt == null && akzeptiert == null) - { - return ""; // neu - } - else if (bestellt != null && erteilt == null && akzeptiert == null) - { - return ICON_LEHRAUFTRAG_ORDERED; // bestellt - // return ""; - } - else if (bestellt != null && erteilt != null && akzeptiert == null) - { - return ICON_LEHRAUFTRAG_APPROVED; // erteilt - // return ""; - } - else if (bestellt != null && erteilt != null && akzeptiert != null) - { - return ""; // akzeptiert - // return ""; - } - else - { - return ""; // default - } + // commented icons would be so nice to have with fontawsome 5.11... + if (bestellt != null && isNaN(vertrag_betrag)) + { + return ""; // kein Vertrag + } + else if (bestellt != null && (betrag != vertrag_betrag) || + bestellt != null && stunden != vertrag_stunden) + { + return ICON_LEHRAUFTRAG_CHANGED; // geaendert + // return ""; + } + else if (bestellt == null && erteilt == null && akzeptiert == null && !is_storniert) + { + return ""; // neu + } + else if (bestellt != null && erteilt == null && akzeptiert == null) + { + return ICON_LEHRAUFTRAG_ORDERED; // bestellt + // return ""; + } + else if (bestellt != null && erteilt != null && akzeptiert == null) + { + return ICON_LEHRAUFTRAG_APPROVED; // erteilt + // return ""; + } + else if (bestellt != null && erteilt != null && akzeptiert != null) + { + return ""; // akzeptiert + // return ""; + } + else if (is_storniert) + { + return ICON_LEHRAUFTRAG_CANCELLED; // storniert + } + else + { + return ""; // default + } }; // Generates status tooltip status_tooltip = function(cell){ - var bestellt = cell.getRow().getData().bestellt; - var erteilt = cell.getRow().getData().erteilt; - var akzeptiert = cell.getRow().getData().akzeptiert; + var bestellt = cell.getRow().getData().bestellt; + var erteilt = cell.getRow().getData().erteilt; + var akzeptiert = cell.getRow().getData().akzeptiert; + var is_storniert = cell.getRow().getData().storniert != undefined; + var letzterStatus_vorStorniert = cell.getRow().getData().letzterStatus_vorStorniert; + var stunden = parseFloat(cell.getRow().getData().stunden); var vertrag_stunden = parseFloat(cell.getRow().getData().vertrag_stunden); @@ -379,32 +389,42 @@ status_tooltip = function(cell){ betrag = 0; } - var text = 'Lehrauftrag in Bearbeitung. '; + if (letzterStatus_vorStorniert != undefined && letzterStatus_vorStorniert == 'akzeptiert') + { + letzterStatus_vorStorniert = 'angenommen'; + } - if (bestellt != null && erteilt == null && akzeptiert == null - && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before) - { - text += 'Wartet auf Erteilung.'; - return text; - } - else if (bestellt != null && erteilt != null && akzeptiert == null - && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once) - { - text += 'Wartet auf erneute Erteilung.'; - return text; - } - else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt - { - return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; - } - else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt - { - return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; - } - else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert - { - return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; - } + var text = 'Lehrauftrag in Bearbeitung. '; + + if (bestellt != null && erteilt == null && akzeptiert == null + && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before) + { + text += 'Wartet auf Erteilung.'; + return text; + } + else if (bestellt != null && erteilt != null && akzeptiert == null + && (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once) + { + text += 'Wartet auf erneute Erteilung.'; + return text; + } + else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt + { + return 'Letzter Status: Bestellt. Wartet auf Erteilung.'; + } + else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt + { + return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.'; + } + else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert + { + return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.'; + } + else if (is_storniert) + { + return 'Dieser Vertrag wurde storniert. Letzter Status vor Stornierung war: ' + + letzterStatus_vorStorniert; // storniert + } } // Generates bestellt tooltip @@ -429,6 +449,13 @@ akzeptiert_tooltip = function(cell){ } } +// Generates storniert tooltip +storniert_tooltip = function(cell){ + if (cell.getRow().getData().storniert_von != null) { + return 'Storniert von: ' + cell.getRow().getData().storniert_von; + } +} + $(function() { // Show all rows @@ -468,17 +495,20 @@ $(function() { ); }); - // Set png-icons into filter-buttons - $(".btn-lehrauftrag").each(function(){ - switch(this.id) { - case 'show-ordered': - this.innerHTML = ICON_LEHRAUFTRAG_ORDERED; - break; - case 'show-approved': - this.innerHTML = ICON_LEHRAUFTRAG_APPROVED; - break; - } - }); + // Set png-icons into filter-buttons + $(".btn-lehrauftrag").each(function(){ + switch(this.id) { + case 'show-ordered': + this.innerHTML = ICON_LEHRAUFTRAG_ORDERED; + break; + case 'show-approved': + this.innerHTML = ICON_LEHRAUFTRAG_APPROVED; + break; + case 'show-cancelled': + this.innerHTML = ICON_LEHRAUFTRAG_CANCELLED; + break; + } + }); // De/activate and un/focus on clicked button $(".btn-lehrauftrag").click(function() { @@ -488,8 +518,13 @@ $(function() { $(this).addClass('focus').addClass('active'); }); - // Approve Lehrauftraege - $("#accept-lehrauftraege").click(function(){ + // Redraw table stornierte lehrauftraege on button click + $('#collapseCancelledLehrauftraege').on('shown.bs.collapse', function () { + $('[tableuniqueid = cancelledLehrauftrag] #tableWidgetTabulator').tabulator('redraw', true); + }); + + // Approve Lehrauftraege + $("#accept-lehrauftraege").click(function(){ // Get selected rows data var selected_data = $('#tableWidgetTabulator').tabulator('getSelectedData')