Datev-Anbindung

This commit is contained in:
2023-05-08 14:21:21 +02:00
parent 9ed0834f71
commit 887c64c2d1
3 changed files with 130 additions and 109 deletions

View File

@@ -3533,12 +3533,19 @@ Nächste_Textzeile_lesen:
' Case Else ' Case Else
' whereKTO = " AND AKTO IN ('006136','006128','3517233') " ' whereKTO = " AND AKTO IN ('006136','006128','3517233') "
'End Select 'End Select
Try
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Index] FROM [Zkteing] where Bezugsnummer='" & SPEDBUCH.AtlasBezNrEZA & "' AND LeistungsNr IN (20,77) AND [Status] IS NULL " & whereKTO, "FMZOLL")
For Each r In dt.Rows
VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("X", r("Index"))
przInsertEUSTZOLL(r("Index"))
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Index] FROM [Zkteing] where Bezugsnummer='" & SPEDBUCH.AtlasBezNrEZA & "' AND LeistungsNr IN (20,77) AND [Status] IS NULL " & whereKTO, "FMZOLL")
For Each r In dt.Rows
VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("X", r("Index"))
przInsertEUSTZOLL(r("Index"))
Next
End Sub End Sub
'Case 20, 77 'Case 20, 77
'Case 10, 76, 60 'Case 10, 76, 60
@@ -3556,12 +3563,17 @@ Nächste_Textzeile_lesen:
' Case Else ' Case Else
' whereKTO = " AND AKTO IN ('006136','006128','3517233') " ' whereKTO = " AND AKTO IN ('006136','006128','3517233') "
'End Select 'End Select
Try
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Index] FROM [Zkteing] where Bezugsnummer='" & SPEDBUCH.AtlasBezNrEZA & "' AND LeistungsNr NOT IN (20,77) AND [Status] IS NULL " & whereKTO, "FMZOLL")
For Each r In dt.Rows
VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("X", r("Index"))
przInsertEUSTZOLL(r("Index"))
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Index] FROM [Zkteing] where Bezugsnummer='" & SPEDBUCH.AtlasBezNrEZA & "' AND LeistungsNr NOT IN (20,77) AND [Status] IS NULL " & whereKTO, "FMZOLL")
For Each r In dt.Rows
VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("X", r("Index"))
przInsertEUSTZOLL(r("Index"))
Next
End Sub End Sub
Sub loadBerechnungsArt_jeAbfertigung() Sub loadBerechnungsArt_jeAbfertigung()
If Not IsNumeric(SPEDBUCH.Abfertigungsanzahl) Then Exit Sub If Not IsNumeric(SPEDBUCH.Abfertigungsanzahl) Then Exit Sub

View File

@@ -1463,8 +1463,12 @@ Public Class usrcntlKundeBearbeitenFull
End Sub End Sub
Private Sub btnDatevExport_Click(sender As Object, e As EventArgs) Handles btnDatevExport.Click Private Sub btnDatevExport_Click(sender As Object, e As EventArgs) Handles btnDatevExport.Click
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DATEV_EXPORT", "SDL") Then If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DATEV_EXPORT", "SDL") And VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
VERAG_PROG_ALLGEMEIN.cDatev_Interface.genDatensatzCSV_ALL(False, True, False) If VERAG_PROG_ALLGEMEIN.cDatev_Interface.genDatensatzCSV_ALL(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, False, True, False) Then
MsgBox("Stammdaten wurden erfolgreich exportiert!")
Else
MsgBox("Es wurden keine Stammdaten exportiert!")
End If
End If End If
End Sub End Sub

View File

