201020
This commit is contained in:
@@ -906,8 +906,8 @@ Public Class cFakturierung
|
||||
' Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Rechnung_" & If(RECHNUNG.RechnungsNr, "") & ".pdf"
|
||||
Dim RG_Bezeichnung = If(RECHNUNG.[BelegartenKz] = "AR", "Rechnung_", "Gutschrift_") & If(RECHNUNG.RechnungsNr, "") & ".pdf"
|
||||
|
||||
'Immer Exportieren, da in Therefore speichern
|
||||
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False)
|
||||
'Immer Exportieren, da in Therefore speichern
|
||||
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False)
|
||||
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
|
||||
rpt.Run(False)
|
||||
p.NeverEmbedFonts = ""
|
||||
@@ -1099,6 +1099,8 @@ Public Class cFakturierung
|
||||
End If
|
||||
|
||||
Dim RG_NR As New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(RECHNUNG.Firma_ID, RECHNUNG.Buchungsjahr)
|
||||
' Prüfung, ob RgNr schon vergeben wurde --> dann +1, bis freie Nr. (sollte EÜGENTLICH nicht vorkommen)
|
||||
RG_NR.CHECK_RGNR()
|
||||
' Nächste Rechnungsnummer speichern.
|
||||
RECHNUNG.[RechnungsNr] = RG_NR.LfdRechnungsNr
|
||||
'RECHNUNG.[LfdRechnungsNr] = RG_NR.LfdRechnungsNr
|
||||
@@ -1188,7 +1190,7 @@ Public Class cFakturierung
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
|
||||
Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
|
||||
'If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False
|
||||
Try
|
||||
'If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") "
|
||||
@@ -1215,6 +1217,7 @@ Public Class cFakturierung
|
||||
DruckdatumUhrzeit = Now.ToString("dd.MM.yyyy HH:mm:ss.fff")
|
||||
|
||||
If listPDFs Is Nothing Then listPDFs = New List(Of String)
|
||||
If SonstAnlagen Is Nothing Then SonstAnlagen = New List(Of String)
|
||||
Dim kdTmp = -1
|
||||
Dim AvisoIdTmp = -1
|
||||
Dim FilialeTmp = -1
|
||||
@@ -1231,7 +1234,7 @@ Public Class cFakturierung
|
||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
|
||||
If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
|
||||
Dim path = ""
|
||||
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB) 'hier wird auch die RG Nr erhöht!
|
||||
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen) 'hier wird auch die RG Nr erhöht!
|
||||
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||
If path <> "" Then listPDFs.Add(path)
|
||||
End If
|
||||
@@ -1245,7 +1248,7 @@ Public Class cFakturierung
|
||||
If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal
|
||||
If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr
|
||||
Dim path = ""
|
||||
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB)
|
||||
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen)
|
||||
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr)
|
||||
If path <> "" Then listPDFs.Add(path)
|
||||
End If
|
||||
@@ -1268,7 +1271,7 @@ Public Class cFakturierung
|
||||
'Letzter Abschnitt:
|
||||
If found Then
|
||||
Dim path = ""
|
||||
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB)
|
||||
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen)
|
||||
If path <> "" Then listPDFs.Add(path)
|
||||
End If
|
||||
lastAktuelle_RgNr = Aktuelle_RgNr
|
||||
@@ -1282,9 +1285,12 @@ Public Class cFakturierung
|
||||
Dim RG_NR As New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(Firma_ID, Buchungsjahr)
|
||||
getNewRgNr = RG_NR.LfdRechnungsNr
|
||||
RG_NR.INCREASE_RGNR() 'für die nächste Rechnung
|
||||
|
||||
' Prüfung, ob RgNr schon vergeben wurde --> dann +1, bis freie Nr. (sollte EÜGENTLICH nicht vorkommen)
|
||||
RG_NR.CHECK_RGNR()
|
||||
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 = "") 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) As Boolean
|
||||
'SB Nicht mehr benötigt, da RG-Nr und DruckdatumUhrzeit
|
||||
|
||||
Dim dt As DataTable
|
||||
@@ -1302,13 +1308,24 @@ Public Class cFakturierung
|
||||
'-------------- für PDF-Sammel-Rechnung --------------
|
||||
Dim pathPDF_SammelRg = ""
|
||||
Dim pathPDF_SammelBericht = ""
|
||||
Dim xls_Evolog = ""
|
||||
Dim pathPDF_Anlage As New List(Of String)
|
||||
|
||||
'-------------- ENDE --------------
|
||||
|
||||
doSAMMELRechnungsDruck_Abschnitt = doSAMMELRechnungDruck_Rechnungsdruck(dt, RechnungsNr, DruckdatumUhrzeit, 3, RechnungsdruckArt, pathPDF_SammelRg, PrinterName, SRDruckWiederholen) 'Sammelrechnung drucken
|
||||
If Sammelrechnungsbericht Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, pathPDF_SammelBericht, PrinterName) Then doSAMMELRechnungsDruck_Abschnitt = False 'Sammelrechnungsbericht drucken
|
||||
If AnlageEinzelRg Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Anlagen(RechnungsNr, DruckdatumUhrzeit, PrinterName, pathPDF_Anlage, RechnungsdruckArt) Then doSAMMELRechnungsDruck_Abschnitt = False 'Anlagen drucken
|
||||
|
||||
'SONSTIGE ANLAGEN:
|
||||
If AnlageExcelEvolog Then 'Sammelrechnungsbericht EVOLOG
|
||||
If doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelEvolog(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, xls_Evolog, PrinterName) Then
|
||||
If xls_Evolog <> "" Then SonstAnlagen.Add(xls_Evolog)
|
||||
Else
|
||||
doSAMMELRechnungsDruck_Abschnitt = False
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
'-------------- für PDF-Sammel-Rechnung --------------
|
||||
Dim list As New List(Of String) ' Sammlung PDFs
|
||||
@@ -1351,7 +1368,7 @@ Public Class cFakturierung
|
||||
If dt IsNot Nothing Then
|
||||
For Each r In dt.Rows
|
||||
Dim Path = ""
|
||||
If Not doRechnungsDruck(r("RK_ID"),, false, RechnungsdruckArt, Path, PrinterName, True) Then
|
||||
If Not doRechnungsDruck(r("RK_ID"),, False, RechnungsdruckArt, Path, PrinterName, True) Then
|
||||
MsgBox("Fehler beim Sammel-Rechnungsdruck - Anlage zur Rechnung: " & RechnungsNr)
|
||||
Return False
|
||||
End If
|
||||
@@ -1364,15 +1381,96 @@ Public Class cFakturierung
|
||||
|
||||
|
||||
|
||||
Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelEvolog(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "") As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
|
||||
Try
|
||||
|
||||
|
||||
Dim dt As DataTable = SQL.loadDgvBySql(" SELECT RechnungsNr,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,Abfertigungsarten.Abfertigungsbezeichnung, (SELECT SUM([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) FROM RechnungsausgangPositionen where RechnungsausgangPositionen.RK_ID=Rechnungsausgang.RK_ID) as Betrag
|
||||
FROM Rechnungsausgang INNER JOIN Speditionsbuch on Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr
|
||||
INNER JOIN Abfertigungsarten ON Abfertigungsarten .Abfertigungsart=Speditionsbuch.Abfertigungsart
|
||||
WHERE Rechnungsausgang.Status IN(3) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "'
|
||||
ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr", "FMZOLL")
|
||||
|
||||
|
||||
If dt IsNot Nothing And dt.Rows.Count > 0 Then
|
||||
|
||||
|
||||
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\" ' My.Computer.FileSystem.GetTempFileName
|
||||
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
|
||||
My.Computer.FileSystem.CreateDirectory(sPath)
|
||||
End If
|
||||
|
||||
|
||||
Dim exclApp As Object 'as Application
|
||||
Dim Datei As Object 'as WorkBook
|
||||
Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet
|
||||
exclApp = CreateObject("Excel.Application")
|
||||
' Dim nWeek As Integer
|
||||
' nWeek = DatePart(DateInterval.WeekOfYear, New Date(2004, 3, 22), _
|
||||
' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)
|
||||
|
||||
|
||||
With exclApp
|
||||
.Visible = False
|
||||
|
||||
Try
|
||||
Path = sPath & "SR_" & dt.Rows(0)("RechnungsKundenNr") & ".xlsx"
|
||||
While System.IO.File.Exists(Path)
|
||||
Path = sPath & "SR_" & dt.Rows(0)("RechnungsKundenNr") & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
|
||||
End While
|
||||
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.SR_EVOLOG, False)
|
||||
Catch ex As System.Exception
|
||||
' MsgBox(ex.Message)
|
||||
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
|
||||
Datei = .Workbooks.Open(Path) 'Anpassen
|
||||
Blatt = Datei.Worksheets(1) 'Anpassen
|
||||
|
||||
Dim cnt = 2
|
||||
For Each r In dt.Rows
|
||||
Blatt.Range("A" & cnt).Value = cnt - 1
|
||||
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
|
||||
Blatt.Range("C" & cnt).Value = r("KdAuftragsNr")
|
||||
Blatt.Range("D" & cnt).Value = r("AbfertigungsNr")
|
||||
Blatt.Range("E" & cnt).Value = r("Kennzeichen")
|
||||
Blatt.Range("F" & cnt).Value = r("Abfertigungsbezeichnung")
|
||||
Blatt.Range("G" & cnt).Value = r("Betrag")
|
||||
|
||||
cnt += 1
|
||||
Next
|
||||
Datei.Save
|
||||
|
||||
If Rechnugnsdruck = -1 Then
|
||||
Blatt.PrintOutEx()
|
||||
ElseIf Rechnugnsdruck = 3 Then
|
||||
'Process.Start(Path)
|
||||
.Visible = True
|
||||
|
||||
End If
|
||||
End With
|
||||
|
||||
Return True
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "") As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean
|
||||
Try
|
||||
|
||||
Dim rpt As New rptSammelRechnungAnlagenDruck
|
||||
|
||||
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM Rechnungsausgang WHERE Rechnungsausgang.Status IN(3) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL")
|
||||
Dim dt As DataTable = SQL.loadDgvBySql("Select * FROM Rechnungsausgang WHERE Rechnungsausgang.Status In(3) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL")
|
||||
rpt.DataSource = dt
|
||||
|
||||
Dim ROW As DataRow = dt.Rows(0)
|
||||
Dim ROW As DataRow = dt.Rows(0)
|
||||
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID"))
|
||||
Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user