• Publicidad

Inventario en Carrito de Compra

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Inventario en Carrito de Compra

Notapor mydaboin » 2009-05-28 11:48 @533

Tengo un carrito de compras básico que no manejaba inventario, ahora necesito que maneje inventario y productos existentes:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$archivo_carrito = "../db/$listado/temporal/$usuario.dat";
$archivo_temporal = "../db/$listado/temporal/$usuario\_tmp.dat";
#-------------------------------------------------------------------------
sub Agregar {
#-------------------------------------------------------------------------
       
    if ($vercolores eq "") {
        $descrip= $descrip;
        if ($color ne "") {
            $descrip = "$descrip color $color";
        }
    }
    if ($vertallas eq "") {
        $descrip= $descrip;
        if ($talla ne "") {
            $descrip = "$descrip talla $talla";
        }
    }
    $accion = "";
    $existe = "no";
    $cantidad1 = 0;
    if (!-e $archivo_carrito) {
        open (CARRITO, ">$archivo_carrito") || &Error ($!, "crear $archivo_carrito");
        print CARRITO "$codigo\t$descrip\t$precio\t$cantidad\t$exento\t$impuestos\n";
        close CARRITO;
    } else {
        open (CARRITO, "$archivo_carrito") || &Error ($!, "lectura $archivo_carrito");
        open (TEMPORAL, ">$archivo_temporal") || &Error ($!, "crear $archivo_temporal");
        while ($ren=<CARRITO>) {
            chop $ren;
            @inf=split("\t",$ren);
            $codigo1=$inf[0];
            $descrip1=$inf[1];
            $precio1=$inf[2];
            $exento1=$inf[4];
            $impuestos1=$inf[5];
            if ($codigo eq $codigo1 && $descrip eq $descrip1) {
                $cantidad1=$inf[3];
                $cantidad+=$cantidad1;
                $existe="si";
                $ren="$codigo\t$descrip\t$precio\t$cantidad\t$exento\t$impuestos";
            }
            print TEMPORAL "$ren\n";
        }
        close CARRITO;
        close TEMPORAL;
        open (TEMPORAL, "$archivo_temporal") || &Error ($!, "lectura $archivo_temporal");
        @orden=<TEMPORAL>;
        close TEMPORAL;
        open (CARRITO, ">$archivo_carrito") || &Error ($!, "crear $archivo_carrito");
        print CARRITO @orden;
        if ($existe ne "si") {
            print CARRITO "$codigo\t$descrip\t$precio\t$cantidad\t$exento\t$impuestos\n";
        }
        close CARRITO;
    }
}

#-------------------------------------------------------------------------
sub Quitar {
#-------------------------------------------------------------------------
    $linea=0;
    $accion="";
    if (-e $archivo_carrito) {
        open (CARRITO, "$archivo_carrito") || &Error ($!, "lectura $archivo_carrito");
        open (TEMPORAL, ">$archivo_temporal") || &Error ($!, "crear $archivo_temporal");
        while($reng=<CARRITO>) {
            $linea++;
            if ($linea ne $quitar) {
                print TEMPORAL $reng;
            }
        }
        close CARRITO;
        close TEMPORAL;
        open (CARRITO, ">$archivo_carrito") || &Error ($!, "crear $archivo_carrito");
        open (TEMPORAL, "$archivo_temporal") || &Error ($!, "lectura $archivo_temporal");
        @archivo=<TEMPORAL>;
        print CARRITO @archivo;
        close CARRITO;
        close TEMPORAL;
    }
}

