Fashion Store

19
1 <?php require_once( "egcc.php" ); fnSessionStart(); if( !$_SESSION["codigo"] ) { fnRedirect( "default.php" ); return; } $canasta = $_SESSION["canasta"]; if( is_null( $canasta ) ) { fnShowMsg( "Mensaje", "Su canasta esta vacía." ); return; } ksort( $canasta ); $cn = fnConnect( $msg ); if(!$cn){ fnShowMsg( "ERROR", $msg ); return; } // Obtener Datos $codigo = $_SESSION["codigo"]; // Obtener IGV $sql = "select valor from control where parametro='igv'"; $rs = mysql_query($sql, $cn ); $igv = mysql_result( $rs, 0, 0 ); // Iniciar transacción mysql_query( "BEGIN", $cn ); // Generar Numero de Pedido $sql = "select valor from control where parametro='pedido'"; $rs = mysql_query($sql, $cn ); $idped = mysql_result( $rs, 0, 0 ); $sql = "update control set valor = valor + 1 "; $sql .= "where parametro='pedido'"; mysql_query( $sql, $cn ); // Pragar Pedido $sql = "insert into pedido( idpedido, idcliente, fecha, subtotal, "; $sql .= "igv, total, estado, usuario ) values( $idped, '$codigo', "; $sql .= "curdate(), 0, 0, 0, 'I', substring_index(user(),'@',1) )"; mysql_query( $sql, $cn ); // Obtener total e insertar detalles $total = 0; foreach ( $canasta as $item => $cant ) { $sql = "select precio, stock, nomarticulo "; $sql .= "from articulo where idarticulo = '$item' "; $rs = mysql_query( $sql, $cn ); $row = mysql_fetch_row( $rs ); if( $cant > $row[1] ) {

Transcript of Fashion Store

Page 1: Fashion Store

1

<?phprequire_once( "egcc.php" );fnSessionStart();if( !$_SESSION["codigo"] ) {

fnRedirect( "default.php" );

return;}$canasta = $_SESSION["canasta"];if( is_null( $canasta ) ) {

fnShowMsg( "Mensaje", "Su canasta esta vacía." );return;

}ksort( $canasta );$cn = fnConnect( $msg );if(!$cn){

fnShowMsg( "ERROR", $msg );return;

}// Obtener Datos$codigo = $_SESSION["codigo"];// Obtener IGV$sql = "select valor from control where parametro='igv'";$rs = mysql_query($sql, $cn );$igv = mysql_result( $rs, 0, 0 );// Iniciar transacciónmysql_query( "BEGIN", $cn );// Generar Numero de Pedido$sql = "select valor from control where parametro='pedido'";$rs = mysql_query($sql, $cn );$idped = mysql_result( $rs, 0, 0 );$sql = "update control set valor = valor + 1 ";$sql .= "where parametro='pedido'";mysql_query( $sql, $cn );// Pragar Pedido$sql = "insert into pedido( idpedido, idcliente, fecha, subtotal, ";$sql .= "igv, total, estado, usuario ) values( $idped, '$codigo', ";$sql .= "curdate(), 0, 0, 0, 'I', substring_index(user(),'@',1) )";mysql_query( $sql, $cn );// Obtener total e insertar detalles$total = 0;foreach ( $canasta as $item => $cant ) {

