[Koha-patches] [PATCH] Bug 4510 Script processes single supplier not an array
Colin Campbell
colin.campbell at ptfs-europe.com
Tue May 18 12:42:58 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
Be explicit over which Contract routines are imported and
called as C4::Contract redefines
subroutines in the Acquisitions module
causing compile time errors
removed introduction of unneeded variable to test contract returns
---
acqui/supplier.pl | 186 ++++++++++++++++++++++++++---------------------------
1 files changed, 92 insertions(+), 94 deletions(-)
diff --git a/acqui/supplier.pl b/acqui/supplier.pl
index c3a5db4..bc475c6 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.
#
@@ -43,11 +41,11 @@ To know the bookseller this script has to display details.
use strict;
use warnings;
use C4::Auth;
-use C4::Acquisition;
-use C4::Contract;
+use C4::Acquisition qw/GetContracts/;
use C4::Biblio;
use C4::Output;
use C4::Dates qw/format_date /;
+use C4::Contract qw/GetContract/;
use CGI;
use C4::Bookseller;
@@ -55,33 +53,35 @@ 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 } )};
+ my @contracts = @{C4::Contract::GetContract( { booksellerid => $id } )};
# format dates
for ( @contracts ) {
@@ -89,92 +89,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