Remove cause of some warnings in order display
[koha_fer] / acqui / supplier.pl
index cb3ff66..42b23b0 100755 (executable)
@@ -1,12 +1,10 @@
 #!/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
->&pound; 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
->&pound; 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;