$sql = "select precio, stock, nomarticulo ";$sql .= "from articulo where idarticulo = '$item' ";$rs = mysql_query( $sql, $cn );$row = mysql_fetch_row( $rs );if( $cant > $row[1] ) {

Page 2: Fashion Store

2

mysql_query( "ROLLBACK", $cn );$msg = "El articulo <b>$row[2]</b> no tiene stock suficiente.";fnShowMsg( "ERROR", $msg );return;

}$subtotal = $row[0] * $cant;$total += $subtotal;// Grabar detalle$sql = "insert into detalle( idpedido, idarticulo, cantidad, ";$sql .= "precio, subtotal ) values( $idped, '$item', $cant, ";$sql .= "$row[0], $subtotal ) ";mysql_query( $sql, $cn );// Actualizar stock$sql = "update articulo set stock = stock - $cant ";$sql .= "where idarticulo = '$item' ";mysql_query( $sql, $cn );

}// Actualizar pedido$subtotal = $total / ( 1 + $igv );$impuesto = $total - $subtotal;$sql = "update pedido set subtotal = $subtotal, ";$sql .= "igv = $impuesto, total = $total, ";$sql .= "estado = 'P' where idpedido = $idped ";mysql_query( $sql, $cn );mysql_query( "COMMIT", $cn );$_SESSION["canasta"] = null;say( "<center><h2>Pedido Nro. $idped</h2><center>" );$msg = "<h4>Señor: " . $_SESSION["nombre"] . "</h4>";$msg .= "Su transacción se procesó con exito.<br>";$msg .= "En 48 horas llegara su pedido.<br><br>";$msg .= "Gracias por su confianza en nosotros.<br>";fnShowMsg( "MENSAJE", $msg );?>

Page 3: Fashion Store

3

<?phprequire_once( "egcc.php" );fnSessionStart();if( !isset($_POST["seguro"]) ) {

fnRedirect( "default.php" );return;

}$seguro = $_POST["seguro"];if( $seguro != $_SESSION["seguro"] ){

fnRedirect( "default.php?op=2" );return;

}$codigo = $_POST["codigo"];$canasta = $_SESSION["canasta"];if( is_null($canasta) ) {

$canasta[$codigo] = 1;} else {

$encontro = 0;foreach ( $canasta as $item => $valor ) {

if( $item == $codigo ) {$canasta[$codigo] += 1;$encontro = 1;break;

}}if( $encontro == 0 ) { $canasta[$codigo] = 1; }

}$_SESSION["canasta"] = $canasta;fnRedirect( "default.php?op=3" );?>

Page 4: Fashion Store

4

<?phprequire_once( "egcc.php" );fnSessionStart();if( !$_SESSION["codigo"] ) {

fnRedirect( "default.php" );return;

}if( !isset($_GET["art"]) ) {

fnRedirect( "default.php" );return;

}$canasta = $_SESSION["canasta"];$codigo = $_GET["art"];$cant = $canasta[$codigo];$cn = fnConnect( $msg );$sql = "select * from articulo ";$sql .= "where idarticulo = '$codigo'";$rs = mysql_query($sql,$cn);$row = mysql_fetch_assoc( $rs );say("<table width=600 align='center'>");say("<tr>");say("<td width=200 align='center' valign='middle'>");say("<img src='fotos/$codigo.jpg' width='100' height='100' border='1'>");say("</td>");say("<td width=380 align='left' valign='middle'>");say("Codigo: $codigo<br>");;say("Nombre: ".$row["nomarticulo"]."<br>");say("Descripción: ".$row["descripcion"]."<br>");say("Precio: ".$row["precio"]."<br>");;say("Stock: ".$row["stock"]."<br>");say("<form method='post' action='canasta_update.php'>");say("<input type='hidden' name='art' value='$codigo'>");say("Cantidad:");say("<input type='text' name='cant' size=3 maxlength=3 value='$cant'><br>");say("<input type='hidden' name='seguro' value='".$_SESSION["seguro"]."'>");say("<input type='submit' value='Aceptar'> ");say("<input type='submit' value='Cancelar' onClick='history.back();'>");say("</form>");say("</td>");say("</tr>");say("</table>");?>

Page 5: Fashion Store

5

