From 3cb91ec905a19945a03e343a76354566f7d37fac Mon Sep 17 00:00:00 2001 From: kilian Date: Thu, 27 Aug 2020 14:57:35 +0200 Subject: [PATCH] v20200827 --- website/app/data/reports/pot/pot_period.conf | 12 - .../app/data/reports/pot/pot_period.footer.tt | 36 -- .../app/data/reports/pot/pot_period.header.tt | 28 -- website/app/data/reports/pot/pot_period.tt | 222 --------- .../app/data/reports/pot/pot_period/pot.ttf | Bin 1372 -> 0 bytes .../reports/pot/pot_period/pot.ttf.b64.txt | 1 - .../reports/pot/pot_staffmember_period.conf | 12 - .../pot/pot_staffmember_period.footer.tt | 36 -- .../pot/pot_staffmember_period.header.tt | 28 -- .../reports/pot/pot_staffmember_period.tt | 226 --------- .../pot/pot_staffmember_period/pot.ttf | Bin 1372 -> 0 bytes .../pot_staffmember_period/pot.ttf.b64.txt | 1 - website/app/lib/POT/Period.pm | 2 +- website/app/lib/POT/Report.pm | 431 ++++++++++++------ website/app/lib/dksdb.pm | 27 ++ website/app/lib/pdfreport.pm | 129 ------ website/app/report.cgi | 69 +-- website/app/static/js/app.js | 2 +- website/app/static/js/dataform.js | 2 +- .../app/tmpl/module/admin/schemadataset.js | 2 +- website/app/tmpl/module/admin/staffgroups.js | 2 +- website/app/tmpl/module/admin/worktimes.js | 2 +- website/app/tmpl/module/company/company.js | 2 +- .../app/tmpl/module/periods/reportperiod.js | 16 +- .../tmpl/module/periods/staffperiodweeks.js | 10 +- website/app/tmpl/module/staff/staff.js | 4 +- .../app/tmpl/module/staff/staffcontract.js | 12 +- website/app/tmpl/module/staff/staffperiods.js | 14 +- .../app/tmpl/module/workplans/workplans.js | 6 +- 29 files changed, 364 insertions(+), 970 deletions(-) delete mode 100644 website/app/data/reports/pot/pot_period.conf delete mode 100644 website/app/data/reports/pot/pot_period.footer.tt delete mode 100644 website/app/data/reports/pot/pot_period.header.tt delete mode 100644 website/app/data/reports/pot/pot_period.tt delete mode 100644 website/app/data/reports/pot/pot_period/pot.ttf delete mode 100644 website/app/data/reports/pot/pot_period/pot.ttf.b64.txt delete mode 100644 website/app/data/reports/pot/pot_staffmember_period.conf delete mode 100644 website/app/data/reports/pot/pot_staffmember_period.footer.tt delete mode 100644 website/app/data/reports/pot/pot_staffmember_period.header.tt delete mode 100644 website/app/data/reports/pot/pot_staffmember_period.tt delete mode 100644 website/app/data/reports/pot/pot_staffmember_period/pot.ttf delete mode 100644 website/app/data/reports/pot/pot_staffmember_period/pot.ttf.b64.txt delete mode 100644 website/app/lib/pdfreport.pm diff --git a/website/app/data/reports/pot/pot_period.conf b/website/app/data/reports/pot/pot_period.conf deleted file mode 100644 index 635bcde8..00000000 --- a/website/app/data/reports/pot/pot_period.conf +++ /dev/null @@ -1,12 +0,0 @@ -PDF_TOP="20mm" -PDF_BOTTOM="15mm" -PDF_LEFT="5mm" -PDF_RIGHT="5mm" -PDF_SIZE="A4" -PDF_ORIENTATION="Landscape" -PDF_ENGINE="Template::Toolkit" -PDF_ENCODING="UTF-8" -TEMPLATE_DSN="" -TEMPLATE_DBUSER="" -TEMPLATE_DBPASSWORD="" -REPORT_NAME="POT Periode par Staff" \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_period.footer.tt b/website/app/data/reports/pot/pot_period.footer.tt deleted file mode 100644 index 6f32a0c7..00000000 --- a/website/app/data/reports/pot/pot_period.footer.tt +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - -
 
