Files
SDL/SDL/Fakturierung/frmFaktEmail.vb

856 lines
42 KiB
VB.net

Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmFaktEmail
Dim RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
Dim FUNC As New cProgramFunctions
Dim printOriginalRg As Object = Nothing
Dim ATTACHMENTS As New List(Of cFakt_MailATTach)
Dim SR_List As List(Of cFakt_SR_List) = Nothing
Dim SR_DT As DataTable = Nothing
Dim Firma_ID As Integer
Dim SammelrechungArt As Integer
Dim KdNr As Integer
Dim DatumBis As Date
Dim Rechnungsdatum = Nothing
Dim SB As String
Dim Rechnungsdruck As Integer = 3
Dim EinzelAnlagen As Boolean
Dim Sammelbericht As Boolean
Dim xlsEvolog As Boolean
Dim xlsTransFerry As Boolean
Dim RechnungsNr As Integer
Dim FakturierungsGruppe As String
Dim Abfertigungsart As String
Dim DruckDatumZeit As DateTime
Dim AvisoIds As List(Of Integer)
Dim SR = False
Sub New(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, printOriginalRg As Object, Rechnungsdruck As Integer, Optional Rechnungsdatum As Object = Nothing)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.RECHNUNG = RECHNUNG
Me.Firma_ID = RECHNUNG.Firma_ID
Me.SPEDBUCH = SPEDBUCH
Me.printOriginalRg = printOriginalRg
Me.KdNr = RECHNUNG.RechnungsKundenNr
Me.Rechnungsdruck = Rechnungsdruck
If Rechnungsdatum IsNot Nothing Then Me.Rechnungsdatum = CDate(Rechnungsdatum)
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
'McDull.Windows.Forms.HTMLTextBox
End Sub
Sub New(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Rechnungsdruck As Integer, Optional EinzelAnlagen As Boolean = True, Optional Sammelbericht As Boolean = True, Optional KdNr As Integer = -1, Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, Optional AvisoIds As List(Of Integer) = Nothing, Optional xlsEvolog As Boolean = False, Optional xlsTransFerry As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional printRgCopy As Boolean = False)
'(Firma_ID As Integer, SammelrechungArt As Integer, KdNr As Integer, DatumBis As Date, SB As String, EinzelAnlagen As Boolean, Sammelbericht As Boolean) 'Sammelrechnung
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.SR_DT = cFakturierung.GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, KdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart) 'SQL.loadDgvBySql(sqlStr, "FMZOLL")
Me.Firma_ID = Firma_ID
Me.SammelrechungArt = SammelrechungArt
Me.DatumBis = DatumBis
Me.SB = SB
Me.EinzelAnlagen = EinzelAnlagen
Me.Sammelbericht = Sammelbericht
Me.xlsEvolog = xlsEvolog
Me.xlsTransFerry = xlsTransFerry
Me.KdNr = KdNr
Me.Rechnungsdatum = Rechnungsdatum
Me.RechnungsNr = lastAktuelle_RgNr
Me.FakturierungsGruppe = FakturierungsGruppe
Me.Abfertigungsart = Abfertigungsart
Me.AvisoIds = AvisoIds
Me.Rechnungsdruck = Rechnungsdruck
SR = True
End Sub
Private Sub frmFaktEmail_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Select Case RECHNUNG.RechnungsLandKz
' Case "TR"
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sayin Bayanlar ve Baylar,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
' TextHTML &= "<br><br><br>Saygilarimizla<br><br>" & cFakturierung.getSignature(RECHNUNG)
' Case "A", "AT", "D", "DE", "CH"
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
' TextHTML &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & cFakturierung.getSignature(RECHNUNG)
' Case Else
' txtSubject.Text = "Rechnung Nr. " & RECHNUNG.RechnungsNr
' TextHTML = "Sehr geehrte Damen und Herren,<br><br>attached we send you the invoice mentioned above."
' TextHTML &= "<br><br><br>Best regards<br><br>" & cFakturierung.getSignature(RECHNUNG)
'End Select
cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE"))
cboFaStb_Sprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EN", "EN"))
cboFaStb_Sprache.changeItem("DE")
cProgramFunctions.initDrucker(cboPrinter)
Select Case Rechnungsdruck
Case 5 : cbxRgKopieDrucken.Checked = True
End Select
Dim AD As VERAG_PROG_ALLGEMEIN.cAdressen
Dim FISKAL As cFiskal_Daten = Nothing
cbxExcelEvolog.Checked = xlsEvolog
cbxTransFerry.Checked = xlsTransFerry
If SR Then
AD = New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
FISKAL = New cFiskal_Daten(KdNr)
setMailText(AD.LandKz)
initList()
cbxStb.Enabled = True : cbxStb.Checked = True
cbxStbMitt.Enabled = True : cbxStbMitt.Checked = True
cbxVBD.Enabled = True : cbxVBD.Checked = True
cbxOriginalPrint.Visible = False
Else
setMailText(RECHNUNG.RechnungsLandKz)
initRowSpedbuch(SPEDBUCH)
If SPEDBUCH.DokumentId_Steuerbeleg Then cbxStb.Enabled = True : cbxStb.Checked = True
If SPEDBUCH.DokumentId_Mitteilung Then cbxStbMitt.Enabled = True : cbxStbMitt.Checked = True
If SPEDBUCH.DokumentId_VBD Then cbxVBD.Enabled = True : cbxVBD.Checked = True
' wbShowHTML(WebBrowser, cFakturierung.getSignature(RECHNUNG))
AD = New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr)
FISKAL = New cFiskal_Daten(RECHNUNG.RechnungsKundenNr)
If printOriginalRg Is Nothing Then
cbxOriginalPrint.Visible = False
Else
cbxOriginalPrint.Visible = True
cbxOriginalPrint.Checked = CBool(printOriginalRg)
End If
End If
If AD.AdressenNr = 1001688 Then cbxExcelEvolog.Checked = True 'EVOLOG
If AD.AdressenNr = 800020 Then cbxTransFerry.Checked = True 'TRANS FERRY 360
If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then lkl.Text = """" & AD.E_Mail & """ anfügen" : lkl.Tag = AD.E_Mail
lblKunde.Text = AD.AdressenNr & " - " & AD.Ordnungsbegriff
Dim EMAILTMP = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
If EMAILTMP <> "" Then dgvEmail.Rows.Add(EMAILTMP)
Dim EMAILTMPCC = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an")
If EMAILTMPCC <> "" Then dgvEmailCC.Rows.Add(EMAILTMPCC)
Dim EMAILTMPBCC = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an")
If EMAILTMPBCC <> "" Then dgvEmailBCC.Rows.Add(EMAILTMPBCC)
initDGVAnhaenge()
If FISKAL IsNot Nothing AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.Abfertigungsart IsNot Nothing AndAlso IsNumeric(SPEDBUCH.Abfertigungsart) AndAlso (SPEDBUCH.Abfertigungsart = 26 Or SPEDBUCH.Abfertigungsart = 28) AndAlso (SPEDBUCH.FilialenNr = 4805 Or SPEDBUCH.FilialenNr = 4811) Then 'Prüfung
cbxSteuerberaterEmail.Checked = (If(FISKAL.fisk_schreibenSB_Mail, "") <> "")
txtSteuerberaterEmail.Text = If(FISKAL.fisk_schreibenSB_Mail, "")
cbxFAEmail.Checked = (If(FISKAL.fisk_schreibenFA_Mail, "") <> "")
txtFAEmail.Text = If(FISKAL.fisk_schreibenFA_Mail, "")
End If
End Sub
Private Sub wbShowHTML(ByVal WebBrowser As WebBrowser, ByVal HtmlText As String)
Try
With WebBrowser
If IsNothing(.Url) OrElse .Url.AbsoluteUri <> "about:blank" Then
' zunächst eine leere Seite laden
.Navigate("about:blank")
Application.DoEvents()
End If
' HTML-Textstring in das WebBrowser-Control schreiben
' .Document.Body.InnerHtml = HtmlText
End With
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Function getRgNr(RechnungsNr As Integer) As String
If RechnungsNr <= 0 Then Return "%RgNr%"
Return RechnungsNr
End Function
Sub setMailText(RechnungsLandKz)
Select Case RechnungsLandKz
Case "A", "AT", "D", "DE", "CH" : cboFaStb_Sprache.changeItem("DE")
Case Else : cboFaStb_Sprache.changeItem("EN")
End Select
Dim txtRgNr = ""
Dim BelegartenNr = "70"
Try
If SR Then
txtRgNr = getRgNr(RechnungsNr)
If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
BelegartenNr = SR_DT.Rows(0)("BelegartenNr")
For Each r In SR_DT.Rows
If BelegartenNr <> r("BelegartenNr") Then BelegartenNr = "70" : Exit For 'Im Zweifel 70
Next
End If
Else
txtRgNr = getRgNr(If(RECHNUNG.RechnungsNr, -1))
BelegartenNr = RECHNUNG.BelegartenNr
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Dim TextHTMLADD = ""
'ZF-Passau + Konsilager
If SPEDBUCH IsNot Nothing Then
If (RECHNUNG.RechnungsKundenNr = 714869 Or RECHNUNG.RechnungsKundenNr = 715417) And (SPEDBUCH.Abfertigungsart = 39 Or SPEDBUCH.Abfertigungsart = 1) Then
If Not SR Then TextHTMLADD = addRgData_ZF_Passau(RechnungsLandKz)
End If
End If
'Parsan
If SPEDBUCH IsNot Nothing Then
If (RECHNUNG.RechnungsKundenNr = 712814) Then
If Not SR Then TextHTMLADD = addRgData_Parsan(RechnungsLandKz)
End If
End If
Dim TextHTML = ""
Select Case RechnungsLandKz
Case "TR"
txtSubject.Text = If(BelegartenNr = 71, "Kredi Nr. ", "Fatura Nr. ") & txtRgNr
TextHTML = "Sayin Bayanlar ve Baylar," & vbNewLine & vbNewLine & "ekte baslikta yazan faturayi bulabilirsinz."
TextHTML &= TextHTMLADD
TextHTML &= "" & vbNewLine & vbNewLine & vbNewLine & "Saygilarimizla" & vbNewLine & vbNewLine & ""
Case "A", "AT", "D", "DE", "CH"
txtSubject.Text = If(BelegartenNr = 71, "Gutschrift Nr. ", "Rechnung Nr. ") & txtRgNr
TextHTML = "Sehr geehrte Damen und Herren" & vbNewLine & vbNewLine & "im Anhang senden wir Ihnen die o.g. " & If(BelegartenNr = 71, "Gutschrift(en).", "Rechnung(en).")
TextHTML &= TextHTMLADD
TextHTML &= "" & vbNewLine & vbNewLine & vbNewLine & "Mit freundlichen Grüßen" & vbNewLine & vbNewLine & ""
Case Else
txtSubject.Text = If(BelegartenNr = 71, "Credit No. ", "Invoice No. ") & txtRgNr
TextHTML = "Dear Sir or Madam," & vbNewLine & vbNewLine & "attached we send you the invoice mentioned above."
TextHTML &= TextHTMLADD
TextHTML &= "" & vbNewLine & vbNewLine & vbNewLine & "Best regards" & vbNewLine & vbNewLine & ""
End Select
RichTextBox.Text = TextHTML
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
Dim abfNr = ""
Dim additionalLine = ""
If SR Then
Try
If RechnungsNr > 1 OrElse vbYes = MsgBox("Möchten Sie das PDF als Mail-Anhang erstellen?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnung gilt somit als gedruckt und kann nicht mehr bearbeitet werden.", vbYesNoCancel) Then
If FakturierungsGruppe <> "" Then
additionalLine = "Abrechnungsstelle: " & FakturierungsGruppe.Replace("WAI", "Waidhaus")
End If
VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.clearTMPPath("Zusammenfassung")
Dim listPDFs As New List(Of String)
Dim SonstAnlagen As New List(Of String)
Dim lastAktuelle_RgNr As Integer = -1
'Rechnung erstellen:
'-----------------------------------------------------------------
Dim RechnungsNrisSet As Boolean = False
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
If RechnungsNr <= 0 Then
RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(Firma_ID, SammelrechungArt, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, KdNr, 4, listPDFs, SB, lastAktuelle_RgNr, DruckDatumZeit, AvisoIds, cbxExcelEvolog.Checked, SonstAnlagen,, cbxTransFerry.Checked, FakturierungsGruppe, Abfertigungsart)
RechnungsNr = lastAktuelle_RgNr
Else
Dim path = ""
cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RechnungsNr, -1, -1, DruckDatumZeit, "", False, , 4, path, True,, cbxExcelEvolog.Checked, SonstAnlagen,, cbxTransFerry.Checked)
lastAktuelle_RgNr = RechnungsNr
listPDFs.Add(path)
End If
If Not RechnungsNrisSet Then 'Abbruch bei fehlender RE-Nr
Exit Sub
End If
If cbxRgKopieDrucken.Checked Then
'KOPIE DRUCK
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Dim RK_ID = sql.getValueTxtBySql("SELECT TOP 1 RK_ID FROM Rechnungsausgang WHERE RechnungsNr='" & RechnungsNr & "' AND Firma_ID='" & Firma_ID & "' ORDER BY DruckDatumZeit DESC", "FMZOLL")
Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID)
If RG_TMP IsNot Nothing Then
cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, cboPrinter.Text, False, , 3,, True)
End If
End If
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = txtSubject.Text
If Firma_ID = 24 Then Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
'Mail-Adressen eintragen
'-----------------------------------------------------------------
For Each r In dgvEmail.Rows
If r.cells(0).value <> "" Then Mail.To &= r.cells(0).value & ";"
Next
For Each r In dgvEmailCC.Rows
If r.cells(0).value <> "" Then Mail.CC &= r.cells(0).value & ";"
Next
For Each r In dgvEmailBCC.Rows
If r.cells(0).value <> "" Then Mail.BCC &= r.cells(0).value & ";"
Next
RichTextBox.Text = RichTextBox.Text.Replace("%RgNr%", lastAktuelle_RgNr)
txtSubject.Text = txtSubject.Text.Replace("%RgNr%", lastAktuelle_RgNr)
Dim TextHTML = "<div style=""font-family:Calibri, Arial"">" & RichTextBox.Text.Replace(ControlChars.Lf, "<br>") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine,, IIf(Firma_ID = "24", True, False)) & "</div>"
Mail.HTMLBody = TextHTML
Mail.Subject = txtSubject.Text
ATTACHMENTS.Clear()
'-----------------------------------------------------------------
'Rechnungen anfügen
'-----------------------------------------------------------------
For Each l In listPDFs
' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
Next
For Each l In SonstAnlagen
' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
Next
addAttachments(Mail, lastAktuelle_RgNr, cbxMergeRg.Checked)
'-----------------------------------------------------------------
'Steuerbescheid/VDB anfügen
'-----------------------------------------------------------------
getAnhaenge()
'For Each l In listPDFs
' ' Mail.Attachments.Add(l, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
' ATTACHMENTS.Add(New cFakt_MailATTach(l, ""))
'Next
'Rechnungsanhänge anfügen
'-----------------------------------------------------------------
If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
For Each r In SR_DT.Rows
Dim RG_ANH = VERAG_PROG_ALLGEMEIN.cRechnungsausgang.LOAD_ANHAENGE_LIST(r("RK_ID"))
If RG_ANH IsNot Nothing Then
For Each ANH In RG_ANH
ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
Next
End If
Next
End If
'-----------------------------------------------------------------
addAttachments(Mail, lastAktuelle_RgNr, cbxMergePDF.Checked)
Mail.Display()
'------------------------------------------------------------------------------------------
' STB /FA SR: ABFRAGE FISKAL-VZ
If isFiskal Then
send_StbFAMail(AD.AdressenNr, " Rg-Nr.: " & lastAktuelle_RgNr, lastAktuelle_RgNr)
End If
'------------------------------------------------------------------------------------------
End If
Catch ex As Exception
MsgBox("Fehler beim Öffnen des Mail-Programmes." & ex.Message & ex.StackTrace)
'Process.Start(a)
End Try
Else 'ER
If RECHNUNG.FakturierungsGruppe <> "" Then
additionalLine = "Abrechnungsstelle: " & RECHNUNG.FakturierungsGruppe.Replace("WAI", "Waidhaus")
End If
If RECHNUNG.Status <> 0 OrElse vbYes = MsgBox("Möchten Sie das PDF als Mail-Anhang erstellen?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnung gilt somit als gedruckt und kann nicht mehr bearbeitet werden.", vbYesNoCancel) Then
abfNr = " Pos-Nr.: " & RECHNUNG.FilialenNr & "-" & RECHNUNG.AbfertigungsNr & "-" & RECHNUNG.SpeditionsbuchUnterNr
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
If Firma_ID = 24 Then Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
'Mail-Adressen eintragen
'-----------------------------------------------------------------
For Each r In dgvEmail.Rows
If r.cells(0).value <> "" Then Mail.To &= r.cells(0).value & ";"
Next
For Each r In dgvEmailCC.Rows
If r.cells(0).value <> "" Then Mail.CC &= r.cells(0).value & ";"
Next
For Each r In dgvEmailBCC.Rows
If r.cells(0).value <> "" Then Mail.BCC &= r.cells(0).value & ";"
Next
'Rechnung erstellen:
'-----------------------------------------------------------------
Dim pathRG = ""
If Not cFakturierung.doRechnungsDruck(RECHNUNG, Rechnungsdatum,, 4, pathRG,, cbxOriginalPrint.Checked) Then
Exit Sub
End If
'If Not RECHNUNG.checkRechnungsNrIsSet() Then
' MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen")
' Exit Sub
'End If
RechnungsNr = RECHNUNG.RechnungsNr
If cbxRgKopieDrucken.Checked Then
'KOPIE DRUCK
cFakturierung.doRechnungsDruck(RECHNUNG,,, 1, "", cboPrinter.Text, False)
End If
If pathRG <> "" Then ATTACHMENTS.Add(New cFakt_MailATTach(pathRG, If(RECHNUNG.BelegartenKz = "AR", "Rechnung.pdf", "Gutschrift.pdf")))
RichTextBox.Text = RichTextBox.Text.Replace("%RgNr%", RechnungsNr)
txtSubject.Text = txtSubject.Text.Replace("%RgNr%", RechnungsNr) & abfNr
Dim TextHTML = "<div style=""font-family:Calibri, Arial"">" & RichTextBox.Text.Replace(ControlChars.Lf, "<br>") & cFakturierung.getSignature(RECHNUNG.RechnungsLandKz, RECHNUNG.Firma_ID,,,, additionalLine) & "</div>"
Mail.HTMLBody = TextHTML
Mail.Subject = txtSubject.Text
' Mail.HTMLBody = Mail.HTMLBody.Replace("%RgNr%", RECHNUNG.RechnungsNr)
' Mail.Subject = Mail.Subject.Replace("%RgNr%", RECHNUNG.RechnungsNr & abfNr)
'-----------------------------------------------------------------
'Steuerbescheid/VDB anfügen
'-----------------------------------------------------------------
getAnhaengeSingle()
'-----------------------------------------------------------------
'Rechnungsanhänge anfügen
'-----------------------------------------------------------------
RECHNUNG.LOAD_ANHAENGE()
For Each ANH In RECHNUNG.ANHAENGE
ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId), ANH.Bezeichnung))
Next
'-----------------------------------------------------------------
'Anhang an Mail anfügen
'-----------------------------------------------------------------
addAttachments(Mail, RECHNUNG.RechnungsNr, cbxMergePDF.Checked)
'-----------------------------------------------------------------
Mail.Display()
'------------------------------------------------------------------------------------------
' STB /FA
send_StbFAMail(RECHNUNG.RechnungsKundenNr, " Rg-Nr.: " & RechnungsNr & abfNr, RECHNUNG.RechnungsNr)
'------------------------------------------------------------------------------------------
Catch ex As Exception
MsgBox("Fehler beim Öffnen des Mail-Programmes." & ex.Message & ex.StackTrace)
'Process.Start(a)
End Try
End If
End If
ATTACHMENTS.Clear()
End Sub
Function addRgData_ZF_Passau(RechnungsLandKz) As String
addRgData_ZF_Passau = vbNewLine & vbNewLine
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Select Case RechnungsLandKz
Case "TR"
addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle) Then
addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case "A", "AT", "D", "DE", "CH"
addRgData_ZF_Passau &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle) Then
addRgData_ZF_Passau &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_ZF_Passau &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case Else
addRgData_ZF_Passau &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle) Then
addRgData_ZF_Passau &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_ZF_Passau &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
End Select
' addRgData_ZF_Passau = RichTextBox.Text.Replace("Mit freundlichen Grüßen", "")
End Function
Function addRgData_Parsan(RechnungsLandKz) As String
addRgData_Parsan = vbNewLine & vbNewLine
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Select Case RechnungsLandKz
Case "TR"
' addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle) Then
addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case "A", "AT", "D", "DE", "CH"
' addRgData_Parsan &= "Absender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle) Then
addRgData_Parsan &= "Handelsrechnungs-Nr.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_Parsan &= "Handelsrechnungs-Betrag: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
Case Else
'addRgData_Parsan &= "Sender: " & RECHNUNG.AbsenderName_1 & ", " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine
If ZOLLANMELDUNG.getDataByBezugsnummer(RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr, SPEDBUCH.Abfertigungsart, "", SPEDBUCH.Grenzstelle) Then
addRgData_Parsan &= "Invoice-No.: " & ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) & vbNewLine
addRgData_Parsan &= "Invoice-Total: " & ZOLLANMELDUNG.Rechnungspreis & vbNewLine
End If
End Select
End Function
Sub send_StbFAMail(KundenNr, RgAbfNr, RechnungsNr)
Try
Dim additionalLine = ""
If RECHNUNG.FakturierungsGruppe IsNot Nothing AndAlso RECHNUNG.FakturierungsGruppe <> "" Then
additionalLine = "Abrechnungsstelle: " & RECHNUNG.FakturierungsGruppe.Replace("WAI", "Waidhaus")
End If
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KundenNr)
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(KundenNr)
If cbxSteuerberaterEmail.Checked Or cbxFAEmail.Checked Then
Dim outl As New Outlook.Application
Dim Mail_StbFA As Microsoft.Office.Interop.Outlook.MailItem
Mail_StbFA = outl.CreateItem(0)
Mail_StbFA.Subject = txtSubject.Text
If Firma_ID = 24 Then Mail_StbFA.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR",, True)
Dim TextHTML = "<div style=""font-family:Calibri, Arial"">"
Select Case cboFaStb_Sprache._value
Case "DE"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>UID-Nr.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Firma:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Sehr geehrte Damen & Herren!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "Wir teilen Ihnen mit, dass wir für oben genanntes Unternehmen eine Zollabfertigung mit anschließender" & "<br>"
TextHTML &= "innergemeinschaftlicher Lieferung (Verfahren 4200) lt. beiliegenden Unterlagen durchgeführt haben." & "<br>"
TextHTML &= "<br>"
TextHTML &= "Dies muss dem Finanzamt als ""innergemeinschaftlicher Erwerb"" gemeldet werden." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Freundliche Grüße"
TextHTML &= "<br><br>"
Case "EN"
TextHTML &= "<b><table style=""font-family:Calibri, Arial;font-weight:bold"">"
TextHTML &= "<tr><td>EORI-Nr.:</td><td>" & If(KD.EORITIN, "") & "</td></tr>"
TextHTML &= "<tr><td>VAT-ID.:</td><td>" & If(AD.UstIdKz, "") & If(AD.UstIdNr, "") & "</td></tr>"
TextHTML &= "<tr><td>Company:</td><td>" & If(AD.Name_1, "") & If(AD.Name_2, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.Straße, "") & "</td></tr>"
TextHTML &= "<tr><td></td><td>" & If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "") & "</td></tr>"
TextHTML &= "</table></b>"
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Dear Sir or Madam!" & "<br>"
TextHTML &= "<br>"
TextHTML &= "We would like to inform you, that we made the customs clearance and subsequent intra-community supply of goods for the company above-mentioned (Code 4200).<br>"
TextHTML &= "The documents are attached." & "<br>"
TextHTML &= "<br>"
TextHTML &= "This intra-community acquisition has to be reported to the tax office." & "<br>"
TextHTML &= "<br><br>"
TextHTML &= "Yours faithfully,"
TextHTML &= "<br><br>"
End Select
TextHTML &= cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine)
TextHTML &= "</div>"
Mail_StbFA.HTMLBody = TextHTML
Mail_StbFA.Subject = "Meldung innergemeinschaftlicher Erwerb - " & AD.Ordnungsbegriff & RgAbfNr
If txtSteuerberaterEmail.Text <> "" Then
Mail_StbFA.To = txtSteuerberaterEmail.Text
Mail_StbFA.CC = txtFAEmail.Text
Else
Mail_StbFA.To = txtFAEmail.Text
End If
'-----------------------------------------------------------------
'Steuerbescheid anfügen
'-----------------------------------------------------------------
getAnhaenge(False)
'Anhang an Mail anfügen
'-----------------------------------------------------------------
addAttachments(Mail_StbFA, RechnungsNr, cbxMergePDF.Checked)
'-----------------------------------------------------------------
Mail_StbFA.Display()
End If
Catch ex As Exception
MsgBox("Fehler beim Öffnen des Mail-Programmes (STB FA). " & ex.Message & ex.StackTrace)
End Try
End Sub
Sub getAnhaenge(Optional vbd As Boolean = True)
ATTACHMENTS.Clear()
For Each r As DataGridViewRow In MyDatagridview1.Rows
Dim bez = r.Cells(0).Value.replace("/", "-")
If cbxStbMitt.Checked Then 'AT
If cbxStbMitt.Checked And IsNumeric(r.Cells("clmnMitt_docID").Value) Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(r.Cells("clmnMitt_docID").Value), bez & "_Abgabenbescheid.pdf"))
If cbxStb.Checked And IsNumeric(r.Cells("clmnStb_docID").Value) Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(r.Cells("clmnStb_docID").Value), bez & "_Verzollungsnachweis.pdf"))
Else 'DE
If cbxStb.Checked And IsNumeric(r.Cells("clmnStb_docID").Value) Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(r.Cells("clmnStb_docID").Value), bez & "_Steuerbescheid.pdf"))
End If
If vbd Then
If cbxVBD.Checked And IsNumeric(r.Cells("clmnVBD_docID").Value) Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(r.Cells("clmnVBD_docID").Value), bez & "_Versandschein.pdf"))
End If
Next
End Sub
Sub getAnhaengeSingle()
If cbxStbMitt.Checked Then 'AT
If cbxStbMitt.Checked Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Mitteilung), "Abgabenbescheid.pdf"))
If cbxStb.Checked Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Verzollungsnachweis.pdf"))
Else 'DE
If cbxStb.Checked Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_Steuerbeleg), "Steuerbescheid.pdf"))
End If
If cbxVBD.Checked Then ATTACHMENTS.Add(New cFakt_MailATTach(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBUCH.DokumentId_VBD), "Versandschein.pdf"))
End Sub
Sub addAttachments(ByRef Mail As Microsoft.Office.Interop.Outlook.MailItem, RgNr As Integer, MergePDF As Boolean)
If ATTACHMENTS.Count = 0 Then Exit Sub
Try
If MergePDF And ATTACHMENTS.Count > 1 Then
Dim extension = ".pdf"
Dim zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Rechnungs_Anhänge_" & RgNr & extension, extension,, False, "Zusammenfassung")
Dim myList As New List(Of String)
For Each a In ATTACHMENTS : myList.Add(a.Pfad) : Next
If FormularManagerNEU.MergePdfFiles(myList, zielPfadZusammenfassung) Then
ATTACHMENTS.Clear() : ATTACHMENTS.Add(New cFakt_MailATTach(zielPfadZusammenfassung, "")) ' überscheiben
End If
End If
'Anhang an Mail anfügen
'-----------------------------------------------------------------
For Each a In ATTACHMENTS
Mail.Attachments.Add(a.Pfad, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , a.MailName)
Next
'-----------------------------------------------------------------
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
setMailText("DE")
' cboFaStb_Sprache.changeItem("DE")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
setMailText("TR")
' cboFaStb_Sprache.changeItem("EN")
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
setMailText("EN")
' cboFaStb_Sprache.changeItem("EN")
End Sub
Private Sub lkl_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lkl.LinkClicked
dgvEmail.Rows.Add(lkl.Tag)
End Sub
Private Sub dgvEmail_SelectionChanged(sender As Object, e As EventArgs) Handles dgvEmail.Leave, dgvEmailCC.Leave, dgvEmailBCC.Leave
sender.ClearSelection()
End Sub
Dim isFiskal = False
Sub initList()
MyDatagridview1.Rows.Clear()
If SR_DT Is Nothing Then Exit Sub
If SR_DT.Rows.Count = 0 Then Exit Sub
For Each r In SR_DT.Rows
Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(r("FilialenNr"), r("AbfertigungsNr"), r("SpeditionsbuchUnterNr"))
initRowSpedbuch(SPEDBUCH)
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.Abfertigungsart IsNot Nothing AndAlso IsNumeric(SPEDBUCH.Abfertigungsart) AndAlso (SPEDBUCH.Abfertigungsart = 26 Or SPEDBUCH.Abfertigungsart = 28) AndAlso (SPEDBUCH.FilialenNr = 4805 Or SPEDBUCH.FilialenNr = 4811) Then
isFiskal = True
End If
Next
End Sub
Sub initRowSpedbuch(SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch)
MyDatagridview1.Rows.Add(SPEDBUCH.FilialenNr & "-" & SPEDBUCH.AbfertigungsNr & "-" & SPEDBUCH.UnterNr, If(SPEDBUCH.DokumentId_Steuerbeleg, ""), If(SPEDBUCH.DokumentId_Mitteilung, ""), If(SPEDBUCH.DokumentId_VBD, ""), (SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing AndAlso IsNumeric(SPEDBUCH.DokumentId_Steuerbeleg)), (SPEDBUCH.DokumentId_Mitteilung IsNot Nothing AndAlso IsNumeric(SPEDBUCH.DokumentId_Mitteilung)), (SPEDBUCH.DokumentId_VBD IsNot Nothing AndAlso IsNumeric(SPEDBUCH.DokumentId_VBD)))
End Sub
Private Sub lblKunde_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lblKunde.LinkClicked
FUNC.showKd(KdNr)
End Sub
Private Sub MyDatagridview1_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles MyDatagridview1.CellContentDoubleClick
Dim docID = ""
Select Case MyDatagridview1.Columns(e.ColumnIndex).Name
Case "clmnStb" : If MyDatagridview1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value Then docID = MyDatagridview1.Rows(e.RowIndex).Cells("clmnStb_docID").Value
Case "mnMitt" : If MyDatagridview1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value Then docID = MyDatagridview1.Rows(e.RowIndex).Cells("clmnMitt_docID").Value
Case "clmnVBD" : If MyDatagridview1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value Then docID = MyDatagridview1.Rows(e.RowIndex).Cells("clmnVBD_docID").Value
End Select
If docID <> "" Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(docID)
DS.OPEN_SINGLE()
End If
End Sub
Private Sub cbxSteuerberaterEmail_CheckedChanged(sender As Object, e As EventArgs) Handles cbxSteuerberaterEmail.CheckedChanged
txtSteuerberaterEmail.Enabled = sender.checked
End Sub
Private Sub cbxFAEmail_CheckedChanged(sender As Object, e As EventArgs) Handles cbxFAEmail.CheckedChanged
txtFAEmail.Enabled = sender.checked
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If KdNr <= 0 Then Exit Sub
Dim FISKAL As New cFiskal_Daten(KdNr)
FISKAL.fisk_schreibenSB_Mail = txtSteuerberaterEmail.Text
FISKAL.fisk_schreibenFA_Mail = txtFAEmail.Text
FISKAL.SAVE()
End Sub
Private Sub dgvAnhaenge_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAnhaenge.CellDoubleClick
Try
If dgvAnhaenge.SelectedRows.Count > 0 Then ' If e.RowIndex > 0 Then
dgvAnhaenge.Rows(e.RowIndex).Selected = True
Process.Start(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(dgvAnhaenge.SelectedRows(0).Cells("clmnDsId").Value))
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Sub initDGVAnhaenge()
With dgvAnhaenge
.Rows.Clear()
.Enabled = True
If SR Then
.Enabled = False
Exit Sub
End If
RECHNUNG.LOAD_ANHAENGE()
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ANHAENGE IsNot Nothing Then
'-----------------------------
'ANHÄNGE LADEN:
'-----------------------------
For Each RG_AH In RECHNUNG.ANHAENGE
.Rows.Add(0, "", RG_AH.Bezeichnung, RG_AH.dsId, RG_AH.anhId)
Next
'-----------------------------
End If
End With
dgvAnhaenge.ClearSelection()
End Sub
End Class
Public Class cFakt_MailATTach
Property Pfad
Property MailName
Sub New(pfad, MailName)
Me.Pfad = pfad
Me.MailName = MailName
End Sub
End Class
Public Class cFakt_SR_List
Dim RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
Sub New(RECHNUNG, SPEDBUCH)
Me.RECHNUNG = RECHNUNG
Me.SPEDBUCH = SPEDBUCH
End Sub
End Class