Hjælp til beregning af fragt og totalpris
Hej EksperterJeg arbejder på en webshop, men har lidt problemer med at beregne fragt og den samlede totalpris.
Alle varer i min database har en tilhørende vægt. Ud fra den samlede vagt på de varer som er indkøbsvognen skal fragten beregnes. På nuværende tidspunkt er fragten 5% af den totale pris for varerne, men det skal ændres så det beregnes ud fra vægt i stedet for.
Min kode:
--------
<%@ Language=VBScript %>
<!-- #include file="db.asp" -->
<!-- #include file="adovbs.inc" -->
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConString
if cstr(Session("orderID")) = "" then
%>
<html>
<head>
<title>Kassen - Trin 1 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
margin-top: 0px;
margin-left: 4px;
}
-->
</style>
</head>
<body>
<%
Response.Write "<p><b>"
Response.Write "Der er ingen varer i din indkøbsvogn. "
Response.Write "Hvis du tidligere har lagt varer i indkøbsvognen, "
Response.Write "er der måske sket en timeout - beklager fejlen.<br><br>"
Response.Write "<a href='forside_butik.htm' target='tekst'><img src='grafik/fortsat_shop.gif' alt='Fortsæt med at shoppe' border='0' name='fortsat' ></a> "
Response.Write "<b></p>"
%>
</body>
</html>
<%
else
intOrderID = cstr(Session("orderID"))
set rsProd = Server.CreateObject("ADODB.Recordset")
rsProd.Open "SELECT * FROM ordrelinie " _
& "WHERE orderID="& intOrderID, _
Conn, adOpenDynamic, adLockPessimistic, adCmdText
while not rsProd.EOF
element = "quant" & rsProd("vareid")
intQuant = Request.form(element)
if intQuant <> "" and isNumeric(intQuant) then
if intQuant = 0 then
rsProd.Delete
else
rsProd("antal") = intQuant
end if
end if
rsProd.Update
rsProd.MoveNext
wend
if Request.form("updateorder.x") <> "" and Request.form("updateorder.y") <> "" then
rsProd.Close
set rsProd = Nothing
Conn.Close
set Conn = Nothing
Response.Redirect "vis_vogn.asp"
else
if rsProd.BOF and rsProd.EOF then
rsProd.Close
set rsProd = Nothing
Conn.Close
set Conn = Nothing
Session("orderID") = ""
Response.Redirect "checkout1.asp"
else
%>
<html>
<head>
<title>Kassen - Trin 1 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
margin-top: 0px;
margin-left: 4px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br><table width="490" border="0" cellspacing="0"><!--indholdstabel start-->
<tr bgcolor="#545DB9">
<td height="18" ><span class="style1">Kassen - Trin 1 af 3</span></td>
</tr>
<tr>
<td align="left"><p>Din ordre:<br>
<br>
</p></td>
</tr>
<tr>
<td>Er indholdet ikke korrekt? Jeg vil ændre indholdet af ordren - <a href="vis_vogn.asp">Klik her...</a></td>
</tr>
<tr>
<td align="center">
</td>
</tr>
<tr>
<td> <form action="checkout2.asp" method="post" name="form1">
<input type="hidden" name="intOrderID" value="<%=intOrderID%>">
<table border="1" cellpadding="1" cellspacing="1" width="470"><!--varetabel-->
<tr bgcolor="#F2F2FA">
<td width="13%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Antal</strong></font></td>
<td width="13%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Vare ID</strong></font></td>
<td width="44%" align="left" valign="middle"><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Vare</strong></font></td>
<td width="15%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Pris pr stk</strong></font></td>
<td width="15%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Pris i alt</strong></font></td>
</tr>
<%
set rsProdInfo = Server.CreateObject("ADODB.Recordset")
rsProdInfo.Open "vare", Conn, adOpenStatic, adLockOptimistic, adCmdTable
intTotal = 0
rsProd.MoveFirst
while not rsProd.EOF
rsProdInfo.MoveFirst
rsProdInfo.Find "vareid = " & rsProd("vareid")
intProdID = rsProd("vareid")
strProdName = rsProdInfo("titel")
intPrice = formatNumber(rsProdInfo("pris"), 2)
intQuant = rsProd("antal")
intExtPrice = formatNumber((intPrice * intQuant), 2)
intTotal = intTotal + intExtPrice
%>
<tr>
<td width="13%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= intQuant %></font></td>
<td width="13%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= intProdID %></font></td>
<td width="44%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= strProdName %></font></td>
<td width="15%" align="right" valign="middle" nowrap><font face="Verdana" size="2"><%= intPrice %></font></td>
<td width="15%" align="right" valign="middle" nowrap><font face="Verdana" size="2"><%= intExtPrice %></font></td>
</tr>
<input type="hidden" name="strOrderItem" value="<%= intProdID %>,<%= intQuant %>">
<%
rsProd.MoveNext
wend
%>
<%
'display total for products in cart
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Subtotal:</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber(intTotal, 2) %>
</font></td>
</tr>
<%
'add and display amount charged for sales tax:
'in this case it's 8% of total for products in cart
'change the .08 to meet your state/province requirements
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Heraf moms (25%):</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber((intTotal * .20), 2) %>
<input type="hidden" name="intTax" value="<%= formatNumber((intTotal * .20), 2) %>">
</font></td>
</tr>
<%
'add and display amount charged for shipping:
'in this case it's 5% of total for products in cart
'change the .05 to meet your requirements
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Fragt & forsendelse (5%):</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber((intTotal * .05), 2) %>
<input type="hidden" name="intShipping" value="<%= formatNumber((intTotal * .05), 2) %>">
</font></td>
</tr>
<%
'display Grand Total: to get the multiplier 1.0 is the product(s) total plus .08
'for sales tax and .05 for shipping which equals 1.13. Be sure to change this
'to meet your requirements
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2"><b>Kr. Total:</b></font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2"><b>
<%= formatNumber((intTotal*1.05), 2) %>
<input type="hidden" name="intTotal" value="<%= formatNumber((intTotal * 1.05), 2) %>">
</b></font></td>
</tr>
</table>
</td></tr>
<tr><td align="right"><input type="image" src="grafik/gaa_kassen.gif" name="kassen" value="Gå til kassen"></td></tr>
</form></table>
</body>
</html>
<%
rsProd.Close
set rsProd = Nothing
rsProdInfo.Close
set rsProdInfo = Nothing
end if
end if
end if
Conn.Close
set Conn = Nothing
%>
--------
Jeg har en ide om at noget lignende dette:
if intTotalVaegt < 800 then
intFragt = 42,50
elseIf intTotalVaegt < 4800 then
intFragt = 46,50
elseIf intTotalVaegt < 9800 then
intFragt = 57,50
elseIf intTotalVaegt < 14800 then
intFragt = 84,00
elseIf intTotalVaegt < 19800 then
intFragt = 92,00
end If
....skal ind et eller andet sted, men jeg kan bare ikke lige gennemskue hvor.
Når fragten er beregnet ud fra den samlede vægt, skal den totale pris beregnes.
Håber der er nogen der kan hjælpe?
/Annette
