﻿Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient
'------Created By Prachi - 19/08/2009 - to insert in prospect bank------
Public Class clsProductInquiry
    Public Enum ContactPersonTitle
        Mr = 1
        Ms = 2
    End Enum

    Private _mode As String
    Private _cmdType As String
    Private _prospectCode As String
    Private _companyName As String
    Private _title As String
    Private _contactPersonFirstName As String
    Private _contactPersonMiddleName As String
    Private _contactPersonLastName As String
    Private _telephoneNo As String
    Private _mobileNo As String
    Private _emailAddress As String
    Private _productName As String
    Private _qtyRequired As String
    Private _qtyRequiredUnit As String
    Private _requiredByDate As System.Data.SqlTypes.SqlDateTime
    Private _requiredPlace As String
    Private _specificRequirement As String
    Private _categoryID As String
    Private _brandID As String
    Private _productCode As String
    Private _productModelNo As String
    Private _supplierID As String
    Private _inquiryID As Integer
    Private _otherSupplier As Integer
    Private _marketPrice As Decimal

    Public Property Mode() As String
        Get
            Return _mode
        End Get
        Set(ByVal value As String)
            _mode = value
        End Set
    End Property

    Public Property CmdType() As String
        Get
            Return _cmdType
        End Get
        Set(ByVal value As String)
            _cmdType = value
        End Set
    End Property

    Public Property ProspectCode() As String
        Get
            Return _prospectCode
        End Get
        Set(ByVal value As String)
            _prospectCode = value
        End Set
    End Property

    Public Property CompanyName() As String
        Get
            Return _companyName
        End Get
        Set(ByVal value As String)
            _companyName = value
        End Set
    End Property

    Public Property Title() As String
        Get
            Return _title
        End Get
        Set(ByVal value As String)
            _title = value
        End Set
    End Property

    Public Property ContactPersonFirstName() As String
        Get
            Return _contactPersonFirstName
        End Get
        Set(ByVal value As String)
            _contactPersonFirstName = value
        End Set
    End Property

    Public Property ContactPersonMiddleName() As String
        Get
            Return _contactPersonMiddleName
        End Get
        Set(ByVal value As String)
            _contactPersonMiddleName = value
        End Set
    End Property

    Public Property ContactPersonLastName() As String
        Get
            Return _contactPersonLastName
        End Get
        Set(ByVal value As String)
            _contactPersonLastName = value
        End Set
    End Property

    Public Property TelephoneNo() As String
        Get
            Return _telephoneNo
        End Get
        Set(ByVal value As String)
            _telephoneNo = value
        End Set
    End Property

    Public Property MobileNo() As String
        Get
            Return _mobileNo
        End Get
        Set(ByVal value As String)
            _mobileNo = value
        End Set
    End Property

    Public Property EmailAddress() As String
        Get
            Return _emailAddress
        End Get
        Set(ByVal value As String)
            _emailAddress = value
        End Set
    End Property

    Public Property ProductName() As String
        Get
            Return _productName
        End Get
        Set(ByVal value As String)
            _productName = value
        End Set
    End Property

    Public Property QtyRequired() As String
        Get
            Return _qtyRequired
        End Get
        Set(ByVal value As String)
            _qtyRequired = value
        End Set
    End Property

    Public Property QtyRequiredUnit() As String
        Get
            Return _qtyRequiredUnit
        End Get
        Set(ByVal value As String)
            _qtyRequiredUnit = value
        End Set
    End Property

    Public Property RequiredByDate() As System.Data.SqlTypes.SqlDateTime
        Get
            Return _requiredByDate
        End Get
        Set(ByVal value As System.Data.SqlTypes.SqlDateTime)
            _requiredByDate = value
        End Set
    End Property

    Public Property RequiredPlace() As String
        Get
            Return _requiredPlace
        End Get
        Set(ByVal value As String)
            _requiredPlace = value
        End Set
    End Property

    Public Property SpecificRequirement() As String
        Get
            Return _specificRequirement
        End Get
        Set(ByVal value As String)
            _specificRequirement = value
        End Set
    End Property

    Public Property CategoryID() As String
        Get
            Return _categoryID
        End Get
        Set(ByVal value As String)
            _categoryID = value
        End Set
    End Property

    Public Property BrandID() As String
        Get
            Return _brandID
        End Get
        Set(ByVal value As String)
            _brandID = value
        End Set
    End Property

    Public Property ProductCode() As String
        Get
            Return _productCode
        End Get
        Set(ByVal value As String)
            _productCode = value
        End Set
    End Property

    Public Property ProductModelNo() As String
        Get
            Return _productModelNo
        End Get
        Set(ByVal value As String)
            _productModelNo = value
        End Set
    End Property

    Public Property SupplierID() As String
        Get
            Return _supplierID
        End Get
        Set(ByVal value As String)
            _supplierID = value
        End Set
    End Property

    Public Property InquiryID() As Integer
        Get
            Return _inquiryID
        End Get
        Set(ByVal value As Integer)
            _inquiryID = value
        End Set
    End Property

    Public Property OtherSupplier() As Integer
        Get
            Return _otherSupplier
        End Get
        Set(ByVal value As Integer)
            _otherSupplier = value
        End Set
    End Property

    Public Property MarketPrice() As Decimal
        Get
            Return _marketPrice
        End Get
        Set(ByVal value As Decimal)
            _marketPrice = value
        End Set
    End Property

    Public Shared Sub Insert_ProductInquiry(ByVal objProduct As clsProductInquiry)
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("ConnectionVoffice"))
        cn.Open()

        Dim cmd As New SqlCommand
        Dim tran As System.Data.SqlClient.SqlTransaction
        tran = cn.BeginTransaction(IsolationLevel.Serializable)

        Try
            cmd.CommandText = "Atco_ProductInquiry_Proc"
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Connection = cn
            cmd.Transaction = tran

            cmd.Parameters.AddWithValue("@Mode", objProduct.Mode)
            cmd.Parameters.AddWithValue("@CmdType", objProduct.CmdType)
            cmd.Parameters.AddWithValue("@ProspectCode", objProduct.ProspectCode)
            cmd.Parameters.AddWithValue("@CompanyName", objProduct.CompanyName)
            cmd.Parameters.AddWithValue("@Title", objProduct.Title)
            cmd.Parameters.AddWithValue("@ContactPersonFirstName", objProduct.ContactPersonFirstName)
            cmd.Parameters.AddWithValue("@ContactPersonMiddleName", objProduct.ContactPersonMiddleName)
            cmd.Parameters.AddWithValue("@ContactPersonLastName", objProduct.ContactPersonLastName)
            cmd.Parameters.AddWithValue("@TelephoneNo", objProduct.TelephoneNo)
            cmd.Parameters.AddWithValue("@MobileNo", objProduct.MobileNo)
            cmd.Parameters.AddWithValue("@EmailAddress", objProduct.EmailAddress)
            cmd.Parameters.AddWithValue("@ProductName", objProduct.ProductName)
            cmd.Parameters.AddWithValue("@QtyRequired", objProduct.QtyRequired)
            cmd.Parameters.AddWithValue("@QtyRequiredUnit", objProduct.QtyRequiredUnit)
            cmd.Parameters.AddWithValue("@RequiredByDate", objProduct.RequiredByDate)
            cmd.Parameters.AddWithValue("@RequiredPlace", objProduct.RequiredPlace)
            cmd.Parameters.AddWithValue("@SpecificRequirement", objProduct.SpecificRequirement)
            cmd.Parameters.AddWithValue("@CategoryID", objProduct.CategoryID)
            cmd.Parameters.AddWithValue("@BrandID", objProduct.BrandID)
            cmd.Parameters.AddWithValue("@ProductCode", objProduct.ProductCode)
            cmd.Parameters.AddWithValue("@ProductModelNo", objProduct.ProductModelNo)
            cmd.Parameters.AddWithValue("@OtherSupplier", objProduct.OtherSupplier)
            cmd.Parameters.AddWithValue("@prodMarketPrice", objProduct.MarketPrice)

            cmd.ExecuteNonQuery()
            tran.Commit()
        Catch ex As Exception
            tran.Rollback()
        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Sub

    Public Shared Function Select_MaxProspectCode(ByVal objProduct As clsProductInquiry) As String
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("ConnectionVoffice"))
        Dim da As SqlDataAdapter
        Dim ds As DataSet
        Dim str As String
        cn.Open()

        Try
            da = New SqlDataAdapter("Atco_ProductInquiry_Proc", cn)
            da.SelectCommand.CommandType = CommandType.StoredProcedure

            da.SelectCommand.Parameters.AddWithValue("@Mode", objProduct.Mode)
            da.SelectCommand.Parameters.AddWithValue("@CmdType", objProduct.CmdType)

            ds = New DataSet
            da.Fill(ds)

            str = ds.Tables(0).Rows(0).Item("ProspectCode").ToString
            Return str
        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Function

    Public Shared Function Select_QtyRequiredUnit(ByVal objProduct As clsProductInquiry) As DataTable
        Dim cn As New SqlConnection(ConfigurationManager.AppSettings("ConnectionVoffice"))
        Dim da As SqlDataAdapter
        Dim dt As New DataTable
        cn.Open()
        Try
            da = New SqlDataAdapter("Atco_ProductInquiry_Proc", cn)
            da.SelectCommand.CommandType = CommandType.StoredProcedure

            da.SelectCommand.Parameters.AddWithValue("@Mode", objProduct.Mode)
            da.SelectCommand.Parameters.AddWithValue("@CmdType", objProduct.CmdType)

            da.Fill(dt)
            Return dt
        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Function
    Public Shared Function Select_InquiryForSupplier(ByVal objProduct As clsProductInquiry) As DataTable
        Dim cn As New SqlConnection(ConfigurationManager.AppSettings("ConnectionVoffice"))
        Dim da As SqlDataAdapter
        Dim dt As New DataTable
        cn.Open()
        Try
            da = New SqlDataAdapter("Atco_ProductInquiry_Proc", cn)
            da.SelectCommand.CommandType = CommandType.StoredProcedure

            da.SelectCommand.Parameters.AddWithValue("@Mode", objProduct.Mode)
            da.SelectCommand.Parameters.AddWithValue("@CmdType", objProduct.CmdType)
            da.SelectCommand.Parameters.AddWithValue("@SupplierID", objProduct.SupplierID)

            da.Fill(dt)
            Return dt
        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Function
    Public Shared Function Select_InquiryDetailsForSupplier(ByVal objProduct As clsProductInquiry) As DataTable
        Dim cn As New SqlConnection(ConfigurationManager.AppSettings("ConnectionVoffice"))
        Dim da As SqlDataAdapter
        Dim dt As New DataTable
        cn.Open()
        Try
            da = New SqlDataAdapter("Atco_ProductInquiry_Proc", cn)
            da.SelectCommand.CommandType = CommandType.StoredProcedure

            da.SelectCommand.Parameters.AddWithValue("@Mode", objProduct.Mode)
            da.SelectCommand.Parameters.AddWithValue("@CmdType", objProduct.CmdType)
            da.SelectCommand.Parameters.AddWithValue("@InquiryID", objProduct.InquiryID)

            da.Fill(dt)
            Return dt
        Catch ex As Exception

        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Function
End Class
