@@ -, +, @@
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') ) %]
+ Main contact method:
+ [% ELSE %]
+ Main contact method:
+ [% 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;
--