koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/acqui acquire.pl


From: Mason James
Subject: [Koha-cvs] koha/acqui acquire.pl
Date: Wed, 12 Jul 2006 14:56:52 +0000

CVSROOT:        /sources/koha
Module name:    koha
Changes by:     Mason James <sushi>     06/07/12 14:56:52

Modified files:
        acqui          : acquire.pl 

Log message:
        big change from Katipo.
        ------------------------------
        - Results for 'mutli orders with matching titles attached to same 
bibitem'  now split into new .tmpl file, "acquire-multi-order.tmpl".
        - this script/tmpl does 3 things!?!, pulled search results out of 
acquire.pl, now points to searchresults.tmpl.
        - little fix to display correct supplier info in acquire.pl's 'detail' 
view.
        - Little fix on previous commit, now doesnt break single order acquire 
view.
        - Fix for RT:698 
https://staff.katipo.co.nz/rt/Ticket/Display.html?id=698.
        - now display correct supplier title when 0 results returned.
        - Now pickes up basketno, to display as url to tmpl.
        - Adding in fix for bibitems with more than one matching order.
        - Rolled back to prod version, added 'create new bib-group' fix.
        - Mason's ACQ fixes from HLT-DEV , work in progress
        - Now does a lookup in aqorders, for all existing orders matching  
biblioitems, then presents all matching orders in a table. this feature can be 
overridden by calling acquire.pl with multiorderseach=n in url, acquire.pl will 
instead go to specific order.
        - Now catches, and returns to acquire.pl if newitems() fails.
        - Now takes a barcodeerror value as arg.
        - 'create new biblioitems' checkbox now only apears for bibitems with 
>= 1 items attached.
        - adding stuff to let hlt have an accession date link from 
moredetail.tmpl
          that actually does something other than break biblioitems - not 
working yet
        - Added output for volume as well as volumeddesc
        - Added volume description to output loop
        - Making change for bug #3676 displaying date unformatted
        - More bugfixing this time a bug not saving volume info
        - Fix for bug 3529, allow freight to be distributed among the items
        - added a sprintf to get the number displaying in normal notation
        - Altered the auto_barcode to actually get something other than 1
          but now got a problem with the result displaying in scientific 
notation

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/acqui/acquire.pl?cvsroot=koha&r1=1.22&r2=1.23

Patches:
Index: acquire.pl
===================================================================
RCS file: /sources/koha/koha/acqui/acquire.pl,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- acquire.pl  7 Jun 2006 02:59:10 -0000       1.22
+++ acquire.pl  12 Jul 2006 14:56:52 -0000      1.23
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: acquire.pl,v 1.22 2006/06/07 02:59:10 sushi Exp $
+# $Id: acquire.pl,v 1.23 2006/07/12 14:56:52 sushi Exp $
 
 #script to recieve orders
 #written by address@hidden 24/2/2000
@@ -25,11 +25,17 @@
 use CGI;
 use C4::Context;
 use C4::Acquisition;
-use C4::Koha;
+use C4::Biblio;
+use C4::Output;
+use C4::Search;
 use C4::Auth;
 use C4::Interface::CGI::Output;
+use C4::Database;
+use HTML::Template;
 use C4::Date;
 
+use Data::Dumper;
+
 my $input      = new CGI;
 my $supplierid = $input->param('supplierid');
 my $dbh        = C4::Context->dbh;
@@ -38,17 +44,134 @@
 my $invoice = $input->param('invoice');
 my $freight = $input->param('freight');
 my $biblio  = $input->param('biblio');
+my $biblioitem  = $input->param('bibitem');       # added my mason 20060324
 my $catview = $input->param('catview');
 my $gst     = $input->param('gst');
+my $noitems     = $input->param('items');
+my $set_barcode = $input->param('set_barcode');
+my $library_name = C4::Context->preference("LibraryName");
+
 my ( $count, @results ) =
   ordersearch( $search, $supplierid, $biblio, $catview );
 
-# warn "C:$count for ordersearch($search,$supplierid,$biblio,$catview);";
-my ( $count2, @booksellers ) = bookseller( $results[0]->{'booksellerid'} );
+if ( $library_name eq "Horowhenua Library Trust" && $count > 1 ) {
+    ( $count, @results ) = ordersearch( $search, $biblio, $catview );
+
+}
+
+#warn "COUNT = $count";
+#warn "C:$count for ordersearch($search,$supplierid,$biblio,$catview);";
+
+my ( $count2, @booksellers );
+if ( $count == 1 ) {
+    ( $count2, @booksellers ) = bookseller( $results[0]->{'booksellerid'} );
+}
+else {
+    ( $count2, @booksellers ) = bookseller($supplierid);
+}
+
+#warn Dumper @results;
+
 my $date = $results[0]->{'entrydate'};
