You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
6.1 KiB
170 lines
6.1 KiB
Public Class clsMailClient
|
|
|
|
Dim m_empfaenger As String
|
|
Property Empfaenger As String
|
|
Get
|
|
Return m_empfaenger
|
|
End Get
|
|
|
|
Set(value As String)
|
|
m_empfaenger = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Enum EmpfangerFrom
|
|
Behandlung
|
|
Rechnung
|
|
LetzteRechnung
|
|
Dokument
|
|
End Enum
|
|
|
|
Public Function Read_Empfaenger(ByVal Behandlungsnr As String, ByVal Fakturanr As String, ByVal FromLastFaktura As Boolean) As Integer
|
|
Try
|
|
Dim msgfirma As Integer = 0
|
|
Dim debitor As Integer
|
|
Dim db As New clsDB
|
|
If FromLastFaktura = True Then
|
|
db.Get_Tabledata("fak", "", "select top 1 nrdebitor from faktura order by nrfaktura desc")
|
|
debitor = db.dsDaten.Tables(0).Rows(0).Item(0)
|
|
End If
|
|
If Behandlungsnr <> "" Then
|
|
db.Get_Tabledata("fak", "", "select top 1 * from behandlu where nrbehandlung=" + Behandlungsnr)
|
|
If db.dsDaten.Tables(0).Rows(0).Item("nrgarant") > 0 Then
|
|
debitor = db.dsDaten.Tables(0).Rows(0).Item("nrgarant")
|
|
Else
|
|
debitor = db.dsDaten.Tables(0).Rows(0).Item("nrpatient")
|
|
End If
|
|
End If
|
|
|
|
If Fakturanr <> "" Then
|
|
db.Get_Tabledata("fak", "", "select top 1 nrdebitor from faktura where nrfaktura=" + Fakturanr)
|
|
End If
|
|
If debitor > 49000 Then
|
|
db.Get_Tabledata("fak", "", "Select isnull(e_mail,'') from firma where nrfirma=" + debitor.ToString)
|
|
msgfirma = 1
|
|
Else
|
|
db.Get_Tabledata("fak", "", "select isnull(e_mail,'') from privat where nrprivat=" + debitor.ToString)
|
|
|
|
End If
|
|
Me.Empfaenger = db.dsDaten.Tables(0).Rows(0).Item(0)
|
|
Return msgfirma
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
Me.Empfaenger = ""
|
|
End Try
|
|
End Function
|
|
|
|
Public Sub CreateOutlookMail(type As EmpfangerFrom, ByVal keyvalue As String, ByVal Attachment As String, Optional Mailtext As Integer = 0)
|
|
Dim msgnrfirma As Integer
|
|
Select Case type
|
|
Case EmpfangerFrom.Behandlung
|
|
msgnrfirma = Read_Empfaenger(keyvalue, "", False)
|
|
Case EmpfangerFrom.Rechnung
|
|
msgnrfirma = Read_Empfaenger("", keyvalue, False)
|
|
Case EmpfangerFrom.LetzteRechnung
|
|
msgnrfirma = Read_Empfaenger("", "", True)
|
|
Case Else
|
|
Me.Empfaenger = ""
|
|
End Select
|
|
If type = 1 Then
|
|
End If
|
|
If msgnrfirma = 1 And (Mailtext = 1 Or Mailtext = 2 Or Mailtext = 3) Then Mailtext = Mailtext + 10
|
|
Dim db As New clsDB
|
|
Dim Mailclient As String = UCase(db.Get_Option(9805))
|
|
Select Case Mailclient
|
|
Case "OUTLOOK"
|
|
Dim Outl As Object
|
|
Outl = CreateObject("Outlook.Application")
|
|
If Outl IsNot Nothing Then
|
|
Dim omsg As Object
|
|
omsg = Outl.CreateItem(0)
|
|
omsg.To = Me.Empfaenger
|
|
omsg.bcc = ""
|
|
|
|
Dim betreff As String = ""
|
|
Dim inhalt As String = ""
|
|
If Mailtext <> 0 Then
|
|
omsg.body = Get_Mail_Text(Mailtext, betreff, inhalt, keyvalue)
|
|
End If
|
|
omsg.subject = betreff
|
|
omsg.body = inhalt
|
|
omsg.Attachments.Add(Attachment)
|
|
omsg.Display(True)
|
|
End If
|
|
Case "MAPI"
|
|
Dim betreff As String = ""
|
|
Dim inhalt As String = ""
|
|
If Mailtext <> 0 Then
|
|
Get_Mail_Text(Mailtext, betreff, inhalt, keyvalue)
|
|
End If
|
|
Dim mapi As New MapiMail
|
|
mapi.AddAttachment(Attachment)
|
|
mapi.AddRecipientTo(Me.Empfaenger)
|
|
mapi.SendMailPopup(betreff, inhalt)
|
|
Case Else
|
|
|
|
MsgBox("Kein Mail-Client verfügbar.")
|
|
|
|
End Select
|
|
|
|
|
|
End Sub
|
|
|
|
Public Function Get_Mail_Text(ByVal Mailtext As Integer, ByRef betreff As String, ByRef inhalt As String, ByVal keyvalue As String)
|
|
Dim db As New clsDB
|
|
Try
|
|
betreff = Get_Mailtext(Mailtext, 1, keyvalue)
|
|
inhalt = Get_Mailtext(Mailtext, 2, keyvalue)
|
|
Return ""
|
|
db.Get_Tabledata("Mailtext", "", "Select betreff,Inhalt from mailtexte where eintragnr=" + Mailtext.ToString)
|
|
betreff = db.dsDaten.Tables(0).Rows(0).Item(0)
|
|
inhalt = db.dsDaten.Tables(0).Rows(0).Item(1)
|
|
db.Get_Tabledata("Behandlu", " where nrbehandlung=" + keyvalue.ToString)
|
|
If db.dsDaten.Tables(0).Rows.Count > 0 Then
|
|
'replace_text(inhalt, db.dsDaten.Tables(0).Rows(0), Mailtext)
|
|
'replace_text(betreff, db.dsDaten.Tables(0).Rows(0), Mailtext)
|
|
End If
|
|
Return db.dsDaten.Tables(0).Rows(0).Item(0)
|
|
Catch
|
|
Return ""
|
|
Finally
|
|
db.Dispose()
|
|
End Try
|
|
|
|
|
|
End Function
|
|
|
|
Public Function Get_Mailtext(ByVal nr As Integer, typ As Integer, keyvalue As Integer) As String
|
|
Dim paramdaten As New DataTable
|
|
Dim dbr As DataRow = paramdaten.NewRow
|
|
Dim db As New clsDB
|
|
|
|
paramdaten.Columns.Clear()
|
|
paramdaten.Rows.Clear()
|
|
dbr = paramdaten.NewRow
|
|
paramdaten.Columns.Add("Paramname")
|
|
paramdaten.Columns.Add("Paramvalue")
|
|
dbr(0) = "@behandlungsnr"
|
|
dbr(1) = keyvalue
|
|
paramdaten.Rows.Add(dbr)
|
|
dbr = paramdaten.NewRow
|
|
dbr(0) = "@typ"
|
|
dbr(1) = typ
|
|
paramdaten.Rows.Add(dbr)
|
|
dbr = paramdaten.NewRow
|
|
dbr(0) = "@mailtextnr"
|
|
dbr(1) = nr
|
|
paramdaten.Rows.Add(dbr)
|
|
db.Get_Tabledata("sp_get_mailtexte", "", "", "", True, paramdaten)
|
|
Try
|
|
Return db.dsDaten.Tables(0).Rows(0).Item(0)
|
|
Catch ex As Exception
|
|
Return ""
|
|
End Try
|
|
End Function
|
|
|
|
|
|
|
|
|
|
End Class
|