X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fsupplier.pl;h=2a4078a75eb1ca650ff8561393c46131fe9bb8d8;hb=6bd38d3eabc79c68cb90193378c69825ddac2a43;hp=b3ed94977165583f0519f4e6e8124fad98139683;hpb=f807360373ab52754fd8fa812188367143e1a2a9;p=koha_fer diff --git a/acqui/supplier.pl b/acqui/supplier.pl index b3ed949771..2a4078a75e 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. # @@ -17,15 +15,16 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. =head1 NAME supplier.pl =head1 DESCRIPTION + this script shows the details for a bookseller given on input arg. It allows to edit & save information about this bookseller. @@ -34,6 +33,7 @@ It allows to edit & save information about this bookseller. =over 4 =item supplierid + To know the bookseller this script has to display details. =back @@ -41,119 +41,129 @@ To know the bookseller this script has to display details. =cut use strict; +use warnings; use C4::Auth; -use C4::Acquisition; +use C4::Contract qw/GetContract/; use C4::Biblio; use C4::Output; +use C4::Dates qw/format_date /; use CGI; -use C4::Bookseller; +use C4::Bookseller qw( GetBookSellerFromId DelBookseller ); use C4::Budgets; -my $query = new CGI; -my $id = $query->param('supplierid'); -my @booksellers = GetBookSellerFromId($id) if $id; -my $count = scalar @booksellers; -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, - } +my $query = CGI->new; +my $id = $query->param('supplierid'); +my $supplier = {}; +if ($id) { + $supplier = GetBookSellerFromId($id); +} +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 => '*' }, + debug => 1, + } ); -my $GST = $booksellers[0]->{'gstrate'} || C4::Context->preference("gist"); -$GST *= 100; +my $seller_gstrate = $supplier->{'gstrate'}; + +# ensure the scalar isn't flagged as a string +$seller_gstrate = ( defined $seller_gstrate ) ? $seller_gstrate + 0 : undef; +my $tax_rate = $seller_gstrate // C4::Context->preference('gist') // 0; +$tax_rate *= 100; #build array for currencies -if ($op eq "display") { - $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'}, - specialty => $booksellers[0]->{'specialty'}, - gstreg => $booksellers[0]->{'gstreg'}, - listincgst => $booksellers[0]->{'listincgst'}, - invoiceincgst => $booksellers[0]->{'invoiceincgst'}, - gstrate => $booksellers[0]->{'gstrate'}, - discount => $booksellers[0]->{'discount'}, - invoiceprice => $booksellers[0]->{'invoiceprice'}, - listprice => $booksellers[0]->{'listprice'}, - GST => $GST, - basketcount => $booksellers[0]->{'basketcount'}, - ); -} -elsif ($op eq 'delete') { - &DelBookseller($id); - print $query->redirect("/cgi-bin/koha/acqui/acqui-home.pl"); - exit; +if ( $op eq 'display' ) { + + my $contracts = GetContract( { booksellerid => $id } ); + + for ( @{$contracts} ) { + $_->{contractstartdate} = format_date( $_->{contractstartdate} ); + $_->{contractenddate} = format_date( $_->{contractenddate} ); + } + + $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'}, + discount => $supplier->{'discount'}, + invoiceprice => $supplier->{'invoiceprice'}, + listprice => $supplier->{'listprice'}, + GST => $tax_rate, + default_tax => defined($seller_gstrate), + basketcount => $supplier->{'basketcount'}, + contracts => $contracts, + ); +} elsif ( $op eq 'delete' ) { + 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 => "" }; - } else { - push @loop_pricescurrency, { currency => ""}; - } - if ($booksellers[0]->{'invoiceprice'} eq $currencies[$i]->{'currency'}) { - push @loop_invoicecurrency, { currency => ""}; - } else { - push @loop_invoicecurrency, { currency => ""}; - } + my $loop_currency; + for (@currencies) { + push @{$loop_currency}, + { currency => $_->{currency}, + listprice => ( $_->{currency} eq $supplier->{listprice} ), + invoiceprice => ( $_->{currency} eq $supplier->{invoiceprice} ), + }; } - my $GST = $booksellers[0]->{'gstrate'} || C4::Context->preference("gist"); - $GST *= 100; - $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'}, - specialty => $booksellers[0]->{'specialty'}, - gstreg => $booksellers[0]->{'gstreg'}, - listincgst => $booksellers[0]->{'listincgst'}, - invoiceincgst => $booksellers[0]->{'invoiceincgst'}, - gstrate => $booksellers[0]->{'gstrate'}, - discount => $booksellers[0]->{'discount'}, - loop_pricescurrency => \@loop_pricescurrency, - loop_invoicecurrency => \@loop_invoicecurrency, - GST => $GST, - enter => 1, - ); + + my $default_gst_rate = (C4::Context->preference('gist') * 100) || '0.0'; + + my $gstrate = defined $supplier->{gstrate} ? $supplier->{gstrate} * 100 : ''; + $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'}, + # set active ON by default for supplier add (id empty for add) + active => $id ? $supplier->{'active'} : 1, + gstreg => $supplier->{'gstreg'}, + listincgst => $supplier->{'listincgst'}, + invoiceincgst => $supplier->{'invoiceincgst'}, + gstrate => $gstrate, + discount => $supplier->{'discount'}, + loop_currency => $loop_currency, + GST => $tax_rate, + enter => 1, + default_gst_rate => $default_gst_rate, + ); } + output_html_with_http_headers $query, $cookie, $template->output;