Imports System.ComponentModel

Imports System.Collections.ObjectModel

 

 

Public Class SalesItem

    Private _itemdetail As String

 

    Public Sub New(ByVal itemdetail As String)

        _itemdetail = itemdetail

    End Sub

 

    Public ReadOnly Property ItemDetail() As String

        Get

            Return _itemdetail

        End Get

    End Property

End Class

 

Public Class SalesItemList

    Inherits ObservableCollection(Of SalesItem)

 

End Class 'SalesItemList

 

 

Public Class SalesOrder

    Private _name As String

    Private _SalesItems As SalesItemList

 

    Public Sub New(ByVal name As String)

        _name = name

        _SalesItems = New SalesItemList()

 

    End Sub

 

    Public ReadOnly Property Name() As String

        Get

            Return _name

        End Get

    End Property

 

    Public ReadOnly Property SalesItems() As SalesItemList

        Get

            Return _SalesItems

        End Get

    End Property

End Class

 

Public Class SalesOrderList

    Inherits ObservableCollection(Of SalesOrder)

 

End Class

 

 

Public Class Period

    Private _name As String

    Private _SalesOrders As SalesOrderList

 

    Public Sub New(ByVal name As String)

        _name = name

        _SalesOrders = New SalesOrderList()

 

    End Sub

 

    Public ReadOnly Property Name() As String

        Get

            Return _name

        End Get

    End Property

 

    Public ReadOnly Property SalesOrders() As SalesOrderList

        Get

            Return _SalesOrders

        End Get

    End Property

End Class

 

Public Class PeriodList

    Inherits ObservableCollection(Of Period)

 

End Class

 

 

Public Class SalesPerson

    Private _name As String

    Private _Periods As PeriodList

 

    Sub New(ByVal name As String)

        _name = name

        _Periods = New PeriodList

 

    End Sub

 

    Public ReadOnly Property Name() As String

        Get

            Return _name

        End Get

    End Property

 

    Public ReadOnly Property Periods() As PeriodList

        Get

            Return _Periods

        End Get

    End Property

 

End Class

 

 

Public Class SalesPersonList

    Inherits ObservableCollection(Of SalesPerson)

 

    Public Sub New()

        MyBase.New()

 

        '  First SalesPerson

        Dim SP As SalesPerson

        SP = New SalesPerson("Jean Price")

        Add(SP)

 

        Dim P As Period

        P = New Period("January 2009")

        SP.Periods.Add(P)

 

        Dim SO As SalesOrder

        SO = New SalesOrder("JAN 001")

        P.SalesOrders.Add(SO)

        SO.SalesItems.Add(New SalesItem("500 Widgets"))

        SO.SalesItems.Add(New SalesItem("120 Gizmos"))

 

        SO = New SalesOrder("JAN 002")

        P.SalesOrders.Add(SO)

        SO.SalesItems.Add(New SalesItem("200 Wiggles"))

        SO.SalesItems.Add(New SalesItem("20 Schmoos"))

        SO.SalesItems.Add(New SalesItem("312 Linguine"))

 

        P = New Period("February 2009")

        SP.Periods.Add(P)

        SO = New SalesOrder("FEB 001")

        P.SalesOrders.Add(SO)

        SO.SalesItems.Add(New SalesItem("1000 Widgets"))

        SO.SalesItems.Add(New SalesItem("76 Schmoos"))

 

        '  Second SalesPerson

        SP = New SalesPerson("John P Grant")

        Add(SP)

 

        P = New Period("January 2009")

        SP.Periods.Add(P)

 

        SO = New SalesOrder("JAN 001")

        P.SalesOrders.Add(SO)

        SO.SalesItems.Add(New SalesItem("200 Widgets"))

        SO.SalesItems.Add(New SalesItem("500 Woggles"))

 

        SO = New SalesOrder("JAN 002")

        P.SalesOrders.Add(SO)

        SO.SalesItems.Add(New SalesItem("200 Wiggles"))

        SO.SalesItems.Add(New SalesItem("20 Schmoos"))

        SO.SalesItems.Add(New SalesItem("222 Linguines"))

 

        P = New Period("February 2009")

        SP.Periods.Add(P)

        SO = New SalesOrder("FEB 001")

        P.SalesOrders.Add(SO)

        SO.SalesItems.Add(New SalesItem("75 Snashies"))

        SO.SalesItems.Add(New SalesItem("176 Widgets"))

        SO.SalesItems.Add(New SalesItem("750 Small Blingshies"))

        SO.SalesItems.Add(New SalesItem("110 Scoobs"))

 

    End Sub

 

End Class