<?phprequire_once( "egcc.php" );fnSessionStart();$canasta = $_SESSION["canasta"];if( is_null( $canasta ) ) {

fnShowMsg( "Mensaje", "Su canasta esta vacía." );return;

}ksort( $canasta );$cn = fnConnect( $msg );if(!$cn){

fnShowMsg( "ERROR", $msg );return;

}say("<table width='600' align='center'>");say("<tr height=25>");say("<th width=30 align=center valign=middle>Código</th>");say("<th width=150 align=center valign=middle>Nombre</th>");say("<th width=70 align=center valign=middle>Cantidad</th>");say("<th width=70 align=center valign=middle>Precio</th>");say("<th width=70 align=center valign=middle>Subtotal</th>");say("<th align=center valign=middle>Acciones</th>");say("</tr>");$total = 0;foreach ( $canasta as $item => $valor ) {

$sql = "select idarticulo as art, nomarticulo as nom,";$sql .= "precio as precio ";$sql .= "from articulo as a ";$sql .= "where idarticulo = '$item' ";$rs = mysql_query( $sql, $cn );$row = mysql_fetch_assoc( $rs );$subtotal = $row["precio"] * $valor;$total += $subtotal;say("<tr>");say("<td align=center>".$row["art"]."</td>");say("<td align=left>".$row["nom"]."</td>");say("<td align=center>".$valor."</td>");say("<td align=right>".$row["precio"]."</td>");say("<td align=right>".$subtotal."</td>");say("<td align=center>");$cad = "canasta_oper.php?oper=A&art=".$row["art"];say( fnLink($cad,"","Anular Item","Anular") );$cad = "default.php?op=5&art=".$row["art"];say( fnLink($cad,"","Editar Item","Editar") );say("</td>");say("</tr>");

Page 6: Fashion Store

6

}say("<tr height=25>");say("<th align=left valign=middle colspan=4>Total</th>");say("<th align=right valign=middle>$total</th>");say("<th align=right valign=middle> </th>");say("</tr>");say("</table>");?><TABLE align="center"><TR> <TD width="200" align="center" valign="middle"> <?php say(fnLink("canasta_oper.php?oper=T","","Vaciar Canasta","Vaciar Canasta")); ?> </TD> <TD width="200" align="center" valign="middle"> <?php say(fnLink("default.php?op=4","","Pagar","Pagar")); ?> </TD></TR></TABLE>

Page 7: Fashion Store

7

<?phprequire("egcc.php");fnSessionStart();if( !$_SESSION["codigo"] ) {

fnRedirect( "default.php" );return;

}if( !isset($_GET["oper"]) ) {

fnRedirect( "default.php" );return;

}$oper = $_GET["oper"];$art = $_GET["art"];$canasta = $_SESSION["canasta"];if($oper=="T"){ // Eliminar todos los items

$canasta = null;}if($oper=="A"){ // Eliminar item actual

$canasta_tmp = null;foreach ($canasta as $item => $valor) {

if( $item != $art ) { $canasta_tmp[$item] = $valor;

}}$canasta = $canasta_tmp;

}$_SESSION["canasta"] = $canasta;fnRedirect( "default.php?op=3" );?>

Page 8: Fashion Store

8

<?phprequire_once( "egcc.php" );fnSessionStart();if($_SESSION["codigo"]){

$k = 1; // Con botón Comprar} else {

$k = 0; // Sin botón Comprar}$cn = fnConnect($msg);if(!$cn) {

fnShowMsg("Error",$msg);return;

} else {$rs = mysql_query("select * from articulo",$cn);say("<table width=660>");say("<tr>");say("<th width=90 align=center valign=middle>Articulo</th>");say("<th width=240 align=left valign=middle>Descripcion</th>");say("<th width=90 align=center valign=middle>Articulo</th>");say("<th width=240 align=left valign=middle>Descripcion</th>");say("</tr>");$col = 1;while($row = mysql_fetch_array($rs,MYSQL_ASSOC)) {

if($col==1){say("<tr>");}say("<td align=center valign=middle>");say("<img src='fotos/".$row["idarticulo"].".jpg' width='100'

height='100' border='1'>");say("</td>");say("<td align=left valign=middle>");say("Codigo:".$row["idarticulo"]."<br>");;say($row["nomarticulo"]."<br>");say($row["descripcion"]."<br>");say("Precio:".$row["precio"]."<br>");;say("Stock:".$row["stock"]."<br>");$codigo = $row["idarticulo"];if($k){

$seguro = $_SESSION["seguro"];say("<form method='post' action='canasta_add.php'>");say("<input type='hidden' name='codigo' value='$codigo'>");say("<input type='hidden' name='seguro' value='$seguro'>");say("<input type='submit' value='Comprar'>");say("</form>");

}say("</td>");if($col==2){

say("</tr>");$col = 1;

}else{$col = 2;

}}if($col==1){say("</tr>");}say("</table>");

}