- Page / -
- \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_period.header.tt b/website/app/data/reports/pot/pot_period.header.tt deleted file mode 100644 index 5f67e443..00000000 --- a/website/app/data/reports/pot/pot_period.header.tt +++ /dev/null @@ -1,28 +0,0 @@ -[% USE DBI %] -[% USE dksdb = DBI(dsn, dbuser, dbpassword) %] -[% qgcompany = dksdb.prepare("select * from companies WHERE schemata= ?") %] -[% gcompany = qgcompany.execute(schemata) %] -[% cmp = gcompany.get_all() %] -[% #qreport = dksdb.prepare("select to_char(startdate,'DD.MM.YYYY') as startdate, to_char(enddate,'DD.MM.YYYY') as enddate from ${schemata}.reportperiod WHERE id= ?") %] -[% #grep = qreport.execute(id_reportperiod) %] -[% #rep = grep.get_all() %] - - - - - - - - - - -
-

Plan d'Organisation du Travail

-

-
- [% cmp.0.company %] [% cmp.0.socialtype %]
- [% cmp.0.address %]
- [% cmp.0.zip %] [% cmp.0.city%]

-
-
- diff --git a/website/app/data/reports/pot/pot_period.tt b/website/app/data/reports/pot/pot_period.tt deleted file mode 100644 index 70c44472..00000000 --- a/website/app/data/reports/pot/pot_period.tt +++ /dev/null @@ -1,222 +0,0 @@ -[% USE DBI %] -[% USE dksdb = DBI(dsn, dbuser, dbpassword) %] - - - - - POT - Staffmember - Period - - - - - [% stafflist = dksdb.prepare("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod in (${id_periodlist}) and spd.id_staff = ? order by st.surname,st.prename,spd.periodstart asc;") %] - [% staffmemberperiod = dksdb.prepare("select st.prename,st.surname,spd.* from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod= ? and spd.id_staff= ? order by spd.daydate asc;") %] - [% staffperiodsums = dksdb.prepare("select * from ${schemata}.vw_staffreportperiodlist where id_reportperiod=? and id_staff=?;") %] - - [% FOREACH wl = stafflist.execute(id_staff) %] - - - - - - - - - - - - - - - [% wdk = 0 %] - [% FOREACH pw = staffmemberperiod.execute(wl.id_reportperiod,id_staff) %] - [% wd = pw.weekdates.split(',') %] - [% IF wdk == 0 %] - [% dspwd = pw.dspweekdates.split(',') %] - - - - - - - - - - [% END %] - - [% WHILE pw.daydate != wd.$wdk and wdk < 7 %] - - [% wdk = wdk + 1 %] - [% END %] - - [% IF wdk < 7 %] - [% IF pw.timestart1 %] - - [% ELSE %] - - [% END %] - [% END %] - - [% wdk = wdk + 1 %] - [% IF wdk >= 7 %] - - [% wdk = 0 %] - [% END %] - [% END %] - -
[% wl.periodstart %] - [% wl.periodend %][% wl.surname %] [% wl.prename %]
SemaineLundiMardiMecrediJeudiVendrediSamediDimancheTotaux
[% pw.dspweekshort %][% dspwd.0 %][% dspwd.1 %][% dspwd.2 %][% dspwd.3 %][% dspwd.4 %][% dspwd.5 %][% dspwd.6 %]
  - - - - - - - - - - - - - - - - - - - - - -
[% pw.timestart1 %][% pw.timeend1 %][% IF pw.workhours %][% pw.workhours %][% ELSE %] [% END %]
[% IF pw.timestart2 %][% pw.timestart2 %][% END %][% IF pw.timestart2 %][% pw.timeend2 %][% ELSE %] [% END %][% IF pw.recuperationhours %][% pw.recuperationhours %][% ELSE %] [% END %]
  [% IF pw.vacancyhours %][% pw.vacancyhours %][%ELSE%] [% END %]
[% IF pw.timepause %][% END %][% IF pw.timepause %][% pw.timepause %][% END %] 
-
  - - - - - - -
[% IF pw.week_totalhours && pw.week_totalhours != "00:00" %][% pw.week_totalhours %][% ELSE %] [%END %]
[% IF pw.week_recuperationhours && pw.week_recuperationhours != "00:00" %][% pw.week_recuperationhours %][% ELSE %] [%END %]
[% IF pw.week_vacancyhours && pw.week_vacancyhours != "00:00" %][% pw.week_vacancyhours %][% ELSE %] [%END %]
[% IF pw.week_diffhours && pw.week_diffhours != "00:00" %][% pw.week_diffhours %][% ELSE %] [%END %]
-
- [% sptotal = staffperiodsums.execute(wl.id_reportperiod,id_staff) %] - [% spt = sptotal.get_all() %] - - - - - - - - - - - - - - - - - - - - -
Totaux heures pour la période: [% wl.periodstart %] - [% wl.periodend %]
contractuelles:[% spt.0.contracthours %]travaillées:[% spt.0.workhours %]Congés:[% spt.0.vacancyhours %]Récupérées:[% spt.0.recuperationhours %]Total:[% spt.0.totalhours %]Payées:[% spt.0.payedhours %]à récupérer:[% spt.0.hoursdiff %]
-
- [% END %] - - \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_period/pot.ttf b/website/app/data/reports/pot/pot_period/pot.ttf deleted file mode 100644 index df5809e2bc68207c8a13e769de3c631939aa38b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1372 zcmaJ>J#5=X6#kABMNyJTyP-rec4bCNEk(9zS&}8EHWCFvj2LiSL^V9LLrvQ%?bZ?n znL+I>Xn_6>?N+ovr)F({Y#B0m2s(9Wvu13E1f4o`DcY)!Kb4)OM;zbxz3;tuhr36D z0Z8C3c$D9GbFQMiB9zGUnC8|_$LeXDPd^6O1n~{qI_!}hCGOdneQ^Bl_dh@UocIyV zpZ40;uKwPizXSYD((8NV5I^L9Abywl#l4Pu6bG8b?-N%KoE-~A{6+i`@npw3>OsP1 z#Gep1x>l#%y8q-;;=fY;&7O1U(mrVj%bpIN2m2BNzc|_e$gV7 zceXAAqbTK!j{_Q){gBhR|M&4|4o-M_X#EDf`;nPgt<)E4Q~B3&QIVL;8dul?fwY!o zTDn>x+Nd{7Rv3yV%b%;H#i$rfYhF~!FOp8F(P`$_h~{$zN|-9thRIWPg4NS3pJ-l? zFYq&Qee}lU?Cj(}_eLibrf0?4*tojgiAOV;*3#12+R{=hlM!NX-{$r4Sd}zwe*9Z0 z7BiEHq@sxXA8}D$tgo%rx5f?QX0cdWz1FmI`NTPOrCh!&>7r7sMpBX#lV+01xU9s+ zE{th2DJdf=g<3?F*!!jRi>6_iPZ^u2X(BJD%6ei>mgEs#qM?t-(nu+(&!s$R{yfLC zdxDrR7B))LmqxFbQU!H=adEv;EG#O@^z>J@{eh;cx#WmAc{O`&tH=w2m@7=RE|rRm zaa{JwtG+Yn9lF177LLAqM_K*@iHP3{&u%<>-2;IQZ;iek>X~3rj^Bd_;^|ILyC8@V z0wo|`8u6yj;!u&rb3a4CC&9NdtQ;f+Zy685xOzU8)e zjqPJ&b;r5oI9(GfeqEO;+mzb%SF_-f-6h{Pj_JLM9g4a|)7yhd2kZZf&K~p2_+N#f BxHSL( diff --git a/website/app/data/reports/pot/pot_period/pot.ttf.b64.txt b/website/app/data/reports/pot/pot_period/pot.ttf.b64.txt deleted file mode 100644 index 33519cd1..00000000 --- a/website/app/data/reports/pot/pot_period/pot.ttf.b64.txt +++ /dev/null @@ -1 +0,0 @@ -data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMg8SBSoAAAC8AAAAYGNtYXAXVtKHAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zq3RsYsAAAF4AAAB0GhlYWQZavrxAAADSAAAADZoaGVhB4IDxgAAA4AAAAAkaG10eAoAAEAAAAOkAAAAFGxvY2EAKAD8AAADuAAAAAxtYXhwAAkAigAAA8QAAAAgbmFtZVKkxIkAAAPkAAABVnBvc3QAAwAAAAAFPAAAACAAAwMAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAAPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6QD//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAADAED/wAPAA8AACgA3AIcAAAEOAQczMjY1NCYjJSIGBw4BBw4BNz4BNQ4BBxYXHgEXFjMyNz4BNzY3LgEnDgEHDgE3PgE1LgEjEzIWBwYHBhYXFhceARUOAQczMhYVFAYrAQYHDgEHBiMiJy4BJyYnNDc+ATc2Ny4BJyY2Nz4BMzIWBwYHBhYXFhc+ATMyFhcuAScmNjc+ATMDLAoZEEUfLS0f/oMQHw8BGR4HNBEbFGJtCgYYGFI7O0xMOztSGBgFCFtRAxkbCDMRGxQXMRudCQgILgwLDA8PB2mGAgYDBzZMTDZgGyAgSCgoKklBQGciIwsTFEYwMDkJGQcPKDMEFQkJCAksDAwKDg8IESERFywVCRgHDyc0BBQJAWsqTiQuICAu0gEBHDQXBwMOFTAZCy8OCQ4NGQkJCQkZDQ4JDSoMGS8VBwMOFTEaAgMBgwUHIygnVCorKRBDKhUnFE44OE4yKCc4Dw8rK5dnZ3cXFBQiDA0HHz8eQWAoAwUFByInJlIpKigBAQICHj4dQWAoAwUAAAEAAAABAACaNXijXw889QALBAAAAAAA20XbOgAAAADbRds6AAD/wAPAA8AAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAA8AAAQAAAAAAAAAAAAAAAAAAAAUEAAAAAAAAAAAAAAACAAAABAAAQAAAAAAACgAUAB4A6AABAAAABQCIAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAAwAAAAEAAAAAAAIABwA8AAEAAAAAAAMAAwAqAAEAAAAAAAQAAwBRAAEAAAAAAAUACwAJAAEAAAAAAAYAAwAzAAEAAAAAAAoAGgBaAAMAAQQJAAEABgADAAMAAQQJAAIADgBDAAMAAQQJAAMABgAtAAMAAQQJAAQABgBUAAMAAQQJAAUAFgAUAAMAAQQJAAYABgA2AAMAAQQJAAoANAB0cG90AHAAbwB0VmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwcG90AHAAbwB0cG90AHAAbwB0UmVndWxhcgBSAGUAZwB1AGwAYQBycG90AHAAbwB0Rm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_staffmember_period.conf b/website/app/data/reports/pot/pot_staffmember_period.conf deleted file mode 100644 index 768e43e2..00000000 --- a/website/app/data/reports/pot/pot_staffmember_period.conf +++ /dev/null @@ -1,12 +0,0 @@ -PDF_TOP="20mm" -PDF_BOTTOM="15mm" -PDF_LEFT="5mm" -PDF_RIGHT="5mm" -PDF_SIZE="A4" -PDF_ORIENTATION="Landscape" -PDF_ENGINE="Template::Toolkit" -PDF_ENCODING="UTF-8" -TEMPLATE_DSN="" -TEMPLATE_DBUSER="" -TEMPLATE_DBPASSWORD="" -REPORT_NAME="POT periodes par salarié" \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_staffmember_period.footer.tt b/website/app/data/reports/pot/pot_staffmember_period.footer.tt deleted file mode 100644 index 6f32a0c7..00000000 --- a/website/app/data/reports/pot/pot_staffmember_period.footer.tt +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - -
 
- Page / -
- \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_staffmember_period.header.tt b/website/app/data/reports/pot/pot_staffmember_period.header.tt deleted file mode 100644 index 5f67e443..00000000 --- a/website/app/data/reports/pot/pot_staffmember_period.header.tt +++ /dev/null @@ -1,28 +0,0 @@ -[% USE DBI %] -[% USE dksdb = DBI(dsn, dbuser, dbpassword) %] -[% qgcompany = dksdb.prepare("select * from companies WHERE schemata= ?") %] -[% gcompany = qgcompany.execute(schemata) %] -[% cmp = gcompany.get_all() %] -[% #qreport = dksdb.prepare("select to_char(startdate,'DD.MM.YYYY') as startdate, to_char(enddate,'DD.MM.YYYY') as enddate from ${schemata}.reportperiod WHERE id= ?") %] -[% #grep = qreport.execute(id_reportperiod) %] -[% #rep = grep.get_all() %] - - - - - - - - - - -
-

Plan d'Organisation du Travail

-

-
- [% cmp.0.company %] [% cmp.0.socialtype %]
- [% cmp.0.address %]
- [% cmp.0.zip %] [% cmp.0.city%]

-
-
- diff --git a/website/app/data/reports/pot/pot_staffmember_period.tt b/website/app/data/reports/pot/pot_staffmember_period.tt deleted file mode 100644 index f420a676..00000000 --- a/website/app/data/reports/pot/pot_staffmember_period.tt +++ /dev/null @@ -1,226 +0,0 @@ -[% USE DBI %] -[% USE dksdb = DBI(dsn, dbuser, dbpassword) %] - - - - - POT - Staffmember - Period - - - - [% IF id_stafflist %] - [% stafflist = dksdb.prepare("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,to_char(spd.periodstart,'DD.MM.YYYY') as periodstart,to_char(spd.periodend,'DD.MM.YYYY') as spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? and spd.id_staff in (${id_stafflist}) order by st.surname,st.prename,spd.periodstart asc;") %] - [% ELSE %] - [% sqlcmd = "select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? order by st.surname,st.prename,spd.periodstart asc;" %] - [% stafflist = dksdb.prepare("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? order by st.surname,st.prename,spd.periodstart asc;") %] - [% END %] - [% staffmemberperiod = dksdb.prepare("select st.prename,st.surname,spd.* from ${schemata}.vw_staffreportperioddays spd left join ${schemata}.staff st on (spd.id_staff=st.id) where spd.id_reportperiod= ? and spd.id_staff= ? order by spd.daydate asc;") %] - [% staffperiodsums = dksdb.prepare("select * from ${schemata}.vw_staffreportperiodlist where id_reportperiod=? and id_staff=?;") %] - [% #sqlcmd %] - [% FOREACH wl = stafflist.execute(id_reportperiod) %] - - - - - - - - - - - - - - - [% wdk = 0 %] - [% FOREACH pw = staffmemberperiod.execute(id_reportperiod,wl.id_staff) %] - [% wd = pw.weekdates.split(',') %] - [% IF wdk == 0 %] - [% dspwd = pw.dspweekdates.split(',') %] - - - - - - - - - - [% END %] - - [% WHILE pw.daydate != wd.$wdk and wdk < 7 %] - - [% wdk = wdk + 1 %] - [% END %] - - [% IF wdk < 7 %] - [% IF pw.timestart1 %] - - [% ELSE %] - - [% END %] - [% END %] - - [% wdk = wdk + 1 %] - [% IF wdk >= 7 %] - - [% wdk = 0 %] - [% END %] - [% END %] - -
[% wl.periodstart %] - [% wl.periodend %][% wl.surname %] [% wl.prename %]
SemaineLundiMardiMecrediJeudiVendrediSamediDimancheTotaux
[% pw.dspweekshort %][% dspwd.0 %][% dspwd.1 %][% dspwd.2 %][% dspwd.3 %][% dspwd.4 %][% dspwd.5 %][% dspwd.6 %]
  - - - - - - - - - - - - - - - - - - - - - -
[% pw.timestart1 %][% pw.timeend1 %][% IF pw.workhours %][% pw.workhours %][% ELSE %] [% END %]
[% IF pw.timestart2 %][% pw.timestart2 %][% END %][% IF pw.timestart2 %][% pw.timeend2 %][% ELSE %] [% END %][% IF pw.recuperationhours %][% pw.recuperationhours %][% ELSE %] [% END %]
  [% IF pw.vacancyhours %][% pw.vacancyhours %][%ELSE%] [% END %]
[% IF pw.timepause %][% END %][% IF pw.timepause %][% pw.timepause %][% END %] 
-
  - - - - - - -
[% IF pw.week_totalhours && pw.week_totalhours != "00:00" %][% pw.week_totalhours %][% ELSE %] [%END %]
[% IF pw.week_recuperationhours && pw.week_recuperationhours != "00:00" %][% pw.week_recuperationhours %][% ELSE %] [%END %]
[% IF pw.week_vacancyhours && pw.week_vacancyhours != "00:00" %][% pw.week_vacancyhours %][% ELSE %] [%END %]
[% IF pw.week_diffhours && pw.week_diffhours != "00:00" %][% pw.week_diffhours %][% ELSE %] [%END %]
-
- [% sptotal = staffperiodsums.execute(id_reportperiod,wl.id_staff) %] - [% spt = sptotal.get_all() %] - - - - - - - - - - - - - - - - - - - - -
Totaux heures pour la période: [% wl.periodstart %] - [% wl.periodend %]
contractuelles:[% spt.0.contracthours %]travaillées:[% spt.0.workhours %]Congés:[% spt.0.vacancyhours %]Récupérées:[% spt.0.recuperationhours %]Total:[% spt.0.totalhours %]Payées:[% spt.0.payedhours %]à récupérer:[% spt.0.hoursdiff %]
-
- [% END %] - - \ No newline at end of file diff --git a/website/app/data/reports/pot/pot_staffmember_period/pot.ttf b/website/app/data/reports/pot/pot_staffmember_period/pot.ttf deleted file mode 100644 index df5809e2bc68207c8a13e769de3c631939aa38b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1372 zcmaJ>J#5=X6#kABMNyJTyP-rec4bCNEk(9zS&}8EHWCFvj2LiSL^V9LLrvQ%?bZ?n znL+I>Xn_6>?N+ovr)F({Y#B0m2s(9Wvu13E1f4o`DcY)!Kb4)OM;zbxz3;tuhr36D z0Z8C3c$D9GbFQMiB9zGUnC8|_$LeXDPd^6O1n~{qI_!}hCGOdneQ^Bl_dh@UocIyV zpZ40;uKwPizXSYD((8NV5I^L9Abywl#l4Pu6bG8b?-N%KoE-~A{6+i`@npw3>OsP1 z#Gep1x>l#%y8q-;;=fY;&7O1U(mrVj%bpIN2m2BNzc|_e$gV7 zceXAAqbTK!j{_Q){gBhR|M&4|4o-M_X#EDf`;nPgt<)E4Q~B3&QIVL;8dul?fwY!o zTDn>x+Nd{7Rv3yV%b%;H#i$rfYhF~!FOp8F(P`$_h~{$zN|-9thRIWPg4NS3pJ-l? zFYq&Qee}lU?Cj(}_eLibrf0?4*tojgiAOV;*3#12+R{=hlM!NX-{$r4Sd}zwe*9Z0 z7BiEHq@sxXA8}D$tgo%rx5f?QX0cdWz1FmI`NTPOrCh!&>7r7sMpBX#lV+01xU9s+ zE{th2DJdf=g<3?F*!!jRi>6_iPZ^u2X(BJD%6ei>mgEs#qM?t-(nu+(&!s$R{yfLC zdxDrR7B))LmqxFbQU!H=adEv;EG#O@^z>J@{eh;cx#WmAc{O`&tH=w2m@7=RE|rRm zaa{JwtG+Yn9lF177LLAqM_K*@iHP3{&u%<>-2;IQZ;iek>X~3rj^Bd_;^|ILyC8@V z0wo|`8u6yj;!u&rb3a4CC&9NdtQ;f+Zy685xOzU8)e zjqPJ&b;r5oI9(GfeqEO;+mzb%SF_-f-6h{Pj_JLM9g4a|)7yhd2kZZf&K~p2_+N#f BxHSL( diff --git a/website/app/data/reports/pot/pot_staffmember_period/pot.ttf.b64.txt b/website/app/data/reports/pot/pot_staffmember_period/pot.ttf.b64.txt deleted file mode 100644 index 33519cd1..00000000 --- a/website/app/data/reports/pot/pot_staffmember_period/pot.ttf.b64.txt +++ /dev/null @@ -1 +0,0 @@ -data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMg8SBSoAAAC8AAAAYGNtYXAXVtKHAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zq3RsYsAAAF4AAAB0GhlYWQZavrxAAADSAAAADZoaGVhB4IDxgAAA4AAAAAkaG10eAoAAEAAAAOkAAAAFGxvY2EAKAD8AAADuAAAAAxtYXhwAAkAigAAA8QAAAAgbmFtZVKkxIkAAAPkAAABVnBvc3QAAwAAAAAFPAAAACAAAwMAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAAPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6QD//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAADAED/wAPAA8AACgA3AIcAAAEOAQczMjY1NCYjJSIGBw4BBw4BNz4BNQ4BBxYXHgEXFjMyNz4BNzY3LgEnDgEHDgE3PgE1LgEjEzIWBwYHBhYXFhceARUOAQczMhYVFAYrAQYHDgEHBiMiJy4BJyYnNDc+ATc2Ny4BJyY2Nz4BMzIWBwYHBhYXFhc+ATMyFhcuAScmNjc+ATMDLAoZEEUfLS0f/oMQHw8BGR4HNBEbFGJtCgYYGFI7O0xMOztSGBgFCFtRAxkbCDMRGxQXMRudCQgILgwLDA8PB2mGAgYDBzZMTDZgGyAgSCgoKklBQGciIwsTFEYwMDkJGQcPKDMEFQkJCAksDAwKDg8IESERFywVCRgHDyc0BBQJAWsqTiQuICAu0gEBHDQXBwMOFTAZCy8OCQ4NGQkJCQkZDQ4JDSoMGS8VBwMOFTEaAgMBgwUHIygnVCorKRBDKhUnFE44OE4yKCc4Dw8rK5dnZ3cXFBQiDA0HHz8eQWAoAwUFByInJlIpKigBAQICHj4dQWAoAwUAAAEAAAABAACaNXijXw889QALBAAAAAAA20XbOgAAAADbRds6AAD/wAPAA8AAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAA8AAAQAAAAAAAAAAAAAAAAAAAAUEAAAAAAAAAAAAAAACAAAABAAAQAAAAAAACgAUAB4A6AABAAAABQCIAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAAwAAAAEAAAAAAAIABwA8AAEAAAAAAAMAAwAqAAEAAAAAAAQAAwBRAAEAAAAAAAUACwAJAAEAAAAAAAYAAwAzAAEAAAAAAAoAGgBaAAMAAQQJAAEABgADAAMAAQQJAAIADgBDAAMAAQQJAAMABgAtAAMAAQQJAAQABgBUAAMAAQQJAAUAFgAUAAMAAQQJAAYABgA2AAMAAQQJAAoANAB0cG90AHAAbwB0VmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwcG90AHAAbwB0cG90AHAAbwB0UmVndWxhcgBSAGUAZwB1AGwAYQBycG90AHAAbwB0Rm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== \ No newline at end of file diff --git a/website/app/lib/POT/Period.pm b/website/app/lib/POT/Period.pm index bfefcd44..30c6b078 100644 --- a/website/app/lib/POT/Period.pm +++ b/website/app/lib/POT/Period.pm @@ -186,7 +186,7 @@ sub getPeriodDays(){ to_char(pd.pauseend2::interval, 'HH24:MI') AS pauseend2, COALESCE((to_char(pd.pausestart1::interval, 'HH24:MI') || '-') || to_char(pd.pauseend1::interval, 'HH24:MI'), '') || COALESCE(((CASE WHEN pd.pausestart1 IS NOT NULL THEN '
' ELSE '' END || to_char(pd.pausestart2::interval, 'HH24:MI')) || '-') || to_char(pd.pauseend2::interval, 'HH24:MI'), '') AS dsppausedata, COALESCE((to_char(pd.timestart1::interval, 'HH24:MI') || '-') || to_char(pd.timeend1::interval, 'HH24:MI'), '') || COALESCE(((CASE WHEN pd.timestart1 IS NOT NULL THEN '
' ELSE '' END || to_char(pd.timestart2::interval, 'HH24:MI')) || '-') || to_char(pd.timeend2::interval, 'HH24:MI'), '') AS dspworkdata, - CASE WHEN freehours.freehours < '00:00:00'::interval THEN NULL ELSE to_char(freehours.freehours, 'HH24:MI') END AS freehoursafter + CASE WHEN freehours.freehours < '00:00:00'::interval THEN NULL ELSE to_char(freehours.freehours, 'HH24:MI') END AS freehoursafter FROM ".$schema.".staffreportperioddays pd JOIN ".$schema.".staff st ON pd.id_staff = st.id and st.id='".$id_staff."' and st.isdeleted is null LEFT JOIN ( SELECT yy.id_staff, yy.ndaydate AS daydate,yy.ndaydate + yy.ntimeend AS tmfrom, yy.daydate + yy.timestart AS tmto, diff --git a/website/app/lib/POT/Report.pm b/website/app/lib/POT/Report.pm index 9e9fb8c3..f3c954a2 100644 --- a/website/app/lib/POT/Report.pm +++ b/website/app/lib/POT/Report.pm @@ -1,19 +1,68 @@ package POT::Report; use strict; +use File::Basename qw/dirname basename/; +use Data::Dumper; +use File::Copy::Recursive qw(dircopy); +use POT::Period; sub new { my $class = shift; my $p = shift; my $self = bless {}, $class; $self->{db} = $p->{db}; + $self->{tmp} =$p->{tmp}; + $self->{pdf}->{app} = dirname($ENV{SCRIPT_FILENAME})."/tools/bin/wkhtmltopdf"; return $self; } + +sub createpdf(){ + my $self = shift; + my $schema = shift; + my $template = shift; + my $output = shift; + my $inputdata = shift; + my $r = -1; + my $pdfreports->{pot}= {top=>"20mm",bottom =>"15mm",left=>"5mm",right=>"5mm",size=>"A4",orientation=>"Landscape",encoding=>"ISO-8859-1"}; + $self->printContent($schema,$self->{tmp}.'/'.$template.$$.".html",$inputdata); + $self->printHeader($schema,$self->{tmp}.'/'.$template.$$.".header.html"); + $self->printFooter($schema,$self->{tmp}.'/'.$template.$$.".footer.html"); + #dircopy($self->{tmplpath}.'/'.$template,$self->{tmp}.'/'.$template); + if ((-e $self->{tmp}.'/'.$template.$$.'.html')){ + my $cmd = '"'.$self->{pdf}->{app}.'"'; + if ($pdfreports->{$template}->{bottom}){ $cmd .= " -B ".$pdfreports->{$template}->{bottom}; } + if ($pdfreports->{$template}->{left}){ $cmd .= " -L ".$pdfreports->{$template}->{left}; } + if ($pdfreports->{$template}->{right}){ $cmd .= " -R ".$pdfreports->{$template}->{right}; } + if ($pdfreports->{$template}->{top}){ $cmd .= " -T ".$pdfreports->{$template}->{top}; } + if ($pdfreports->{$template}->{orientation}){ $cmd .= " -O ".$pdfreports->{$template}->{orientation}; } + if ($pdfreports->{$template}->{size}){ $cmd .= " -s ".$pdfreports->{$template}->{size}; } + if ($pdfreports->{$template}->{encoding}){ $cmd .= " --encoding '".$pdfreports->{$template}->{encoding}."'"; } + if (-e $self->{tmp}.'/'.$template.$$.'.header.html'){ + $cmd .= ' --header-html "'.$self->{tmp}.'/'.$template.$$.'.header.html"'; + } + if (-e $self->{tmp}.'/'.$template.$$.'.footer.html'){ + $cmd .= ' --footer-html "'.$self->{tmp}.'/'.$template.$$.'.footer.html"'; + } + $cmd .= ' "'.$self->{tmp}.'/'.$template.$$.'.html"'; + $cmd .= ' "'.$output.'"'; + #print STDERR $cmd."\n"; + $r = system($cmd); + } + if (-e $output){ + unlink($self->{tmp}.'/'.$template.$$.'.html'); + unlink($self->{tmp}.'/'.$template.$$.'.header.html'); + unlink($self->{tmp}.'/'.$template.$$.'.footer.html'); + return ($r,$output); + } + return ($r,undef); +} + sub printHeader(){ my $self = shift; my $schema = shift; my $outfile = shift; + my $cmp= $self->{db}->query_unenc("select * from public.companies where schemata='".$schema."';"); open(HD,">".$outfile); print HD " @@ -26,9 +75,9 @@ sub printHeader(){
- [% cmp.0.company %] [% cmp.0.socialtype %]
- [% cmp.0.address %]
- [% cmp.0.zip %] [% cmp.0.city%]

+ ".$cmp->{company}." ".$cmp->{socialtype}."
+ ".$cmp->{address}."
+ ".$cmp->{zip}." ".$cmp->{city}."

@@ -99,75 +148,24 @@ sub printContent(){ POT - Staffmember - Period "; - if ($id_stafflist){ - $stafflist = $self->{db}->querysorted("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,to_char(spd.periodstart,'DD.MM.YYYY') as periodstart,to_char(spd.periodend,'DD.MM.YYYY') as spd.periodend from ".$schema.".vw_staffreportperioddays spd left join ".$schema.".staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? and spd.id_staff in ($id_stafflist) order by st.surname,st.prename,spd.periodstart asc;"); - } else { - my $sqlcmd = "select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ".$schema.".vw_staffreportperioddays spd left join ".$schema.".staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? order by st.surname,st.prename,spd.periodstart asc;"; - $stafflist = $self->{db}->querysorted("select distinct(spd.id_staff),st.surname,st.prename,spd.id_reportperiod,spd.periodstart,spd.periodend from ".$schema.".vw_staffreportperioddays spd left join ".$schema.".staff st on (spd.id_staff=st.id) where spd.id_reportperiod = ? order by st.surname,st.prename,spd.periodstart asc"); + #print CT Dumper($data); +if (exists($data->{staff_exclude})){ + my $stexcl = ""; + if (scalar(@{$data->{staff_exclude}}) > 0){ + $stexcl = " and srp.id_staff not in ('".join("','",@{$data->{staff_exclude}})."')"; + } + my $sql = "select rp.id,rp.startdate,rp.enddate,st.prename,st.surname,to_char(rp.startdate,'DD.MM.YYYY') as dspstartdate,to_char(rp.enddate,'DD.MM.YYYY') as dspenddate, srp.id_staff, + to_char(srp.contracthours, 'HH24:MI'::text) AS contracthours, + to_char(srp.workhours, 'HH24:MI'::text) AS workhours, + to_char(srp.vacancyhours, 'HH24:MI'::text) AS vacancyhours, + to_char(srp.recuperationhours, 'HH24:MI'::text) AS recuperationhours, + to_char(srp.hoursdiff, 'HH24:MI'::text) as hoursdiff, + to_char(srp.totalhours, 'HH24:MI'::text) AS totalhours, + to_char(srp.payedhours, 'HH24:MI'::text) AS payedhours, + to_char(srp.transferedhourscalc, 'HH24:MI'::text) AS transferedhourscalc, + '+' || suppvacancysunwork as suppvacancysunwork, + '+' || suppvacancy44hours as suppvacancy44hours + from portanova.staffreportperiod srp +join portanova.reportperiod rp on (srp.id_reportperiod =rp.id) +join portanova.staff st on (srp.id_staff=st.id) +where st.isdeleted is null and srp.id_reportperiod ='".$self->{db}->securetext($data->{id_reportperiod})."' ".$stexcl." +order by rp.startdate,rp.enddate,st.surname,st.prename;"; + + my $rpdata = $self->{db}->querysorted($sql); + my $rpmax = keys(%{$rpdata})-1; + foreach my $rd (sort {$a <=> $b} keys(%{$rpdata})){ + print CT $self->ReportPage($schema,$rpdata->{$rd}); + if ($rd != $rpmax){ + print CT "
"; + } + + } + print CT ""; +} elsif (exists($data->{id_staff})){ + my $rpincl = ""; + if ($data->{id_periods} ne ""){ + $rpincl = " and srp.id_reportperiod in ('".join("','",@{$data->{id_periods}})."')"; + } + my $sql = "select rp.id,rp.startdate,rp.enddate,st.prename,st.surname,to_char(rp.startdate,'DD.MM.YYYY') as dspstartdate,to_char(rp.enddate,'DD.MM.YYYY') as dspenddate, srp.id_staff, + to_char(srp.contracthours, 'HH24:MI'::text) AS contracthours, + to_char(srp.workhours, 'HH24:MI'::text) AS workhours, + to_char(srp.vacancyhours, 'HH24:MI'::text) AS vacancyhours, + to_char(srp.recuperationhours, 'HH24:MI'::text) AS recuperationhours, + to_char(srp.hoursdiff, 'HH24:MI'::text) as hoursdiff, + to_char(srp.totalhours, 'HH24:MI'::text) AS totalhours, + to_char(srp.payedhours, 'HH24:MI'::text) AS payedhours, + to_char(srp.transferedhourscalc, 'HH24:MI'::text) AS transferedhourscalc, + '+' || suppvacancysunwork as suppvacancysunwork, + '+' || suppvacancy44hours as suppvacancy44hours + from portanova.staffreportperiod srp +join portanova.reportperiod rp on (srp.id_reportperiod =rp.id) +join portanova.staff st on (srp.id_staff=st.id) +where st.isdeleted is null and id_staff='".$data->{id_staff}."' and srp.id_reportperiod ='".$self->{db}->securetext($data->{id_reportperiod})."' ".$rpincl." +order by rp.startdate,rp.enddate,st.surname,st.prename;"; + my $rpdata = $self->{db}->querysorted($sql); + my $rpmax = keys(%{$rpdata})-1; + foreach my $rd (sort {$a <=> $b} keys(%{$rpdata})){ + print CT $self->ReportPage($schema,$rpdata->{$rd}); + if ($rd != $rpmax){ + print CT "
"; + } } - my $staffmemberperiodsql = "select st.prename,st.surname,spd.* from ".$schema.".vw_staffreportperioddays spd left join ".$schema.".staff st on (spd.id_staff=st.id) where spd.id_reportperiod= ? and spd.id_staff= ? order by spd.daydate asc;"; - my $staffperiodsumssql = $self->{db}->querysorted("select * from ".$schema.".vw_staffreportperiodlist where id_reportperiod=? and id_staff=?;"); - foreach my $wl (keys(%{$stafflist})){ - $staffmemberperiodsql =~ s///g; - $staffperiodsumssql =~ s///g; - $data->{period} = $self->{db}->querysorted($staffmemberperiodsql); - $data->{sums} = $self->{db}->query($staffperiodsumssql); - print CT $self->ReportPage($data); - print CT "
"; - } - pritn CT ""; +} + print CT ""; close(CT); return 1; } sub ReportPage(){ my $self = shift; + my $schema = shift; my $data = shift; my $txtpage = " - + @@ -214,94 +260,191 @@ sub ReportPage(){ "; + my $perioddata = $self->getPeriodDays($schema,$data->{id_staff},$data->{startdate},$data->{enddate}); + my $weeksums = $self->getPeriodWeekSums($schema,$data->{id_staff},$data->{startdate},$data->{enddate}); my $wdk = 0; - foreach my $pw (keys(%{$data->{period}})){ #<== sort {$a <=> $b} - my @wd = split(',',$data->{period}->{$pw}->{weekdates}); + foreach my $pw (sort {$a <=> $b} keys(%{$perioddata})){ + my @wd = split(',',$perioddata->{$pw}->{weekdates}); if ($wdk == 0 ){ - my $dspwd = split(',',$data->{period}->{$pw}->{dspweekdates}); - $txtpage .=" - - - - - - - + my @dspwd = split(',',$perioddata->{$pw}->{dspweekdates}); + $txtpage .=" + + + + + + + "; } - while (($data->{period}->{$pw}->{daydate} ne $wd[$wdk]) && $wdk lt "7"){ - $txtpage .=""; + while (($perioddata->{$pw}->{daydate} ne $wd[$wdk]) && $wdk lt "7"){ + $txtpage .=""; $wdk++; } if ($wdk lt "7"){ - if ($data->{period}->{$pw}->{timestart1} ne "" || $data->{period}->{$pw}->{timestart2} ne ""){ + if ($perioddata->{$pw}->{dayhours} ne "00:00" || $perioddata->{$pw}->{vacancyhours} ne "00:00" || $perioddata->{$pw}->{recuperationhours} ne "00:00"){ $txtpage .="" } else { - $txtpage .= "" + $txtpage .= "" } } $wdk++; if ($wdk gt "7"){ $txtpage .= " "; $wdk=0; } } $txtpage .= "
[% wl.periodstart %] - [% wl.periodend %][% wl.surname %] [% wl.prename %]
".$data->{dspstartdate}." - ".$data->{dspenddate}."".$data->{surname}." ".$data->{prename}."
Semaine Lundi MardiTotaux
[% pw.dspweekshort %][% dspwd.0 %][% dspwd.1 %][% dspwd.2 %][% dspwd.3 %][% dspwd.4 %][% dspwd.5 %][% dspwd.6 %]
".$perioddata->{$pw}->{dspweekshort}."".$dspwd[0]."".$dspwd[1]."".$dspwd[2]."".$dspwd[3]."".$dspwd[4]."".$dspwd[5]."".$dspwd[6]."
 jour de repos - - - - - - - - - - - - - - - - - - + +
[% pw.timestart1 %][% pw.timeend1 %][% IF pw.workhours %][% pw.workhours %][% ELSE %] [% END %]
[% IF pw.timestart2 %][% pw.timestart2 %][% END %][% IF pw.timestart2 %][% pw.timeend2 %][% ELSE %] [% END %][% IF pw.recuperationhours %][% pw.recuperationhours %][% ELSE %] [% END %]
  [% IF pw.vacancyhours %][% pw.vacancyhours %][%ELSE%] [% END %]
[% IF pw.timepause %][% END %][% IF pw.timepause %][% pw.timepause %][% END %] 
".$perioddata->{$pw}->{dspworkdata}."
".$perioddata->{$pw}->{dspworkdata}."
+
".$perioddata->{$pw}->{dayhours}."
+
".$perioddata->{$pw}->{vacancyhours}."
+
".$perioddata->{$pw}->{recuperationhours}."
+
 jour de repos - - - - - - -
[% IF pw.week_totalhours && pw.week_totalhours != \"00:00\" %][% pw.week_totalhours %][% ELSE %] [%END %]
[% IF pw.week_recuperationhours && pw.week_recuperationhours != \"00:00\" %][% pw.week_recuperationhours %][% ELSE %] [%END %]
[% IF pw.week_vacancyhours && pw.week_vacancyhours != \"00:00\" %][% pw.week_vacancyhours %][% ELSE %] [%END %]
[% IF pw.week_diffhours && pw.week_diffhours != \"00:00\" %][% pw.week_diffhours %][% ELSE %] [%END %]
+
"; + my $ws = $perioddata->{$pw}->{weekstart}; + if (exists($weeksums->{$ws})){ + $txtpage .= "
".(($weeksums->{$ws}->{totalhours} eq "00:00")?"":$weeksums->{$ws}->{totalhours})."
+
".(($weeksums->{$ws}->{recperationhours} eq "00:00")?"":$weeksums->{$ws}->{recperationhours})."
+
".(($weeksums->{$ws}->{vacancyhours} eq "00:00")?"":$weeksums->{$ws}->{vacancyhours})."
+
".(($weeksums->{$ws}->{diffhours} eq "00:00")?"":$weeksums->{$ws}->{diffhours})."
"; + } + $txtpage .= "
"; - my $spt = $data->{sums}; + # my $spt = $data->{sums}; $txtpage .= " - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
Totaux heures pour la période: [% wl.periodstart %] - [% wl.periodend %]
Totaux heures pour la période: ".$data->{dspstartdate}." - ".$data->{dspenddate}."
contractuelles:[% spt.0.contracthours %]travaillées:[% spt.0.workhours %]Congés:[% spt.0.vacancyhours %]Récupérées:[% spt.0.recuperationhours %]Total:[% spt.0.totalhours %]Payées:[% spt.0.payedhours %]à récupérer:[% spt.0.hoursdiff %]contrat:".$data->{contracthours}."travail:".$data->{workhours}."congés:".$data->{vacancyhours}."récupérées:".$data->{recuperationhours}."total:".$data->{totalhours}."décompte
reporté:
".$data->{transferedhourscalc}."heures
payées:
".$data->{payedhours}."décompte
fin POT:
".$data->{hoursdiff}."congé suppl
+44h:
".$data->{suppvacancy44hours}."congé suppl.
dimache travaillé:
".$data->{suppvacancysunwork}."
"; return $txtpage; -} \ No newline at end of file +} + +sub getPeriodDays(){ + my $self = shift; + my $schema = shift; + my $id_staff = shift; + my $date_start = shift; + my $date_end = shift; + + my $sql = "SELECT pd.id,pd.daydate,pd.id_vacancytype,pd.id_recuperationtype, + date(date_trunc('week',pd.daydate)) as weekstart, + date_part('isoyear',pd.daydate) || '-' || lpad(date_part('week',pd.daydate)::text, 2, '0') AS dspweekshort, + to_char(CASE WHEN pd.vacancyhours::interval = '00:00:00'::interval THEN NULL ELSE pd.vacancyhours END::interval, 'HH24:MI') AS vacancyhours, + to_char(CASE WHEN pd.dayhours::interval = '00:00:00'::interval THEN NULL ELSE pd.dayhours END::interval, 'HH24:MI') AS dayhours, + to_char(case WHEN pd.recuperationhours::interval = '00:00:00'::interval THEN NULL ELSE pd.recuperationhours END::interval, 'HH24:MI') AS recuperationhours, + COALESCE((to_char(pd.pausestart1::interval, 'HH24:MI') || '-') || to_char(pd.pauseend1::interval, 'HH24:MI'), '') || COALESCE(((CASE WHEN pd.pausestart1 IS NOT NULL THEN '
' ELSE '' END || to_char(pd.pausestart2::interval, 'HH24:MI')) || '-') || to_char(pd.pauseend2::interval, 'HH24:MI'), '') AS dsppausedata, + COALESCE((to_char(pd.timestart1::interval, 'HH24:MI') || '-') || to_char(pd.timeend1::interval, 'HH24:MI'), '') || COALESCE(((CASE WHEN pd.timestart1 IS NOT NULL THEN '
' ELSE '' END || to_char(pd.timestart2::interval, 'HH24:MI')) || '-') || to_char(pd.timeend2::interval, 'HH24:MI'), '') AS dspworkdata, + (((((((((((to_char(date_trunc('week',pd.daydate), 'DD.MM.YYYY') || ',') || to_char(date(date_trunc('week',pd.daydate) + '1 day'::interval), 'DD.MM.YYYY')) || ',') || to_char(date(date_trunc('week',pd.daydate) + '2 days'::interval), 'DD.MM.YYYY')) || ',') || to_char(date(date_trunc('week',pd.daydate)) + '3 days'::interval, 'DD.MM.YYYY')) || ',') || to_char(date(date_trunc('week',pd.daydate) + '4 days'::interval), 'DD.MM.YYYY')) || ',') || to_char(date(date_trunc('week',pd.daydate) + '5 days'::interval), 'DD.MM.YYYY')) || ',') || to_char(date(date_trunc('week',pd.daydate) + '6 days'::interval), 'DD.MM.YYYY') AS dspweekdates, + (((((((((((date_trunc('week',pd.daydate) || ',') || date(date_trunc('week',pd.daydate) + '1 day'::interval)) || ',') || date(date_trunc('week',pd.daydate) + '2 days'::interval)) || ',') || date(date_trunc('week',pd.daydate) + '3 days'::interval)) || ',') || date(date_trunc('week',pd.daydate) + '4 days'::interval)) || ',') || date(date_trunc('week',pd.daydate) + '5 days'::interval)) || ',') || date(date_trunc('week',pd.daydate) + '6 days'::interval) AS weekdates + FROM ".$schema.".staffreportperioddays pd + JOIN ".$schema.".staff st ON pd.id_staff = st.id and st.id='".$id_staff."' and st.isdeleted is null + WHERE pd.daydate between date('".$date_start."') and date('".$date_end."') + ORDER BY pd.id_staff, pd.daydate;"; + #print STDERR $sql."\n"; + my $ret = $self->{db}->querysorted($sql); + return $ret; +} + +sub getPeriodWeekSums(){ + my $self = shift; + my $schema = shift; + my $id_staff = shift; + my $date_start = shift; + my $date_end = shift; + my $sql = "select ws.weekstart,ws.weekend,ws.calweek,ws.calyear, ws.id_staff + ,to_char(ws.vacancyhours,'HH24:MI') as vacancyhours + ,to_char(ws.recuperationhours,'HH24:MI') as recuperationhours + ,to_char(ws.totalhours,'HH24:MI') as totalhours + ,case when cd.contractworkdays < cd.cmpcontractdays then to_char(cd.contractworkdays*'08:00:00'::interval,'HH24:MI') else to_char(cd.contracthours,'HH24:MI') end as contracthours + ,to_char(AVG(ws.totalhours) over (order by ws.weekstart),'HH24:MI') as avgtotalhours + ,case when cd.contractworkdays < cd.cmpcontractdays then '00:00' else + case when position('-' in to_char(ws.totalhours-cd.contracthours ,'HH24:MI')) > 0 then '-' || replace(to_char(ws.totalhours-cd.contracthours ,'HH24:MI'),'-','') else to_char(ws.totalhours-cd.contracthours ,'HH24:MI') end + end as diffhours + ,cd.contractworkdays + ,cd.cmpcontractdays + ,cd.cmpweekhours + ,to_char(ws.workhours::interval,'HH24:MI') as workhours + ,case when cd.contractworkdays < cd.cmpcontractdays then + to_char(case when cd.cmpweekhours < '40:00:00'::interval then cd.contracthours * 1.15 * cd.contractworkdays else (cd.contractworkdays*'08:00:00'::interval) + (cd.contractworkdays* case when maxdata.maxweekhours > '48:00:00' then '01:16:50'::interval else '00:50:00'::interval end) end,'HH24:MI') + else + to_char(case when cd.contracthours < '40:00:00'::interval then cd.contracthours * 1.15 else maxdata.maxweekhours end,'HH24:MI') + end as maxweekhours + ,case when cd.contractworkdays < cd.cmpcontractdays then to_char(cd.contractworkdays*'08:00:00'::interval,'HH24:MI') else + to_char(case when cd.contracthours < '40:00:00'::interval then cd.contracthours else maxdata.defaultweekhours end,'HH24:MI') + end as defaultweekhours + from ( + SELECT weekstart,weekend,calweek,calyear, id_staff, + sum(CASE WHEN srpd.workhours IS NULL THEN '00:00:00'::interval ELSE srpd.workhours::interval END) AS workhours, + sum(CASE WHEN srpd.vacancyhours IS NULL THEN '00:00:00'::interval ELSE srpd.vacancyhours::interval END) AS vacancyhours, + sum(CASE WHEN srpd.recuperationhours IS NULL THEN '00:00:00'::interval ELSE srpd.recuperationhours::interval END) AS recuperationhours, + sum(CASE WHEN srpd.dayhours IS NULL THEN '00:00:00'::interval ELSE srpd.dayhours::interval END) AS totalhours, + sum(CASE WHEN srpd.workhours > '00:00:00'::time without time zone OR srpd.recuperationhours > '00:00:00'::time without time zone OR srpd.vacancyhours > '00:00:00'::time without time zone THEN 1 ELSE 0 END) AS workdays, + sum( CASE WHEN srpd.contracthours IS NULL THEN '00:00:00'::interval ELSE srpd.contracthours::interval END) AS contracthours + FROM (select *,date(date_trunc('week', daydate)) AS weekstart, + date(date_trunc('week', daydate) + interval '6 days') AS weekend, + date_part('week', daydate) AS calweek, + date_part('isoyear', daydate) AS calyear from ".$schema.".staffreportperioddays + where id_staff= '".$id_staff."' and daydate between date('".$date_start."') and date('".$date_end."') + ) srpd GROUP BY srpd.weekstart,srpd.weekend,srpd.calweek,srpd.calyear,srpd.id_staff + ORDER BY weekstart) ws left join ( + select date(date_trunc('week',pd.daydate)) as weekstart,pd.id_staff,max(sc.weekdays) as cmpcontractdays,max(sc.weekhours) as cmpweekhours, + case when count(pd.daydate) < avg(sc.weekdays) then count(pd.daydate) else avg(sc.weekdays) end as contractworkdays, + case when count(pd.daydate) < avg(sc.weekdays) then avg(sc.weekhours/ sc.weekdays) * count(pd.daydate) else avg(sc.weekhours/ sc.weekdays) * avg(sc.weekdays) end as contracthours ,sum(case when coalesce(pd.workhours,'00:00:00'::time) > '00:00:00'::time then 1 else 0 end) as realworkdays + from ( select id_staff,weekdays ,weekhours, + case when startdate> date('".$date_start."') then startdate else date('".$date_start."') end as staffperiodstart, + case when enddate is null or enddate > date('".$date_end."') then date('".$date_end."') + else enddate end as staffperiodend from ".$schema.".staffcontract where id_staff='".$id_staff."' + and startdate < date('".$date_end."') + ) sc + join ".$schema.".staffreportperioddays pd on (pd.id_staff=sc.id_staff and pd.daydate between sc.staffperiodstart and sc.staffperiodend) + group by date(date_trunc('week',pd.daydate)),pd.id_staff + ) cd on ws.id_staff = cd.id_staff and ws.weekstart=cd.weekstart + left join ( + select id_staff,weekstart,max(defaultweekhours) as defaultweekhours,max(maxweekhours) as maxweekhours from ( + select lpd.id_staff,date(date_trunc('week',lpd.daydate)) as weekstart,lpd.daydate, + case when wk.defaultweekhours is null then wkdef.defaultweekhours else wk.defaultweekhours end as defaultweekhours , + case when wk.maxweekhours is null then wkdef.maxweekhours else wk.maxweekhours end as maxweekhours + from ".$schema.".staffreportperioddays lpd + left join ".$schema.".worktimes wk on (lpd.daydate between wk.startdate and wk.enddate) + cross join (select * from ".$schema.".worktimes where isdefault=true) wkdef + where id_staff='".$id_staff."' and lpd.daydate between date('".$date_start."') and date('".$date_end."') + order by lpd.daydate ) mh group by id_staff,weekstart + ) maxdata on ws.id_staff = maxdata.id_staff and ws.weekstart=maxdata.weekstart"; + #print STDERR "\n======WEEK SUMS=$date_start-$date_end======\n".$sql."\n=====\n"; + my $ret = $self->{db}->querybykey('weekstart',$sql); + + return $ret; +} + +1; \ No newline at end of file diff --git a/website/app/lib/dksdb.pm b/website/app/lib/dksdb.pm index 03c83fbc..6957708a 100644 --- a/website/app/lib/dksdb.pm +++ b/website/app/lib/dksdb.pm @@ -45,6 +45,33 @@ sub value(){ return "'".$text."'"; } +sub query_unenc(){ + my $self = shift; + my $stat = shift; + # my $vw_info = shift; + my $retdata = undef; + #my $self->{dbh} = DBI->connect($sitecfg->{dsn},$sitecfg->{dbuser},$sitecfg->{dbpassword},{PrintError=>1,RaiseError=>1,AutoCommit=>1}) or return $retdata->{error} = "query Connection Error!".$!; + $stat = encode("utf8", $stat); + # open FILE,">>tmp/sql.log"; + # print FILE "$stat\n"; + # close FILE; + # print STDERR "QUERY:\n".$stat."\n===\n"; + my $sth = $self->{dbh}->prepare($stat) or return $retdata->{error} = "query".$self->{dbh}->errstr. "- SQL: ".$stat;; + + + $sth->execute() or return $retdata->{error} = "query: ".$sth->errstr; + + my $data = $sth->fetchrow_hashref(); + foreach my $k (keys %{$data}){ + $retdata->{$k} = $data->{$k};#decode("utf-8",$data->{$k}); + } + + $sth->finish(); + #$self->{dbh}->disconnect(); + + return $retdata; +} + sub query(){ my $self = shift; my $stat = shift; diff --git a/website/app/lib/pdfreport.pm b/website/app/lib/pdfreport.pm deleted file mode 100644 index ef2322ed..00000000 --- a/website/app/lib/pdfreport.pm +++ /dev/null @@ -1,129 +0,0 @@ -package pdfreport; - -use strict; -use Template; -use File::Basename qw/dirname basename/; -use Data::Dumper; -use File::Copy::Recursive qw(dircopy); -use lib ('./lib/perl5'); -use lib ('./lib'); -use lib ('./'); -use dksconfig qw($sitecfg); - -sub new { - my $class = shift; - my $p = shift; - my $self = bless {}, $class; - $self->{tmplpath} =$p->{tmplpath}; - $self->{tmp} =$p->{tmp}; - $self->{pdf} = undef; - $self->{template} = undef; - #$self->{template} = $p->{template}; - $self->{pdf}->{app} = dirname($ENV{SCRIPT_FILENAME})."/tools/bin/wkhtmltopdf"; - return $self; -} - -sub createpdf(){ - my $self = shift; - my $template = shift; - my $output = shift; - my $inputdata = shift; - my $r = -1; - #print STDERR $self->{tmplpath}.'/'.$template.'.conf'."\n"; - if (-e $self->{tmplpath}.'/'.$template.'.conf'){ - $self->readpdfconfig($template,$inputdata); - #print Dumper($self->{template}); - } else { - #print STDERR $self->{tmplpath}.'/'.$template.'.conf'." does not exist!\n"; - } - #print STDERR"PDF:".Dumper($self->{pdf}); - #print STDERR "TMPL:".Dumper($self->{template}); - #print STDERR "SELF:".Dumper($self->{tmplpath}); - my $tmpreportpath=$self->{tmplpath}; - if (exists($self->{pdf}->{engine}) && ($self->{pdf}->{engine} eq "Template::Toolkit")){ - $template = $self->createTTReport($template); - $tmpreportpath = $self->{tmp}; - } - #print STDERR "HTMLMAIN:".$tmpreportpath.'/'.$template.'.html'; - if ((keys(%{$self->{pdf}}) > 0) && (-e $tmpreportpath.'/'.$template.'.html')){ - my $cmd = '"'.$self->{pdf}->{app}.'"'; - if ($self->{pdf}->{bottom}){ $cmd .= " -B ".$self->{pdf}->{bottom}; } - if ($self->{pdf}->{left}){ $cmd .= " -L ".$self->{pdf}->{left}; } - if ($self->{pdf}->{right}){ $cmd .= " -R ".$self->{pdf}->{right}; } - if ($self->{pdf}->{top}){ $cmd .= " -T ".$self->{pdf}->{top}; } - if ($self->{pdf}->{orientation}){ $cmd .= " -O ".$self->{pdf}->{orientation}; } - if ($self->{pdf}->{size}){ $cmd .= " -s ".$self->{pdf}->{size}; } - if ($self->{pdf}->{encoding}){ $cmd .= " --encoding '".$self->{pdf}->{encoding}."'"; } - if (-e $tmpreportpath.'/'.$template.'.header.html'){ - $cmd .= ' --header-html "'.$tmpreportpath.'/'.$template.'.header.html"'; - } - if (-e $tmpreportpath.'/'.$template.'.footer.html'){ - $cmd .= ' --footer-html "'.$tmpreportpath.'/'.$template.'.footer.html"'; - } - $cmd .= ' "'.$tmpreportpath.'/'.$template.'.html"'; - $cmd .= ' "'.$output.'"'; - #print STDERR $cmd."\n"; - $r = system($cmd); - } - if (-e $output){ - unlink($tmpreportpath.'/'.$template.'.html'); - unlink($tmpreportpath.'/'.$template.'.header.html'); - unlink($tmpreportpath.'/'.$template.'.footer.html'); - return ($r,$output); - } - return ($r,undef); -} - -sub createTTReport(){ - my $self = shift; - my $template = shift; - my $uniquekey = $$; - if (-e $self->{tmplpath}.'/'.$template.".tt"){ - $self->TTtoHTML($self->{tmplpath}.'/'.$template.".tt",$self->{tmp}.'/'.$template.$$.".html"); - } - if (-e $self->{tmplpath}.'/'.$template.".header.tt"){ - $self->TTtoHTML($self->{tmplpath}.'/'.$template.".header.tt",$self->{tmp}.'/'.$template.$$.".header.html"); - } - if (-e $self->{tmplpath}.'/'.$template.".footer.tt"){ - $self->TTtoHTML($self->{tmplpath}.'/'.$template.".footer.tt",$self->{tmp}.'/'.$template.$$.".footer.html"); - } - if (-d $self->{tmplpath}.'/'.$template){ - dircopy($self->{tmplpath}.'/'.$template,$self->{tmp}.'/'.$template); - } - - return $template.$$; -} - -sub TTtoHTML(){ - my $self = shift; - my $ttfile = shift; - my $outfile = shift; - $self->{template}->{dsn} = $sitecfg->{dsn}; - $self->{template}->{dbuser} = $sitecfg->{dbuser}; - $self->{template}->{dbpassword} = $sitecfg->{dbpassword}; - #print Dumper($self->{template}); - my $template = Template->new({INCLUDE_PATH => [dirname($ttfile)]});#,ENCODING => 'utf8' - $template->process(basename($ttfile),$self->{template},$outfile) || die "Template process failed: ", $template->error(), "\n";#,{binmode => ':utf8'} -} - -sub readpdfconfig(){ - my $self = shift; - my $template = shift; - my $inputdata = shift; - open(CFG,$self->{tmplpath}.'/'.$template.'.conf'); - while (my $l = ){ - chomp($l); - #print $l."\n"; - $l =~ s/^\s+//; - if (($l =~ /^#/) || ($l eq "")) {next;} - if ($l =~ /\w+=.+/){ - my ($k1,$k2,$v) = $l =~ m/^(\w+)_(\w+)=\"(.+)\"$/; - $self->{lc($k1)}->{lc($k2)} = $v; - } - } - close(CFG); - foreach my $ik (keys(%{$inputdata})){ - $self->{template}->{lc($ik)} = $inputdata->{$ik}; - } -} -1; \ No newline at end of file diff --git a/website/app/report.cgi b/website/app/report.cgi index c1dadc97..921d6a99 100644 --- a/website/app/report.cgi +++ b/website/app/report.cgi @@ -1,8 +1,7 @@ #!/usr/local/bin/perl use strict; -use FindBin qw($RealBin $Bin); -use lib ($RealBin.'/lib/perl5'); -use lib ($RealBin.'/lib'); +use lib ('./lib/perl5'); +use lib ('./lib'); use CGI; use CGI::Cookie; use Encode; @@ -15,7 +14,8 @@ use File::Path qw(make_path); use dksconfig qw/$sitecfg/; use dksdb; use session; -use pdfreport; +use POT::Report; +#use pdfreport; my $cgi = new CGI(); my $scriptpath = $cgi->url(-absolute => 1); @@ -35,10 +35,11 @@ if (exists($p->{"POSTDATA"})){ $p->{$k} = $pdj->{$k}; } } +my $db = dksdb->new({dsn => $sitecfg->{dsn},dbuser => $sitecfg->{dbuser},dbpassword => $sitecfg->{dbpassword}}); #print STDERR Dumper($p)."\n"; my $html->{result} = (); $p->{sid} = $cgi->cookie($sitecfg->{cookiename}); -my $se = session->new(); +my $se = session->new({db => $db}); my $sess = $se->getsession($p->{sid}); if ($sess == undef){ @@ -50,47 +51,8 @@ if ($sess == undef){ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ - # my @params = $cgi->param(); - # foreach my $pp (@params){ - # $p->{$pp} = $cgi->param($pp); - # } - - # if (exists($p->{list})){ - # #$html->{param} = $p; - # print $cgi->header(-type=>"application/json", -charset => "utf-8"); - # my $reppath = $sitecfg->{docroot}.'/'.$sitecfg->{datapath}.'reports/'.$p->{list}; - # $html->{path} = $reppath; - # if (-d $reppath){ - # #print "OK!"; - # my @allreps = (); - # opendir(REP,$reppath); - # while (my $f = readdir(REP)){ - # if ($f =~ /\.conf$/){ - # my $rep->{name}= $f; - # $rep->{name} =~ s/\.conf$//; - # $rep->{label} = $rep->{name}; - - # open(RTPL,$reppath.'/'.$f); - # while (my $l = ){ - # chomp($l); - # if ($l =~ /^REPORT_NAME/){ - # my ($k1,$k2,$v) = $l =~ m/^(\w+)_(\w+)=\"(.+)\"$/; - # $rep->{label} = decode("utf-8",$v); - # } - # } - # close(RTPL); - # push(@allreps,$rep); - # } - # } - # closedir(REP); - # $html->{result}->{reports} = \@allreps; - # } - # } if (exists($p->{generate})){ print $cgi->header(-type=>"application/json", -charset => "utf-8"); - #print Dumper($p->{data}); - #$html->{params} = $p; - #print STDERR ref($p->{data}); my $data = (); if (ref($p->{data}) ne "HASH"){ $data = JSON::PP::decode_json($p->{data}); @@ -101,23 +63,13 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ if (exists($data->{schemata})){ $schemata = $data->{schemata}; } - my $reportpath =$sitecfg->{docroot}.'/'.$sitecfg->{datapath}.'reports/'.dirname($p->{generate}); my $tmppath = $sitecfg->{docroot}.'/'.$sitecfg->{datapath}.'tmp/'; my $output = $sitecfg->{docroot}.'/'.$sitecfg->{datapath}.'output/'.$schemata."/"; - #$html->{params} = $p; - #$html->{options}->{reportpath} = $reportpath; - #$html->{options}->{tmppath} = $tmppath; - #$html->{options}->{output} = $output; - # #print $reportpath."\n".$tmppath."\n".$output."\n".$output.dirname($p->{generate})."\n"; if (! -d $tmppath) { make_path($tmppath);} if (! -d $output) { make_path($output);} - if (! -d $output.dirname($p->{generate})){make_path($output.dirname($p->{generate}));} - #print STDERR "OUTPUT:".$output."\n"; - my $rep = pdfreport->new({tmplpath => $reportpath.'/', tmp => $tmppath}); - my ($result,$file) = $rep->createpdf(basename($p->{generate}),$output.dirname($p->{generate}).'/'.$p->{file},$data); - #print STDERR Dumper($result,$file); - #my $file = $p->{file}; - + if (! -d $output.$p->{generate}){make_path($output.$p->{generate});} + my $rep = POT::Report->new({db => $db,tmp => $tmppath}); + my ($result,$file) = $rep->createpdf($schemata,$p->{generate},$output.dirname($p->{generate}).'/'.'/'.$p->{file},$data); $html->{result}->{file} = (($file)?$schemata.'/'.substr($file,length($output)):""); } elsif (exists($p->{open})){ @@ -148,6 +100,3 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){ } } print JSON::PP::encode_json($html); -# for my $e ( keys %ENV ) { -# print "$e: $ENV{$e}
"; -# } \ No newline at end of file diff --git a/website/app/static/js/app.js b/website/app/static/js/app.js index b5ebd4fa..8388c9bf 100644 --- a/website/app/static/js/app.js +++ b/website/app/static/js/app.js @@ -59,7 +59,7 @@ let app = { if (document.getElementById('dlg_' +dlgname)){ document.getElementById('dlg_' +dlgname).style.display = 'block'; } else { - console.log('dlg_' +dlgname + ' does not exist!'); + //console.log('dlg_' +dlgname + ' does not exist!'); } }, opendlg: function(dlgname,msgdata,callback){ diff --git a/website/app/static/js/dataform.js b/website/app/static/js/dataform.js index e11958f4..ccebd846 100644 --- a/website/app/static/js/dataform.js +++ b/website/app/static/js/dataform.js @@ -251,7 +251,7 @@ savefield: function(obj,callback){ fdata["value"] = obj.value; } } - console.log("Save",fdata); + //console.log("Save",fdata); postData("db.cgi",fdata).then(data => { if (callback){callback(data);}}); return false; }, diff --git a/website/app/tmpl/module/admin/schemadataset.js b/website/app/tmpl/module/admin/schemadataset.js index dfc3ea4f..402be17b 100644 --- a/website/app/tmpl/module/admin/schemadataset.js +++ b/website/app/tmpl/module/admin/schemadataset.js @@ -15,7 +15,7 @@ let schemadataset= { remove: function(){ let udata = companies.tbl.getSelectedData(); if (udata[0]) { - console.log(udata[0]); + //console.log(udata[0]); flds = {}; flds["fn"] = "del_company"; flds["id"] = udata[0].id; diff --git a/website/app/tmpl/module/admin/staffgroups.js b/website/app/tmpl/module/admin/staffgroups.js index d57e59c1..253e7a66 100644 --- a/website/app/tmpl/module/admin/staffgroups.js +++ b/website/app/tmpl/module/admin/staffgroups.js @@ -74,7 +74,7 @@ let staffgroups = { delete wkdata["ident_staffgroups_id_staffgroups"]; delete wkdata["null"]; wkdata["fn"] ="saveform";wkdata["table"]="staffgroups"; - console.log("before save current:",companies.current_schemata); + //console.log("before save current:",companies.current_schemata); wkdata["schemata"]=companies.current_schemata; postData("db.cgi",wkdata).then(data => { staffgroups.gettbldata(); diff --git a/website/app/tmpl/module/admin/worktimes.js b/website/app/tmpl/module/admin/worktimes.js index 9687dbbf..605dc86c 100644 --- a/website/app/tmpl/module/admin/worktimes.js +++ b/website/app/tmpl/module/admin/worktimes.js @@ -93,7 +93,7 @@ let worktimes = { delete wkdata["ident_worktimes_id_worktimes"]; delete wkdata["null"]; wkdata["schemata"] = schemata; - console.log(wkdata); + //console.log(wkdata); postData("db.cgi",wkdata).then(data => { worktimes.gettbldata(); document.getElementById('dlg_worktimes').style.display='none'; diff --git a/website/app/tmpl/module/company/company.js b/website/app/tmpl/module/company/company.js index 4efded68..fe7f31a4 100644 --- a/website/app/tmpl/module/company/company.js +++ b/website/app/tmpl/module/company/company.js @@ -36,7 +36,7 @@ let company = { //console.log("Shcemata",schemata); dataform.cleanform2("company",company.choices); postData( "db.cgi", { "get": "company","schemata":"public", "schemata":schemata}).then(data => { - console.log("cp result",data); + //console.log("cp result",data); dataform.fillformbydataclass2("companies",company.choices,data.result.data); company.current_company = data.result.data.id; diff --git a/website/app/tmpl/module/periods/reportperiod.js b/website/app/tmpl/module/periods/reportperiod.js index 2b551942..b5f74209 100644 --- a/website/app/tmpl/module/periods/reportperiod.js +++ b/website/app/tmpl/module/periods/reportperiod.js @@ -82,7 +82,7 @@ let reportperiod ={ // }, gettbldatafilter: function(){ postData("db.cgi", { "get": "periods","schemata":schemata}).then(data => { - console.log("periods",data); + //console.log("periods",data); reportperiod.tblfilter.setData(data.result.sqldata); }); @@ -105,10 +105,16 @@ let reportperiod ={ }); }, generatereport: function(){ + let udata = reportperiod.tblfilter.getSelectedData(); - let repdata = {"schemata":schemata,"id_reportperiod":udata[0].id}; + let sdata = reportperiod.tbl.getSelectedData(); + let staffexcl = []; + for (var s in sdata){ + staffexcl.push(sdata[s].id_staff); + } + let repdata = {"schemata":schemata,"id_reportperiod":udata[0].id,"staff_exclude":staffexcl}; if (udata[0]) { - report.generate('pot/pot_staffmember_period',"periode_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"),repdata); + report.generate('pot',"periode_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"),repdata); } }, datarefresh: function(){ @@ -133,7 +139,7 @@ let reportperiod ={ document.getElementById("rppayedhours_infomsg").innerHTML = ''; //console.log(prd[0]); //if (prd[0] && prd[0].hoursdiff != '00:00' && prd[0].hoursdiff.indexOf("-") == -1){ - console.log("open payed hours!"); + //console.log("open payed hours!"); 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; @@ -150,7 +156,7 @@ let reportperiod ={ rpdata["fn"] ="saveform";rpdata["fn"] ="staffreportperiod"; rpdata["schemata"] = schemata; let prd = reportperiod.tbl.getSelectedData(); - console.log("transfer to save",rpdata); + //console.log("transfer to save",rpdata); //let maxinterval = prd[0].hoursdiff; // if (maxinterval < rpdata["staffreportperiod_payedhours"]){ // document.getElementById("rppayedhours_infomsg").innerHTML = '
les heures "heures payés" ne peuvent pas être suppérieur aux heures "à récupérer"
'; diff --git a/website/app/tmpl/module/periods/staffperiodweeks.js b/website/app/tmpl/module/periods/staffperiodweeks.js index f7ea24db..01ebeb9a 100644 --- a/website/app/tmpl/module/periods/staffperiodweeks.js +++ b/website/app/tmpl/module/periods/staffperiodweeks.js @@ -96,10 +96,10 @@ let staffperiodweeks = { postData("db.cgi",{"get":"periodweeksums","schemata":schemata,"id_staff":selrp[0].id_staff,"date_start":weekmonstart,"date_end":weeksunend}).then(data => { //console.log(data); staffperiodweeks.weekdata = data.result.data; - console.log("WeekData",staffperiodweeks.weekdata); + //console.log("WeekData",staffperiodweeks.weekdata); //console.log(JSON.stringify({ "vw": "staffreportperioddays_new","schemata":schemata,"filter":"id_staff='" + selrp[0].id_staff + "' and daydate between date('"+weekmonstart+ "') and date('" +weeksunend+"')"})); postData("db.cgi",{ "get": "perioddays","schemata":schemata,"id_staff":selrp[0].id_staff,"date_start":weekmonstart,"date_end":weeksunend}).then(data => { - console.log("perioddays",data); + //console.log("perioddays",data); if (data && data.result.sqldata) { staffperiodweeks.tbl.setData(data.result.sqldata);} }); }) @@ -109,7 +109,7 @@ let staffperiodweeks = { loadplan: function(parenttbl){ staffperiodweeks.parenttbl = parenttbl; let selrp = staffperiodweeks.parenttbl.getSelectedData(); - console.log("weekplan",selrp); + //console.log("weekplan",selrp); if (selrp[0]) { document.getElementById("periodtitle").innerHTML=" Période " + moment(selrp[0].startdate).format('DD.MM.YYYY') + "-" + moment(selrp[0].enddate).format('DD.MM.YYYY'); document.getElementById("stafftitle").innerHTML= selrp[0].staffname + "(" + selrp[0].groupname + ")"; @@ -173,7 +173,7 @@ let staffperiodweeks = { dataform.fillformbydataclass2("staffreportperioddays",staffperiodweeks.choices,staffperiodweeks.currentday); document.getElementById("display_date").innerHTML=moment(staffperiodweeks.currentday.daydate).format("dddd , DD.MM.YYY"); postData("db.cgi",{"fn":"getworktimelimits","daydate":cday[0].daydate,"id_staff":cday[0].id_staff,"schemata":schemata}).then(data => { - console.log("daylimits",data); + //console.log("daylimits",data); if (data.result){ staffperiodweeks.dayrefdata =data.result; document.getElementById("infomaxdayhours").value=data.result.maxdayhours; @@ -468,7 +468,7 @@ let staffperiodweeks = { //console.log("replacedays",{"schemata":schemata,"fn":"replace_staffperiodweekdayhours","id_workplan":id_workplan,"keepvac":keepvac,"keeprec":keeprec,"replaceids":asel}); postData("db.cgi",{"schemata":schemata,"fn":"replace_staffperiodweekdayhours","id_staff":selrp[0].id_staff,"id_period":selrp[0].id_reportperiod,"id_workplan":id_workplan,"keepvac":keepvac,"keeprec":keeprec,"replaceids":asel}).then(data => { - console.log(data); + //console.log(data); document.getElementById('dlg_replacestaffdayworkplan').style.display='none'; staffperiodweeks.gettbldata(); }).catch(e => { console.log("ERROR replaceids",e);}); diff --git a/website/app/tmpl/module/staff/staff.js b/website/app/tmpl/module/staff/staff.js index 0917eebe..b810be4d 100644 --- a/website/app/tmpl/module/staff/staff.js +++ b/website/app/tmpl/module/staff/staff.js @@ -76,7 +76,7 @@ let staff ={ gettbldata: function(id){ let selectedData = staff.tbl.getSelectedData(); postData("db.cgi",{ "get": "stafflist","schemata":schemata}).then(data => { - console.log("Stafftabledata!",data); + //console.log("Stafftabledata!",data); staff.tbl.setData(data.result.sqldata).then(function(){ if(selectedData[0]){staff.tbl.selectRow(selectedData[0]['id']);} }); @@ -126,7 +126,7 @@ let staff ={ staff.current_id = udata[0].id; dataform.cleanform2("staff",staff.choices); postData("db.cgi",{ "get":"staff","schemata":schemata,"id":udata[0].id}).then(data => { - console.log("staffresult",data); + //console.log("staffresult",data); dataform.fillformbydataclass2("staff",staff.choices,data.result.data,'dataform.savefield(this,null);'); staffcontract.gettbldata(); staffperiods.gettbldata(); diff --git a/website/app/tmpl/module/staff/staffcontract.js b/website/app/tmpl/module/staff/staffcontract.js index a18b5c64..d5754a45 100644 --- a/website/app/tmpl/module/staff/staffcontract.js +++ b/website/app/tmpl/module/staff/staffcontract.js @@ -43,11 +43,11 @@ let staffcontract = { }, gettbldata: function(){ - console.log({ "get": "staffcontractdates","schemata":schemata,"id_staff:":staff.current_id}); + //console.log({ "get": "staffcontractdates","schemata":schemata,"id_staff:":staff.current_id}); postData("db.cgi", { "get": "staffcontractdates","schemata":schemata,"id_staff":staff.current_id}).then(data => { - console.log("staffcontract",data); + //console.log("staffcontract",data); if (data && data.result.sqldata) { - console.log("staffcontract datasize",data.result.sqldata.length); + // console.log("staffcontract datasize",data.result.sqldata.length); if (data.result.sqldata.length <= 1){ document.getElementById("btn_delete_staffcontract").style.display= 'none'; }else { @@ -79,7 +79,7 @@ let staffcontract = { remove: function(){ let udata = staffcontract.tbl.getSelectedData(); if (udata[0]) { - console.log("del contract data",udata[0]); + //console.log("del contract data",udata[0]); var flds = {}; flds["fn"] = "del_staffcontract"; flds["id"] = udata[0].id; @@ -88,7 +88,7 @@ let staffcontract = { } }, removedata: function(data){ - console.log("Data to remove",data); + //console.log("Data to remove",data); // showdataloaddlg('','
Attendez s.v.p.!
'); postData("db.cgi",data).then(data => { staffcontract.gettbldata(); @@ -118,7 +118,7 @@ let staffcontract = { document.getElementById('dlg_staffcontract').style.display='none'; showdataloaddlg('','
Attendez s.v.p.!
'); postData("db.cgi",flds).then(data => { - console.log("contract data returned",data); + //("contract data returned",data); staffcontract.gettbldata(); //dataform.formsaved({}); staffcontract.updateStaffContractDays(flds["staffcontract_id_staff"]); diff --git a/website/app/tmpl/module/staff/staffperiods.js b/website/app/tmpl/module/staff/staffperiods.js index 4f8da8a6..7d14f299 100644 --- a/website/app/tmpl/module/staff/staffperiods.js +++ b/website/app/tmpl/module/staff/staffperiods.js @@ -34,7 +34,7 @@ let staffperiods = { }, gettbldata: function(){ postData("db.cgi",{ "get":"staffperiods","schemata":schemata,"id_staff":staff.current_id}).then(data => { - console.log("perioddata",data); + //console.log("perioddata",data); staffperiods.tbl.setData(data.result.sqldata); }); }, @@ -55,13 +55,13 @@ let staffperiods = { let udata = staffperiods.tbl.getSelectedData(); let rpids = []; for (var i in udata){ - rpids.push("'"+udata[i].id_reportperiod+ "'"); + rpids.push(udata[i].id_reportperiod); } - let repdata = {"schemata":schemata,"id_staff":udata[0].id_staff,"id_periodlist":rpids.join(',')}; - console.log(udata); - console.log(repdata); + let repdata = {"schemata":schemata,"id_staff":staff.current_id,"id_periods":rpids}; + //console.log(udata); + //console.log(repdata); if (udata[0]) { - report.generate('pot/pot_period',udata[0].staffname.replace(/\s+/g,"_")+"_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"),repdata); + report.generate('pot',udata[0].staffname.replace(/\s+/g,"_")+"_" + moment(udata[0].startdate).format("YYYYMMDD") + "-" + moment(udata[0].enddate).format("YYYYMMDD"),repdata); } }, showdlgpayedhours: function(){ @@ -86,7 +86,7 @@ let staffperiods = { rpdata["fn"] ="saveform";rpdata["table"]="staffreportperiod"; rpdata["schemata"] = schemata; - console.log("transfer to save",rpdata); + //console.log("transfer to save",rpdata); let prd = staffperiods.tbl.getSelectedData(); // let maxinterval = prd[0].hoursdiff; // if (maxinterval < rpdata["staffreportperiod_payedhours"]){ diff --git a/website/app/tmpl/module/workplans/workplans.js b/website/app/tmpl/module/workplans/workplans.js index 1a48564c..bf95745e 100644 --- a/website/app/tmpl/module/workplans/workplans.js +++ b/website/app/tmpl/module/workplans/workplans.js @@ -81,7 +81,7 @@ let workplans ={ workplans.initform(); }, gettblfilterdata: function(){ - console.log({"get": "workplanlist" ,"schemata":schemata}); + //console.log({"get": "workplanlist" ,"schemata":schemata}); postData("db.cgi", {"get": "workplanlist" ,"schemata":schemata}).then(data => { workplans.tblfilter.setData(data.result.sqldata); }); @@ -148,7 +148,7 @@ let workplans ={ pasteday: function(){ let cdata = workplans.tbl.getSelectedData(); if (cdata[0] && workplans.copy_day_id &&cdata[0].id != workplans.copy_day_id){ - console.log("Wplancopy",{"fn":"workplan_replaceday","schemata":schemata,"copyid":workplans.copy_day_id,"pasteid":cdata[0].id}); + //console.log("Wplancopy",{"fn":"workplan_replaceday","schemata":schemata,"copyid":workplans.copy_day_id,"pasteid":cdata[0].id}); postData("db.cgi",{"fn":"workplan_replaceday","schemata":schemata,"copyid":workplans.copy_day_id,"pasteid":cdata[0].id}).then(data => {workplans.gettbldata()}); } }, @@ -199,7 +199,7 @@ let workplans ={ wpdatanew["fn"] ="saveform";wpdatanew["table"] ="workplandays"; wpdatanew["schemata"]=schemata; delete wpdatanew["null"]; - console.log(wpdatanew); + //console.log(wpdatanew); postData("db.cgi",wpdatanew).then(data => { document.getElementById('dlg_workplanday').style.display='none'; workplans.gettbldata(); -- 2.39.5