Subversion Repositories wimsdev

Rev

Rev 12947 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 12947 Rev 17437
Line 2... Line 2...
2
use strict; use warnings;
2
use strict; use warnings;
3
 
3
 
-
 
4
# latency in second (calcul of worktime is min(latency,timescore-timenew)
-
 
5
my $latency='900';
4
use Time::Local;
6
use Time::Local;
5
my ($OUT, $SHEET);
7
my ($OUT, $SHEET);
6
my $SH='';my $OPTION='';
8
my $SH='';my $OPTION='';
7
my $LIMIT='9';
9
my $LIMIT='9';
8
push (@ARGV,split(' ', $ENV{'wims_exec_parm'})) if ($ENV{'wims_exec_parm'});
10
push (@ARGV,split(' ', $ENV{'wims_exec_parm'})) if ($ENV{'wims_exec_parm'});
Line 42... Line 44...
42
 if ($_[4] eq 'score' || $_[4] =~ /new|resume/ || (!$lastdate{$_[2]}) ) {
44
 if ($_[4] eq 'score' || $_[4] =~ /new|resume/ || (!$lastdate{$_[2]}) ) {
43
  if (!($session eq $_[1])){ $nbsessions ++; $session=$_[1]; };
45
  if (!($session eq $_[1])){ $nbsessions ++; $session=$_[1]; };
44
  $dattime=~/([0-9]+)\.([0-9:]+)/;
46
  $dattime=~/([0-9]+)\.([0-9:]+)/;
45
  my ($date, $time) = ($1,$2);
47
  my ($date, $time) = ($1,$2);
46
  $date =~/([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])/;
48
  $date =~/([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])/;
47
  if ($_[4] =~ /new|resume/) {
-
 
48
    $nbnew ++;
-
 
49
    if (($_[2]=~ /\b($SH)\b/ || !($SH))) { $newbydaysh{$_[2]}->{$date} ++ ; $newbyday{$date} ++}
-
 
50
## n'a de sens que s'il y a une seule sheet
-
 
51
    if ($_[2]=~ /\b$SH0\b/){ $newbydayex{$_[3]}->{$date} ++;}
-
 
52
  next};
-
 
53
  $seconds{$date}=timelocal(0,0,0,$3,$2-1,$1);
49
  $seconds{$date}=timelocal(0,0,0,$3,$2-1,$1);
54
  if (($_[2]=~ /\b($SH)\b/ || !($SH)) && ($_[4] eq 'score')) {
50
  if (($_[2]=~ /\b($SH)\b/ || !($SH)) && ($_[4] eq 'score')) {
55
    $exobyday{$date} ++ ;
51
    $exobyday{$date} ++ ;
56
    $nbnew --;
52
    $nbnew --;
57
    $exobydaysh{$_[2]}->{$date} ++ ;
53
    $exobydaysh{$_[2]}->{$date} ++ ;
58
    if ($_[5] >= $LIMIT){
54
    if ($_[5] >= $LIMIT){
59
      $scorebyday{$date} ++ ;
55
      $scorebyday{$date} ++ ;
60
      $goodbyday{$date} .= (($goodbyday{$date})? ',':'') . $exobyday{$date};
56
      $goodbyday{$date} .= (($goodbyday{$date})? ',':'') . $exobyday{$date};
61
      $scorebydaysh{$_[2]}->{$date} ++;
57
      $scorebydaysh{$_[2]}->{$date} ++;
62
      $goodbydaysh{$_[2]}->{$date} .= (($goodbydaysh{$_[2]}{$date})? ',':'') . $exobydaysh{$_[2]}->{$date};
58
      $goodbydaysh{$_[2]}->{$date} .= (($goodbydaysh{$_[2]}{$date})? ',':'') . $exobydaysh{$_[2]}->{$date};
63
    }
59
    }
64
## n'a de sens que s'il y a une seule sheet
60
## n'a de sens que s'il y a une seule sheet
65
    if ($_[2]=~ /\b$SH0\b/){
61
    if ($_[2]=~ /\b$SH0\b/){
66
      $exobydayex{$_[3]}->{$date} ++;
62
      $exobydayex{$_[3]}->{$date} ++;
67
      if ($_[5] >= $LIMIT){
63
      if ($_[5] >= $LIMIT){
68
        $scorebydayex{$_[3]}->{$date} ++;
64
        $scorebydayex{$_[3]}->{$date} ++;
69
        $goodbydayex{$_[3]}->{$date} .= (($goodbydayex{$_[3]}{$date})? ',':'') . $exobydayex{$_[3]}->{$date};
65
        $goodbydayex{$_[3]}->{$date} .= (($goodbydayex{$_[3]}{$date})? ',':'') . $exobydayex{$_[3]}->{$date};
70
      }
66
      }
71
    }
67
    }
72
  }
68
  }
73
  my ($annee, $mois, $jour)=($1,$2,$3);
69
  my ($annee, $mois, $jour)=($1,$2,$3);
74
  $date=converttime($time,$date);
70
  $date=converttime($time,$date);
-
 
71
  if ($_[4] =~ /new|resume/) {
-
 
72
    $nbnew ++;
-
 
73
    $lastdate{$_[2]}=$date;
-
 
74
    if (($_[2]=~ /\b($SH)\b/ || !($SH))) { $newbydaysh{$_[2]}->{$date} ++ ; $newbyday{$date} ++}
-
 
75
## n'a de sens que s'il y a une seule sheet
-
 
76
    if ($_[2]=~ /\b$SH0\b/){ $newbydayex{$_[3]}->{$date} ++;}
-
 
77
    if ( !$duree{$_[2]} ) {$duree{$_[2]}= 0;};
-
 
78
  next};
75
 
79
 
76
  if(!$lastdate{$_[2]} && $_[4] eq 'new'){#on initialise s'il n'avait jamais fait cette feuille :
80
  if(!$lastdate{$_[2]} && $_[4] eq 'new'){#on initialise s'il n'avait jamais fait cette feuille :
-
 
81
# en fait on passe jamais ici car le cmd=new est detecté avant et il y a une sortie donc à supprimer
77
      $lastdate{$_[2]}=$date;
82
      $lastdate{$_[2]}=$date;
78
      $duree{$_[2]}= 0;
83
      $duree{$_[2]}= 0;
79
      next;
84
      next;
80
   } else {
85
   } else {
81
#on juge que s'il y a moins de 15mn entre deux dates consecutives, le bonhomme a travaille pendant ce temps
86
#on juge que s'il y a moins de $latency entre deux dates consecutives, le bonhomme a travaille pendant ce temps
82
        if ($lastdate{$_[2]} && $date-$lastdate{$_[2]}<900){
87
        if ($lastdate{$_[2]} && $date-$lastdate{$_[2]}<$latency){
83
           $duree{$_[2]} += ($date-$lastdate{$_[2]});
88
           $duree{$_[2]} += ($date-$lastdate{$_[2]});
84
        } else { }
89
        } else
-
 
90
        {
-
 
91
        $duree{$_[2]} += $latency;
-
 
92
        }
85
          $lastdate{$_[2]}=$date;
93
          $lastdate{$_[2]}=$date;
-
 
94
#          
86
  }
95
  }
87
  if ($_[4] eq 'score') {;
96
  if ($_[4] eq 'score') {;
88
    $score{$_[2]} ++;
97
    $score{$_[2]} ++;
89
  };
98
  };
90
 };
99
 };