Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.VisualBasic
Imports System.Data.OleDb

Public Class clsCRMInquiry

    Private _subEmpId As String
    Private _empId As String
    Private _discussionId As String
    Private _customerName As String
    Private _customerId As String
    Private _inquiryId As String
    Private _categoryName As String
    Private _categoryId As String
    Private _productCode As String
    Private _productName As String
    Private _productModelNo As String
    Private _quentity As String
    Private _unitId As String
    Private _unitName As String
    Private _reqiredPlace As String
    Private _reqDetails As String
    Private _assignTo As String
    Private _userID As String
    Private _companyID As String
    Private _formName As String
    Private _mode As String
    Private _adminID As String
    Private __assignInqId As String
    Private _description As String
    Private _status As String

    Private _quotationId As String
    Private _quotationCode As String
    Private _quotationDate As DateTime
    Private _productId As String
    Private _quotationExiceDuty As Double
    Private _quotationEduCess As Double
    Private _quotationVat As Double
    Private _quotationCst As Double
    Private _quotationCstc As Integer
    Private _quotationRefId As String
    Private _quotationPaymentStatus As Integer
    Private _quotationStatus As Integer
    Private _quotationHigherEducationCess As Double
    Private _quotationAdditionalVAT As Double
    Private _quotationQtyReq As Integer
    Private _targetDate As DateTime
    Private _assignDate As DateTime
    Private _inquiryDate As DateTime
    Private _reqDate As DateTime
    Private _fromDate As DateTime
    Private _toDate As DateTime
    Private _isDeleted As Integer
    Private _inquiryType As Integer
    Private _inqstatus As Integer
    Private _quotaionPrice As Double
    Private _productFlag As Integer

    Public Property ProductFlag() As Integer
        Get
            Return _productFlag
        End Get
        Set(ByVal value As Integer)
            _productFlag = value
        End Set
    End Property
    Public Property QuotationDate() As DateTime
        Get
            Return _quotationDate
        End Get
        Set(ByVal value As DateTime)
            _quotationDate = value
        End Set
    End Property

    Public Property QuotaionPrice() As Double
        Get
            Return _quotaionPrice
        End Get
        Set(ByVal value As Double)
            _quotaionPrice = value
        End Set
    End Property

    Public Property QuotationExiceDuty() As Double
        Get
            Return _quotationExiceDuty
        End Get
        Set(ByVal value As Double)
            _quotationExiceDuty = value
        End Set
    End Property
    Public Property QuotationHigherEducationCess() As Double
        Get
            Return _quotationHigherEducationCess
        End Get
        Set(ByVal value As Double)
            _quotationHigherEducationCess = value
        End Set
    End Property
    Public Property QuotationAdditionalVAT() As Double
        Get
            Return _quotationAdditionalVAT
        End Get
        Set(ByVal value As Double)
            _quotationAdditionalVAT = value
        End Set
    End Property
    Public Property QuotationQuantityRequired() As Integer
        Get
            Return _quotationQtyReq
        End Get
        Set(ByVal value As Integer)
            _quotationQtyReq = value
        End Set
    End Property
    Public Property QuotationEduCess() As Double
        Get
            Return _quotationEduCess
        End Get
        Set(ByVal value As Double)
            _quotationEduCess = value
        End Set
    End Property

    Public Property QuotationVat() As Double
        Get
            Return _quotationVat
        End Get
        Set(ByVal value As Double)
            _quotationVat = value
        End Set
    End Property

    Public Property QuotationCst() As Double
        Get
            Return _quotationCst
        End Get
        Set(ByVal value As Double)
            _quotationCst = value
        End Set
    End Property

    Public Property QuotationCstc() As Integer
        Get
            Return _quotationCstc
        End Get
        Set(ByVal value As Integer)
            _quotationCstc = value
        End Set
    End Property

    Public Property QuotationStatus() As Integer
        Get
            Return _quotationStatus
        End Get
        Set(ByVal value As Integer)
            _quotationStatus = value
        End Set
    End Property

    Public Property QuotationPaymentStatus() As Integer
        Get
            Return _quotationPaymentStatus
        End Get
        Set(ByVal value As Integer)
            _quotationPaymentStatus = value
        End Set
    End Property

    Public Property SubEmpId() As String
        Get
            Return _subEmpId
        End Get
        Set(ByVal value As String)
            _subEmpId = value
        End Set
    End Property

    Public Property QuotationId() As String
        Get
            Return _quotationId
        End Get
        Set(ByVal value As String)
            _quotationId = value
        End Set
    End Property

    Public Property QuotationCode() As String
        Get
            Return _quotationCode
        End Get
        Set(ByVal value As String)
            _quotationCode = value
        End Set
    End Property

    Public Property ProductId() As String
        Get
            Return _productId
        End Get
        Set(ByVal value As String)
            _productId = value
        End Set
    End Property

    Public Property QuotationRefId() As String
        Get
            Return _quotationRefId
        End Get
        Set(ByVal value As String)
            _quotationRefId = value
        End Set
    End Property


    Public Property UnitId() As String
        Get
            Return _unitId
        End Get
        Set(ByVal value As String)
            _unitId = value
        End Set
    End Property

    Public Property AssingInqId() As String
        Get
            Return __assignInqId
        End Get
        Set(ByVal value As String)
            __assignInqId = value
        End Set
    End Property

    Public Property Description() As String
        Get
            Return _description
        End Get
        Set(ByVal value As String)
            _description = value
        End Set
    End Property

    Public Property EmpId() As String
        Get
            Return _empId
        End Get
        Set(ByVal value As String)
            _empId = value
        End Set
    End Property

    Public Property DiscussionId() As String
        Get
            Return _discussionId
        End Get
        Set(ByVal value As String)
            _discussionId = value
        End Set
    End Property

    Public Property CustomerName() As String
        Get
            Return _customerName
        End Get
        Set(ByVal value As String)
            _customerName = value
        End Set
    End Property

    Public Property CustomerId() As String
        Get
            Return _customerId
        End Get
        Set(ByVal value As String)
            _customerId = value
        End Set
    End Property
    Public Property InquiryId() As String
        Get
            Return _inquiryId
        End Get
        Set(ByVal value As String)
            _inquiryId = 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 CategoryName() As String
        Get
            Return _categoryName
        End Get
        Set(ByVal value As String)
            _categoryName = 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 ProductName() As String
        Get
            Return _productName
        End Get
        Set(ByVal value As String)
            _productName = value
        End Set
    End Property
    

    Public Property ModelNo() As String
        Get
            Return _productModelNo
        End Get
        Set(ByVal value As String)
            _productModelNo = value
        End Set
    End Property

    Public Property Quentity() As String
        Get
            Return _quentity
        End Get
        Set(ByVal value As String)
            _quentity = value
        End Set
    End Property

    Public Property UnitName() As String
        Get
            Return _unitName
        End Get
        Set(ByVal value As String)
            _unitName = value
        End Set
    End Property

    Public Property RequiredPlace() As String
        Get
            Return _reqiredPlace
        End Get
        Set(ByVal value As String)
            _reqiredPlace = value
        End Set
    End Property

    Public Property FormName() As String
        Get
            Return _formName
        End Get
        Set(ByVal value As String)
            _formName = value
        End Set
    End Property

    Public Property UserId() As String
        Get
            Return _userID
        End Get
        Set(ByVal value As String)
            _userID = value
        End Set
    End Property

    Public Property Details() As String
        Get
            Return _reqDetails
        End Get
        Set(ByVal value As String)
            _reqDetails = value
        End Set
    End Property

    Public Property AssignTo() As String
        Get
            Return _assignTo
        End Get
        Set(ByVal value As String)
            _assignTo = value
        End Set
    End Property

    Public Property CompanyId() As String
        Get
            Return _companyID
        End Get
        Set(ByVal value As String)
            _companyID = value
        End Set
    End Property

    Public Property Mode() As String
        Get
            Return _mode
        End Get
        Set(ByVal value As String)
            _mode = value
        End Set
    End Property

    Public Property AdminId() As String
        Get
            Return _adminID
        End Get
        Set(ByVal value As String)
            _adminID = value
        End Set
    End Property

    Public Property InquiryType() As Integer
        Get
            Return _inquiryType
        End Get
        Set(ByVal value As Integer)
            _inquiryType = value
        End Set
    End Property

    Public Property Status() As String
        Get
            Return _status
        End Get
        Set(ByVal value As String)
            _status = value
        End Set
    End Property

    Public Property TargetDate() As DateTime
        Get
            Return _targetDate
        End Get
        Set(ByVal value As DateTime)
            _targetDate = value
        End Set
    End Property

    Public Property AssignDate() As DateTime
        Get
            Return _assignDate
        End Get
        Set(ByVal value As DateTime)
            _assignDate = value
        End Set
    End Property

    Public Property FromDate() As DateTime
        Get
            Return _fromDate
        End Get
        Set(ByVal value As DateTime)
            _fromDate = value
        End Set
    End Property

    Public Property ToDate() As DateTime
        Get
            Return _toDate
        End Get
        Set(ByVal value As DateTime)
            _toDate = value
        End Set
    End Property
    Public Property InqDate() As DateTime
        Get
            Return _inquiryDate
        End Get
        Set(ByVal value As DateTime)
            _inquiryDate = value
        End Set
    End Property
    Public Property ReqDate() As DateTime
        Get
            Return _reqDate
        End Get
        Set(ByVal value As DateTime)
            _reqDate = value
        End Set
    End Property

    Public Property InquiryStatus() As Integer
        Get
            Return _inqstatus
        End Get
        Set(ByVal value As Integer)
            _inqstatus = value
        End Set
    End Property

    Public Property IsDeleted() As Integer
        Get
            Return _isDeleted
        End Get
        Set(ByVal value As Integer)
            _isDeleted = value
        End Set
    End Property



    Public Shared Sub InsertInquiry(ByVal inquiry As clsCRMInquiry)
        Dim cn As New System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings("ConnectionVoffice"))
        Dim objAdapter As SqlDataAdapter
        cn.Open()
        Dim tran As System.Data.SqlClient.SqlTransaction
        tran = cn.BeginTransaction(IsolationLevel.Serializable)

        Try
            objAdapter = New SqlDataAdapter("Insert_CRM__Inquiry_Proc", cn)
            objAdapter.SelectCommand.Transaction = tran
            objAdapter.SelectCommand.CommandType = CommandType.StoredProcedure

            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_InquiryID", SqlDbType.VarChar))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_CustomerID", SqlDbType.VarChar))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_InquiryDate", SqlDbType.DateTime))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_InquiryType", SqlDbType.Int))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_ProductCode", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_ProductName", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_ModelNo", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_QuentityReq", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_UnitName", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_ReqDate", SqlDbType.DateTime))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_ReqPlace", SqlDbType.NVarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_Information", SqlDbType.NVarChar, 200))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_Status", SqlDbType.NVarChar, 20))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_InquiryCategory", SqlDbType.NVarChar, 100))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_AdminID", SqlDbType.VarChar))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@V_CRM_CompanyID", SqlDbType.VarChar))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@FormName", SqlDbType.VarChar, 50))
            objAdapter.SelectCommand.Parameters.Add(New SqlParameter("@Mode", SqlDbType.VarChar, 10))

            objAdapter.SelectCommand.Parameters("@V_CRM_InquiryID").Value = inquiry.InquiryId
            objAdapter.SelectCommand.Parameters("@V_CRM_CustomerID").Value = inquiry.CustomerId 
            objAdapter.SelectCommand.Parameters("@V_CRM_InquiryDate").Value = inquiry.InqDate
            objAdapter.SelectCommand.Parameters("@V_CRM_InquiryType").Value = inquiry.InquiryType
            objAdapter.SelectCommand.Parameters("@V_CRM_ProductCode").Value = inquiry.ProductCode
            objAdapter.SelectCommand.Parameters("@V_CRM_ProductName").Value = inquiry.ProductName
            objAdapter.SelectCommand.Parameters("@V_CRM_ModelNo").Value = inquiry.ModelNo
            objAdapter.SelectCommand.Parameters("@V_CRM_QuentityReq").Value = inquiry.Quentity
            objAdapter.SelectCommand.Parameters("@V_CRM_UnitName").Value = inquiry.UnitName
            objAdapter.SelectCommand.Parameters("@V_CRM_ReqDate").Value = inquiry.ReqDate
            objAdapter.SelectCommand.Parameters("@V_CRM_ReqPlace").Value = inquiry.RequiredPlace
            objAdapter.SelectCommand.Parameters("@V_CRM_Information").Value = inquiry.Details
            objAdapter.SelectCommand.Parameters("@V_CRM_Status").Value = inquiry.InquiryStatus
            objAdapter.SelectCommand.Parameters("@V_CRM_InquiryCategory").Value = inquiry.CategoryId
            objAdapter.SelectCommand.Parameters("@V_CRM_AdminID").Value = inquiry.AdminId
            objAdapter.SelectCommand.Parameters("@V_CRM_CompanyId").Value = inquiry.CompanyId
            objAdapter.SelectCommand.Parameters("@FormName").Value = inquiry.FormName
            objAdapter.SelectCommand.Parameters("@Mode").Value = inquiry.Mode

            objAdapter.SelectCommand.ExecuteNonQuery()
            tran.Commit()
            
        Catch ex As Exception
            tran.Rollback()
            Throw ex
        Finally
            cn.Close()
            cn.Dispose()
        End Try
    End Sub


End Class
