From: Kilian Saffran Date: Fri, 23 Oct 2020 08:20:59 +0000 (+0200) Subject: v20201023 X-Git-Tag: 1.0.15~5 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=d01dcd5342162a56799976b166d6c5d246b37ea4;p=pot_lu.git v20201023 --- diff --git a/.vscode/settings.json b/.vscode/settings.json index d4477bc4..079f5494 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,6 @@ { "perlSyntax.includePaths": [ - "C:/Users/kilian/Workspace/pot_lu/app/lib/perl5","C:/Users/kilian/Workspace/pot_lu/app/lib","C:/Users/kilian/Workspace/pot_lu/website/api/lib" + "C:/Users/kilian/Workspace/pot_lu/app/lib/perl5","C:/Users/kilian/Workspace/pot_lu/app/lib","C:/Users/kilian/Workspace/pot_lu/website/api/lib","D:/Workspace/pot_lu/app/lib/perl5","D:/Workspace/pot_lu/app/lib","D:/Workspace/pot_lu/website/api/lib" ], "es6-css-minify.minifyOnSave": "no", "git.ignoreLimitWarning": true, diff --git a/app/lib/POT/Workplan.pm b/app/lib/POT/Workplan.pm index dea845ba..f70b00b5 100644 --- a/app/lib/POT/Workplan.pm +++ b/app/lib/POT/Workplan.pm @@ -101,7 +101,7 @@ sub getWorkplanDays(){ to_char(wpd.pausestart2::interval, 'HH24:MI') AS pausestart2, to_char(wpd.pauseend2::interval, 'HH24:MI') AS pauseend2,"; - if ($payedpause->{payedpauses} eq "1"){ + if ($payedpause->{payedpauses} ne "1"){ $sql .= "to_char( dt1+dt2-pdt1-pdt2, 'HH24:MI') AS dayhours,"; } else { $sql .= "to_char(dt1+dt2, 'HH24:MI') AS dayhours,"; diff --git a/app/lib/dksdb.pm b/app/lib/dksdb.pm index 60cf28bf..9e9317dd 100644 --- a/app/lib/dksdb.pm +++ b/app/lib/dksdb.pm @@ -20,7 +20,7 @@ sub new { my $class = shift; my $p = shift; my $self = bless {}, $class; - $self->{debug} = 0; + $self->{debug} = 1; $self->{dbh} = DBI->connect($p->{dsn},$p->{dbuser},$p->{dbpassword},{PrintError=>1,RaiseError=>1,AutoCommit=>1}) or return "query Connection Error!".$!; return $self; } diff --git a/app/static/js/timecalc.js b/app/static/js/timecalc.js index 8632672f..72425a2b 100644 --- a/app/static/js/timecalc.js +++ b/app/static/js/timecalc.js @@ -3,7 +3,9 @@ let timecalc = { minutes = parseInt(minutes); if ((minutes == null) || (minutes == 0)){ return "00:00";}; let hours = parseInt(minutes/60); + let restminutes = minutes-(hours*60); + // console.log(hours + " : " + restminutes); return timecalc.lpad(hours,2,'0') + ":"+ timecalc.lpad(restminutes,2,'0'); }, TimeToMinutes:function (strtime){ diff --git a/app/tmpl/block/dlgstaffperioddays.tt b/app/tmpl/block/dlgstaffperioddays.tt index 02546149..ae06d8f5 100644 --- a/app/tmpl/block/dlgstaffperioddays.tt +++ b/app/tmpl/block/dlgstaffperioddays.tt @@ -3,7 +3,7 @@

- Editer Jour + Editer Jour: dd, DD.MM.YYYY

@@ -11,28 +11,10 @@
-
-
-
- -
-
-
-

- dd, DD.MM.YYYY -

-
-
-
- -
-
-
- heures de travail + heures de travail
@@ -52,6 +34,11 @@
+
+
+ +
+
@@ -72,6 +59,11 @@
+
+
+ +
+
@@ -95,6 +87,11 @@
+
+
+ +
+
@@ -115,6 +112,11 @@
+
+
+ +
+
@@ -128,77 +130,96 @@
- Info heures -
- -
-
- -
-
- + Info heures libres avant/après +
+
-
- +
+
+
- congé -
- -
+ congé
+ "staffperiodweeks.checkdaytime();return false;" type="text" value="">
+
+
+ + +
+
+
- récupération -
- -
+ récupération +
+ onblur="staffperiodweeks.checkdaytime();return false;" type="text" value="">
+
+
+ +
+
- jour + Info heures +
+ +
+
+ +
+
+ +
+
+ +
+
+
+ Totaux Jour
- +
+ "staffreportperioddays_timepause">Total pause
+
- +
- +
+
diff --git a/app/tmpl/index.tt b/app/tmpl/index.tt index b4daa1cd..50f1a950 100644 --- a/app/tmpl/index.tt +++ b/app/tmpl/index.tt @@ -1,4 +1,4 @@ -[% appversion = '0.9.14' %] +[% appversion = '0.9.14.2' %] [% minify = '' %] diff --git a/app/tmpl/module/periods/staffperiodweeks.js b/app/tmpl/module/periods/staffperiodweeks.js index e996eb67..2b646ad7 100644 --- a/app/tmpl/module/periods/staffperiodweeks.js +++ b/app/tmpl/module/periods/staffperiodweeks.js @@ -214,6 +214,7 @@ let staffperiodweeks = { document.getElementById("infofreetimebefore").value=data.result.tiembefore; document.getElementById("infofreetimeafter").value=data.result.timeafter; staffperiodweeks.calcfreetime(); + staffperiodweeks.checkworktime(); } app.viewdialog('staffreportperioddays'); }).catch(e => {console.log(e)}); @@ -276,7 +277,7 @@ let staffperiodweeks = { document.getElementById("vacancyhours").value=staffperiodweeks.currentday.contracthours; } } - staffperiodweeks.checkdaytime(); + staffperiodweeks.checkdaytime(document.getElementById("vacancyhours")); }, setrecuperationhours: function(){ if (!staffperiodweeks.choices["id_recuperationtype"].selected()){ @@ -286,9 +287,13 @@ let staffperiodweeks = { document.getElementById("recuperationhours").value=staffperiodweeks.currentday.contracthours; } } - staffperiodweeks.checkdaytime(); + staffperiodweeks.checkdaytime("id_recuperationtype"); }, checkworktime: function(id){ + if (id){ + timecalc.validateTime(document.getElementById(id)); + } + staffperiodweeks.disablesave=false; let mt1 = 0;let mt2 = 0;let mtp1 = 0;let mtp2 = 0;let mtp = 0; let s1 = 0;let e1=0;let s2 = 0;let e2=0; @@ -306,6 +311,10 @@ let staffperiodweeks = { let oirupt = document.getElementById("interruptionhours"); let owkh = document.getElementById("workhours"); let ppy = document.getElementById("payedpause"); + let odt1 = document.getElementById("total1"); + let odt2 =document.getElementById("total2"); + let opt1 =document.getElementById("pausetotal1"); + let opt2 =document.getElementById("pausetotal2"); let msg = ""; if (ode1.value && ods1.value){ @@ -314,6 +323,7 @@ let staffperiodweeks = { if (e1 < s1) {e1 = e1 + 1440;} mt1 = e1-s1; + odt1.value=timecalc.MinutesToTime(mt1); } if (ode2.value && ods2.value){ s2 = timecalc.TimeToMinutes(ods2.value); @@ -321,6 +331,7 @@ let staffperiodweeks = { if (e2 < s2) {e2 = e2 + 1440;} //("H2 " + e2 + " - " + s2); mt2 = e2-s2; + odt2.value=timecalc.MinutesToTime(mt2); } if (ope1.value && ops1.value){ ps1 = timecalc.TimeToMinutes(ops1.value); @@ -329,6 +340,7 @@ let staffperiodweeks = { pe1 = pe1 + 1440; } mtp1 = pe1-ps1; + opt1.value=timecalc.MinutesToTime(mtp1); if (ps1 < s1){ staffperiodweeks.disablesave = true; msg = "les pauses doivent être dans les heures de travail!"; @@ -343,6 +355,7 @@ let staffperiodweeks = { pe2 = timecalc.TimeToMinutes(ope2.value); if (pe2 < ps2) {pe2 = pe2 + 1440;} mtp2 = pe2-ps2; + opt2.value=timecalc.MinutesToTime(mtp2); if (ps2 < s2){ staffperiodweeks.disablesave = true; msg = "les pauses doivent être dans les heures de travail!"; @@ -375,18 +388,28 @@ let staffperiodweeks = { oirupt.classList.add("text-black"); oirupt.value="00:00"; } - //console.log(mt1 + " + " + mt2); + console.log(mt1 + " + " + mt2); if ((ppy.checked) && (ppy.checked === true)){ - owkh.value= timecalc.MinutesToTime(mt1+mt2); - console.log(mt1 + " + " + mt2); + let mtall = mt1+mt2; + // console.log("pause payed!"); + // console.log("minutes: " + mtall); + // console.log(mt1 + " + " + mt2); + owkh.value= timecalc.MinutesToTime(mtall); } else { - owkh.value= timecalc.MinutesToTime(mt1+mt2-mtp); - console.log(mt1 + " + " + mt2 - " - " + mtp); + let mtall = mt1+mt2-mtp; + // console.log("pause not payed!"); + // console.log("minutes: " + mtall); + // console.log(mt1 + " + " + mt2 + " - " + mtp); + owkh.value= timecalc.MinutesToTime(mtall); + } staffperiodweeks.checkdaytime(); }, - checkdaytime: function(){ + checkdaytime: function(obj){ + if (obj){ + timecalc.validateTime(obj.value); + } let wktime = 0; let vactime = 0; let reptime = 0; diff --git a/app/tmpl/module/workplans/workplans.js b/app/tmpl/module/workplans/workplans.js index 12f02abd..4d75be79 100644 --- a/app/tmpl/module/workplans/workplans.js +++ b/app/tmpl/module/workplans/workplans.js @@ -56,23 +56,7 @@ let workplans ={ columns: [ { title: "jour",field: "weekday",formatter:wdayFormatter,headerSort: false }, { title: "heures de
travail",field: "dspworkdata",headerSort: false,hozAlign:"center",formatter:sizeFormatter}, - // { title: "heures de travail", - // columns: [ - // { title: "début 1",field: "start1",width: 80,headerSort: false }, - // { title: "fin 1",field: "end1",width: 80,headerSort: false }, - // { title: "début 2",field: "start2",width: 80,headerSort: false }, - // { title: "fin 2",field: "end2",width: 80,headerSort: false } - // ] - // }, { title: "heures de
pause",field: "dsppausedata",headerSort: false,hozAlign:"center",formatter:sizeFormatter}, - // { title : "pauses", - // columns:[ - // { title: "début 1",field: "pausestart1",width: 80,headerSort: false }, - // { title: "fin 1",field: "pauseend1",width: 80,headerSort: false }, - // { title: "début 2",field: "pausestart2",width: 80,headerSort: false }, - // { title: "fin 2",field: "pauseend2",width: 80,headerSort: false }, - // ] - // }, { title: "total
pause",field: "pause",width: 80,headerSort: false }, { title: "coupure",field: "interruption",width: 90,headerSort: false}, { title: "total
travail",field: "dayhours",width: 80,formatter:boldFormatter,headerSort: false,bottomCalc:workplans.weekhourssum }, @@ -236,7 +220,7 @@ let workplans ={ return false; }, checktime: function(id){ - console.log("checktime ID",id); + //console.log("checktime ID",id); timecalc.validateTime(document.getElementById(id)); workplans.disablesave =false; let mt1 = 0;let mt2 = 0;let mtp1 = 0;let mtp2 = 0;let mtp = 0; @@ -254,8 +238,8 @@ let workplans ={ let odp = document.getElementById("pause"); let odt1 = document.getElementById("total1"); let odt2 =document.getElementById("total2"); - let opt1 =document.getElementById("totalpause1"); - let opt2 =document.getElementById("totalpause2"); + let opt1 =document.getElementById("pausetotal1"); + let opt2 =document.getElementById("pausetotal2"); let oirupt = document.getElementById("interruptionhours"); let owkh = document.getElementById("dayhours"); let msg = ""; @@ -284,6 +268,7 @@ let workplans ={ pe1 = pe1 + 1440; } mtp1 = pe1-ps1; + //console.log(mtp1); opt1.value=timecalc.MinutesToTime(mtp1); if (ps1 < s1){ workplans.disablesave = true; @@ -345,6 +330,7 @@ let wdayFormatter = function(cell, formatterParams){ }; let boldFormatter = function(cell, formatterParams){ + if (cell.getValue() == "00:00"){ return "";} cell.getElement().style.fontWeight="bold";return cell.getValue(); }; diff --git a/desktopapp/main.js b/desktopapp/main.js index 1674b689..71c9fabe 100644 --- a/desktopapp/main.js +++ b/desktopapp/main.js @@ -39,24 +39,27 @@ function createWindow () { console.log("loding URL:" + appcfg.host) mainWindow.loadURL(appcfg.host,{userAgent: ua}); if (os.platform() == "darwin"){ - console.log("Set Menu") - const template = [] - template.unshift({ - label: app.getName(), - submenu: [ - {role: 'about'}, - {type: 'separator'}, - {role: 'services', submenu: []}, - {type: 'separator'}, - {role: 'hide'}, - {role: 'hideothers'}, - {role: 'unhide'}, - {type: 'separator'}, - {role: 'quit'} - ] - }) - const menu = Menu.buildFromTemplate(template) - Menu.setApplicationMenu(menu) + // console.log("Set Menu") + let template = [{ + label: "Application", + submenu: [ + { label: "About Application", selector: "orderFrontStandardAboutPanel:" }, + { type: "separator" }, + { label: "Quit", accelerator: "Command+Q", click: function() { app.quit(); }} + ]}, { + label: "Edit", + submenu: [ + { label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:" }, + { label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" }, + { type: "separator" }, + { label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:" }, + { label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:" }, + { label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:" }, + { label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:" } + ]} + ]; + + Menu.setApplicationMenu(Menu.buildFromTemplate(template)) } else { mainWindow.setMenu(null) }