+my $exchange = getcurrency( $booksellers[0]->{'listprice'} );
+
+my $no_multi = $input->param('no_multi');
+
+#-------------------------
+
+# bugzilla: http://bugzilla.katipo.co.nz/show_bug.cgi?id=3916 , mason.
+# ok lets do a lookup to see how many orders exist for a bibitem, if there are 
>1,
+# then we need to display them  to the user so they can choose, because the 
system cant
+# work it out, as there are no itemnumbers stored in the aqorders records :(
+
+my @results2;
+
+#warn "MASON BIBITEM=  $biblioitem";
+my $query2 = " select * from aqorders where biblioitemnumber =?";
+my $sth2   = $dbh->prepare($query2);
+$sth2->execute($biblioitem);
+while ( my $data2 = $sth2->fetchrow_hashref ) {
+
+    #warn $data2;
+
+    #warn Dumper "DATA2:", $data2->{'basketno'};
+    my $query3 = " select * from aqbasket where basketno =?";
+    my $sth3   = $dbh->prepare($query3);
+    $sth3->execute( $data2->{'basketno'} );
+    my $data3 = $sth3->fetchrow_hashref;
+
+    #warn Dumper $data3;
+    $data2->{'booksellerid'} = $data3->{'booksellerid'};
+    push( @results2, $data2 );
+}
+$sth2->finish;
+
+#warn Dumper @results2;
+
+my @loop;
+my $result_count = scalar(@results2);
 
-my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+#warn "MULTI REESULT $result_count";
+#warn "NO_MULTI =  $no_multi";
+my  ( $template, $loggedinuser, $cookie );
+
+if ( $result_count > 1 && $no_multi != 1 ) {
+
+    ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
+            template_name   => "acqui/acquire-multi-order.tmpl",
+            query           => $input,
+            type            => "intranet",
+            authnotrequired => 0,
+            flagsrequired   => { acquisition => 1 },
+            debug           => 1,
+        }
+    );
+
+    #warn "IN MULTI IF \n";
+
+    # cool, now lets shove the results into a loop
+    for ( my $i = 0 ; $i < $result_count ; $i++ ) {
+        my %line;
+
+        $line{booksellerid}            = $results2[$i]->{'booksellerid'};
+        $line{biblionumber}            = $results2[$i]->{'biblionumber'};
+        $line{biblioitemnumber}        = $results2[$i]->{'biblioitemnumber'};
+        $line{ordernumber}             = $results2[$i]->{'ordernumber'};
+        $line{title}                   = $results2[$i]->{'title'};
+        $line{booksellerinvoicenumber} =
+          $results[$i]->{'booksellerinvoicenumber'};
+        $line{datereceived}        = $results2[$i]->{'datereceived'};
+        $line{entrydate}           = $results2[$i]->{'entrydate'};
+        $line{quantity}            = $results2[$i]->{'quantity'};
+        $line{listprice}           = $results2[$i]->{'listprice'};
+        $line{freight}             = $results2[$i]->{'freight'};
+        $line{unitprice}           = $results2[$i]->{'unitprice'};
+        $line{quantityreceived}    = $results2[$i]->{'quantityreceived'};
+        $line{supplierreference}   = $results2[$i]->{'supplierreference'};
+        $line{purchaseordernumber} = $results2[$i]->{'purchaseordernumber'};
+        $line{basketno}            = $results2[$i]->{'basketno'};
+        $line{timestamp}           = $results2[$i]->{'timestamp'};
+        $line{rrp}                 = $results2[$i]->{'rrp'};
+        $line{budgetdate}          = $results2[$i]->{'budgetdate'};
+        push @loop, \%line;
+
+        #warn "LOOPING", $results2[$i]->{'ordernumber'};
+    }
+
+    $template->param(
+        loop       => address@hidden,
+        multi      => 1,
+        biblio     => $biblio,
+        biblioitem => $biblioitem,
+    );
+
+}
+elsif ( $count == 1 ) {
+
+    ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+        {
+
         template_name   => "acqui/acquire.tmpl",
         query           => $input,
         type            => "intranet",
@@ -56,48 +179,117 @@
         flagsrequired   => { acquisition => 1 },
         debug           => 1,
     }
-);
-$template->param($count);
-my $sthtemp =
-  $dbh->prepare(
-    "Select flags, branchcode from borrowers where borrowernumber = ?");
-$sthtemp->execute($loggedinuser);
-my ( $flags, $homebranch ) = $sthtemp->fetchrow;
+    );
 
