Ignore:
Timestamp:
11/08/17 14:46:00 (7 years ago)
Author:
nanardon
Message:

Add options to date limit

Location:
trunk/LATMOS-Accounts-Web
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Summary/ListEmployments.pm

    r2121 r2122  
    2727    my ( $self, $c ) = @_; 
    2828 
    29     my ($min, $max) = $c->model('Accounts')->db->getEmploymentRange; 
     29    my $base = $c->model('Accounts')->db; 
     30 
     31    my ($min, $max) = $base->getEmploymentRange; 
    3032    $c->stash->{minE} = $min 
    3133        ? DateTime->from_epoch( epoch => str2time( $min ) ) 
     
    4951    ); 
    5052 
     53    my %atstart = map { $_ => 1 } $base->search_objects( 
     54        'employment', sprintf('firstday>=%s', $c->stash->{min}->ymd('-')) 
     55    ); 
     56    my %atend = map { $_ => 1 } $base->search_objects( 
     57        'employment', sprintf('lastday<=%s', $c->stash->{max}->ymd('-')) 
     58    ); 
     59 
    5160    if (my $jtype = $c->req->param('jtype')) { 
    5261        push(@search, 'contratType.sutype=' . $jtype); 
     
    5968 
    6069    foreach my $attr (qw(sn givenName description)) { 
    61         my %res = $c->model('Accounts')->db->attributes_summary_by_object('user', $attr); 
     70        my %res = $base->attributes_summary_by_object('user', $attr); 
    6271        $users{$_}{$attr} = $res{$_}->[0] foreach (keys %res); 
    6372    } 
     
    6877    } 
    6978 
    70     my %objects = map { $_ => {} } $c->model('Accounts')->db->search_objects('employment', @search); 
     79    my %inclusiveObjects = map { $_ => {} } $base->search_objects('employment', @search); 
     80    my %objects = (); 
     81    my $atstart = $c->req->param('atstart'); 
     82    my $atend =   $c->req->param('atend'); 
     83 
     84    foreach my $emp (keys %inclusiveObjects) { 
     85        if ($atstart) { 
     86            $atstart{$emp} or next; 
     87        } 
     88        if ($atend) { 
     89            $atend{$emp} or next; 
     90        } 
     91        $objects{$emp} = $inclusiveObjects{$emp}; 
     92    } 
    7193 
    7294    my @attrs = qw(user firstday lastday contratType department); 
    7395 
    7496    foreach my $attr (@attrs) { 
    75         foreach (keys %objects) { 
    76             $objects{$_}{$attr} = []; 
    77         } 
    7897        my %res = $c->model('Accounts')->db->attributes_summary_by_object('employment', $attr); 
    7998        foreach my $obj (keys %res) { 
    8099            exists($objects{$obj}) or next; 
    81             $objects{$obj}{$attr} = $res{$obj}; 
     100            $objects{$obj}{$attr} = $res{$obj}->[0]; 
    82101        } 
    83102    } 
    84103 
    85     $c->stash->{employments} = [ sort { $a->{user}[0] cmp $b->{user}[0] } values %objects ]; 
     104    foreach (keys %objects) { 
     105        $objects{$_}{username} = $c->stash->{users}{ $objects{$_}{user} }; 
     106        $objects{$_}{username} = $objects{$_}{user}; 
     107    } 
     108 
     109    $c->stash->{employments} = [ sort { $a->{user} cmp $b->{user} } values %objects ]; 
    86110} 
    87111 
  • trunk/LATMOS-Accounts-Web/root/html/summary/listemployments/index.tt

    r2121 r2122  
    55<div id="slider-range"></div> 
    66</div> 
     7<input name=atstart id=atstart value=yes 
     8    type=checkbox [% "checked" IF c.req.param('atstart') %]> 
     9<label for=atstart>Uniquement les statuts commençant pendant</label> 
     10<br> 
     11<input name=atend id=atend value=yes 
     12    type=checkbox [% "checked" IF c.req.param('atend') %]> 
     13<label for=atend>Uniquement les statuts finissant pendant</label> 
     14<br> 
    715 
    816<select name=contratType multiple> 
     
    2937 
    3038<tr> 
    31 [% u = emp.user.0 %] 
     39[% u = emp.user %] 
    3240<td> 
    3341[% IF prev != u %] 
    34 [% users.$u || u | html %] 
     42[% emp.username || u | html %] 
    3543[% END %] 
    3644</td> 
    37 <td>[% emp.firstday.0 | html %]</td> 
    38 <td>[% emp.lastday.0 | html %]</td> 
    39 <td>[% emp.contratType.0 | html %]</td> 
    40 <td>[% emp.department.0 | html %]</td> 
     45<td>[% emp.firstday | html %]</td> 
     46<td>[% emp.lastday | html %]</td> 
     47<td>[% emp.contratType | html %]</td> 
     48<td>[% emp.department | html %]</td> 
    4149 
    4250</tr> 
Note: See TracChangeset for help on using the changeset viewer.