#!/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 <http://www.gnu.org/licenses>.
=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.
=over 4
-=item supplierid
+=item booksellerid
+
To know the bookseller this script has to display details.
=back
=cut
-use strict;
+use Modern::Perl;
use C4::Auth;
-use C4::Acquisition;
+use C4::Contract;
use C4::Biblio;
use C4::Output;
-use CGI;
-
-
-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 => "<option selected=\"selected\" value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'currency'}</option>" };
- } else {
- push @loop_pricescurrency, { currency => "<option value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'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>"};
- } else {
- push @loop_invoicecurrency, { currency => "<option value=\"$currencies[$i]->{'currency'}\">$currencies[$i]->{'currency'}</option>"};
- }
+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',
+ authnotrequired => 0,
+ flagsrequired => { acquisition => '*' },
+ 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->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
+ 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 = Koha::Acquisition::Currencies->search;
+
+ # get option values from gist syspref
+ my @gst_values = map {
+ option => $_ + 0.0
+ }, split( '\|', C4::Context->preference("gist") );
+
+ $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 => \@currencies,
+ enter => 1,
+ );
+}
+
output_html_with_http_headers $query, $cookie, $template->output;