diff --git a/SDL/buchhaltung/usrCntlBH.vb b/SDL/buchhaltung/usrCntlBH.vb index bdccd252..17e1d9a3 100644 --- a/SDL/buchhaltung/usrCntlBH.vb +++ b/SDL/buchhaltung/usrCntlBH.vb @@ -1552,10 +1552,16 @@ Public Class usrCntlBH Dim ignoreMonth As Boolean = False - If vbYes = MsgBox("Möchten Sie die fortlaufende Re-Nr für das Gesamtjahr " & txtRE_Jahr.Text & " prüfen?", vbYesNoCancel) Then ignoreMonth = True + Dim InfoText As String = "Möchten Sie die fortlaufende Re-Nr für das Gesamtjahr " & txtRE_Jahr.Text & " prüfen?" + + If Not vbYes = MsgBox(InfoText, vbYesNoCancel) Then Exit Sub Bezeichnung = "Lücken in der fortl. Belegnummerierung von " & cbxFirma_RE.SelectedItem.Text & " Zeitraum: " & IIf(Not ignoreMonth, txtRE_Monat.Text & "/" & txtRE_Jahr.Text, txtRE_Jahr.Text) + + + '----OLD------------- + SQL_RE = "WITH Nummern AS ( SELECT RechnungsNr, @@ -1573,6 +1579,41 @@ Public Class usrCntlBH AND NextRechnungsNr > RechnungsNr + 1 ORDER BY FehlendeVon;" + '----NEW------------- + + SQL_RE = "WITH Rechnungen AS + ( + SELECT + RechnungsNr, + MIN(CAST(RechnungsDatum AS date)) AS Rechnungsdatum + FROM Rechnungsausgang + WHERE Firma_ID = " & cbxFirma_RE._value & " + AND YEAR(RechnungsDatum) = " & txtRE_Jahr.Text & + " GROUP BY + RechnungsNr + ), + Nummern AS + ( + SELECT + RechnungsNr, + Rechnungsdatum, + LEAD(RechnungsNr) OVER (ORDER BY RechnungsNr) AS NextRechnungsNr, + LEAD(Rechnungsdatum) OVER (ORDER BY RechnungsNr) AS NextRechnungsdatum + FROM Rechnungen + ) + SELECT + RechnungsNr, + Rechnungsdatum, + NextRechnungsNr, + NextRechnungsdatum, + RechnungsNr + 1 AS FehlendeVon, + NextRechnungsNr - 1 AS FehlendeBis + FROM Nummern + WHERE NextRechnungsNr IS NOT NULL + AND NextRechnungsNr > RechnungsNr + 1 + ORDER BY + FehlendeVon;" + End Select Me.Cursor = Cursors.WaitCursor diff --git a/SDL/cProgramFunctions.vb b/SDL/cProgramFunctions.vb index 1ce05d53..1d7e9102 100644 --- a/SDL/cProgramFunctions.vb +++ b/SDL/cProgramFunctions.vb @@ -269,7 +269,7 @@ Public Class cProgramFunctions Try Dim abfertNr = AbfertigungsNr & "%" Dim docid As String = "" - If Filiale = 4801 Then + If Filiale = 4801 OrElse Filiale = 4802 OrElse Filiale = 4813 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat17] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON") ElseIf Filiale = 5601 Then If Not IsNumeric(docid) OrElse docid <= 0 Then docid = SQL_VERAG.getValueTxtBySql("SELECT TOP 1 isnull([DocNo],-1) FROM [Therefore].[dbo].[TheCat393] WHERE [String] LIKE '" & abfertNr & "' ORDER BY [Eingabedatum] DESC", "SCANCANON")