@@ -, +, @@
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
@@ -1304,6 +1304,7 @@ CREATE TABLE `borrower_modifications` (
`privacy` int(11) DEFAULT NULL,
`extended_attributes` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`gdpr_proc_consent` datetime DEFAULT NULL COMMENT 'data processing consent',
+ `primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes',
PRIMARY KEY (`verification_token`(191),`borrowernumber`),
KEY `verification_token` (`verification_token`(191)),
KEY `borrowernumber` (`borrowernumber`)
@@ -1429,6 +1430,7 @@ CREATE TABLE `borrowers` (
`overdrive_auth_token` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'persist OverDrive auth token',
`anonymized` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'flag for data anonymization',
`autorenew_checkouts` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'flag for allowing auto-renewal',
+ `primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes',
PRIMARY KEY (`borrowernumber`),
UNIQUE KEY `cardnumber` (`cardnumber`),
UNIQUE KEY `userid` (`userid`),
@@ -2430,6 +2432,7 @@ CREATE TABLE `deletedborrowers` (
`overdrive_auth_token` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'persist OverDrive auth token',
`anonymized` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'flag for data anonymization',
`autorenew_checkouts` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'flag for allowing auto-renewal',
+ `primary_contact_method` varchar(45) DEFAULT NULL COMMENT 'useful for reporting purposes',
KEY `borrowernumber` (`borrowernumber`),
KEY `cardnumber` (`cardnumber`),
KEY `sms_provider_id` (`sms_provider_id`)
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
@@ -764,6 +764,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
@@ -326,6 +326,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
@@ -578,6 +578,65 @@
Required
[% 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
@@ -102,6 +102,20 @@ $template->param(
defaultCategory => $defaultCategory,
);
+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;
--