From 2efa76319d540837b51a51a05fb07487ee63c25a Mon Sep 17 00:00:00 2001 From: "kilian (dks-laptop)" Date: Sun, 16 Feb 2020 09:23:16 +0100 Subject: [PATCH] v20200215 --- .../periode_20191230-20200223_pot_period.pdf | Bin 17684 -> 17720 bytes .../data/tmp/pot_period1348.footer.html | 36 ++++++ .../data/tmp/pot_period1348.header.html | 31 +++++ backoffice/data/tmp/pot_period1348.html | 71 ++++++++++++ backoffice/img/icons/coin.svg | 1 + backoffice/img/icons/edit.svg | 4 +- backoffice/img/icons/pay.svg | 1 + backoffice/img/icons/plus.svg | 4 +- backoffice/img/icons/plus2.svg | 3 + backoffice/img/icons/remove.svg | 8 +- backoffice/img/icons/remove_2.svg | 3 + backoffice/img/icons/rename.svg | 1 + backoffice/img/icons/table.svg | 1 + backoffice/js/formsave.js | 4 +- backoffice/js/module_global.js | 35 +++++- backoffice/tmpl/module/companies/index.tt | 18 +-- .../tmpl/module/companies/staffgroups.js | 29 ++--- backoffice/tmpl/module/periods/index.tt | 35 +++++- .../tmpl/module/periods/reportperiod.js | 38 +++++- backoffice/tmpl/module/staff/index.tt | 23 ++-- backoffice/tmpl/module/staff/staffcontract.js | 63 +++++++--- backoffice/tmpl/module/users/index.tt | 10 +- backoffice/tmpl/module/workplans/index.tt | 108 ++++++++++++------ backoffice/tmpl/module/workplans/workplans.js | 94 +++++++++++---- 24 files changed, 485 insertions(+), 136 deletions(-) create mode 100644 backoffice/data/tmp/pot_period1348.footer.html create mode 100644 backoffice/data/tmp/pot_period1348.header.html create mode 100644 backoffice/data/tmp/pot_period1348.html create mode 100644 backoffice/img/icons/coin.svg create mode 100644 backoffice/img/icons/pay.svg create mode 100644 backoffice/img/icons/plus2.svg create mode 100644 backoffice/img/icons/remove_2.svg create mode 100644 backoffice/img/icons/rename.svg create mode 100644 backoffice/img/icons/table.svg diff --git a/backoffice/data/output/pot/periode_20191230-20200223_pot_period.pdf b/backoffice/data/output/pot/periode_20191230-20200223_pot_period.pdf index 548398e0ac597b367f196b6614a65f5c13f31690..dde685514e000eb53efcc1e06dccc5270fdf86bc 100644 GIT binary patch delta 7721 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 + + + + + + + + + + + +
 
+ Page / +
+ \ No newline at end of file diff --git a/backoffice/data/tmp/pot_period1348.header.html b/backoffice/data/tmp/pot_period1348.header.html new file mode 100644 index 00000000..dcac0a43 --- /dev/null +++ b/backoffice/data/tmp/pot_period1348.header.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + +
+

Plan d'Organisation du Travail

+

du 30.12.2019 au 23.02.2020

+
+
+ Portanova s.à r.l.
+ rue de la faïencerie
+ Luxembourg

