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

Add options to date limit

File:
1 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 
Note: See TracChangeset for help on using the changeset viewer.