#!/usr/bin/perl #script cgi de la page de commande use DBI; use CGI; require "cgi-lib.pl"; $taux_tva = 0.196; # recuperer toutes les donnees necessaires a la mise a jour du panier &ReadParse(*query); $ID_client_el = $query{'ID_client_el'}; $suppr1 = $query{'suppr-1'}; $suppr2 = $query{'suppr-2'}; $suppr3 = $query{'suppr-3'}; $famille1 = $query{'code_famille1'}; $famille2 = $query{'code_famille2'}; $famille3 = $query{'code_famille3'}; $produit1 = $query{'code_produit1'}; $produit2 = $query{'code_produit2'}; $produit3 = $query{'code_produit3'}; $qte1 = $query{'qte1'}; $qte2 = $query{'qte2'}; $qte3 = $query{'qte3'}; $html = new CGI; print $html->header; print "\n"; print "\n"; print "Votre sélection\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

Votre sélection

\n"; print "
\n"; print "

\n"; print "

"; # affichage du debut du calepin print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; # se connecter a la base $dbh = DBI->connect("dbi:Pg:dbname=s_marchand", postgres, ) or die $DBI::errstr; # supprimer les articles decoches if ($suppr1 eq "on"){ &maj_panier($ID_client_el, $famille1, $produit1, $qte1); }else{ &supprimer ($ID_client_el, $famille1, $produit1); } if ($suppr2 eq "on"){ &maj_panier($ID_client_el, $famille2, $produit2, $qte2); }else{ &supprimer ($ID_client_el, $famille2, $produit2); } if ($suppr3 eq "on"){ &maj_panier($ID_client_el, $famille3, $produit3, $qte3); }else{ &supprimer ($ID_client_el, $famille3, $produit3); } &afficher_calepin(); # se deconnecter de la base $dbh->disconnect; #afficher la fin de la page de selection des produits print "

\n"; # boutons de gestion de la commande print "

RefDésignationQtéPrix unitaire HT Sous-total HT
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "

\n"; print "

"; print "Pour ajouter des articles, retournez sur le catalogue et sélectionnez les articles choisis.
\n"; print "Pour supprimer un article de votre sélection, vous devez le décocher, puis cliquer sur le bouton recalculer pour mettre à jour les totaux.
\n"; print "Pour commander plusieurs exemplaires d\'un produit, modifiez sa quantité puis recalculez le montant de votre commande.
\n"; print "Lorsque vous êtes satisfait de votre sélection, cliquez sur le bouton commander.\n"; print "<\BODY>"; print "<\HTML>\n"; sub maj_panier { $arg1 = $_[0]; $arg2 = $_[1]; $arg3 = $_[2]; $qte = $_[3]; $maj_panier = $dbh->prepare( "UPDATE panier SET qte = $qte" . "WHERE id_client_el='$arg1' " . "AND code_famille='$arg2' " . "AND code_produit='$arg3'"); $maj_panier->execute; $maj_panier->finish; } sub supprimer { $arg1 = $_[0]; $arg2 = $_[1]; $arg3 = $_[2]; $cursor = $dbh->prepare("DELETE FROM panier " . "WHERE id_client_el='$arg1' " . "AND code_famille='$arg2' " . "AND code_produit='$arg3'"); $cursor->execute; $cursor->finish; } 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 '$ID_client_el' " . "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 "\n"; print "\n"; print "$cpt\n"; print "$code_famille $code_produit\n"; print "$denomination\n"; print "\n"; print "$prix_ht\n"; $s_total = $prix_ht * $qte; print "$s_total\n"; print "\n"; print "\n"; #print "\n"; print "\n"; $total_ht += $s_total; $cpt++; } $cursor->finish; print "\n"; # calcul de la tva $tva = $total_ht * $taux_tva; # calcul du total hors taxe $total_ttc = $total_ht + $tva ; # affichage des totaux print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

Total H\.T\. \:
\n"; print "

$total_ht
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "T\.V\.A\.\ (19,6 \%\) \: \n"; print "$tva\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "TOTAL T\.\T.\C\. \: \n"; print "$total_ttc\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; }