245 lines
8.4 KiB
Perl
Executable File
245 lines
8.4 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
#script cgi du bon de commande
|
|
|
|
use DBI;
|
|
use CGI;
|
|
|
|
require "cgi-lib.pl";
|
|
|
|
$date = `/bin/date '+%e/%m/%Y'`;
|
|
|
|
# lire l'identifiant du client en ligne.
|
|
# a partir de celui-ci on peut obtenir le contenu de son panier
|
|
# et toutes ses coordonnees puisque "email" reference un client de la "base_clients"
|
|
# toutes ces informations permettent d'etablir le bon de commande
|
|
&ReadParse(*query);
|
|
|
|
$ID_client_el = $query{'ID_client_el'};
|
|
|
|
$taux_tva = 0.196;
|
|
|
|
$html = new CGI;
|
|
|
|
# se connecter a la base
|
|
$dbh = DBI->connect("dbi:Pg:dbname=s_marchand", postgres, ) or die $DBI::errstr;
|
|
|
|
# retrouver le client qui effectue la commande
|
|
$client = $dbh->prepare("SELECT bc.societe , bc.civilite, bc.nom, bc.prenom " .
|
|
"FROM base_clients bc, client_en_ligne cl " .
|
|
"WHERE cl.id_client_el = '$ID_client_el
|
|
' " .
|
|
"AND cl.num_client = bc.num_client " );
|
|
#"WHERE cl.num_client = bc.num_client " );
|
|
|
|
$client->execute;
|
|
|
|
@client = $client->fetchrow;
|
|
($societe, $civilite, $nom, $prenom) = @client;
|
|
|
|
$client->finish;
|
|
|
|
# determiner le numero de commande
|
|
$cpt_cmde = $dbh->prepare("SELECT count(*) from commandes");
|
|
$cpt_cmde->execute;
|
|
$nbcom = $cpt_cmde->fetchrow;
|
|
$numero = $nbcom + 1;
|
|
$cpt_cmde->finish;
|
|
|
|
# se deconnecter de la base
|
|
$dbh->disconnect;
|
|
|
|
|
|
print $html->header;
|
|
|
|
print "<HTML>\n";
|
|
print "<HEAD>\n";
|
|
print "<TITLE>Bon de commande </TITLE>\n";
|
|
print "</HEAD>\n";
|
|
print "<BODY BGCOLOR=\"\#FFFFFF\">\n";
|
|
print "<spacer TYPE=\"block\" HEIGHT=12>\n";
|
|
#print "identifiant du client $ID_client_el\n";
|
|
|
|
# en-tete du bon de commande
|
|
print "<TABLE BORDER=1 CELLSPACING=3 WIDTH=100\%>\n";
|
|
|
|
print "<TR>\n";
|
|
print "<TD ALIGN=left COLSPAN=3><IMG SRC=\"http://o2000/marchand/logos/airtrialos.jpg\" ><P></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" HEIGHT=12 WIDTH=400></TD>\n";
|
|
print "<TD ALIGN=right COLSPAN=2><spacer TYPE=\"block\" HEIGHT=12 WIDTH=400><FONT SIZE=5>Bon de commande : </FONT></TD>\n";
|
|
print "<TD><FONT SIZE=7>C$numero</FONT></TD>\n";
|
|
print "<tr>\n";
|
|
|
|
print "<tr>\n";
|
|
print "<TD COLSPAN=3><FONT SIZE=5><B>AIRTRIA SA</B></FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" HEIGHT=12 WIDTH=400></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=right><FONT SIZE=5>DATE : </FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" HEIGHT=12 WIDTH=400>$date</TD>\n";
|
|
print "<\tr>\n";
|
|
|
|
print "<tr>\n";
|
|
print "<TD align=left COLSPAN=3><B>9 rue Fulgence Bienvenue</B></TD>\n";
|
|
print "<TD COLSPAN=4></TD>\n";
|
|
print "</tr>\n";
|
|
|
|
print "<TD>22301 LANNION CEDEX</TD>\n";
|
|
print "<TD COLSPAN=4></TD>\n";
|
|
|
|
print "<TD><FONT SIZE=2>Tel</FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" WIDTH=10></TD>\n";
|
|
print "<TD><FONT SIZE=2>: 02 96 05 82 72</FONT></TD>\n";
|
|
print "<TD COLSPAN=4></TD>\n";
|
|
|
|
print "<TD><FONT SIZE=2>Fax</FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" WIDTH=10></TD>\n";
|
|
print "<TD><FONT SIZE=2>: 02 96 05 82 70</FONT></TD>\n";
|
|
print "<TD COLSPAN=4></TD>\n";
|
|
|
|
print "<TD><FONT SIZE=2>Capital</FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" WIDTH=10></TD>\n";
|
|
print "<TD><FONT SIZE=2>: 50 000 Euros</FONT></TD>\n";
|
|
|
|
print "<TD ALIGN=right><FONT SIZE=3>à l\'attention de </FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" HEIGHT=12 WIDTH=400> $civilite $nom $prenom</TD>\n";
|
|
print "<TD></TD>\n";
|
|
|
|
print "<TD><FONT SIZE=2>R.C.S</FONT></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" WIDTH=10></TD>\n";
|
|
print "<TD><FONT SIZE=2>: GUINGAMP TBI B 410 563 035</FONT></TD>\n";
|
|
print "<TD COLSPAN=4></TD>\n";
|
|
|
|
print "<TD COLSPAN=7></TD>\n";
|
|
|
|
print "<TD COLSPAN=4></TD>\n";
|
|
print "<TD ALIGN=right><FONT SIZE=3>SOCIÉTÉ</FONT></TD>\n";
|
|
print "<TD><FONT SIZE=4> $societe </FONT></TD>\n";
|
|
|
|
print "</TABLE>\n";
|
|
print "<spacer TYPE=\"block\" HEIGHT=30>\n";
|
|
print "<HR SIZE=7 BGCOLOR=\"CCFFFF\" NO SHADE>\n";
|
|
print "<P>\n";
|
|
|
|
# Afficher le contenu de la commande
|
|
|
|
# affichage du debut du calepin
|
|
print "<center>\n";
|
|
print "<FORM METHOD=\"post\" ACTION=\"http://o2000/cgi/demo_request.pl\">\n";
|
|
print "<TABLE BORDER=0 CELLSPACING=5 CELLPADING=3>\n";
|
|
print "<TR BGCOLOR=\"\#FFFFCC\" NOSAVE>\n";
|
|
#print "<TD></TD>\n";
|
|
print "<TD BGCOLOR=\"\#FFFFFF\"><!- colonne reservee au numero du produit (compte) -></TD>\n";
|
|
print "<TD><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>Ref</FONT></TD>\n";
|
|
print "<TD><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>Désignation</FONT></TD>\n";
|
|
print "<TD><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>Qté</FONT></TD>\n";
|
|
print "<TD><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>Prix unitaire HT </FONT></TD>\n";
|
|
print "<TD><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>Sous-total HT</FONT></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "</TR>\n";
|
|
|
|
# se connecter a la base
|
|
$dbh = DBI->connect("dbi:Pg:dbname=s_marchand", postgres, ) or die $DBI::errstr;
|
|
|
|
afficher_calepin();
|
|
|
|
# se deconnecter de la base
|
|
$dbh->disconnect;
|
|
|
|
|
|
print "<\BODY>\n";
|
|
print "<\HTML>\n";
|
|
|
|
sub afficher_calepin {
|
|
# recuperer les produits selectionnes par le client concerne
|
|
$cursor = $dbh->prepare( "SELECT pa.code_famille, pa.code_produit, pr.denomination, pa.qte, pr.prix_ht " .
|
|
"FROM produits pr, panier pa " .
|
|
"WHERE pa.id_client_el like '1-Tue/Sep/4' " .
|
|
"AND pa.code_famille = pr.code_famille " .
|
|
"AND pa.code_produit= pr.code_produit" );
|
|
|
|
$cursor->execute;
|
|
|
|
$cpt = 1;
|
|
|
|
while ( @lgcom = $cursor->fetchrow) {
|
|
($code_famille,$code_produit,$denomination,$qte,$prix_ht) = @lgcom;
|
|
|
|
print "<TR BGCOLOR=\"\#99CCFF\" NOSAVE>\n";
|
|
#print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\" BGCOLOR=\"\#FFFFFF\"><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$cpt<!-numero de ligne></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$code_famille $code_produit<!-reference produit></TD>\n";
|
|
print "<TD><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$denomination<!-nom produit></TD>\n";
|
|
print "<TD>$qte</TD>\n";
|
|
print "<TD ALIGN=\"right\"><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$prix_ht<!-prix unitaire hors taxe></TD>\n";
|
|
|
|
$s_total = $prix_ht * $qte;
|
|
|
|
print "<TD ALIGN=\"right\"><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$s_total </FONT></TD>\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"code_famille$cpt\" VALUE=\"$code_famille\">\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"code_produit$cpt\" VALUE=\"$code_produit\">\n";
|
|
print "</TR>\n";
|
|
$total_ht += $s_total;
|
|
|
|
$cpt++;
|
|
}
|
|
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"nb_lignes\" VALUE=$cpt>\n";
|
|
|
|
$cursor->finish;
|
|
|
|
|
|
# calcul de la tva
|
|
$tva = $total_ht * $taux_tva;
|
|
|
|
# calcul du total hors taxe
|
|
$total_ttc = $total_ht + $tva ;
|
|
|
|
# affichage des totaux
|
|
print "<TR BGCOLOR=\"\#FFFFCC\" NOSAVE>\n";
|
|
#print "<TD></TD>\n";
|
|
print "<TD BGCOLOR=\"\#FFFFFF\"></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\"><FONT SIZE=4><B><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5><HR><BR>Total H\.T\. \: </B></FONT></TD>\n";
|
|
print "<TD ALIGN=\"right\"><FONT SIZE=4><B><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5><hr><BR>$total_ht</B></FONT></TD>\n";
|
|
print "</TR>\n";
|
|
print "<TR BGCOLOR=\"\#99CCFF\" NOSAVE>\n";
|
|
#print "<TD></TD>\n";
|
|
print "<TD BGCOLOR=\"\#FFFFFF\"></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\"><FONT SIZE=4><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>T\.V\.A\.\ (19,6 \%\) \: </FONT></TD>\n";
|
|
print "<TD ALIGN=\"right\"><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$tva</TD>\n";
|
|
print "</TR>\n";
|
|
print "<TR BGCOLOR=\"#FFFFCC\" NOSAVE>\n";
|
|
#print "<TD></TD>\n";
|
|
print "<TD BGCOLOR=\"\#FFFFFF\"></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD></TD>\n";
|
|
print "<TD ALIGN=\"right\"><FONT SIZE=4><B><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>TOTAL T\.\T.\C\. \: </FONT></B></TD>\n";
|
|
print "<TD ALIGN=\"right\"><FONT SIZE=4><B><spacer TYPE=\"block\" WIDTH=5 HEIGHT=5>$total_ttc</FONT></B></TD>\n";
|
|
print "</TR>\n";
|
|
print "<TR>\n";
|
|
print "<TD COLSPAN=6><spacer TYPE=\"block\" HEIGHT=12></TD>\n";
|
|
print "</TR>\n";
|
|
print "<TR >\n";
|
|
print "<TD>Choisissez votre mode de paiment : </TD>\n";
|
|
print "<TD COLSPAN=3 ALIGN=left><INPUT TYPE=radio NAME=\"paiement\" VALUE=\"carte\">Carte bancaire\n";
|
|
print "<SPACER TYPE=\"block\" WIDTH=9>\n";
|
|
print "<INPUT TYPE=radio NAME=\"paiement\" VALUE=\"cheque\">Cheque\n";
|
|
print "<SPACER TYPE=\"block\" WIDTH=9>\n";
|
|
print "</TR>\n";
|
|
print "<TR>\n";
|
|
print "<TD COLSPAN=6 ALIGN=right><INPUT TYPE=\"submit\" VALUE=\"Envoyer\" ></TD>\n";
|
|
print "</TR>\n";
|
|
print "</TABLE>\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"ID_client_el\" VALUE=\"$ID_client_el\" >\n";
|
|
print "<INPUT TYPE=\"hidden\" NAME=\"nocomde\" VALUE=$numero >\n";
|
|
print "</FORM>\n";
|
|
print "</CENTER>\n";
|
|
}
|
|
|