Changeset 1576 for trunk


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
Files:
3 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 
  • trunk/LATMOS-Accounts/man/man8/latmos-accounts-base-sql.pod

    r1528 r1576  
    113113=back 
    114114 
     115When active users become out of any employment all managed attribute are unset 
     116(except the expire attribute). 
     117 
     118A default value for each of this attribute can be set in configuration using 
     119parameter in form C<unemployment.ATTRIBUTE>. For example 
     120C<unemployment.contratType=external> will set any C<contratType> to C<external> 
     121when no employment apply to user anymore. 
     122 
     123Only active accounts are modified in this way. 
     124 
    115125=head3 User endEmployment 
    116126 
Note: See TracChangeset for help on using the changeset viewer.