
16/09/2009, 05:14
|
 | | | Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 23 años, 6 meses Puntos: 0 | |
Respuesta: Ayuda con codigo carrito de la compra en ASP Aqui sigue el codigo que no ntraba en un post
Código:
'_________________________________________________________________________________________________________________________________
Sub PasarPorCaja
'-----------------------------------------------
' En este punto del script es donde debería ir
' todo lo relacionado con el pago, etc.
' Se podría por ejemplo escribir el pedido en un fichero
' de texto y añadirlo a una tabla de pedidos en la base de datos
' o bien enviar los detalles por email a una dirección.
%>
<H3 align="center"><b>¡GRACIAS POR COMPRAR</b> <br />
<br />
Aquí puede ver el resumen de su Pedido:</H3>
<p><br />
<%
MostrarCarrito
%>
<br />
<h3 align="center">En breve nuestro Dpto. de Atención al Cliente se pondrá en contacto con usted.<br />
<br />
Para ello facilítenos los siguientes datos:</h3></p>
<p> <br>
</p>
<form action="tratar-enviar-pedido-linea-naranja.aspx" method="post">
<table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="59" height="21">(*) Nombre:</td>
<td width="136" height="30"><input type="text" name="nombre" id="nombre" /></td>
<td width="62">(*) Apellidos:</td>
<td width="143"><input type="text" name="apellidos" id="apellidos" /></td>
</tr>
<tr>
<td height="21">Dirección:</td>
<td height="30"><input type="text" name="direccion" id="direccion" /></td>
<td>CP:</td>
<td><input type="text" name="cp" id="cp" /></td>
</tr>
<tr>
<td height="21">Población:</td>
<td height="30"><input type="text" name="poblacion" id="poblacion" /></td>
<td>Provincia:</td>
<td><input type="text" name="provincia" id="provincia" /></td>
</tr>
<tr>
<td height="21">País:</td>
<td height="30"><input type="text" name="pais" id="pais" /></td>
<td>(*) Teléfono:</td>
<td><input type="text" name="telefono" id="telefono" /></td>
</tr>
<tr>
<td> (*) Email:</td>
<td height="30"><input type="text" name="email" id="email" /></td>
<td> </td>
<td> </td>
</tr>
</table>
<table width="550" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><p>Comentarios:</p>
<p>
<textarea name="comentarios" id="comentarios" cols="58" rows="5"></textarea>
</p></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center"><input name="button" type="submit" id="button" onclick="MM_validateForm('nombre','','R','apellidos','','R','telefono','','R','email','','RisEmail');return document.MM_returnValue" value="Enviar Pedido" /></td>
</tr>
</table>
<%
Dim clave,precio,SQL,oRs,SQL2,oRs2,subtotal,subtotal_pantalla,total,descuento_pantalla,descuento,iva,subtotal_final
total=0
subtotal=0
descuento=0.10
iva=0.16
For Each clave in carrito
SQL="SELECT * FROM Productos WHERE id_producto="&clave&";"
set oRs=oConn.Execute(SQL)
SQL2="SELECT * FROM precios WHERE id_producto="&clave&";"
set oRs2=oConn.Execute(SQL2)
'-------------------------------------------------------------------------------------------
'CALCULO DE PRECIOS
Dim precio1,precio2,precio3
precio1=oRs2("precio1")
precio2=oRs2("precio2")
precio3=oRs2("precio3")
If request.QueryString("prod") <> 5 then
If unidades <= 200 then
precio=precio1
elseif unidades >200 AND unidades <= 500 then
precio=precio2
elseif unidades > 500 then
precio=precio3
End if
elseif Request.QueryString("prod") = 5 then 'âra los tacos de notas
Dim tacos
tacos=request.Form("tacos")
If tacos = 200 then
precio=precio1
elseif tacos = 300 then
precio=precio2
End if
End If
'--------------------------------------------------------------------
' Multiplico el precio por la cantidad. FormatNumber me asegura que es un nº válido
' y convierto todo a tipo Single con CSng.
subtotal=CSng(FormatNumber(carrito(clave))*precio)
subtotal_pantalla=Formatnumber(subtotal,2)
total=total+subtotal
%>
<input name="articulo<%=clave%>" type="hidden" id="" value="<%=clave%>">
<input name="unidades<%=clave%>" type="hidden" id="" value="<%=carrito(clave)%>">
<input name="precio<%=clave%>" type="hidden" id="" value="<%=precio%>">
<input name="subtotal<%=clave%>" type="hidden" id="" value="<%=subtotal_pantalla%>">
<%'response.Write("unidades " & clave)%>
<%'response.Write("precio/unidad " & carrito(clave))%>
<%'response.Write("precio " & precio)%>
<%'response.Write("subtotal " & subtotal_pantalla)%>
<%Next%>
<%if total=0 then
Response.Write("0") ' Sin compra no hay descuento
else
descuento=total*descuento
descuento_pantalla=Formatnumber(descuento,2)
'Actualizazo TOTAl
total=total-descuento
subtotal_final=total
end if%>
<%if total=0 then
Response.Write("0")
else
iva=(iva * total)
iva_pantalla=Formatnumber(iva,2)
'Actualizazo TOTAl
total=total+iva
end if%>
<br />
<%'response.Write("descuento" & descuento_pantalla)%>
<%'response.Write("subtotal" & subtotal_final)%>
<%'response.Write("iva" & iva)%>
<%'response.Write("total" & total)%>
<input name="descuento" type="hidden" id="" value="<%=descuento_pantalla%>">
<input name="subtotal_final" type="hidden" id="" value="<%=subtotal_final%>">
<input name="iva" type="hidden" id="" value="<%=iva%>">
<input name="total" type="hidden" id="" value="<%=total%>">
<br />
</form>
<p> </p>
<p>
<%
' Para el ejemplo, aquí libero la variable de sesión
session.abandon
set Session("carrito")=nothing
End Sub
'---------------------------------
' Programa "principal"
'---------------------------------
Dim carrito
Dim accion
Dim producto
Dim cant
Dim oConn
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tienda.mdb")
' Si no existe el carrito lo creo
' si existe lo referencio
if isobject(Session("carrito")) then
set carrito=Session("carrito")
else
set carrito=Server.CreateObject("Scripting.Dictionary")
end if
accion=CStr(Request.QueryString("ac")) 'Paso el parámetro a cadena
producto=CInt(Request.QueryString("prod")) 'Paso el parámetro cant a número entero
cant=CInt(Request.QueryString("cant")) 'Paso el parámetro cant a número entero
Select Case accion
Case "ver"
'Muestro el carrito
MostrarCarrito
Case "meter"
'Añado articulo al carrito
MeterArticulo producto
MostrarCarrito
Case "sacar"
' Quito el numero 'cant' de articulos 'producto' del carrito
call SacarArticulo (producto, cant)
MostrarCarrito
Case "fin"
' Muestro las compras y termino
PasarPorCaja
Case else
'Muestro el catálogo
MostrarCatalogo
End Select
set Session("carrito")=carrito
oConn.Close
set oConn=nothing
%>
</p>
</html>
    |