Files
SISBusiness/SISBusiness.Module.Win/BusinessObjects/Business/BusinessTransactions/Estate/CRM/SendMailVC.vb
T
2017-03-26 20:00:03 +02:00

165 lines
8.5 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.Reports.Win
Imports DevExpress.XtraPrinting
Imports System.IO
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.Xpo
Imports Microsoft.Office.Interop
Imports DevExpress.ExpressApp.Win.SystemModule
Imports DevExpress.ExpressApp.Editors
Imports DevExpress.ExpressApp.Utils
Public Class SendMailVC
Inherits DevExpress.ExpressApp.ViewController
Private reportService As WinReportServiceController
Private printingService As PrintingController
Private _MemoryStream As New MemoryStream
Private _StreamReader As New StreamReader(_MemoryStream)
Private _RichEditControl As RichEditControl
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnViewControlsCreated()
MyBase.OnViewControlsCreated()
If View.Id = "CRMEstate_Leads_DetailView" Then
Dim _DetailView As DetailView = TryCast(View, DetailView)
Dim _RichEditContolViewItem As ViewItem = _DetailView.FindItem("DocumentBody")
If _RichEditContolViewItem IsNot Nothing Then
AddHandler _RichEditContolViewItem.ControlCreated, AddressOf RichEditContolViewItem_ControlCreated
End If
End If
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
reportService = Frame.GetController(Of WinReportServiceController)()
printingService = Frame.GetController(Of PrintingController)()
End Sub
Private Sub aSendMailReportCRMEstate_Leads_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs)
End Sub
Private Sub reportService_CustomShowPreview(ByVal sender As Object, ByVal e As CustomShowPreviewEventArgs)
e.Report.CreateDocument()
e.Report.ExportToHtml(_MemoryStream)
e.Handled = True
End Sub
Private Sub aSendMailCRMEstate_Leads_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aSendMailCRMEstate_Leads.Execute
Try
Dim _OutlookEMail As OutlookEMail
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _CRMEstate_Leads As CRMEstate_Leads = TryCast(View.SelectedObjects(0), CRMEstate_Leads)
Dim _FileName As String = Path.GetTempPath & "Ajánlat.pdf"
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
_RichEditControl.ExportToPdf(_StreamFile)
_StreamFile.Close()
_StreamFile = New FileStream(_FileName, FileMode.Open, FileAccess.Read)
Dim _StreamReader As New StreamReader(_StreamFile)
_StreamFile.Seek(0, SeekOrigin.Begin)
Dim _OutlookEMailAttachments As OutlookEMailAttachments = _onew.CreateObject(Of OutlookEMailAttachments)()
Dim _DocumentFileData As DocumentFileData = _onew.CreateObject(Of DocumentFileData)()
_DocumentFileData.File = New FileData(_onew.Session)
_DocumentFileData.File.LoadFromStream("Ajánlat.pdf", _StreamFile) '_FileData
_DocumentFileData.File.FileName = "Ajánlat.pdf"
_OutlookEMailAttachments.DocumentFileData = _onew.GetObject(_DocumentFileData)
_StreamReader.Close()
_StreamFile.Close()
'-- Most jön az új outlook !
_MemoryStream.Position = 0
_OutlookEMail = _onew.CreateObject(Of OutlookEMail)()
_OutlookEMail.HTMLBody = ""
_OutlookEMail.eCRMEstate_Leads = eCRMEstate_Leads.eCRMEstate
_OutlookEMail.CRMEstate_Leads = _onew.GetObjectByKey(Of CRMEstate_Leads)(_CRMEstate_Leads.Oid)
If _CRMEstate_Leads.EMail = "" Or _CRMEstate_Leads.EMail Is Nothing Then
_OutlookEMail.Recipients = "< = Nincs beállítva e-mail cím az ügyfélhez! = >"
Else
_OutlookEMail.Recipients = _CRMEstate_Leads.EMail
End If
_OutlookEMail.OutlookEMailAttachments.Add(_OutlookEMailAttachments)
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "OutlookEMail_DetailView", True, _OutlookEMail)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
End Try
End Sub
Private Sub RichEditContolViewItem_ControlCreated(sender As Object, e As EventArgs)
Dim _ItemControl As Object = TryCast(sender, ViewItem).Control
_RichEditControl = TryCast(_ItemControl, RichEditUserControl).RichEditControl
End Sub
Private Sub aSendEMailLawyerDocument_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aSendEMailLawyerDocument.Execute
Try
Dim _OutlookEMail As OutlookEMail
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _CRMEstate_Opportunity As CRMEstate_Opportunity = TryCast(View.SelectedObjects(0), CRMEstate_Opportunity)
If _CRMEstate_Opportunity Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
Dim _ImmovablesGroupsParameters As ImmovablesGroupsParameters = _onew.FindObject(Of ImmovablesGroupsParameters)(CriteriaOperator.Parse("ImmovablesGroups.Oid=?", _
_CRMEstate_Opportunity.CRMEstate_Leads.ImmovablesPriceListHeader.ImmovablesGroups.Oid))
If _ImmovablesGroupsParameters Is Nothing Then Throw New Exception("*Nincsenek beállítva a(z) " + _
_CRMEstate_Opportunity.CRMEstate_Leads.ImmovablesPriceListHeader.ImmovablesGroups.ShortName + " paraméterei!")
Dim _ReportData As ReportData = _ImmovablesGroupsParameters.ReportData_Contract_Temp
If _ReportData Is Nothing Then Throw New Exception("*Nincs beállítva az ügyvédi segédanyag nyomtatvány!" + vbNewLine + "Kérem, ellenõrizze!")
Dim _XafReport As Reports.XafReport = _ReportData.LoadReport(_onew)
Dim _FilterString As String = "[CRMEstate_Opportunity.Oid]='" & _CRMEstate_Opportunity.Oid.ToString & "'"
_XafReport.FilterString = _FilterString
Dim _FileName As String = Path.GetTempPath & "Ügyvédi segédlet.pdf"
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
_XafReport.ExportToPdf(_StreamFile)
_StreamFile.Close()
_StreamFile = New FileStream(_FileName, FileMode.Open, FileAccess.Read)
Dim _StreamReader As New StreamReader(_StreamFile)
_StreamFile.Seek(0, SeekOrigin.Begin)
Dim _OutlookEMailAttachments As OutlookEMailAttachments = _onew.CreateObject(Of OutlookEMailAttachments)()
Dim _DocumentFileData As DocumentFileData = _onew.CreateObject(Of DocumentFileData)()
_DocumentFileData.File = New FileData(_ocur.Session)
_DocumentFileData.File.LoadFromStream("Ügyvédi segédlet.pdf", _StreamFile) '_FileData
_DocumentFileData.File.FileName = "Ügyvédi segédlet.pdf"
_OutlookEMailAttachments.DocumentFileData = _DocumentFileData
_StreamReader.Close()
_StreamFile.Close()
'-- Most jön az új outlook !
_MemoryStream.Position = 0
_OutlookEMail = _onew.CreateObject(Of OutlookEMail)()
_OutlookEMail.Subject = _CRMEstate_Opportunity.CRMEstate_Leads.DisplayName + " - Ügyvédi segédlet"
_OutlookEMail.HTMLBody = "Tisztelt Németh és Herrmann Ügyvédi Iroda!"
_OutlookEMail.eCRMEstate_Leads = eCRMEstate_Leads.eCRMEstate
_OutlookEMail.Recipients = "< = Nincs beállítva e-mail = >"
_OutlookEMail.OutlookEMailAttachments.Add(_OutlookEMailAttachments)
e.ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "OutlookEMail_DetailView", True, _OutlookEMail)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly)
End Try
End Sub
End Class