rel_3_0 moved to HEAD
[koha.git] / catalogue / moredetail.pl
index b46bffb..4c2af3f 100755 (executable)
@@ -1,7 +1,4 @@
 #!/usr/bin/perl
-# NOTE: Use standard 8-space tabs for this file (indents are 4 spaces)
-
-# $Id$
 
 # Copyright 2000-2003 Katipo Communications
 #
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
+# $Id$
+
 use strict;
 require Exporter;
 use C4::Koha;
 use CGI;
-use C4::Search;
+use C4::Biblio;             # to use &GetBiblioItemData &itemissues
 use C4::Acquisition;
+use C4::Output;             # contains gettemplate
 use C4::Auth;
 use C4::Interface::CGI::Output;
 use C4::Date;
-use C4::Context;
-use C4::Biblio;
-use C4::Accounts2;
-use C4::Circulation::Circ2;
+use C4::Circulation::Circ2;  # to use itemissues
 
-my $dbh=C4::Context->dbh;
 my $query=new CGI;
 
+# FIXME  subject is not exported to the template?
+my $subject=$query->param('subject');
 
+# if its a subject we need to use the subject.tmpl
 my ($template, $loggedinuser, $cookie) = get_template_and_user({
-       template_name   => ( 'catalogue/moredetail.tmpl'),
-       query           => $query,
-       type            => "intranet",
-       authnotrequired => 0,
-       flagsrequired   => {catalogue => 1},
+    template_name   => ($subject? 'catalogue/subject.tmpl':
+                      'catalogue/moredetail.tmpl'),
+    query           => $query,
+    type            => "intranet",
+    authnotrequired => 0,
+    flagsrequired   => {catalogue => 1},
     });
 
 # get variables
-my $op=$query->param('op');
-my $lost=$query->param('lost');
-my $withdrawn=$query->param('withdrawn');
-my $override=$query->param('override');
-my $itemnumber=$query->param('itemnumber');
-my $barcode=$query->param('barcode');
 
-my $title=$query->param('title');
 my $biblionumber=$query->param('biblionumber');
-my ($record)=XMLgetbibliohash($dbh,$biblionumber);
-my $data=XMLmarc2koha_onerecord($dbh,$record,"biblios");
+my $title=$query->param('title');
+my $bi=$query->param('bi');
+
+my $data=GetBiblioItemData($bi);
 my $dewey = $data->{'dewey'};
 # FIXME Dewey is a string, not a number, & we should use a function
 $dewey =~ s/0+$//;
@@ -72,80 +67,12 @@ $data->{'dewey'}=$dewey;
 
 my @results;
 
-my @items;
-if ($op eq "update"){
-my $env;
-##Do Lost or Withdraw here
-my $flag=0;
-  my ($resbor,$resrec)=C4::Reserves2::CheckReserves($env,$dbh,$itemnumber);
-if ($override ne "yes"){
-  if ($resbor){
-#    print $query->header;
-    $template->param(error => "This item   has a reserve on it");
- $template->param(biblionumber =>$biblionumber);
- $template->param(itemnumber =>$itemnumber);
- $template->param(lost =>$lost);
- $template->param(withdrawn =>$withdrawn);
-    $flag=1;
-  }
-  my $sth=$dbh->prepare("Select * from issues where (itemnumber=?) and (returndate is null)");
-  $sth->execute($itemnumber);
-  if (my $data=$sth->fetchrow_hashref) {
-   $template->param(biblionumber =>$biblionumber);
- $template->param(itemnumber =>$itemnumber);
- $template->param(error => "This item   is On Loan to a member");
- $template->param(lost =>$lost);
- $template->param(withdrawn =>$withdrawn);
-    $flag=2;
-  }
-}
-if ($flag != 0 && $override ne "yes"){
-
-  }else {
-   ##UPDATE here
-
-XMLmoditemonefield($dbh,$biblionumber,$itemnumber,'wthdrawn',$withdrawn,1);
-XMLmoditemonefield($dbh,$biblionumber,$itemnumber,'itemlost',$lost);
-
-     if ($lost ==1 && $flag ==2){
-    my $sth=$dbh->prepare("Select * from issues where (itemnumber=?) and (returndate is null)");
-    $sth->execute($itemnumber);
-    my $data=$sth->fetchrow_hashref;
-    if ($data->{'borrowernumber'} ne '') {
-      #item on issue add replacement cost to borrowers record
-      my $accountno=getnextacctno($env,$data->{'borrowernumber'},$dbh);
-      my $item=getiteminformation($env, $itemnumber);
-      my $sth2=$dbh->prepare("Insert into accountlines
-      (borrowernumber,accountno,date,amount,description,accounttype,amountoutstanding,itemnumber)
-      values
-      (?,?,now(),?,?,'L',?,?)");
-      $sth2->execute($data->{'borrowernumber'},$accountno,$item->{'replacementprice'},
-      "Lost Item $item->{'title'} $item->{'barcode'}",
-      $item->{'replacementprice'},$itemnumber);
-      $sth2->finish;
-    }
-    }
-       if ($flag==1){
-       foreach my $res ($resrec){
-       C4::Reserves2::CancelReseve(undef,$res->{itemnumber},$res->{borrowernumber});
-       }
-       }
-    
-  }
-}
-my @itemrecords=XMLgetallitems($dbh,$biblionumber);
-foreach my $itemrecord (@itemrecords){
-$itemrecord=XML_xml2hash_onerecord($itemrecord);
-my $items = XMLmarc2koha_onerecord($dbh,$itemrecord,"holdings");
-$items->{itemtype}=$data->{itemtype};
-$items->{biblionumber}=$biblionumber;
-$items=itemissues($dbh,$items,$items->{'itemnumber'});
-push @items,$items;
-}
+my (@items)= itemissues($bi);
 my $count=@items;
 $data->{'count'}=$count;
-my ($order,$ordernum)=GetOrder($biblionumber,$barcode);
+
+my $ordernum = GetOrderNumber($biblionumber,$bi);
+my $order = GetOrder($ordernum);
 
 my $env;
 $env->{itemcount}=1;
@@ -160,14 +87,13 @@ foreach my $item (@items){
     $item->{'ordernumber'} = $ordernum;
     $item->{'booksellerinvoicenumber'} = $order->{'booksellerinvoicenumber'};
 
-    if ($item->{'date_due'} gt '0000-00-00'){
-       $item->{'date_due'} = format_date($item->{'date_due'});         
-$item->{'issue'}= 1;
-               $item->{'borrowernumber'} = $item->{'borrower'};
-               $item->{'cardnumber'} = $item->{'card'};
-                       
+    if ($item->{'date_due'} eq 'Available'){
+        $item->{'issue'}= 0;
     } else {
-       $item->{'issue'}= 0;
+        $item->{'date_due'} = format_date($item->{'date_due'});
+        $item->{'issue'}= 1;
+        $item->{'borrowernumber'} = $item->{'borrower'};
+        $item->{'cardnumber'} = $item->{'card'};
     }
 }
 
@@ -177,7 +103,3 @@ $template->param(loggedinuser => $loggedinuser);
 
 output_html_with_http_headers $query, $cookie, $template->output;
 
-
-# Local Variables:
-# tab-width: 8
-# End: