 	search.pl  G^  8"^"  DЗGhGFvH   ^ HCTEXTMcPL           h  ~ƭq                         #!/usr/bin/perl
# AUTEUR      : Alain TOMASIAN                                                                 #
# DATE        : 04 octobre 1999                                                                #
# DESCRIPTION : Ce programme effectue une recherche dans la table produits.                    #
#               Les donnes en provenance de la page HTML sont :                               #
#                 - Echelle : l'echelle du modle                                              #
#		        - Type : le type de kit                                                      #
#		        - Fabricant : le fabricant du modle.                                        #
#		        - Marque : la marque du modle.                                              #
#		        - Description : un mot clef contenu dans la description du modle.           #
# note:	Les valeurs de ces entres dpendent de la table. Le script ne les interprte pas.   #
# exception: si valeur='ALL', toutes les valeurs sont acceptes.                               #
################################################################################################
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;

require "./look.pm";	# apparence html dfinie par le client
require "./data.pm";	# Routines utiles pour l'accs  la base

$query = new CGI;
 
$QUERY_SEARCH  = 'select * from Produits ';

$dbh = DBI->connect( $main::db_base , $main::db_user, $main::db_pass ) || die $DBI::errstr;      

$Echelle = $query->param('Echelle');
$Type = $query->param('Type');
$Fabricant = $query->param('Fabricant');
$Marque = $query->param('Marque');
$MotCle = $query->param('MotCle');
$MaxSearch = 100 ;

$Flag=0 ;

if (($Echelle ne 'All') || ($Type ne 'All') || ($Fabricant ne 'All') || ($Marque ne 'All') || ($MotCle ne '')) { $QUERY_SEARCH .= "where " } ;
    
if ($Echelle ne 'All')
{
    $QUERY_SEARCH .= "Echelle=\'$Echelle\' ";
    $Flag=1;
}
if ($Type ne 'All')
{
    if ($Flag == 1) { $QUERY_SEARCH .= "and " }
    $QUERY_SEARCH .= "Type=\'$Type\' ";
    $Flag=1;
}
if ($Fabricant ne 'All')
{
    if ($Flag == 1) { $QUERY_SEARCH .= "and " }
    $QUERY_SEARCH .= "Fabricant=\'$Fabricant\' ";
    $Flag=1;
}
if ($Marque ne 'All')
{
    if ($Flag == 1) { $QUERY_SEARCH .= "and " }
    $QUERY_SEARCH .= "Marque=\'$Marque\' ";
    $Flag=1;
}
if ($MotCle ne '')
{
    if ($Flag == 1) { $QUERY_SEARCH .= "and " }
    $QUERY_SEARCH .= "Description LIKE \'%$MotCle%\'";
}

$sth = $dbh->prepare( $QUERY_SEARCH ) || die $dbh->errstr;
$rv = $sth->execute || die $dbh->errstr;
$rows = $sth->rows;

&html_begin;
print << "EOT";
<script language="javascript">

function windowOpen()
{
    winImage = window.open("","Images","scrollbars=yes,resizable=yes,width=500,height=300").focus();
}
</script>
<center>
EOT

if ($rows == 0)
{
    $MessageFR = "Aucune r&eacute;f&eacute;rence n'a &eacute;t&eacute; trouv&eacute;e. Veuillez recommencer S.V.P.";
    $MessageEN = "Mafma found no item matching your query. Please try again.";
    &html_tryagain;
    $dbh->disconnect;
    exit;
}
if ($rows > $MaxSearch)
{
    $MessageFR = "Plus de $MaxSearch r&eacute;f&eacute;rences ont &eacute;t&eacute; trouv&eacute;. Voici les $MaxSearch premi&egrave;re r&eacute;f&eacute;rence.";
    $MessageEN = "We found more than $MaxSearch items. Here are the $MaxSearch first items.";
    $NbItem = $MaxSearch ;
}
else
{
    $MessageFR = "Nous avons trouv&eacute; $rows r&eacute;f&eacute;rences.";
    $MessageEN = "We found $rows items.";
    $NbItem = $rows ;
}
print << "EOT" ;
<form action="/cgi-bin/Commander.pl">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1" WIDTH="100%">
    <TR>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="3" COLOR="#FFFFFF" FACE="Arial"><B>$MessageFR</B></FONT><BR>
	   <FONT SIZE="3" COLOR="#FFFF66" FACE="Arial"><B>$MessageEN</B></FONT>
	   </TD>
    </TR>
</TABLE>
<P>
<TABLE BORDER="1" CELLSPACING="1" CELLPADDING="1" BGCOLOR="#FFEBCD">
    <TR>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial">Code</FONT><BR>
	   <FONT SIZE="1" COLOR="#800000"><B>Code</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Echelle</B></FONT><BR>
	   <FONT SIZE="1" COLOR="#800000"><B>Scale</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Type</B></FONT><BR>
	   <FONT SIZE="1" COLOR="#800000"><B>Type</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Fabricant</B></FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Manufacturer</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Marque</B></FONT><br>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Model</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial">Description</FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Description</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Prix (FRF)</B></FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Price (FRF)</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Prix (Euro)</B></FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Price (Euro)</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial"><B>Photo</B></FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Picture</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial">Commander</FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Command</B></FONT>
	   </TD>
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <FONT SIZE="1" COLOR="#004080" FACE="Arial">Qt&eacute;</FONT><BR>
	   <FONT SIZE="1" COLOR="#800000" FACE="Arial"><B>Qty</B></FONT>
	   </TD>
    </TR>
EOT
for ($i=0;$i<$NbItem;$i++)
{
    ($CodeProduit,
     $Echelle,
	$Type,
	$Fabricant,
	$Marque,
	$Description,
	$Prix,
	$Photo) = $sth->fetchrow_array;
    $Prix_FF = sprintf "%2.2f", $Prix;
    $Prix_EU = sprintf "%2.2f", $Prix/$main::euro;
    $Echelle =  sprintf "1/%2d eme", $Echelle; # Formatage du champ echelle.          #
    print << "EOT" ;
    <input type="hidden" name="cod-$i" value="$CodeProduit">
    <tr>
	   <TD NOWRAP><FONT SIZE="1">$CodeProduit</FONT></td>
	   <TD NOWRAP><FONT SIZE="1">$Echelle</FONT></td>
	   <TD NOWRAP><FONT SIZE="1">$Type</FONT></td>
	   <td><FONT SIZE="1">$Fabricant</FONT></td>
	   <td><FONT SIZE="1">$Marque</FONT></td>
	   <td><FONT SIZE="1">$Description</FONT></td>
	   <TD ALIGN="RIGHT" NOWRAP><FONT SIZE="1">$Prix_FF FRF</FONT></td>
	   <TD ALIGN="RIGHT" NOWRAP><FONT SIZE="1">$Prix_EU EU</FONT></td>
EOT
    #chop($Photo);
    
    if ($Photo =~ /^0/)
    {
	   print "<td>&nbsp;</td>\n";    
    } 
    else 
    {
	   print << "EOT";
	   <TD ALIGN="CENTER" VALIGN="MIDDLE">
	   <a href="/images/$Photo" target="Images" onClick="windowOpen()"><IMG SRC="/aphot.gif" ALT="Photo" BORDER="0"></a>
	   </TD>
EOT
    }
    print << "EOT" ;
        <td align="center">
	   <input type="checkbox" name="com-$i">
	   </td>
	   <td>
	   <input type="text" name="qty-$i" value="1" size="2">
	   </td>
    </tr>
EOT
}
print << "EOT" ;
</table>
<p><input type="submit" value="Commander/To order"></p>
</form>
EOT
&html_end;
$dbh->disconnect;
exit;

                             L   L   2                                                                                                                                                                                                                                                   H 	Monaco $
p" H'   ( G? ( G?                  L   L   2    2  MPSR   
    :  