v20200725
authorkilian@dks-pc1 <ksaffran@dks.lu>
Sat, 25 Jul 2020 08:32:56 +0000 (10:32 +0200)
committerkilian@dks-pc1 <ksaffran@dks.lu>
Sat, 25 Jul 2020 08:32:56 +0000 (10:32 +0200)
34 files changed:
.gitignore
.vscode/settings.json
dev/db/potlu_db.portanova.pg.schema.sql
install/windows/pot_setup_new.iss
webapp/app.cgi
webapp/data/output/pot/periode_20191230-20200223_pot_period.pdf [deleted file]
webapp/data/output/pot/periode_20200224-20200419_pot_period.pdf [deleted file]
webapp/data/output/pot/periode_20200420-20200614_pot_period.pdf [deleted file]
webapp/data/output/pot/periode_20200615-20200809_pot_period.pdf [deleted file]
webapp/data/reports/pot/pot_staffmember_period.tt
webapp/db.cgi
webapp/lib/dksconfig.pm
webapp/static/js/app.js
webapp/tmpl/block/dlg_replacestaffdayworkplan.tt [new file with mode: 0644]
webapp/tmpl/module/companies.tt
webapp/tmpl/module/index.tt
webapp/tmpl/module/periods.tt
webapp/tmpl/module/periods/staffperiodweeks.js
webapp/tmpl/module/periods/tlb_staffperiodweeks.tt
webapp/tmpl/module/staff.tt
webapp/tmpl/module/staff/dlg_staffcontract.tt
webapp/tmpl/module/workplans.tt
webapp/tools/bin/wkhtmltoimage [deleted file]
webapp/tools/bin/wkhtmltopdf [deleted file]
webapp/tools/include/wkhtmltox/dllbegin.inc [deleted file]
webapp/tools/include/wkhtmltox/dllend.inc [deleted file]
webapp/tools/include/wkhtmltox/image.h [deleted file]
webapp/tools/include/wkhtmltox/pdf.h [deleted file]
webapp/tools/lib/libwkhtmltox.so [deleted file]
webapp/tools/lib/libwkhtmltox.so.0 [deleted file]
webapp/tools/lib/libwkhtmltox.so.0.12 [deleted file]
webapp/tools/lib/libwkhtmltox.so.0.12.6 [deleted file]
webapp/tools/share/man/man1/wkhtmltoimage.1.gz [deleted file]
webapp/tools/share/man/man1/wkhtmltopdf.1.gz [deleted file]

