X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fsupplier.pl;h=0e3570780a5b623403726d7b271c315b710e9cbe;hb=df6432fcc833f00bb6e45894004a0ad26d5ced28;hp=43dff175c46314406af653d97cfb2064a7ad8a02;hpb=2ffd5b7228f4e638583162d483e1dd2febeafe1b;p=koha-ffzg.git diff --git a/acqui/supplier.pl b/acqui/supplier.pl index 43dff175c4..0e3570780a 100755 --- a/acqui/supplier.pl +++ b/acqui/supplier.pl @@ -1,32 +1,30 @@ #!/usr/bin/perl -# $Id$ - -#script to show display basket of orders -#written by chris@katipo.co.nz 24/2/2000 - # 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. @@ -34,116 +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::Biblio; -use C4::Output; -use CGI; -use C4::Interface::CGI::Output; - - -use C4::Bookseller; -use C4::Bookfund; - -my $query=new CGI; -my $id=$query->param('supplierid'); -my @booksellers = GetBookSeller($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 => 1}, - debug => 1, - }); - -#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'}, - discount => $booksellers[0]->{'discount'}, - invoiceprice=>$booksellers[0]->{'invoiceprice'}, - listprice=>$booksellers[0]->{'listprice'}, - GST => C4::Context->preference("gist"), - ); -}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 => ""}; - } +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::Budgets; + +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 => '*' }, + } +); +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->$_; } - $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'}, - discount => $booksellers[0]->{'discount'}, - loop_pricescurrency => \@loop_pricescurrency, - loop_invoicecurrency => \@loop_invoicecurrency, - GST => C4::Context->preference("gist"), - 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;