- added altcontactcountry and B_address2 to tables borrowers and deletedborrowers so that all addresses offer the same fields
- changed B_country and country to work with syspref BorrowerMandatoryField
- changed display of Alternate Address on borrower detail page, added labels, lines and edit button to match the other sections
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
. ",dateexpiry=" . $dbh->quote( $data{'dateexpiry'} )
. ",contactnote=" . $dbh->quote( $data{'contactnote'} )
. ",B_address=" . $dbh->quote( $data{'B_address'} )
+ . ",B_address2=" . $dbh->quote( $data{'B_address2'} )
. ",B_zipcode=" . $dbh->quote( $data{'B_zipcode'} )
. ",B_country=" . $dbh->quote( $data{'B_country'} )
. ",B_city=" . $dbh->quote( $data{'B_city'} )
. ",altcontactaddress2=" . $dbh->quote( $data{'altcontactaddress2'} )
. ",altcontactaddress3=" . $dbh->quote( $data{'altcontactaddress3'} )
. ",altcontactzipcode=" . $dbh->quote( $data{'altcontactzipcode'} )
+ . ",altcontactcountry=" . $dbh->quote( $data{'altcontactcountry'} )
. ",altcontactphone=" . $dbh->quote( $data{'altcontactphone'} ) ;
$debug and print STDERR "AddMember SQL: ($query)\n";
my $sth = $dbh->prepare($query);
| address2 | text | YES | |
| city | mediumtext | NO | |
| zipcode | varchar(25) | YES | |
+| country | text | YES | |
| email | mediumtext | YES | |
| phone | text | YES | |
| mobile | varchar(50) | YES | |
| B_streetnumber | varchar(10) | YES | |
| B_streettype | varchar(50) | YES | |
| B_address | varchar(100) | YES | |
+| B_address2 | text | YES | |
| B_city | mediumtext | YES | |
| B_zipcode | varchar(25) | YES | |
+| B_country | text | YES | |
| B_email | text | YES | |
| B_phone | mediumtext | YES | |
| dateofbirth | date | YES | |
| altcontactaddress2 | varchar(255) | YES | |
| altcontactaddress3 | varchar(255) | YES | |
| altcontactzipcode | varchar(50) | YES | |
+| altcontactcountry | text | YES | |
| altcontactphone | varchar(50) | YES | |
+| smsalertnumber | varchar(50) | YES | |
+---------------------+--------------+------+-----+
From C4::Members
B_streetnumber varchar(10) default NULL,
B_streettype varchar(50) default NULL,
B_address varchar(100) default NULL,
+B_address2 text default NULL,
B_city text,
B_zipcode varchar(25) default NULL,
B_country text,
opacnote text,
contactnote varchar(255) default NULL,
sort1 varchar(80) default NULL,
-sort2 varchar(80) default NULL
+sort2 varchar(80) default NULL,
+altcontactfirstname varchar(255) default NULL,
+altcontactsurname varchar(255) default NULL,
+altcontactaddress1 varchar(255) default NULL,
+altcontactaddress2 varchar(255) default NULL,
+altcontactaddress3 varchar(255) default NULL,
+altcontactzipcode varchar(50) default NULL,
+altcontactcountry text default NULL,
+altcontactphone varchar(50) default NULL,
+smsalertnumber varchar(50) default NULL
);
CREATE INDEX borrowers_branchcode_idx ON borrowers (branchcode);
CREATE INDEX borrowers_borrowernumber_idx ON borrowers (borrowernumber);
B_streetnumber varchar(10) default NULL,
B_streettype varchar(50) default NULL,
B_address varchar(100) default NULL,
+B_address2 text default NULL,
B_city text,
B_zipcode varchar(25) default NULL,
B_email text,
opacnote text,
contactnote varchar(255) default NULL,
sort1 varchar(80) default NULL,
-sort2 varchar(80) default NULL
+sort2 varchar(80) default NULL,
+altcontactfirstname varchar(255) default NULL,
+altcontactsurname varchar(255) default NULL,
+altcontactaddress1 varchar(255) default NULL,
+altcontactaddress2 varchar(255) default NULL,
+altcontactaddress3 varchar(255) default NULL,
+altcontactzipcode varchar(50) default NULL,
+altcontactcountry text default NULL,
+altcontactphone varchar(50) default NULL,
+smsalertnumber varchar(50) default NULL
);
CREATE INDEX deletedborrowers_borrowernumber_idx ON deletedborrowers (borrowernumber);
CREATE INDEX deletedborrowers_cardnumber_idx ON deletedborrowers (cardnumber);
`B_streetnumber` varchar(10) default NULL,
`B_streettype` varchar(50) default NULL,
`B_address` varchar(100) default NULL,
+ `B_address2` text default NULL,
`B_city` mediumtext,
`B_zipcode` varchar(25) default NULL,
`B_country` text,
`altcontactaddress2` varchar(255) default NULL,
`altcontactaddress3` varchar(255) default NULL,
`altcontactzipcode` varchar(50) default NULL,
+ `altcontactcountry` text default NULL,
`altcontactphone` varchar(50) default NULL,
`smsalertnumber` varchar(50) default NULL,
UNIQUE KEY `cardnumber` (`cardnumber`),
`B_streetnumber` varchar(10) default NULL,
`B_streettype` varchar(50) default NULL,
`B_address` varchar(100) default NULL,
+ `B_address2` text default NULL,
`B_city` mediumtext,
`B_zipcode` varchar(25) default NULL,
`B_country` text,
`altcontactaddress2` varchar(255) default NULL,
`altcontactaddress3` varchar(255) default NULL,
`altcontactzipcode` varchar(50) default NULL,
+ `altcontactcountry` text default NULL,
`altcontactphone` varchar(50) default NULL,
`smsalertnumber` varchar(50) default NULL,
KEY `borrowernumber` (`borrowernumber`),
SetVersion ($DBversion);
}
+$DBversion = '3.01.00.053';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE borrowers ADD `B_address2` text AFTER B_address");
+ $dbh->do("ALTER TABLE borrowers ADD `altcontactcountry` text AFTER altcontactzipcode");
+ $dbh->do("ALTER TABLE deletedborrowers ADD `B_address2` text AFTER B_address");
+ $dbh->do("ALTER TABLE deletedborrowers ADD `altcontactcountry` text AFTER altcontactzipcode");
+ SetVersion ($DBversion);
+ print "Upgrade to $DBversion done (bug 1600, bug 3454: add altcontactcountry and B_address2 to borrowers and deletedborrowers)\n";
+}
=item DropAllForeignKeys($table)
<ul>
<li>Format your file with the following fields
<ul>
- <li>'cardnumber', 'surname', 'firstname', 'title', 'othernames', 'initials', 'streetnumber', 'streettype', 'address', 'address2', 'city', 'zipcode', 'country', 'email', 'phone', 'mobile', 'fax', 'emailpro', 'phonepro', 'B_streetnumber', 'B_streettype', 'B_address', 'B_city', 'B_zipcode', 'B_country', 'B_email', 'B_phone', 'dateofbirth', 'branchcode', 'categorycode', 'dateenrolled', 'dateexpiry', 'gonenoaddress', 'lost', 'debarred', 'contactname', 'contactfirstname', 'contacttitle', 'borrowernotes', 'relationship', 'ethnicity', 'ethnotes', 'sex', 'userid', 'opacnote', 'contactnote', 'password', 'sort1', 'sort2'
+ <li>'surname', 'firstname', 'title', 'othernames', 'initials', 'streetnumber', 'streettype', 'address', 'address2', 'city', 'zipcode', 'country', 'email', 'phone', 'mobile', 'fax', 'emailpro', 'phonepro', 'B_streetnumber', 'B_streettype', 'B_address', 'B_address2', 'B_city', 'B_zipcode', 'B_country', 'B_email', 'B_phone', 'dateofbirth', 'branchcode', 'categorycode', 'dateenrolled', 'dateexpiry', 'gonenoaddress', 'lost', 'debarred', 'contactname', 'contactfirstname', 'contacttitle', 'guarantorid', 'borrowernotes', 'relationship', 'ethnicity', 'ethnotes', 'sex', 'password', 'flags', 'userid', 'opacnote', 'contactnote', 'sort1', 'sort2', 'altcontactfirstname', 'altcontactsurname', 'altcontactaddress1', 'altcontactaddress2', 'altcontactaddress3', 'altcontactzipcode', 'altcontactcountry', 'altcontactphone', 'smsalertnumber', 'patron_attributes'
<ul>
<li>
<span style="background-color: #ffe599">
<input type="text" name="zipcode" id="zipcode" size="10" value="<!-- TMPL_VAR NAME="zipcode" -->" />
<!-- TMPL_IF NAME="mandatoryzipcode" --><span class="required">Required</span><!-- /TMPL_IF -->
</li>
- <li>
- <label for="country">Country: </label>
- <input type="text" name="country" id="country" value="<!-- TMPL_VAR NAME="country" -->" />
- </li>
+
+ <li>
+ <!-- TMPL_IF NAME="mandatorycountry" -->
+ <label for="country" class="required">
+ <!--TMPL_ELSE-->
+ <label for="country">
+ <!-- /TMPL_IF-->
+ Country: </label>
+ <input type="text" name="country" id="country" size="20" value="<!-- TMPL_VAR NAME="country" -->" />
+ <!-- TMPL_IF NAME="mandatorycountry" --><span class="required">Required</span><!-- /TMPL_IF -->
+ </li>
</ol>
</fieldset>
<!-- ************************ STEP_1 *********************** -->
<!--/TMPL_IF -->
-<!--TMPL_IF Name="step_2"-->
+<!--TMPL_IF Name="step_6"-->
<fieldset class="rows" id="memberentry_address">
<legend>Alternate address</legend><ol>
<input type="text" id="B_address" name="B_address" size="40" value="<!-- TMPL_VAR NAME="B_address" -->" />
<!-- TMPL_IF NAME="mandatoryB_address" --><span class="required">Required</span><!-- /TMPL_IF -->
</li>
+ <li>
+ <!-- TMPL_IF NAME="mandatoryB_address2" -->
+ <label for="B_address2" class="required">
+ <!--TMPL_ELSE-->
+ <label for="B_address2">
+ <!-- /TMPL_IF-->
+ Address 2: </label>
+ <input type="text" id="B_address2" name="B_address2" size="40" value="<!-- TMPL_VAR NAME="B_address2" -->" />
+ <!-- TMPL_IF NAME="mandatoryB_address2" --><span class="required">Required</span><!-- /TMPL_IF -->
+ </li>
<li>
<!-- TMPL_IF NAME="mandatoryB_city" -->
<label for="B_city" class="required" >
<input type="text" id="B_zipcode" name="B_zipcode" maxlength="10" size="10" value="<!-- TMPL_VAR NAME="B_zipcode" -->" />
<!-- TMPL_IF NAME="mandatoryB_zipcode" --><span class="required">Required</span><!-- /TMPL_IF -->
</li>
- <li>
- <label for="B_country">Country: </label>
- <input type="text" name="B_country" id="B_country" value="<!-- TMPL_VAR NAME="B_country" -->" />
- </li>
+ <li>
+ <!-- TMPL_IF NAME="mandatoryB_country" -->
+ <label for="B_country" class="required">
+ <!--TMPL_ELSE-->
+ <label for="B_country">
+ <!-- /TMPL_IF-->
+ Country: </label>
+ <input type="text" id="B_country" name="B_country" size="20" value="<!-- TMPL_VAR NAME="B_country" -->" />
+ <!-- TMPL_IF NAME="mandatoryB_country" --><span class="required">Required</span><!-- /TMPL_IF -->
+ </li>
<li>
<!-- TMPL_IF NAME="mandatoryB_phone" -->
<label for="B_phone" class="required">
</li>
</ol>
</fieldset>
+<!-- /TMPL_IF -->
+<!--TMPL_IF Name="step_2"-->
<fieldset class="rows" id="memberentry_altaddress">
<legend>Alternate Contact</legend><ol>
<li>
<input type="text" name="altcontactzipcode" id="altcontactzipcode" value="<!-- TMPL_VAR NAME="altcontactzipcode" -->" size="5" />
<!-- TMPL_IF NAME="mandatoryaltcontactzipcode" --><span class="required">Required</span><!-- /TMPL_IF -->
</li>
+ <li>
+ <!-- TMPL_IF NAME="mandatoryaltcontactcountry" -->
+ <label for="altcontactcountry" class="required">
+ <!-- TMPL_ELSE -->
+ <label for="altcontactcountry">
+ <!-- /TMPL_IF -->
+ Country:</label>
+ <input type="text" name="altcontactcountry" id="altcontactcountry" value="<!-- TMPL_VAR NAME="altcontactcountry" -->" size="20" />
+ <!-- TMPL_IF NAME="mandatoryaltcontactcountry" --><span class="required">Required</span><!-- /TMPL_IF -->
+ </li>
<li>
<!-- TMPL_IF NAME="mandatoryaltcontactphone" -->
<label for="altcontactphone" class="required">
<!-- TMPL_VAR NAME="address" --><br />
<!-- TMPL_IF NAME="address2" --><!-- TMPL_VAR NAME="address2"--><br /><!-- /TMPL_IF -->
<!-- TMPL_IF NAME="city" --><!-- TMPL_VAR NAME="city" --><!-- /TMPL_IF -->
- <!-- TMPL_IF NAME="zipcode" --><!-- TMPL_VAR NAME="zipcode" --><!-- /TMPL_IF --></p>
+ <!-- TMPL_IF NAME="zipcode" --><!-- TMPL_VAR NAME="zipcode" --><br /><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="country" --><!-- TMPL_VAR NAME="country" --><!-- /TMPL_IF --></p>
<div class="rows">
<ol>
<div id="patron-alternate-address" style="padding-top: 1em;">
<h3>Alternate Address</h3>
<!-- TMPL_UNLESS NAME="I"--><!-- TMPL_UNLESS NAME="C"-->
- <p><!-- TMPL_VAR NAME="B_address" --><br />
- <!-- TMPL_VAR NAME="B_city" --><br />
- <!-- TMPL_VAR NAME="B_zipcode" --></p>
+ <div class="rows"> <ol><li><span class="label">Address: </span><!-- TMPL_VAR NAME="B_address" --></li>
+ <li><span class="label">Address 2: </span><!-- TMPL_VAR NAME="B_address2" --></li>
+ <li><span class="label">City, State: </span><!-- TMPL_VAR NAME="B_city" --></li>
+ <li><span class="label">Zip/Postal Code: </span><!-- TMPL_VAR NAME="B_zipcode" --></li>
+ <li><span class="label">Country: </span><!-- TMPL_VAR NAME="B_country" --></li></ol></div>
<!-- /TMPL_UNLESS --><!-- /TMPL_UNLESS -->
<!-- TMPL_IF NAME="C" -->
<div class="rows"> <ol><li><span class="label">Surname: </span><!-- TMPL_VAR NAME="contactname" --></li>
<li><span class="label">Relationship: </span><!-- TMPL_VAR NAME="relationship" --></li></ol></div>
<!-- /TMPL_IF -->
</div>
+<div class="action"><a href="memberentry.pl?op=modify&borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&step=6">Edit</a></div>
<div id="patron-alternative-contact" style="padding-top: 1em;">
<h3>Alternative Contact</h3>
<div class="rows"> <ol><li><span class="label">Surname: </span><!-- TMPL_VAR NAME="altcontactsurname" --></li>
<li><span class="label">First name: </span><!-- TMPL_VAR NAME="altcontactfirstname" --></li>
<li><span class="label">Address: </span><!-- TMPL_VAR NAME="altcontactaddress1" --></li>
- <li><span class="label">Address (cont.): </span><!-- TMPL_VAR NAME="altcontactaddress2" --></li>
+ <li><span class="label">Address 2: </span><!-- TMPL_VAR NAME="altcontactaddress2" --></li>
<li><span class="label">City, State: </span><!-- TMPL_VAR NAME="altcontactaddress3" --></li>
<li><span class="label">Zip/Postal Code: </span><!-- TMPL_VAR NAME="altcontactzipcode" --></li>
+ <li><span class="label">Country: </span><!-- TMPL_VAR NAME="altcontactcountry" --></li>
<li><span class="label">Phone: </span><!-- TMPL_VAR NAME="altcontactphone" --></li></ol></div>
</div>
<div class="action"><a href="memberentry.pl?op=modify&borrowernumber=<!-- TMPL_VAR NAME="borrowernumber" -->&step=2">Edit</a></div>
<th>Call Number</th>
<th>Barcode</th>
<th>Priority</th>
- <th>Delete?</th>
+ <th>Delete?alter</th>
</tr></thead>
<tbody><!-- TMPL_LOOP NAME="reservloop" -->
<tr class="<!-- TMPL_VAR NAME="color" -->">
<caption>Contact Details</caption>
<tr><th scope="row">Mailing Address:</th><td><!-- TMPL_VAR NAME="address" -->, <!-- TMPL_VAR NAME="city" --></td></tr>
-<tr><th scope="row">Permanent Address:</th><td> <!-- TMPL_VAR NAME="B_address" -->, <!-- TMPL_VAR NAME="B_city" --></td></tr>
+<tr><th scope="row">Permanent Address:</th><td> <!-- TMPL_VAR NAME="B_address" -->, <!-- TMPL_VAR NAME="B_address2" -->, <!-- TMPL_VAR NAME="B_city" --></td></tr>
<tr><th scope="row">Phone (Home):</th><td><!-- TMPL_IF NAME="phone" --><!-- TMPL_VAR NAME="phone" --><!-- TMPL_ELSE --> <!-- /TMPL_IF --></td></tr>
<input type="text" name="address" value="<!-- TMPL_VAR NAME="address" -->" id="address" />
<input type="text" name="address2" value="<!-- TMPL_VAR NAME="address2" -->" id="address2" /></li>
<li><label for="city">City, State:</label> <input id="city" type="text" value="<!-- TMPL_VAR name="city" -->" name="city" /></li>
-<li><label for="zipcode">Zip Code: </label><input id="zipcode" name="zipcode" value="<!-- TMPL_VAR NAME="zipcode" -->" /></li>
+<li><label for="zipcode">Zip Code: </label><input id="zipcode" name="zipcode" value="<!-- TMPL_VAR NAME="zipcode" -->" name="zipcode" /></li>
+<li><label for="country">Country: </label><input id="country" name="country" value="<!-- TMPL_VAR NAME="country" -->" name="country" /></li>
<li><label for="phone">Home Phone:</label> <input id="phone" type="text" value="<!-- TMPL_VAR name="phone" -->" name="phone" /></li>
<li><label for="mobile">Mobile Phone:</label> <input id="mobile" type="text" value="<!-- TMPL_VAR name="mobile" -->" name="mobile" /></li>
<li><label for="fax">Fax:</label> <input id="fax" type="text" value="<!-- TMPL_VAR name="fax" -->" name="fax" /></li>
<ol>
<li>
<label for="B_streetaddress">Permanent or Alternate Address:</label>
- <textarea id="B_streetaddress" cols="25" rows="2" name="B_streetaddress"><!--TMPL_VAR NAME="B_streetnumber"--> <!-- TMPL_VAR name="B_address" --></textarea>
+ <textarea id="B_streetaddress" cols="25" rows="3" name="B_streetaddress"><!--TMPL_VAR NAME="B_streetnumber"--> <!-- TMPL_VAR name="B_address" --> <!-- TMPL_VAR name="B_address2" --></textarea>
</li>
<li><label for="B_city">City, State:</label> <input id="B_city" type="text" value="<!-- TMPL_VAR name="B_city" -->" name="B_city" /></li>
-<li><label for="B_zipcode">Zip Code</label> <input type="text" id="B_zipcode" name="B_zipcode" value="<!-- TMPL_VAR NAME="B_zipcode" -->" /></li>
+<li><label for="B_zipcode">Zip Code</label> <input type="text" id="B_zipcode" name="B_zipcode" value="<!-- TMPL_VAR NAME="B_zipcode" -->" name="B_zipcode" /></li>
+<li><label for="B_country">Country</label> <input type="text" id="B_country" name="B_country" value="<!-- TMPL_VAR NAME="B_country" -->" name="B_country" /></li>
</ol>
</fieldset>
<fieldset class="brief">
%data=%newdata;
$template->param( updtype => ($op eq 'add' ?'I':'M')); # used to check for $op eq "insert"... but we just changed $op!
unless ($step){
- $template->param( step_1 => 1,step_2 => 1,step_3 => 1, step_4 => 1, step_5 => 1);
+ $template->param( step_1 => 1,step_2 => 1,step_3 => 1, step_4 => 1, step_5 => 1, step_6 => 1);
}
}
if (C4::Context->preference("IndependantBranches")) {
if ($op eq 'add'){
my $arg2 = $newdata{'dateenrolled'} || C4::Dates->today('iso');
$data{'dateexpiry'} = GetExpiryDate($newdata{'categorycode'},$arg2);
- $template->param( updtype => 'I', step_1=>1, step_2=>1, step_3=>1, step_4=>1, step_5 => 1);
+ $template->param( updtype => 'I', step_1=>1, step_2=>1, step_3=>1, step_4=>1, step_5 => 1, step_6 => 1);
}
if ($op eq "modify") {
$template->param( updtype => 'M',modify => 1 );
- $template->param( step_1=>1, step_2=>1, step_3=>1, step_4=>1, step_5 => 1) unless $step;
+ $template->param( step_1=>1, step_2=>1, step_3=>1, step_4=>1, step_5 => 1, step_6 => 1) unless $step;
}
# my $cardnumber=$data{'cardnumber'};
$data{'cardnumber'}=fixup_cardnumber($data{'cardnumber'}) if $op eq 'add';