Abrechnungslogik Sammelrechnungen MDM
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.DirectoryServices.ActiveDirectory
|
||||
Imports System.IO
|
||||
Imports com.sun.org.apache.bcel.internal.generic
|
||||
Imports com.sun.tools.internal.ws.wsdl.framework
|
||||
Imports java.awt.geom
|
||||
Imports javax.print.attribute.standard
|
||||
Imports Microsoft.Office.Interop.Outlook
|
||||
Imports Microsoft.VisualBasic.FileIO
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
@@ -39,6 +43,7 @@ Public Class usrCntlMDMAuswertungen
|
||||
datUeberfaelligeBestVon.Value = CDate("01." & Now.AddMonths(-2).Month & "." & Now.AddMonths(-2).Year)
|
||||
datUeberfaelligeBestBis.Value = Now
|
||||
kdUeberfaelligeBest.initKdBox(Me.FindForm)
|
||||
KdSearchBox3.initKdBox(Me.FindForm)
|
||||
|
||||
|
||||
KdSearchBox1.initKdBox(Me.FindForm)
|
||||
@@ -78,7 +83,17 @@ Public Class usrCntlMDMAuswertungen
|
||||
datLeereOBUVon.Value = CDate("01." & Now.AddMonths(-2).Month & "." & Now.AddMonths(-2).Year)
|
||||
datLeereOBUbis.Value = Now
|
||||
|
||||
PathMautberichte = "C:\Users\d.breimaier\Desktop\MDM\Mautgesamtberichte"
|
||||
PathMautberichte = (New SQL).getValueTxtBySql("SELECT TOP 1 [Param_value] FROM [tblPartnersystem_Paramter] WHERE Param_system='GESAMTMAUT' AND [Param_name]='ANLAGE_PFAD' AND Param_testsystem = " & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, 1, 0), "FMZOLL")
|
||||
|
||||
Dim count = 0
|
||||
If Directory.Exists(PathMautberichte) Then
|
||||
If Directory.GetFiles(PathMautberichte) IsNot Nothing Then
|
||||
For Each f In Directory.GetFiles(PathMautberichte)
|
||||
If f.ToString.ToLower.EndsWith("_Maut.csv") Or f.ToString.ToLower.EndsWith("_Maut.pdf") Then count += 1
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
lblAnzahlMautberichte.Text = count & "x Mautberichte"
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -989,6 +1004,8 @@ Public Class usrCntlMDMAuswertungen
|
||||
Dim Sachbearbeiter = cboSachbearbeiter._value
|
||||
Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text)
|
||||
|
||||
|
||||
|
||||
If rechnungsdatum > Today() Then
|
||||
MsgBox("Rechnungsdatum liegt in der Zukunft, nicht möglich")
|
||||
Exit Sub
|
||||
@@ -1059,7 +1076,7 @@ Public Class usrCntlMDMAuswertungen
|
||||
|
||||
ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Sammelrechnung=6 and Firma_ID=19 and UPPER([Sachbearbeiter])<>'" & Sachbearbeiter & "' and Abfertigungsdatum = '" & dtRechnungsdatum.Value & "'", "FMZOLL")
|
||||
|
||||
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Exit Sub
|
||||
'If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Exit Sub
|
||||
|
||||
|
||||
If Not ok Then MsgBox("Fehler") : Exit Sub
|
||||
@@ -1125,8 +1142,8 @@ Public Class usrCntlMDMAuswertungen
|
||||
|
||||
'Gesamtmautberichte an Sammelrechnung anhängen
|
||||
If Not setMautgesamtberichtInRechnung(Sachbearbeiter, rechnungsdatum, dtSammelrechnungen) Then
|
||||
MsgBox("Fehler beim Setzen der Gesamtmautberichte")
|
||||
Exit Sub
|
||||
'MsgBox("Fehler beim Setzen der Gesamtmautberichte")
|
||||
'Exit Sub
|
||||
End If
|
||||
|
||||
'Druckinformationen
|
||||
@@ -1589,7 +1606,7 @@ Public Class usrCntlMDMAuswertungen
|
||||
Private Function setMautgesamtberichtInRechnung(Sachbearbeiter As String, rechnungsdatum As Date, dtSammelRechnugen As DataTable)
|
||||
Try
|
||||
|
||||
|
||||
Dim attachmentIsSet As Boolean = False
|
||||
If dtSammelRechnugen.Rows.Count = 0 Then
|
||||
MsgBox("Keine Rechnungen für die Anlage der Mautgesamtberichte gefunden!" & vbNewLine & "Vorgang wird abgebrochen.")
|
||||
Return False
|
||||
@@ -1604,20 +1621,20 @@ Public Class usrCntlMDMAuswertungen
|
||||
If IsNumeric(KundenNr) Then
|
||||
Dim RK_ID As Integer = dtSammelRechnugen.AsEnumerable().Where(Function(r) r.Field(Of Integer)("RechnungsKundenNr") = KundenNr).Select(Function(r) r.Field(Of Integer)("RK_ID")).FirstOrDefault()
|
||||
Dim RECHNUNG As New cRechnungsausgang(RK_ID)
|
||||
AddAttachementToRE(FileCSV.FullName, KundenNr, RECHNUNG, rechnungsdatum)
|
||||
attachmentIsSet = AddAttachementToRE(FileCSV.FullName, KundenNr, RECHNUNG, rechnungsdatum)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
ElseIf f.Contains("Maut.pdf") Then
|
||||
ElseIf f.Contains("_Maut.pdf") Then
|
||||
Dim FilePDF = New FileInfo(f)
|
||||
If FilePDF.Name.Length > 10 Then
|
||||
Dim KundenNr = FilePDF.Name.ToString.Substring(0, 6)
|
||||
If IsNumeric(KundenNr) Then
|
||||
Dim RK_ID As Integer = dtSammelRechnugen.AsEnumerable().Where(Function(r) r.Field(Of Integer)("RechnungsKundenNr") = CInt(KundenNr)).Select(Function(r) r.Field(Of Integer)("RK_ID")).FirstOrDefault()
|
||||
Dim RECHNUNG As New cRechnungsausgang(RK_ID)
|
||||
AddAttachementToRE(FilePDF.FullName, KundenNr, RECHNUNG, rechnungsdatum)
|
||||
attachmentIsSet = AddAttachementToRE(FilePDF.FullName, KundenNr, RECHNUNG, rechnungsdatum)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
@@ -1625,6 +1642,8 @@ Public Class usrCntlMDMAuswertungen
|
||||
|
||||
End If
|
||||
|
||||
Return attachmentIsSet
|
||||
|
||||
Catch ex As SystemException
|
||||
|
||||
End Try
|
||||
@@ -1633,7 +1652,7 @@ Public Class usrCntlMDMAuswertungen
|
||||
|
||||
Private Function AddAttachementToRE(pathFile As String, kdNr As Integer, RECHNUNG As cRechnungsausgang, rechnungsdatum As Date) As Boolean
|
||||
|
||||
'TODO: Prüfung, damit anhänge nicht doppelt eingearbeitet werden!
|
||||
'TODO: Prüfung, damit anhänge nicht doppelt eingearbeitet werden! -> ist DBteschnisch unterbunden mit PrimaryKey-Einschränkung!!!
|
||||
|
||||
If Not IO.File.Exists(pathFile) Then Return False
|
||||
|
||||
@@ -1657,7 +1676,7 @@ Public Class usrCntlMDMAuswertungen
|
||||
ANH.dsId = CInt(DS.da_id)
|
||||
ANH.Bezeichnung = DS.da_name
|
||||
RECHNUNG.ANHAENGE.Add(ANH)
|
||||
Return RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID, False)
|
||||
Return RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID, False, False)
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
@@ -1666,6 +1685,7 @@ Public Class usrCntlMDMAuswertungen
|
||||
|
||||
Private Function setStatus4(Sachbearbeiter As String, rechnungsdatum As Date, dtSammelRechnugen As DataTable) As Boolean
|
||||
|
||||
Dim cnt = 0
|
||||
'strParameter = ParameterBereitstellen(Me![Firma_ID], 0, 6, Me![fldSachbearbeiter], Year(Me!fldRechnungsDatum), Me![fldRechnungsDatum], varDatumZeit)
|
||||
|
||||
'Return (New SQL).doSQL("UPDATE [Rechnungsausgang] SET [Status] = 4 WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'", "FMZOLL")
|
||||
@@ -1677,11 +1697,24 @@ Public Class usrCntlMDMAuswertungen
|
||||
|
||||
If Not reIsSet Then Return reIsSet
|
||||
|
||||
If True Then 'cnt Mod 10 = 0 Then
|
||||
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dtSammelRechnugen.Rows.Count
|
||||
Dim proz As Double = (cnt / dtSammelRechnugen.Rows.Count) * 100
|
||||
pbPloseAnh_Proz.Value = proz
|
||||
lblPloseAnh_Proz.Text = proz.ToString("N2") & " %"
|
||||
'GroupBox12.Refresh()
|
||||
My.Application.DoEvents()
|
||||
End If
|
||||
cnt += 1
|
||||
Next
|
||||
|
||||
End If
|
||||
|
||||
|
||||
pbPloseAnh_Proz.Value = 100
|
||||
txtPloseAnh_Einarbeitung.Text = dtSammelRechnugen.Rows.Count & " / " & dtSammelRechnugen.Rows.Count
|
||||
lblPloseAnh_Proz.Text = "100.00 %"
|
||||
|
||||
Return reIsSet
|
||||
|
||||
|
||||
@@ -2130,110 +2163,128 @@ Public Class usrCntlMDMAuswertungen
|
||||
If cbxMautbericht._value = "" Then Exit Sub
|
||||
If cbxDateMautbericht._value = "" Then Exit Sub
|
||||
|
||||
Try
|
||||
|
||||
|
||||
Select Case cbxMautbericht._value
|
||||
|
||||
|
||||
Select Case cbxMautbericht._value
|
||||
'nur intern
|
||||
Case "Gesamtbericht_EXCEL"
|
||||
Case "Gesamtbericht_EXCEL"
|
||||
|
||||
Dim dtGesamtbericht As DataTable = (New SQL).loadDgvBySql("SELECT tblMautbericht.[Customer No], Adressen.Ordnungsbegriff AS [Customer name], tblMautbericht.[Net Amount], tblMautbericht.[VAT Amount], tblMautbericht.[Total Amount] From tblMautbericht INNER Join Adressen On tblMautbericht.[Customer No] = Adressen.AdressenNr Where cast(BillingDate as Date) = '" & cbxDateMautbericht._value & "'", "FMZOLL")
|
||||
cProgramFunctions.genExcelFromDT_NEW(dtGesamtbericht, {"C1:C" & (dtGesamtbericht.Rows.Count + 1), "D1:D" & (dtGesamtbericht.Rows.Count + 1), "E1:E" & (dtGesamtbericht.Rows.Count + 1)},,,,, True)
|
||||
Dim dtGesamtbericht As DataTable = (New SQL).loadDgvBySql("SELECT tblMautbericht.[Customer No], Adressen.Ordnungsbegriff AS [Customer name], tblMautbericht.[Net Amount], tblMautbericht.[VAT Amount], tblMautbericht.[Total Amount] From tblMautbericht INNER Join Adressen On tblMautbericht.[Customer No] = Adressen.AdressenNr Where cast(BillingDate as Date) = '" & cbxDateMautbericht._value & "'", "FMZOLL")
|
||||
cProgramFunctions.genExcelFromDT_NEW(dtGesamtbericht, {"C1:C" & (dtGesamtbericht.Rows.Count + 1), "D1:D" & (dtGesamtbericht.Rows.Count + 1), "E1:E" & (dtGesamtbericht.Rows.Count + 1)},,,,, True)
|
||||
|
||||
'für Kunde an RE anhängen
|
||||
Case "Gesamtbericht_CSV"
|
||||
Case "Gesamtbericht_CSV"
|
||||
|
||||
Dim dtBerichtkunden_CSV As DataTable = (New SQL).loadDgvBySql("SELECT [Customer No], [Licence Plate Number], [Transaction Country], [Transaction date], tblMautbericht.[Product description], tblMautbericht.[Card number], tblMautbericht.[Entry Terminal], tblMautbericht.[Exit Terminal], tblMautbericht.[Net Amount], tblMautbericht.[VAT Amount], tblMautbericht.[Total Amount]
|
||||
Dim dtBerichtkunden_CSV As DataTable = (New SQL).loadDgvBySql("SELECT [Customer No], [Licence Plate Number], [Transaction Country], [Transaction date], tblMautbericht.[Product description], tblMautbericht.[Card number], tblMautbericht.[Entry Terminal], tblMautbericht.[Exit Terminal], tblMautbericht.[Net Amount], tblMautbericht.[VAT Amount], tblMautbericht.[Total Amount]
|
||||
FROM Adressen
|
||||
INNER JOIN tblMautbericht ON Adressen.AdressenNr = tblMautbericht.[Customer No]
|
||||
WHERE Adressen.ExportMautberichtCSV=1 AND cast(BillingDate as Date) = '" & cbxDateMautbericht._value & "'
|
||||
ORDER BY tblMautbericht.[Customer No], tblMautbericht.[Licence Plate Number], tblMautbericht.[Transaction Country], tblMautbericht.[Transaction date], tblMautbericht.[Product description], tblMautbericht.[Card number], tblMautbericht.[Entry Terminal], tblMautbericht.[Exit Terminal]", "FMZOLL")
|
||||
If dtBerichtkunden_CSV.Rows.Count > 0 Then
|
||||
If dtBerichtkunden_CSV.Rows.Count > 0 Then
|
||||
|
||||
Dim displayView = New DataView(dtBerichtkunden_CSV, "", "Customer No", DataViewRowState.CurrentRows)
|
||||
Dim distinctDT_CSV As DataTable = displayView.ToTable(True, "Customer No")
|
||||
Dim displayView = New DataView(dtBerichtkunden_CSV, "", "Customer No", DataViewRowState.CurrentRows)
|
||||
Dim distinctDT_CSV As DataTable = displayView.ToTable(True, "Customer No")
|
||||
|
||||
|
||||
'wenn bereits CSV-Datei im Ordner dann löschen!
|
||||
If Directory.GetFiles(PathMautberichte) IsNot Nothing Then
|
||||
For Each f In Directory.GetFiles(PathMautberichte)
|
||||
If f.ToString.ToLower.EndsWith(".csv") Then File.Delete(f)
|
||||
Next
|
||||
End If
|
||||
'wenn bereits CSV-Datei im Ordner dann löschen!
|
||||
If Directory.GetFiles(PathMautberichte) IsNot Nothing Then
|
||||
For Each f In Directory.GetFiles(PathMautberichte)
|
||||
If f.ToString.ToLower.EndsWith(".csv") Then File.Delete(f)
|
||||
Next
|
||||
End If
|
||||
|
||||
For Each csv As DataRow In distinctDT_CSV.Rows
|
||||
For Each csv As DataRow In distinctDT_CSV.Rows
|
||||
|
||||
|
||||
|
||||
Dim dt_CSV_selected = dtBerichtkunden_CSV.Select("[Customer No] ='" & csv.Item(0) & "'").CopyToDataTable
|
||||
Dim dt_CSV_selected = dtBerichtkunden_CSV.Select("[Customer No] ='" & csv.Item(0) & "'").CopyToDataTable
|
||||
|
||||
Dim fn As String = PathMautberichte & "\" & csv.Item("Customer No") & "_Maut.csv"
|
||||
Dim outFile As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(fn, False)
|
||||
Dim clmns As String = ""
|
||||
For i = 0 To dt_CSV_selected.Columns.Count - 1
|
||||
clmns &= dt_CSV_selected.Columns(i).ColumnName.ToString().Replace(";", ", ") & ";"
|
||||
Next
|
||||
outFile.WriteLine(clmns)
|
||||
For i = 0 To dt_CSV_selected.Rows.Count - 1
|
||||
clmns = ""
|
||||
For j = 0 To dt_CSV_selected.Columns.Count - 1
|
||||
clmns &= dt_CSV_selected.Rows(i)(j).ToString.Replace(";", ", ") & ";"
|
||||
Dim fn As String = PathMautberichte & "\" & csv.Item("Customer No") & "_Maut.csv"
|
||||
Dim outFile As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(fn, False)
|
||||
Dim clmns As String = ""
|
||||
For i = 0 To dt_CSV_selected.Columns.Count - 1
|
||||
clmns &= dt_CSV_selected.Columns(i).ColumnName.ToString().Replace(";", ", ") & ";"
|
||||
Next
|
||||
outFile.WriteLine(clmns)
|
||||
For i = 0 To dt_CSV_selected.Rows.Count - 1
|
||||
clmns = ""
|
||||
For j = 0 To dt_CSV_selected.Columns.Count - 1
|
||||
clmns &= dt_CSV_selected.Rows(i)(j).ToString.Replace(";", ", ") & ";"
|
||||
Next
|
||||
outFile.WriteLine(clmns)
|
||||
Next
|
||||
outFile.Close()
|
||||
|
||||
Next
|
||||
outFile.Close()
|
||||
|
||||
Next
|
||||
|
||||
|
||||
MsgBox("CSV-Berichte wurden unter " & PathMautberichte & "erzeugt.")
|
||||
Else
|
||||
MsgBox("Es wurden keine Daten bereitgestellt")
|
||||
MsgBox("CSV-Berichte wurden unter " & PathMautberichte & "erzeugt.")
|
||||
Else
|
||||
MsgBox("Es wurden keine Daten bereitgestellt")
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
'für Kunde an RE anhängen (Tool Report to Verag Invoice aus FMZOLL)
|
||||
Case "Lieferantenbericht_PDF"
|
||||
Case "Lieferantenbericht_PDF"
|
||||
|
||||
Dim dtBerichtkunden_PDF As DataTable = (New SQL).loadDgvBySql("SELECT tblMautbericht.[Customer No], Adressen.Ordnungsbegriff AS [Customer name], tblMautbericht.[Licence Plate Number], tblMautbericht.[Transaction date], tblMautbericht.[Transaction Country], tblMautbericht.[Product description], tblMautbericht.[Card number], tblMautbericht.[Entry Terminal], tblMautbericht.[Exit Terminal], Sum(tblMautbericht.[Net Amount]) AS [Net Amount], Sum(tblMautbericht.[VAT Amount]) AS [VAT Amount], Sum(tblMautbericht.[Total Amount]) AS [Total Amount]
|
||||
Dim dtBerichtkunden_PDF As DataTable = (New SQL).loadDgvBySql("SELECT tblMautbericht.[Customer No], Adressen.Ordnungsbegriff AS [Customer name], tblMautbericht.[Licence Plate Number], tblMautbericht.[Transaction date], tblMautbericht.[Transaction Country], tblMautbericht.[Product description], tblMautbericht.[Card number], tblMautbericht.[Entry Terminal], tblMautbericht.[Exit Terminal], Sum(tblMautbericht.[Net Amount]) AS [Net Amount], Sum(tblMautbericht.[VAT Amount]) AS [VAT Amount], Sum(tblMautbericht.[Total Amount]) AS [Total Amount]
|
||||
FROM tblMautbericht INNER JOIN Adressen ON tblMautbericht.[Customer No] = Adressen.AdressenNr
|
||||
WHERE cast(BillingDate as Date) = '" & cbxDateMautbericht._value & "'
|
||||
GROUP BY tblMautbericht.[Customer No], Adressen.Ordnungsbegriff, tblMautbericht.[Licence Plate Number], tblMautbericht.[Transaction date], tblMautbericht.[Transaction Country], tblMautbericht.[Product description], tblMautbericht.[Card number], tblMautbericht.[Entry Terminal], tblMautbericht.[Exit Terminal] ", "FMZOLL")
|
||||
|
||||
If dtBerichtkunden_PDF.Rows.Count = 0 Then
|
||||
MsgBox("Es wurden keine Daten bereitgestellt")
|
||||
Exit Sub
|
||||
End If
|
||||
If dtBerichtkunden_PDF.Rows.Count = 0 Then
|
||||
MsgBox("Es wurden keine Daten bereitgestellt")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim displayView = New DataView(dtBerichtkunden_PDF, "", "Customer No", DataViewRowState.CurrentRows)
|
||||
Dim distinctDT_PDF As DataTable = displayView.ToTable(True, "Customer No")
|
||||
Dim displayView = New DataView(dtBerichtkunden_PDF, "", "Customer No", DataViewRowState.CurrentRows)
|
||||
Dim distinctDT_PDF As DataTable = displayView.ToTable(True, "Customer No")
|
||||
|
||||
'wenn bereits PDF-Datei im Ordner dann löschen!
|
||||
'wenn bereits PDF-Datei im Ordner dann löschen!
|
||||
If Directory.GetFiles(PathMautberichte) IsNot Nothing Then
|
||||
For Each f In Directory.GetFiles(PathMautberichte)
|
||||
If f.ToString.ToLower.EndsWith(".pdf") Then File.Delete(f)
|
||||
Next
|
||||
End If
|
||||
|
||||
If distinctDT_PDF.Rows.Count > 1 Then
|
||||
For Each pdf As DataRow In distinctDT_PDF.Rows
|
||||
|
||||
Dim dt_PDF_selected = dtBerichtkunden_PDF.Select("[Customer No] ='" & pdf.Item(0) & "'").CopyToDataTable
|
||||
|
||||
createPDFMautbericht(pdf.Item(0), dt_PDF_selected, cbxDateMautbericht._value, PathMautberichte)
|
||||
|
||||
Next
|
||||
|
||||
MsgBox("PDF-Berichte wurden unter " & PathMautberichte & "erzeugt.")
|
||||
|
||||
Else
|
||||
MsgBox("Es wurden keine Daten bereitgestellt")
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
Dim count = 0
|
||||
If Directory.Exists(PathMautberichte) Then
|
||||
If Directory.GetFiles(PathMautberichte) IsNot Nothing Then
|
||||
For Each f In Directory.GetFiles(PathMautberichte)
|
||||
If f.ToString.ToLower.EndsWith(".pdf") Then File.Delete(f)
|
||||
If f.ToString.ToLower.EndsWith("_Maut.csv") Or f.ToString.ToLower.EndsWith("_Maut.pdf") Then count += 1
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
lblAnzahlMautberichte.Text = count & "x Mautberichte"
|
||||
|
||||
If distinctDT_PDF.Rows.Count > 1 Then
|
||||
For Each pdf As DataRow In distinctDT_PDF.Rows
|
||||
|
||||
Dim dt_PDF_selected = dtBerichtkunden_PDF.Select("[Customer No] ='" & pdf.Item(0) & "'").CopyToDataTable
|
||||
|
||||
createPDFMautbericht(pdf.Item(0), dt_PDF_selected, cbxDateMautbericht._value, PathMautberichte)
|
||||
|
||||
Next
|
||||
|
||||
MsgBox("PDF-Berichte wurden unter " & PathMautberichte & "erzeugt.")
|
||||
|
||||
Else
|
||||
MsgBox("Es wurden keine Daten bereitgestellt")
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Select
|
||||
Catch ex As System.Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -2412,34 +2463,138 @@ Public Class usrCntlMDMAuswertungen
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim cnt = 0
|
||||
Dim kdnr As Integer = -1
|
||||
|
||||
If rbkunde.Checked Then
|
||||
If KdSearchBox3.KdNr > 0 Then
|
||||
kdnr = KdSearchBox3.KdNr
|
||||
Else
|
||||
MsgBox("Kunde auswählen!")
|
||||
Exit Sub
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not vbYes = MsgBox("Möchten Sie die Vorschau der Rechnugnen erstellen?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnungen gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then Exit Sub
|
||||
|
||||
Dim listPDFs As New List(Of String)
|
||||
|
||||
Dim dtSelectedSammelrechnungen As DataTable = (New SQL).loadDgvBySql("SELECT [Firma_ID], RechnungsNr,Buchungsjahr,DruckDatumZeit,[Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text]
|
||||
FROM Rechnungsausgang
|
||||
WHERE [Status] = 2 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' and RechnungsNr is not null
|
||||
ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift], [RK_ID]", "FMZOLL")
|
||||
'Dim SQLString = "SELECT [Firma_ID], RechnungsNr,Buchungsjahr,DruckDatumZeit,[Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text]
|
||||
' FROM Rechnungsausgang
|
||||
' WHERE [Status] = 2 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' and RechnungsNr is not null " & IIf(kdnr > 0, " AND RechnungsKundenNr = " & kdnr, "") & "
|
||||
' ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift], [RK_ID]"
|
||||
|
||||
|
||||
|
||||
Dim SQLString = "SELECT [Firma_ID], RechnungsNr,Buchungsjahr,DruckDatumZeit,[Status]
|
||||
FROM Rechnungsausgang
|
||||
WHERE [Status] = 2 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' and RechnungsNr is not null " & IIf(kdnr > 0, " AND RechnungsKundenNr = " & kdnr, "") & "
|
||||
group by [Firma_ID], RechnungsNr,Buchungsjahr,DruckDatumZeit,[Status]
|
||||
ORDER BY [Firma_ID], [Status], RechnungsNr"
|
||||
|
||||
Dim dtSelectedSammelrechnungen As DataTable = (New SQL).loadDgvBySql(SQLString, "FMZOLL")
|
||||
|
||||
If dtSelectedSammelrechnungen.Rows.Count > 0 Then
|
||||
|
||||
For Each rowRE In dtSelectedSammelrechnungen.Rows
|
||||
|
||||
Dim path = ""
|
||||
|
||||
cFakturierung.doSAMMELRechnungsDruck_Abschnitt(rowRE("RechnungsNr"), rowRE("Firma_ID"), rowRE("Buchungsjahr"), rowRE("DruckDatumZeit"), "", True, True, 7, path,, , , , , , , )
|
||||
|
||||
If path <> "" Then listPDFs.Add(path)
|
||||
|
||||
If True Then 'cnt Mod 10 = 0 Then
|
||||
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dtSelectedSammelrechnungen.Rows.Count
|
||||
Dim proz As Double = (cnt / dtSelectedSammelrechnungen.Rows.Count) * 100
|
||||
pbPloseAnh_Proz.Value = proz
|
||||
lblPloseAnh_Proz.Text = proz.ToString("N2") & " %"
|
||||
'GroupBox12.Refresh()
|
||||
My.Application.DoEvents()
|
||||
End If
|
||||
cnt += 1
|
||||
|
||||
Next
|
||||
|
||||
If listPDFs.Count > 1 Then
|
||||
Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("MDM_Sammelrechnung.pdf", ".pdf", False, False)
|
||||
If FormularManagerNEU.MergePdfFiles(listPDFs, pathPDF) Then
|
||||
Process.Start(pathPDF)
|
||||
Else
|
||||
MsgBox("Fehler beim zusammenführen der PDFs.")
|
||||
If listPDFs.Count > 0 Then
|
||||
|
||||
Dim pathPDF = listPDFs(0).ToString
|
||||
|
||||
If listPDFs.Count > 1 Then
|
||||
Dim pathPDFMerge = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("MDM_Sammelrechnung.pdf", ".pdf", False, False)
|
||||
If Not FormularManagerNEU.MergePdfFiles(listPDFs, pathPDFMerge) Then
|
||||
Exit Sub
|
||||
MsgBox("Fehler beim Zusammenführen der PDFs.")
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
pbPloseAnh_Proz.Value = 100
|
||||
txtPloseAnh_Einarbeitung.Text = dtSelectedSammelrechnungen.Rows.Count & " / " & dtSelectedSammelrechnungen.Rows.Count
|
||||
lblPloseAnh_Proz.Text = "100.00 %"
|
||||
Process.Start(pathPDF)
|
||||
|
||||
Else
|
||||
|
||||
MsgBox("Datei von " & rechnungsdatum.ToShortDateString & " konnte nicht erstellt werden!")
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
MsgBox("Keine Sammelrechnung zum " & rechnungsdatum.ToShortDateString & " von " & Sachbearbeiter & " vorhanden!")
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub KdSearchBox3_TextChanged(sender As Object, e As EventArgs) Handles KdSearchBox3.TextChanged
|
||||
rbkunde.Checked = True
|
||||
End Sub
|
||||
|
||||
Private Sub Button20_Click_1(sender As Object, e As EventArgs) Handles Button20.Click
|
||||
|
||||
Dim Sachbearbeiter = cboSachbearbeiter._value
|
||||
Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text)
|
||||
Dim deleted As Boolean = False
|
||||
|
||||
If rechnungsdatum > Today() Then
|
||||
MsgBox("Rechnungsdatum liegt in der Zukunft, nicht möglich")
|
||||
Exit Sub
|
||||
|
||||
End If
|
||||
|
||||
If Sachbearbeiter = "" Then
|
||||
MsgBox("Sachbearbeiter auswählen!")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
|
||||
Dim rechnungenMitGesamtmautanhant As String = (New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) FROM Rechnungsausgang
|
||||
inner join RechnungsausgangAnhaenge on Rechnungsausgang.RK_ID = RechnungsausgangAnhaenge.RK_ID
|
||||
WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
|
||||
and (RechnungsausgangAnhaenge.Bezeichnung like '%Maut.pdf' or RechnungsausgangAnhaenge.Bezeichnung like '%Maut.csv')
|
||||
group by [Firma_ID], RechnungsNr,Buchungsjahr,DruckDatumZeit,[Status], RechnungsausgangAnhaenge.Bezeichnung ", "FMZOLL",, 0)
|
||||
|
||||
If rechnungenMitGesamtmautanhant <> "" Then
|
||||
|
||||
|
||||
If vbYes = MsgBox("Möchten Sie die " & rechnungenMitGesamtmautanhant & " Gesamtmautberichte (PDF und CSV) aus den Rechnungen vom entfernen?" & vbNewLine & "Die Mautberichte können erneut über 'Durchfüren' and die Rechnung gehängt werden.", vbYesNoCancel) Then
|
||||
|
||||
deleted = (New SQL).doSQL("delete from RechnungsausgangAnhaenge where RechnungsausgangAnhaenge.RK_ID IN (SELECT Rechnungsausgang.RK_ID
|
||||
FROM Rechnungsausgang
|
||||
inner join RechnungsausgangAnhaenge on Rechnungsausgang.RK_ID = RechnungsausgangAnhaenge.RK_ID
|
||||
WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
|
||||
and (RechnungsausgangAnhaenge.Bezeichnung like '%Maut.pdf' or RechnungsausgangAnhaenge.Bezeichnung like '%Maut.csv')) and (RechnungsausgangAnhaenge.Bezeichnung like '%Maut.pdf' or RechnungsausgangAnhaenge.Bezeichnung like '%Maut.csv')", "FMZOLL")
|
||||
|
||||
If deleted Then MsgBox("Anhänge wurden gelöscht")
|
||||
|
||||
End If
|
||||
Else
|
||||
MsgBox("In den Rechnungen vom " & rechnungsdatum & " sind keine Gesamtmautberichte angehängt!")
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user