Page 9: Fashion Store

9

?><?phprequire_once( "egcc.php" );fnSessionStart();?><HTML><HEAD>

<TITLE>FashionStore</TITLE><meta name="Author" content="Eric Gustavo Coronel Castillo"><LINK rel="stylesheet" type="text/css" href="egcc.css">

</HEAD><BODY><?phprequire( "titulo.html" );fnHeader();?><table width="760" cellspacing="0"><tr><td width='100' valign="top"><?php echo fnMenu(); ?></td><td valign="middle"><?php$op = 2;if(isset($_GET["op"]) ) {

$op = $_GET["op"];}switch ($op) {

case 1:require( "inicio.php" );break;

case 2:require( "catalogo.php" );break;

case 3:require( "canasta_list.php" );break;

case 4:require( "pagar.php" );break;

case 5:require( "canasta_edit.php" );break;

case 6:require( "pagar_conf.php" );break;

case 10:require( "error.php" );

Page 10: Fashion Store

10

break;}?></td></tr></table><?php require( "pie.html" ); ?></BODY></HTML>

/* cerrar.php

<?phprequire("egcc.php");fnSessionStart();fnSessionEnd();fnRedirect( "default.php" );?>

Page 11: Fashion Store

11

<?php

/* * Función que se conecta con el servidor * y selecciona la base de datos activa. * Retorna un mensaje en caso exista error.*/function fnConnect( &$msg ){

$cn=mysql_connect("localhost","root","admin");if(!$cn){

$msg = "Error en la conexión.";return 0;

}$n = mysql_select_db("fashionstore",$cn);if(!$n){

$msg = "Base de datos no existe.";mysql_close($cn);return 0;

}return $cn;

}

/* * Función que imprime un mensaje en el navegador. * */

function say($cad){echo $cad . "\n";

}

/* * Función que retorna la fecha actual.*/function fnNow(){

$hoy = getdate(time());$fecha = $hoy["mday"]."-".$hoy["mon"]."-".$hoy["year"];return $fecha;

}

/* * Función que inicia una sesión.*/function fnSessionStart(){

session_start();if(!isset($_SESSION["codigo"])){

$_SESSION["codigo"] = ""; $_SESSION["nombre"] = "Anónimo"; $_SESSION["canasta"] = null; $_SESSION["seguro"] = fnRnd( 1000, 9999 );}

}

/* * Función que finaliza una sesión.*/

Page 12: Fashion Store

12

function fnSessionEnd(){session_unset();session_destroy();

}

/* * Función que muestra un mensaje.*/function fnShowMsg($title,$msg){ say("<table align='center' width='300' border='1'>"); say("<tr>"); say("<th>$title</th>"); say("</tr>"); say("<tr>");

say("<td>$msg</td>"); say("</tr>"); say("</table>");}

/* * Función que muestra una línea de cabecera.*/function fnHeader(){

$usuario = $_SESSION["nombre"];say("<table width='760' cellspacing='0' height='30'>");

say("<tr>"); say("<th align=left valign=middle>Cliente: $usuario</th>"); say("<th align=right valign=middle>Fecha: ".fnNow()."</th>"); say("</tr>"); say("</table>");}

/* * Función que muestra un botón para regresar a la página anterior.*/function fnBack(){ return "<input type='button' Value='Back' onClick='history.back();'>";}

function fnRedirect($pagina){ $cad = "Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/$pagina"; header( $cad, True );}

