Bugzilla – Attachment 2135 Details for
Bug 4510
acq/supplier.pl mistaken about return from GetBooksellerById
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed Patch
0001-Bug-4510-Script-processes-single-supplier-not-an-arr.patch (text/plain), 11.49 KB, created by
Chris Cormack
on 2010-05-18 10:48:00 UTC
(
hide
)
Description:
Proposed Patch
Filename:
MIME Type:
Creator:
Chris Cormack
Created:
2010-05-18 10:48:00 UTC
Size:
11.49 KB
patch
obsolete
>From df225c95e6d83460f11c9e837fcf67928ad6870e Mon Sep 17 00:00:00 2001 >From: Colin Campbell <colin.campbell@ptfs-europe.com> >Date: Sat, 15 May 2010 14:35:08 +0100 >Subject: [PATCH] Bug 4510 Script processes single supplier not an array >Content-Type: text/plain; charset="utf-8" > >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 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 4510
:
2135
|
2136