#!/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
#
# This file is part of Koha.
#
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
-use C4::Catalogue;
+=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 C4::Auth;
+use C4::Acquisition;
+use C4::Contract;
use C4::Biblio;
use C4::Output;
+use C4::Dates qw/format_date /;
use CGI;
-use strict;
-my $input=new CGI;
-print $input->header();
-my $id=$input->param('id');
-my ($count,@booksellers)=bookseller($id);
-print startpage;
+use C4::Bookseller;
+use C4::Budgets;
-print startmenu('acquisitions');
+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;
-print <<EOP
-<form action=updatesupplier.pl method=post>
+my @contracts = GetContracts($id);
+my $contractcount = scalar(@contracts);
+$template->param(hascontracts => 1) if ($contractcount > 0);
-<input type=hidden name=id value=$id>
-<FONT SIZE=6><em>Update: $booksellers[0]->{'name'}</em></FONT>
-<P>
-<CENTER>
-<TABLE CELLSPACING=0 CELLPADDING=5 border=1 align=left width="40%">
-<tr valign=top bgcolor=#99cc33><td background="/images/background-mem.gif" colspan=2><B>COMPANY DETAILS</B></td></tr>
-<TR VALIGN=TOP>
-<TD><b>Company Name</b></td>
-<td><input type=text size=20 name=company value="$booksellers[0]->{'name'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Postal Address</td>
-<td><textarea name=company_postal cols=20 rows=3>$booksellers[0]->{'postal'}
-</textarea></td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Physical Address</td>
-<td><textarea name=physical cols=20 rows=4>$booksellers[0]->{'address1'}
-$booksellers[0]->{'address2'}
-$booksellers[0]->{'address3'}
-$booksellers[0]->{'address4'}
-</textarea>
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Phone</td>
-<td><input type=text size=20 name=company_phone value="$booksellers[0]->{'phone'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Fax</td>
-<td><input type=text size=20 name=company_fax value="$booksellers[0]->{'fax'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Website</td>
-<td><input type=text size=20 name=website value="$booksellers[0]->{'url'}">
-</td>
-</tr>
-<tr valign=top bgcolor=#99cc33><td background="/images/background-mem.gif" colspan=2><B>CONTACT DETAILS</B></td></tr>
-<TR VALIGN=TOP>
-<TD>Contact Name</td>
-<td><input type=text size=20 name=company_contact_name value="$booksellers[0]->{'contact'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Position</td>
-<td><input type=text size=20 name=company_contact_position value="$booksellers[0]->{'contpos'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Phone</td>
-<td><input type=text size=20 name=contact_phone value="$booksellers[0]->{'contphone'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Alternative Phone</td>
-<td><input type=text size=20 name=contact_phone_2 value="$booksellers[0]->{'contaltphone'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Fax</td>
-<td><input type=text size=20 name=contact_fax value="$booksellers[0]->{'contfax'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>E-mail</td>
-<td><input type=text size=20 name=company_email value="$booksellers[0]->{'contemail'}">
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Notes</td>
-<td><textarea name=notes cols=20 rows=4>$booksellers[0]->{'contnotes'}</textarea>
-</td>
-</tr>
-<tr valign=right><td><input type=image name=submit src=/images/save-changes.gif border=0 width=187 height=42 align=right></td></tr>
-</table>
-<img src="/images/holder.gif" width=32 height=250 align=left>
+#build array for currencies
+if ($op eq "display") {
-<table border=1 cellspacing=0 cellpadding=5 width="40%">
-<tr valign=top bgcolor=#99cc33><td background="/images/background-mem.gif" colspan=2><B>CURRENT STATUS</B></td></tr>
-<TR VALIGN=TOP>
-<TD>Supplier is</td>
-<td><input type=radio name=status value=1
-EOP
-;
-if ($booksellers[0]->{'active'}==1){
- print " checked ";
-}
-print ">Active
-<input type=radio name=status value=0";
-if ($booksellers[0]->{'active'}==0){
- print " checked ";
-}
-print <<EOP
->Inactive
-</td>
-</tr>
-<tr valign=top bgcolor=#99cc33><td background="/images/background-mem.gif" colspan=2><B>ORDERING INFORMATION</B></td></tr>
-<TR VALIGN=TOP>
-<TD>Publishers and Imprints</td>
-<td><textarea name=publishers_imprints cols=20 rows=4>$booksellers[0]->{'specialty'}</textarea>
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>List Prices are</td>
-<td><select name=list_currency size=1>
-<option value=NZD
-EOP
-;
-if ($booksellers[0]->{'listprice'} eq 'NZD'){
- print " selected";
-}
-print ">\$ NZ
-<option value=AUD";
-if ($booksellers[0]->{'listprice'} eq 'AUD'){
- print " selected";
-}
-print ">\$ Aus
-<option value=USD";
-if ($booksellers[0]->{'listprice'} eq 'USD'){
- print " selected";
-}
-print ">\$ USA
-<option value=UKP";
-if ($booksellers[0]->{'listprice'} eq 'UKP'){
- print " selected";
-}
+ # get contracts
+ my @contracts = @{GetContract( { booksellerid => $id } )};
-print <<EOP
->£ Sterling
-</select>
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Invoice Prices are</td>
-<td><select name=invoice_currency size=1>
-<option value=NZD
-EOP
-;
-if ($booksellers[0]->{'invoiceprice'} eq 'NZD'){
- print " selected";
-}
-print ">\$ NZ
-<option value=AUD";
-if ($booksellers[0]->{'invoiceprice'} eq 'AUD'){
- print " selected";
-}
-print ">\$ Aus
-<option value=USD";
-if ($booksellers[0]->{'invoiceprice'} eq 'USD'){
- print " selected";
-}
-print ">\$ USA
-<option value=UKP";
-if ($booksellers[0]->{'invoiceprice'} eq 'UKP'){
- print " selected";
-}
-print <<EOP
->£ Sterling
-</select>
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>GST Registered</td>
-<td><input type=radio name=gst value=1
-EOP
-;
-if ($booksellers[0]->{'gstreg'}==1){
- print " checked";
-}
-print ">Yes
-<input type=radio name=gst value=0";
-if ($booksellers[0]->{'gstreg'}==0){
- print " checked";
-}
-print <<EOP
->No
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>List Item Price Includes GST</td>
-<td><input type=radio name=list_gst value=1
-EOP
-;
-if ($booksellers[0]->{'listincgst'}==1){
- print " checked";
-}
-print ">Yes
-<input type=radio name=list_gst value=0";
-if ($booksellers[0]->{'listincgst'}==0){
- print " checked";
-}
-print <<EOP
->No
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Invoice Item Price Includes GST</td>
-<td><input type=radio name=invoice_gst value=1
-EOP
-;
-if ($booksellers[0]->{'invoiceincgst'}==1){
- print " checked";
-}
-print ">Yes
-<input type=radio name=invoice_gst value=0";
-if ($booksellers[0]->{'invoiceincgst'}==0){
- print " checked";
-}
-print <<EOP
->No
-</td>
-</tr>
-<TR VALIGN=TOP>
-<TD>Discount</td>
-<td><input type=text size=3 name=discount value=$booksellers[0]->{'discount'}> %
-</tr>
-</table>
+ # format dates
+ for ( @contracts ) {
+ $$_{contractstartdate} = format_date($$_{contractstartdate});
+ $$_{contractenddate} = format_date($$_{contractenddate});
+ }
-</form>
-</center>
-EOP
-;
+ $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 => "<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>"};
+ }
+ }
+ 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,
+ );
+}
-print endmenu('acquisitions');
-print endpage;
+output_html_with_http_headers $query, $cookie, $template->output;