/* * Función que retorna un link.*/function fnLink($link,$target,$mouseover,$msg){

$cad = "<A href='$link' target='$target' ";$cad .= "onmouseout=\"self.status='';return true\" ";$cad .= "onmouseover=\"self.status='$mouseover' ;return true\">";$cad .= "$msg</A>";return $cad;

}

Page 13: Fashion Store

13

/* * Función que retorna el menú de la aplicación.*/function fnMenu(){

$cad = "<table border='1' width='100'>";$cad .= "<tr><td align='center'>" ;if( $_SESSION["codigo"] ) {

$cad .= fnLink("cerrar.php","","Terminar de Sesión","Terminar");} else {

$cad .= fnLink("default.php?op=1","","Inicio de Sesión","Inicio");}$cad .= "</td></tr>";

$cad .= "<tr><td align='center'>" ;$cad .= fnLink("default.php?op=2","","Mostrar Catalogo","Catalogo");$cad .= "</td></tr>";

if( $_SESSION["codigo"] ) {$cad .= "<tr><td align='center'>" ;$cad .= fnLink("default.php?op=3","","Mostrar Canasta","Canasta");$cad .= "</td></tr>";

$cad .= "<tr><td align='center'>" ;$cad .= fnLink("default.php?op=4","","Pagar","Pagar");$cad .= "</td></tr>";

}

$cad .= "</table>" ;

return $cad;}

/* * Retorna un numero aleatorio entre $minimo y $maximo.*/function fnRnd($minimo, $maximo){ srand((double)microtime()*1000000); $randval = rand($minimo, $maximo); return $randval;}

/* * Función que imprime las etiquetas de fin de pagina. * */function fnPageEnd(){ say("</body>"); say("</html>");}?>

Page 14: Fashion Store

14

<?phprequire("egcc.php");fn_initsession();$msg = "";if(isset($_SESSION["idcliente"])){

fn_cabecera();$msg = "Usted ya tiene una sesión.<br>";$msg .= "Para iniciar otra sesión, ";$msg .= "debe cerrar la actual.";$msg .= "<br><br>".fn_back();fn_showmsg("ERROR",$msg);die("");

}if(isset($codigo) and isset($clave)){

$cn = fn_connect($msg);if(!$cn){

fn_showmsg("ERROR",$msg);die("");

}$sql = "select nomcliente from cliente ";$sql .= "where idcliente = '$codigo' and clave = '$clave'";$rs = mysql_query($sql,$cn);if(!$rs){

fn_showmsg("ERROR","Código o Clave incorrectos.");mysql_close($cn);die("");

}$_SESSION["idcliente"] = $codigo;$_SESSION["nombre"] = mysql_result($rs,0,0);$_SESSION["items"] = 0;fn_cabecera();fn_showmsg("Mensaje","Bienvenido ".$_SESSION['nombre']);mysql_free_result($rs);mysql_close($cn);exit;

}

?><table width=760><tr><td>

<form method=post action="usuario.php"><table align=center valign=middle><tr height=50>

<td colspan=2 align=center valign=bottom><b>Inicio de Sesión</b></td>

Page 15: Fashion Store

15

</tr><tr>

<td>Código Cliente</td><td><input type="text" name="codigo" size=20 maxlength=5></td>

</tr><tr>

<td>Contraseña</td><td><input type="password" name="clave" size=20

maxlength=20></td></tr><tr>

<td colspan=2 align=center valign=bottom><input type="submit" value="Aceptar"><input type="reset" value="Limpiar">

</td></tr> <td colspan=2 align=center valign=bottom>

