Changeset 1612 for trunk


Ignore:
Timestamp:
01/08/16 17:10:13 (9 years ago)
Author:
nanardon
Message:

Account with employement not yet started are by default expired

Location:
trunk/LATMOS-Accounts/lib/LATMOS/Accounts
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Employment.pm

    r1590 r1612  
    315315        my $endemploy = $currentemployment 
    316316            ? $user->_get_attributes("_$expireOn") 
    317             : $user->_get_attributes('_endLastEmployment'); 
    318         my $nextexpire = str2time($endemploy || '1970-01-01T00:00:00'); 
     317            : ($self->base->config('unemployed_expire') eq 'no' 
     318                ? undef 
     319                : $user->_get_attributes('create')); 
     320 
     321        my $nextexpire = str2time( $endemploy || '1970-01-01T00:00:00' ); 
    319322 
    320323        if ($expire != $nextexpire) { 
     
    330333    } 
    331334 
    332     if ($currentemployment ne $self->id) { 
     335    if (!$currentemployment) { 
     336        return _resetUser($user); 
     337    } elsif ($currentemployment ne $self->id) { 
    333338        # No sync to do if this employment is not currently applied 
    334339        return; 
     
    356361        return 1; 
    357362    } 
     363} 
     364 
     365 
     366sub _resetUser { 
     367    my ($ouser) = @_; 
     368 
     369    my %changes = ( 
     370        appliedEmployement => undef, 
     371    ); 
     372    foreach my $attr (LATMOS::Accounts::Bases::Sql::Employment::_reported_atributes) { 
     373        my $default = $ouser->base->config("unemployment.$attr") || ''; 
     374        my $old = $ouser->_get_attributes($attr) || ''; 
     375        if ($old ne $default) { 
     376            $changes{$attr} = $default || undef; 
     377        } 
     378    } 
     379    if ($ouser->set_fields(%changes)) { 
     380        $ouser->base->log(LA_NOTICE, "Updating user %s to match unemployment", $ouser->id); 
     381        $ouser->ReportChange('Update', 'Update %s to match unemployment', join(', ', sort keys %changes)); 
     382        return 1; 
     383    } 
     384 
     385    return 0; 
    358386} 
    359387 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r1592 r1612  
    13861386            $end->set_time_zone( DateTime::TimeZone->new( name => 'local' ) ); 
    13871387            $end->add(hours => 23, minutes => 59, seconds => 59); 
    1388         } else { 
    1389             if (my $default = $self->base->config('unemployed_expire')) { 
    1390                 $end = DateTime->from_epoch(epoch => str2time($default)); 
    1391             } 
    13921388        } 
    13931389        $listold->finish; 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Employment.pm

    r1576 r1612  
    6767        if ($users{$user}) { 
    6868            my $ouser = $self->{_base}->get_object('user', $user); 
    69             my %changes = ( 
    70                 appliedEmployement => undef, 
    71             ); 
    72             foreach my $attr (LATMOS::Accounts::Bases::Sql::Employment::_reported_atributes) { 
    73                 my $default = $self->{_base}->config("unemployment.$attr") || ''; 
    74                 my $old = $ouser->_get_attributes($attr) || ''; 
    75                 if ($old ne $default) { 
    76                     $changes{$attr} = $default || undef; 
    77                 } 
    78             } 
    79             if ($ouser->set_fields(%changes)) { 
    80                 $self->{_base}->log(LA_NOTICE, "Updating user $user to match unemployment"); 
    81                 $ouser->ReportChange('Update', 'Update %s to match unemployment', join(', ', sort keys %changes)); 
     69            if (LATMOS::Accounts::Bases::Sql::Employment::_resetUser($ouser)) { 
    8270                $self->{_base}->commit; 
    8371            } else { 
Note: See TracChangeset for help on using the changeset viewer.