@@ -, +, @@ informations. --- .../borrowers_primary_contact_method.sql | 3 + installer/data/mysql/kohastructure.sql | 3 + .../prog/en/modules/members/memberentrygen.tt | 63 ++++++++++++++++++- .../prog/en/modules/members/moremember.tt | 15 +++++ .../bootstrap/en/modules/opac-memberentry.tt | 50 +++++++++++++++ members/memberentry.pl | 13 +++- members/moremember.pl | 4 ++ opac/opac-memberentry.pl | 13 ++++ 8 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql --- a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql +++ a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql @@ -0,0 +1,3 @@ +ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `lastseen`; +ALTER TABLE `deletedborrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `overdrive_auth_token`; +ALTER TABLE `borrower_modifications` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `extended_attributes`; --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -590,6 +590,7 @@ CREATE TABLE `deletedborrowers` ( -- stores data related to the patrons/borrower `login_attempts` int(4) default 0, -- number of failed login attemps `overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token `anonymized` TINYINT(1) NOT NULL DEFAULT 0, -- flag for data anonymization + `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes KEY borrowernumber (borrowernumber), KEY `cardnumber` (`cardnumber`), KEY `sms_provider_id` (`sms_provider_id`) @@ -1582,6 +1583,7 @@ CREATE TABLE `borrowers` ( -- this table includes information about your patrons `login_attempts` int(4) default 0, -- number of failed login attemps `overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token `anonymized` TINYINT(1) NOT NULL DEFAULT 0, -- flag for data anonymization + `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes UNIQUE KEY `cardnumber` (`cardnumber`), PRIMARY KEY `borrowernumber` (`borrowernumber`), KEY `categorycode` (`categorycode`), @@ -3409,6 +3411,7 @@ CREATE TABLE IF NOT EXISTS `borrower_modifications` ( `privacy` int(11) DEFAULT NULL, `extended_attributes` MEDIUMTEXT DEFAULT NULL, `gdpr_proc_consent` datetime, -- data processing consent + `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes PRIMARY KEY (`verification_token` (191),`borrowernumber`), KEY `verification_token` (`verification_token` (191)), KEY `borrowernumber` (`borrowernumber`) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -458,6 +458,16 @@ [% UNLESS nophone && nophonepro && nomobile && noemail && noemailpro && nofax %]
Contact
    + [% UNLESS nophone %] +
  1. + [% IF ( mandatoryphone ) %] +
  2. @@ -580,8 +590,59 @@ [% IF ( mandatoryfax ) %]Required[% END %]
  3. [% END %] +
  4. + + +
-
+ + [%END # hide fieldset %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -279,6 +279,21 @@ [% END %] + + [% SWITCH primary_contact_method %] + [% CASE 'phone' %] +
  • Main contact method: Phone
  • + [% CASE 'phonepro' %] +
  • Main contact method: Secondary phone
  • + [% CASE 'mobile' %] +
  • Main contact method: Other Phone
  • + [% CASE 'email' %] +
  • Main contact method: Primary email
  • + [% CASE 'emailpro' %] +
  • Main contact method: Secondary email
  • + [% CASE 'fax' %] +
  • Main contact method: Fax
  • + [% END %] [% # /div.rows %] [% # /div#patron-information %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt @@ -581,6 +581,56 @@ [% IF mandatory.defined('fax') %]Required[% END %] [% END %] +
  • + + +
  • [% END %] --- a/members/memberentry.pl +++ a/members/memberentry.pl @@ -638,6 +638,18 @@ $template->param( typeloop => \@typeloop, no_categories => $no_categories, ); +if($no_categories){ $no_add = 1; } + +my @contactprincipalloop; +my @fieldArray = qw(phone phonepro mobile email emailpro fax); +foreach my $field (@fieldArray) { + if ( !(grep { $field eq $_ } @field_check)){ + push @contactprincipalloop,{ + 'currentis_' . $field => 1 + }; + } +} +$template->param('contactprincipalloop' => \@contactprincipalloop); my $cities = Koha::Cities->search( {}, { order_by => 'city_name' } ); my $roadtypes = C4::Koha::GetAuthorisedValues( 'ROADTYPE' ); @@ -645,7 +657,6 @@ $template->param( roadtypes => $roadtypes, cities => $cities, ); - my $default_borrowertitle = ''; unless ( $op eq 'duplicate' ) { $default_borrowertitle=$data{'title'} } --- a/members/moremember.pl +++ a/members/moremember.pl @@ -204,6 +204,10 @@ $template->param( fines => $patron->account->balance, translated_language => $translated_language, detailview => 1, + borrowernumber => $borrowernumber, + othernames => $data->{'othernames'}, + categoryname => $patron->category->description, + primary_contact_method => $data->{'primary_contact_method'}, was_renewed => scalar $input->param('was_renewed') ? 1 : 0, $category_type => 1, # [% IF ( I ) %] = institutional/organisation housebound_role => scalar $patron->housebound_role, --- a/opac/opac-memberentry.pl +++ a/opac/opac-memberentry.pl @@ -94,6 +94,19 @@ $template->param( libraries => \@libraries, OPACPatronDetails => C4::Context->preference('OPACPatronDetails'), ); +my $check_BorrowerMandatoryField=C4::Context->preference("BorrowerMandatoryField"); + my @field_check=split(/\|/,$check_BorrowerMandatoryField); + my @contactprincipalloop; + my @fieldArray = qw(phone phonepro mobile email emailpro fax); + foreach my $field (@fieldArray) { + if ( !(grep { $field eq $_ } @field_check)){ + push @contactprincipalloop,{ + 'currentis_' . $field => 1 + }; + } + } + + $template->param('contactprincipalloop' => \@contactprincipalloop); my $attributes = ParsePatronAttributes($borrowernumber,$cgi); my $conflicting_attribute = 0; --