<?php say(fn_link("usuario_new.php","","Registro nuevo

cliente","Nuevo cliente"));say(fn_link("enviar_clave.php","","Olvide mi clave","Olvive mi

clave"));?>

</td><tr></tr></table></form>

</td></tr></table></BODY></HTML>

<?php

Page 16: Fashion Store

16

require_once( "egcc.php" );fnSessionStart();if( !$_SESSION["codigo"] ) {

fnRedirect( "default.php" );return;

}$canasta = $_SESSION["canasta"];if( is_null( $canasta ) ) {

fnShowMsg( "Mensaje", "Su canasta esta vacía." );return;

}ksort( $canasta );$cn = fnConnect( $msg );if(!$cn){

fnShowMsg( "ERROR", $msg );return;

}say("<center><h2>Este es su Pedido</h2></center>");say("<table width='400' align='center'>");say("<tr height=25>");say("<th width=30 align=center valign=middle>Código</th>");say("<th width=150 align=center valign=middle>Nombre</th>");say("<th width=70 align=center valign=middle>Cantidad</th>");say("<th width=70 align=center valign=middle>Precio</th>");say("<th width=70 align=center valign=middle>Subtotal</th>");say("</tr>");$total = 0;foreach ( $canasta as $item => $valor ) {

$sql = "select idarticulo as art, nomarticulo as nom,";$sql .= "precio as precio ";$sql .= "from articulo as a ";$sql .= "where idarticulo = '$item' ";$rs = mysql_query( $sql, $cn );$row = mysql_fetch_assoc( $rs );$subtotal = $row["precio"] * $valor;$total += $subtotal;say("<tr>");say("<td align=center>".$row["art"]."</td>");say("<td align=left>".$row["nom"]."</td>");say("<td align=center>".$valor."</td>");say("<td align=right>".$row["precio"]."</td>");say("<td align=right>".$subtotal."</td>");say("</tr>");

}say("<tr height=25>");say("<th align=left valign=middle colspan=4>Total</th>");say("<th align=right valign=middle>$total</th>");say("<th align=right valign=middle> </th>");say("</tr>");say("</table>");?><TABLE align="center"><TR> <TD width="200" align="center" valign="middle"> <?php say(fnLink("default.php?op=6","","Confirmar Compra","Confirmar Compra")); ?> </TD></TR></TABLE>

Page 17: Fashion Store

17

/* error_php<?phprequire_once( "egcc.php" );fnSessionStart();$nroerror = $_GET["nroerror"];switch ( $nroerror ){

case 1:$msg = "Email o Contraseña incorrectos.";break;

default:$msg = "Error desconocido.";

}fnShowMsg( "Error", $msg );?>

/* inicio.php<?phprequire_once( "egcc.php" );fnSessionStart();if($_SESSION["codigo"] != ""){

fnRedirect( "default.php" );return;

}?><form method="POST" action="inicio2.php"><table align="center"><tr><th colspan=2>Inicio de Sesión</th></tr><tr>

<td>Email</td><td><input type="text" name="email" size=20 maxlength=30></td>

</tr><tr>

<td>Contraseña</td><td><input type="password" name="clave" size=20 maxlength=20></td>

</tr><tr>

<td colspan=2 align=center valign=bottom><input type="hidden" name="seguro" value="<?php echo $_SESSION["seguro"]; ?>"><input type="submit" value="Enviar"><input type="reset" value="Limpiar">

</td></tr></table></form>

Page 18: Fashion Store

18

<?phprequire_once( "egcc.php" );fnSessionStart();if($_SESSION["codigo"]){

fnRedirect( "default.php" );return;

}if( !isset($_POST["seguro"]) ) {

fnRedirect( "default.php" );return;

}$seguro = $_POST["seguro"];if( $seguro != $_SESSION["seguro"] ) {

fnRedirect( "default.php?op=1" );return;

}$email = $_POST["email"];$clave = $_POST["clave"];$cn = fnConnect($msg);$sql = "select idcliente, nomcliente from cliente ";$sql .= "where email = '$email' and clave = '$clave'";$rs = mysql_query($sql,$cn);$rows = mysql_num_rows( $rs );if( $rows == 0 ){

fnRedirect( "default.php?op=10&nroerror=1" );return;

}$_SESSION["codigo"] = mysql_result($rs,0,0);$_SESSION["nombre"] = mysql_result($rs,0,1);fnRedirect( "default.php" );?>

Page 19: Fashion Store

19