This patch activate the check of unique member, it was checked but not shown,
and the member was added even if a duplicate was
detected.
It improve the duplicate detection, to check the birthdate only if it was
specified in the form.
And fix an url of "Yes" link(if the borrower added IS the duplicate detected).
---
C4/Members.pm | 9 +++++++--
.../prog/en/modules/members/memberentrygen.tmpl | 4 ++--
members/memberentry.pl | 13 +++++++------
3 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/C4/Members.pm b/C4/Members.pm
index 7ee9eb3..88c2a90 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -1219,12 +1219,17 @@ sub checkuniquemember {
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=? and
firstname=?";
my $sth = $dbh->prepare($request);
if ($collectivity) {
$sth->execute( uc($surname) );
} else {
- $sth->execute( uc($surname), ucfirst($firstname), $dateofbirth );
+ if($dateofbirth){
+ $request .= " and dateofbirth=?";
+ $sth->execute( uc($surname), ucfirst($firstname), $dateofbirth );
+ }else{
+ $sth->execute( uc($surname), ucfirst($firstname));
+ }
}
my @data = $sth->fetchrow;
$sth->finish;
diff --git
a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tmpl
b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tmpl
index df289a5..a1953d4 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tmpl
@@ -89,7 +89,7 @@
<h3>Duplicate suspected</h3>
<a
href="javascript:Dopop('borrowers_details.pl?borrowernumber=<!--TMPL_VAR
NAME="check_member"-->');" >Detail</a>
Duplicate ?
- <a
href="/cgi-bin/koha/members/memberentry.pl?borrowernumber=<!--TMPL_VAR
NAME="check_member"-->&category_type=<!--TMPL_VAR
NAME="check_categorytype"-->">Yes</a>
+ <a
href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=<!--TMPL_VAR
NAME="check_member"-->&category_type=<!--TMPL_VAR
NAME="check_categorytype"-->">Yes</a>
No, it is not
<!-- TMPL_IF NAME="checked"-->
<input type="checkbox"
checked="checked" name="answernodouble" >
@@ -100,7 +100,7 @@
</form>
</p>
<!--/TMPL_IF-->
-
+
<!-- TMPL_IF Name="debug" -->
<div id="debug">
<div>Debug is on (level <!-- TMPL_VAR
NAME="debug" -->)</div>
diff --git a/members/memberentry.pl b/members/memberentry.pl
index 5c39d84..744f290 100755
--- a/members/memberentry.pl
+++ b/members/memberentry.pl
@@ -139,7 +139,7 @@ if ($op eq 'insert' || $op eq 'modify' || $op eq 'save') {
}
#############test for member being unique #############
-if ($op eq 'insert'){
+if (($op eq 'insert') and !$nodouble){
my $category_type_send=$category_type if ($category_type eq 'I');
my $check_category; # recover the category code of the doublon suspect
borrowers
# ($result,$categorycode) =
checkuniquemember($collectivity,$surname,$firstname,$dateofbirth)
@@ -149,8 +149,10 @@ if ($op eq 'insert'){
($newdata{firstname} ? $newdata{firstname} :
$data{firstname} ),
($newdata{dateofbirth} ? $newdata{dateofbirth} :
$data{dateofbirth})
);
-
- # recover the category type if the borrowers is a doublon
+ if(!$check_member){
+ $nodouble = 1;
+ }
+ # recover the category type if the borrowers is a doublon
if ($check_category) {
my $tmpborrowercategory=GetBorrowercategory($check_category);
$check_categorytype=$tmpborrowercategory->{'category_type'};
@@ -238,9 +240,8 @@ if ($op eq 'modify' || $op eq 'insert' || $op eq 'save' ){
}
### Error checks should happen before this line.
-
$nok = $nok || scalar(@errors);
-if ((!$nok) and ($op eq 'insert' or $op eq 'save')){
+if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){
$debug and warn "$op dates: " . join "\t", map {"$_: $newdata{$_}"}
qw(dateofbirth dateenrolled dateexpiry);
if ($op eq 'insert'){
# we know it's not a duplicate borrowernumber or there would
already be an error
@@ -302,7 +303,7 @@ if ($delete){
exit; # same as above
}
-if ($nok){
+if ($nok !$nodouble){
$op="add" if ($op eq "insert");
$op="modify" if ($op eq "save");
%data=%newdata;
--
1.5.6.3
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches