@@ -, +, @@ method --- .../borrowers_primary_contact_method.perl | 17 ++++++ installer/data/mysql/kohastructure.sql | 3 + .../prog/en/modules/members/memberentrygen.tt | 58 ++++++++++++++++++ .../prog/en/modules/members/moremember.tt | 20 +++++++ .../bootstrap/en/modules/opac-memberentry.tt | 59 +++++++++++++++++++ opac/opac-memberentry.pl | 14 +++++ 6 files changed, 171 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl --- a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl +++ a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.perl @@ -0,0 +1,17 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + if( !column_exists( 'borrowers', 'primary_contact_method' ) ) { + $dbh->do( "ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `anonymized`" ); + } + + if( !column_exists( 'deletedborrowers', 'primary_contact_method' ) ) { + $dbh->do( "ALTER TABLE `deletedborrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `anonymized`" ); + } + + if( !column_exists( 'borrower_modifications', 'primary_contact_method' ) ) { + $dbh->do( "ALTER TABLE `borrower_modifications` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL AFTER `gdpr_proc_consent`" ); + } + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 11879 - Add a new field to patron record: main contact method)\n"; +} --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -611,6 +611,7 @@ CREATE TABLE `deletedborrowers` ( -- stores data related to the patrons/borrower `overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token `anonymized` TINYINT(1) NOT NULL DEFAULT 0, -- flag for data anonymization `autorenew_checkouts` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal + `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes KEY borrowernumber (borrowernumber), KEY `cardnumber` (`cardnumber`), KEY `sms_provider_id` (`sms_provider_id`) @@ -1537,6 +1538,7 @@ CREATE TABLE `borrowers` ( -- this table includes information about your patrons `overdrive_auth_token` MEDIUMTEXT default NULL, -- persist OverDrive auth token `anonymized` TINYINT(1) NOT NULL DEFAULT 0, -- flag for data anonymization `autorenew_checkouts` TINYINT(1) NOT NULL DEFAULT 1, -- flag for allowing auto-renewal + `primary_contact_method` varchar(45) DEFAULT NULL, -- useful for reporting purposes UNIQUE KEY `cardnumber` (`cardnumber`), PRIMARY KEY `borrowernumber` (`borrowernumber`), KEY `categorycode` (`categorycode`), @@ -3541,6 +3543,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 @@ -740,6 +740,64 @@ legend:hover { [% END %] [% END #/UNLESS nofax %] + +
  • + [% IF mandatoryprimary_contact_method %] +
  • [% 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 @@ -310,6 +310,26 @@ [% END %] + + [% IF ( primary_contact_method ) %] +
  • + Main contact method: + [% SWITCH primary_contact_method %] + [% CASE 'phone' %] + Primary phone + [% CASE 'phonepro' %] + Secondary phone + [% CASE 'mobile' %] + Other phone + [% CASE 'email' %] + Primary email + [% CASE 'emailpro' %] + Secondary email + [% CASE 'fax' %] + Fax + [% END %] +
  • + [% 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 @@ -623,6 +623,65 @@ [% IF mandatory.defined('fax') %]Required[% END %] [% END %] + + [% UNLESS hidden.defined('primary_contact_method') %] +
  • + [% IF ( mandatory.defined('primary_contact_method') ) %] + + [% ELSE %] + + [% END %] + + + [% IF ( mandatory.defined('primary_contact_method') ) %]Required[% END %] +
  • + [% END %] --- a/opac/opac-memberentry.pl +++ a/opac/opac-memberentry.pl @@ -101,6 +101,20 @@ $template->param( 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; --