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

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