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
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches