Files
Nuvolar/Nuvolar.Module.Win/BusinessObjects/Business/CRM/Classical/CRM_OpportunitiesVC.vb
T
2017-03-08 11:21:27 +01:00

131 lines
6.9 KiB
VB.net

Imports System
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.Data.Filtering
Imports DevExpress.ExpressApp.Utils
Public Class CRM_OpportunitiesVC
Inherits DevExpress.ExpressApp.ViewController
Public Sub New()
MyBase.New()
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Frame.GetController(Of CRM_OpportunitiesVC).aCRM_Opportunities_Contact_Role_CreateMail.Active.SetItemValue("", False)
If View.Id = "CRM_Opportunities_OfferOutHeader_ListView" Then
Frame.GetController(Of OffersOutPrintVC)().aOfferOutSendMailDeatil.Active.SetItemValue("", True)
End If
If View.Id = "CRM_Opportunities_CRM_Opportunities_Contacts_Roles_ListView" Then
Frame.GetController(Of CRM_OpportunitiesVC).aCRM_Opportunities_Contact_Role_CreateMail.Active.SetItemValue("", True)
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
If View.Id = "CRM_Opportunities_OfferOutHeader_ListView" Then
Frame.GetController(Of OffersOutPrintVC)().aOfferOutSendMailDeatil.Active.SetItemValue("", False)
End If
If View.Id = "CRM_Opportunities_CRM_Opportunities_Contacts_Roles_ListView" Then
Frame.GetController(Of CRM_OpportunitiesVC).aCRM_Opportunities_Contact_Role_CreateMail.Active.SetItemValue("", False)
End If
End Sub
Private Sub aCRM_Opportunities_CreateMail_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCRM_Opportunities_CreateMail.Execute
Try
Dim _CRM_Opportunities As CRM_Opportunities = TryCast(e.CurrentObject, CRM_Opportunities)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
If _CRM_Opportunities.Contacts Is Nothing Then Throw New Exception("*Nincs kapcsolat ehhez az ügyfélhez!")
If _CRM_Opportunities.Contacts.Email Is Nothing Then Throw New UserFriendlyException("Nincs beállítva e-mail cím!")
If _CRM_Opportunities.Contacts.Email = "" Then Throw New UserFriendlyException("Nincs beállítva e-mail cím!")
Dim _OutlookEMail As OutlookEMail = _ocur.CreateObject(Of OutlookEMail)()
_OutlookEMail.CRM_Leads = _CRM_Opportunities.CRM_Leads
_OutlookEMail.CRM_Opportunities = _CRM_Opportunities
_OutlookEMail.Recipients = _CRM_Opportunities.Contacts.Email
_OutlookEMail.OwnerUser = _CRM_Opportunities.UserCreated
_OutlookEMail.eCRMEstate_Leads = eCRMEstate_Leads.eCRM
_OutlookEMail.Subject = _CRM_Opportunities.ShortName
_OutlookEMail.Save()
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_ocur, "OutlookEMail_DetailView", False, _OutlookEMail)
View.Refresh()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly)
End Try
End Sub
Private Sub aCRM_Opportunities_ReadMail_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCRM_Opportunities_ReadMail.Execute
Dim _CRM_Leads_Activity As CRM_Leads_Activity = TryCast(e.SelectedObjects(0), CRM_Leads_Activity)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
If _CRM_Leads_Activity IsNot Nothing Then
'--Email megkeresése és új benyitása
If _CRM_Leads_Activity.Email_Oid = "" Then
Throw New UserFriendlyException("Nincs kapcsolódó e-mail üzenet!")
Else
Dim _OutlookEMail As OutlookEMail = _ocur.FindObject(Of OutlookEMail)(CriteriaOperator.Parse("Oid=?", _CRM_Leads_Activity.Email_Oid))
Dim _OutlookEMailIn As OutlookEMailIn = _ocur.FindObject(Of OutlookEMailIn)(CriteriaOperator.Parse("Oid=?", _CRM_Leads_Activity.Email_Oid))
If _OutlookEMail IsNot Nothing Then
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_ocur, "OutlookEMail_DetailView", False, _OutlookEMail)
Else
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_ocur, "OutlookEMailIn_DetailView", False, _OutlookEMailIn)
End If
View.Refresh()
End If
End If
End Sub
Private Sub aCRM_Opportunities_Contact_Role_CreateMail_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCRM_Opportunities_Contact_Role_CreateMail.Execute
Try
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _OutlookEMail As OutlookEMail = _ocur.CreateObject(Of OutlookEMail)()
Dim _Contacts As Contacts = TryCast(View.SelectedObjects(0), CRM_Opportunities_Contacts_Roles).Contacts
Dim _CRM_Opportunities As CRM_Opportunities = TryCast(TryCast(View, ListView).CollectionSource, PropertyCollectionSource).MasterObject
Dim _Contacts_Collection As New ArrayList
For Each _CRM_Opportunities_Contacts_Roles As CRM_Opportunities_Contacts_Roles In View.SelectedObjects
If String.IsNullOrEmpty(_CRM_Opportunities_Contacts_Roles.Contacts.Email) Then _
_Contacts_Collection.Add(_CRM_Opportunities_Contacts_Roles.Contacts)
Next
If _Contacts_Collection.Count > 0 Then
Dim _ErrorMessage As String = "A következõ kapcsolatoknak nincs e-mail cím beállítva:" + vbNewLine
For Each _ContactsError As Contacts In _Contacts_Collection
_ErrorMessage += _ContactsError.FirstName + " " + _ContactsError.LastName + vbNewLine
Next
_ErrorMessage += "Kérem, ellenõrizze!"
Throw New Exception(_ErrorMessage)
End If
_OutlookEMail.CRM_Leads = _CRM_Opportunities.CRM_Leads
_OutlookEMail.CRM_Opportunities = _CRM_Opportunities
_OutlookEMail.Recipients = ""
For Each _CRM_Opportunities_Contacts_Roles As CRM_Opportunities_Contacts_Roles In View.SelectedObjects
_OutlookEMail.Recipients += _CRM_Opportunities_Contacts_Roles.Contacts.Email + "; "
Next
_OutlookEMail.OwnerUser = _CRM_Opportunities.UserCreated
_OutlookEMail.eCRMEstate_Leads = eCRMEstate_Leads.eCRM
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_ocur, "OutlookEMail_DetailView", False, _OutlookEMail)
View.Refresh()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
End Try
End Sub
End Class