#!/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.
#
# 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.
+
+=head1 CGI PARAMETERS
+
+=over 4
+
+=item supplierid
+To know the bookseller this script has to display details.
+
+=back
+
+=cut
+use strict;
+use warnings;
use C4::Auth;
-use C4::Catalogue;
+use C4::Contract qw/GetContract/;
use C4::Biblio;
use C4::Output;
+use C4::Dates qw/format_date /;
use CGI;
-use C4::Interface::CGI::Output;
-use C4::Database;
-use HTML::Template;
-use C4::Catalogue;
-use strict;
-my $query=new CGI;
-my $id=$query->param('id');
-my ($count,@booksellers)=bookseller($id);
-my ($template, $loggedinuser, $cookie)
- = get_template_and_user({template_name => "acqui/supplier.tmpl",
- query => $query,
- type => "intranet",
- authnotrequired => 0,
- flagsrequired => {acquisition => 1},
- debug => 1,
- });
+use C4::Bookseller;
+use C4::Budgets;
+
+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 => 'vendors_manage' },
+ debug => 1,
+ }
+);
+my $seller_gstrate = $supplier->{'gstrate'};
+
+# ensure the scalar isn't flagged as a string
+$seller_gstrate = ( defined $seller_gstrate ) ? $seller_gstrate + 0 : 0;
+my $tax_rate = $seller_gstrate || C4::Context->preference('gist');
+$tax_rate *= 100;
+
#build array for currencies
-my ($count, $currencies) = &getcurrencies();
-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 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 value=\"$currencies->[$i]->{'currency'}\">$currencies->[$i]->{'currency'}</option>"};
- } else {
- push @loop_invoicecurrency, { currency => "<option value=\"$currencies->[$i]->{'currency'}\">$currencies->[$i]->{'currency'}</option>"};
- }
+if ( $op eq 'display' ) {
+
+ my $contracts = GetContract( { booksellerid => $id } );
+
+ for ( @{$contracts} ) {
+ $_->{contractstartdate} = format_date( $_->{contractstartdate} );
+ $_->{contractenddate} = format_date( $_->{contractenddate} );
+ }
+
+ my $gstrate = defined $supplier->{gstrate} ? $supplier->{gstrate} * 100 : 0;
+
+ $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'},
+ gstrate => $gstrate,
+ discount => $supplier->{'discount'},
+ invoiceprice => $supplier->{'invoiceprice'},
+ listprice => $supplier->{'listprice'},
+ GST => $tax_rate,
+ 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 $loop_currency;
+ for (@currencies) {
+ push @{$loop_currency},
+ { currency => $_->{currency},
+ listprice => ( $_->{currency} eq $supplier->{listprice} ),
+ invoiceprice => ( $_->{currency} eq $supplier->{invoiceprice} ),
+ };
+ }
+
+ my $gstrate = defined $supplier->{gstrate} ? $supplier->{gstrate} * 100 : 0;
+ $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,
+ );
}
-$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'},
- 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,);
output_html_with_http_headers $query, $cookie, $template->output;