diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb
index 4a69234c..767c9e86 100644
--- a/SDL/Fakturierung/cAutomailversand.vb
+++ b/SDL/Fakturierung/cAutomailversand.vb
@@ -1414,7 +1414,7 @@ Public Class cAutomailversand
End Function
- Private Function setAccountToSend(FIRMA_ID As Integer) As String
+ Public Function setAccountToSend(FIRMA_ID As Integer) As String
Dim tmpFirma = New VERAG_PROG_ALLGEMEIN.cFirmen(FIRMA_ID)
diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb
index d5592d46..63659f44 100644
--- a/SDL/Fakturierung/cFakturierung.vb
+++ b/SDL/Fakturierung/cFakturierung.vb
@@ -4466,16 +4466,18 @@ Public Class cFakturierung
End Function
- Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsanhangPDF As Boolean = False, Optional RechnugnskopieMDMSammelrechnung As Boolean = False, Optional AnhList As List(Of String) = Nothing, Optional RechnungsanhangCSV As Boolean = False, Optional onlyAsfinagAnhang As Boolean = False, Optional saveInTherefore As Boolean = True) As Boolean
+ Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsanhangPDF As Boolean = False, Optional RechnugnskopieMDMSammelrechnung As Boolean = False, Optional AnhList As List(Of String) = Nothing, Optional RechnungsanhangCSV As Boolean = False, Optional onlyAsfinagAnhang As Boolean = False, Optional saveInTherefore As Boolean = True, Optional dt_temp As DataTable = Nothing) As Boolean
'SB Nicht mehr benötigt, da RG-Nr und DruckdatumUhrzeit
Dim dt As DataTable
If SRDruckWiederholen Then
dt = getSAMMELRechnung_Dt(RechnungsNr, DruckdatumUhrzeit, "3,4,5", ) ' 3,4,5-_> irgendebbs
+ dt_temp = dt
Else
'Dim RG_NR = New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(Firma_ID, Buchungsjahr)
'RG_NR.INCREASE_RGNR() 'für die nächste Rechnung
dt = getSAMMELRechnung_Dt(RechnungsNr, DruckdatumUhrzeit, IIf(RechnungsdruckArt = 7, "2", "2, 3, 4"), [VorschauID])
+ dt_temp = dt
End If
' 3-_> Anlagen gedruckt
diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb
index d8cd4f83..e15174be 100644
--- a/SDL/Fakturierung/frmAbrechnungsMaske.vb
+++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb
@@ -1,6 +1,8 @@
Imports System.IO
Imports GrapeCity.ActiveReports.PageReportModel
+Imports iText.IO.Util
Imports Microsoft.Office.Interop
+Imports sun.net.www.protocol
Imports VERAG_PROG_ALLGEMEIN
Public Class frmAbrechnungsMaske
@@ -62,13 +64,13 @@ Public Class frmAbrechnungsMaske
txtRechnungsdatumAutomail.Visible = setDefaultAutoMailversand
- dtp_RD_automail.Visible = setDefaultAutoMailversand
- lblRechnungsdatumAUTOMAIL.Visible = setDefaultAutoMailversand
+ dtp_RD_automail.Visible = setDefaultAutoMailversand
+ lblRechnungsdatumAUTOMAIL.Visible = setDefaultAutoMailversand
- 'FirmaTmp = "AMBAR"
+ 'FirmaTmp = "AMBAR"
- cboSachbearbeiter.Items.Clear()
+ cboSachbearbeiter.Items.Clear()
Select Case FirmaTmp
@@ -918,15 +920,17 @@ Public Class frmAbrechnungsMaske
If IsNumeric(RK_ID) Then
Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID)
Dim sammelrechnungskopieMDM As Boolean = False
- Dim sammelrechnungMDMmitAnhang As Boolean = False
+ Dim sammelrechnungmitAnhang As Boolean = False
If RG_TMP IsNot Nothing Then
- 'id mitübergeben (1_> drucken, 2 Email, 3 PDF)
+
+ Dim tempPDF As String = ""
+ Dim listOfCSV As New List(Of String)
+
If RG_TMP.Sammelrechnung = 6 Then
If RG_TMP.Status = 4 Then sammelrechnungskopieMDM = True
- Dim tempPDF As String = ""
- Dim listOfCSV As New List(Of String)
- sammelrechnungMDMmitAnhang = MsgBox("Soll die MDM Sammelrechnung mit Anhang angezeigt werden?", vbYesNoCancel)
- cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, 8, tempPDF, True,,,,,,,,, sammelrechnungMDMmitAnhang, sammelrechnungskopieMDM, listOfCSV, True)
+
+ sammelrechnungmitAnhang = MsgBox("Soll die MDM Sammelrechnung mit Anhang angezeigt werden?", vbYesNo)
+ cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, 8, tempPDF, True,,,,,,,,, sammelrechnungmitAnhang, sammelrechnungskopieMDM, listOfCSV, True)
Select Case id
Case 1
@@ -957,16 +961,246 @@ Public Class frmAbrechnungsMaske
Else
- cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, id,, True,,,,,,,,,)
+
+ 'sammelrechnungmitAnhang = MsgBox("Soll die Sammelrechnung mit Anhang angezeigt werden?", vbYesNo)
+
+
+ Select Case id
+ Case 1
+ cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, 3, tempPDF, True,,,,,,,, True, sammelrechnungmitAnhang,,)
+ Case 2
+ Try
+ Dim dt_temp As New DataTable
+ cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, 4, tempPDF, True,,,,,,,, True, sammelrechnungmitAnhang,, listOfCSV,,,, dt_temp)
+
+
+ Dim AD = New VERAG_PROG_ALLGEMEIN.cAdressen(RG_TMP.RechnungsKundenNr)
+
+ Dim outl As New Outlook.Application
+ Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
+ Mail = outl.CreateItem(0)
+ Dim auto As New cAutomailversand
+ Dim oAccount As Outlook.Account
+ Dim accountToSent = ""
+
+ accountToSent = auto.setAccountToSend(RG_TMP.Firma_ID)
+
+ If accountToSent <> "" Then
+ If outl.Session.Accounts.Count > 0 Then
+ For Each oAccount In outl.Session.Accounts
+ If oAccount.SmtpAddress.ToLower = accountToSent.ToLower Then
+ Mail.SendUsingAccount = oAccount
+ Exit For
+ End If
+ Next
+ End If
+ End If
+
+ setEmailText(RG_TMP.RechnungsLandKz, RG_TMP.Firma_ID, RG_TMP.RechnungsNr, Mail.Subject, Mail.HTMLBody, RG_TMP.Sammelrechnung, RG_TMP.BelegartenNr)
+ setandcheckEmpfaengerMail_SR(dt_temp, AD, Mail.To, Mail.CC, Mail.BCC, RG_TMP.Firma_ID, RG_TMP.Sammelrechnung)
+ Dim anhangbezeichnung = getAnhangbezeichnung(AD.LandKz, RG_TMP, RG_TMP.BelegartenNr)
+ Mail.Attachments.Add(tempPDF, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , RG_TMP.RechnungsNr & "_" & anhangbezeichnung)
+ If listOfCSV.Count > 0 Then
+ For Each r In listOfCSV
+ Dim file As New FileInfo(r)
+ Mail.Attachments.Add(r, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , file.Name)
+ Next
+ End If
+ Mail.Display()
+
+ Catch ex As Exception
+ MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!")
+ Process.Start(tempPDF)
+ End Try
+
+ Case 3 'PDF + öffnen
+ cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, True, 4, tempPDF, True,,,,,,,, True, sammelrechnungmitAnhang,,)
+ Process.Start(tempPDF)
+
+ End Select
+
+
+
+
+
End If
End If
+ Else
+
+ MsgBox("Bei " & cboFirma.SelectedItem.Text & " existiert keine Sammelrechnung mit der Nr: " & SR_RechnungsNr & "")
+
End If
+
+
+
End If
End Sub
+
+
+
+ Private Sub setEmailText(RechnungsLandKz As String, Firma_ID As Integer, RechnungsNr As Integer, ByRef Subject As String, ByRef TextHTML As String, ByRef SammelrechungArt As Integer, ByRef BelegartenNr As Integer)
+
+ Dim txtRgNr As String = IIf(RechnungsNr < 0, -1, RechnungsNr)
+ Dim Mailtext As String
+
+ Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
+ Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(4, "", Firma_ID)
+
+ Dim spracheRechnung As String = "EN" 'Defaultsprache
+
+ Dim belegtyp As String = If(BelegartenNr = 71, "credit note", "invoice")
+
+
+
+ Select Case RechnungsLandKz
+ Case "TR" : spracheRechnung = "TR" : spracheRechnung = RechnungsLandKz : belegtyp = If(BelegartenNr = 71, "Kredi", "Fatura")
+ Case "RO"
+ If Firma_ID = 19 Then
+ spracheRechnung = "RO" : spracheRechnung = RechnungsLandKz : belegtyp = If(BelegartenNr = 71, "nota de credit", "factura")
+ End If
+
+ Case "DE", "A", "AT", "D", "CH" : spracheRechnung = "DE" : belegtyp = If(BelegartenNr = 71, "Gutschrift", "Rechnung")
+
+ Case "SRB", "HR", "SLO", "BIH", "MNE", "MK", "MO"
+ If Firma_ID = 19 Then
+ spracheRechnung = "SRB" : belegtyp = If(BelegartenNr = 71, "credit note", "invoice") 'Belegarten auf Englisch!
+ End If
+
+ End Select
+
+
+
+ If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then
+
+
+ Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
+ If r IsNot Nothing Then
+ Subject = r.txt_betreff
+ Subject = Subject.Replace("%BelegNr%", txtRgNr)
+ Subject = Subject.Replace("%Belegtyp%", belegtyp)
+ TextHTML &= r.txt_text
+ If Mailtext <> "" Then TextHTML &= Mailtext
+ TextHTML &= vbNewLine & vbNewLine
+
+ TextHTML = TextHTML.Replace("%Belegtyp%", belegtyp)
+
+
+
+ End If
+ End If
+
+ TextHTML &= "
"
+ TextHTML &= "
"
+
+ Select Case RechnungsLandKz
+ Case "TR"
+ TextHTML &= "Saygilarimizla
"
+ Case "A", "AT", "D", "DE", "CH"
+ TextHTML &= "Mit freundlichen Grüßen
"
+ Case Else
+ TextHTML &= "Best regards
"
+ End Select
+
+
+
+ TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
"
+ TextHTML &= cFakturierung.getSignature(RechnungsLandKz, Firma_ID, True, True,,,,,, True)
+
+
+
+
+
+ End Sub
+
+ Private Function getAnhangbezeichnung(sprache As String, RECHNUNG As cRechnungsausgang, BelegartenNr As Integer, Optional onlyBelegsuebersetzung As Boolean = False)
+
+ Dim Anhangsbez = ""
+ If RECHNUNG IsNot Nothing Then
+
+ Select Case sprache
+ Case "A", "AT", "D", "DE", "CH"
+
+ If BelegartenNr = 71 Then
+ If onlyBelegsuebersetzung Then
+ Anhangsbez = "Gutschrift.pdf"
+ Else
+ Anhangsbez = "Gutschriftsanhaenge.pdf"
+ End If
+ Else
+ If onlyBelegsuebersetzung Then
+ Anhangsbez = "Rechnung.pdf"
+ Else
+ Anhangsbez = "Rechnungsanhaenge.pdf"
+ End If
+ End If
+
+ Case "TR" : If BelegartenNr = 71 Then Anhangsbez = "Kredi.pdf" Else Anhangsbez = "Fatura.pdf"
+ Case Else : If BelegartenNr = 71 Then Anhangsbez = "Creditnote.pdf" Else Anhangsbez = "Invoice.pdf"
+ End Select
+
+ Else
+
+
+ Select Case sprache
+ Case "A", "AT", "D", "DE", "CH" : If BelegartenNr = 71 Then Anhangsbez = "Sammelgutschrift.pdf" Else Anhangsbez = "Sammelrechnung.pdf"
+ Case "TR" : If BelegartenNr = 71 Then Anhangsbez = "Toplukredi.pdf" Else Anhangsbez = "Toplufatura.pdf"
+ Case Else : If BelegartenNr = 71 Then Anhangsbez = "Collectivecreditnote.pdf" Else Anhangsbez = "Collectiveinvoice.pdf"
+ End Select
+
+ End If
+
+ Return Anhangsbez
+
+
+ End Function
+
+ Public Shared Function setandcheckEmpfaengerMail_SR(ByRef SR_DT As DataTable, ByRef AD As cAdressen, ByRef EMAILTMP As String, ByRef EMAILTMPCC As String, ByRef EMAILTMPBCC As String, ByRef FirmaID As Integer, ByRef SammelrechungArt As String) As String
+
+ If SammelrechungArt <> 6 Then
+
+
+ Dim email_receipt As String = ""
+
+ Dim allAtilla = IIf(FirmaID = 7, True, False)
+ If SR_DT IsNot Nothing AndAlso SR_DT.Rows.Count > 0 Then
+ For Each r In SR_DT.Rows
+ If "4801" <> r("FilialenNr") And "4802" <> r("FilialenNr") Then
+ allAtilla = False
+ Exit For
+ End If
+ Next
+ End If
+
+ email_receipt = IIf(allAtilla, VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)"), "")
+
+ EMAILTMP = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an"), email_receipt) 'VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an")
+ EMAILTMPCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+ EMAILTMPBCC = IIf(email_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an"), VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdressBCC(AD.AdressenNr, "Rechnung an (ATILLA)"))
+
+ Else
+
+ If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then EMAILTMP &= AD.E_Mail & ";"
+ If AD.E_Mail2 IsNot Nothing AndAlso AD.E_Mail2 <> "" Then EMAILTMP &= AD.E_Mail2 & ";"
+
+
+ End If
+
+ If EMAILTMP = "" And EMAILTMPCC = "" And EMAILTMPBCC = "" Then
+
+ If AD.E_Mail IsNot Nothing AndAlso AD.E_Mail <> "" Then EMAILTMP &= AD.E_Mail & ";"
+ If AD.E_Mail2 IsNot Nothing AndAlso AD.E_Mail2 <> "" Then EMAILTMP &= AD.E_Mail2 & ";"
+
+ End If
+
+
+ Return EMAILTMP & EMAILTMPCC
+
+ End Function
+
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim f As New frmFaktAufschubSuche(False)
f.Show(Me)
diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb
index f3d5089f..bc8046d9 100644
--- a/SDL/Fakturierung/frmFaktEmail.vb
+++ b/SDL/Fakturierung/frmFaktEmail.vb
@@ -195,7 +195,9 @@ Public Class frmFaktEmail
If RECHNUNG.FilialenNr = "4801" Or RECHNUNG.FilialenNr = "4802" Then email_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(AD.AdressenNr, "Rechnung an (ATILLA)")
End If
-
+ If Firma_ID = 24 Then
+ cbxMergeRg.Checked = False
+ End If
Dim EMAILTMP = ""
Dim EMAILTMPCC = ""
diff --git a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb
index 0a8d9ecd..53c4a512 100644
--- a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb
+++ b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb
@@ -2428,17 +2428,27 @@ Public Class DATENVERVER_OPTIONS
kdnr_path = kdnr
End If
If kategorie <> "" Then
- Dim dir = ""
- dir &= rootDir
- dir &= kategorie & "\"
- dir &= If(ordner IsNot Nothing AndAlso ordner <> "", ordner & "\", "")
- dir &= If(kdnr_path <> "", kdnr_path & "\", "")
- dir &= If(da_uOrdner1 IsNot Nothing AndAlso da_uOrdner1 <> "", da_uOrdner1 & "\", "")
- dir &= If(da_uOrdner2 IsNot Nothing AndAlso da_uOrdner2 <> "", da_uOrdner2 & "\", "")
- dir &= If(da_uOrdner3 IsNot Nothing AndAlso da_uOrdner3 <> "", da_uOrdner3 & "\", "")
+ Dim dir As String = Path.Combine(
+ rootDir,
+ kategorie,
+ If(String.IsNullOrWhiteSpace(ordner), "", ordner),
+ If(String.IsNullOrWhiteSpace(kdnr_path), "", kdnr_path),
+ If(String.IsNullOrWhiteSpace(da_uOrdner1), "", da_uOrdner1),
+ If(String.IsNullOrWhiteSpace(da_uOrdner2), "", da_uOrdner2),
+ If(String.IsNullOrWhiteSpace(da_uOrdner3), "", da_uOrdner3))
If Not onlyordner Then
If Not System.IO.Directory.Exists(dir) Then
- System.IO.Directory.CreateDirectory(dir)
+ Try
+ If Not Directory.Exists(dir) Then
+ Directory.CreateDirectory(dir)
+ End If
+
+ Catch ex As UnauthorizedAccessException
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & "Keine Berechtigung für den Ordner: " & dir & Environment.NewLine & "Windows-Benutzer: " & System.Security.Principal.WindowsIdentity.GetCurrent().Name & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
+
+ Catch ex As IOException
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler beim Zugriff auf den Ordner: " & dir & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
+ End Try
End If
Dim zusatz = "" : Dim zusatzcnt = 1
While System.IO.File.Exists(dir & dateiName & zusatz & If(bezeichnung.ToString.EndsWith(endung), "", endung))