[Koha-patches] [PATCH] Bug 4510 Script processes single supplier not an array

Colin Campbell colin.campbell at ptfs-europe.com
Sat May 15 16:12:33 CEST 2010


Script was written as though it had an array rather than
a single supplier. Replaced the excess punctuation with a single
supplier variable

replaced the C-style currency loop with a simpler perl-style one
Changed variable name $GST to $tax it's not magical and not a constant
and we all know what tax is

removed use Contract which was generating errors as it redefined
subroutines in the Acquisitions module
removed introduction of unneeded variable to test contract returns
---
 acqui/supplier.pl |  181 ++++++++++++++++++++++++++---------------------------
 1 files changed, 89 insertions(+), 92 deletions(-)

diff --git a/acqui/supplier.pl b/acqui/supplier.pl
index c3a5db4..99e7bb3 100755
--- a/acqui/supplier.pl
+++ b/acqui/supplier.pl
@@ -1,10 +1,8 @@
 #!/usr/bin/perl
 
-
-#script to show display basket of orders
-
 # Copyright 2000-2002 Katipo Communications
 # Copyright 2008-2009 BibLibre SARL
+# Copyright 2010 PTFS Europe Ltd
 #
 # This file is part of Koha.
 #
@@ -44,7 +42,6 @@ use strict;
 use warnings;
 use C4::Auth;
 use C4::Acquisition;
-use C4::Contract;
 use C4::Biblio;
 use C4::Output;
 use C4::Dates qw/format_date /;
@@ -55,30 +52,32 @@ use C4::Budgets;
 
 my $query       = new CGI;
 my $id          = $query->param('supplierid');
-my @booksellers = GetBookSellerFromId($id) if $id;
-my $count       = scalar @booksellers;
+my $supplier    = GetBookSellerFromId($id);
+if (!$supplier) {
+    print $query->redirect('/cgi-bin/koha/acqui/acqui-home.pl');
+    exit;
+}
 my $op          = $query->param('op') || "display";
 my ($template, $loggedinuser, $cookie) = get_template_and_user(
-	{   template_name   => "acqui/supplier.tmpl",
-		query           => $query,
-		type            => "intranet",
-		authnotrequired => 0,
-		flagsrequired   => { acquisition => 'vendors_manage' },
-		debug           => 1,
-	}
+    {   template_name   => 'acqui/supplier.tmpl',
+        query           => $query,
+        type            => 'intranet',
+        authnotrequired => 0,
+        flagsrequired   => { acquisition => 'vendors_manage' },
+        debug           => 1,
+    }
 );
-my $seller_gstrate = $booksellers[0]->{'gstrate'};
+my $seller_gstrate = $supplier->{'gstrate'};
 # A perl-ism: '0'==false, '0.000'==true, but 0=='0.000' - this accounts for that
 undef $seller_gstrate if ($seller_gstrate == 0);
-my $GST = $seller_gstrate || C4::Context->preference("gist");
-$GST *= 100;
+my $tax = $seller_gstrate || C4::Context->preference('gist');
+$tax *= 100;
 
 my @contracts = GetContracts($id);
-my $contractcount = scalar(@contracts);
-$template->param(hascontracts => 1) if ($contractcount > 0);
+$template->param(hascontracts => 1) if (@contracts);
 
 #build array for currencies
