Changeset 1612 for trunk/LATMOS-Accounts/lib/LATMOS/Accounts
- Timestamp:
- 01/08/16 17:10:13 (9 years ago)
- 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 315 315 my $endemploy = $currentemployment 316 316 ? $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' ); 319 322 320 323 if ($expire != $nextexpire) { … … 330 333 } 331 334 332 if ($currentemployment ne $self->id) { 335 if (!$currentemployment) { 336 return _resetUser($user); 337 } elsif ($currentemployment ne $self->id) { 333 338 # No sync to do if this employment is not currently applied 334 339 return; … … 356 361 return 1; 357 362 } 363 } 364 365 366 sub _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; 358 386 } 359 387 -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm
r1592 r1612 1386 1386 $end->set_time_zone( DateTime::TimeZone->new( name => 'local' ) ); 1387 1387 $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 }1392 1388 } 1393 1389 $listold->finish; -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Employment.pm
r1576 r1612 67 67 if ($users{$user}) { 68 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)); 69 if (LATMOS::Accounts::Bases::Sql::Employment::_resetUser($ouser)) { 82 70 $self->{_base}->commit; 83 71 } else {
Note: See TracChangeset
for help on using the changeset viewer.