View | Details | Raw Unified | Return to bug 14924
Collapse All | Expand All

(-)a/members/memberentry.pl (-15 / +12 lines)
Lines 35-41 use C4::Members; Link Here
35
use C4::Members::Attributes;
35
use C4::Members::Attributes;
36
use C4::Members::AttributeTypes;
36
use C4::Members::AttributeTypes;
37
use C4::Koha;
37
use C4::Koha;
38
use C4::Dates qw/format_date format_date_in_iso/;
39
use C4::Log;
38
use C4::Log;
40
use C4::Letters;
39
use C4::Letters;
41
use C4::Branch; # GetBranches
40
use C4::Branch; # GetBranches
Lines 167-185 if ( $op eq 'insert' || $op eq 'modify' || $op eq 'save' || $op eq 'duplicate' ) Link Here
167
        }
166
        }
168
    }
167
    }
169
168
170
    my $dateobject = C4::Dates->new();
171
    my $syspref = $dateobject->regexp();		# same syspref format for all 3 dates
172
    my $iso     = $dateobject->regexp('iso');	#
173
    foreach (qw(dateenrolled dateexpiry dateofbirth)) {
169
    foreach (qw(dateenrolled dateexpiry dateofbirth)) {
174
        next unless exists $newdata{$_};
170
        next unless exists $newdata{$_};
175
        my $userdate = $newdata{$_} or next;
171
        my $userdate = $newdata{$_} or next;
176
        if ($userdate =~ /$syspref/) {
172
177
            $newdata{$_} = format_date_in_iso($userdate);	# if they match syspref format, then convert to ISO
173
        my $formatteddate = eval { output_pref({ dt => dt_from_string( $userdate ), dateformat => 'iso', dateonly => 1 } ); };
178
        } elsif ($userdate =~ /$iso/) {
174
        if ( $formatteddate ) {
179
            warn "Date $_ ($userdate) is already in ISO format";
175
            $newdata{$_} = $formatteddate;
180
        } else {
176
        } else {
181
            ($userdate eq '0000-00-00') and warn "Data error: $_ is '0000-00-00'";
177
            ($userdate eq '0000-00-00') and warn "Data error: $_ is '0000-00-00'";
182
            $template->param( "ERROR_$_" => 1 );	# else ERROR!
178
            $template->param( "ERROR_$_" => 1 );
183
            push(@errors,"ERROR_$_");
179
            push(@errors,"ERROR_$_");
184
        }
180
        }
185
    }
181
    }
Lines 360-366 if ($op eq 'save' || $op eq 'insert'){ Link Here
360
356
361
if ( ($op eq 'modify' || $op eq 'insert' || $op eq 'save'|| $op eq 'duplicate') and ($step == 0 or $step == 3 )){
357
if ( ($op eq 'modify' || $op eq 'insert' || $op eq 'save'|| $op eq 'duplicate') and ($step == 0 or $step == 3 )){
362
    unless ($newdata{'dateexpiry'}){
358
    unless ($newdata{'dateexpiry'}){
363
        my $arg2 = $newdata{'dateenrolled'} || C4::Dates->today('iso');
359
        my $arg2 = $newdata{'dateenrolled'} || output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
364
        $newdata{'dateexpiry'} = GetExpiryDate($newdata{'categorycode'},$arg2);
360
        $newdata{'dateexpiry'} = GetExpiryDate($newdata{'categorycode'},$arg2);
365
    }
361
    }
366
}
362
}
Lines 643-652 if ($nok) { Link Here
643
  #Formatting data for display    
639
  #Formatting data for display    
644
  
640
  
645
if (!defined($data{'dateenrolled'}) or $data{'dateenrolled'} eq ''){
641
if (!defined($data{'dateenrolled'}) or $data{'dateenrolled'} eq ''){
646
  $data{'dateenrolled'}=C4::Dates->today('iso');
642
  $data{'dateenrolled'} = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
647
}
643
}
648
if ( $op eq 'duplicate' ) {
644
if ( $op eq 'duplicate' ) {
649
    $data{'dateenrolled'} = C4::Dates->today('iso');
645
    $data{'dateenrolled'} = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
650
    $data{'dateexpiry'} = GetExpiryDate( $data{'categorycode'}, $data{'dateenrolled'} );
646
    $data{'dateexpiry'} = GetExpiryDate( $data{'categorycode'}, $data{'dateenrolled'} );
651
}
647
}
652
if (C4::Context->preference('uppercasesurnames')) {
648
if (C4::Context->preference('uppercasesurnames')) {
Lines 655-662 if (C4::Context->preference('uppercasesurnames')) { Link Here
655
}
651
}
656
652
657
foreach (qw(dateenrolled dateexpiry dateofbirth)) {
653
foreach (qw(dateenrolled dateexpiry dateofbirth)) {
658
	$data{$_} = format_date($data{$_});	# back to syspref for display
654
    if ( $data{$_} ) {
659
	$template->param( $_ => $data{$_});
655
       $data{$_} = eval { output_pref({ dt => dt_from_string( $data{$_} ), dateonly => 1 } ); };  # back to syspref for display
656
    }
657
    $template->param( $_ => $data{$_});
660
}
658
}
661
659
662
if (C4::Context->preference('ExtendedPatronAttributes')) {
660
if (C4::Context->preference('ExtendedPatronAttributes')) {
663
- 

Return to bug 14924