-if ( $count == 1 ) {
+    #warn "NO MULTI\n";
+
+    my $itemtype2 = $results[0]->{'itemtype'};
+    my $freightperitem;
+    if ( $results[0]->{'freight'} > 0 ) {
+        $freightperitem = $results[0]->{'freight'};
+    }
+    else {
+        if ( $noitems > 0 ) {
+            $freightperitem = $freight / $noitems;
+        }
+    }
+    $freightperitem = sprintf( "%.2f", $freightperitem );
     my $sth;
+    my $sth =
+      $dbh->prepare(
+        "Select itemtype,description from itemtypes order by description");
+    $sth->execute;
+    my @itemtype;
+    my %itemtypes;
+    push @itemtype, "";
+    $itemtypes{''} = "Please choose";
+
+    while ( my ( $value, $lib ) = $sth->fetchrow_array ) {
+        push @itemtype, $value;
+        $itemtypes{$value} = $lib;
+    }
 
-    my $branches = getbranches;
-    my @branchloop;
-    foreach my $thisbranch ( sort keys %$branches ) {
-        my %row = (
-            value      => $thisbranch,
-            branchname => $branches->{$thisbranch}->{'branchname'},
+    my $CGIitemtype = CGI::scrolling_list(
+        -name     => 'format',
+        -values   => address@hidden,
+        -default  => $results[0]->{'itemtype'},
+        -labels   => \%itemtypes,
+        -size     => 1,
+        -multiple => 0
         );
-        push @branchloop, \%row;
+    $sth->finish;
+
+    my @branches;
+    my @select_branch;
+    my %select_branches;
+    my ( $count2, @branches ) = branches();
+    for ( my $i = 0 ; $i < $count2 ; $i++ ) {
+        push @select_branch, $branches[$i]->{'branchcode'};    #
+        $select_branches{ $branches[$i]->{'branchcode'} } =
+          $branches[$i]->{'branchname'};
     }
+    my $CGIbranch = CGI::scrolling_list(
+        -name     => 'branch',
+        -values   => address@hidden,
+        -default  => $results[0]->{'branchcode'},
+        -labels   => \%select_branches,
+        -size     => 1,
+        -multiple => 0
+    );
 
     my $auto_barcode = C4::Context->boolean_preference("autoBarcode") || 0;
+    #warn "ACQIRE AUTO BARCODE = $auto_barcode";
 
     # See whether barcodes should be automatically allocated.
     # Defaults to 0, meaning "no".
     my $barcode;
     if ( $auto_barcode eq '1' ) {
-        $sth = $dbh->prepare("Select max(barcode) from items");
+        $sth = $dbh->prepare("Select max(barcode) barcode from items");
         $sth->execute;
-        my $data = $sth->fetchrow_hashref;
-        $barcode = $results[0]->{'barcode'} + 1;
+        my @data_results;
+        while ( my $data = $sth->fetchrow_hashref ) {
+            push( @data_results, $data );
+        }
+        $barcode = @data_results[0]->{'barcode'} + 1;
+        #warn 'moo', @data_results[0]->{'barcode'};
+        #warn "auto Barcode = $barcode";
+
+        #$barcode = sprintf( "%.0f", $barcode );
+        #warn "auto Barcode = $barcode";
         $sth->finish;
+
+        my $moo = 'TEST777';
+        $moo = $moo + 1;
+        #warn $moo;
     }
 
+    my @bookfund;
+    my @select_bookfund;
+    my %select_bookfunds;
+    ( $count2, @bookfund ) = bookfunds();
+    for ( my $i = 0 ; $i < $count2 ; $i++ ) {
+        push @select_bookfund, $bookfund[$i]->{'bookfundid'};
+        $select_bookfunds{ $bookfund[$i]->{'bookfundid'} } =
+          $bookfund[$i]->{'bookfundname'};
+    }
+    my $CGIbookfund = CGI::scrolling_list(
+        -name     => 'bookfund',
+        -values   => address@hidden,
+        -default  => $results[0]->{'bookfundid'},
+        -labels   => \%select_bookfunds,
+        -size     => 1,
+        -multiple => 0
+    );
+
     if ( $results[0]->{'quantityreceived'} == 0 ) {
         $results[0]->{'quantityreceived'} = '';
     }
     if ( $results[0]->{'unitprice'} == 0 ) {
         $results[0]->{'unitprice'} = '';
     }
+
+    #warn Dumper( $results[0] );
     $template->param(
-        branchloop       => address@hidden,
         count            => 1,
         biblionumber     => $results[0]->{'biblionumber'},
         ordernumber      => $results[0]->{'ordernumber'},
@@ -105,17 +297,28 @@
         supplierid       => $results[0]->{'booksellerid'},
         freight          => $freight,
         gst              => $gst,
-        catview          => ( $catview ne 'yes' ? 1 : 0 ),
+        noitems          => $noitems,
+
+        #              catview => ($catview ne 'yes'?1:0),
+        catview       => $catview,
         name             => $booksellers[0]->{'name'},
         date             => format_date($date),
         title            => $results[0]->{'title'},
         author           => $results[0]->{'author'},
-        copyrightdate    => format_date( $results[0]->{'copyrightdate'} ),
-        itemtype         => $results[0]->{'itemtype'},
+        copyrightdate => $results[0]->{'copyrightdate'},
+
+        #              copyrightdate => 
format_date($results[0]->{'copyrightdate'}),
+        #              itemtype => $results[0]->{'itemtype'},
+        CGIbranch   => $CGIbranch,
+        CGIbookfund => $CGIbookfund,
+        CGIitemtype => $CGIitemtype,
         isbn             => $results[0]->{'isbn'},
         seriestitle      => $results[0]->{'seriestitle'},
+        volinf      => $results[0]->{'volumeddesc'},
         barcode          => $barcode,
-        bookfund         => $results[0]->{'bookfundid'},
+        set_barcode => $set_barcode,
+
+        #              bookfund => $results[0]->{'bookfundid'},
         quantity         => $results[0]->{'quantity'},
         quantityreceived => $results[0]->{'quantityreceived'},
         rrp              => $results[0]->{'rrp'},
@@ -123,9 +326,51 @@
         unitprice        => $results[0]->{'unitprice'},
         invoice          => $invoice,
         notes            => $results[0]->{'notes'},
+        freightperitem   => $freightperitem,
+        nocalc           => $booksellers[0]->{'nocalc'},
+        invoicedisc      => $booksellers[0]->{'invoicedisc'},
+        invoiceinc       => $booksellers[0]->{'invoiceincgst'},
+        applygst         => $booksellers[0]->{'gstreg'},
+        discount         => $booksellers[0]->{'discount'},
+
+        supplierid => $booksellers[0]->{'id'},
+
+        currency                => $exchange->{'rate'},
+        basketno                => $results[0]->{'basketno'},
+        booksellerinvoicenumber => $results[0]->{'booksellerinvoicenumber'},
+        itemtype2 => $itemtype2,    #added by mason BGZLA:3823
+
     );
+
+    #warn Dumper $booksellers[0];
+    #warn Dumper $results[0];
+
+# MASON: this is a little fix, to ensure that the 'create new biblio group' 
checkbox        # ONLY appears in acquire.tmpl for biblioitems that already 
have 1 OR MORE items
+# attached to them.
+    my $biblioitemnumber = $results[0]->{'biblioitemnumber'};
+    my $error            = &countitems($biblioitemnumber);
+
+    #warn "MASON: number of items for $biblioitemnumber = $error";
+    if ( $error > 0 ) {
+        $template->param( createbibitem => 'YES' );
+    }
+
 }
-else {
+else {    # whats this loop for ??? mason
+          # why this loop when acqui
+
+    ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+        {
+
+            template_name   => "acqui/searchresult.tmpl",
+            query           => $input,
+            type            => "intranet",
+            authnotrequired => 0,
+            flagsrequired   => { acquisition => 1 },
+            debug           => 1,
+        }
+    );
+
     my @loop;
     for ( my $i = 0 ; $i < $count ; $i++ ) {
         my %line;
@@ -140,7 +385,10 @@
         $line{gst}              = $gst;
         $line{title}            = $results[$i]->{'title'};
         $line{author}           = $results[$i]->{'author'};
+        $line{vol}              = $results[$i]->{'volume'};
+        $line{volinf}           = $results[$i]->{'volumeddesc'};
         $line{supplierid}       = $supplierid;
+        $line{noitems}          = $noitems;
         push @loop, \%line;
     }
     $template->param(
@@ -149,7 +397,10 @@
         name       => $booksellers[0]->{'name'},
         supplierid => $supplierid,
         invoice    => $invoice,
+        search     => $search
     );
+    warn "MASON: search= $search";
 
 }
-output_html_with_http_headers $input, $cookie, $template->output;
+
+output_html_with_http_headers $input, $cookie, $template->output;Chris




reply via email to

[Prev in Thread] Current Thread [Next in Thread]