#-------------------------------------------------------------------------
sub Carrito{
#-------------------------------------------------------------------------
    if ($noboton eq "") {
        $cl=2;
    } else {
        $cl=1;
    }
    if (-e $archivo_carrito) {
        open (CARRITO, "$archivo_carrito") || &Error ($!, "lectura $archivo_carrito");
        $items=<CARRITO>;
        close CARRITO;
        if ($items eq "") {
            &Mensaje("El Carrito de Compras está Vacio","",1);
        }
        $cadcarrito  = "\n\n\n<table border=1 cellpadding=3 cellspacing=0 width=100%>\n";
        $cadcarrito .= "<tr><td colspan=$cl align=right><b>Codigo </b></td><td align=center><b>Descripcion</b></td>";
        $cadcarrito .= "<td align=center><b>Cant.</b></td><td align=right><b>Precio</b></td><td align=right>";
        $cadcarrito .= "<b>IVA por Unidad</b></td></td><td align=right><b>Subtotal</b></td></tr>\n";
        open (CARRITO, "$archivo_carrito") || &Error ($!, "lectura $archivo_carrito");
        while ($reng=<CARRITO>) {
            @inf=split("\t",$reng);
            chop $reng;
            $lin++;
            $codigo2=$inf[0];
            $descrip2=$inf[1];
            $precio2=$inf[2];
            $cantidad2=$inf[3];
            $exento2=$inf[4];
            $impuestos2=$inf[5];
            $cantped+=$cantidad2;
            $items+=$cantidad2;
            $preciototal=$precio2+$impuestos2;
            $totalpro=$cantidad2 * $preciototal;
            $subtotal+=$totalpro;
            $totalgen=$subtotal;
            $impuestost+=$impuestos2 * $cantidad2;
            if ($cantidad2 > 0) {
                print "<tr>\n";
            }
            if ($noboton eq "") {
                $cadcarrito  = "$cadcarrito <td><a href=/cgi-bin/carrito.pl?listado=$listado\&quitar=$lin\&exento=$exento";
                $cadcarrito .= "\&impuestos=$impuestos\&accion=quitar\&login1=$login1>Quitar<img src=../img/quitar.gif ";
                $cadcarrito .= "border=0 align=middle></a></td>\n";
            }
            $cadcarrito  = "$cadcarrito <td>\n";
            $cadcarrito  = "$cadcarrito $codigo2, $exento2\n";
            $cadcarrito  = "$cadcarrito </td><td>\n";
            $cadcarrito  = "$cadcarrito $descrip2\n";
            $cadcarrito  = "$cadcarrito </td><td align=center>\n";
            $cadcarrito  = "$cadcarrito $cantidad2\n";
            $cadcarrito  = "$cadcarrito </td><td align=right>\n";
            $t1=&Mascara($precio2);
            $cadcarrito  = "$cadcarrito $t1\n";
            $cadcarrito  = "$cadcarrito </td><td align=right>\n";
            $t2=&Mascara($impuestos2);
            $cadcarrito  = "$cadcarrito $t2\n";
            $cadcarrito  = "$cadcarrito </td><td align=right>\n";
            $t3=&Mascara($totalpro);
            $cadcarrito  = "$cadcarrito $t3\n";
            $cadcarrito  = "$cadcarrito </td></tr>\n";
        }
    }
    close CARRITO;
    } else {
        &Mensaje("El Carrito de Compras está Vacio","",1);
    }
    if ($noboton eq "") {
        $cl=5;
    } else {
        $cl=4;
    }
    $cadcarrito  = "$cadcarrito <tr><td colspan=$cl rowspan=4 align=center>\n";
    if ($cantped>0 && $noboton eq "") {
        $cadcarrito  = "$cadcarrito <a href=/cgi-bin/carrito.pl?listado=$listado\&accion=confirmar\&login1=$login1>\n";
        $cadcarrito  = "$cadcarrito <img src=../img/enviar.gif border=0>\n";
        $cadcarrito  = "$cadcarrito </a\n";
    }
    #$cadcarrito  = "$cadcarrito </td><td align=center><b>Sub Total    </b></td><td align=right><b>\n";
    #$tf1=&Mascara($subtotal2);
    #$cadcarrito  = "$cadcarrito $tf1  </b></td></tr>\n";
    $cadcarrito  = "$cadcarrito <tr></td><td align=center><b>Total IVA</b></td><td align=right><b>\n";
    $tf3=&Mascara($impuestost);
    $cadcarrito  = "$cadcarrito $tf3</b></td></tr>\n";
    $cadcarrito  = "$cadcarrito <tr></td><td align=center><b>Total General</b></td><td align=right><b>\n";
    $tf4=&Mascara($totalgen);
    $cadcarrito  = "$cadcarrito $tf4 </b></td></tr></table>\n";
    return $cadcarrito;
}
Coloreado en 0.011 segundos, usando GeSHi 1.0.8.4


Necesito que reste y la cantidad existente, que si excede de un error para que el usuario verifique la cantidad.

He hecho varias pruebas pero todas me dan errores, T_T, me duele mi pobre cabeza de pensar en qué forma lo resuelvo.

Help
MYRD
mydaboin
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2004-04-22 08:07 @380
Ubicación: Pues Aqui, Preguntando

Publicidad

Notapor explorer » 2009-05-29 15:52 @703

¿Te refieres a que de cada producto se puedan almacenar más de una unidad?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron