Prüfung bei Rechnungsdruck ob ReNr in DB gespeichert wurde, ansonsten abbruch!

This commit is contained in:
2023-10-05 16:48:04 +02:00
parent 72ccef340a
commit a216266584
4 changed files with 116 additions and 79 deletions

View File

@@ -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

View File

@@ -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 = "<div style=""font-family:Calibri, Arial"">" & RichTextBox.Text.Replace(ControlChars.Lf, "<br>") & cFakturierung.getSignature(AD.LandKz, Firma_ID,,,, additionalLine) & "</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
'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) & "</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
'-----------------------------------------------------------------
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

View File

@@ -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

View File

@@ -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...