'
Imports System.Data
Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Text
Imports System.ComponentModel
Imports System.Collections.ObjectModel
Public Class STItemsRow
Inherits STDataRowBase
Private Shared gshr_lstDbFields As IList(Of DatabaseField)
Private _ItemID As Integer
Private _ItemCode As String
Private _Description As String
Private _Quantity As Integer
Private _CostPrice As Decimal
Private _SellPrice As Decimal
Private _Taxable As Boolean
Protected Overrides Function GetDatabaseFields() As List(Of DatabaseField)
If gshr_lstDbFields IsNot Nothing Then Return gshr_lstDbFields
Dim lst As New List(Of DatabaseField)
lst.Add(New DatabaseField("ItemID", True, True, False, SqlDbType.Int))
lst.Add(New DatabaseField("ItemCode", False, False, False, SqlDbType.VarChar))
lst.Add(New DatabaseField("Description", False, False, False, SqlDbType.VarChar))
lst.Add(New DatabaseField("Quantity", False, False, False, SqlDbType.Int))
lst.Add(New DatabaseField("CostPrice", False, False, False, SqlDbType.Decimal))
lst.Add(New DatabaseField("SellPrice", False, False, False, SqlDbType.Decimal))
lst.Add(New DatabaseField("Taxable", False, False, False, SqlDbType.Bit))
gshr_lstDbFields = lst
Return lst
End Function
Public Property ItemID() As Integer
Get
Return _ItemID
End Get
Set(ByVal value As Integer)
OnPropertyChanging(New PropertyChangingEventArgs("ItemID"))
_ItemID = value
OnPropertyChanged(New PropertyChangedEventArgs("ItemID"))
End Set
End Property
Public Property ItemCode() As String
Get
Return _ItemCode
End Get
Set(ByVal value As String)
OnPropertyChanging(New PropertyChangingEventArgs("ItemCode"))
_ItemCode = value
OnPropertyChanged(New PropertyChangedEventArgs("ItemCode"))
End Set
End Property
Public Property Description() As String
Get
Return _Description
End Get
Set(ByVal value As String)
OnPropertyChanging(New PropertyChangingEventArgs("Description"))
_Description = value
OnPropertyChanged(New PropertyChangedEventArgs("Description"))
End Set
End Property
Public Property Quantity() As Integer
Get
Return _Quantity
End Get
Set(ByVal value As Integer)
OnPropertyChanging(New PropertyChangingEventArgs("Quantity"))
_Quantity = value
OnPropertyChanged(New PropertyChangedEventArgs("Quantity"))
End Set
End Property
Public Property CostPrice() As Decimal
Get
Return _CostPrice
End Get
Set(ByVal value As Decimal)
OnPropertyChanging(New PropertyChangingEventArgs("CostPrice"))
_CostPrice = value
OnPropertyChanged(New PropertyChangedEventArgs("CostPrice"))
End Set
End Property
Public Property SellPrice() As Decimal
Get
Return _SellPrice
End Get
Set(ByVal value As Decimal)
OnPropertyChanging(New PropertyChangingEventArgs("SellPrice"))
_SellPrice = value
OnPropertyChanged(New PropertyChangedEventArgs("SellPrice"))
End Set
End Property
Public Property Taxable() As Boolean
Get
Return _Taxable
End Get
Set(ByVal value As Boolean)
OnPropertyChanging(New PropertyChangingEventArgs("Taxable"))
_Taxable = value
OnPropertyChanged(New PropertyChangedEventArgs("Taxable"))
End Set
End Property
Protected Overrides Function CollectDataFromFields() As IList(Of ClassFieldData)
Dim r As New List(Of ClassFieldData)
r.Add(New ClassFieldData(MyBase.DatabaseField("ItemID"), Me.ItemID))
r.Add(New ClassFieldData(MyBase.DatabaseField("ItemCode"), Me.ItemCode, True, True))
r.Add(New ClassFieldData(MyBase.DatabaseField("Description"), Me.Description, True, True))
r.Add(New ClassFieldData(MyBase.DatabaseField("Quantity"), Me.Quantity))
r.Add(New ClassFieldData(MyBase.DatabaseField("CostPrice"), Me.CostPrice))
r.Add(New ClassFieldData(MyBase.DatabaseField("SellPrice"), Me.SellPrice))
r.Add(New ClassFieldData(MyBase.DatabaseField("Taxable"), Me.Taxable))
Return r
End Function
Public Overrides Sub FetchIntoFields(ByVal row As System.Data.DataRow)
If TryGetColumnData(VBDataTypes.VBInteger, row, "ItemID", Me.ItemID) = False Then ThrowColumnNotExists("ItemID")
If TryGetColumnData(VBDataTypes.VBString, row, "ItemCode", Me.ItemCode) = False Then ThrowColumnNotExists("ItemCode")
If TryGetColumnData(VBDataTypes.VBString, row, "Description", Me.Description) = False Then ThrowColumnNotExists("Description")
If TryGetColumnData(VBDataTypes.VBInteger, row, "Quantity", Me.Quantity) = False Then ThrowColumnNotExists("Quantity")
If TryGetColumnData(VBDataTypes.VBDecimal, row, "CostPrice", Me.CostPrice) = False Then ThrowColumnNotExists("CostPrice")
If TryGetColumnData(VBDataTypes.VBDecimal, row, "SellPrice", Me.SellPrice) = False Then ThrowColumnNotExists("SellPrice")
If TryGetColumnData(VBDataTypes.VBBool, row, "Taxable", Me.Taxable) = False Then ThrowColumnNotExists("Taxable")
End Sub
Protected Overrides Sub SetIdentityFieldValue(ByVal IdentityValue As Long)
Me.ItemID = IdentityValue
End Sub
End Class
Public Class STItemsRowCollection
Inherits STDataRowCollection(Of STItemsRow)
Public Sub New()
SetTable("Items")
End Sub
Public Enum Fields
ItemID
ItemCode
Description
Quantity
CostPrice
SellPrice
Taxable
End Enum
Public Sub AddWhereClauseCondition(ByVal field As Fields, ByVal SqlOperator As enumSqlOperators, ByVal value As Object)
If field = Fields.ItemID Then InternalAddWhereClauseCondition(New WhereClauseData("ItemID", value, SqlOperator))
If field = Fields.ItemCode Then InternalAddWhereClauseCondition(New WhereClauseData("ItemCode", value, SqlOperator))
If field = Fields.Description Then InternalAddWhereClauseCondition(New WhereClauseData("Description", value, SqlOperator))
If field = Fields.Quantity Then InternalAddWhereClauseCondition(New WhereClauseData("Quantity", value, SqlOperator))
If field = Fields.CostPrice Then InternalAddWhereClauseCondition(New WhereClauseData("CostPrice", value, SqlOperator))
If field = Fields.SellPrice Then InternalAddWhereClauseCondition(New WhereClauseData("SellPrice", value, SqlOperator))
If field = Fields.Taxable Then InternalAddWhereClauseCondition(New WhereClauseData("Taxable", value, SqlOperator))
End Sub
End Class