From cca628a0f296c70e6f2ffd202cff0830c617da12 Mon Sep 17 00:00:00 2001 From: olwen Date: Tue, 18 Jan 2000 04:41:59 +0000 Subject: [PATCH] Fixes for flags --- C4/Circmain.pm | 5 +- C4/Circulation/Borrower.pm | 95 +++++++++++++++++++++++++++----------- C4/Circulation/Renewals.pm | 25 ++++------ C4/Database.pm | 2 +- C4/Interface/FlagsCDK.pm | 10 ++++ 5 files changed, 88 insertions(+), 49 deletions(-) diff --git a/C4/Circmain.pm b/C4/Circmain.pm index e3fe037..91e1cf5 100755 --- a/C4/Circmain.pm +++ b/C4/Circmain.pm @@ -69,10 +69,9 @@ sub Start_circ{ my $data; while ($donext ne 'Quit') { if ($donext eq "Circ") { - clearscreen(); - # #($reason,$data) = menu($env,'console','Circulation', # ('Issues','Returns','Borrower Enquiries','Reserves','Log In')); + #&startint($env,"Menu"); ($reason,$data) = menu($env,'console','Circulation', ('Issues','Returns','Select Branch','Select Printer')); } else { @@ -94,7 +93,7 @@ sub Start_circ{ $donext = $data; } } - &endint($env) + #&endint($env) } diff --git a/C4/Circulation/Borrower.pm b/C4/Circulation/Borrower.pm index da03e64..b7b935c 100755 --- a/C4/Circulation/Borrower.pm +++ b/C4/Circulation/Borrower.pm @@ -184,7 +184,6 @@ sub checktraps { my $amount; while ($traps_done ne "DONE") { my @traps_set; - #debug_msg($env,"entering traps"); $amount=checkaccount($env,$bornum,$dbh); #from C4::Accounts if ($amount > 0) { push (@traps_set,"CHARGES");} if ($borrower->{'gonenoaddress'} == 1){ push (@traps_set,"GNA");} @@ -201,15 +200,13 @@ sub checktraps { &C4::Circulation::Main::checkwaiting($env,$dbh,$bornum); if ($nowaiting > 0) { push (@traps_set,"WAITING"); } if (@traps_set[0] ne "" ) { - $issuesallowed,$traps_done = - process_traps($env,$dbh,$bornum,$borrower, - $amount,$odues,\@traps_set,$itemswaiting); - #debug_msg($env,"returned issuesallowed $env->{'IssuesAllowed'}"); + ($issuesallowed,$traps_done,$amount,$odues) = + process_traps($env,$dbh,$bornum,$borrower, + $amount,$odues,\@traps_set,$itemswaiting); } else { - $traps_done = "DONE"; + $traps_done = "DONE"; } } - #debug_msg($env,"returning issuesallowed $env->{'IssuesAllowed'}"); return ($issuesallowed, $odues,$amount); } @@ -220,31 +217,73 @@ sub process_traps { my %traps; while (@$traps_set[$x] ne "") { $traps{@$traps_set[$x]} = 1; - #debug_msg($env,"set @$traps_set[$x]"); $x++; } my $traps_done; my $trapact; + my $issues; while ($trapact ne "NONE") { - $trapact = &trapscreen($env,$bornum,$borrower,$amount,$traps_set); - if ($trapact eq "CHARGES") { - &reconcileaccount($env,$dbh,$bornum,$amount,$borrower,$odues); - } elsif ($trapact eq "WAITING") { - reserveslist($env,$borrower,$amount,$odues,$waiting); - } elsif ($trapact eq "ODUES") { - &bulkrenew($env,$dbh,$bornum,$amount,$borrower,$odues); - } elsif ($trapact eq "NOTES") { - my $notes = trapsnotes($env,$bornum,$borrower,$amount); - if ($notes ne $borrower->{'borrowernotes'}) { - my $query = "update borrowers set borrowernotes = '$notes' - where borrowernumber = $bornum"; - my $sth = $dbh->prepare($query); - $sth->execute(); - $sth->finish(); - $borrower->{'borrowernotes'} = $notes; - } - } - $traps_done = "DONE"; + $trapact = &trapscreen($env,$bornum,$borrower,$amount,$traps_set); + if ($trapact eq "CHARGES") { + &reconcileaccount($env,$dbh,$bornum,$amount,$borrower,$odues); + ($odues,$issues,$amount)=borrdata2($env,$bornum); + if ($amount <= 0) { + $traps{'CHARGES'} = 0; + my @newtraps; + $x =0; + while ($traps_set->[$x] ne "") { + if ($traps_set->[$x] ne "CHARGES") { + push @newtraps,$traps_set->[$x]; + } + $x++; + } + $traps_set = \@newtraps; + } + } elsif ($trapact eq "WAITING") { + reserveslist($env,$borrower,$amount,$odues,$waiting); + } elsif ($trapact eq "ODUES") { + &bulkrenew($env,$dbh,$bornum,$amount,$borrower,$odues); + ($odues,$issues,$amount)=borrdata2($env,$bornum); + if ($odues == 0) { + $traps{'ODUES'} = 0; + my @newtraps; + $x =0; + while ($traps_set->[$x] ne "") { + if ($traps_set->[$x] ne "ODUES") { + push @newtraps,$traps_set->[$x]; + } + $x++; + } + $traps_set = \@newtraps; + } + } elsif ($trapact eq "NOTES") { + my $notes = trapsnotes($env,$bornum,$borrower,$amount); + if ($notes ne $borrower->{'borrowernotes'}) { + my $query = "update borrowers set borrowernotes = '$notes' + where borrowernumber = $bornum"; + my $sth = $dbh->prepare($query); + $sth->execute(); + $sth->finish(); + $borrower->{'borrowernotes'} = $notes; + } + if ($notes eq "") { + $traps{'NOTES'} = 0; + my @newtraps; + $x =0; + while ($traps_set->[$x] ne "") { + if ($traps_set->[$x] ne "NOTES") { + push @newtraps,$traps_set->[$x]; + } + $x++; + } + $traps_set = \@newtraps; + } + } + my $notr = @$traps_set; + if ($notr == 0) { + $trapact = "NONE"; + } + $traps_done = "DONE"; } if ($traps{'GNA'} eq 1 ) { $issuesallowed=0; @@ -256,7 +295,7 @@ sub process_traps { $issuesallowed=0; } } - return ($issuesallowed,$traps_done); + return ($issuesallowed,$traps_done,$amount,$odues); } # end of process_traps sub Borenq { diff --git a/C4/Circulation/Renewals.pm b/C4/Circulation/Renewals.pm index d773888..1bf6912 100755 --- a/C4/Circulation/Renewals.pm +++ b/C4/Circulation/Renewals.pm @@ -97,7 +97,6 @@ sub renewbook { # mark book as renewed my ($env,$dbh,$bornum,$itemno,$datedue)=@_; if ($datedue eq "" ) { - #debug_msg($env, "getting date"); my $loanlength=21; my $query= "Select * from biblioitems,items,itemtypes where (items.itemnumber = '$itemno') @@ -115,6 +114,8 @@ sub renewbook { my @datearr = localtime($datedu); $datedue = (1900+$datearr[5])."-".($datearr[4]+1)."-".$datearr[3]; } + my @date = split("-",$datedue); + my $odatedue = (@date[2]+0)."-".(@date[1]+0)."-".@date[0]; my $issquery = "select * from issues where borrowernumber='$bornum' and itemnumber='$itemno' and returndate is null"; my $sth=$dbh->prepare($issquery); @@ -122,7 +123,6 @@ sub renewbook { my $issuedata=$sth->fetchrow_hashref; $sth->finish; my $renews = $issuedata->{'renewals'} +1; - #debug_msg($env,"renewing $datedue"); my $updquery = "update issues set date_due = '$datedue', renewals = '$renews' where borrowernumber='$bornum' and @@ -130,7 +130,7 @@ sub renewbook { my $sth=$dbh->prepare($updquery); $sth->execute; $sth->finish; - return(); + return($odatedue); } sub bulkrenew { @@ -146,9 +146,11 @@ sub bulkrenew { my @barcodes; while (my $issrec = $sth->fetchrow_hashref) { my $itemdata = C4::Search::itemnodata($env,$dbh,$issrec->{'itemnumber'}); - my $line = $issrec->{'date_due'}." "; - my $line = $line.fmtdec($env,$issrec->{'renewals'},"20")." "; - my $line = $line.$itemdata->{'barcode'}." ".$itemdata->{'title'}; + my @date = split("-",$issrec->{'date_due'}); + #my $line = $issrec->{'date_due'}." "; + my $line = @date[2]."-".@date[1]."-".@date[0]." "; + $line = $line.fmtdec($env,$issrec->{'renewals'},"20")." "; + $line = $line.$itemdata->{'barcode'}." ".$itemdata->{'title'}; $items[$x] = $line; #debug_msg($env,$line); $issues[$x] = $issrec; @@ -170,7 +172,6 @@ sub bulkrenew { my $y = 0; my @renew_errors = ""; while ($x < $isscnt) { - if (@$renews[$x] == 1) { my $issrec = $issues[$x]; renewbook($env,$dbh,$issrec->{'borrowernumber'},$issrec->{'itemnumber'},""); @@ -178,15 +179,5 @@ sub bulkrenew { $x++; } $sth->finish(); - #if ($barcodes[0] ne "") { - # my $errmsg = join(@barcodes,","); - # if ($barcodes[1] eq "") { - # $errmsg = $errmsg." has"; - # } else { - # $errmsg = $errmsg." have"; - # } - # $errmsg = $errmsg." been renewed before"; - # C4::InterfaceCDK::error_msg($env,$errmsg); - #} } END { } # module clean-up code here (global destructor) diff --git a/C4/Database.pm b/C4/Database.pm index 8498367..320a228 100755 --- a/C4/Database.pm +++ b/C4/Database.pm @@ -53,7 +53,7 @@ my $priv_func = sub { sub C4Connect { my $dbname="c4"; # my $dbh = DBI->connect("dbi:Pg:dbname=$dbname", "chris", ""); - my $database='koha2'; + my $database='c4test'; my $hostname='localhost'; my $user='hdl'; my $pass='testing'; diff --git a/C4/Interface/FlagsCDK.pm b/C4/Interface/FlagsCDK.pm index 59a31e5..6f84720 100755 --- a/C4/Interface/FlagsCDK.pm +++ b/C4/Interface/FlagsCDK.pm @@ -90,6 +90,16 @@ sub trapsnotes { my $notes = $notesbox->activate(); if (!defined $notes) { $notes = $borrower->{'borrowernotes'}; + } else { + while (substr($notes,0,1) eq " ") { + my $temp; + if (length($notes) == 1) { + $temp = ""; + } else { + $temp = substr($notes,1,length($notes)-1); + } + $notes = $temp; + } } undef $notesbox; undef $borpanel;