synching deletedborrowers table with borrowers table
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This commit is contained in:
parent
37ca0cac1f
commit
8d072519b6
372
C4/Members.pm
372
C4/Members.pm
|
|
@ -32,8 +32,8 @@ use C4::Accounts;
|
|||
our ($VERSION,@ISA,@EXPORT,@EXPORT_OK,$debug);
|
||||
|
||||
BEGIN {
|
||||
$VERSION = 3.02;
|
||||
$debug = $ENV{DEBUG} || 0;
|
||||
$VERSION = 3.02;
|
||||
$debug = $ENV{DEBUG} || 0;
|
||||
}
|
||||
|
||||
=head1 NAME
|
||||
|
|
@ -77,7 +77,7 @@ push @EXPORT, qw(
|
|||
&GetRoadTypes
|
||||
&GetRoadTypeDetails
|
||||
&GetSortDetails
|
||||
&GetTitles
|
||||
&GetTitles
|
||||
|
||||
&GetMemberAccountRecords
|
||||
&GetBorNotifyAcctRecord
|
||||
|
|
@ -116,11 +116,11 @@ push @EXPORT, qw(
|
|||
push @EXPORT, qw(
|
||||
&checkuniquemember
|
||||
&checkuserpassword
|
||||
&Check_Userid
|
||||
&Check_Userid
|
||||
&fixEthnicity
|
||||
ðnicitycategories
|
||||
&fixup_cardnumber
|
||||
&checkcardnumber
|
||||
&checkcardnumber
|
||||
);
|
||||
|
||||
=item SearchMember
|
||||
|
|
@ -155,24 +155,24 @@ C<$count> is the number of elements in C<$borrowers>.
|
|||
#used by member enquiries from the intranet
|
||||
#called by member.pl and circ/circulation.pl
|
||||
sub SearchMember {
|
||||
my ($searchstring, $orderby, $type,$category_type,$filter,$showallbranches ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = "";
|
||||
my $count;
|
||||
my @data;
|
||||
my @bind = ();
|
||||
|
||||
# this is used by circulation everytime a new borrowers cardnumber is scanned
|
||||
# so we can check an exact match first, if that works return, otherwise do the rest
|
||||
$query = "SELECT * FROM borrowers
|
||||
LEFT JOIN categories ON borrowers.categorycode=categories.categorycode
|
||||
";
|
||||
my $sth = $dbh->prepare("$query WHERE cardnumber = ?");
|
||||
$sth->execute($searchstring);
|
||||
my $data = $sth->fetchall_arrayref({});
|
||||
if (@$data){
|
||||
return ( scalar(@$data), $data );
|
||||
}
|
||||
my ($searchstring, $orderby, $type,$category_type,$filter,$showallbranches ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = "";
|
||||
my $count;
|
||||
my @data;
|
||||
my @bind = ();
|
||||
|
||||
# this is used by circulation everytime a new borrowers cardnumber is scanned
|
||||
# so we can check an exact match first, if that works return, otherwise do the rest
|
||||
$query = "SELECT * FROM borrowers
|
||||
LEFT JOIN categories ON borrowers.categorycode=categories.categorycode
|
||||
";
|
||||
my $sth = $dbh->prepare("$query WHERE cardnumber = ?");
|
||||
$sth->execute($searchstring);
|
||||
my $data = $sth->fetchall_arrayref({});
|
||||
if (@$data){
|
||||
return ( scalar(@$data), $data );
|
||||
}
|
||||
$sth->finish;
|
||||
|
||||
if ( $type eq "simple" ) # simple search for one letter only
|
||||
|
|
@ -196,36 +196,36 @@ sub SearchMember {
|
|||
if (C4::Context->userenv && C4::Context->userenv->{flags}!=1 && C4::Context->userenv->{'branch'}){
|
||||
$query.=" borrowers.branchcode =".$dbh->quote(C4::Context->userenv->{'branch'})." AND " unless (C4::Context->userenv->{'branch'} eq "insecure");
|
||||
}
|
||||
}
|
||||
$query.="((surname LIKE ? OR surname LIKE ?
|
||||
OR firstname LIKE ? OR firstname LIKE ?
|
||||
OR othernames LIKE ? OR othernames LIKE ?)
|
||||
" .
|
||||
($category_type?" AND category_type = ".$dbh->quote($category_type):"");
|
||||
@bind = (
|
||||
"$data[0]%", "% $data[0]%", "$data[0]%", "% $data[0]%",
|
||||
"$data[0]%", "% $data[0]%"
|
||||
);
|
||||
for ( my $i = 1 ; $i < $count ; $i++ ) {
|
||||
$query = $query . " AND (" . " surname LIKE ? OR surname LIKE ?
|
||||
OR firstname LIKE ? OR firstname LIKE ?
|
||||
OR othernames LIKE ? OR othernames LIKE ?)";
|
||||
push( @bind,
|
||||
"$data[$i]%", "% $data[$i]%", "$data[$i]%",
|
||||
"% $data[$i]%", "$data[$i]%", "% $data[$i]%" );
|
||||
}
|
||||
$query.="((surname LIKE ? OR surname LIKE ?
|
||||
OR firstname LIKE ? OR firstname LIKE ?
|
||||
OR othernames LIKE ? OR othernames LIKE ?)
|
||||
" .
|
||||
($category_type?" AND category_type = ".$dbh->quote($category_type):"");
|
||||
@bind = (
|
||||
"$data[0]%", "% $data[0]%", "$data[0]%", "% $data[0]%",
|
||||
"$data[0]%", "% $data[0]%"
|
||||
);
|
||||
for ( my $i = 1 ; $i < $count ; $i++ ) {
|
||||
$query = $query . " AND (" . " surname LIKE ? OR surname LIKE ?
|
||||
OR firstname LIKE ? OR firstname LIKE ?
|
||||
OR othernames LIKE ? OR othernames LIKE ?)";
|
||||
push( @bind,
|
||||
"$data[$i]%", "% $data[$i]%", "$data[$i]%",
|
||||
"% $data[$i]%", "$data[$i]%", "% $data[$i]%" );
|
||||
|
||||
# FIXME - .= <<EOT;
|
||||
}
|
||||
$query = $query . ") OR cardnumber LIKE ?
|
||||
order by $orderby";
|
||||
push( @bind, $searchstring );
|
||||
# FIXME - .= <<EOT;
|
||||
}
|
||||
$query = $query . ") OR cardnumber LIKE ?
|
||||
order by $orderby";
|
||||
push( @bind, $searchstring );
|
||||
|
||||
# FIXME - .= <<EOT;
|
||||
# FIXME - .= <<EOT;
|
||||
}
|
||||
|
||||
$sth = $dbh->prepare($query);
|
||||
|
||||
$debug and print STDERR "Q $orderby : $query\n";
|
||||
$debug and print STDERR "Q $orderby : $query\n";
|
||||
$sth->execute(@bind);
|
||||
my @results;
|
||||
$data = $sth->fetchall_arrayref({});
|
||||
|
|
@ -349,7 +349,7 @@ sub GetMemberDetails {
|
|||
my $borrower = $sth->fetchrow_hashref;
|
||||
my ($amount) = GetMemberAccountRecords( $borrowernumber);
|
||||
$borrower->{'amountoutstanding'} = $amount;
|
||||
# FIXME - patronflags calls GetMemberAccountRecords... just have patronflags return $amount
|
||||
# FIXME - patronflags calls GetMemberAccountRecords... just have patronflags return $amount
|
||||
my $flags = patronflags( $borrower);
|
||||
my $accessflagshash;
|
||||
|
||||
|
|
@ -417,7 +417,7 @@ sub patronflags {
|
|||
my %flaginfo;
|
||||
my $noissuescharge = C4::Context->preference("noissuescharge");
|
||||
$flaginfo{'message'} = sprintf "Patron owes \$%.02f", $amount;
|
||||
$flaginfo{'amount'} = sprintf "%.02f",$amount;
|
||||
$flaginfo{'amount'} = sprintf "%.02f",$amount;
|
||||
if ( $amount > $noissuescharge ) {
|
||||
$flaginfo{'noissues'} = 1;
|
||||
}
|
||||
|
|
@ -503,30 +503,30 @@ sub GetMember {
|
|||
my ( $information, $type ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth;
|
||||
my $select = "
|
||||
my $select = "
|
||||
SELECT borrowers.*, categories.category_type, categories.description
|
||||
FROM borrowers
|
||||
LEFT JOIN categories on borrowers.categorycode=categories.categorycode
|
||||
";
|
||||
if ($type eq 'cardnumber' || $type eq 'firstname'|| $type eq 'userid'|| $type eq 'borrowernumber'){
|
||||
$information = uc $information;
|
||||
$sth = $dbh->prepare("$select WHERE $type=?");
|
||||
if ($type eq 'cardnumber' || $type eq 'firstname'|| $type eq 'userid'|| $type eq 'borrowernumber'){
|
||||
$information = uc $information;
|
||||
$sth = $dbh->prepare("$select WHERE $type=?");
|
||||
} else {
|
||||
$sth = $dbh->prepare("$select WHERE borrowernumber=?");
|
||||
}
|
||||
$sth = $dbh->prepare("$select WHERE borrowernumber=?");
|
||||
}
|
||||
$sth->execute($information);
|
||||
my $data = $sth->fetchrow_hashref;
|
||||
$sth->finish;
|
||||
($data) and return ($data);
|
||||
|
||||
if ($type eq 'cardnumber' || $type eq 'firstname') { # otherwise, try with firstname
|
||||
$sth = $dbh->prepare("$select WHERE firstname like ?");
|
||||
$sth->execute($information);
|
||||
$data = $sth->fetchrow_hashref;
|
||||
$sth->finish;
|
||||
return ($data);
|
||||
$sth = $dbh->prepare("$select WHERE firstname like ?");
|
||||
$sth->execute($information);
|
||||
$data = $sth->fetchrow_hashref;
|
||||
$sth->finish;
|
||||
return ($data);
|
||||
}
|
||||
return undef;
|
||||
return undef;
|
||||
}
|
||||
|
||||
=item GetMemberIssuesAndFines
|
||||
|
|
@ -589,21 +589,21 @@ Modify borrower's data. All date fields should ALREADY be in ISO format.
|
|||
sub ModMember {
|
||||
my (%data) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $iso_re = C4::Dates->new()->regexp('iso');
|
||||
foreach (qw(dateofbirth dateexpiry dateenrolled)) {
|
||||
if (my $tempdate = $data{$_}) { # assignment, not comparison
|
||||
($tempdate =~ /$iso_re/) and next; # Congatulations, you sent a valid ISO date.
|
||||
warn "ModMember given $_ not in ISO format ($tempdate)";
|
||||
if (my $tempdate2 = format_date_in_iso($tempdate)) { # assignment, not comparison
|
||||
$data{$_} = $tempdate2;
|
||||
} else {
|
||||
warn "ModMember cannot convert '$tempdate' (from syspref)";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$data{'dateofbirth'}){
|
||||
undef $data{'dateofbirth'};
|
||||
}
|
||||
my $iso_re = C4::Dates->new()->regexp('iso');
|
||||
foreach (qw(dateofbirth dateexpiry dateenrolled)) {
|
||||
if (my $tempdate = $data{$_}) { # assignment, not comparison
|
||||
($tempdate =~ /$iso_re/) and next; # Congatulations, you sent a valid ISO date.
|
||||
warn "ModMember given $_ not in ISO format ($tempdate)";
|
||||
if (my $tempdate2 = format_date_in_iso($tempdate)) { # assignment, not comparison
|
||||
$data{$_} = $tempdate2;
|
||||
} else {
|
||||
warn "ModMember cannot convert '$tempdate' (from syspref)";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$data{'dateofbirth'}){
|
||||
undef $data{'dateofbirth'};
|
||||
}
|
||||
my $qborrower=$dbh->prepare("SHOW columns from borrowers");
|
||||
$qborrower->execute;
|
||||
my %hashborrowerfields;
|
||||
|
|
@ -621,13 +621,13 @@ sub ModMember {
|
|||
$data{'password'} = md5_base64( $data{'password'} ) if ($data{'password'} ne "");
|
||||
delete $data{'password'} if ($data{password} eq "");
|
||||
}
|
||||
foreach (keys %data)
|
||||
{ push @parameters,"$_ = ".$dbh->quote($data{$_}) if ($_ ne 'borrowernumber' and $_ ne 'flags' and $hashborrowerfields{$_}); }
|
||||
foreach (keys %data)
|
||||
{ push @parameters,"$_ = ".$dbh->quote($data{$_}) if ($_ ne 'borrowernumber' and $_ ne 'flags' and $hashborrowerfields{$_}); }
|
||||
$query .= join (',',@parameters) . "\n WHERE borrowernumber=? \n";
|
||||
$debug and print STDERR "$query (executed w/ arg: $data{'borrowernumber'})";
|
||||
$sth = $dbh->prepare($query);
|
||||
$sth->execute($data{'borrowernumber'});
|
||||
$sth->finish;
|
||||
$debug and print STDERR "$query (executed w/ arg: $data{'borrowernumber'})";
|
||||
$sth = $dbh->prepare($query);
|
||||
$sth->execute($data{'borrowernumber'});
|
||||
$sth->finish;
|
||||
|
||||
# ok if its an adult (type) it may have borrowers that depend on it as a guarantor
|
||||
# so when we update information for an adult we should check for guarantees and update the relevant part
|
||||
|
|
@ -659,79 +659,79 @@ sub AddMember {
|
|||
my $dbh = C4::Context->dbh;
|
||||
$data{'userid'} = '' unless $data{'password'};
|
||||
$data{'password'} = md5_base64( $data{'password'} ) if $data{'password'};
|
||||
|
||||
# WE SHOULD NEVER PASS THIS SUBROUTINE ANYTHING OTHER THAN ISO DATES
|
||||
# IF YOU UNCOMMENT THESE LINES YOU BETTER HAVE A DARN COMPELLING REASON
|
||||
|
||||
# WE SHOULD NEVER PASS THIS SUBROUTINE ANYTHING OTHER THAN ISO DATES
|
||||
# IF YOU UNCOMMENT THESE LINES YOU BETTER HAVE A DARN COMPELLING REASON
|
||||
# $data{'dateofbirth'} = format_date_in_iso( $data{'dateofbirth'} );
|
||||
# $data{'dateenrolled'} = format_date_in_iso( $data{'dateenrolled'});
|
||||
# $data{'dateexpiry'} = format_date_in_iso( $data{'dateexpiry'} );
|
||||
# This query should be rewritten to use "?" at execute.
|
||||
if (!$data{'dateofbirth'}){
|
||||
undef ($data{'dateofbirth'});
|
||||
}
|
||||
# This query should be rewritten to use "?" at execute.
|
||||
if (!$data{'dateofbirth'}){
|
||||
undef ($data{'dateofbirth'});
|
||||
}
|
||||
my $query =
|
||||
"insert into borrowers set cardnumber=" . $dbh->quote( $data{'cardnumber'} )
|
||||
. ",surname=" . $dbh->quote( $data{'surname'} )
|
||||
. ",firstname=" . $dbh->quote( $data{'firstname'} )
|
||||
. ",title=" . $dbh->quote( $data{'title'} )
|
||||
. ",othernames=" . $dbh->quote( $data{'othernames'} )
|
||||
. ",initials=" . $dbh->quote( $data{'initials'} )
|
||||
. ",surname=" . $dbh->quote( $data{'surname'} )
|
||||
. ",firstname=" . $dbh->quote( $data{'firstname'} )
|
||||
. ",title=" . $dbh->quote( $data{'title'} )
|
||||
. ",othernames=" . $dbh->quote( $data{'othernames'} )
|
||||
. ",initials=" . $dbh->quote( $data{'initials'} )
|
||||
. ",streetnumber=". $dbh->quote( $data{'streetnumber'} )
|
||||
. ",streettype=" . $dbh->quote( $data{'streettype'} )
|
||||
. ",address=" . $dbh->quote( $data{'address'} )
|
||||
. ",address2=" . $dbh->quote( $data{'address2'} )
|
||||
. ",zipcode=" . $dbh->quote( $data{'zipcode'} )
|
||||
. ",city=" . $dbh->quote( $data{'city'} )
|
||||
. ",phone=" . $dbh->quote( $data{'phone'} )
|
||||
. ",email=" . $dbh->quote( $data{'email'} )
|
||||
. ",mobile=" . $dbh->quote( $data{'mobile'} )
|
||||
. ",phonepro=" . $dbh->quote( $data{'phonepro'} )
|
||||
. ",opacnote=" . $dbh->quote( $data{'opacnote'} )
|
||||
. ",streettype=" . $dbh->quote( $data{'streettype'} )
|
||||
. ",address=" . $dbh->quote( $data{'address'} )
|
||||
. ",address2=" . $dbh->quote( $data{'address2'} )
|
||||
. ",zipcode=" . $dbh->quote( $data{'zipcode'} )
|
||||
. ",city=" . $dbh->quote( $data{'city'} )
|
||||
. ",phone=" . $dbh->quote( $data{'phone'} )
|
||||
. ",email=" . $dbh->quote( $data{'email'} )
|
||||
. ",mobile=" . $dbh->quote( $data{'mobile'} )
|
||||
. ",phonepro=" . $dbh->quote( $data{'phonepro'} )
|
||||
. ",opacnote=" . $dbh->quote( $data{'opacnote'} )
|
||||
. ",guarantorid=" . $dbh->quote( $data{'guarantorid'} )
|
||||
. ",dateofbirth=" . $dbh->quote( $data{'dateofbirth'} )
|
||||
. ",branchcode=" . $dbh->quote( $data{'branchcode'} )
|
||||
. ",branchcode=" . $dbh->quote( $data{'branchcode'} )
|
||||
. ",categorycode=" . $dbh->quote( $data{'categorycode'} )
|
||||
. ",dateenrolled=" . $dbh->quote( $data{'dateenrolled'} )
|
||||
. ",contactname=" . $dbh->quote( $data{'contactname'} )
|
||||
. ",borrowernotes=" . $dbh->quote( $data{'borrowernotes'} )
|
||||
. ",dateexpiry=" . $dbh->quote( $data{'dateexpiry'} )
|
||||
. ",dateexpiry=" . $dbh->quote( $data{'dateexpiry'} )
|
||||
. ",contactnote=" . $dbh->quote( $data{'contactnote'} )
|
||||
. ",B_address=" . $dbh->quote( $data{'B_address'} )
|
||||
. ",B_zipcode=" . $dbh->quote( $data{'B_zipcode'} )
|
||||
. ",B_city=" . $dbh->quote( $data{'B_city'} )
|
||||
. ",B_phone=" . $dbh->quote( $data{'B_phone'} )
|
||||
. ",B_email=" . $dbh->quote( $data{'B_email'} )
|
||||
. ",password=" . $dbh->quote( $data{'password'} )
|
||||
. ",userid=" . $dbh->quote( $data{'userid'} )
|
||||
. ",sort1=" . $dbh->quote( $data{'sort1'} )
|
||||
. ",sort2=" . $dbh->quote( $data{'sort2'} )
|
||||
. ",B_address=" . $dbh->quote( $data{'B_address'} )
|
||||
. ",B_zipcode=" . $dbh->quote( $data{'B_zipcode'} )
|
||||
. ",B_city=" . $dbh->quote( $data{'B_city'} )
|
||||
. ",B_phone=" . $dbh->quote( $data{'B_phone'} )
|
||||
. ",B_email=" . $dbh->quote( $data{'B_email'} )
|
||||
. ",password=" . $dbh->quote( $data{'password'} )
|
||||
. ",userid=" . $dbh->quote( $data{'userid'} )
|
||||
. ",sort1=" . $dbh->quote( $data{'sort1'} )
|
||||
. ",sort2=" . $dbh->quote( $data{'sort2'} )
|
||||
. ",contacttitle=" . $dbh->quote( $data{'contacttitle'} )
|
||||
. ",emailpro=" . $dbh->quote( $data{'emailpro'} )
|
||||
. ",emailpro=" . $dbh->quote( $data{'emailpro'} )
|
||||
. ",contactfirstname=" . $dbh->quote( $data{'contactfirstname'} )
|
||||
. ",sex=" . $dbh->quote( $data{'sex'} )
|
||||
. ",fax=" . $dbh->quote( $data{'fax'} )
|
||||
. ",sex=" . $dbh->quote( $data{'sex'} )
|
||||
. ",fax=" . $dbh->quote( $data{'fax'} )
|
||||
. ",relationship=" . $dbh->quote( $data{'relationship'} )
|
||||
. ",B_streetnumber=" . $dbh->quote( $data{'B_streetnumber'} )
|
||||
. ",B_streettype=" . $dbh->quote( $data{'B_streettype'} )
|
||||
. ",gonenoaddress=" . $dbh->quote( $data{'gonenoaddress'} )
|
||||
. ",lost=" . $dbh->quote( $data{'lost'} )
|
||||
. ",debarred=" . $dbh->quote( $data{'debarred'} )
|
||||
. ",ethnicity=" . $dbh->quote( $data{'ethnicity'} )
|
||||
. ",ethnotes=" . $dbh->quote( $data{'ethnotes'} )
|
||||
. ",altcontactsurname=" . $dbh->quote( $data{'altcontactsurname'} )
|
||||
. ",altcontactfirstname=" . $dbh->quote( $data{'altcontactfirstname'} )
|
||||
. ",altcontactaddress1=" . $dbh->quote( $data{'altcontactaddress1'} )
|
||||
. ",altcontactaddress2=" . $dbh->quote( $data{'altcontactaddress2'} )
|
||||
. ",altcontactaddress3=" . $dbh->quote( $data{'altcontactaddress3'} )
|
||||
. ",altcontactzipcode=" . $dbh->quote( $data{'altcontactzipcode'} )
|
||||
. ",altcontactphone=" . $dbh->quote( $data{'altcontactphone'} ) ;
|
||||
$debug and print STDERR "AddMember SQL: ($query)\n";
|
||||
. ",lost=" . $dbh->quote( $data{'lost'} )
|
||||
. ",debarred=" . $dbh->quote( $data{'debarred'} )
|
||||
. ",ethnicity=" . $dbh->quote( $data{'ethnicity'} )
|
||||
. ",ethnotes=" . $dbh->quote( $data{'ethnotes'} )
|
||||
. ",altcontactsurname=" . $dbh->quote( $data{'altcontactsurname'} )
|
||||
. ",altcontactfirstname=" . $dbh->quote( $data{'altcontactfirstname'} )
|
||||
. ",altcontactaddress1=" . $dbh->quote( $data{'altcontactaddress1'} )
|
||||
. ",altcontactaddress2=" . $dbh->quote( $data{'altcontactaddress2'} )
|
||||
. ",altcontactaddress3=" . $dbh->quote( $data{'altcontactaddress3'} )
|
||||
. ",altcontactzipcode=" . $dbh->quote( $data{'altcontactzipcode'} )
|
||||
. ",altcontactphone=" . $dbh->quote( $data{'altcontactphone'} ) ;
|
||||
$debug and print STDERR "AddMember SQL: ($query)\n";
|
||||
my $sth = $dbh->prepare($query);
|
||||
# print "Executing SQL: $query\n";
|
||||
# print "Executing SQL: $query\n";
|
||||
$sth->execute();
|
||||
$sth->finish;
|
||||
$data{'borrowernumber'} = $dbh->{'mysql_insertid'}; # unneeded w/ autoincrement ?
|
||||
# mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best.
|
||||
$data{'borrowernumber'} = $dbh->{'mysql_insertid'}; # unneeded w/ autoincrement ?
|
||||
# mysql_insertid is probably bad. not necessarily accurate and mysql-specific at best.
|
||||
|
||||
&logaction(C4::Context->userenv->{'number'},"MEMBERS","CREATE",$data{'borrowernumber'},"")
|
||||
if C4::Context->preference("BorrowersLog");
|
||||
|
|
@ -748,8 +748,8 @@ sub AddMember {
|
|||
}
|
||||
|
||||
sub Check_Userid {
|
||||
my ($uid,$member) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my ($uid,$member) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
# Make sure the userid chosen is unique and not theirs if non-empty. If it is not,
|
||||
# Then we need to tell the user and have them create a new one.
|
||||
my $sth =
|
||||
|
|
@ -759,9 +759,9 @@ sub Check_Userid {
|
|||
if ( ( $uid ne '' ) && ( my $row = $sth->fetchrow_hashref ) ) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -931,10 +931,10 @@ sub UpdateGuarantees {
|
|||
# the array, which is probably better done as a foreach loop.
|
||||
#
|
||||
my $guaquery = qq|UPDATE borrowers
|
||||
SET address='$data{'address'}',fax='$data{'fax'}',
|
||||
B_city='$data{'B_city'}',mobile='$data{'mobile'}',city='$data{'city'}',phone='$data{'phone'}'
|
||||
WHERE borrowernumber='$guarantees->[$i]->{'borrowernumber'}'
|
||||
|;
|
||||
SET address='$data{'address'}',fax='$data{'fax'}',
|
||||
B_city='$data{'B_city'}',mobile='$data{'mobile'}',city='$data{'city'}',phone='$data{'phone'}'
|
||||
WHERE borrowernumber='$guarantees->[$i]->{'borrowernumber'}'
|
||||
|;
|
||||
my $sth3 = $dbh->prepare($guaquery);
|
||||
$sth3->execute;
|
||||
$sth3->finish;
|
||||
|
|
@ -1169,8 +1169,8 @@ sub checkuniquemember {
|
|||
my ( $collectivity, $surname, $firstname, $dateofbirth ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $request = ($collectivity) ?
|
||||
"SELECT borrowernumber,categorycode FROM borrowers WHERE surname=? " :
|
||||
"SELECT borrowernumber,categorycode FROM borrowers WHERE surname=? and firstname=? and dateofbirth=? ";
|
||||
"SELECT borrowernumber,categorycode FROM borrowers WHERE surname=? " :
|
||||
"SELECT borrowernumber,categorycode FROM borrowers WHERE surname=? and firstname=? and dateofbirth=? ";
|
||||
my $sth = $dbh->prepare($request);
|
||||
if ($collectivity) {
|
||||
$sth->execute( uc($surname) );
|
||||
|
|
@ -1184,23 +1184,23 @@ sub checkuniquemember {
|
|||
}
|
||||
|
||||
sub checkcardnumber {
|
||||
my ($cardnumber,$borrowernumber) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = "SELECT * FROM borrowers WHERE cardnumber=?";
|
||||
$query .= " AND borrowernumber <> ?" if ($borrowernumber);
|
||||
my ($cardnumber,$borrowernumber) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = "SELECT * FROM borrowers WHERE cardnumber=?";
|
||||
$query .= " AND borrowernumber <> ?" if ($borrowernumber);
|
||||
my $sth = $dbh->prepare($query);
|
||||
if ($borrowernumber) {
|
||||
$sth->execute($cardnumber,$borrowernumber);
|
||||
} else {
|
||||
$sth->execute($cardnumber);
|
||||
$sth->execute($cardnumber);
|
||||
}
|
||||
if (my $data= $sth->fetchrow_hashref()){
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
$sth->finish();
|
||||
if (my $data= $sth->fetchrow_hashref()){
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
$sth->finish();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1250,14 +1250,14 @@ Return date is also in ISO format.
|
|||
|
||||
sub GetExpiryDate {
|
||||
my ( $categorycode, $dateenrolled ) = @_;
|
||||
my $enrolmentperiod = 12; # reasonable default
|
||||
my $enrolmentperiod = 12; # reasonable default
|
||||
if ($categorycode) {
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth = $dbh->prepare("select enrolmentperiod from categories where categorycode=?");
|
||||
$sth->execute($categorycode);
|
||||
$enrolmentperiod = $sth->fetchrow;
|
||||
}
|
||||
# die "GetExpiryDate: for enrollmentperiod $enrolmentperiod (category '$categorycode') starting $dateenrolled.\n";
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth = $dbh->prepare("select enrolmentperiod from categories where categorycode=?");
|
||||
$sth->execute($categorycode);
|
||||
$enrolmentperiod = $sth->fetchrow;
|
||||
}
|
||||
# die "GetExpiryDate: for enrollmentperiod $enrolmentperiod (category '$categorycode') starting $dateenrolled.\n";
|
||||
my @date = split /-/,$dateenrolled;
|
||||
return sprintf("%04d-%02d-%02d", Add_Delta_YM(@date,0,$enrolmentperiod));
|
||||
}
|
||||
|
|
@ -1299,10 +1299,10 @@ to category descriptions.
|
|||
sub GetborCatFromCatType {
|
||||
my ( $category_type, $action ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $request = qq| SELECT categorycode,description
|
||||
FROM categories
|
||||
$action
|
||||
ORDER BY categorycode|;
|
||||
my $request = qq| SELECT categorycode,description
|
||||
FROM categories
|
||||
$action
|
||||
ORDER BY categorycode|;
|
||||
my $sth = $dbh->prepare($request);
|
||||
if ($action) {
|
||||
$sth->execute($category_type);
|
||||
|
|
@ -1486,8 +1486,8 @@ sub GetCities {
|
|||
#my ($type_city) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = qq|SELECT cityid,city_zipcode,city_name
|
||||
FROM cities
|
||||
ORDER BY city_name|;
|
||||
FROM cities
|
||||
ORDER BY city_name|;
|
||||
my $sth = $dbh->prepare($query);
|
||||
|
||||
#$sth->execute($type_city);
|
||||
|
|
@ -1506,7 +1506,7 @@ sub GetCities {
|
|||
my $id = @id;
|
||||
$sth->finish;
|
||||
if ( $id == 1 ) {
|
||||
# all we have is the one blank row
|
||||
# all we have is the one blank row
|
||||
return ();
|
||||
}
|
||||
else {
|
||||
|
|
@ -1530,9 +1530,9 @@ sub GetSortDetails {
|
|||
my ( $category, $sortvalue ) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $query = qq|SELECT lib
|
||||
FROM authorised_values
|
||||
WHERE category=?
|
||||
AND authorised_value=? |;
|
||||
FROM authorised_values
|
||||
WHERE category=?
|
||||
AND authorised_value=? |;
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute( $category, $sortvalue );
|
||||
my $lib = $sth->fetchrow;
|
||||
|
|
@ -1553,8 +1553,8 @@ sub MoveMemberToDeleted {
|
|||
my $dbh = C4::Context->dbh;
|
||||
my $query;
|
||||
$query = qq|SELECT *
|
||||
FROM borrowers
|
||||
WHERE borrowernumber=?|;
|
||||
FROM borrowers
|
||||
WHERE borrowernumber=?|;
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute($member);
|
||||
my @data = $sth->fetchrow_array;
|
||||
|
|
@ -1579,12 +1579,12 @@ This function remove directly a borrower whitout writing it on deleteborrower.
|
|||
sub DelMember {
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $borrowernumber = shift;
|
||||
warn "in delmember with $borrowernumber";
|
||||
#warn "in delmember with $borrowernumber";
|
||||
return unless $borrowernumber; # borrowernumber is mandatory.
|
||||
|
||||
my $query = qq|DELETE
|
||||
FROM reserves
|
||||
WHERE borrowernumber=?|;
|
||||
FROM reserves
|
||||
WHERE borrowernumber=?|;
|
||||
my $sth = $dbh->prepare($query);
|
||||
$sth->execute($borrowernumber);
|
||||
$sth->finish;
|
||||
|
|
@ -1603,7 +1603,7 @@ sub DelMember {
|
|||
|
||||
=head2 ExtendMemberSubscriptionTo (OUEST-PROVENCE)
|
||||
|
||||
$date = ExtendMemberSubscriptionTo($borrowerid, $date);
|
||||
$date = ExtendMemberSubscriptionTo($borrowerid, $date);
|
||||
|
||||
Extending the subscription to a given date or to the expiry date calculated on ISO date.
|
||||
Returns ISO date.
|
||||
|
|
@ -1690,13 +1690,13 @@ Looks up the different title . Returns array with all borrowers title
|
|||
sub GetTitles {
|
||||
my @borrowerTitle = split /,|\|/,C4::Context->preference('BorrowersTitles');
|
||||
unshift( @borrowerTitle, "" );
|
||||
my $count=@borrowerTitle;
|
||||
if ($count == 1){
|
||||
return ();
|
||||
}
|
||||
else {
|
||||
return ( \@borrowerTitle);
|
||||
}
|
||||
my $count=@borrowerTitle;
|
||||
if ($count == 1){
|
||||
return ();
|
||||
}
|
||||
else {
|
||||
return ( \@borrowerTitle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -785,6 +785,13 @@ CREATE TABLE `deletedborrowers` (
|
|||
`contactnote` varchar(255) default NULL,
|
||||
`sort1` 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,
|
||||
`altcontactphone` varchar(50) default NULL,
|
||||
KEY `borrowernumber` (`borrowernumber`),
|
||||
KEY `cardnumber` (`cardnumber`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
|
|||
|
|
@ -853,6 +853,21 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
|||
SetVersion ($DBversion);
|
||||
}
|
||||
|
||||
$DBversion = "3.00.00.044";
|
||||
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
|
||||
$dbh->do("ALTER TABLE deletedborrowers
|
||||
ADD `altcontactfirstname` varchar(255) default NULL,
|
||||
ADD `altcontactsurname` varchar(255) default NULL,
|
||||
ADD `altcontactaddress1` varchar(255) default NULL,
|
||||
ADD `altcontactaddress2` varchar(255) default NULL,
|
||||
ADD `altcontactaddress3` varchar(255) default NULL,
|
||||
ADD `altcontactzipcode` varchar(50) default NULL,
|
||||
ADD `altcontactphone` varchar(50) default NULL
|
||||
");
|
||||
print "Upgrade to $DBversion done (syncing deletedborrowers table with borrowers table)\n";
|
||||
SetVersion ($DBversion);
|
||||
}
|
||||
|
||||
=item DropAllForeignKeys($table)
|
||||
|
||||
Drop all foreign keys of the table $table
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
use strict;
|
||||
|
||||
sub kohaversion {
|
||||
our $VERSION = "3.00.00.043";
|
||||
our $VERSION = "3.00.00.044";
|
||||
# version needs to be set this way
|
||||
# so that it can be picked up by Makefile.PL
|
||||
# during install
|
||||
|
|
|
|||
Loading…
Reference in New Issue