@@ -98,8 +98,8 @@
'DATEIPFAD für Stammdaten 'DATEIPFAD für Stammdaten
'------------------------------------------------------------------------------------------- '-------------------------------------------------------------------------------------------
Dim pathArchivKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\ARCHIV\STAMMDATEN\" Dim pathArchivKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\ARCHIV\STAMMDATEN\" & FIRMA.Firma_Bez & "\"
Dim pathKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\STAMMDATEN\" & Geschaeftsjahr & "\" Dim pathKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\STAMMDATEN\ " & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
'pathKD = pathArchivKD 'TEST 'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
@@ -111,47 +111,46 @@
'------------------------------------------------------------------------------------------- '-------------------------------------------------------------------------------------------
If True Then 'boolKunden Then '----------------- STAMMDATEN -----------------
'----------------- STAMMDATEN ----------------- Dim dt_Stamm As DataTable = getStammdaten(filialNr)
Dim dt_Stamm As DataTable = getStammdaten(filialNr) If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
Dim fileKD As System.IO.StreamWriter Dim fileKD As System.IO.StreamWriter
Dim DateinameKD = "DTVF_KD_" & Now.ToString("ddMMyyyy_HHmm") & ".csv" Dim DateinameKD = "DTVF_KD_" & Now.ToString("ddMMyyyy_HHmm") & ".csv"
fileKD = My.Computer.FileSystem.OpenTextFileWriter(pathKD & DateinameKD, True, System.Text.Encoding.GetEncoding("iso-8859-15")) fileKD = My.Computer.FileSystem.OpenTextFileWriter(pathKD & DateinameKD, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
fileKD.WriteLine(genStammdatenHeader(Geschaeftsjahr)) fileKD.WriteLine(genStammdatenHeader(Geschaeftsjahr))
fileKD.WriteLine(genStammdatenBeginn()) fileKD.WriteLine(genStammdatenBeginn())
initKDNr(dt_Stamm, FIRMA.Firma_ID) initKDNr(dt_Stamm, FIRMA.Firma_ID)
For Each r In dt_Stamm.Rows For Each r In dt_Stamm.Rows
fileKD.WriteLine(getPersonenKto(r)) fileKD.WriteLine(getPersonenKto(r))
Next Next
bool_DatenVorhanden = True bool_DatenVorhanden = True
fileKD.Close() fileKD.Close()
'In Archiv sichern
If pathArchivKD <> "" Then
If Not IO.Directory.Exists(pathArchivKD) Then IO.Directory.CreateDirectory(pathArchivKD)
If pathKD <> pathArchivKD Then IO.File.Copy(pathKD & DateinameKD, pathArchivKD & DateinameKD)
End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(pathKD & DateinameKD)
Else
IO.File.Delete(pathKD & DateinameKD)
End If
updateFibu(filialNr) ' UPDATE FiBuSchnittstelle --> 0
'In Archiv sichern
If pathArchivKD <> "" Then
If Not IO.Directory.Exists(pathArchivKD) Then IO.Directory.CreateDirectory(pathArchivKD)
If pathKD <> pathArchivKD Then IO.File.Copy(pathKD & DateinameKD, pathArchivKD & DateinameKD)
End If End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(pathKD & DateinameKD)
Else
IO.File.Delete(pathKD & DateinameKD)
End If
updateFibu(filialNr) ' UPDATE FiBuSchnittstelle --> 0
Return True
End If End If
Catch ex As Exception Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace) MsgBox(ex.Message & ex.StackTrace)
End Try End Try
@@ -160,100 +159,106 @@
Public Shared Function genDatensatzCSV_ALL(Optional OpenFile As Boolean = False, Optional boolKunden As Boolean = True, Optional boolBuchungen As Boolean = True, Optional Geschaeftsjahr As Integer = -1) As Boolean Public Shared Function genDatensatzCSV_ALL(firma As String, Optional OpenFile As Boolean = False, Optional boolKunden As Boolean = True, Optional boolBuchungen As Boolean = True, Optional Geschaeftsjahr As Integer = -1) As Boolean
genDatensatzCSV_ALL = True
If boolKunden Then
If Not genDatensatzCSV_Stammdaten(24, OpenFile, Geschaeftsjahr) Then genDatensatzCSV_ALL = False If firma <> "AMBAR" Then
MsgBox("Export für Firma" & firma & " nicht aktiviert")
Return False
End If End If
If boolBuchungen Then
If Not genDatensatzCSV_Buchungen(24, OpenFile, Geschaeftsjahr) Then genDatensatzCSV_ALL = False Dim CSV_ALL = True
If boolKunden Then
If Not genDatensatzCSV_Stammdaten(24, OpenFile, Geschaeftsjahr) Then
CSV_ALL = False
End If
End If
If boolBuchungen Then
If Not genDatensatzCSV_Buchungen(24, OpenFile, Geschaeftsjahr) Then
CSV_ALL = False
End If
End If End If
End Function Return CSV_ALL
End Function
Public Shared Function genDatensatzCSV_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False, Optional Geschaeftsjahr As Integer = -1) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean Public Shared Function genDatensatzCSV_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False, Optional Geschaeftsjahr As Integer = -1) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
Try Try
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
Dim bool_DatenVorhanden As Boolean = False Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
If Geschaeftsjahr <= 0 Then Geschaeftsjahr = Now.Year 'If(Now.Month = 1, Now.Year - 1, Now.Year) --> Bei IMEX ist das GJ=Wirtschaftsjahr
Dim bool_DatenVorhanden As Boolean = False
If Geschaeftsjahr <= 0 Then Geschaeftsjahr = Now.Year 'If(Now.Month = 1, Now.Year - 1, Now.Year) --> Bei IMEX ist das GJ=Wirtschaftsjahr
'nur UNISPED!! 'nur UNISPED!!
'DATEIPFAD für Buchungsdaten 'DATEIPFAD für Buchungsdaten
'------------------------------------------------------------------------------------------- '-------------------------------------------------------------------------------------------
Dim pathArchiv = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\ARCHIV\AR-DATEN\" Dim pathArchiv = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV\INTERFACE\DATEV\ARCHIV\AR-DATEN\" & FIRMA.Firma_Bez & "\"
Dim path = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\AR-DATEN\" & Geschaeftsjahr & "\" Dim path = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV\INTERFACE\DATEV\AR-DATEN\" & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
' path = pathArchiv 'TEST ' path = pathArchiv 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
pathArchiv = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\ARCHIV\AR-DATEN\" pathArchiv = " \\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\ARCHIV\AR-DATEN\" & FIRMA.Firma_Bez & "\"
path = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\AR-DATEN\" & Geschaeftsjahr & "\" path = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\INTERFACE\DATEV\AR-DATEN\" & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
End If End If
If Not IO.Directory.Exists(path) Then IO.Directory.CreateDirectory(path) If Not IO.Directory.Exists(path) Then IO.Directory.CreateDirectory(path)
If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv) If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
'------------------------------------------------------------------------------------------- '-------------------------------------------------------------------------------------------
Dim NameZusatz = "" Dim NameZusatz = ""
Dim Buchungsjahr = -1 Dim Buchungsjahr = -1
Select Case FIRMA.Firma_ID Select Case FIRMA.Firma_ID
Case 21 : NameZusatz = "UNISPED_AT_" : Buchungsjahr = Geschaeftsjahr Case 21 : NameZusatz = "UNISPED_AT_" : Buchungsjahr = Geschaeftsjahr
Case 22 : NameZusatz = "UNISPED_DE_" : Buchungsjahr = Geschaeftsjahr Case 22 : NameZusatz = "UNISPED_DE_" : Buchungsjahr = Geschaeftsjahr
Case 23 : NameZusatz = "UNISPED_ZS_" : Buchungsjahr = Geschaeftsjahr Case 23 : NameZusatz = "UNISPED_ZS_" : Buchungsjahr = Geschaeftsjahr
Case 24 : NameZusatz = "AMBAR_DE_" : Buchungsjahr = Geschaeftsjahr Case 24 : NameZusatz = "AMBAR_DE_" : Buchungsjahr = Geschaeftsjahr
End Select End Select
'----------------- Buchungssätze -----------------
TrdInvoice_FUNCTIONS.TrdinSchreiben(FIRMA.Firma_ID) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX )
Dim dt_Buchungen As DataTable = getBuchungen(FIRMA.Firma_ID)
If dt_Buchungen IsNot Nothing AndAlso dt_Buchungen.Rows.Count > 0 Then
Try
Dim file As System.IO.StreamWriter
Dim Dateiname = "DTVF_STB_" & NameZusatz & Now.ToString("ddMMyyyy_HHmm") & ".csv"
file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
'----------------- Buchungssätze ----------------- ' initKDNr(dt_Buchungen)
If True Then 'boolBuchungen Then Dim SummeBuchungen As Double = 0
TrdInvoice_FUNCTIONS.TrdinSchreiben(FIRMA.Firma_ID) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX ) file.WriteLine(genStapelbuchungsHeader(Geschaeftsjahr))
Dim dt_Buchungen As DataTable = getBuchungen(FIRMA.Firma_ID) file.WriteLine(genBuchungenBeginn())
If dt_Buchungen IsNot Nothing AndAlso dt_Buchungen.Rows.Count > 0 Then For Each r In dt_Buchungen.Rows
Try file.WriteLine(genBuchungsZeile(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
Dim file As System.IO.StreamWriter Next
Dim Dateiname = "DTVF_STB_" & NameZusatz & Now.ToString("ddMMyyyy_HHmm") & ".csv" ' file.WriteLine(genBuchungenEnd(SummeBuchungen))
file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15")) bool_DatenVorhanden = True
' initKDNr(dt_Buchungen) 'Update Filename TrdIn
Dim SummeBuchungen As Double = 0 SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname is null ", "FMZOLL")
file.WriteLine(genStapelbuchungsHeader(Geschaeftsjahr))
file.WriteLine(genBuchungenBeginn())
For Each r In dt_Buchungen.Rows
file.WriteLine(genBuchungsZeile(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
Next
' file.WriteLine(genBuchungenEnd(SummeBuchungen))
bool_DatenVorhanden = True
'Update Filename TrdIn file.Close()
SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname is null ", "FMZOLL")
file.Close()
'In Archiv sichern
If pathArchiv <> "" Then
If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
If path <> pathArchiv Then IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(path & Dateiname)
Else
IO.File.Delete(path & Dateiname)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
'In Archiv sichern
If pathArchiv <> "" Then
If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
If path <> pathArchiv Then IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
End If End If
End If
'----------------------------------
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(path & Dateiname)
Else
IO.File.Delete(path & Dateiname)
End If
Catch ex As Exception
Catch ex As Exception MsgBox(ex.Message & ex.StackTrace)
MsgBox(ex.Message & ex.StackTrace) End Try
End Try Return True
Return False End If
End Function Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function FormatStringDVO(s As Object, Optional length As Integer = -1, Optional defaultValue As String = "") As String Shared Function FormatStringDVO(s As Object, Optional length As Integer = -1, Optional defaultValue As String = "") As String
If s Is Nothing Then Return defaultValue If s Is Nothing Then Return defaultValue