Ignore:
Timestamp:
12/31/15 14:31:45 (9 years ago)
Author:
nanardon
Message:

Employment task reset status for unemployed user

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

Legend:

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

    r1566 r1576  
    4444 
    4545sub _has_extended_attributes { 1 } 
     46 
     47sub _reported_atributes { qw(company contratType department endcircuit) } 
    4648 
    4749sub _get_attr_schema { 
     
    317319        appliedEmployement => $self->id, 
    318320    ); 
    319     foreach my $attr (qw(company contratType department managerContact endcircuit)) { 
     321    foreach my $attr (_reported_atributes(), 'managerContact') { 
    320322        my $uval = $user->get_attributes($attr) || ''; 
    321323        my $cval = $self->get_attributes($attr) || ''; 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Employment.pm

    r1500 r1576  
    77use LATMOS::Accounts::Log; 
    88use LATMOS::Accounts::Utils; 
     9use LATMOS::Accounts::Bases::Sql::Employment; 
    910 
    1011=head1 NAME 
     
    5859            $self->{_base}->commit; 
    5960        } 
     61        delete($users{$user}); 
     62    } 
     63 
     64    # Change has old employment => nothing 
     65    # if user is still active, expired account remains untouched 
     66    foreach my $user ($self->{_base}->search_objects('user', 'active=1')) { 
     67        if ($users{$user}) { 
     68            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)); 
     82                $self->{_base}->commit; 
     83            } else { 
     84                $self->{_base}->rollback; 
     85            } 
     86        } 
    6087    } 
    6188 
Note: See TracChangeset for help on using the changeset viewer.