<%
Class Product
dim fPackage
Private Sub Class_Initialize
fPackage = "None#0#0#0"
End Sub
Public Property Get Package
Package = fPackage
End Property
Public Property Let Package(ByVal str)
fPackage = str
End Property
Public Property Get Name
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
Name = temp(i)
End Property
Public Property Let Name(ByVal vName)
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
temp(i) = vName
fPackage = temp(i) + "#" + temp(i + 1) + "#" + temp(i + 2) + "#" + temp(i + 3)
End Property
Public Property Get ID
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
ID = temp(i + 1)
End Property
Public Property Let ID(ByVal vID)
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
temp(i + 1) = CStr(vID)
fPackage = temp(i) + "#" + temp(i + 1) + "#" + temp(i + 2) + "#" + temp(i + 3)
End Property
Public Property Get Count
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
Count = temp(i + 2)
End Property
Public Property Let Count(ByVal vCount)
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
temp(i + 2) = CStr(vCount)
fPackage = temp(i) + "#" + temp(i + 1) + "#" + temp(i + 2) + "#" + temp(i + 3)
End Property
Public Property Get Price
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
Price = temp(i + 3)
End Property
Public Property Let Price(ByVal vPrice)
Dim temp, i
temp = Split(fPackage, "#")
i = LBound(temp)
temp(i + 3) = CStr(vPrice)
fPackage = temp(i) + "#" + temp(i + 1) + "#" + temp(i + 2) + "#" + temp(i + 3)
End Property
End Class
'--------------------------------------
Class Customer
dim fName, fID, fCart, fPrice, fCount
Private Sub Class_Initialize
Set fCart = CreateObject("Scripting.Dictionary")
fName = "None"
fID = 0
fPrice = 0.0
fCount = 0
End Sub
Private Sub Class_Terminate
fCart.Removeall
Set fCart = Nothing
End Sub
Public Sub Removeall
fCart.Removeall
fPrice = 0.0
fCount = 0
End Sub
Public Sub LoginOut
fCart.Removeall
fName = "None"
fID = 0
fPrice = 0.0
fCount = 0
End Sub
Public Sub Add(ByVal P)
Dim P2
fPrice = CDbl(fPrice) + CLng(P.Count) * CDbl(P.Price)
fCount = CLng(fCount) + CLng(P.Count)
If fCart.Exists(P.ID) Then
Set P2 = New Product
P2.Package = fCart.Item(P.ID)
fCart.Remove P.ID
P.Count = CLng(P.Count) + CLng(P2.Count)
End If
fCart.Add P.ID, P.Package
End Sub
Public Sub Remove(ByVal ID)
Dim P
If fCart.Exists(ID) Then
Set P = New Product
P.Package = fCart.Item(ID)
fPrice = fPrice - P.Count * P.Price
fCount = fCount - P.Count
fCart.Remove ID
Set P = Nothing
End If
End Sub
Public Property Get Name
Name = fName
End Property
Public Property Let Name(ByVal vName)
fName = vName
End Property
Public Property Get ID
ID = fID
End Property
Public Property Let ID(ByVal vID)
fID = vID
End Property
Public Property Get Package
Dim itm
Package = fName + "|" + CStr(fID) + "|" + CStr(fCount) + "|" + CStr(fPrice)
For Each itm In fCart.Items
Package = Package + "|" + itm
Next
End Property
Public Property Let Package(ByVal str)
Dim P1, P2
fCart.Removeall
Set P1 = New Product
Items = Split(str, "|")
fName = Items(LBound(Items))
fID = Items(LBound(Items) + 1)
fCount = Items(LBound(Items) + 2)
fPrice = Items(LBound(Items) + 3)
For i = LBound(Items) To UBound(Items) - 4
P1.Package = Items(i + 4)
If fCart.Exists(P1.ID) Then
Set P2 = New Product
P2.Package = fCart.Item(P1.ID)
fCart.Remove P1.ID
P1.Count = CLng(P1.Count) + CLng(P2.Count)
End If
fCart.Add P1.ID, P1.Package
Next
Set P = Nothing
End Property
Public Property Get Count
Count = fCount
End Property
Public Property Get Price
Price = fPrice
End Property
Public Property Get Products
Dim itm
If fCart.Count > 0 Then
For Each itm In fCart.Items
Products = Products + "|" + itm
Next
Products = Right(Products, Len(Products) - 1)
Else
Products = ""
End If
End Property
Public Function ProItem(ByVal ID)
If fCart.Exists(ID) Then
ProItem = fCart.Item(ID)
Else
ProItem = ""
End If
End Function
End Class
Function TestLogin(ByVal c)
If c.Name = "None" Or c.ID = 0 Then
TestLogin = False
Else
TestLogin = True
End If
End Function