index b326ff1..54e8c4d 100644 (file)
@@ -5,5 +5,6 @@ desktopapp/node_modules/package-lock.json
 OLD/
 webapp/data/output/*
 webapp/data/tmp/*
-webapp/tools/
-webapp/lib/perl5/*
\ No newline at end of file
+webapp/tools/*
+webapp/lib/perl5/*
+
index f147280..41b9319 100644 (file)
@@ -1,6 +1,6 @@
 {
   "perlSyntax.includePaths": [
-    "${workspaceFolder}\\lib\\perl5","${workspaceFolder}\\lib"
+    "C:/Users/kilian/Workspace/pot_lu/webapp/lib/perl5","C:/Users/kilian/Workspace/pot_lu/webapp/lib"
 ],
 "git.ignoreLimitWarning": true
 
index 1256a10..a2dadaa 100644 (file)
@@ -29,26 +29,26 @@ CREATE SCHEMA portanova;
 
 CREATE FUNCTION portanova.add_reportperiod() RETURNS text
     LANGUAGE plpgsql
-    AS $$
-declare
-       rpstart date;
-       rpend date;
-       rplength int4;
-       rpparentid text;
-       rpunit text;
-       r_stgrps record;
-       rpsql text;
-       newperiodid text;
-begin
-       select reportperiodunit,reportperiodlength,reportperiodstart into rpunit,rplength,rpstart from public.companies where schemata='portanova';     
-       select case when max(enddate) is null then rpstart else date(max(enddate) + interval '1 day') end into rpstart from portanova.reportperiod;
-       execute 'select date(date(''' || rpstart || ''') + interval ''' || rplength || ' ' || rpunit || 's'' -  interval ''1 day'' );' into rpend;
-       select max(id) into rpparentid from portanova.reportperiod;
-       --raise notice 'ADD NEW PERIOD: %->%',rpstart,rpend;
-       INSERT INTO portanova.reportperiod (startdate, enddate, id_parentreportperiod) VALUES(rpstart,rpend,rpparentid) returning id into newperiodid;
-       perform portanova.update_all_staff_in_period(newperiodid);
-       return newperiodid;
-end;
+    AS $$\r
+declare\r
+       rpstart date;\r
+       rpend date;\r
+       rplength int4;\r
+       rpparentid text;\r
+       rpunit text;\r
+       r_stgrps record;\r
+       rpsql text;\r
+       newperiodid text;\r
+begin\r
+       select reportperiodunit,reportperiodlength,reportperiodstart into rpunit,rplength,rpstart from public.companies where schemata='portanova';     \r
+       select case when max(enddate) is null then rpstart else date(max(enddate) + interval '1 day') end into rpstart from portanova.reportperiod;\r
+       execute 'select date(date(''' || rpstart || ''') + interval ''' || rplength || ' ' || rpunit || 's'' -  interval ''1 day'' );' into rpend;\r
+       select max(id) into rpparentid from portanova.reportperiod;\r
+       --raise notice 'ADD NEW PERIOD: %->%',rpstart,rpend;\r
+       INSERT INTO portanova.reportperiod (startdate, enddate, id_parentreportperiod) VALUES(rpstart,rpend,rpparentid) returning id into newperiodid;\r
+       perform portanova.update_all_staff_in_period(newperiodid);\r
+       return newperiodid;\r
+end;\r
 $$;
 
 
@@ -58,20 +58,20 @@ $$;
 
 CREATE FUNCTION portanova.getperiod_staffcontract(pid text) RETURNS TABLE(id text, id_staff text, startdate date, enddate date, weekhours interval, weekdays integer, id_workplan text, defaultfreedays json)
     LANGUAGE plpgsql
-    AS $$
- declare
-       pstart date;
-       pend date;
- begin
-        select prd.startdate as prdstart,prd.enddate as prdend into pstart,pend from portanova.reportperiod prd where prd.id=pid;
- return QUERY
-select sc.id,sc.id_staff,
-case when sc.startdate < pstart then pstart else sc.startdate end as startdate,
-case when sc.enddate is null then pend when sc.enddate >  pend then pend else sc.enddate end as enddate,
-sc.weekhours,sc.weekdays,sc.id_workplan,sc.defaultfreedays 
-from portanova.staffcontract sc where sc.startdate<= pend and (sc.enddate is null or sc.enddate >= pstart) 
-order by sc.id_staff,sc.startdate,sc.enddate; 
-END;  
+    AS $$\r
+ declare\r
+       pstart date;\r
+       pend date;\r
+ begin\r
+        select prd.startdate as prdstart,prd.enddate as prdend into pstart,pend from portanova.reportperiod prd where prd.id=pid;\r
+ return QUERY\r
+select sc.id,sc.id_staff,\r
+case when sc.startdate < pstart then pstart else sc.startdate end as startdate,\r
+case when sc.enddate is null then pend when sc.enddate >  pend then pend else sc.enddate end as enddate,\r
+sc.weekhours,sc.weekdays,sc.id_workplan,sc.defaultfreedays \r
+from portanova.staffcontract sc where sc.startdate<= pend and (sc.enddate is null or sc.enddate >= pstart) \r
+order by sc.id_staff,sc.startdate,sc.enddate; \r
+END;  \r
 $$;
 
 
@@ -81,14 +81,14 @@ $$;
 
 CREATE FUNCTION portanova.getperiod_staffcontract(pstart date, pend date) RETURNS TABLE(id text, id_staff text, startdate date, enddate date, weekhours interval, weekdays integer, id_workplan text)
     LANGUAGE plpgsql
-    AS $$
- BEGIN
- return QUERY
-select id,id_staff,case when startdate < pstart then pstart else startdate end as startdate,case when enddate is null then pend when enddate >  pend then pend else enddate end as enddate,
-weekdays,
-id_workplan,
-weekhours  from portanova.staffcontract where startdate<= pend and (enddate is null or enddate >= pstart) order by id_staff,startdate,enddate; 
-END;  
+    AS $$\r
+ BEGIN\r
+ return QUERY\r
+select id,id_staff,case when startdate < pstart then pstart else startdate end as startdate,case when enddate is null then pend when enddate >  pend then pend else enddate end as enddate,\r
+weekdays,\r
+id_workplan,\r
+weekhours  from portanova.staffcontract where startdate<= pend and (enddate is null or enddate >= pstart) order by id_staff,startdate,enddate; \r
+END;  \r
 $$;
 
 
@@ -98,20 +98,20 @@ $$;
 
 CREATE FUNCTION portanova.onchange_reportperiod(pid_period text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       prdstart date;
-       prdend date;
-       strec record;
-begin
-       select startdate,enddate into prdstart,prdend from portanova.reportperiod where id=pid_period;
-       for strec in select id_staff,startdate,enddate from portanova.staffcontract where startdate <= prdend and (enddate is null or enddate >= prdstart) group by id_staff
-       loop
-               --raise notice 'Start Update period % staffworkplan for % from % to %',pid_period,strec.id_staff,strec.startdate,strec.enddate;
-               perform portanova.update_staffworkplan(pid_period,strec.id_staff);
-       end loop;
-       return true;
-end;
+    AS $$\r
+declare\r
+       prdstart date;\r
+       prdend date;\r
+       strec record;\r
+begin\r
+       select startdate,enddate into prdstart,prdend from portanova.reportperiod where id=pid_period;\r
+       for strec in select id_staff,startdate,enddate from portanova.staffcontract where startdate <= prdend and (enddate is null or enddate >= prdstart) group by id_staff\r
+       loop\r
+               --raise notice 'Start Update period % staffworkplan for % from % to %',pid_period,strec.id_staff,strec.startdate,strec.enddate;\r
+               perform portanova.update_staffworkplan(pid_period,strec.id_staff);\r
+       end loop;\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -121,16 +121,16 @@ $$;
 
 CREATE FUNCTION portanova.refresh_periods() RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-       declare 
-               prds record;
-    begin
-           for prds in select id from portanova.reportperiod order by startdate,enddate
-           loop
-               perform portanova.update_all_staff_in_period(prds.id);
-           end loop;
-           RETURN true;
-    END;
+    AS $$\r
+       declare \r
+               prds record;\r
+    begin\r
+           for prds in select id from portanova.reportperiod order by startdate,enddate\r
+           loop\r
+               perform portanova.update_all_staff_in_period(prds.id);\r
+           end loop;\r
+           RETURN true;\r
+    END;\r
 $$;
 
 
@@ -140,52 +140,52 @@ $$;
 
 CREATE FUNCTION portanova.set_periodday_sums(pid_periodday text) RETURNS text
     LANGUAGE plpgsql
-    AS $$
-declare
-       stw record;
-       dt1 interval := '00:00:00'::interval;
-       dt2 interval := '00:00:00'::interval;
-       dp interval := '00:00:00'::interval;
-       cworkhours interval := '00:00:00'::interval;
-       cvacancyhours interval := '00:00:00'::interval;
-       crecuperationhours interval := '00:00:00'::interval;
-       cdayhours interval := '00:00:00'::interval;
-       cinterruptionhours interval := '00:00:00'::interval; 
-begin 
-       
-       select * into stw from portanova.staffreportperioddays where id=pid_periodday;
-       if stw.timestart1 is not null and stw.timeend1 is not null then
-               dt1 := stw.timeend1-stw.timestart1;
-       end if;
-       if stw.timestart2 is not null and stw.timeend2 is not null then
-               dt2 := stw.timeend2-stw.timestart2;
-       end if;
-       if stw.timepause is not null then 
-               dp := stw.timepause;
-       end if;
-       cworkhours := (dt1+dt2)-dp;
-       if (dt1 > '00:00:00'::interval and dt2 > '00:00:00'::interval) then
-               cinterruptionhours := stw.timestart2 -stw.timeend1;
-       end if;
-       if stw.vacancyhours is not null then
-               if stw.vacancyhours <= stw.contracthours then
-                       cvacancyhours := stw.vacancyhours;
-               else 
-                       cvacancyhours := stw.contracthours;
-               end if;
-       end if;
-       if stw.recuperationhours is not null then
-               if stw.recuperationhours <= stw.contracthours then
-                       crecuperationhours := stw.recuperationhours;
-               else 
-                       crecuperationhours := stw.contracthours;
-               end if;
-       end if;
-       cdayhours := cworkhours+cvacancyhours+crecuperationhours;
-       
-       update portanova.staffreportperioddays set workhours=cworkhours,interruptionhours=cinterruptionhours,dayhours=cdayhours,vacancyhours=cvacancyhours,recuperationhours=crecuperationhours where id=pid_periodday;
-       return pid_periodday;
-end;
+    AS $$\r
+declare\r
+       stw record;\r
+       dt1 interval := '00:00:00'::interval;\r
+       dt2 interval := '00:00:00'::interval;\r
+       dp interval := '00:00:00'::interval;\r
+       cworkhours interval := '00:00:00'::interval;\r
+       cvacancyhours interval := '00:00:00'::interval;\r
+       crecuperationhours interval := '00:00:00'::interval;\r
+       cdayhours interval := '00:00:00'::interval;\r
+       cinterruptionhours interval := '00:00:00'::interval; \r
+begin \r
+       \r
+       select * into stw from portanova.staffreportperioddays where id=pid_periodday;\r
+       if stw.timestart1 is not null and stw.timeend1 is not null then\r
+               dt1 := stw.timeend1-stw.timestart1;\r
+       end if;\r
+       if stw.timestart2 is not null and stw.timeend2 is not null then\r
+               dt2 := stw.timeend2-stw.timestart2;\r
+       end if;\r
+       if stw.timepause is not null then \r
+               dp := stw.timepause;\r
+       end if;\r
+       cworkhours := (dt1+dt2)-dp;\r
+       if (dt1 > '00:00:00'::interval and dt2 > '00:00:00'::interval) then\r
+               cinterruptionhours := stw.timestart2 -stw.timeend1;\r
+       end if;\r
+       if stw.vacancyhours is not null then\r
+               if stw.vacancyhours <= stw.contracthours then\r
+                       cvacancyhours := stw.vacancyhours;\r
+               else \r
+                       cvacancyhours := stw.contracthours;\r
+               end if;\r
+       end if;\r
+       if stw.recuperationhours is not null then\r
+               if stw.recuperationhours <= stw.contracthours then\r
+                       crecuperationhours := stw.recuperationhours;\r
+               else \r
+                       crecuperationhours := stw.contracthours;\r
+               end if;\r
+       end if;\r
+       cdayhours := cworkhours+cvacancyhours+crecuperationhours;\r
+       \r
+       update portanova.staffreportperioddays set workhours=cworkhours,interruptionhours=cinterruptionhours,dayhours=cdayhours,vacancyhours=cvacancyhours,recuperationhours=crecuperationhours where id=pid_periodday;\r
+       return pid_periodday;\r
+end;\r
 $$;
 
 
@@ -195,31 +195,31 @@ $$;
 
 CREATE FUNCTION portanova.set_staffperiod_sums(pid_period text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-       declare
-               weekrec record;
-       BEGIN
-               for weekrec in select id_staff,id_reportperiod,
-sum(contracthours) as contracthours,
-sum(workhours) as workhours, 
-sum(vacancyhours) as vacancyhours,
-sum(recuperationhours) as recuperationhours,
-sum(diffhours) as hoursdiff,
-sum(totalhours) as totalhours
-from portanova.staffreportperiodweeks where id_staff=pid_staff and id_reportperiod=pid_period group by id_reportperiod,id_staff
-               loop
-                       update portanova.staffreportperiod set contracthours=weekrec.contracthours,
-                                       workhours=weekrec.workhours,
-                                       vacancyhours=weekrec.vacancyhours,
-                                       recuperationhours=weekrec.recuperationhours,
-                                       hoursdiff=weekrec.hoursdiff,
-                                       totalhours=weekrec.totalhours
-                       where id_staff=pid_staff  and id_reportperiod=pid_period;
-               end loop;
-               --set periodstaffdata (based on periodweeks)
-               --set nextperiodsdata(based on)
-               return true;
-       END;
+    AS $$\r
+       declare\r
+               weekrec record;\r
+       BEGIN\r
+               for weekrec in select id_staff,id_reportperiod,\r
+sum(contracthours) as contracthours,\r
+sum(workhours) as workhours, \r
+sum(vacancyhours) as vacancyhours,\r
+sum(recuperationhours) as recuperationhours,\r
+sum(diffhours) as hoursdiff,\r
+sum(totalhours) as totalhours\r
+from portanova.staffreportperiodweeks where id_staff=pid_staff and id_reportperiod=pid_period group by id_reportperiod,id_staff\r
+               loop\r
+                       update portanova.staffreportperiod set contracthours=weekrec.contracthours,\r
+                                       workhours=weekrec.workhours,\r
+                                       vacancyhours=weekrec.vacancyhours,\r
+                                       recuperationhours=weekrec.recuperationhours,\r
+                                       hoursdiff=weekrec.hoursdiff,\r
+                                       totalhours=weekrec.totalhours\r
+                       where id_staff=pid_staff  and id_reportperiod=pid_period;\r
+               end loop;\r
+               --set periodstaffdata (based on periodweeks)\r
+               --set nextperiodsdata(based on)\r
+               return true;\r
+       END;\r
 $$;
 
 
@@ -229,48 +229,48 @@ $$;
 
 CREATE FUNCTION portanova.set_staffperiodweek_sums(pid_reportperiod text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       wkcon record;
-       tmpcontrhours interval;
-       freedays int4 := 0;
-begin 
-       -- INSERT Contract data into Week
-for wkcon in select srpw.id,srpw.calweek,srpw.weekstart,srpw.calyear,rp.startdate as periodstart,psc.startdate,rp.enddate as periodend,psc.enddate,psc.weekhours,psc.weekdays,srpw.contractdays,srpw.caldays,srpw.diffhours,srpw.contracthours,srpw.totalhours,psc.defaultfreedays
-from portanova.staffreportperiodweeks srpw 
-left join (select xa.id_staff,xa.startdate,xa.enddate,xa.weekhours,xa.weekdays,xa.defaultfreedays from portanova.getperiod_staffcontract(pid_reportperiod) xa where xa.id_staff=pid_staff) psc
-on (srpw.weekstart between date_trunc('week',psc.startdate) and psc.enddate)
-left join portanova.reportperiod rp on (srpw.id_reportperiod =rp.id)
-where srpw.id_reportperiod=pid_reportperiod and srpw.id_staff=pid_staff
-loop
-       --raise notice 'id=%',wkcon;
-       if wkcon.defaultfreedays is not null then 
-               freedays = json_array_length(wkcon.defaultfreedays);
-       end if; 
-       wkcon.contracthours=wkcon.weekhours;
-       wkcon.contractdays=wkcon.weekdays;
-       if wkcon.calweek= date_part('week',wkcon.periodstart)::int4 and wkcon.calyear= date_part('isoyear',wkcon.periodstart)::int4 then 
-               wkcon.contracthours = wkcon.contracthours - ((wkcon.weekhours/wkcon.weekdays) * (wkcon.startdate-wkcon.periodstart)::int4);
-       end if;
-       --if wkcon.startdate > wkcon.periodstart then 
-       --      wkcon.contractdays = wkcon.contractdays-(wkcon.startdate-wkcon.periodstart)::int4;
-       --      wkcon.contracthours = (wkcon.weekhours/wkcon.weekdays) * wkcon.contractdays;
-       --end if;
-       --if wkcon.enddate < wkcon.periodend then 
-       --      wkcon.contractdays = wkcon.contractdays-(wkcon.periodend-wkcon.enddate)::int4;
-       --      wkcon.contracthours = (wkcon.weekhours/wkcon.weekdays) * wkcon.contractdays;
-       --end if;
-       
-       
-       wkcon.diffhours = wkcon.totalhours-wkcon.contracthours;
-       raise notice 'contractdays: % contracthours: % totalhours: % diffhours: %',wkcon.contractdays,wkcon.contracthours,wkcon.totalhours,wkcon.diffhours;
-       --raise notice 'id=% cdays=% chours=% diffhours=%',wkcon.id,wkcon.contractdays,wkcon.contracthours,wkcon.diffhours;
-       update portanova.staffreportperiodweeks set contracthours=wkcon.contracthours,contractdays=wkcon.contractdays,diffhours=wkcon.diffhours where id=wkcon.id;
-       
-end loop;
-
-       return true;
-end;
+    AS $$\r
+declare\r
+       wkcon record;\r
+       tmpcontrhours interval;\r
+       freedays int4 := 0;\r
+begin \r
+       -- INSERT Contract data into Week\r
+for wkcon in select srpw.id,srpw.calweek,srpw.weekstart,srpw.calyear,rp.startdate as periodstart,psc.startdate,rp.enddate as periodend,psc.enddate,psc.weekhours,psc.weekdays,srpw.contractdays,srpw.caldays,srpw.diffhours,srpw.contracthours,srpw.totalhours,psc.defaultfreedays\r
+from portanova.staffreportperiodweeks srpw \r
+left join (select xa.id_staff,xa.startdate,xa.enddate,xa.weekhours,xa.weekdays,xa.defaultfreedays from portanova.getperiod_staffcontract(pid_reportperiod) xa where xa.id_staff=pid_staff) psc\r
+on (srpw.weekstart between date_trunc('week',psc.startdate) and psc.enddate)\r
+left join portanova.reportperiod rp on (srpw.id_reportperiod =rp.id)\r
+where srpw.id_reportperiod=pid_reportperiod and srpw.id_staff=pid_staff\r
+loop\r
+       --raise notice 'id=%',wkcon;\r
+       if wkcon.defaultfreedays is not null then \r
+               freedays = json_array_length(wkcon.defaultfreedays);\r
+       end if; \r
+       wkcon.contracthours=wkcon.weekhours;\r
+       wkcon.contractdays=wkcon.weekdays;\r
+       if wkcon.calweek= date_part('week',wkcon.periodstart)::int4 and wkcon.calyear= date_part('isoyear',wkcon.periodstart)::int4 then \r
+               wkcon.contracthours = wkcon.contracthours - ((wkcon.weekhours/wkcon.weekdays) * (wkcon.startdate-wkcon.periodstart)::int4);\r
+       end if;\r
+       --if wkcon.startdate > wkcon.periodstart then \r
+       --      wkcon.contractdays = wkcon.contractdays-(wkcon.startdate-wkcon.periodstart)::int4;\r
+       --      wkcon.contracthours = (wkcon.weekhours/wkcon.weekdays) * wkcon.contractdays;\r
+       --end if;\r
+       --if wkcon.enddate < wkcon.periodend then \r
+       --      wkcon.contractdays = wkcon.contractdays-(wkcon.periodend-wkcon.enddate)::int4;\r
+       --      wkcon.contracthours = (wkcon.weekhours/wkcon.weekdays) * wkcon.contractdays;\r
+       --end if;\r
+       \r
+       \r
+       wkcon.diffhours = wkcon.totalhours-wkcon.contracthours;\r
+       raise notice 'contractdays: % contracthours: % totalhours: % diffhours: %',wkcon.contractdays,wkcon.contracthours,wkcon.totalhours,wkcon.diffhours;\r
+       --raise notice 'id=% cdays=% chours=% diffhours=%',wkcon.id,wkcon.contractdays,wkcon.contracthours,wkcon.diffhours;\r
+       update portanova.staffreportperiodweeks set contracthours=wkcon.contracthours,contractdays=wkcon.contractdays,diffhours=wkcon.diffhours where id=wkcon.id;\r
+       \r
+end loop;\r
+\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -280,54 +280,54 @@ $$;
 
 CREATE FUNCTION portanova.set_stafftoperioddays(pid_period text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       cont record;
-       prd record;
-       cdl record;
-       cdate date;
-       edate date;
-       wday text;
-       wdaynum int4;
-       wdayplan record;
-       cid_staffworkplan text;
-       cdaytime interval; 
-begin 
-       select * into prd from portanova.reportperiod where id= pid_period;
-       for cont in select * from portanova.getperiod_staffcontract(pid_period) where id_staff=pid_staff
-       loop 
-               cdate := cont.startdate;
-               while cdate <= cont.enddate loop
-                       if cdate between prd.startdate and prd.enddate then
-                               wdaynum = date_part('isodow',cdate)::INT4;
-                               cdaytime := null;
-                               
-                               if position('"' || wdaynum || '"' in cont.defaultfreedays::text) = 0 then 
-                                       cdaytime := cont.weekhours/cont.weekdays;
-                               end if; 
-                               raise notice 'wday % => % => %',wdaynum,position('"' || wdaynum || '"' in cont.defaultfreedays::text),cdaytime;
-                               if (cont.id_workplan is not null) then
-                                       wday := substr(to_char(cdate,'day'),1,3);       
-                                       execute 'select ' || wday  || '_timestart1 as ts1,' || wday || '_timeend1 as te1,' || wday || '_timestart2 as ts2,' || wday ||'_timeend2 as te2,'|| wday ||'_timepause as tp from portanova.workplans where id=''' || cont.id_workplan || ''';' into wdayplan;
-                                       
-                                       insert into portanova.staffreportperioddays (id_staff,daydate,id_reportperiod,timestart1,timeend1,timestart2,timeend2,timepause,contracthours,wdcontracthours) 
-                                       values (pid_staff,cdate,pid_period,wdayplan.ts1,wdayplan.te1,wdayplan.ts2,wdayplan.te2,wdayplan.tp,cont.weekhours/cont.weekdays,cdaytime)
-                                       on conflict on constraint uniq_staffworplan_staffday do update set contracthours=cont.weekhours/cont.weekdays,wdcontracthours=cdaytime
-                                       returning id into cid_staffworkplan;
-                               else 
-                                       insert into portanova.staffreportperioddays (id_staff,daydate,id_reportperiod,contracthours,wdcontracthours) values ( pid_staff , cdate , pid_period,cont.weekhours/cont.weekdays,cdaytime)
-                                       on conflict on constraint uniq_staffworplan_staffday do update set contracthours=cont.weekhours/cont.weekdays,wdcontracthours=cdaytime
-                                       returning id into cid_staffworkplan;
-                               end if;                 
-                       end if;
-                       perform portanova.set_periodday_sums(cid_staffworkplan);
-                       cdate = cdate + interval '1 day';
-               end loop;
-               
-       end loop;
-       perform portanova.verify_perioddays(pid_period,pid_staff);
-       return true;
-end;
+    AS $$\r
+declare\r
+       cont record;\r
+       prd record;\r
+       cdl record;\r
+       cdate date;\r
+       edate date;\r
+       wday text;\r
+       wdaynum int4;\r
+       wdayplan record;\r
+       cid_staffworkplan text;\r
+       cdaytime interval; \r
+begin \r
+       select * into prd from portanova.reportperiod where id= pid_period;\r
+       for cont in select * from portanova.getperiod_staffcontract(pid_period) where id_staff=pid_staff\r
+       loop \r
+               cdate := cont.startdate;\r
+               while cdate <= cont.enddate loop\r
+                       if cdate between prd.startdate and prd.enddate then\r
+                               wdaynum = date_part('isodow',cdate)::INT4;\r
+                               cdaytime := null;\r
+                               \r
+                               if position('"' || wdaynum || '"' in cont.defaultfreedays::text) = 0 then \r
+                                       cdaytime := cont.weekhours/cont.weekdays;\r
+                               end if; \r
+                               raise notice 'wday % => % => %',wdaynum,position('"' || wdaynum || '"' in cont.defaultfreedays::text),cdaytime;\r
+                               if (cont.id_workplan is not null) then\r
+                                       wday := substr(to_char(cdate,'day'),1,3);       \r
+                                       execute 'select ' || wday  || '_timestart1 as ts1,' || wday || '_timeend1 as te1,' || wday || '_timestart2 as ts2,' || wday ||'_timeend2 as te2,'|| wday ||'_timepause as tp from portanova.workplans where id=''' || cont.id_workplan || ''';' into wdayplan;\r
+                                       \r
+                                       insert into portanova.staffreportperioddays (id_staff,daydate,id_reportperiod,timestart1,timeend1,timestart2,timeend2,timepause,contracthours,wdcontracthours) \r
+                                       values (pid_staff,cdate,pid_period,wdayplan.ts1,wdayplan.te1,wdayplan.ts2,wdayplan.te2,wdayplan.tp,cont.weekhours/cont.weekdays,cdaytime)\r
+                                       on conflict on constraint uniq_staffworplan_staffday do update set contracthours=cont.weekhours/cont.weekdays,wdcontracthours=cdaytime\r
+                                       returning id into cid_staffworkplan;\r
+                               else \r
+                                       insert into portanova.staffreportperioddays (id_staff,daydate,id_reportperiod,contracthours,wdcontracthours) values ( pid_staff , cdate , pid_period,cont.weekhours/cont.weekdays,cdaytime)\r
+                                       on conflict on constraint uniq_staffworplan_staffday do update set contracthours=cont.weekhours/cont.weekdays,wdcontracthours=cdaytime\r
+                                       returning id into cid_staffworkplan;\r
+                               end if;                 \r
+                       end if;\r
+                       perform portanova.set_periodday_sums(cid_staffworkplan);\r
+                       cdate = cdate + interval '1 day';\r
+               end loop;\r
+               \r
+       end loop;\r
+       perform portanova.verify_perioddays(pid_period,pid_staff);\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -337,42 +337,42 @@ $$;
 
 CREATE FUNCTION portanova.set_stafftoperiodweeks(pid_reportperiod text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       wkpd record;
-       wkcon record;
-begin 
---INSERT DAY DATA into WEEK
-       for wkpd in select id_staff,id_reportperiod,calyear,calweek,weekstart,
-coalesce(sum(workhours),'00:00:00') as workhours ,
-coalesce(sum(vacancyhours),'00:00:00') as vacancyhours ,
-coalesce(sum(recuperationhours) ,'00:00:00' ) as recuperationhours ,
-coalesce(sum(dayhours),'00:00:00') as totalhours,
-coalesce(sum(contracthours),'00:00:00') as contracthours,
-count(wdcontracthours) as caldays
-from ( 
-select swp.id,swp.id_reportperiod,swp.id_staff,
-date_part('isoyear',swp.daydate) as calyear,
-date_part('week',swp.daydate) as calweek,
-date(date_trunc('week',swp.daydate)) as weekstart,
-swp.workhours,
-swp.contracthours,
-swp.recuperationhours,
-swp.dayhours,
-swp.vacancyhours,
-swp.wdcontracthours
-from portanova.staffreportperioddays swp
-where swp.id_reportperiod= pid_reportperiod and swp.id_staff=pid_staff) wkwp group by id_staff,id_reportperiod,calyear,calweek,weekstart
-       loop
-               --raise notice 'id_staff: % id_period: % calweek: % calyear: %',pid_staff,pid_reportperiod,wkpd.calweek,wkpd.calyear;
-               insert into portanova.staffreportperiodweeks (id_staff, id_reportperiod, calyear, calweek, workhours,vacancyhours, recuperationhours,  weekstart,totalhours,caldays,contracthours,diffhours) 
-               VALUES(wkpd.id_staff, wkpd.id_reportperiod, wkpd.calyear, wkpd.calweek, wkpd.workhours,  wkpd.vacancyhours, wkpd.recuperationhours, wkpd.weekstart,wkpd.totalhours,wkpd.caldays,wkpd.contracthours,wkpd.contracthours-wkpd.totalhours)
-               on conflict on constraint uniq_staffweekplan_cal do update set workhours=wkpd.workhours,  vacancyhours=wkpd.vacancyhours, recuperationhours=wkpd.recuperationhours,totalhours=wkpd.totalhours,caldays=wkpd.caldays,contracthours=wkpd.contracthours,diffhours=wkpd.contracthours-wkpd.totalhours;
-       end loop;
-       perform portanova.set_staffperiodweek_sums(pid_reportperiod, pid_staff);
-
-       return true;
-end;
+    AS $$\r
+declare\r
+       wkpd record;\r
+       wkcon record;\r
+begin \r
+--INSERT DAY DATA into WEEK\r
+       for wkpd in select id_staff,id_reportperiod,calyear,calweek,weekstart,\r
+coalesce(sum(workhours),'00:00:00') as workhours ,\r
+coalesce(sum(vacancyhours),'00:00:00') as vacancyhours ,\r
+coalesce(sum(recuperationhours) ,'00:00:00' ) as recuperationhours ,\r
+coalesce(sum(dayhours),'00:00:00') as totalhours,\r
+coalesce(sum(contracthours),'00:00:00') as contracthours,\r
+count(wdcontracthours) as caldays\r
+from ( \r
+select swp.id,swp.id_reportperiod,swp.id_staff,\r
+date_part('isoyear',swp.daydate) as calyear,\r
+date_part('week',swp.daydate) as calweek,\r
+date(date_trunc('week',swp.daydate)) as weekstart,\r
+swp.workhours,\r
+swp.contracthours,\r
+swp.recuperationhours,\r
+swp.dayhours,\r
+swp.vacancyhours,\r
+swp.wdcontracthours\r
+from portanova.staffreportperioddays swp\r
+where swp.id_reportperiod= pid_reportperiod and swp.id_staff=pid_staff) wkwp group by id_staff,id_reportperiod,calyear,calweek,weekstart\r
+       loop\r
+               --raise notice 'id_staff: % id_period: % calweek: % calyear: %',pid_staff,pid_reportperiod,wkpd.calweek,wkpd.calyear;\r
+               insert into portanova.staffreportperiodweeks (id_staff, id_reportperiod, calyear, calweek, workhours,vacancyhours, recuperationhours,  weekstart,totalhours,caldays,contracthours,diffhours) \r
+               VALUES(wkpd.id_staff, wkpd.id_reportperiod, wkpd.calyear, wkpd.calweek, wkpd.workhours,  wkpd.vacancyhours, wkpd.recuperationhours, wkpd.weekstart,wkpd.totalhours,wkpd.caldays,wkpd.contracthours,wkpd.contracthours-wkpd.totalhours)\r
+               on conflict on constraint uniq_staffweekplan_cal do update set workhours=wkpd.workhours,  vacancyhours=wkpd.vacancyhours, recuperationhours=wkpd.recuperationhours,totalhours=wkpd.totalhours,caldays=wkpd.caldays,contracthours=wkpd.contracthours,diffhours=wkpd.contracthours-wkpd.totalhours;\r
+       end loop;\r
+       perform portanova.set_staffperiodweek_sums(pid_reportperiod, pid_staff);\r
+\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -382,17 +382,17 @@ $$;
 
 CREATE FUNCTION portanova.update_all_staff_in_period(pid_period text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-       declare
-               staffrec record;
-               staffreportid text;
-       BEGIN
-               for staffrec in select id_staff from portanova.getperiod_staffcontract(pid_period) group by id_staff
-               loop
-                       perform portanova.update_staff_in_period(pid_period,staffrec.id_staff);
-               end loop;
-               return true;
-       END;
+    AS $$\r
+       declare\r
+               staffrec record;\r
+               staffreportid text;\r
+       BEGIN\r
+               for staffrec in select id_staff from portanova.getperiod_staffcontract(pid_period) group by id_staff\r
+               loop\r
+                       perform portanova.update_staff_in_period(pid_period,staffrec.id_staff);\r
+               end loop;\r
+               return true;\r
+       END;\r
 $$;
 
 
@@ -402,17 +402,17 @@ $$;
 
 CREATE FUNCTION portanova.update_staff_in_period(pid_period text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-       declare
-               staffreportid text;
-       BEGIN
-                       insert into portanova.staffreportperiod (id_reportperiod,id_staff) values (pid_period,pid_staff) 
-                       on conflict on constraint uniq_staffreportperiod_cal do nothing returning id into staffreportid;
-                       perform portanova.set_stafftoperioddays(pid_period,pid_staff);
-                       perform portanova.set_stafftoperiodweeks(pid_period,pid_staff);
-                       perform portanova.set_staffperiod_sums(pid_period,pid_staff);
-               return true;
-       END;
+    AS $$\r
+       declare\r
+               staffreportid text;\r
+       BEGIN\r
+                       insert into portanova.staffreportperiod (id_reportperiod,id_staff) values (pid_period,pid_staff) \r
+                       on conflict on constraint uniq_staffreportperiod_cal do nothing returning id into staffreportid;\r
+                       perform portanova.set_stafftoperioddays(pid_period,pid_staff);\r
+                       perform portanova.set_stafftoperiodweeks(pid_period,pid_staff);\r
+                       perform portanova.set_staffperiod_sums(pid_period,pid_staff);\r
+               return true;\r
+       END;\r
 $$;
 
 
@@ -422,19 +422,19 @@ $$;
 
 CREATE FUNCTION portanova.update_staffreportperiod(pid_reportperiod text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       stprd record;
-begin 
-       for stprd in SELECT id_staff, id_period, sum(plannedhours) as plannedhours,sum(contracthours) as contracthours,  sum(trackedhours) as trackedhours, sum(vacancyhours) as vacancyhours, sum(recuperationhours) as recuperationhours, sum(hoursdiff) as hoursdiff 
-                                       FROM portanova.staffweeksums where id_period=pid_reportperiod and id_staff=pid_staff group by id_staff,id_period
-       loop 
-               INSERT INTO portanova.staffreportperiodsums (id_staff, id_reportperiod, plannedhours, contracthours, trackedhours, vacancyhours, recuperationhours, hoursdiff)
-               values (stprd.id_staff,stprd.id_period,stprd.plannedhours,stprd.contracthours,stprd.trackedhours,stprd.vacancyhours,stprd.recuperationhours,stprd.hoursdiff)
-               on conflict on constraint uniq_staffperiod_cal do update set plannedhours=stprd.plannedhours,contracthours=stprd.contracthours,trackedhours=stprd.trackedhours,vacancyhours=stprd.vacancyhours,recuperationhours=stprd.recuperationhours,hoursdiff=stprd.hoursdiff;
-       end loop;
-       return true;
-end;
+    AS $$\r
+declare\r
+       stprd record;\r
+begin \r
+       for stprd in SELECT id_staff, id_period, sum(plannedhours) as plannedhours,sum(contracthours) as contracthours,  sum(trackedhours) as trackedhours, sum(vacancyhours) as vacancyhours, sum(recuperationhours) as recuperationhours, sum(hoursdiff) as hoursdiff \r
+                                       FROM portanova.staffweeksums where id_period=pid_reportperiod and id_staff=pid_staff group by id_staff,id_period\r
+       loop \r
+               INSERT INTO portanova.staffreportperiodsums (id_staff, id_reportperiod, plannedhours, contracthours, trackedhours, vacancyhours, recuperationhours, hoursdiff)\r
+               values (stprd.id_staff,stprd.id_period,stprd.plannedhours,stprd.contracthours,stprd.trackedhours,stprd.vacancyhours,stprd.recuperationhours,stprd.hoursdiff)\r
+               on conflict on constraint uniq_staffperiod_cal do update set plannedhours=stprd.plannedhours,contracthours=stprd.contracthours,trackedhours=stprd.trackedhours,vacancyhours=stprd.vacancyhours,recuperationhours=stprd.recuperationhours,hoursdiff=stprd.hoursdiff;\r
+       end loop;\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -444,21 +444,21 @@ $$;
 
 CREATE FUNCTION portanova.update_staffweeksums(pid_staffworkplan text) RETURNS void
     LANGUAGE plpgsql
-    AS $$
-declare
-       wkpl_record record;
-       wkpltt time without time zone := '00:00:00'::interval;
-begin
-       select 
-               case WHEN timestart1 > timeend1 THEN '24:00:00'::time without time zone - (timestart1 - timeend1)::time without time zone ELSE timeend1 - timestart1 END AS time1,
-               CASE WHEN timestart2 > timeend2 THEN '24:00:00'::time without time zone - (timestart2 - timeend2)::time without time zone ELSE timeend2 - timestart2 END AS time2,
-           timepause
-           into wkpl_record
-               from portanova.staffworkplan where id= pid_staffworkplan;
-       
-       wkpltt := wkpl_record.time1 + wkpl_record.time2 - wkpl_record.timepause::interval;
-       update portanova.staffworkplan set totaltime=wkpltt where id=pid_staffworkplan; 
-end;
+    AS $$\r
+declare\r
+       wkpl_record record;\r
+       wkpltt time without time zone := '00:00:00'::interval;\r
+begin\r
+       select \r
+               case WHEN timestart1 > timeend1 THEN '24:00:00'::time without time zone - (timestart1 - timeend1)::time without time zone ELSE timeend1 - timestart1 END AS time1,\r
+               CASE WHEN timestart2 > timeend2 THEN '24:00:00'::time without time zone - (timestart2 - timeend2)::time without time zone ELSE timeend2 - timestart2 END AS time2,\r
+           timepause\r
+           into wkpl_record\r
+               from portanova.staffworkplan where id= pid_staffworkplan;\r
+       \r
+       wkpltt := wkpl_record.time1 + wkpl_record.time2 - wkpl_record.timepause::interval;\r
+       update portanova.staffworkplan set totaltime=wkpltt where id=pid_staffworkplan; \r
+end;\r
 $$;
 
 
@@ -468,49 +468,49 @@ $$;
 
 CREATE FUNCTION portanova.update_staffworkplan(pid_period text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       cont record;
-       prd record;
-       cdl record;
-       cdate date;
-       edate date;
-       wday text;
-       wdayplan record;
-       cid_staffworkplan text;
-begin 
-       select * into prd from portanova.reportperiod where id= pid_period;
-       for cont in select * from portanova.staffcontract  where id_staff= pid_staff and (enddate >= prd.startdate or (enddate is null and startdate <= prd.enddate)) /*order by startdate,enddate nulls last*/
-       loop 
-               if cont.enddate is null then 
-                       cont.enddate := prd.enddate;
-               end if;
-               cdate := cont.startdate;
-               while cdate <= cont.enddate loop
-                       if cdate between prd.startdate and prd.enddate then
-                               if (cont.id_workplan is not null) then
-                                       wday := substr(to_char(cdate,'day'),1,3);       
-                                       execute 'select ' || wday  || '_timestart1 as ts1,' || wday || '_timeend1 as te1,' || wday || '_timestart2 as ts2,' || wday ||'_timeend2 as te2,'|| wday ||'_timepause as tp from portanova.workplans where id=' || cont.id_workplan || ';' into wdayplan;
-                                       insert into portanova.staffworkplan (id_staff,daydate,id_reportperiod,timestart1,timeend1,timestart2,timeend2,timepause,contracthours,id_staffgroup,fullweeksplithours) 
-                                       values (pid_staff,cdate,pid_period,wdayplan.ts1,wdayplan.te1,wdayplan.ts2,wdayplan.te2,wdayplan.tp,cont.weekhours/cont.weekdays,cont.id_staffgroup,cont.weekhours/7)
-                                       on conflict on constraint uniq_staffworplan_staffday do update set id_reportperiod = pid_period,contracthours=cont.weekhours/cont.weekdays,id_staffgroup=cont.id_staffgroup,fullweeksplithours=cont.weekhours/7
-                                       returning id into cid_staffworkplan;
-                               else 
-                                       insert into portanova.staffworkplan (id_staff,daydate,id_reportperiod,contracthours,id_staffgrou) values ( pid_staff , cdate , pid_period,cont.weekhours/cont.weekdays,cont.id_staffgroup,fullweeksplithours)
-                                       on conflict on constraint uniq_staffworplan_staffday do update set id_reportperiod = pid_period,contracthours=cont.weekhours/cont.weekdays,id_staffgroup=cont.id_staffgroup,fullweeksplithours=cont.weekhours/7
-                                       returning id into cid_staffworkplan;
-                               end if;                 
-                       end if;
-                       perform portanova.update_staffworkplan_sums(cid_staffworkplan);
-                       cdate = cdate + interval '1 day';
-               end loop;
-               
-       end loop;
-       perform portanova.verify_staffworplan_with_contractdates(pid_period,pid_staff);
-       --perform portanova.update_staffweekplan(pid_period,pid_staff);
-       --perform portanova.set_staffperiod_data(pid_period,pid_staff);
-       return true;
-end;
+    AS $$\r
+declare\r
+       cont record;\r
+       prd record;\r
+       cdl record;\r
+       cdate date;\r
+       edate date;\r
+       wday text;\r
+       wdayplan record;\r
+       cid_staffworkplan text;\r
+begin \r
+       select * into prd from portanova.reportperiod where id= pid_period;\r
+       for cont in select * from portanova.staffcontract  where id_staff= pid_staff and (enddate >= prd.startdate or (enddate is null and startdate <= prd.enddate)) /*order by startdate,enddate nulls last*/\r
+       loop \r
+               if cont.enddate is null then \r
+                       cont.enddate := prd.enddate;\r
+               end if;\r
+               cdate := cont.startdate;\r
+               while cdate <= cont.enddate loop\r
+                       if cdate between prd.startdate and prd.enddate then\r
+                               if (cont.id_workplan is not null) then\r
+                                       wday := substr(to_char(cdate,'day'),1,3);       \r
+                                       execute 'select ' || wday  || '_timestart1 as ts1,' || wday || '_timeend1 as te1,' || wday || '_timestart2 as ts2,' || wday ||'_timeend2 as te2,'|| wday ||'_timepause as tp from portanova.workplans where id=' || cont.id_workplan || ';' into wdayplan;\r
+                                       insert into portanova.staffworkplan (id_staff,daydate,id_reportperiod,timestart1,timeend1,timestart2,timeend2,timepause,contracthours,id_staffgroup,fullweeksplithours) \r
+                                       values (pid_staff,cdate,pid_period,wdayplan.ts1,wdayplan.te1,wdayplan.ts2,wdayplan.te2,wdayplan.tp,cont.weekhours/cont.weekdays,cont.id_staffgroup,cont.weekhours/7)\r
+                                       on conflict on constraint uniq_staffworplan_staffday do update set id_reportperiod = pid_period,contracthours=cont.weekhours/cont.weekdays,id_staffgroup=cont.id_staffgroup,fullweeksplithours=cont.weekhours/7\r
+                                       returning id into cid_staffworkplan;\r
+                               else \r
+                                       insert into portanova.staffworkplan (id_staff,daydate,id_reportperiod,contracthours,id_staffgrou) values ( pid_staff , cdate , pid_period,cont.weekhours/cont.weekdays,cont.id_staffgroup,fullweeksplithours)\r
+                                       on conflict on constraint uniq_staffworplan_staffday do update set id_reportperiod = pid_period,contracthours=cont.weekhours/cont.weekdays,id_staffgroup=cont.id_staffgroup,fullweeksplithours=cont.weekhours/7\r
+                                       returning id into cid_staffworkplan;\r
+                               end if;                 \r
+                       end if;\r
+                       perform portanova.update_staffworkplan_sums(cid_staffworkplan);\r
+                       cdate = cdate + interval '1 day';\r
+               end loop;\r
+               \r
+       end loop;\r
+       perform portanova.verify_staffworplan_with_contractdates(pid_period,pid_staff);\r
+       --perform portanova.update_staffweekplan(pid_period,pid_staff);\r
+       --perform portanova.set_staffperiod_data(pid_period,pid_staff);\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -520,36 +520,36 @@ $$;
 
 CREATE FUNCTION portanova.verify_perioddays(pid_period text, pid_staff text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       rpstart date;
-       rpend date;
-       wkpd record;
-       qlnotin text := '';
-       sqlcheck text := '';
-begin 
-       select startdate,enddate into rpstart,rpend from portanova.reportperiod where id=pid_period;
-       for wkpd in select id_staff,case when startdate <= rpstart then rpstart else startdate end as startdate,case when enddate is null then rpend else enddate end as enddate from portanova.staffcontract where id_staff=pid_staff and startdate <= rpend and (enddate is null or enddate >= rpstart)
-       loop 
-               --raise notice '%: % => % ',wkpd.id_staff,wkpd.startdate,wkpd.enddate;
-               qlnotin := qlnotin || ' and daydate not between date(''' || wkpd.startdate || ''') AND date(''' || wkpd.enddate || ''')';
-               --raise notice 'xx: %',qlnotin;
-       end loop;
-       sqlcheck := 'delete from portanova.staffreportperioddays where id in (select id from portanova.staffreportperioddays where id_staff=''' || pid_staff || ''' and id_reportperiod=''' || pid_period || ''' ' || qlnotin || ');';
-       --raise notice 'SQL: %',sqlcheck;
-       execute sqlcheck;
-       /*update portanova.staffworkplan 
-               set contracthours=(select weekhours2/weekdays as contracthours 
-                                                       from portanova.staffcontract where id_staff=pid_staff
-                                                               and ((portanova.staffworkplan.daydate between startdate and enddate) or 
-                                                                               (startdate <= portanova.staffworkplan.daydate and enddate is null))),
-                       id_staffgroup=(select id_staffgroup 
-                                                       from portanova.staffcontract where id_staff=pid_staff
-                                                               and ((portanova.staffworkplan.daydate between startdate and enddate) or 
-                                                                               (startdate <= portanova.staffworkplan.daydate and enddate is null)))
-               where id_staff=pid_staff and id_reportperiod=pid_period; */
-       return true;
-end;
+    AS $$\r
+declare\r
+       rpstart date;\r
+       rpend date;\r
+       wkpd record;\r
+       qlnotin text := '';\r
+       sqlcheck text := '';\r
+begin \r
+       select startdate,enddate into rpstart,rpend from portanova.reportperiod where id=pid_period;\r
+       for wkpd in select id_staff,case when startdate <= rpstart then rpstart else startdate end as startdate,case when enddate is null then rpend else enddate end as enddate from portanova.staffcontract where id_staff=pid_staff and startdate <= rpend and (enddate is null or enddate >= rpstart)\r
+       loop \r
+               --raise notice '%: % => % ',wkpd.id_staff,wkpd.startdate,wkpd.enddate;\r
+               qlnotin := qlnotin || ' and daydate not between date(''' || wkpd.startdate || ''') AND date(''' || wkpd.enddate || ''')';\r
+               --raise notice 'xx: %',qlnotin;\r
+       end loop;\r
+       sqlcheck := 'delete from portanova.staffreportperioddays where id in (select id from portanova.staffreportperioddays where id_staff=''' || pid_staff || ''' and id_reportperiod=''' || pid_period || ''' ' || qlnotin || ');';\r
+       --raise notice 'SQL: %',sqlcheck;\r
+       execute sqlcheck;\r
+       /*update portanova.staffworkplan \r
+               set contracthours=(select weekhours2/weekdays as contracthours \r
+                                                       from portanova.staffcontract where id_staff=pid_staff\r
+                                                               and ((portanova.staffworkplan.daydate between startdate and enddate) or \r
+                                                                               (startdate <= portanova.staffworkplan.daydate and enddate is null))),\r
+                       id_staffgroup=(select id_staffgroup \r
+                                                       from portanova.staffcontract where id_staff=pid_staff\r
+                                                               and ((portanova.staffworkplan.daydate between startdate and enddate) or \r
+                                                                               (startdate <= portanova.staffworkplan.daydate and enddate is null)))\r
+               where id_staff=pid_staff and id_reportperiod=pid_period; */\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -559,20 +559,20 @@ $$;
 
 CREATE FUNCTION portanova.zzold_onchange_reportperiod(pid_period text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-declare
-       prdstart date;
-       prdend date;
-       strec record;
-begin
-       select startdate,enddate into prdstart,prdend from portanova.reportperiod where id=pid_period;
-       for strec in select id_staff,startdate,enddate from portanova.staffcontract where startdate <= prdend and (enddate is null or enddate >= prdstart) group by id_staff
-       loop
-               raise notice 'Start Update period % staffworkplan for % from % to %',pid_period,strec.id_staff,strec.startdate,strec.enddate;
-               perform portanova.update_staffworkplan(pid_period,strec.id_staff);
-       end loop;
-       return true;
-end;
+    AS $$\r
+declare\r
+       prdstart date;\r
+       prdend date;\r
+       strec record;\r
+begin\r
+       select startdate,enddate into prdstart,prdend from portanova.reportperiod where id=pid_period;\r
+       for strec in select id_staff,startdate,enddate from portanova.staffcontract where startdate <= prdend and (enddate is null or enddate >= prdstart) group by id_staff\r
+       loop\r
+               raise notice 'Start Update period % staffworkplan for % from % to %',pid_period,strec.id_staff,strec.startdate,strec.enddate;\r
+               perform portanova.update_staffworkplan(pid_period,strec.id_staff);\r
+       end loop;\r
+       return true;\r
+end;\r
 $$;
 
 
@@ -582,24 +582,24 @@ $$;
 
 CREATE FUNCTION portanova.zzold_set_staffperiod(pid_period text) RETURNS boolean
     LANGUAGE plpgsql
-    AS $$
-       declare
-               periodstart date;
-               periodend date;
-               staffrec record;
-               staffreportid int4;
-       BEGIN
-               select startdate,enddate into periodstart,periodend from portanova.reportperiod where id= pid_period;
-               for staffrec in select id_staff from portanova.staffcontract  where (enddate >= periodstart or (enddate is null and startdate <= periodend)) group by id_staff
-               loop
-                       insert into portanova.staffreportperiod (id_reportperiod,id_staff) values (pid_period,staffrec.id_staff) 
-                       on conflict on constraint uniq_staffreportperiod_cal do nothing returning id into staffreportid;
-                       raise notice 'staffreport ID: %',staffreportid;
-                       perform portanova.set_staffperioddays(pid_period,staffrec.id_staff);
-                       perform portanova.set_staffperiodweeks(pid_period,staffrec.id_staff);
-               end loop;
-               return true;
-       END;
+    AS $$\r
+       declare\r
+               periodstart date;\r
+               periodend date;\r
+               staffrec record;\r
+               staffreportid int4;\r
+       BEGIN\r
+               select startdate,enddate into periodstart,periodend from portanova.reportperiod where id= pid_period;\r
+               for staffrec in select id_staff from portanova.staffcontract  where (enddate >= periodstart or (enddate is null and startdate <= periodend)) group by id_staff\r
+               loop\r
+                       insert into portanova.staffreportperiod (id_reportperiod,id_staff) values (pid_period,staffrec.id_staff) \r
+                       on conflict on constraint uniq_staffreportperiod_cal do nothing returning id into staffreportid;\r
+                       raise notice 'staffreport ID: %',staffreportid;\r
+                       perform portanova.set_staffperioddays(pid_period,staffrec.id_staff);\r
+                       perform portanova.set_staffperiodweeks(pid_period,staffrec.id_staff);\r
+               end loop;\r
+               return true;\r
+       END;\r
 $$;
 
 
index 9bc1e5e..51a6293 100644 (file)
@@ -1,53 +1,53 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-#define MyAppName "POT - Plan d'Organisation du Travail"
-#define MyAppVersion "0.8"
-#define MyAppPublisher "DKS s.à r.l."
-#define MyAppURL "http://pot.dks.lu/"
-#define MyAppExeName "pot.exe"
-
-[Setup]
-; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
-; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
-AppId={{C583A11C-7811-4C73-B26C-1D61A6F5B679}
-AppName={#MyAppName}
-AppVersion={#MyAppVersion}
-;AppVerName={#MyAppName} {#MyAppVersion}
-AppPublisher={#MyAppPublisher}
-AppPublisherURL={#MyAppURL}
-AppSupportURL={#MyAppURL}
-AppUpdatesURL={#MyAppURL}
-DefaultDirName={autopf}\POT
-DisableProgramGroupPage=yes
-DisableDirPage=yes
-CloseApplications=force
-CloseApplicationsFilter=pot.exe
-LicenseFile=C:\Users\kilian\Workspace\pot_lu\install\license.txt
-; Uncomment the following line to run in non administrative install mode (install for current user only.)
-PrivilegesRequired=lowest
-;PrivilegesRequiredOverridesAllowed=dialog
-OutputDir=C:\Users\kilian\Workspace\pot_lu\install\setups
-OutputBaseFilename=mysetup
-SetupIconFile=C:\Users\kilian\Workspace\pot_lu\install\windows\icons\Install-Icon.ico
-Compression=lzma
-SolidCompression=yes
-WizardStyle=modern
-WizardSmallImageFile=wizpotsmall.bmp
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-Name: "french"; MessagesFile: "compiler:Languages\French.isl"
-Name: "german"; MessagesFile: "compiler:Languages\German.isl"
-
-[Files]
-Source: "C:\Users\kilian\Workspace\pot_lu\desktopapp\release-builds\pot-win32-ia32\pot.exe"; DestDir: "{app}"; Flags: overwritereadonly ignoreversion
-Source: "C:\Users\kilian\Workspace\pot_lu\desktopapp\release-builds\pot-win32-ia32\*"; DestDir: "{app}"; Flags: overwritereadonly ignoreversion recursesubdirs createallsubdirs
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-
-[Icons]
-Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
-Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
-
-[Run]
-Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
-
+; Script generated by the Inno Setup Script Wizard.\r
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!\r
+\r
+#define MyAppName "POT - Plan d'Organisation du Travail"\r
+#define MyAppVersion "0.8"\r
+#define MyAppPublisher "DKS s.à r.l."\r
+#define MyAppURL "http://pot.dks.lu/"\r
+#define MyAppExeName "pot.exe"\r
+\r
+[Setup]\r
+; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.\r
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)\r
+AppId={{C583A11C-7811-4C73-B26C-1D61A6F5B679}\r
+AppName={#MyAppName}\r
+AppVersion={#MyAppVersion}\r
+;AppVerName={#MyAppName} {#MyAppVersion}\r
+AppPublisher={#MyAppPublisher}\r
+AppPublisherURL={#MyAppURL}\r
+AppSupportURL={#MyAppURL}\r
+AppUpdatesURL={#MyAppURL}\r
+DefaultDirName={autopf}\POT\r
+DisableProgramGroupPage=yes\r
+DisableDirPage=yes\r
+CloseApplications=force\r
+CloseApplicationsFilter=pot.exe\r
+LicenseFile=C:\Users\kilian\Workspace\pot_lu\install\license.txt\r
+; Uncomment the following line to run in non administrative install mode (install for current user only.)\r
+PrivilegesRequired=lowest\r
+;PrivilegesRequiredOverridesAllowed=dialog\r
+OutputDir=C:\Users\kilian\Workspace\pot_lu\install\setups\r
+OutputBaseFilename=mysetup\r
+SetupIconFile=C:\Users\kilian\Workspace\pot_lu\install\windows\icons\Install-Icon.ico\r
+Compression=lzma\r
+SolidCompression=yes\r
+WizardStyle=modern\r
+WizardSmallImageFile=wizpotsmall.bmp\r
+[Languages]\r
+Name: "english"; MessagesFile: "compiler:Default.isl"\r
+Name: "french"; MessagesFile: "compiler:Languages\French.isl"\r
+Name: "german"; MessagesFile: "compiler:Languages\German.isl"\r
+\r
+[Files]\r
+Source: "C:\Users\kilian\Workspace\pot_lu\desktopapp\release-builds\pot-win32-ia32\pot.exe"; DestDir: "{app}"; Flags: overwritereadonly ignoreversion\r
+Source: "C:\Users\kilian\Workspace\pot_lu\desktopapp\release-builds\pot-win32-ia32\*"; DestDir: "{app}"; Flags: overwritereadonly ignoreversion recursesubdirs createallsubdirs\r
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files\r
+\r
+[Icons]\r
+Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"\r
+Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"\r
+\r
+[Run]\r
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent\r
+\r
index d6379ab..a42bddc 100644 (file)
@@ -43,10 +43,6 @@ if (($cgi->request_method() eq "GET") || ($cgi->request_method() eq "POST")){
   if (exists($p->{fn})){
 
     my $db = dksdb->new();
-
-    
-    
     if($p->{fn} eq "savepassword"){
       if ((length($p->{pwd}) > 7) && ($p->{pwd} =~ /\d/) && ($p->{pwd} =~ /[a-z]/) && ($p->{pwd} =~ /[A-Z]/) ){
         $se->savepassword($sess->{id},$p->{pwd});
diff --git a/webapp/data/output/pot/periode_20191230-20200223_pot_period.pdf b/webapp/data/output/pot/periode_20191230-20200223_pot_period.pdf
deleted file mode 100644 (file)
index f795af7..0000000
Binary files a/webapp/data/output/pot/periode_20191230-20200223_pot_period.pdf and /dev/null differ
diff --git a/webapp/data/output/pot/periode_20200224-20200419_pot_period.pdf b/webapp/data/output/pot/periode_20200224-20200419_pot_period.pdf
deleted file mode 100644 (file)
index 629ee01..0000000
Binary files a/webapp/data/output/pot/periode_20200224-20200419_pot_period.pdf and /dev/null differ
diff --git a/webapp/data/output/pot/periode_20200420-20200614_pot_period.pdf b/webapp/data/output/pot/periode_20200420-20200614_pot_period.pdf
deleted file mode 100644 (file)
index d5e695d..0000000
Binary files a/webapp/data/output/pot/periode_20200420-20200614_pot_period.pdf and /dev/null differ
diff --git a/webapp/data/output/pot/periode_20200615-20200809_pot_period.pdf b/webapp/data/output/pot/periode_20200615-20200809_pot_period.pdf
deleted file mode 100644 (file)
index 1e852a1..0000000
Binary files a/webapp/data/output/pot/periode_20200615-20200809_pot_period.pdf and /dev/null differ
index 1bc144b..e63b8be 100644 (file)
@@ -7,8 +7,8 @@
   <title>POT - Staffmember - Period</title>
   <style>
   div {
-  font-size: 12pt;
-}
+    font-size: 12pt;
+  }
 table {
   font-size: 8pt;
   border-spacing: 0;
@@ -128,22 +128,22 @@ tfoot { display:table-footer-group }
             <tr>
               <td class="datavalues">[% pw.timestart1 %]</td>
               <td class="datavalues">[% pw.timeend1 %]</td>
-              <td class="datavalues">[% IF pw.workhours %]T: [% pw.workhours %][% END %]</td>
+              <td class="datavalues">[% IF pw.workhours %]<span style="font-weight: bold;"> [% pw.workhours %]</span>[% END %]</td>
             </tr>
             <tr>
               <td class="datavalues"> [% IF pw.timestart2 %][% pw.timestart2 %][% END %]</td>
-              <td class="datavalues">[% IF pw.timestart2 %][% pw.timeend2 %][% END %]</td>
-              <td class="datavalues">[% IF pw.recuperationhours %]R: [% pw.recuperationhours %]<br/>[% END %]</td>
+              <td class="datavalues">[% IF pw.timestart2 %][% pw.timeend2 %][% ELSE %]&nbsp;[% END %]</td>
+              <td class="datavalues">[% IF pw.recuperationhours %]R: [% pw.recuperationhours %][% ELSE %]&nbsp;[% END %]</td>
             </tr>
             <tr>
               <td>&nbsp;</td>
-              <td></td>
+              <td>&nbsp;</td>
               <td class="datavalues">[% IF pw.vacancyhours %]C: [% pw.vacancyhours %]<br/>[% END %]</td>
             </tr>
             <tr>
               <td></td>
               <td class="datavalues">[% IF pw.timepause %]P: [% pw.timepause %][% END %]</td>
-              <td>[% IF pw.vacancyhours %]J: [% pw.dayhours %][% END %]</td>
+              <td>&nbsp;</td>
             </tr>
             </table>
             </td>
@@ -157,7 +157,7 @@ tfoot { display:table-footer-group }
           <td class="datavalues">
           <table  class="tbinline">
             <!--<tr><td class="datavalues">[% IF pw.week_workhours && pw.week_workhours != "00:00" %]T: [% pw.week_workhours %][%END %]</td></tr>-->
-            <tr><td class="datavalues">&nbsp;[% IF pw.week_totalhours && pw.week_totalhours != "00:00"  %]S: [% pw.week_totalhours %][%END %]</td></tr>
+            <tr><td class="datavalues">&nbsp;[% IF pw.week_totalhours && pw.week_totalhours != "00:00"  %]<span style="font-weight: bold;">[% pw.week_totalhours %]</span>[%END %]</td></tr>
             <tr><td class="datavalues">&nbsp;[% IF pw.week_recuperationhours && pw.week_recuperationhours != "00:00" %]R: [% pw.week_recuperationhours %][%END %]</td></tr>
             <tr><td class="datavalues">&nbsp;[% IF pw.week_vacancyhours && pw.week_vacancyhours != "00:00"  %]C: [% pw.week_vacancyhours %][%END %]</td></tr>
             <tr><td class="datavalues">&nbsp;[% IF pw.week_diffhours && pw.week_diffhours != "00:00"  %]D: [% pw.week_diffhours %][%END %]</td></tr>
index 20dd847..10dcfbb 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use lib ('./lib/perl5');
 use lib ('./lib');
 use CGI;
-use CGI::Cookie;
+use CGI::Cookie; 
 # use CGI::Carp qw/fatalsToBrowser/;
 use File::Basename;
 use JSON::PP;
index 656e361..4652424 100644 (file)
@@ -17,10 +17,10 @@ our $sitecfg ={
   dbpassword => 'r2btTTRfuJz4whez',
   page => 'index.tt',
   pagename => 'index',
-  basepath => substr(dirname($ENV{SCRIPT_FILENAME}),length($ENV{"DOCUMENT_ROOT"})),
-  datapath => substr(dirname($ENV{SCRIPT_FILENAME}),length($ENV{"DOCUMENT_ROOT"})).'/data/',
+  basepath => substr(dirname($0),length($ENV{"DOCUMENT_ROOT"})),
+  datapath => substr(dirname($0),length($ENV{"DOCUMENT_ROOT"})).'/data/',
   docroot => $ENV{"DOCUMENT_ROOT"},
-  tmplpath => dirname($ENV{SCRIPT_FILENAME}).'/tmpl',
+  tmplpath => dirname($0).'/tmpl',
   registration_enabled => '0',
   default_group => 'users',
   sitename => 'Accès - Client',
index 49f42b6..426a5ee 100644 (file)
-// let choice = {"current_schemata":null};
-
-let app = {
-    loadpage: function(modulepage, modulename) {
-        location.href=modulepage;
-    },
-    logout: function() {
-        req.reqdata("POST", location.href, { "logout": "1" }, app.reloadpage);
-
-    },
-    reloadpage() {
-        location.href = 'login.html';
-    },
-    changedataset: function(){
-      // let schemata = document.getElementById("current_schemata").nodeValue;
-      //req.reqdata("POST","db.cgi")
-    },
-    getCurrentSchemata: function(){
-      return schemata;
-    },
-    changedataset: function(){
-      let csel = document.getElementById("current_schemata").value;
-      console.log(csel);
-      schemata =  csel;
-      req.reqdata("POST","db.cgi",{"fn":"setsessiondata","params":"[\"schemata\",\"" + csel +"\"]"},null);
-    },
-    setschemata(data){
-      // if (data && data.setsessiondata){
-      //   schemata = data.setsessiondata.schemata;
-      // }
-      // console.log("new schemata:" + schemata);
-    },
-    reload_page: function() {
-      location.href = location.href;
-    },
-    // initselectlist: function(obj,objid, changeevt){
-
-    //   // let sellist = [];
-    //   // let selval = document.getElementById(objid).value; 
-    //   // let cn = document.getElementById(objid).childNodes;
-    //   // for (let i=0;i<cn.length;i++) {
-    //   //   if (cn[i].value){
-    //   //     sellist.push({value:cn[i].value,label:cn[i].text});
-    //   //   }
-        
-    //   // }
-    //   // obj = new Choices('#current_schemata',{
-    //   //   searchEnabled: false,
-    //   //   itemSelectText: '',
-    //   //   removeItemButton: false,
-    //   //   choices : []
-    //   // });
-    //   // //obj.clearStore();
-      
-    //   // obj.setChoices(sellist, 'value', 'label', true);
-    //   // obj.setChoiceByValue(selval);
-    //   // if (changeevt){
-    //   //   obj.passedElement.element.addEventListener('change',function(){changeevt});
-    //   // }
-      
-    //   return false;
-    // },
-    viewpanel: function(pnlname){
-      let panels = document.getElementsByClassName("panel");
-      let toolbars = document.getElementsByClassName("paneltoolbar");
-      currentview = pnlname;
-      for (let p=0;p<panels.length;p++){
-        panels[p].style.display = 'none';
-      }
-      for (let p=0;p<toolbars.length;p++){
-         toolbars[p].style.display = 'none';
-      }
-      if (document.getElementById('pnl_' + pnlname)){
-        document.getElementById('pnl_' + pnlname).style.display = 'block';
-      }
-      if (document.getElementById('tlb_' +pnlname)){
-         document.getElementById('tlb_' +pnlname).style.display = 'block';
-      }
-      return false;
-    },
-    viewdialog: function(dlgname){
-      if (document.getElementById('dlg_' +dlgname)){
-        document.getElementById('dlg_' +dlgname).style.display = 'block';
-      } else {
-        console.log('dlg_' +dlgname + ' does not exist!');
-      }
-    }
-
-
-}
-
-
-document.addEventListener("DOMContentLoaded", function() {
-  moment.locale('fr');
-  initpage();
-  // console.log(document.getElementById("schemata").childNodes);
-  // choice["company"]["schemata"] = 
-  // app.initselectlist(choice["current_schemata"],'current_schemata',app.changedataset());
-  
-});
+// let choice = {"current_schemata":null};\r
+\r
+let app = {\r
+    loadpage: function(modulepage, modulename) {\r
+        location.href=modulepage;\r
+    },\r
+    logout: function() {\r
+        req.reqdata("POST", location.href, { "logout": "1" }, app.reloadpage);\r
+\r
+    },\r
+    reloadpage() {\r
+        location.href = 'login.html';\r
+    },\r
+    changedataset: function(){\r
+      // let schemata = document.getElementById("current_schemata").nodeValue;\r
+      //req.reqdata("POST","db.cgi")\r
+    },\r
+    getCurrentSchemata: function(){\r
+      return schemata;\r
+    },\r
\r
+    changedataset: function(){\r
+      let csel = document.getElementById("current_schemata").value;\r
+      console.log(csel);\r
+      schemata =  csel;\r
+      req.reqdata("POST","db.cgi",{"fn":"setsessiondata","params":"[\"schemata\",\"" + csel +"\"]"},null);\r
+    },\r
+    setschemata(data){\r
+      // if (data && data.setsessiondata){\r
+      //   schemata = data.setsessiondata.schemata;\r
+      // }\r
+      // console.log("new schemata:" + schemata);\r
+    },\r
+    reload_page: function() {\r
+      location.href = location.href;\r
+    },\r
+    // initselectlist: function(obj,objid, changeevt){\r
+\r
+    //   // let sellist = [];\r
+    //   // let selval = document.getElementById(objid).value; \r
+    //   // let cn = document.getElementById(objid).childNodes;\r
+    //   // for (let i=0;i<cn.length;i++) {\r
+    //   //   if (cn[i].value){\r
+    //   //     sellist.push({value:cn[i].value,label:cn[i].text});\r
+    //   //   }\r
+        \r
+    //   // }\r
+    //   // obj = new Choices('#current_schemata',{\r
+    //   //   searchEnabled: false,\r
+    //   //   itemSelectText: '',\r
+    //   //   removeItemButton: false,\r
+    //   //   choices : []\r
+    //   // });\r
+    //   // //obj.clearStore();\r
+      \r
+    //   // obj.setChoices(sellist, 'value', 'label', true);\r
+    //   // obj.setChoiceByValue(selval);\r
+    //   // if (changeevt){\r
+    //   //   obj.passedElement.element.addEventListener('change',function(){changeevt});\r
+    //   // }\r
+      \r
+    //   return false;\r
+    // },\r
+    viewpanel: function(pnlname){\r
+      let panels = document.getElementsByClassName("panel");\r
+      let toolbars = document.getElementsByClassName("paneltoolbar");\r
+      currentview = pnlname;\r
+      for (let p=0;p<panels.length;p++){\r
+        panels[p].style.display = 'none';\r
+      }\r
+      for (let p=0;p<toolbars.length;p++){\r
+         toolbars[p].style.display = 'none';\r
+      }\r
+      if (document.getElementById('pnl_' + pnlname)){\r
+        document.getElementById('pnl_' + pnlname).style.display = 'block';\r
+      }\r
+      if (document.getElementById('tlb_' +pnlname)){\r
+         document.getElementById('tlb_' +pnlname).style.display = 'block';\r
+      }\r
+      return false;\r
+    },\r
+    viewdialog: function(dlgname){\r
+      if (document.getElementById('dlg_' +dlgname)){\r
+        document.getElementById('dlg_' +dlgname).style.display = 'block';\r
+      } else {\r
+        console.log('dlg_' +dlgname + ' does not exist!');\r
+      }\r
+    }\r
+\r
+\r
+}\r
+\r
+\r
+document.addEventListener("DOMContentLoaded", function() {\r
+  moment.locale('fr');\r
+  initpage();\r
+  // console.log(document.getElementById("schemata").childNodes);\r
+  // choice["company"]["schemata"] = \r
+  // app.initselectlist(choice["current_schemata"],'current_schemata',app.changedataset());\r
+  \r
+});\r
diff --git a/webapp/tmpl/block/dlg_replacestaffdayworkplan.tt b/webapp/tmpl/block/dlg_replacestaffdayworkplan.tt
new file mode 100644 (file)
index 0000000..93385c7
--- /dev/null
@@ -0,0 +1,26 @@
+ <!-- DLG BEGIN dlg_replacestaffdayworkplan -->
+    <div id="dlg_replacestaffdayworkplan" class="modal">
+      <div class="modal-content animate-top card-4">
+        <header class="moduletoolbar">
+          <span onclick="document.getElementById('dlg_replacestaffdayworkplan').style.display='none'; return false;" class="button toolbarbtn display-topright" ><span class="icon icon-remove" style="font-size: 18px;"></span></span>
+          <h2 id="dlg_rppayedhours">Selection du modèle</h2>
+        </header>
+        <div class="container">
+        <div id="rppayedhours_infomsg"></div>
+        <form id="frm_replaceworkplan">
+          <div class="container padding">
+            <div class="row">
+              <div class="cell" style="width: 100%">
+                [% fieldselectbox('id_workplan','replace','POT (Modèle)','','','','') %]
+              </div>
+            </div> 
+          </div>
+        </form>
+      </div>
+      <footer>
+        <button class="button theme-light margin-right border" onclick="document.getElementById('dlg_replacestaffdayworkplan').style.display='none'; return false;"><span class="icon icon-remove"></span>&nbsp;Annuler</button>
+        <button class="button actionbtn margin-right border" onclick="staffperiodweeks.replacedays();return false;"><span class="icon icon-replace"></span>&nbsp;remplacer</button>
+      </footer>
+    </div>
+  </div>
+    <!-- DLG END dlg_replacestaffdayworkplan -->
\ No newline at end of file
index ceefb3f..fab0344 100644 (file)
       </div>
     </div>
   </div>
-</div>[% INCLUDE module/companies/dlg_dataset.tt %] [% INCLUDE module/companies/dlg_staffgroups.tt %] [% INCLUDE module/companies/dlg_worktimes.tt %] [% INCLUDE block/dlgdeleterow.tt %] [% INCLUDE block/dlgmessage.tt %] [% INCLUDE
-module/companies/dlg_users.tt %] 
+</div>
+[% INCLUDE module/companies/dlg_dataset.tt %] 
+[% INCLUDE module/companies/dlg_staffgroups.tt %] 
+[% INCLUDE module/companies/dlg_worktimes.tt %] 
+[% INCLUDE block/dlgdeleterow.tt %] 
+[% INCLUDE block/dlgmessage.tt %] 
+[% INCLUDE module/companies/dlg_users.tt %] 
 <script type="text/javascript" src="companies/companies.js?v=[% vstamp %]"></script>
 <script src="companies/staffgroups.js?v=[% vstamp %]"></script> 
 <script src="companies/worktimes.js?v=[% vstamp %]"></script> 
index d32ff2f..6617bd3 100644 (file)
@@ -26,7 +26,7 @@
     </header>
     <div class="bar">
       <a class="bar-item bodybtn" href="[% abspath %]companies.html"><span class="icon icon-shop" style="font-size: 24px;"/></span>Entreprises</a>
-      <a class="bar-item bodybtn" href="[% abspath %]workplans.html"><span class="icon icon-template" style="font-size: 24px;"/></span>Modèles</a>
+      <a class="bar-item bodybtn" href="[% abspath %]workplans.html"><span class="icon icon-template" style="font-size: 24px;"/></span>Modèles hebdomaires</a>
     </div>
   </div>
   <!--<div class="card"  style="margin-top: 10px;">
index eee58ee..0879a2a 100644 (file)
@@ -42,9 +42,9 @@
     [% INCLUDE block/dlgdeleterow.tt %] 
     [% INCLUDE block/dlgmessage.tt %] 
     [% INCLUDE block/dlgdataload.tt %]
-    [% INCLUDE block/dlgreport.tt %]
     [% INCLUDE block/dlgaction.tt %] 
     [% INCLUDE block/dlgstaffperioddays.tt %]
     [% INCLUDE block/dlgstaffpayedhours.tt %]
+    [% INCLUDE block/dlg_replacestaffdayworkplan.tt %]
     <script src="periods/reportperiod.js?v=[% vstamp %]"></script>
     <script src="periods/staffperiodweeks.js?v=[% vstamp %]"></script>
\ No newline at end of file
index 3c1f180..64c3e77 100644 (file)
@@ -9,7 +9,7 @@ var staffperiodweeks = {
   currentday: null,
   parenttbl: null,
   copy_id: null,
-  choices:{"id_vacancytype":null,"id_recuperationtype":null},
+  choices:{"id_vacancytype":null,"id_recuperationtype":null,"id_workplan":null},
   initform: function(){
     // flatpickr(".timefield",{
     //   dateFormat: "H:i",
@@ -29,6 +29,11 @@ var staffperiodweeks = {
         staffperiodweeks.setvacancyhours();
       }
     });
+    staffperiodweeks.choices["id_workplan"] = new SlimSelect({
+      select: "#id_workplan",
+      showSearch: false,
+      
+    });
     staffperiodweeks.choices["id_recuperationtype"] = new SlimSelect({
       select: "#id_recuperationtype",
       showSearch: false,
@@ -51,6 +56,7 @@ var staffperiodweeks = {
     }
     document.getElementById("id_vacancytype").addEventListener('change', function(event){});
     document.getElementById("id_recuperationtype").addEventListener('change', function(event){});
+    staffperiodweeks.getwptemplates();
   },
   inittable: function(){
      staffperiodweeks.tbl = new Tabulator("#tbl_staffperiodweeks", {
@@ -266,27 +272,55 @@ var staffperiodweeks = {
   },
   copy: function(){
     var sel = staffperiodweeks.tbl.getSelectedData();
-    if (sel.length > 0){
-
+    if (sel[0]){
+      staffperiodweeks.copy_id = sel[0].id;
+      document.getElementById("spwpasteval").innerHTML = moment(sel[0]["daydate"]).lang("fr").format('DD.MM.YYYY');
     }
   },
   paste: function(){
     var sel = staffperiodweeks.tbl.getSelectedData();
     if (sel.length > 0){
-
+      asel = [];
+      for (s=0;s<sel.length;s++){
+        asel.push(sel[s].id);
+      }
+      req.reqdata("POST","db.cgi",{"schemata":schemata,"fn":"clone_staffperiodweekdayhours","params":[staffperiodweeks.copy_id,"'" + asel.join("','") + "'"]},staffperiodweeks.gettbldata);
     }
   },
   clean: function(){
     var sel = staffperiodweeks.tbl.getSelectedData();
     if (sel.length > 0){
-
+      asel = [];
+      for (s=0;s<sel.length;s++){
+        asel.push(sel[s].id);
+      }
+      req.reqdata("POST","db.cgi",{"schemata":schemata,"fn":"clean_staffperiodday","params":["'" + asel.join("','") + "'"]},staffperiodweeks.gettbldata);
     }
   },
   replacedlg: function(){
     var sel = staffperiodweeks.tbl.getSelectedData();
     if (sel.length > 0){
-
+      document.getElementById('dlg_replacestaffdayworkplan').style.display='block';
+    }
+  },
+  getwptemplates: function(){
+    req.reqdata("POST","db.cgi",{"get":"workplanlist","schemata":schemata},staffperiodweeks.fillwptemplates);
+  },
+  fillwptemplates: function(data){
+    form.fillselectlist(staffperiodweeks.choices["id_workplan"],data.sqldata,'id','dspworkplandetail');
+  },
+  replacedays: function(){
+    let sel = staffperiodweeks.tbl.getSelectedData();
+    let id_workplan = document.getElementById("id_workplan").selected();
+    asel = [];
+    for (s=0;s<sel.length;s++){
+      asel.push(sel[s].id);
     }
+    req.reqdata("POST","db.cgi",{"schemata":schemata,"fn":"replace_staffperiodweekdayhours","params":[id_workplan,"'" + asel.join("','") + "'"]},staffperiodweeks.afterreplacedays);
+  },
+  afterreplacedays: function(data){
+    document.getElementById('dlg_replacestaffdayworkplan').style.display='none';
+    staffperiodweeks.gettbldata();
   }
 };
 
index 63be0e4..4f34218 100644 (file)
@@ -1,5 +1,5 @@
 <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.edit(); return false;"><span class="icon icon-edit" style="font-size: 16px;"></span>éditer</button>
 <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.copy(); return false;"><span class="icon icon-copy" style="font-size: 16px;"></span>copier</button>
-<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.paste(); return false;"><span class="icon icon-paste" style="font-size: 16px;"></span>coller</button>
+<button class="bar-item toolbarbtn right" onclick="staffperiodweeks.paste(); return false;"><span class="icon icon-paste" id="spwpasteval" style="font-size: 16px;"></span>coller</button>
 <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.clean(); return false;"><span class="icon icon-erase" style="font-size: 16px;"></span>vider</button>
 <button class="bar-item toolbarbtn right" onclick="staffperiodweeks.replacedlg(); return false;"><span class="icon icon-replace" style="font-size: 16px;"></span>changer modèle</button>
\ No newline at end of file
index 98f8c69..7de89c0 100644 (file)
@@ -50,6 +50,7 @@
 [% INCLUDE block/dlgstaffperioddays.tt %]
 [% INCLUDE block/dlgdeleterow.tt %]
 [% INCLUDE block/dlgdataload.tt %]
+[% INCLUDE block/dlg_replacestaffdayworkplan.tt %]
 
 <script src="staff/staff.js?v=[% vstamp %]"></script>
 <script src="staff/staffcontract.js?v=[% vstamp %]"></script>
index 4d769ad..b08a831 100644 (file)
@@ -24,7 +24,7 @@
         </div>
         <div class="row">
           <div class="cell" style="width: 100%">
-            [% fieldselectbox('id_workplan','staffcontract','POT (Modèle)','third','','','') %]
+            [% fieldselectbox('id_workplan','staffcontract','POT (Modèle)','','','','') %]
           </div>
         </div>
        </form>  
index a14d18f..89109c7 100644 (file)
@@ -3,7 +3,7 @@
 <div class="display-container">
 <div class="bar toolbar">
       <a class="bar-item toolbarbtn" href="[% abspath %]index.html"><span class="icon icon-back" style="font-size: 16px;"></span>retour</a>
-      <div class="bar-item PageHeadTitle">Plans de travail (modèles)</div>
+      <div class="bar-item PageHeadTitle">Modèles hebdomaires</div>
       <div class="toolbar" id="tbar_tbl_workplans">
   <button class="bar-item toolbarbtn  right" onclick="workplans.remove();"><span class="icon icon-remove text-red" style="font-size: 16px;"></span>supprimer</button>
   <button class="bar-item toolbarbtn  right" onclick="workplans.duplicate();"><span class="icon icon-duplicate" style="font-size: 16px;"></span>dupliquer</button>
diff --git a/webapp/tools/bin/wkhtmltoimage b/webapp/tools/bin/wkhtmltoimage
deleted file mode 100644 (file)
index 5940e7c..0000000
Binary files a/webapp/tools/bin/wkhtmltoimage and /dev/null differ
diff --git a/webapp/tools/bin/wkhtmltopdf b/webapp/tools/bin/wkhtmltopdf
deleted file mode 100644 (file)
index e8fb987..0000000
Binary files a/webapp/tools/bin/wkhtmltopdf and /dev/null differ
diff --git a/webapp/tools/include/wkhtmltox/dllbegin.inc b/webapp/tools/include/wkhtmltox/dllbegin.inc
deleted file mode 100644 (file)
index cef0176..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* -*- mode: c++; tab-width: 4; indent-tabs-mode: t; eval: (progn (c-set-style "stroustrup") (c-set-offset 'innamespace 0)); -*-\r
- * vi:set ts=4 sts=4 sw=4 noet :\r
- *\r
- * Copyright 2010-2020 wkhtmltopdf authors\r
- *\r
- * This file is part of wkhtmltopdf.\r
- *\r
- * wkhtmltopdf is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * wkhtmltopdf is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public License\r
- * along with wkhtmltopdf.  If not, see <http: *www.gnu.org/licenses/>.\r
- */\r
-\r
-#ifndef __WKHTMLTOPDF_DLLBEGIN__\r
-#define __WKHTMLTOPDF_DLLBEGIN__\r
-\r
-#if defined _WIN32 || defined __CYGWIN__\r
-  #ifdef BUILDING_DLL\r
-     #define DLL_PUBLIC __declspec(dllexport)\r
-  #else\r
-     #define DLL_PUBLIC __declspec(dllimport)\r
-  #endif\r
-  #define DLL_LOCAL\r
-#else\r
-  #if __GNUC__ >= 4\r
-    #define DLL_PUBLIC __attribute__ ((visibility("default")))\r
-    #define DLL_LOCAL  __attribute__ ((visibility("hidden")))\r
-  #else\r
-    #define DLL_PUBLIC\r
-    #define DLL_LOCAL\r
-  #endif\r
-#endif\r
-\r
-#if defined _WIN32\r
-#define CALLTYPE __stdcall\r
-#else\r
-#define CALLTYPE\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-  #define CAPI(type) extern "C" DLL_PUBLIC type CALLTYPE\r
-#else\r
-  #define CAPI(type) DLL_PUBLIC type CALLTYPE\r
-#endif\r
-\r
-#endif /*__WKHTMLTOPDF_DLLBEGIN__*/\r
diff --git a/webapp/tools/include/wkhtmltox/dllend.inc b/webapp/tools/include/wkhtmltox/dllend.inc
deleted file mode 100644 (file)
index 506ce69..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- mode: c++; tab-width: 4; indent-tabs-mode: t; eval: (progn (c-set-style "stroustrup") (c-set-offset 'innamespace 0)); -*-\r
- * vi:set ts=4 sts=4 sw=4 noet :\r
- *\r
- * Copyright 2010-2020 wkhtmltopdf authors\r
- *\r
- * This file is part of wkhtmltopdf.\r
- *\r
- * wkhtmltopdf is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * wkhtmltopdf is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public License\r
- * along with wkhtmltopdf.  If not, see <http: *www.gnu.org/licenses/>.\r
- */\r
-\r
-#ifdef __WKHTMLTOPDF_DLLBEGIN__\r
-\r
-#undef __WKHTMLTOPDF_DLLBEGIN__\r
-#undef DLL_PUBLIC\r
-#undef DLL_LOCAL\r
-#undef CAPI\r
-#undef CALLTYPE\r
-\r
-#endif /*__WKHTMLTOPDF_DLLBEGIN__*/\r
diff --git a/webapp/tools/include/wkhtmltox/image.h b/webapp/tools/include/wkhtmltox/image.h
deleted file mode 100644 (file)
index 489a69b..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- mode: c++; tab-width: 4; indent-tabs-mode: t; eval: (progn (c-set-style "stroustrup") (c-set-offset 'innamespace 0)); -*-\r
- * vi:set ts=4 sts=4 sw=4 noet :\r
- *\r
- * Copyright 2010-2020 wkhtmltopdf authors\r
- *\r
- * This file is part of wkhtmltopdf.\r
- *\r
- * wkhtmltopdf is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * wkhtmltopdf is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public License\r
- * along with wkhtmltopdf.  If not, see <http: *www.gnu.org/licenses/>.\r
- */\r
-\r
-#ifndef __IMAGE_H__\r
-#define __IMAGE_H__\r
-\r
-#ifdef BUILDING_WKHTMLTOX\r
-#include "dllbegin.inc"\r
-#else\r
-#include <wkhtmltox/dllbegin.inc>\r
-#endif\r
-\r
-struct wkhtmltoimage_global_settings;\r
-typedef struct wkhtmltoimage_global_settings wkhtmltoimage_global_settings;\r
-\r
-struct wkhtmltoimage_converter;\r
-typedef struct wkhtmltoimage_converter wkhtmltoimage_converter;\r
-\r
-typedef void (*wkhtmltoimage_str_callback)(wkhtmltoimage_converter * converter, const char * str);\r
-typedef void (*wkhtmltoimage_int_callback)(wkhtmltoimage_converter * converter, const int val);\r
-typedef void (*wkhtmltoimage_void_callback)(wkhtmltoimage_converter * converter);\r
-\r
-CAPI(int) wkhtmltoimage_init(int use_graphics);\r
-CAPI(int) wkhtmltoimage_deinit();\r
-CAPI(int) wkhtmltoimage_extended_qt();\r
-CAPI(const char *)wkhtmltoimage_version();\r
-\r
-CAPI(wkhtmltoimage_global_settings *) wkhtmltoimage_create_global_settings();\r
-\r
-CAPI(int) wkhtmltoimage_set_global_setting(wkhtmltoimage_global_settings * settings, const char * name, const char * value);\r
-CAPI(int) wkhtmltoimage_get_global_setting(wkhtmltoimage_global_settings * settings, const char * name, char * value, int vs);\r
-\r
-CAPI(wkhtmltoimage_converter *) wkhtmltoimage_create_converter(wkhtmltoimage_global_settings * settings, const char * data);\r
-CAPI(void) wkhtmltoimage_destroy_converter(wkhtmltoimage_converter * converter);\r
-\r
-CAPI(void) wkhtmltoimage_set_warning_callback(wkhtmltoimage_converter * converter, wkhtmltoimage_str_callback cb);\r
-CAPI(void) wkhtmltoimage_set_error_callback(wkhtmltoimage_converter * converter, wkhtmltoimage_str_callback cb);\r
-CAPI(void) wkhtmltoimage_set_phase_changed_callback(wkhtmltoimage_converter * converter, wkhtmltoimage_void_callback cb);\r
-CAPI(void) wkhtmltoimage_set_progress_changed_callback(wkhtmltoimage_converter * converter, wkhtmltoimage_int_callback cb);\r
-CAPI(void) wkhtmltoimage_set_finished_callback(wkhtmltoimage_converter * converter, wkhtmltoimage_int_callback cb);\r
-CAPI(int) wkhtmltoimage_convert(wkhtmltoimage_converter * converter);\r
-/* CAPI(void) wkhtmltoimage_begin_conversion(wkhtmltoimage_converter * converter); */\r
-/* CAPI(void) wkhtmltoimage_cancel(wkhtmltoimage_converter * converter); */\r
-\r
-CAPI(int) wkhtmltoimage_current_phase(wkhtmltoimage_converter * converter);\r
-CAPI(int) wkhtmltoimage_phase_count(wkhtmltoimage_converter * converter);\r
-CAPI(const char *) wkhtmltoimage_phase_description(wkhtmltoimage_converter * converter, int phase);\r
-CAPI(const char *) wkhtmltoimage_progress_string(wkhtmltoimage_converter * converter);\r
-CAPI(int) wkhtmltoimage_http_error_code(wkhtmltoimage_converter * converter);\r
-CAPI(long) wkhtmltoimage_get_output(wkhtmltoimage_converter * converter, const unsigned char **);\r
-\r
-#ifdef BUILDING_WKHTMLTOX\r
-#include "dllend.inc"\r
-#else\r
-#include <wkhtmltox/dllend.inc>\r
-#endif\r
-\r
-#endif /*__IMAGE_H__*/\r
diff --git a/webapp/tools/include/wkhtmltox/pdf.h b/webapp/tools/include/wkhtmltox/pdf.h
deleted file mode 100644 (file)
index 3e33123..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- mode: c++; tab-width: 4; indent-tabs-mode: t; eval: (progn (c-set-style "stroustrup") (c-set-offset 'innamespace 0)); -*-\r
- * vi:set ts=4 sts=4 sw=4 noet :\r
- *\r
- * Copyright 2010-2020 wkhtmltopdf authors\r
- *\r
- * This file is part of wkhtmltopdf.\r
- *\r
- * wkhtmltopdf is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * wkhtmltopdf is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public License\r
- * along with wkhtmltopdf.  If not, see <http: *www.gnu.org/licenses/>.\r
- */\r
-\r
-#ifndef __PDF_H__\r
-#define __PDF_H__\r
-\r
-#ifdef BUILDING_WKHTMLTOX\r
-#include "dllbegin.inc"\r
-#else\r
-#include <wkhtmltox/dllbegin.inc>\r
-#endif\r
-\r
-struct wkhtmltopdf_global_settings;\r
-typedef struct wkhtmltopdf_global_settings wkhtmltopdf_global_settings;\r
-\r
-struct wkhtmltopdf_object_settings;\r
-typedef struct wkhtmltopdf_object_settings wkhtmltopdf_object_settings;\r
-\r
-struct wkhtmltopdf_converter;\r
-typedef struct wkhtmltopdf_converter wkhtmltopdf_converter;\r
-\r
-typedef void (*wkhtmltopdf_str_callback)(wkhtmltopdf_converter * converter, const char * str);\r
-typedef void (*wkhtmltopdf_int_callback)(wkhtmltopdf_converter * converter, const int val);\r
-typedef void (*wkhtmltopdf_void_callback)(wkhtmltopdf_converter * converter);\r
-\r
-CAPI(int) wkhtmltopdf_init(int use_graphics);\r
-CAPI(int) wkhtmltopdf_deinit();\r
-CAPI(int) wkhtmltopdf_extended_qt();\r
-CAPI(const char *) wkhtmltopdf_version();\r
-\r
-CAPI(wkhtmltopdf_global_settings *) wkhtmltopdf_create_global_settings();\r
-CAPI(void) wkhtmltopdf_destroy_global_settings(wkhtmltopdf_global_settings *);\r
-\r
-CAPI(wkhtmltopdf_object_settings *) wkhtmltopdf_create_object_settings();\r
-CAPI(void) wkhtmltopdf_destroy_object_settings(wkhtmltopdf_object_settings *);\r
-\r
-CAPI(int) wkhtmltopdf_set_global_setting(wkhtmltopdf_global_settings * settings, const char * name, const char * value);\r
-CAPI(int) wkhtmltopdf_get_global_setting(wkhtmltopdf_global_settings * settings, const char * name, char * value, int vs);\r
-CAPI(int) wkhtmltopdf_set_object_setting(wkhtmltopdf_object_settings * settings, const char * name, const char * value);\r
-CAPI(int) wkhtmltopdf_get_object_setting(wkhtmltopdf_object_settings * settings, const char * name, char * value, int vs);\r
-\r
-\r
-CAPI(wkhtmltopdf_converter *) wkhtmltopdf_create_converter(wkhtmltopdf_global_settings * settings);\r
-CAPI(void) wkhtmltopdf_destroy_converter(wkhtmltopdf_converter * converter);\r
-\r
-CAPI(void) wkhtmltopdf_set_warning_callback(wkhtmltopdf_converter * converter, wkhtmltopdf_str_callback cb);\r
-CAPI(void) wkhtmltopdf_set_error_callback(wkhtmltopdf_converter * converter, wkhtmltopdf_str_callback cb);\r
-CAPI(void) wkhtmltopdf_set_phase_changed_callback(wkhtmltopdf_converter * converter, wkhtmltopdf_void_callback cb);\r
-CAPI(void) wkhtmltopdf_set_progress_changed_callback(wkhtmltopdf_converter * converter, wkhtmltopdf_int_callback cb);\r
-CAPI(void) wkhtmltopdf_set_finished_callback(wkhtmltopdf_converter * converter, wkhtmltopdf_int_callback cb);\r
-/* CAPI(void) wkhtmltopdf_begin_conversion(wkhtmltopdf_converter * converter); */\r
-/* CAPI(void) wkhtmltopdf_cancel(wkhtmltopdf_converter * converter); */\r
-CAPI(int) wkhtmltopdf_convert(wkhtmltopdf_converter * converter);\r
-CAPI(void) wkhtmltopdf_add_object(\r
-       wkhtmltopdf_converter * converter, wkhtmltopdf_object_settings * setting, const char * data);\r
-\r
-CAPI(int) wkhtmltopdf_current_phase(wkhtmltopdf_converter * converter);\r
-CAPI(int) wkhtmltopdf_phase_count(wkhtmltopdf_converter * converter);\r
-CAPI(const char *) wkhtmltopdf_phase_description(wkhtmltopdf_converter * converter, int phase);\r
-CAPI(const char *) wkhtmltopdf_progress_string(wkhtmltopdf_converter * converter);\r
-CAPI(int) wkhtmltopdf_http_error_code(wkhtmltopdf_converter * converter);\r
-CAPI(long) wkhtmltopdf_get_output(wkhtmltopdf_converter * converter, const unsigned char **);\r
-\r
-#ifdef BUILDING_WKHTMLTOX\r
-#include "dllend.inc"\r
-#else\r
-#include <wkhtmltox/dllend.inc>\r
-#endif\r
-\r
-#endif /*__PDF_H__*/\r
diff --git a/webapp/tools/lib/libwkhtmltox.so b/webapp/tools/lib/libwkhtmltox.so
deleted file mode 100644 (file)
index d7c48d6..0000000
Binary files a/webapp/tools/lib/libwkhtmltox.so and /dev/null differ
diff --git a/webapp/tools/lib/libwkhtmltox.so.0 b/webapp/tools/lib/libwkhtmltox.so.0
deleted file mode 100644 (file)
index d7c48d6..0000000
Binary files a/webapp/tools/lib/libwkhtmltox.so.0 and /dev/null differ
diff --git a/webapp/tools/lib/libwkhtmltox.so.0.12 b/webapp/tools/lib/libwkhtmltox.so.0.12
deleted file mode 100644 (file)
index d7c48d6..0000000
Binary files a/webapp/tools/lib/libwkhtmltox.so.0.12 and /dev/null differ
diff --git a/webapp/tools/lib/libwkhtmltox.so.0.12.6 b/webapp/tools/lib/libwkhtmltox.so.0.12.6
deleted file mode 100644 (file)
index d7c48d6..0000000
Binary files a/webapp/tools/lib/libwkhtmltox.so.0.12.6 and /dev/null differ
diff --git a/webapp/tools/share/man/man1/wkhtmltoimage.1.gz b/webapp/tools/share/man/man1/wkhtmltoimage.1.gz
deleted file mode 100644 (file)
index 9326530..0000000
Binary files a/webapp/tools/share/man/man1/wkhtmltoimage.1.gz and /dev/null differ
diff --git a/webapp/tools/share/man/man1/wkhtmltopdf.1.gz b/webapp/tools/share/man/man1/wkhtmltopdf.1.gz
deleted file mode 100644 (file)
index 4e73d8c..0000000
Binary files a/webapp/tools/share/man/man1/wkhtmltopdf.1.gz and /dev/null differ