X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fsupplier.pl;h=40235dfacd1fdac63d82ef4f085179cfb5191cb6;hb=3101a132a46369a23082ff8baaa8f6a718159f11;hp=d113de2044a1f50cbe037c68b193bd3f1939c4c8;hpb=b764c1ee81728ce5007b89e28b8703742d202375;p=koha.git diff --git a/acqui/supplier.pl b/acqui/supplier.pl index d113de2044..40235dfacd 100755 --- a/acqui/supplier.pl +++ b/acqui/supplier.pl @@ -6,18 +6,18 @@ # # 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . =head1 NAME @@ -40,26 +40,23 @@ To know the bookseller this script has to display details. =cut -use strict; -use warnings; +use Modern::Perl; use C4::Auth; -use C4::Contract qw/GetContract/; +use C4::Contract; use C4::Biblio; use C4::Output; -use CGI; +use CGI qw ( -utf8 ); -use C4::Bookseller qw( GetBookSellerFromId DelBookseller ); use C4::Budgets; +use Koha::Acquisition::Bookseller::Contacts; +use Koha::Acquisition::Booksellers; +use Koha::Acquisition::Currencies; + my $query = CGI->new; -my $booksellerid = $query->param('booksellerid'); -my $supplier = {}; -if ($booksellerid) { - $supplier = GetBookSellerFromId($booksellerid); -} my $op = $query->param('op') || 'display'; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { template_name => 'acqui/supplier.tmpl', + { template_name => 'acqui/supplier.tt', query => $query, type => 'intranet', authnotrequired => 0, @@ -67,110 +64,54 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( debug => 1, } ); +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->{VARS}->{contacts} = $supplier->contacts if $supplier->contacts->count; + $template->{'VARS'}->{'booksellerid'} = $booksellerid; +} -#build array for currencies -if ( $op eq 'display' ) { +$template->{VARS}->{contacts} ||= Koha::Acquisition::Bookseller::Contact->new; - my $contracts = GetContract( { booksellerid => $booksellerid } ); +if ( $op eq 'display' ) { + my $contracts = GetContracts( { booksellerid => $booksellerid } ); $template->param( - booksellerid => $booksellerid, - name => $supplier->{'name'}, - postal => $supplier->{'postal'}, - address1 => $supplier->{'address1'}, - address2 => $supplier->{'address2'}, - address3 => $supplier->{'address3'}, - address4 => $supplier->{'address4'}, - phone => $supplier->{'phone'}, - accountnumber => $supplier->{'accountnumber'}, - 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'} + 0.0, - discount => $supplier->{'discount'}, - deliverytime => $supplier->{deliverytime}, - invoiceprice => $supplier->{'invoiceprice'}, - listprice => $supplier->{'listprice'}, - basketcount => $supplier->{'basketcount'}, - subscriptioncount => $supplier->{'subscriptioncount'}, + 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, - dateformat => C4::Context->preference("dateformat"), ); } elsif ( $op eq 'delete' ) { # no further message needed for the user # the DELETE button only appears in the template if basketcount == 0 - if ( $supplier->{'basketcount'} == 0 ) { - DelBookseller($booksellerid); + if ( $supplier->baskets->count == 0 ) { + Koha::Acquisition::Booksellers->find($booksellerid)->delete; } print $query->redirect('/cgi-bin/koha/acqui/acqui-home.pl'); exit; } else { - my @currencies = GetCurrencies(); - my $loop_currency; - my $active_currency = GetCurrency(); - my $active_listprice = $supplier->{'listprice'}; - my $active_invoiceprice = $supplier->{'invoiceprice'}; - if (!$supplier->{listprice}) { - $active_listprice = $active_currency->{currency}; - } - if (!$supplier->{invoiceprice}) { - $active_invoiceprice = $active_currency->{currency}; - } - for (@currencies) { - push @{$loop_currency}, - { - currency => $_->{currency}, - listprice => ( $_->{currency} eq $active_listprice ), - invoiceprice => ( $_->{currency} eq $active_invoiceprice ), - }; - } + my @currencies = Koha::Acquisition::Currencies->search; # get option values from gist syspref my @gst_values = map { - option => $_ + option => $_ + 0.0 }, split( '\|', C4::Context->preference("gist") ); $template->param( - booksellerid => $booksellerid, - name => $supplier->{'name'}, - postal => $supplier->{'postal'}, - address1 => $supplier->{'address1'}, - address2 => $supplier->{'address2'}, - address3 => $supplier->{'address3'}, - address4 => $supplier->{'address4'}, - phone => $supplier->{'phone'}, - accountnumber=> $supplier->{'accountnumber'}, - 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 => $booksellerid ? $supplier->{'active'} : 1, - gstreg => $supplier->{'gstreg'}, - listincgst => $supplier->{'listincgst'}, - invoiceincgst => $supplier->{'invoiceincgst'}, - gstrate => $supplier->{gstrate} ? $supplier->{'gstrate'}+0.0 : 0, + active => $supplier ? $supplier->active : 1, + tax_rate => $supplier ? $supplier->tax_rate + 0.0 : 0, gst_values => \@gst_values, - discount => $supplier->{'discount'}, - deliverytime => $supplier->{deliverytime}, - loop_currency => $loop_currency, + currencies => \@currencies, enter => 1, ); }