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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref (-1 / +1 lines)
Lines 11-17 Patrons: Link Here
11
           choices:
11
           choices:
12
               yes: Send
12
               yes: Send
13
               no: "Don't send"
13
               no: "Don't send"
14
         - an email to newly created patrons with their account details.
14
         - an email to newly created patrons with their account details. When enabled, this pref also allows staff to resend account details when modifying a patron.
15
     -
15
     -
16
         - "Use"
16
         - "Use"
17
         - pref: AutoEmailPrimaryAddress
17
         - pref: AutoEmailPrimaryAddress
(-)a/members/memberentry.pl (-34 / +46 lines)
Lines 76-81 my $cardnumber = $input->param('cardnumber'); Link Here
76
my $check_member   = $input->param('check_member');
76
my $check_member   = $input->param('check_member');
77
my $nodouble       = $input->param('nodouble');
77
my $nodouble       = $input->param('nodouble');
78
my $duplicate      = $input->param('duplicate');
78
my $duplicate      = $input->param('duplicate');
79
my $mailacctdetails= $input->param('mailacctdetails') // 0;
80
79
$nodouble = 1 if ($op eq 'modify' or $op eq 'duplicate');    # FIXME hack to represent fact that if we're
81
$nodouble = 1 if ($op eq 'modify' or $op eq 'duplicate');    # FIXME hack to represent fact that if we're
80
                                     # modifying an existing patron, it ipso facto
82
                                     # modifying an existing patron, it ipso facto
81
                                     # isn't a duplicate.  Marking FIXME because this
83
                                     # isn't a duplicate.  Marking FIXME because this
Lines 376-414 if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ Link Here
376
        $borrowernumber = &AddMember(%newdata);
378
        $borrowernumber = &AddMember(%newdata);
377
        $newdata{'borrowernumber'} = $borrowernumber;
379
        $newdata{'borrowernumber'} = $borrowernumber;
378
380
379
        # If 'AutoEmailOpacUser' syspref is on, email user their account details from the 'notice' that matches the user's branchcode.
381
        SendAutoEmail( \%newdata, $template ); # optionally send acct details
380
        if ( C4::Context->preference("AutoEmailOpacUser") == 1 && $newdata{'userid'}  && $newdata{'password'}) {
381
            #look for defined primary email address, if blank - attempt to use borr.email and borr.emailpro instead
382
            my $emailaddr;
383
            if  (C4::Context->preference("AutoEmailPrimaryAddress") ne 'OFF'  && 
384
                $newdata{C4::Context->preference("AutoEmailPrimaryAddress")} =~  /\w\@\w/ ) {
385
                $emailaddr =   $newdata{C4::Context->preference("AutoEmailPrimaryAddress")} 
386
            } 
387
            elsif ($newdata{email} =~ /\w\@\w/) {
388
                $emailaddr = $newdata{email} 
389
            }
390
            elsif ($newdata{emailpro} =~ /\w\@\w/) {
391
                $emailaddr = $newdata{emailpro} 
392
            }
393
            elsif ($newdata{B_email} =~ /\w\@\w/) {
394
                $emailaddr = $newdata{B_email} 
395
            }
396
            # if we manage to find a valid email address, send notice 
397
            if ($emailaddr) {
398
                $newdata{emailaddr} = $emailaddr;
399
                my $err;
400
                eval {
401
                    $err = SendAlerts ( 'members', \%newdata, "ACCTDETAILS" );
402
                };
403
                if ( $@ ) {
404
                    $template->param(error_alert => $@);
405
                } elsif ( ref($err) eq "HASH" && defined $err->{error} and $err->{error} eq "no_email" ) {
406
                    $template->{VARS}->{'error_alert'} = "no_email";
407
                } else {
408
                    $template->{VARS}->{'info_alert'} = 1;
409
                }
410
            }
411
        }
412
382
413
        if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) {
383
        if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) {
414
            C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes);
384
            C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes);
Lines 425-430 if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ Link Here
425
                                                                # updating any columns in the borrowers table,
395
                                                                # updating any columns in the borrowers table,
426
                                                                # which can happen if we're only editing the
396
                                                                # which can happen if we're only editing the
427
                                                                # patron attributes or messaging preferences sections
397
                                                                # patron attributes or messaging preferences sections
398
399
        SendAutoEmail( \%newdata, $template ) if $mailacctdetails; # optionally send acct details, if the checkbox was checked
428
        if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) {
400
        if (C4::Context->preference('ExtendedPatronAttributes') and $input->param('setting_extended_patron_attributes')) {
429
            C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes);
401
            C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes);
430
        }
402
        }
Lines 812-817 sub patron_attributes_form { Link Here
812
784
813
}
785
}
814
786
787
sub SendAutoEmail { #optionally send account detail notice
788
    my ( $dataref, $template ) = @_;
789
    my %newdata = %$dataref;
790
791
    # check AutoEmailOpacUser syspref first
792
    return if !C4::Context->preference("AutoEmailOpacUser");
793
    # no mail too if no userid or password
794
    return if !$newdata{'userid'} || !$newdata{'password'};
795
796
            #look for defined primary email address, if blank - attempt to use borr.email and borr.emailpro instead
797
            my $emailaddr;
798
            if  (C4::Context->preference("AutoEmailPrimaryAddress") ne 'OFF' &&
799
                $newdata{C4::Context->preference("AutoEmailPrimaryAddress")} =~  /\w\@\w/ ) {
800
                $emailaddr =   $newdata{C4::Context->preference("AutoEmailPrimaryAddress")}
801
            }
802
            elsif ($newdata{email} =~ /\w\@\w/) {
803
                $emailaddr = $newdata{email};
804
            }
805
            elsif ($newdata{emailpro} =~ /\w\@\w/) {
806
                $emailaddr = $newdata{emailpro};
807
            }
808
            elsif ($newdata{B_email} =~ /\w\@\w/) {
809
                $emailaddr = $newdata{B_email};
810
            }
811
            # if we manage to find a valid email address, send notice
812
            if ($emailaddr) {
813
                $newdata{emailaddr} = $emailaddr;
814
                my $err;
815
                eval {
816
                    $err = SendAlerts ( 'members', \%newdata, "ACCTDETAILS" );
817
                };
818
                if ( $@ ) {
819
                    $template->param(error_alert => $@);
820
                } elsif ( ref($err) eq "HASH" && defined $err->{error} and $err->{error} eq "no_email" ) {
821
                    $template->{VARS}->{'error_alert'} = "no_email";
822
                } else {
823
                    $template->{VARS}->{'info_alert'} = 1;
824
                }
825
            }
826
}
827
815
# Local Variables:
828
# Local Variables:
816
# tab-width: 8
829
# tab-width: 8
817
# End:
830
# End:
818
- 

Return to bug 13096