Ignore:
Timestamp:
11/08/17 22:19:09 (7 years ago)
Author:
nanardon
Message:

Add option to merge consecutive employment

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

Legend:

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

    r2122 r2123  
    102102    } 
    103103 
     104    my @array = (); 
     105 
     106    if ($c->req->param('merge')) { 
     107        my $employmentDelay = ( $base->config('employment_delay') || 0 ) + 1; 
     108 
     109        foreach (sort { $a->{user} cmp $b->{user} || $a->{firstday} cmp $b->{firstday} } values %objects) { 
     110            if (my $prev = $array[-1]) { 
     111                if ($prev->{user} eq $_->{user} 
     112                    && $prev->{contratType} eq $_->{contratType}) { 
     113 
     114                    my $pEnd = DateTime->from_epoch(epoch => str2time($prev->{lastday})); 
     115 
     116                    $pEnd->add(days => $employmentDelay); 
     117                    if ($pEnd->ymd('-') ge $_->{firstday}) { 
     118                        $prev->{lastday} = $_->{lastday}; 
     119                        next; 
     120                    } 
     121                } 
     122            } 
     123 
     124            push(@array, $_); 
     125        } 
     126    } else { 
     127        @array = values %objects; 
     128    } 
     129 
    104130    foreach (keys %objects) { 
    105131        $objects{$_}{username} = $c->stash->{users}{ $objects{$_}{user} }; 
    106         $objects{$_}{username} = $objects{$_}{user}; 
    107132    } 
    108133 
    109     $c->stash->{employments} = [ sort { $a->{user} cmp $b->{user} } values %objects ]; 
     134    $c->stash->{employments} = [ sort { $a->{user} cmp $b->{user} || $b->{firstday} cmp $a->{firstday} } @array ]; 
    110135} 
    111136 
  • trunk/LATMOS-Accounts-Web/root/html/summary/listemployments/index.tt

    r2122 r2123  
    1212    type=checkbox [% "checked" IF c.req.param('atend') %]> 
    1313<label for=atend>Uniquement les statuts finissant pendant</label> 
     14<br> 
     15<input name=merge id=merge value=yes 
     16    type=checkbox [% "checked" IF c.req.param('merge') %]> 
     17<label for=merge>Fusionner les statuts successifs</label> 
    1418<br> 
    1519 
Note: See TracChangeset for help on using the changeset viewer.