From 459e1ff76b5b9bf4b3233a4a760c2ebba96a2b06 Mon Sep 17 00:00:00 2001 From: tipaul Date: Thu, 19 May 2005 21:52:45 +0000 Subject: [PATCH] * better management of joining & expiry dates : - dates can be manually typed when adding a borrower. - Empty fields are automatically calculated (joining = today & expiry date calculated from borrower category) - Expiry date can be modified * checking expiry date when trying to issue a book & forbidding issuing when expiry date reached. ** IMPORTANT ** This check was not done before. Thus, you may be unable to issue books where you could before. You can update your database borrower by borrower or with the following SQL command on the server : "update borrowers set expiry='2005-31-12'". You can limit the update to a borrower category with "update borrowers set expiry='2005-31-12' where categorycode='A'" (all SQL commands must be typed without any ") --- C4/Members.pm | 12 ++++++++++-- .../default/en/members/memberentry.tmpl | 13 +++++++++++-- members/memberentry.pl | 4 ++-- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/C4/Members.pm b/C4/Members.pm index 560f1d4557..a510e4b1c5 100644 --- a/C4/Members.pm +++ b/C4/Members.pm @@ -99,13 +99,12 @@ sub modmember { my (%data) = @_; my $dbh = C4::Context->dbh; $data{'dateofbirth'}=format_date_in_iso($data{'dateofbirth'}); - $data{'joining'}=format_date_in_iso($data{'joining'}); $data{'expiry'}=format_date_in_iso($data{'expiry'}); my $query="update borrowers set title='$data{'title'}',expiry='$data{'expiry'}', cardnumber='$data{'cardnumber'}',sex='$data{'sex'}',ethnotes='$data{'ethnicnotes'}', streetaddress='$data{'streetaddress'}',faxnumber='$data{'faxnumber'}',firstname='$data{'firstname'}', altnotes='$data{'altnotes'}',dateofbirth='$data{'dateofbirth'}',contactname='$data{'contactname'}', - emailaddress='$data{'emailaddress'}',dateenrolled='$data{'joining'}',streetcity='$data{'streetcity'}', + emailaddress='$data{'emailaddress'}',streetcity='$data{'streetcity'}', altrelationship='$data{'altrelationship'}',othernames='$data{'othernames'}',phoneday='$data{'phoneday'}', categorycode='$data{'categorycode'}',city='$data{'city'}',area='$data{'area'}',phone='$data{'phone'}', borrowernotes='$data{'borrowernotes'}',altphone='$data{'altphone'}',surname='$data{'surname'}', @@ -130,7 +129,16 @@ sub newmember { my (%data) = @_; my $dbh = C4::Context->dbh; $data{'dateofbirth'}=format_date_in_iso($data{'dateofbirth'}); + $data{'joining'} = &ParseDate("today") unless $data{'joining'}; $data{'joining'}=format_date_in_iso($data{'joining'}); + # if expirydate is not set, calculate it from borrower category subscription duration + unless ($data{'expiry'}) { + my $sth = $dbh->prepare("select enrolmentperiod from categories where categorycode=?"); + $sth->execute($data{'categorycode'}); + my ($enrolmentperiod) = $sth->fetchrow; + $enrolmentperiod = 12 unless ($enrolmentperiod); + $data{'expiry'} = &DateCalc($data{'joining'},"$enrolmentperiod years"); + } $data{'expiry'}=format_date_in_iso($data{'expiry'}); # $data{'borrowernumber'}=NewBorrowerNumber(); my $query="insert into borrowers (title,expiry,cardnumber,sex,ethnotes,streetaddress,faxnumber, diff --git a/koha-tmpl/intranet-tmpl/default/en/members/memberentry.tmpl b/koha-tmpl/intranet-tmpl/default/en/members/memberentry.tmpl index 08ac0aae2a..b0ca6fff8a 100644 --- a/koha-tmpl/intranet-tmpl/default/en/members/memberentry.tmpl +++ b/koha-tmpl/intranet-tmpl/default/en/members/memberentry.tmpl @@ -39,8 +39,6 @@
- "> - "> "> "> @@ -237,6 +235,17 @@ LIBRARY USE + + + Joining date (leave blank for today) + "> + + Joining date + + + Expiry date (leave blank for auto calc) + "> + Borrower message (appears in OPAC) diff --git a/members/memberentry.pl b/members/memberentry.pl index 4a26f79199..d09cd88972 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -261,8 +261,8 @@ if ($delete){ flagloop => \@flagdata, relshiploop => \@relshipdata, "title_".$data->{'title'} => " SELECTED ", - dateenrolled => $data->{'dateenrolled'}, - expiry => $data->{'expiry'}, + joining => format_date($data->{'dateenrolled'}), + expiry => format_date($data->{'expiry'}), cardnumber => $cardnumber, dateofbirth => $data->{'dateofbirth'}, sort1 => $data->{'sort1'},