Hjælp! Min beregning af fragt er ikke rigtig - hvad gør jeg?
HejJeg har meget store problemer med beregning af fragten i det webshop jeg er ved at arbejde på. Fragtens beregnes ude fra den samlede vægt af varerne i indkøbsvognen. Mit problem er at hvis man har lagt en vare i indkøbsvognen og så går tilbage til butikken og lægger en vare mere i (en ny vare), så beregnes fragten kun ud fra den nye vares vægt.
Jeg har inddelt vægtberegningen i følgende intervaller:
intTimes = 0
if longVaegt > 19800 then
intTimes = int(longVaegt / 19800)
longVaegt = (longVaegt - (intTimes * 19800))
end if
if longVaegt < 800 then
intShipping1 = 42.50
elseIf longVaegt < 4800 then
intShipping1 = 46.50
elseIf longVaegt < 9800 then
intShipping1 = 57.50
elseIf longVaegt < 14800 then
intShipping1 = 84.00
elseIf longVaegt < 19800 then
intShipping1 = 92.00
end If
...hvor longVaegt er den samlede vægt af varerne. Problemet opstår fordi variablen intTimes ikke bliver beregnet på ny når man har tilføjet flere varer til indkøbsvognen.
Her er hele koden til siden (den er lang!)
::::KODE START::::
<%@ 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="670" 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="660"><!--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")
intProdVaegt = rsProdInfo("vaegt")
prodVaegtAll = (intProdVaegt * intQuant)
longVaegt = longVaegt + prodVaegtAll
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" value="<%=intProdVaegt %>" name="intProdVaegt">
<input type="hidden" name="strOrderItem" value="<%= intProdID %>,<%= intQuant %>">
<input type="hidden" value="<%=longVaegt %>" name="longVaegt">
<%
intTimes = 0
if longVaegt > 19800 then
intTimes = int(longVaegt / 19800)
longVaegt = (longVaegt - (intTimes * 19800))
end if
if longVaegt < 800 then
intShipping1 = 42.50
elseIf longVaegt < 4800 then
intShipping1 = 46.50
elseIf longVaegt < 9800 then
intShipping1 = 57.50
elseIf longVaegt < 14800 then
intShipping1 = 84.00
elseIf longVaegt < 19800 then
intShipping1 = 92.00
end If
%>
<%
'linie til at tjekke hvad longVaegt er
response.write longVaegt
%>
<%
intShipping = ((intTimes * 92.00) + intShipping1)
%>
<%
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 25% of total for products in cart
%>
<%
'linie til at tjekke hvad times er
response.write intTimes
%>
<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:
%>
<tr>
<td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Forsendelse:</font></td>
<td align="right" valign="middle" nowrap><font face="Verdana" size="2">
<%= formatNumber((intShipping1 + (intTimes * 92.00)), 2) %>
<input type="hidden" name="intShipping" value="<%= formatNumber((intShipping1 + (intTimes * 92.00)), 2) %>">
</font></td>
</tr>
<%
'display Grand Total
%>
<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 + intShipping), 2) %>
<input type="hidden" name="intTotal" value="<%= formatNumber((intTotal + intShipping), 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>
<%
'linie til at tjekke om fragten er regnet rigtigt sammen
response.Write intShipping
%>
</body>
</html>
<%
rsProd.Close
set rsProd = Nothing
rsProdInfo.Close
set rsProdInfo = Nothing
end if
end if
end if
Conn.Close
set Conn = Nothing
%>
::::KODE SLUT::::
Håber der er nogen der kan hjælpe mig
En test siden af shoppen kan ses på denne adresse - http://www.ferslev.com/datronic/shop_admin_test/test/
/Annette
