From 5ee6c6d071b627cb8e538aac781347ee54140933 Mon Sep 17 00:00:00 2001
From: simith <simith@inlibro.com>
Date: Wed, 17 Dec 2014 09:16:32 -0500
Subject: [PATCH] Bug 11879 - Fix syspref BorrowerUnwantedField

How I tested:
Apply 1st patch
Apply this patch
Edit syspref BorrowerUnwantedField to exclude fields
Edit patron's contact information
Make sure that fields do not longer appear in drop down for Main contact

Wors as expected

http://bugs.koha-community.org/show_bug.cgi?id=11879
Signed-off-by: Marc Veron <veron@veron.ch>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
---
 .../borrowers_primary_contact_method.sql           |    1 +
 installer/data/mysql/updatedatabase.pl             |    7 +-
 .../prog/en/modules/members/memberentrygen.tt      |   68 ++++++++++++--------
 members/memberentry.pl                             |   12 ++++
 4 files changed, 55 insertions(+), 33 deletions(-)
 create mode 100644 installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql

diff --git a/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql
new file mode 100644
index 0000000..69665f3
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/borrowers_primary_contact_method.sql
@@ -0,0 +1 @@
+ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL;
\ No newline at end of file
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index f002154..e290a87 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -8719,12 +8719,6 @@ if ( CheckVersion($DBversion) ) {
     print "Upgrade to $DBversion done (Bug 10402: Move bookseller contacts to separate table)\n";
     SetVersion($DBversion);
 }
-$DBversion = "XXX";
-if ( CheckVersion($DBversion) ) {
-    $dbh->do("ALTER TABLE `borrowers` ADD COLUMN `primary_contact_method` VARCHAR(45) NULL DEFAULT NULL;");
-    print "Upgrade to $DBversion done (Bug 11879: Add a new borrower field : main contact method)\n";
-    SetVersion($DBversion);
-}
 
 $DBversion = "3.17.00.017";
 if ( CheckVersion($DBversion) ) {
@@ -10727,6 +10721,7 @@ foreach my $file ( sort readdir $dirh ) {
     }
 }
 
+
 =head1 FUNCTIONS
 
 =head2 TableExists($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
index c20e28e..c7e1ae3 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
@@ -566,7 +566,7 @@
 	  [% IF ( mandatoryemailpro ) %]<span class="required">Required</span>[% END %]
     </li>
         [% END %]
-        [% UNLESS nofax %]
+    [% UNLESS nofax %]
     <li>
       [% IF ( mandatoryfax ) %]
       <label for="fax" class="required">
@@ -577,44 +577,58 @@
         <input type="text" id="fax" name="fax" value="[% fax %]" />
 	  [% IF ( mandatoryfax ) %]<span class="required">Required</span>[% END %]
     </li>
+   [% END %]
     <li>
        <label for="primary_contact_method">Main Contact Method</label>
        <select id="primary_contact_method" name="primary_contact_method">
        <option value=""></option>
-            [% IF ( primary_contact_method == 'phone' ) %]
-                <option value="phone" selected="selected">Primary phone</option>
-            [% ELSE %]
-                <option value="phone">Primary phone</option>
+         [% FOREACH contactprincipalloo IN contactprincipalloop %]
+            [% IF ( contactprincipalloo.currentis_phone ) %]
+               [% IF ( primary_contact_method == 'phone' ) %]
+                 <option value="phone" selected="selected">Primary phone</option>
+               [% ELSE %]
+                 <option value="phone">Primary phone</option>
+               [% END %]
             [% END %]
-            [% IF ( primary_contact_method == 'phonepro' ) %]
-                <option value="phonepro" selected="selected">Secondary phone</option>
-            [% ELSE %]
-                <option value="phonepro">Secondary phone</option>
+            [% IF ( contactprincipalloo.currentis_phonepro ) %]
+               [% IF ( primary_contact_method == 'phonepro' ) %]
+                 <option value="phonepro" selected="selected">Secondary phone</option>
+               [% ELSE %]
+                 <option value="phonepro">Secondary phone</option>
+               [% END %]
             [% END %]
-            [% IF ( primary_contact_method == 'mobile' ) %]
-                <option value="mobile" selected="selected">Other phone</option>
-            [% ELSE %]
-                <option value="mobile">Other phone</option>
+            [% IF ( contactprincipalloo.currentis_mobile ) %]
+               [% IF ( primary_contact_method == 'mobile' ) %]
+                 <option value="mobile" selected="selected">Mobile phone</option>
+               [% ELSE %]
+                 <option value="mobile">Mobile phone</option>
+               [% END %]
             [% END %]
-            [% IF ( primary_contact_method == 'email' ) %]
-                <option value="email" selected="selected">Primary email</option>
-            [% ELSE %]
-                <option value="email">Primary email</option>
+            [% IF ( contactprincipalloo.currentis_email ) %]
+               [% IF ( primary_contact_method == 'email' ) %]
+                 <option value="email" selected="selected">Primary email</option>
+               [% ELSE %]
+                 <option value="email">Primary email</option>
+               [% END %]
             [% END %]
-            [% IF ( primary_contact_method == 'emailpro' ) %]
-                <option value="emailpro" selected="selected">Secondary email</option>
-            [% ELSE %]
-                <option value="emailpro">Secondary email</option>
+            [% IF ( contactprincipalloo.currentis_emailpro ) %]
+               [% IF ( primary_contact_method == 'emailpro' ) %]
+                 <option value="emailpro" selected="selected">Secondary email</option>
+               [% ELSE %]
+                 <option value="emailpro">Secondary email</option>
+               [% END %]
             [% END %]
-            [% IF ( primary_contact_method == 'fax' ) %]
-                <option value="fax" selected="selected">Fax</option>
-            [% ELSE %]
-                <option value="fax">Fax</option>
+            [% IF ( contactprincipalloo.currentis_fax ) %]
+               [% IF ( primary_contact_method == 'fax' ) %]
+                 <option value="fax" selected="selected">Fax</option>
+               [% ELSE %]
+                 <option value="fax">Fax</option>
+               [% END %]
             [% END %]
+         [% END %]
        </select>
     </li>
-        [% END %]
-	</ol>
+    </ol>
   </fieldset>
 [%END # hide fieldset %]
 
diff --git a/members/memberentry.pl b/members/memberentry.pl
index 7904e55..24af0da 100755
--- a/members/memberentry.pl
+++ b/members/memberentry.pl
@@ -551,6 +551,18 @@ foreach (qw(C A S P I X)) {
 $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);
+
 # test in city
 if ( $guarantorid ) {
     $select_city = getidcity($data{city});
-- 
1.7.9.5