Imports System Imports System.ComponentModel Imports DevExpress.Xpo Imports DevExpress.Data.Filtering Imports DevExpress.ExpressApp Imports DevExpress.Persistent.Base Imports DevExpress.Persistent.BaseImpl Imports DevExpress.Persistent.Validation Imports DevExpress.ExpressApp.ConditionalAppearance ' _ ' _ ' _ ' _ ' _ ' _ _ _ _ eLeadStatus.Qualified", AppearanceItemType.ViewItem, "LeadStatus<>5", _ TargetItems:="CRM_Opportunity", visibility:=Editors.ViewItemVisibility.Hide)> _ _ _ _ _ _ _ Public Class CRM_Leads Inherits BaseObject '-- Személyes adatok Private _Topic As String ' Megjelenési név Private _FirstName As String ' Keresztnév Private _LastName As String ' Vezetéknév Private _CRM_FirstMeet As CRM_FirstMeet ' Hol találkozott először Private _CompanyName As String ' Cég neve Private _JobTitle As String ' Beosztás Private _OfficePhone As String ' Munkahelyi telefon Private _Fax As String ' Fax Private _MobilePhone As String ' Mobil szám Private _HomePhone As String ' Otthoni szám Private _OtherPhone As String ' Egyéb telefonszám Private _WEB As String 'WEB szájt Private _EMail As String ' Emil '-- Részletes adatok Private _AnnualRevenue As Double 'Forgalom Private _NumberOfEmployees As Long 'Dolgozók száma Private _LeadSource As eLeadSource ' Lead forrás '-- Elsődleges cím adatok Private _Street1 As String 'Utca, házszám Private _Street2 As String 'Utca házszám Private _City As String 'Város Private _Country As Country 'Ország Private _State As String 'Megye, állam stb. Private _ZIP As String 'Postai irányítószám '-- Adminisztrációs adatok Private _PreferredContactMethod As ePreferredContactMethod ' Kapcsolattartás módja Private _LeadStatus As eLeadStatus ' Lead státusza Private _HRPerson As HRPerson 'A felelős személy, aki ezzel a LEAD-dal foglalkozik Private _ObjectCreated As Date 'Létrehozva Private _UserCreated As User 'Létrehozó '-- Egyéb belső változók Private _InProcess As Boolean = False Private _Customers As Customers Private _Contacts As Contacts Public Sub New(ByVal session As Session) MyBase.New(session) End Sub Public Overrides Sub AfterConstruction() MyBase.AfterConstruction() End Sub Protected Overrides Sub OnSaving() MyBase.OnSaving() If Session.IsNewObject(Me) Then ObjectCreated = GetSQLTime(Session) UserCreated = Session.GetObjectByKey(Of User)(Session.GetKeyValue(SecuritySystem.CurrentUser)) End If End Sub Sub CreateTopic() If _InProcess Then Else _InProcess = True If CompanyName <> "" Then Topic = CompanyName End If If FirstName <> "" And LastName <> "" Then Topic = LastName & " " & FirstName End If _InProcess = False End If End Sub Property Topic As String Get Return _Topic End Get Set(ByVal value As String) SetPropertyValue("Topic", _Topic, value) End Set End Property _ Property FirstName As String Get Return _FirstName End Get Set(ByVal value As String) SetPropertyValue("FirstName", _FirstName, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then CreateTopic() End If End Set End Property _ Property LastName As String Get Return _LastName End Get Set(ByVal value As String) SetPropertyValue("LastName", _LastName, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then CreateTopic() End If End Set End Property _ _ Property CRM_FirstMeet As CRM_FirstMeet Get Return _CRM_FirstMeet End Get Set(ByVal value As CRM_FirstMeet) SetPropertyValue("CRM_FirstMeet", _CRM_FirstMeet, value) End Set End Property _ Property CompanyName As String Get Return _CompanyName End Get Set(ByVal value As String) SetPropertyValue("CompanyName", _CompanyName, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then CreateTopic() End If End Set End Property Property JobTitle As String Get Return _JobTitle End Get Set(ByVal value As String) SetPropertyValue("JobTitle", _JobTitle, value) End Set End Property Property OfficePhone As String Get Return _OfficePhone End Get Set(ByVal value As String) SetPropertyValue("OfficePhone", _OfficePhone, value) End Set End Property Property Fax As String Get Return _Fax End Get Set(ByVal value As String) SetPropertyValue("Fax", _Fax, value) End Set End Property _ Property MobilePhone As String Get Return _MobilePhone End Get Set(ByVal value As String) SetPropertyValue("MobilePhone", _MobilePhone, value) End Set End Property Property HomePhone As String Get Return _HomePhone End Get Set(ByVal value As String) SetPropertyValue("HomePhone", _HomePhone, value) End Set End Property Property OtherPhone As String Get Return _OtherPhone End Get Set(ByVal value As String) SetPropertyValue("OtherPhone", _OtherPhone, value) End Set End Property Property WEB As String Get Return _WEB End Get Set(ByVal value As String) SetPropertyValue("WEB", _WEB, value) End Set End Property _ Property EMail As String Get Return _EMail End Get Set(ByVal value As String) SetPropertyValue("EMail", _EMail, value) End Set End Property Property AnnualRevenue As Double Get Return _AnnualRevenue End Get Set(ByVal value As Double) SetPropertyValue("AnnualRevenue", _AnnualRevenue, value) End Set End Property Property NumberOfEmployees As Long Get Return _NumberOfEmployees End Get Set(ByVal value As Long) SetPropertyValue("NumberOfEmployees", _NumberOfEmployees, value) End Set End Property Property LeadSource As eLeadSource Get Return _LeadSource End Get Set(ByVal value As eLeadSource) SetPropertyValue("LeadSource", _LeadSource, value) End Set End Property _ Property Street1 As String Get Return _Street1 End Get Set(ByVal value As String) SetPropertyValue("Street1", _Street1, value) End Set End Property Property Street2 As String Get Return _Street2 End Get Set(ByVal value As String) SetPropertyValue("Street2", _Street2, value) End Set End Property _ Property City As String Get Return _City End Get Set(ByVal value As String) SetPropertyValue("City", _City, value) End Set End Property _ Property Country As Country Get Return _Country End Get Set(ByVal value As Country) SetPropertyValue("Country", _Country, value) End Set End Property Property State As String Get Return _State End Get Set(ByVal value As String) SetPropertyValue("State", _State, value) End Set End Property _ Property ZIP As String Get Return _ZIP End Get Set(ByVal value As String) SetPropertyValue("ZIP", _ZIP, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then Dim _ZIPHU As ZIPHU = Session.FindObject(Of ZIPHU)(CriteriaOperator.Parse("Zip=?", Me.ZIP)) If _ZIPHU IsNot Nothing Then Me.Country = TryCast(Session.FindObject(Of CountryExtend)(CriteriaOperator.Parse("ShortName=?", "Magyarország")), Country) Me.City = _ZIPHU.City Me.State = _ZIPHU.County Else Me.Country = Nothing Me.City = "Nem magyarországi irányítószám" Me.State = "Nem magyarországi irányítószám" End If End If End Set End Property Property PreferredContactMethod As ePreferredContactMethod Get Return _PreferredContactMethod End Get Set(ByVal value As ePreferredContactMethod) SetPropertyValue("PreferredContactMethod", _PreferredContactMethod, value) End Set End Property Property LeadStatus As eLeadStatus Get Return _LeadStatus End Get Set(ByVal value As eLeadStatus) SetPropertyValue("LeadStatus", _LeadStatus, value) End Set End Property Property HRPerson As HRPerson Get Return _HRPerson End Get Set(ByVal value As HRPerson) SetPropertyValue("HRPerson", _HRPerson, value) End Set End Property _ Property ObjectCreated As Date Get Return _ObjectCreated End Get Set(value As Date) SetPropertyValue("ObjectCreated", _ObjectCreated, value) End Set End Property _ Property UserCreated As User Get Return _UserCreated End Get Set(value As User) SetPropertyValue("UserCreated", _UserCreated, value) End Set End Property _ Property Customers As Customers Get Return _Customers End Get Set(ByVal value As Customers) SetPropertyValue("Customers", _Customers, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False And Customers IsNot Nothing Then CompanyName = Customers.FullName WEB = Customers.WebSite If Customers.Address1 IsNot Nothing Then Street1 = Customers.Address1.Street ' Street2 = Customers.Address2.Street City = Customers.Address1.City Country = Customers.Address1.Country State = Customers.Address1.StateProvince ZIP = Customers.Address1.ZipPostal 'Contacts = Nothing End If End If End Set End Property _ _ Property Contacts As Contacts Get Return _Contacts End Get Set(value As Contacts) SetPropertyValue("Contacts", _Contacts, value) If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False And Contacts IsNot Nothing Then LastName = Contacts.LastName FirstName = Contacts.FirstName Dim _PhoneNumber As PhoneNumber For Each _PhoneNumber In Contacts.PhoneNumbers If _PhoneNumber.PhoneType = "OfficePhone" Then OfficePhone = _PhoneNumber.Number End If If _PhoneNumber.PhoneType = "Fax" Then Fax = _PhoneNumber.Number End If If _PhoneNumber.PhoneType = "MobilePhone" Then MobilePhone = _PhoneNumber.Number End If If _PhoneNumber.PhoneType = "HomePhone" Then HomePhone = _PhoneNumber.Number End If If _PhoneNumber.PhoneType = "OtherPhone" Then OtherPhone = _PhoneNumber.Number End If Next EMail = Contacts.Email If Contacts.Customers IsNot Nothing And Customers Is Nothing Then Customers = Contacts.Customers End If End If End Set End Property '-- Activities _ _ ReadOnly Property CRM_Leads_Activity As XPCollection(Of CRM_Leads_Activity) Get Return GetCollection(Of CRM_Leads_Activity)("CRM_Leads_Activity") End Get End Property _ ReadOnly Property CRM_Opportunity As XPCollection(Of CRM_Opportunities) Get Return New XPCollection(Of CRM_Opportunities)(Session, CriteriaOperator.Parse("CRM_Leads.Oid=?", Me.Oid)) End Get End Property '-- Megjegyzések _ _ ReadOnly Property CRMNote As XPCollection(Of CRMNote) Get Return GetCollection(Of CRMNote)("CRMNote") End Get End Property '------------ReadOnly----------------- _ ReadOnly Property CRM_LeadsDocumentation As XPCollection(Of CRM_LeadsDocumentation) Get Return GetCollection(Of CRM_LeadsDocumentation)("CRM_LeadsDocumentation") End Get End Property End Class