+
+ TVA:
+
+
+ diff --git a/backoffice/data/tmp/pot_period1348.html b/backoffice/data/tmp/pot_period1348.html new file mode 100644 index 00000000..b8d46dd7 --- /dev/null +++ b/backoffice/data/tmp/pot_period1348.html @@ -0,0 +1,71 @@ + + + + + + Invoice + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/backoffice/img/icons/coin.svg b/backoffice/img/icons/coin.svg new file mode 100644 index 00000000..bd41fa89 --- /dev/null +++ b/backoffice/img/icons/coin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backoffice/img/icons/edit.svg b/backoffice/img/icons/edit.svg index c0bb9ac9..ab200c39 100644 --- a/backoffice/img/icons/edit.svg +++ b/backoffice/img/icons/edit.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/backoffice/img/icons/pay.svg b/backoffice/img/icons/pay.svg new file mode 100644 index 00000000..559f80da --- /dev/null +++ b/backoffice/img/icons/pay.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backoffice/img/icons/plus.svg b/backoffice/img/icons/plus.svg index 08e85b5e..c46887f6 100644 --- a/backoffice/img/icons/plus.svg +++ b/backoffice/img/icons/plus.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/backoffice/img/icons/plus2.svg b/backoffice/img/icons/plus2.svg new file mode 100644 index 00000000..08e85b5e --- /dev/null +++ b/backoffice/img/icons/plus2.svg @@ -0,0 +1,3 @@ + + + diff --git a/backoffice/img/icons/remove.svg b/backoffice/img/icons/remove.svg index e459477f..026b9ee0 100644 --- a/backoffice/img/icons/remove.svg +++ b/backoffice/img/icons/remove.svg @@ -1,3 +1,5 @@ - - - + + + + \ No newline at end of file diff --git a/backoffice/img/icons/remove_2.svg b/backoffice/img/icons/remove_2.svg new file mode 100644 index 00000000..e459477f --- /dev/null +++ b/backoffice/img/icons/remove_2.svg @@ -0,0 +1,3 @@ + + + diff --git a/backoffice/img/icons/rename.svg b/backoffice/img/icons/rename.svg new file mode 100644 index 00000000..d1d7f311 --- /dev/null +++ b/backoffice/img/icons/rename.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backoffice/img/icons/table.svg b/backoffice/img/icons/table.svg new file mode 100644 index 00000000..d398197a --- /dev/null +++ b/backoffice/img/icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backoffice/js/formsave.js b/backoffice/js/formsave.js index 9e2e2149..4bd5f2ec 100644 --- a/backoffice/js/formsave.js +++ b/backoffice/js/formsave.js @@ -261,7 +261,7 @@ function fillformbydataclass2(dataclass,choices,data){ for (var f in frm){ //console.log(frm[f]); if (data[frm[f].id]){ - //console.log(frm[f].id + " => " + data[frm[f].id]); + if (frm[f].tagName == 'INPUT'){ if (frm[f].type == "checkbox"){ @@ -271,7 +271,9 @@ function fillformbydataclass2(dataclass,choices,data){ frm[f].checked = false; } } else if (frm[f].classList.contains("datefield")){ + console.log("DateField:" + frm[f].id + " => " + data[frm[f].id]); frm[f]._flatpickr.setDate(data[frm[f].id]); + } else if (frm[f].classList.contains("timefield")){ frm[f]._flatpickr.setDate(data[frm[f].id]); }else if (frm[f].classList.contains("choices__input")){ diff --git a/backoffice/js/module_global.js b/backoffice/js/module_global.js index 000f66b5..da31dc81 100644 --- a/backoffice/js/module_global.js +++ b/backoffice/js/module_global.js @@ -81,22 +81,22 @@ var timecalc = { StringToTime: function(strin){ strin = strin.substring(0,5); strin = strin.replace(/\D/g,''); - console.log(strin); + //console.log(strin); if (strin.length == 0){ return "";} if (strin.length <= 2){ - console.log(strin + "<=2"); + //console.log(strin + "<=2"); if (strin > "23") {return ""} else { return timecalc.lpad(strin,2,'0')+":00"; } } else if (strin.length == 3){ - console.log(strin + "==3"); + //console.log(strin + "==3"); var hours = strin.substring(0,1); var minutes = strin.substring(1,3); - console.log(hours + ":" + minutes) + //console.log(hours + ":" + minutes) if (minutes > "59"){ return "";} return timecalc.lpad(hours,2,'0')+ ":"+ timecalc.lpad(minutes,2,'0'); } else if (strin.length == 4){ - console.log(strin + "==4"); + //console.log(strin + "==4"); var hours = strin.substring(0,2); var minutes = strin.substring(2,4); if ((hours > "23") || (minutes > "59")){return "";} @@ -123,6 +123,31 @@ var timecalc = { return strin + ":00"; }, + MinutesToInterval: function(minutes){ + if ((minutes == null) || (minutes == "")){ return "0:00";} + var prep =""; + if (minutes < 0){ + prep = "-"; + minutes = minutes * -1; + } + var hours = parseInt(minutes/60); + var restminutes = minutes-(hours*60); + return prep+hours+ ":"+ timecalc.lpad(restminutes,2,'0'); + }, + IntervalToMinutes: function(strin){ + if (strin == "" || strin == null){ + return 0; + } + var mult = 1; + if (strin.startsWith("-")){ + mult = -1; + strin = strin.replace(/-/g,''); + } + var spl = strin.split(":"); + var hours = parseInt(spl[0]) * 60; + var minutes = parseInt(spl[1]); + return (hours+minutes) * mult; + }, validateTime(obj){ obj.value = timecalc.StringToTime(obj.value); return false; diff --git a/backoffice/tmpl/module/companies/index.tt b/backoffice/tmpl/module/companies/index.tt index eb09b479..d16b8a03 100644 --- a/backoffice/tmpl/module/companies/index.tt +++ b/backoffice/tmpl/module/companies/index.tt @@ -3,12 +3,12 @@
- + @@ -55,7 +55,7 @@
- +
@@ -67,9 +67,9 @@

Départements

- - - + + +
@@ -95,7 +95,7 @@
- +
diff --git a/backoffice/tmpl/module/companies/staffgroups.js b/backoffice/tmpl/module/companies/staffgroups.js index 6fc25a0c..8e6e9594 100644 --- a/backoffice/tmpl/module/companies/staffgroups.js +++ b/backoffice/tmpl/module/companies/staffgroups.js @@ -11,23 +11,18 @@ var staffgroups = { height: "400px", layout: "fitDataFill", selectable: 1, - rowContext:function(e, row){ - //e - the click event object - //row - row component - e.preventDefault(); // prevent the browsers default context menu form appearing. - }, - columns: [{ - title: "Département", - field: "groupname" - },{ - title: "Groupe standard", - field: "isdefault",formatter:"tickCross", formatterParams:{ - allowEmpty:true, - allowTruthy:true, - tickElement:'', - crossElement:'×', -} -}] + rowContext:function(e, row){ e.preventDefault(); }, + columns: [{ title: "Département", field: "groupname" } +// ,{ +// title: "Groupe standard", +// field: "isdefault",formatter:"tickCross", formatterParams:{ +// allowEmpty:true, +// allowTruthy:true, +// tickElement:'', +// crossElement:'×', +// } +// } +] }); staffgroups.gettbldata(); }, diff --git a/backoffice/tmpl/module/periods/index.tt b/backoffice/tmpl/module/periods/index.tt index d531dc1d..8e2899cc 100644 --- a/backoffice/tmpl/module/periods/index.tt +++ b/backoffice/tmpl/module/periods/index.tt @@ -3,8 +3,7 @@
- + @@ -33,7 +34,34 @@
- + +
+
+
+ × +

Heures Payés

+
+
+
+
+
+

Periode du .. au ..

+
+ [% fieldhidden("id_staffreportperiod",'staffreportperiod','ident') %] + [% fieldintervalbox("payedhours",'staffreportperiod','Heures Payés','','','') %] +
+ +
+
+
+
+ + +
+
+
+ +
@@ -90,6 +118,7 @@
+
[% INCLUDE block/dlgdeleterow.tt %] [% INCLUDE block/dlgmessage.tt %] diff --git a/backoffice/tmpl/module/periods/reportperiod.js b/backoffice/tmpl/module/periods/reportperiod.js index 70060063..6a415212 100644 --- a/backoffice/tmpl/module/periods/reportperiod.js +++ b/backoffice/tmpl/module/periods/reportperiod.js @@ -23,7 +23,7 @@ var reportperiod ={ groupStartOpen:[true], groupClosedShowCalcs:true, groupHeader:[ - function(value, count, data){ //generate header contents for gender groups + function(value, count, data){ //generate header return value; }, ], @@ -41,7 +41,8 @@ var reportperiod ={ {title: "Récup", field:"recuperationhours",sorter: false}, {title: "congé", field:"vacancyhours",sorter: false}, {title: "Total", field:"totalhours",sorter: false}, - {title: "Rest", field:"hoursdiff",sorter: false,bottomCalc:reportperiod.periodrestsum} // ,bottomCalcFormatter:"html" + {title: "à récup.", field:"hoursdiff",sorter: false,bottomCalc:reportperiod.periodrestsum}, + {title: "payés", field:"payedhours",sorter: false} ] } ] @@ -88,11 +89,36 @@ var reportperiod ={ return false; }, periodrestsum: function(values, data, calcParams){ - return '00:00'; + var mts = 0; + //console.log(values); + for (var m in values){ + mts += timecalc.IntervalToMinutes(values[m]); + } + return timecalc.MinutesToInterval(mts); }, - togglegroups: function(){ + showdlgpayedhours: function(){ + cleanform2("rppayedhours",{}); + var prd = reportperiod.tbl.getSelectedData(); + if (prd[0]){ + document.getElementById("title_rppayedhours").innerHTML = "Période du " +moment(prd[0].startdate).format("DD.MM.YYYY") + " au " + moment(prd[0].enddate).format("DD.MM.YYYY"); + document.getElementById("id_staffreportperiod").value=prd[0].id; + document.getElementById("payedhours").value=prd[0].payedhours; + //fillformbydataclass2("staffreportperioddays",{},prd[0]); + module.viewdialog('rppayedhours'); + } + }, + savepayedhours: function(){ + document.getElementById('dlg_rppayedhours').style.display='none'; + var rpdata = getformcontent("rppayedhours"); + rpdata["ident_staffreportperiod_id"] = rpdata["ident_staffreportperiod_id_staffreportperiod"]; + delete rpdata["ident_staffreportperiod_id_staffreportperiod"]; + rpdata["fn"] ="saveform"; + rpdata["schemata"] = schemata; + console.log(rpdata); + formsaved({}); + req.reqdata("POST","index.cgi",rpdata,reportperiod.gettbldata); + + return false; } - - } \ No newline at end of file diff --git a/backoffice/tmpl/module/staff/index.tt b/backoffice/tmpl/module/staff/index.tt index 8c67d6b9..0f390116 100644 --- a/backoffice/tmpl/module/staff/index.tt +++ b/backoffice/tmpl/module/staff/index.tt @@ -2,11 +2,11 @@
- + @@ -43,7 +43,7 @@
- +
@@ -54,9 +54,9 @@
- - - + + +
@@ -84,14 +84,17 @@
[% fieldintervalbox("weekhours","staffcontract","heures par semaine","w3-third","","","") %] - [% fieldselectbox("weekdays","staffcontract","jours par semaine","w3-third","","","") %] + [% fieldselectbox("weekdays","staffcontract","jours de travail par semaine","w3-third","","","") %] +
+ [% fieldmultiselectbox("defaultfreedays","staffcontract","Jours de semaines libre ","","","","") %] +
[% fieldselectbox('id_workplan','staffcontract','POT (Modèle)','w3-third','','','') %]
- +
diff --git a/backoffice/tmpl/module/staff/staffcontract.js b/backoffice/tmpl/module/staff/staffcontract.js index dc798242..b458f332 100644 --- a/backoffice/tmpl/module/staff/staffcontract.js +++ b/backoffice/tmpl/module/staff/staffcontract.js @@ -1,7 +1,8 @@ var staffcontract = { name: "staffcontract", tbl: null, - choices:{"weekdays":null,"id_workplan":null}, + choices:{"weekdays":null,"id_workplan":null,"defaultfreedays":null}, + maxfreedays: 1, initform: function(){ staffcontract.choices["id_workplan"] = new Choices('#id_workplan',{ searchEnabled: false, @@ -15,30 +16,44 @@ var staffcontract = { removeItemButton: false, choices : [{value:"1",label:"1"},{value:"2",label:"2"},{value:"3",label:"3"},{value:"4",label:"4"},{value:"5",label:"5"},{value:"6",label:"6"},{value:"7",label:"7"}] }); + staffcontract.choices["defaultfreedays"] = new Choices('#defaultfreedays',{ + searchEnabled: false, + itemSelectText: '', + itemSort: false, + removeItemButton: true, + shouldSort: false, + shouldSortItems: false, + maxItemCount: staffcontract.maxfreedays, + maxItemText: (maxItemCount) => { + return `max. de jours de semaine ajoutées`; + }, + choices : [{label:"lundi",value:"1"},{label:"mardi",value:"2"},{label:"mercredi",value:"3"},{label:"jeudi",value:"4"},{label:"vendredi",value:"5"},{label:"samedi",value:"6"},{label:"dimanche",value:"7"}] + }); flatpickr("#startdate",{altInput: true, altFormat: "d.m.Y", dateFormat: "Y-m-d", "locale": "fr", weekNumbers: true, - "disable": [ - function(date) { - // return true to disable - return (date.getDay() !== 1); - } - ], + // "disable": [ + // function(date) { + // // return true to disable + // return (date.getDay() !== 1); + // } + // ], }); flatpickr("#enddate",{altInput: true, altFormat: "d.m.Y", dateFormat: "Y-m-d", "locale": "fr", weekNumbers: true, - "disable": [ - function(date) { - // return true to disable - return (date.getDay() !== 0); - } - ], + // "disable": [ + // function(date) { + // // return true to disable + // return (date.getDay() !== 0); + // } + // ], }); + document.getElementById("weekdays").addEventListener('change', function(event){staffcontract.setmaxfreedays(event,this.id);}); }, inittable: function(){ staffcontract.initform(); @@ -58,6 +73,7 @@ var staffcontract = { {title: "fin", field: "enddate",headerSort: false,formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""}}, {title: "h/semaine",field: "weekhours",align: "right",headerSort: false}, {title: "j/semaine",field: "weekdays",align: "right", headerSort: false,formatter:"money",formatterParams:{decimal:",",thousand:".",symbol:" ",symbolAfter:"",precision:0}}, + {title: "j/semaine libre",field: "defaultfreedays",headerSort: false}, {title: "POT(modèle)",field: "workplan",headerSort: false} ] }); @@ -100,7 +116,7 @@ var staffcontract = { fillform: function(data){ //console.log("Fill Form 1"); if (data && data.sqldata){ - //console.log("Fill Form 2"); + console.log(data.sqldata[0]); fillformbydataclass2(staffcontract.name,staffcontract.choices,data.sqldata[0]); } }, @@ -130,6 +146,13 @@ var staffcontract = { } //console.log(f + " => " + flds[f]); } + if (parseInt(flds["staffcontract_weekdays"]) + flds["staffcontract_defaultfreedays"].length != 7){ + document.getElementById("contractmsg").innerHTML= '
jours de semaine libre incomplet!
'; + return false; + } + console.log(); + + //if ( + ) if (bok == false){ document.getElementById("contractmsg").innerHTML= '
Tous les champs sauf "date fin" sans requis!
'; return false; @@ -164,4 +187,16 @@ var staffcontract = { fillwptemplates: function(data){ fillselectlist(staffcontract.choices["id_workplan"],data.sqldata,'id','workplan'); }, + setmaxfreedays: function(ev,id){ + + console.log(ev); + + var wmax = document.getElementById("weekdays").value; + staffcontract.maxfreedays = 7-wmax; + console.log("Maxfree " + staffcontract.maxfreedays); + staffcontract.choices["defaultfreedays"].config.maxItemCount = staffcontract.maxfreedays; + console.log(staffcontract.choices["defaultfreedays"]) + staffcontract.choices["defaultfreedays"].removeActiveItems(); + return false; + } } \ No newline at end of file diff --git a/backoffice/tmpl/module/users/index.tt b/backoffice/tmpl/module/users/index.tt index 8031e5c1..4f33bdbe 100644 --- a/backoffice/tmpl/module/users/index.tt +++ b/backoffice/tmpl/module/users/index.tt @@ -3,11 +3,11 @@
- +
@@ -52,7 +52,7 @@
- +
diff --git a/backoffice/tmpl/module/workplans/index.tt b/backoffice/tmpl/module/workplans/index.tt index e5913f7d..de9e7fcf 100644 --- a/backoffice/tmpl/module/workplans/index.tt +++ b/backoffice/tmpl/module/workplans/index.tt @@ -6,11 +6,12 @@
- +
- - - + + + +