diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb
index 86dfaca6..e3f7af9c 100644
--- a/SDL/Fakturierung/cFakturierung.vb
+++ b/SDL/Fakturierung/cFakturierung.vb
@@ -1315,7 +1315,7 @@ Public Class cFakturierung
Return False
End If
Else
- MsgBox("Fehler: Kein Rechnugsempfänger gefunden!")
+ MsgBox("Fehler: Kein Rechnungsempfänger gefunden!")
Return False
End If
Else
@@ -1325,6 +1325,10 @@ Public Class cFakturierung
End If
End If
+ If Not RECHNUNG.checkRechnungsNrIsSet() Then
+ MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen")
+ Return False
+ End If
'Rechnugnsdruck = Individuell für deise Rechnung, wird optional mitgegeben
' Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Rechnung_" & If(RECHNUNG.RechnungsNr, "") & ".pdf"
@@ -1450,7 +1454,7 @@ Public Class cFakturierung
End If
Catch ex As Exception
- MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!")
+ MsgBox("Fehler beim Öffnen des Mail-Programmes. PDF wird geladen!")
Process.Start(tmpPath)
End Try
rpt.Dispose()
@@ -2065,7 +2069,14 @@ Public Class cFakturierung
End If
RG.SAVE()
- found = True
+
+ If Not RG.checkRechnungsNrIsSet() Then
+ MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen")
+ Return False
+ Else
+ found = True
+ End If
+
End If
Next
@@ -2076,6 +2087,7 @@ Public Class cFakturierung
If path <> "" Then listPDFs.Add(path)
End If
lastAktuelle_RgNr = Aktuelle_RgNr
+
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb
index 4a754416..7623a1fc 100644
--- a/SDL/Fakturierung/frmFaktEmail.vb
+++ b/SDL/Fakturierung/frmFaktEmail.vb
@@ -275,9 +275,10 @@ Public Class frmFaktEmail
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
- cFakturierung.doSAMMELRechnungsDruck(Firma_ID, SammelrechungArt, DatumBis, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, KdNr, 4, listPDFs, SB, lastAktuelle_RgNr, DruckDatumZeit, AvisoIds, cbxExcelEvolog.Checked, SonstAnlagen,, cbxTransFerry.Checked, FakturierungsGruppe, Abfertigungsart)
+ 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 = ""
@@ -287,6 +288,9 @@ Public Class frmFaktEmail
listPDFs.Add(path)
End If
+ If Not RechnungsNrisSet Then 'Abbruch bei fehlender RE-Nr
+ Exit Sub
+ End If
If cbxRgKopieDrucken.Checked Then
'KOPIE DRUCK
@@ -299,83 +303,83 @@ Public Class frmFaktEmail
End If
Dim outl As New Outlook.Application
- Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
- Mail = outl.CreateItem(0)
- Mail.Subject = txtSubject.Text
+ Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
+ Mail = outl.CreateItem(0)
+ Mail.Subject = txtSubject.Text
- '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 = "
" & RichTextBox.Text.Replace(ControlChars.Lf, "
") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine) & "
"
-
- 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
+ '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 = "" & RichTextBox.Text.Replace(ControlChars.Lf, "
") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine) & "
"
+
+ 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
- '-----------------------------------------------------------------
-
-
- 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)
@@ -390,6 +394,8 @@ Public Class frmFaktEmail
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
@@ -414,6 +420,12 @@ Public Class frmFaktEmail
If Not cFakturierung.doRechnungsDruck(RECHNUNG,,, 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
diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
index f43fe9df..cddba5e7 100644
--- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
+++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb
@@ -254,10 +254,16 @@ Public Class frmFaktSammelRgDrucken
Me.Cursor = Cursors.WaitCursor
Dim listPDFs As New List(Of String)
Dim SonstAnlagen As New List(Of String)
- cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, If(ausgabeArt = 1, -1, 4), listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, vorschau, cbxTransFerry.Checked, cboFaktGrp._value, cboAbfertigungsart._value)
+ Dim RechnungsNrisSet As Boolean = False
+ RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(cboFirma._value, Sammelrechung, CDate(txtZeitraumBis.Text), CDate(txtRechnungsdatum.Text), cboPrinter.Text, cbxEinzelAnlagen.Checked, cbxSammelbericht.Checked, getSelectionKdNr, If(ausgabeArt = 1, -1, 4), listPDFs, cboSB._value,,, getAvisoIds, cbxEVOLOG.Checked, SonstAnlagen, vorschau, cbxTransFerry.Checked, cboFaktGrp._value, cboAbfertigungsart._value)
'-------------- für PDF-Sammel-Rechnung --------------
+ If Not RechnungsNrisSet Then
+ MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen")
+ Exit Sub
+ End If
+
If cbxZusammenfassen.Checked Then ' Gibt an, ob mehrere Sammelrechnung zusammengefasst werden sollten
Select Case ausgabeArt
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
index 72a07916..adb7b535 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
@@ -148,6 +148,13 @@ Public Class cRechnungsausgang
Return cnt > 0
End Function
+ Public Function checkRechnungsNrIsSet() As Boolean
+ 'Prüfugn ob Eintrag mit dieser Rechnungsnr in DB existiert
+ If Me.RechnungsNr <= 0 Then Return False
+ Dim cnt = SQL.getValueTxtBySql("SELECT COUNT(*) FROM [Rechnungsausgang] WHERE RechnungsNr='" & Me.RechnungsNr & "' and DruckDatumZeit is not null and Buchungsjahr = " & Me.Buchungsjahr & " and Firma_ID = '" & Me.Firma_ID & "'", "FMZOLL")
+ Return cnt > 0
+ End Function
+
Public Shared Function getMaxRGUnterNr(FilialenNr As Integer, AbfertigungsNr As Integer, SpeditionsbuchUnterNr As Integer) As Integer
' Dim Nr = SQL.getValueTxtBySql("Select isnull([UnterNr], -1) + 1 FROM [Rechnungsausgang] where [FilialenNr]='" & FilialenNr & "' And AbfertigungsNr='" & AbfertigungsNr & "' And SpeditionsbuchUnterNr='" & SpeditionsbuchUnterNr & "' ORDER BY [UnterNr] desc", "FMZOLL")
Dim Nr = SQL.getValueTxtBySql("Select TOP 1 isnull([UnterNr], -1) + 1 FROM [Rechnungsausgang] where [FilialenNr]='" & FilialenNr & "' And AbfertigungsNr='" & AbfertigungsNr & "' ORDER BY [UnterNr] desc", "FMZOLL")
@@ -485,7 +492,7 @@ Public Class cRechnungsausgang
End If
Return True
- End Function
+ End Function
Public Function SAVE_POSITIONEN(RK_ID) As Boolean
If DELETE_POSITIONEN() Then ' zuerst Einträge löschen...