From: Kilian Saffran Date: Thu, 4 Feb 2021 06:35:00 +0000 (+0100) Subject: v20200204 X-Git-Tag: 1.3.1~1 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=cb883e4c3f55422c8443630576d5145665d4e887;p=pot_lu.git v20200204 --- diff --git a/app/data/schemata/defaultcompany.schema.sql b/app/data/schemata/defaultcompany.schema.sql index 14f8131a..5b0ba474 100644 --- a/app/data/schemata/defaultcompany.schema.sql +++ b/app/data/schemata/defaultcompany.schema.sql @@ -3,11 +3,11 @@ CREATE SCHEMA %%NEWSCHEMA%%; CREATE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable() RETURNS trigger LANGUAGE plpgsql - AS $$ - begin - new.modified = now(); - RETURN NEW; - END; + AS $$ + begin + new.modified = now(); + RETURN NEW; + END; $$; CREATE TABLE %%NEWSCHEMA%%.reportperiod ( @@ -90,18 +90,17 @@ CREATE TABLE %%NEWSCHEMA%%.staffreportperiod ( status44hcount integer DEFAULT 0, last44date date, lastsundate date, - itmcontracthours interval DEFAULT '00:00:00'::interval, - maxdays integer DEFAULT 0, avgtotalweekhours interval, + itmcontracthours interval, + maxdays integer, vacancyill interval, vacancynormal interval, - isvalidated boolean, - payedhours40 interval, - payedhours40calc interval, - hourstotransfer interval, hourstotransfercalc interval, + hourstotransfer interval, + isvalidated boolean, payedhours0 interval, - unpayedprevious interval + payedhours40calc interval, + payedhours40 interval ); CREATE TABLE %%NEWSCHEMA%%.staffreportperioddays ( @@ -266,8 +265,6 @@ CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_staffreportperiod BEFORE UPDATE ON % CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_staffreportperioddays BEFORE UPDATE ON %%NEWSCHEMA%%.staffreportperioddays FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); -CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_timetracker BEFORE UPDATE ON %%NEWSCHEMA%%.timetracker FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); - CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_vacancydays BEFORE UPDATE ON %%NEWSCHEMA%%.vacancydays FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); CREATE TRIGGER trg_%%NEWSCHEMA%%_before_upd_vacancytypes BEFORE UPDATE ON %%NEWSCHEMA%%.vacancytypes FOR EACH ROW EXECUTE FUNCTION %%NEWSCHEMA%%.trg_before_upd_schematable(); diff --git a/app/index.cgi b/app/index.cgi index 42e4e198..07d8e536 100644 --- a/app/index.cgi +++ b/app/index.cgi @@ -137,6 +137,9 @@ $vars->{page} = 'module/'.$vars->{page}; $vars->{pagename} = basename($vars->{page}); $vars->{pagename} =~ s/\.tt$//; +if ($sess->{id}){ + $vars->{cmpcfg} = $se->getCompanyConfig($sess->{sessiondata}->{schemata}); +} $vars->{params}= $p; if ($sess->{lang} eq ""){ $sess->{lang} = "fr"; @@ -150,8 +153,8 @@ $vars->{remote_addr} = $ENV{REMOTE_ADDR}; my $template = Template->new({INCLUDE_PATH => [$sitecfg->{tmplpath}]}); $template->process($skl,$vars) || die "Template process failed: ", $template->error(), "\n"; $db->disconnect(); -# if ($vars->{page} =~ /\.tt/){ -# print '
'.Dumper($vars)."
";
-#  } 
+if ($vars->{page} =~ /\.tt/){
+      print '
'.Dumper($vars)."
";
+} 
 
 
diff --git a/app/lib/POT/Archive.pm b/app/lib/POT/Archive.pm
new file mode 100644
index 00000000..cdc92911
--- /dev/null
+++ b/app/lib/POT/Archive.pm
@@ -0,0 +1,51 @@
+package POT::Archive;
+
+use strict;
+
+sub new {
+    my $class = shift;
+    my $p = shift;
+    my $self = bless {}, $class;
+    $self->{db} = $p->{db};
+    return $self;
+}
+
+sub getArchive(){
+  my $self = shift;
+  my $schema = shift;
+}
+
+sub addToArchive(){
+  my $self = shift;
+  my $schema = shift;
+  my $id_staff =shift; # ARRAY;
+  my $id_period = shift;
+  
+    my $sqlcompany = "select id,schemata,periodtypes,company,socialtype,address,zip,city,country from public.companies where schemata='".$schema."';";
+  my $sqllegend = "select id,vacancyname,legend,isworktime FROM ".$schema.".vacancytypes";
+  my $sqlperiod = "select rp.id,rp.startdate,rp.enddate,st.prename,st.surname,st.staffnumber,st.matricule,to_char(rp.startdate,'DD.MM.YYYY') as dspstartdate,to_char(rp.enddate,'DD.MM.YYYY') as dspenddate, srp.id_staff, 
+  to_char(srp.contracthours, 'HH24:MI'::text) AS contracthours,
+    to_char(srp.workhours, 'HH24:MI'::text) AS workhours,
+    to_char(srp.vacancyhours, 'HH24:MI'::text) AS vacancyhours,
+    to_char(srp.vacancyill, 'HH24:MI'::text) AS vacancyill,
+    to_char(srp.vacancynormal, 'HH24:MI'::text) AS vacancynormal,
+    to_char(srp.recuperationhours, 'HH24:MI'::text) AS recuperationhours,
+    case when position('-' in to_char(srp.hoursdiff, 'HH24:MI')) > 0  then '-' || replace(to_char(srp.hoursdiff, 'HH24:MI'),'-','') else to_char(srp.hoursdiff, 'HH24:MI') end  as hoursdiff,
+    to_char(srp.totalhours, 'HH24:MI'::text) AS totalhours,
+    to_char(srp.payedhours, 'HH24:MI'::text) AS payedhours,
+    to_char(srp.avgtotalweekhours, 'HH24:MI'::text) AS avgtotalweekhours,
+    case when position('-' in to_char(srp.transferedhourscalc, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.transferedhourscalc, 'HH24:MI'),'-','') else to_char(srp.transferedhourscalc, 'HH24:MI') end  as transferedhourscalc,
+    '+' || suppvacancysunwork as suppvacancysunwork,
+    '+' || suppvacancy44hours as suppvacancy44hours
+   from ".$schema.".staffreportperiod srp 
+join ".$schema.".reportperiod rp on (srp.id_reportperiod =rp.id)
+join ".$schema.".staff st on (srp.id_staff=st.id)
+where st.isdeleted is null and id_staff='".$id_staff."' and srp.idreportperiod='".$id_period."' 
+order by rp.startdate,rp.enddate,st.surname,st.prename;";
+    my $sqlpreioddays = "";
+    my $sqlperiodweeksums = "";
+    
+ 
+}
+
+1;
\ No newline at end of file
diff --git a/app/lib/POT/Period.pm b/app/lib/POT/Period.pm
index b3ada891..2e79cc6c 100644
--- a/app/lib/POT/Period.pm
+++ b/app/lib/POT/Period.pm
@@ -129,12 +129,12 @@ sub getStaffPeriods(){
     to_char(srp.vacancyextra, 'HH24:MI'::text) AS vacancyextra,
     to_char(srp.partunemplhours, 'HH24:MI'::text) AS partunemplhours,
     to_char(srp.recuperationhours, 'HH24:MI'::text) AS recuperationhours,
-    case when position('-' in to_char(srp.hoursdiff, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.hoursdiff, 'HH24:MI'),'-','') else to_char(srp.hoursdiff, 'HH24:MI') end  as hoursdiff,
+    case when position('-' in to_char(srp.hoursdiff, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.hoursdiff, 'HH24:MI'),'-','') else to_char(srp.hoursdiff, 'HH24:MI') end as hoursdiff,
     to_char(srp.totalhours, 'HH24:MI'::text) AS totalhours,
     srp.id as id_staffreportperiod,srp.id_reportperiod, srp.id_staff, srp.id, rp.startdate, rp.enddate,
     COALESCE(st.surname || ' '::text, ''::text) || COALESCE(st.prename, ''::text) AS staffname,
     st.id_staffgroup, sgr.groupname,
-    case when position('-' in to_char(srp.transferedhours, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.transferedhours, 'HH24:MI'),'-','') else to_char(srp.transferedhours, 'HH24:MI') end  as transferedhours,
+    case when position('-' in to_char(srp.transferedhours, 'HH24:MI')) > 0 then '-' || replace(to_char(srp.transferedhours, 'HH24:MI'),'-','') else to_char(srp.transferedhours, 'HH24:MI') end as transferedhours,
     case when suppvacancysunwork is not null and suppvacancysunwork > 0 then '+' || suppvacancysunwork  else  null end as suppvacancysunwork,
     case when suppvacancy44hours is not null and suppvacancy44hours > 0 then '+' || suppvacancy44hours  else null end as suppvacancy44hours
     ,itmcontracthours,maxdays,srp.isvalidated,
@@ -335,6 +335,7 @@ sub getPeriodDayLimits(){
   my $before = $self->{db}->query("select daydate as datebefore,to_char(case when timestart2 is null then timeend1 else timeend2 end,'HH24:MI') as timeendbefore from ".$schema.".staffreportperioddays where id_staff= '".$id_staff."' and daydate < date('".$daydate."') and (timestart1 is not null or timestart2 is not null) order by daydate desc limit 1;");
 	my $after =  $self->{db}->query("select daydate as dateafter ,to_char(case when timestart1 is null then timestart2 else timestart1 end,'HH24:MI') as timestartafter from ".$schema.".staffreportperioddays where id_staff= '".$id_staff."' and daydate > date('".$daydate."') and (timestart1 is not null or timestart2 is not null) order by daydate asc limit 1;");
   my $contr = $self->{db}->query($csql); 
+   print STDERR "contr:\n".Dumper($contr)."\n"."\n===\n";
   if ($contr->{weekhours} ge '40:00:00' ){
     
 	my $sql = "select to_char(wk.maxdayhours,'HH24:MI') as maxdayhours,
@@ -651,8 +652,6 @@ sub clonePeriodDay(){
                                vacillhours=".$self->{db}->value($copy->{vacillhours}).",
                                vacextrahours=".$self->{db}->value($copy->{vacextrahours}).",
                                partunemplhours=".$self->{db}->value($copy->{partunemplhours}).", 
-													   --id_vacancytype=".$self->{db}->value($copy->{id_vacancytype}).", 
-													   --id_recuperationtype=".$self->{db}->value($copy->{id_recuperationtype}).", 
 													   recuperationhours=".$self->{db}->value($copy->{recuperationhours})." 
 		where id in ('".join("','",@{$pasteids})."');";
     $sql =~ s/\s+/ /g;
@@ -684,8 +683,6 @@ sub cleanPeriodDays(){
                           vacillhours = null,
                           vacextrahours = null,
                           partunemplhours = null,  
-	   											--id_vacancytype = null, 
-	   											--id_recuperationtype = null, 
 	   											recuperationhours = null,
 	   											workhours=null, 
 	   											dayhours=null 
diff --git a/app/lib/POT/Report.pm b/app/lib/POT/Report.pm
index b1c27164..4001e873 100644
--- a/app/lib/POT/Report.pm
+++ b/app/lib/POT/Report.pm
@@ -505,8 +505,7 @@ sub getPeriodWeekSums(){
   ,case when cd.contractworkdays < cd.cmpcontractdays then to_char(cd.contractworkdays*'08:00:00'::interval,'HH24:MI') else to_char(cd.contracthours,'HH24:MI') end as contracthours
   ,to_char(AVG(ws.totalhours) over (order by ws.weekstart),'HH24:MI') as avgtotalhours
   ,case when cd.contractworkdays < cd.cmpcontractdays then '00:00' else
-  case when position('-' in to_char(ws.totalhours-cd.contracthours ,'HH24:MI')) > 0  then '-' || replace(to_char(ws.totalhours-cd.contracthours ,'HH24:MI'),'-','') else to_char(ws.totalhours-cd.contracthours ,'HH24:MI') end  
-  end as diffhours
+  case when position('-' in to_char(ws.totalhours-cd.contracthours ,'HH24:MI')) > 0  then '-' || replace(to_char(ws.totalhours-cd.contracthours ,'HH24:MI'),'-','') else to_char(ws.totalhours-cd.contracthours ,'HH24:MI') end end as diffhours
   ,cd.contractworkdays
   ,cd.cmpcontractdays
   ,cd.cmpweekhours
diff --git a/app/lib/dksdb.pm b/app/lib/dksdb.pm
index 3ca21b22..0d40d53c 100644
--- a/app/lib/dksdb.pm
+++ b/app/lib/dksdb.pm
@@ -20,7 +20,7 @@ sub new {
     my $class = shift;
     my $p = shift;
     my $self = bless {}, $class;
-    $self->{debug} = 0;
+    $self->{debug} = 1;
     $self->{dbh} = DBI->connect($p->{dsn},$p->{dbuser},$p->{dbpassword},{PrintError=>1,RaiseError=>1,AutoCommit=>1})  or return "query Connection Error!".$!;
     return $self;
 }
diff --git a/app/lib/session.pm b/app/lib/session.pm
index 5146bfd9..f2bbd3c0 100644
--- a/app/lib/session.pm
+++ b/app/lib/session.pm
@@ -112,6 +112,13 @@ us.isblocked is null group by se.id,us.id,ugrp.id;";
   return $ret;
 }
 
+sub getCompanyConfig(){
+  my $self = shift;
+  my $schema = shift;
+  my $sql = "select timetrackertype,sector,viewpartunempl from public.companies where schemata='".$schema."';";
+  return $self->{db}->query($sql);
+}
+
 sub setsessiondata(){
   my $self = shift;
   my $idsession = shift;
diff --git a/app/manifest.json b/app/manifest.webmanifest
similarity index 62%
rename from app/manifest.json
rename to app/manifest.webmanifest
index 8e1a4ea4..c701f186 100644
--- a/app/manifest.json
+++ b/app/manifest.webmanifest
@@ -3,37 +3,37 @@
  "short_name": "POT",
  "icons": [
   {
-   "src": "/img/favicon/android-icon-36x36.png",
+   "src": "/static/img/favicon/android-icon-36x36.png",
    "sizes": "36x36",
    "type": "image/png",
    "density": "0.75"
   },
   {
-   "src": "/img/favicon/android-icon-48x48.png",
+   "src": "/static/img/favicon/android-icon-48x48.png",
    "sizes": "48x48",
    "type": "image/png",
    "density": "1.0"
   },
   {
-   "src": "/img/favicon/android-icon-72x72.png",
+   "src": "/static/img/favicon/android-icon-72x72.png",
    "sizes": "72x72",
    "type": "image/png",
    "density": "1.5"
   },
   {
-   "src": "/img/favicon/android-icon-96x96.png",
+   "src": "/static/img/favicon/android-icon-96x96.png",
    "sizes": "96x96",
    "type": "image/png",
    "density": "2.0"
   },
   {
-   "src": "/img/favicon/android-icon-144x144.png",
+   "src": "/static/img/favicon/android-icon-144x144.png",
    "sizes": "144x144",
    "type": "image/png",
    "density": "3.0"
   },
   {
-   "src": "/img/favicon/android-icon-192x192.png",
+   "src": "/static/img/favicon/android-icon-192x192.png",
    "sizes": "192x192",
    "type": "image/png",
    "density": "4.0"
@@ -43,5 +43,5 @@
  "background_color":"#52638e",
  "theme_color":"#52638e",
  "display":"standalone",
- "orientation":"portrait"
+ "orientation":"landscape"
 }
\ No newline at end of file
diff --git a/app/static/css/fonts/appicons.eot b/app/static/css/fonts/appicons.eot
index 87cbfb45..4dd96735 100644
Binary files a/app/static/css/fonts/appicons.eot and b/app/static/css/fonts/appicons.eot differ
diff --git a/app/static/css/fonts/appicons.svg b/app/static/css/fonts/appicons.svg
index 74176805..9206f202 100644
--- a/app/static/css/fonts/appicons.svg
+++ b/app/static/css/fonts/appicons.svg
@@ -7,68 +7,70 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
diff --git a/app/static/css/fonts/appicons.ttf b/app/static/css/fonts/appicons.ttf
index 24639cb6..e5731c8f 100644
Binary files a/app/static/css/fonts/appicons.ttf and b/app/static/css/fonts/appicons.ttf differ
diff --git a/app/static/css/fonts/appicons.woff b/app/static/css/fonts/appicons.woff
index 011a32b1..c9ae0ce0 100644
Binary files a/app/static/css/fonts/appicons.woff and b/app/static/css/fonts/appicons.woff differ
diff --git a/app/static/css/icons.css b/app/static/css/icons.css
index feca1ebd..6c40406d 100644
--- a/app/static/css/icons.css
+++ b/app/static/css/icons.css
@@ -1,10 +1,10 @@
 @font-face {
   font-family: 'appicons';
-  src:  url('fonts/appicons.eot?clkm3g');
-  src:  url('fonts/appicons.eot?clkm3g#iefix') format('embedded-opentype'),
-    url('fonts/appicons.ttf?clkm3g') format('truetype'),
-    url('fonts/appicons.woff?clkm3g') format('woff'),
-    url('fonts/appicons.svg?clkm3g#appicons') format('svg');
+  src:  url('fonts/appicons.eot?rmyyuw');
+  src:  url('fonts/appicons.eot?rmyyuw#iefix') format('embedded-opentype'),
+    url('fonts/appicons.ttf?rmyyuw') format('truetype'),
+    url('fonts/appicons.woff?rmyyuw') format('woff'),
+    url('fonts/appicons.svg?rmyyuw#appicons') format('svg');
   font-weight: normal;
   font-style: normal;
   font-display: block;
@@ -25,191 +25,197 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
-.icon-eye-close:before {
-  content: "\e93c";
+.icon-shrink:before {
+  content: "\e900";
 }
-.icon-eye-open:before {
-  content: "\e93d";
+.icon-expand:before {
+  content: "\e901";
 }
 .icon-house:before {
-  content: "\e900";
+  content: "\e902";
 }
 .icon-help:before {
-  content: "\e901";
+  content: "\e903";
 }
 .icon-helpfile:before {
-  content: "\e902";
+  content: "\e904";
 }
 .icon-aggrement:before {
-  content: "\e903";
+  content: "\e905";
 }
 .icon-info:before {
-  content: "\e904";
+  content: "\e906";
 }
 .icon-pause:before {
-  content: "\e905";
+  content: "\e907";
 }
 .icon-calendar:before {
-  content: "\e906";
+  content: "\e908";
 }
 .icon-clocktime:before {
-  content: "\e907";
+  content: "\e909";
 }
 .icon-cube:before {
-  content: "\e908";
+  content: "\e90a";
 }
 .icon-cubelight:before {
-  content: "\e909";
+  content: "\e90b";
 }
 .icon-dashboard:before {
-  content: "\e90a";
+  content: "\e90c";
 }
 .icon-history:before {
-  content: "\e90b";
+  content: "\e90d";
 }
 .icon-shop:before {
-  content: "\e90c";
+  content: "\e90e";
 }
 .icon-template:before {
-  content: "\e90d";
+  content: "\e90f";
 }
 .icon-remove:before {
-  content: "\e90e";
+  content: "\e910";
 }
 .icon-access:before {
-  content: "\e90f";
+  content: "\e911";
 }
 .icon-address:before {
-  content: "\e910";
+  content: "\e912";
 }
 .icon-apps:before {
-  content: "\e911";
+  content: "\e913";
 }
 .icon-archive:before {
-  content: "\e912";
+  content: "\e914";
 }
 .icon-calendar1:before {
-  content: "\e913";
+  content: "\e915";
 }
 .icon-code:before {
-  content: "\e914";
+  content: "\e916";
 }
 .icon-coin:before {
-  content: "\e915";
+  content: "\e917";
 }
 .icon-company:before {
-  content: "\e916";
+  content: "\e918";
 }
 .icon-cube1:before {
-  content: "\e917";
+  content: "\e919";
 }
 .icon-cubelight1:before {
-  content: "\e918";
+  content: "\e91a";
 }
 .icon-dashboard1:before {
-  content: "\e919";
+  content: "\e91b";
 }
 .icon-datarefresh:before {
-  content: "\e91a";
+  content: "\e91c";
 }
 .icon-documentsave:before {
-  content: "\e91b";
+  content: "\e91d";
 }
 .icon-documents:before {
-  content: "\e91c";
+  content: "\e91e";
 }
 .icon-download:before {
-  content: "\e91d";
+  content: "\e91f";
 }
 .icon-duplicate1:before {
-  content: "\e91e";
+  content: "\e920";
 }
 .icon-edit:before {
-  content: "\e91f";
+  content: "\e921";
 }
 .icon-excel:before {
-  content: "\e920";
+  content: "\e922";
 }
-.icon-expand:before {
-  content: "\e921";
+.icon-expand2:before {
+  content: "\e923";
 }
 .icon-file:before {
-  content: "\e922";
+  content: "\e924";
 }
 .icon-Floppy:before {
-  content: "\e923";
+  content: "\e925";
 }
 .icon-folder:before {
-  content: "\e924";
+  content: "\e926";
 }
 .icon-folder_add:before {
-  content: "\e925";
+  content: "\e927";
 }
 .icon-folder_delete:before {
-  content: "\e926";
+  content: "\e928";
 }
 .icon-folder_find:before {
-  content: "\e927";
+  content: "\e929";
 }
 .icon-globe:before {
-  content: "\e928";
+  content: "\e92a";
 }
 .icon-group:before {
-  content: "\e929";
+  content: "\e92b";
 }
 .icon-home:before {
-  content: "\e92a";
+  content: "\e92c";
 }
 .icon-inbox:before {
-  content: "\e92b";
+  content: "\e92d";
 }
 .icon-library:before {
-  content: "\e92c";
+  content: "\e92e";
 }
 .icon-star:before {
-  content: "\e92d";
+  content: "\e92f";
 }
 .icon-list:before {
-  content: "\e92e";
+  content: "\e930";
 }
 .icon-log:before {
-  content: "\e92f";
+  content: "\e931";
 }
 .icon-logout:before {
-  content: "\e930";
+  content: "\e932";
 }
 .icon-menu:before {
-  content: "\e931";
+  content: "\e933";
 }
 .icon-newspaper:before {
-  content: "\e932";
+  content: "\e934";
 }
 .icon-numberlist:before {
-  content: "\e933";
+  content: "\e935";
 }
 .icon-package:before {
-  content: "\e934";
+  content: "\e936";
 }
 .icon-dataset:before {
-  content: "\e935";
+  content: "\e937";
 }
 .icon-check:before {
-  content: "\e936";
+  content: "\e938";
 }
 .icon-pay:before {
-  content: "\e937";
+  content: "\e939";
 }
 .icon-pdf:before {
-  content: "\e938";
+  content: "\e93a";
 }
 .icon-pdfexport:before {
-  content: "\e939";
+  content: "\e93b";
 }
 .icon-pictures:before {
-  content: "\e93a";
+  content: "\e93c";
 }
 .icon-plus:before {
-  content: "\e93b";
+  content: "\e93d";
+}
+.icon-eye-close:before {
+  content: "\e93e";
+}
+.icon-eye-open:before {
+  content: "\e93f";
 }
 .icon-staff:before {
   content: "\e943";
diff --git a/app/tmpl/block/dlg_print.tt b/app/tmpl/block/dlg_print.tt
new file mode 100644
index 00000000..0c34a203
--- /dev/null
+++ b/app/tmpl/block/dlg_print.tt
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app/tmpl/block/dlgstaffperioddays.tt b/app/tmpl/block/dlgstaffperioddays.tt
index 14ff3109..3c0714fa 100644
--- a/app/tmpl/block/dlgstaffperioddays.tt
+++ b/app/tmpl/block/dlgstaffperioddays.tt
@@ -211,8 +211,8 @@
       
               
[% lbl.edittimetracks %]
- - + +
diff --git a/app/tmpl/index.tt b/app/tmpl/index.tt index e217f3f0..4f69b291 100644 --- a/app/tmpl/index.tt +++ b/app/tmpl/index.tt @@ -9,7 +9,7 @@ - POT - Plan d'Organtisation du Travail[% IF mode %][% " - ${mode}" %][% END %] + POT - Plan d'Organtisation du Travail @@ -35,7 +35,7 @@ - + diff --git a/app/tmpl/lang/de.tt b/app/tmpl/lang/de.tt index 17a3d174..7148ed18 100644 --- a/app/tmpl/lang/de.tt +++ b/app/tmpl/lang/de.tt @@ -205,6 +205,7 @@ "vacancyextra" => "Sonderurlaub", "vacancyextra2" => "Sonder-
urlaub", "partunempl" => "Kurzarbeit", + "partunempl2" => "Kurzarbeit", "ttentry" => "Kommen", "ttexit" => "Gehen", "tttotal" => "Total", @@ -231,5 +232,7 @@ "vacancyextra3" => "Sonderurl.", "comment" => "Bemerkung...", "datasaved" => "Die Daten wurden gespeichert!", - "timeperiod" => "Zeitraum" + "timeperiod" => "Zeitraum", + "viewonlyweeks" => "Tage ausblenden", + "viewdays" => "Tage einblenden" } %] \ No newline at end of file diff --git a/app/tmpl/lang/fr.tt b/app/tmpl/lang/fr.tt index 8cf8f01c..090bd4dd 100644 --- a/app/tmpl/lang/fr.tt +++ b/app/tmpl/lang/fr.tt @@ -205,6 +205,7 @@ "vacancyextra" => "extraordinaire", "vacancyextra2" => "c. except.", "partunempl" => "chômage part.", + "partunempl2" => "chômage
partielle", "ttentry" => "entrée", "ttexit" => "sortie", "tttotal" => "Total", @@ -231,5 +232,7 @@ "vacancyextra3" => "c. except.", "comment" => "note...", "datasaved" => "Les données ont été sauvegardées!", - "timeperiod" => "période" + "timeperiod" => "période", + "viewonlyweeks" => "masquer jours", + "viewdays" => "afficher jours" } %] \ No newline at end of file diff --git a/app/tmpl/module/archive.tt b/app/tmpl/module/archive.tt new file mode 100644 index 00000000..a0ad5818 --- /dev/null +++ b/app/tmpl/module/archive.tt @@ -0,0 +1,13 @@ +
+
+ [% lbl.back %] +
[% lbl.archive %]
+
+ + + +
+
+
+
\ No newline at end of file diff --git a/app/tmpl/module/archive/archive.js b/app/tmpl/module/archive/archive.js new file mode 100644 index 00000000..2248f098 --- /dev/null +++ b/app/tmpl/module/archive/archive.js @@ -0,0 +1,28 @@ +function initpage(){ + index.init(); +} + +let archive = { + tbl: null, + init: function(){ + archive.tbl = new Tabulator("#tbl_archive", { + height: "calc(100vh - 56px)", + layout: "fitDataFill", + selectable: true, + selectableRangeMode:"click", + rowContext:function(e, row){e.preventDefault();}, + columns:[ + {formatter:"rowSelection", titleFormatter:"rowSelection", hozAlign:"center", headerSort:false, cellClick:function(e, cell){ + cell.getRow().toggleSelect(); + }}, + {title: "[% lbl.start %]",field: "startdate",headerSort:"datetime",formatter:"datetime",resizable: false,formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} }, + {title: "[% lbl.end %]",field: "enddate",sorter:"datetime",resizable: false,formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} }, + {title: "[% lbl.name %]",headerFilter:"input", field: "surname" ,resizable:false }, + {title: "[% lbl.prename %]",headerFilter:"input",field: "prename",resizable:false}, + {title: "[% lbl.createdate %]",field: "created",headerSort:"datetime",formatter:"datetime",resizable: false,formatterParams:{inputFormat:"YYYY-MM-DD HH:mm",outputFormat:"DD.MM.YYYY HH:mm",invalidPlaceholder:""} }, + {title: "[% lbl.version %]",field: "version",headerSort:true,resizable: false }, + {title: "[% lbl.stafftransferdate %]",field: "stafftransferdate",sorter:"datetime",resizable: false,formatter:"datetime",formatterParams:{inputFormat:"YYYY-MM-DD",outputFormat:"DD.MM.YYYY",invalidPlaceholder:""} }, + ] + }); + } +} \ No newline at end of file diff --git a/app/tmpl/module/index.tt b/app/tmpl/module/index.tt index e458bdd2..54caf26b 100644 --- a/app/tmpl/module/index.tt +++ b/app/tmpl/module/index.tt @@ -2,7 +2,7 @@
-
[% lbl.pot_long %]
+
[% lbl.pot_long %][% IF mode %][% " - ${mode}" %][% END %]
[% lbl.logout %]