Here is the table structure
CREATE TABLE [tblProducts] (
[productid] [int] IDENTITY (3426, 1) NOT NULL ,
[productdescriptionid] [int] NULL ,
[subgroupid] [int] NULL ,
[productcode] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[pcksize] [nvarchar] (100) COLLATE Latin1_General_CI_AS NULL ,
[distributordist_percent] [nvarchar] (50) COLLATE Latin1_General_CI_AS NULL
,
[distributor_cost_pounds] [char] (50) COLLATE Latin1_General_CI_AS NULL ,
[description] [nvarchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[distributorprice] [decimal](18, 2) NULL ,
[unitprice] [decimal](18, 2) NULL ,
[disc4] [decimal](18, 2) NULL ,
[disc10] [decimal](18, 2) NULL ,
[disc20] [decimal](18, 2) NULL ,
[weight] [decimal](18, 2) NULL ,
[specialoffer] [bit] NULL CONSTRAINT [DF_tblProducts_specialoffer] DEFAULT
(0),
[add_description] [varchar] (2000) COLLATE Latin1_General_CI_AS NULL ,
[graphic] [varchar] (200) COLLATE Latin1_General_CI_AS NULL ,
[rank] [int] NULL ,
CONSTRAINT [PK_tblProducts] PRIMARY KEY CLUSTERED
(
[productid]
) ON [PRIMARY] ,
CONSTRAINT [FK_tblProducts_tblProductDescriptions] FOREIGN KEY
(
[productdescriptionid]
) REFERENCES [tblProductDescriptions] (
[productdescriptionid]
) ON DELETE CASCADE
) ON [PRIMARY]
GO
This is an email produced as part of a shopping cart system.
In the ASP the idea is if you are logged in as one type of user you get a
distributor price, alternatively you can a different price depending on the
quantity selected. The price variable works well in the various calculations
its just when I format it or concatenate too much. The outputted string is
wrong not the underlying variable. The problem which I replicate is a the
first attempt to format price pulled from the distributor price value in the
recordset.
There is a lot of code here but.....
for each cookiekey in request.cookies("productid")
Key = "key" & i
productid = request.cookies("productid")(key)
rsRecordset.MoveFirst
rsRecordset.Find "productid =" & productid
qty = request.cookies("qty")(key)
if isnull(rsRecordset("expirydate")) then
expirydate = date
else
expirydate = cdate(rsRecordset("expirydate"))
end if
if rsRecordset("specialoffer") <> 0 and date < expirydate then
prodcode = rsRecordset("offercode")
else
prodcode = rsRecordset("productcode")
end if
if rsRecordset("specialoffer") <> 0 and date < expirydate then
prodcode = rsRecordset("offercode")
else
prodcode = rsRecordset("productcode")
end if
if rsRecordset("specialoffer") <> 0 and date < expirydate then
price = cdbl(rsRecordset("price"))
else
if role = "2" then
'displayprice = "test" & formatcurrency(cdbl(price))
price = rsRecordset("distributorprice")
else
if qty < 5 then
price = csng(rsRecordset("unitprice"))
elseif qty > 4 and qty < 11 then
price = csng(rsRecordset("disc4"))
elseif qty > 10 and qty < 21 then
price = csng(rsRecordset("disc10"))
else
price = csng(rsRecordset("disc20"))
end if
if price = 0 then
price = csng(rsRecordset("disc10"))
end if
'response.write price
if price = 0 then
price = csng(rsRecordset("disc4"))
'response.write price
end if
if price = 0 then
price = csng(rsRecordset("unitprice"))
'response.write "test"
end if
end if
end if
subtotal = cdbl(price) * cdbl(qty)
total = subtotal + total
if isnull(rsRecordset("weight")) then
weight = 0
else
weight = cdbl(rsRecordset("weight"))
weight = weight * cdbl(qty)
end if
totalweight = weight + totalweight
HTML = HTML & "<td>" & prodcode & "</td>"
HTML = HTML & "<td>" & qty & "</td>"
'IT IS WHEN I TRY TO FORMAT THE PRICE VARIABLE IN THIS BIT
HTML = HTML & "<td>" & price & "(€" & formatnumber(price*rate,2) & ")"
& "</td>"
HTML = HTML & "<td>" & weight & " kg</td>"
HTML = HTML & "<td>" & formatcurrency(subtotal) & "(€" &
formatnumber(subtotal*rate,2) & ")" & "</td>"
HTML = HTML & "</tr>"
weight = 0
price = 0.0
i = i + 1
next