-if ($op eq "display") {
+if ($op eq 'display') {
 
     # get contracts
     my @contracts = @{GetContract( { booksellerid => $id } )};
@@ -89,92 +88,90 @@ if ($op eq "display") {
         $$_{contractenddate}   = format_date($$_{contractenddate});
     }
 
-	$template->param(
-		id            => $id,
-		name          => $booksellers[0]->{'name'},
-		postal        => $booksellers[0]->{'postal'},
-		address1      => $booksellers[0]->{'address1'},
-		address2      => $booksellers[0]->{'address2'},
-		address3      => $booksellers[0]->{'address3'},
-		address4      => $booksellers[0]->{'address4'},
-		phone         => $booksellers[0]->{'phone'},
-		fax           => $booksellers[0]->{'fax'},
-		url           => $booksellers[0]->{'url'},
-		contact       => $booksellers[0]->{'contact'},
-		contpos       => $booksellers[0]->{'contpos'},
-		contphone     => $booksellers[0]->{'contphone'},
-		contaltphone  => $booksellers[0]->{'contaltphone'},
-		contfax       => $booksellers[0]->{'contfax'},
-		contemail     => $booksellers[0]->{'contemail'},
-		contnotes     => $booksellers[0]->{'contnotes'},
-		notes         => $booksellers[0]->{'notes'},
-		active        => $booksellers[0]->{'active'},
-		gstreg        => $booksellers[0]->{'gstreg'},
-		listincgst    => $booksellers[0]->{'listincgst'},
-		invoiceincgst => $booksellers[0]->{'invoiceincgst'},
-		gstrate       => $booksellers[0]->{'gstrate'}*100,
-		discount      => $booksellers[0]->{'discount'},
-		invoiceprice  => $booksellers[0]->{'invoiceprice'},
-		listprice     => $booksellers[0]->{'listprice'},
-		GST           => $GST,
-		basketcount   => $booksellers[0]->{'basketcount'},
-		contracts     => \@contracts
-	);
+    $template->param(
+        id            => $id,
+        name          => $supplier->{'name'},
+        postal        => $supplier->{'postal'},
+        address1      => $supplier->{'address1'},
+        address2      => $supplier->{'address2'},
+        address3      => $supplier->{'address3'},
+        address4      => $supplier->{'address4'},
+        phone         => $supplier->{'phone'},
+        fax           => $supplier->{'fax'},
+        url           => $supplier->{'url'},
+        contact       => $supplier->{'contact'},
+        contpos       => $supplier->{'contpos'},
+        contphone     => $supplier->{'contphone'},
+        contaltphone  => $supplier->{'contaltphone'},
+        contfax       => $supplier->{'contfax'},
+        contemail     => $supplier->{'contemail'},
+        contnotes     => $supplier->{'contnotes'},
+        notes         => $supplier->{'notes'},
+        active        => $supplier->{'active'},
+        gstreg        => $supplier->{'gstreg'},
+        listincgst    => $supplier->{'listincgst'},
+        invoiceincgst => $supplier->{'invoiceincgst'},
+        gstrate       => $supplier->{'gstrate'}*100,
+        discount      => $supplier->{'discount'},
+        invoiceprice  => $supplier->{'invoiceprice'},
+        listprice     => $supplier->{'listprice'},
+        GST           => $tax,
+        basketcount   => $supplier->{'basketcount'},
+        contracts     => \@contracts
+    );
 }
 elsif ($op eq 'delete') {
-  &DelBookseller($id);
-  print $query->redirect("/cgi-bin/koha/acqui/acqui-home.pl");
+  DelBookseller($id);
+  print $query->redirect('/cgi-bin/koha/acqui/acqui-home.pl');
   exit;
 } else {
     my @currencies = GetCurrencies();
     my $count = scalar @currencies;
-    
+
     my @loop_pricescurrency;
     my @loop_invoicecurrency;
-    for (my $i=0;$i<$count;$i++) {
-        if ($booksellers[0]->{'listprice'} eq $currencies[$i]->{'currency'}) {
-            push @loop_pricescurrency, { currency => "<option selected=\"selected\" value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'currency'}</option>" };
+    for my $curr ( @currencies ) {
+        if ($supplier->{'listprice'} eq $curr->{'currency'}) {
+            push @loop_pricescurrency, { currency => "<option selected=\"selected\" value=\"$curr->{'currency'}\">$curr->{'currency'}</option>" };
         } else {
-            push @loop_pricescurrency, { currency => "<option value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'currency'}</option>"};
+            push @loop_pricescurrency, { currency => "<option value=\"$curr->{'currency'}\">$curr->{'currency'}</option>"};
         }
-        if ($booksellers[0]->{'invoiceprice'} eq $currencies[$i]->{'currency'}) {
-            push @loop_invoicecurrency, { currency => "<option selected=\"selected\" value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'currency'}</option>"};
+        if ($supplier->{'invoiceprice'} eq $curr->{'currency'}) {
+            push @loop_invoicecurrency, { currency => "<option selected=\"selected\" value=\"$curr->{'currency'}\">$curr->{'currency'}</option>"};
         } else {
-            push @loop_invoicecurrency, { currency => "<option value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'currency'}</option>"};
+            push @loop_invoicecurrency, { currency => "<option value=\"$curr->{'currency'}\">$curr->{'currency'}</option>"};
         }
     }
-	$template->param(
-		id                   => $id,
-		name                 => $booksellers[0]->{'name'},
-		postal               => $booksellers[0]->{'postal'},
-		address1             => $booksellers[0]->{'address1'},
-		address2             => $booksellers[0]->{'address2'},
-		address3             => $booksellers[0]->{'address3'},
-		address4             => $booksellers[0]->{'address4'},
-		phone                => $booksellers[0]->{'phone'},
-		fax                  => $booksellers[0]->{'fax'},
-		url                  => $booksellers[0]->{'url'},
-		contact              => $booksellers[0]->{'contact'},
-		contpos              => $booksellers[0]->{'contpos'},
-		contphone            => $booksellers[0]->{'contphone'},
-		contaltphone         => $booksellers[0]->{'contaltphone'},
-		contfax              => $booksellers[0]->{'contfax'},
-		contemail            => $booksellers[0]->{'contemail'},
-		contnotes            => $booksellers[0]->{'contnotes'},
-		notes                => $booksellers[0]->{'notes'},
-		active               => $id?$booksellers[0]->{'active'}:1, # set active ON by default for supplier add (id empty for add)
-		gstreg               => $booksellers[0]->{'gstreg'},
-		listincgst           => $booksellers[0]->{'listincgst'},
-		invoiceincgst        => $booksellers[0]->{'invoiceincgst'},
-		gstrate              => $booksellers[0]->{'gstrate'}*100,
-		discount             => $booksellers[0]->{'discount'},
-		loop_pricescurrency  => \@loop_pricescurrency,
-		loop_invoicecurrency => \@loop_invoicecurrency,
-		GST                  => $GST,
-		enter                => 1,
-	);
+    $template->param(
+        id                   => $id,
+        name                 => $supplier->{name},
+        postal               => $supplier->{postal},
+        address1             => $supplier->{address1},
+        address2             => $supplier->{address2},
+        address3             => $supplier->{address3},
+        address4             => $supplier->{address4},
+        phone                => $supplier->{phone},
+        fax                  => $supplier->{fax},
+        url                  => $supplier->{url},
+        contact              => $supplier->{contact},
+        contpos              => $supplier->{contpos},
+        contphone            => $supplier->{contphone},
+        contaltphone         => $supplier->{contaltphone},
+        contfax              => $supplier->{contfax},
+        contemail            => $supplier->{contemail},
+        contnotes            => $supplier->{contnotes},
+        notes                => $supplier->{notes},
+        active               => $id?$supplier->{active}:1, # set active ON by default for supplier add (id empty for add)
+        gstreg               => $supplier->{gstreg},
+        listincgst           => $supplier->{listincgst},
+        invoiceincgst        => $supplier->{invoiceincgst},
+        gstrate              => $supplier->{gstrate}*100,
+        discount             => $supplier->{discount},
+        loop_pricescurrency  => \@loop_pricescurrency,
+        loop_invoicecurrency => \@loop_invoicecurrency,
+        GST                  => $tax,
+        enter                => 1,
+    );
 }
 
-
-
 output_html_with_http_headers $query, $cookie, $template->output;
-- 
1.6.6.1




More information about the Koha-patches mailing list