Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/09/2009, 05:14
Avatar de Laika
Laika
 
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&iacute; puede ver el resumen de su Pedido:</H3>
<p><br />
  <%
MostrarCarrito
%>
  <br />
  <h3 align="center">En breve nuestro Dpto. de Atenci&oacute;n al Cliente se pondr&aacute; en contacto con usted.<br />
    <br />
    Para ello facil&iacute;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&oacute;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&oacute;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&iacute;s:</td>
    <td height="30"><input type="text" name="pais" id="pais" /></td>
    <td>(*) Tel&eacute;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>&nbsp;</td>
    <td>&nbsp;</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>&nbsp;</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>&nbsp;</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>