X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fsupplier.pl;h=0e3570780a5b623403726d7b271c315b710e9cbe;hb=df6432fcc833f00bb6e45894004a0ad26d5ced28;hp=42b23b038a4e7ec28bf602f088c471e261a24038;hpb=0b5cc8f809cddac09a234bb2b260c5b6bb433d33;p=koha-ffzg.git diff --git a/acqui/supplier.pl b/acqui/supplier.pl index 42b23b038a..0e3570780a 100755 --- a/acqui/supplier.pl +++ b/acqui/supplier.pl @@ -1,31 +1,30 @@ #!/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. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY 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, see . =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. @@ -33,146 +32,84 @@ It allows to edit & save information about this bookseller. =over 4 -=item supplierid +=item booksellerid + To know the bookseller this script has to display details. =back =cut -use strict; -use C4::Auth; -use C4::Acquisition; -use C4::Contract; -use C4::Biblio; -use C4::Output; -use C4::Dates qw/format_date /; -use CGI; +use Modern::Perl; +use C4::Auth qw( get_template_and_user ); +use C4::Contract qw( GetContracts GetContract ); +use C4::Output qw( output_html_with_http_headers ); +use CGI qw ( -utf8 ); -use C4::Bookseller; 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 $GST = $booksellers[0]->{'gstrate'} || C4::Context->preference("gist"); -$GST *= 100; - -my @contracts = GetContracts($id); -my $contractcount = scalar(@contracts); -$template->param(hascontracts => 1) if ($contractcount > 0); - -#build array for currencies -if ($op eq "display") { - - # get contracts - my @contracts = @{GetContract( { booksellerid => $id } )}; - - # format dates - for ( @contracts ) { - $$_{contractstartdate} = format_date($$_{contractstartdate}); - $$_{contractenddate} = format_date($$_{contractenddate}); +use Koha::Acquisition::Bookseller::Contacts; +use Koha::Acquisition::Booksellers; +use Koha::Acquisition::Currencies; + +my $query = CGI->new; +my $op = $query->param('op') || 'display'; +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { template_name => 'acqui/supplier.tt', + query => $query, + type => 'intranet', + flagsrequired => { acquisition => '*' }, } - - $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 - ); -} -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 $booksellerid = $query->param('booksellerid'); +my $supplier; +if ($booksellerid) { + $supplier = Koha::Acquisition::Booksellers->find( $booksellerid ); + my $supplier_hashref = $supplier->unblessed; + foreach ( keys %{$supplier_hashref} ) { + $template->{'VARS'}->{$_} = $supplier->$_; } - 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 => $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->{VARS}->{contacts} = $supplier->contacts if $supplier->contacts->count; + $template->{'VARS'}->{'booksellerid'} = $booksellerid; } +$template->{VARS}->{contacts} ||= Koha::Acquisition::Bookseller::Contact->new; + +if ( $op eq 'display' ) { + my $contracts = GetContracts( { booksellerid => $booksellerid } ); + + $template->param( + active => $supplier->active, + tax_rate => $supplier->tax_rate + 0.0, + invoiceprice => $supplier->invoiceprice, + listprice => $supplier->listprice, + basketcount => $supplier->baskets->count, + subscriptioncount => $supplier->subscriptions->count, + contracts => $contracts, + ); +} elsif ( $op eq 'delete' ) { + # no further message needed for the user + # the DELETE button only appears in the template if basketcount == 0 AND subscriptioncount == 0 + if ( $supplier->baskets->count == 0 && $supplier->subscriptions->count == 0) { + Koha::Acquisition::Booksellers->find($booksellerid)->delete; + } + print $query->redirect('/cgi-bin/koha/acqui/acqui-home.pl'); + exit; +} else { + # get option values from TaxRates syspref + my @gst_values = map { + option => $_ + 0.0 + }, split( '\|', C4::Context->preference("TaxRates") ); + + $template->param( + # set active ON by default for supplier add (id empty for add) + active => $supplier ? $supplier->active : 1, + tax_rate => $supplier ? $supplier->tax_rate + 0.0 : 0, + gst_values => \@gst_values, + currencies => Koha::Acquisition::Currencies->search, + enter => 1, + ); +} output_html_with_http_headers $query, $cookie, $template->output;