725 lines
42 KiB
VB.net
725 lines
42 KiB
VB.net
Imports System.IO
|
|
Imports System.Net
|
|
Imports DocumentFormat.OpenXml.Wordprocessing
|
|
|
|
Public Class cDatev_Interface
|
|
|
|
Shared datevVersion As Integer = 700
|
|
Shared Datenkategorie As Integer = 16
|
|
Shared StapelbuchungsNr As Integer = 21
|
|
Shared BeraterNr As Integer = 261677 '3050 Steuerberaterwechsel
|
|
Shared MandantenNr As Integer = 12138 '12533 Steuerberaterwechsel
|
|
Shared KontenlängePersonKto As Integer = 5
|
|
Shared KontenlängeSachKto As Integer = 4
|
|
Shared Formatversion As Integer = 4
|
|
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
'STAMMDATEN
|
|
Shared Function getStammdaten(filialNr As Integer) As DataTable
|
|
Dim sqlStr = "Select right([KundenNrZentrale],5) As [Kontonummer], isnull([Ordnungsbegriff],'') as Ordnungsbegriff, isnull([Name 1],'') as Name, isnull([Name 2],'') as Name2, LTRIM([Ort]) as Ort,KundenNr As [Kundennummer],isnull(UstIdKz,'') As [EU-Land] ,isnull(UstIdNr,'') As [EU-UstID], isnull(Anrede,'') as Anrede,isnull(KTO,'') as Bankkonto, isnull(BLZ,'') as [BLZ], '' as [Bankname], '' as [Länderkennzeichen Bank], '' as [IBAN], '' as [BIC], '' as [Anrede], '' as [Adresszusatz], ISNULL([Strasse],'') as Strasse, ISNULL(PLZ,'') as PLZ, isnull(UstIdNr,'') as [Steuernummer], isnull(Ansprechpartner,'') as [Ansprechpartner], isnull(Telefon,'') as [Telefonnummer], isnull([E-Mail],'') as [E-Mail], isnull([Telefax],'') as [Faxnummer], '' as [Internetadresse], isnull(Adressen.landkz,'') as [Länderkennzeichen]"
|
|
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
|
|
sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
|
|
sqlStr &= " LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz "
|
|
sqlStr &= " LEFT JOIN Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel "
|
|
sqlStr &= "WHERE Auswahl='A' AND FilialenNr='" & filialNr & "' And FiBuSchnittstelle = 1"
|
|
sqlStr &= " Order by [Kontonummer] "
|
|
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
End Function
|
|
|
|
Shared Function updateFibu(filialNr As Integer) As DataTable
|
|
Dim sqlStr = " UPDATE Kunden "
|
|
sqlStr &= " SET FiBuSchnittstelle = '0' "
|
|
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
|
|
sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
|
|
sqlStr &= " WHERE FiBuSchnittstelle=1 AND Auswahl='A' AND FilialenNr='" & filialNr & "' "
|
|
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
End Function
|
|
|
|
|
|
Public Shared Function genStammdatenBeginn() As String
|
|
Return "Konto;Name (Adressattyp Unternehmen);Unternehmensgegenstand;Name (Adressattyp natürl. Person);Vorname (Adressattyp natürl. Person);Name (Adressattyp keine Angabe);Adressattyp;Kurzbezeichnung;EU-Land;EU-UStID;Anrede;Titel/Akad. Grad;Adelstitel;Namensvorsatz;Adressart;Straße;Postfach;Postleitzahl;Ort;Land;Versandzusatz;Adresszusatz;Abweichende Anrede;Abw. Zustellbezeichnung 1;Abw. Zustellbezeichnung 2;Kennz. Korrespondenzadresse;Adresse Gültig von;Adresse Gültig bis;Telefon;Bemerkung (Telefon);Telefon GL;Bemerkung (Telefon GL);E-Mail;Bemerkung (E-Mail);Internet;Bemerkung (Internet);Fax;Bemerkung (Fax);Sonstige;Bemerkung (Sonstige);Bankleitzahl 1;Bankbezeichnung 1;Bank-Kontonummer 1;Länderkennzeichen 1;IBAN-Nr. 1;Leerfeld;SWIFT-Code 1;Abw. Kontoinhaber 1;Kennz. Hauptbankverb. 1;Bankverb 1 Gültig von;Bankverb 1 Gültig bis;Bankleitzahl 2;Bankbezeichnung 2;Bank-Kontonummer 2;Länderkennzeichen 2;IBAN-Nr. 2;Leerfeld;SWIFT-Code 2;Abw. Kontoinhaber 2;Kennz. Hauptbankverb. 2;Bankverb 2 Gültig von;Bankverb 2 Gültig bis;Bankleitzahl 3;Bankbezeichnung 3;Bank-Kontonummer 3;Länderkennzeichen 3;IBAN-Nr. 3;Leerfeld;SWIFT-Code 3;Abw. Kontoinhaber 3;Kennz. Hauptbankverb. 3;Bankverb 3 Gültig von;Bankverb 3 Gültig bis;Bankleitzahl 4;Bankbezeichnung 4;Bank-Kontonummer 4;Länderkennzeichen 4;IBAN-Nr. 4;Leerfeld;SWIFT-Code 4;Abw. Kontoinhaber 4;Kennz. Hauptbankverb. 4;Bankverb 4 Gültig von;Bankverb 4 Gültig bis;Bankleitzahl 5;Bankbezeichnung 5;Bank-Kontonummer 5;Länderkennzeichen 5;IBAN-Nr. 5;Leerfeld;SWIFT-Code 5;Abw. Kontoinhaber 5;Kennz. Hauptbankverb. 5;Bankverb 5 Gültig von;Bankverb 5 Gültig bis;Leerfeld;Briefanrede;Grußformel;Kunden-/Lief.-Nr.;Steuernummer;Sprache;Ansprechpartner;Vertreter;Sachbearbeiter;Diverse-Konto;Ausgabeziel;Währungssteuerung;Kreditlimit (Debitor);Zahlungsbedingung;Fälligkeit in Tagen (Debitor);Skonto in Prozent (Debitor);Kreditoren-Ziel 1 Tg.;Kreditoren-Skonto 1 %;Kreditoren-Ziel 2 Tg.;Kreditoren-Skonto 2 %;Kreditoren-Ziel 3 Brutto Tg.;Kreditoren-Ziel 4 Tg.;Kreditoren-Skonto 4 %;Kreditoren-Ziel 5 Tg.;Kreditoren-Skonto 5 %;Mahnung;Kontoauszug;Mahntext 1;Mahntext 2;Mahntext 3;Kontoauszugstext;Mahnlimit Betrag;Mahnlimit %;Zinsberechnung;Mahnzinssatz 1;Mahnzinssatz 2;Mahnzinssatz 3;Lastschrift;Leerfeld;Mandantenbank;Zahlungsträger;Indiv. Feld 1;Indiv. Feld 2;Indiv. Feld 3;Indiv. Feld 4;Indiv. Feld 5;Indiv. Feld 6;Indiv. Feld 7;Indiv. Feld 8;Indiv. Feld 9;Indiv. Feld 10;Indiv. Feld 11;Indiv. Feld 12;Indiv. Feld 13;Indiv. Feld 14;Indiv. Feld 15;Abweichende Anrede (Rechnungsadresse);Adressart (Rechnungsadresse);Straße (Rechnungsadresse);Postfach (Rechnungsadresse);Postleitzahl (Rechnungsadresse);Ort (Rechnungsadresse);Land (Rechnungsadresse);Versandzusatz (Rechnungsadresse);Adresszusatz (Rechnungsadresse);Abw. Zustellbezeichnung 1 (Rechnungsadresse);Abw. Zustellbezeichnung 2 (Rechnungsadresse);Adresse Gültig von (Rechnungsadresse);Adresse Gültig bis (Rechnungsadresse);Bankleitzahl 6;Bankbezeichnung 6;Bank-Kontonummer 6;Länderkennzeichen 6;IBAN-Nr. 6;Leerfeld;SWIFT-Code 6;Abw. Kontoinhaber 6;Kennz. Hauptbankverb. 6;Bankverb 6 Gültig von;Bankverb 6 Gültig bis;Bankleitzahl 7;Bankbezeichnung 7;Bank-Kontonummer 7;Länderkennzeichen 7;IBAN-Nr. 7;Leerfeld;SWIFT-Code 7;Abw. Kontoinhaber 7;Kennz. Hauptbankverb. 7;Bankverb 7 Gültig von;Bankverb 7 Gültig bis;Bankleitzahl 8;Bankbezeichnung 8;Bank-Kontonummer 8;Länderkennzeichen 8;IBAN-Nr. 8;Leerfeld;SWIFT-Code 8;Abw. Kontoinhaber 8;Kennz. Hauptbankverb. 8;Bankverb 8 Gültig von;Bankverb 8 Gültig bis;Bankleitzahl 9;Bankbezeichnung 9;Bank-Kontonummer 9;Länderkennzeichen 9;IBAN-Nr. 9;Leerfeld;SWIFT-Code 9;Abw. Kontoinhaber 9;Kennz. Hauptbankverb. 9;Bankverb 9 Gültig von;Bankverb 9 Gültig bis;Bankleitzahl 10;Bankbezeichnung 10;Bank-Kontonummer 10;Länderkennzeichen 10;IBAN-Nr. 10;Leerfeld;SWIFT-Code 10;Abw. Kontoinhaber 10;Kennz. Hauptbankverb. 10;Bankverb 10 Gültig von;Bankverb 10 Gültig bis;Nummer Fremdsystem;Insolvent;SEPA-Mandatsreferenz 1;SEPA-Mandatsreferenz 2;SEPA-Mandatsreferenz 3;SEPA-Mandatsreferenz 4;SEPA-Mandatsreferenz 5;SEPA-Mandatsreferenz 6;SEPA-Mandatsreferenz 7;SEPA-Mandatsreferenz 8;SEPA-Mandatsreferenz 9;SEPA-Mandatsreferenz 10;Verknüpftes OPOS-Konto;Mahnsperre bis;Lastschriftsperre bis;Zahlungssperre bis;Gebührenberechnung;Mahngebühr 1;Mahngebühr 2;Mahngebühr 3;Pauschalenberechnung;Verzugspauschale 1;Verzugspauschale 2;Verzugspauschale 3;Alternativer Suchname;Status;Anschrift manuell geändert (Korrespondenzadresse);Anschrift individuell (Korrespondenzadresse);Anschrift manuell geändert (Rechnungsadresse);Anschrift individuell (Rechnungsadresse);Fristberechnung bei Debitor;Mahnfrist 1;Mahnfrist 2;Mahnfrist 3;Letzte Frist"
|
|
End Function
|
|
|
|
|
|
Public Shared Function getPersonenKto(row As DataRow) As String
|
|
|
|
Dim personenRow As String = ""
|
|
|
|
personenRow &= row("Kontonummer") & ";" 'Mapping für KOntonummern einbauen weil bei AMBAR Kundennummer <> DebitorenNr Datev
|
|
personenRow &= FormatStringDVO(row("Name"), 50) & ";"
|
|
personenRow &= FormatStringDVO(row("Name2"), 50) & ";"
|
|
personenRow &= emptyFormatedValue(4)
|
|
'personenRow &= FormatStringDVO(2) & ";" 'Typ Unternehmen
|
|
personenRow &= FormatStringDVO(row("Ordnungsbegriff"), 15) & ";"
|
|
personenRow &= FormatStringDVO(row("EU-Land")) & ";"
|
|
personenRow &= FormatStringDVO(row("EU-UstID")) & ";"
|
|
personenRow &= FormatStringDVO(row("Anrede")) & ";"
|
|
personenRow &= emptyFormatedValue(4)
|
|
personenRow &= FormatStringDVO(row("Strasse"), 36) & ";"
|
|
personenRow &= emptyFormatedValue()
|
|
personenRow &= FormatStringDVO(row("PLZ")) & ";"
|
|
personenRow &= FormatStringDVO(row("Ort"), 30) & ";"
|
|
personenRow &= IIf(row("Länderkennzeichen") <> "", Chr(34) & cProgramFunctions.getISO2Land(row("Länderkennzeichen")) & Chr(34) & ";", emptyFormatedValue())
|
|
personenRow &= emptyFormatedValue()
|
|
personenRow &= FormatStringDVO(row("Adresszusatz")) & ";"
|
|
personenRow &= emptyFormatedValue(6)
|
|
personenRow &= FormatStringDVO(row("Telefonnummer")) & ";"
|
|
personenRow &= emptyFormatedValue(3)
|
|
personenRow &= FormatStringDVO(row("E-Mail")) & ";"
|
|
personenRow &= emptyFormatedValue()
|
|
personenRow &= FormatStringDVO(row("Internetadresse")) & ";"
|
|
personenRow &= emptyFormatedValue()
|
|
personenRow &= FormatStringDVO(row("Faxnummer")) & ";"
|
|
personenRow &= emptyFormatedValue(3)
|
|
personenRow &= FormatStringDVO(row("BLZ")) & ";"
|
|
personenRow &= emptyFormatedValue()
|
|
personenRow &= FormatStringDVO(row("Bankkonto")) & ";"
|
|
personenRow &= emptyFormatedValue()
|
|
personenRow &= FormatStringDVO(row("IBAN")) & ";"
|
|
personenRow &= emptyFormatedValue(197)
|
|
|
|
Return personenRow
|
|
|
|
End Function
|
|
|
|
|
|
Public Shared Function genDatensatzCSV_Stammdaten(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False, Optional Geschaeftsjahr As Integer = -1, Optional filepath As String = "", Optional automatischerExport As Boolean = True) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
|
|
Try
|
|
|
|
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
|
|
Dim filialNr As Integer
|
|
|
|
Select Case FIRMA.Firma_ID
|
|
Case 24 : filialNr = 5701
|
|
|
|
Case Else : filialNr = -1
|
|
|
|
|
|
End Select
|
|
|
|
|
|
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
|
|
|
|
'DATEIPFAD für Stammdaten
|
|
'-------------------------------------------------------------------------------------------
|
|
Dim pathArchivKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATEV\ARCHIV\STAMMDATEN\" & FIRMA.Firma_Bez & "\"
|
|
Dim pathKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATEV\STAMMDATEN\ " & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
|
|
'pathKD = pathArchivKD 'TEST
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
pathArchivKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\DATEV\ARCHIV\STAMMDATEN\" & FIRMA.Firma_Bez & "\"
|
|
pathKD = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\DATEV\STAMMDATEN\ " & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
|
|
'pathArchivKD = ""
|
|
End If
|
|
If Not System.IO.Directory.Exists(pathKD) Then System.IO.Directory.CreateDirectory(pathKD)
|
|
If Not System.IO.Directory.Exists(pathArchivKD) Then System.IO.Directory.CreateDirectory(pathArchivKD)
|
|
'-------------------------------------------------------------------------------------------
|
|
|
|
|
|
'----------------- STAMMDATEN -----------------
|
|
Dim dt_Stamm As DataTable = getStammdaten(filialNr)
|
|
|
|
If True Then 'dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
|
|
|
|
Dim fileKD As System.IO.StreamWriter
|
|
Dim DateinameKD = "EXTF_DTVF_KD_" & Now.ToString("ddMMyyyy_HHmm") & ".csv"
|
|
fileKD = My.Computer.FileSystem.OpenTextFileWriter(pathKD & DateinameKD, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
|
|
|
|
Dim month As String = IIf(automatischerExport, Now.AddDays(-1).Month.ToString("d2"), Now.Month.ToString("d2"))
|
|
fileKD.WriteLine(genStammdatenHeader(Geschaeftsjahr, month))
|
|
fileKD.WriteLine(genStammdatenBeginn())
|
|
|
|
initKDNr(dt_Stamm, FIRMA.Firma_ID)
|
|
For Each r In dt_Stamm.Rows
|
|
fileKD.WriteLine(getPersonenKto(r))
|
|
Next
|
|
bool_DatenVorhanden = True
|
|
|
|
|
|
fileKD.Close()
|
|
|
|
'In Archiv sichern
|
|
If pathArchivKD <> "" Then
|
|
If Not System.IO.Directory.Exists(pathArchivKD) Then System.IO.Directory.CreateDirectory(pathArchivKD)
|
|
If pathKD <> pathArchivKD Then System.IO.File.Copy(pathKD & DateinameKD, pathArchivKD & DateinameKD)
|
|
End If
|
|
|
|
If bool_DatenVorhanden Then
|
|
If OpenFile Then Process.Start(pathKD & DateinameKD)
|
|
Else
|
|
System.IO.File.Delete(pathKD & DateinameKD)
|
|
End If
|
|
|
|
updateFibu(filialNr) ' UPDATE FiBuSchnittstelle --> 0
|
|
filepath = pathKD & DateinameKD
|
|
Return True
|
|
End If
|
|
|
|
|
|
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
|
|
|
|
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, Optional PathList As List(Of String) = Nothing, Optional automatischerExport As Boolean = True, Optional kindOfExport As String = "mail") As Boolean
|
|
|
|
If PathList IsNot Nothing Then
|
|
PathList.Clear()
|
|
End If
|
|
|
|
Dim Path = ""
|
|
Dim ExportfileCreated = False
|
|
|
|
If firma <> "AMBAR" Then
|
|
MsgBox("Export für Firma" & firma & " nicht aktiviert")
|
|
Return ExportfileCreated
|
|
End If
|
|
|
|
Select Case kindOfExport
|
|
Case "mail"
|
|
|
|
If boolKunden Then
|
|
If genDatensatzCSV_Stammdaten(24, OpenFile, Geschaeftsjahr, Path, automatischerExport) Then
|
|
ExportfileCreated = True
|
|
If Path <> "" Then PathList.Add(Path)
|
|
End If
|
|
End If
|
|
If boolBuchungen Then
|
|
If genDatensatzCSV_Buchungen(24, OpenFile, Geschaeftsjahr, Path, automatischerExport) Then
|
|
ExportfileCreated = True
|
|
If Path <> "" Then PathList.Add(Path)
|
|
End If
|
|
End If
|
|
Return ExportfileCreated
|
|
|
|
|
|
Case "ftp"
|
|
Try
|
|
|
|
Dim API As New DataTable
|
|
Dim Program = "DATEV-PDF"
|
|
API = SQL.loadDgvBySql("SELECT top(1) * FROM tblAPIEinstellungen WHERE api_program='" & Program & "' and api_productive ='" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "0", "1") & "'", "ADMIN")
|
|
If API.Rows.Count = 0 Then
|
|
MsgBox("keine gültigen FTP-Einstellungen für " & Program & " gefunden!" & vbNewLine & "Vorgang wird abgebrochen!")
|
|
Return ExportfileCreated
|
|
Else
|
|
|
|
|
|
Dim client As WebClient = New WebClient
|
|
client.Credentials = New NetworkCredential(API.Rows(0).Item("api_user").ToString, API.Rows(0).Item("api_password").ToString)
|
|
|
|
|
|
If boolKunden Then
|
|
If genDatensatzCSV_Stammdaten(24, OpenFile, Geschaeftsjahr, Path, automatischerExport) Then
|
|
ExportfileCreated = True
|
|
If Path <> "" Then
|
|
Dim fi As FileInfo = New FileInfo(Path)
|
|
client.UploadFile(API.Rows(0).Item("api_url") & "/DATEV/ " & fi.Name, Path)
|
|
End If
|
|
End If
|
|
End If
|
|
If boolBuchungen Then
|
|
If genDatensatzCSV_Buchungen(24, OpenFile, Geschaeftsjahr, Path, automatischerExport) Then
|
|
ExportfileCreated = True
|
|
If Path <> "" Then
|
|
Dim fi As FileInfo = New FileInfo(Path)
|
|
client.UploadFile(API.Rows(0).Item("api_url") & "/DATEV/ " & fi.Name, Path)
|
|
End If
|
|
End If
|
|
End If
|
|
Return ExportfileCreated
|
|
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox("FTP Fehler!" & ex.Message & ex.StackTrace)
|
|
Return False
|
|
End Try
|
|
|
|
|
|
End Select
|
|
|
|
|
|
End Function
|
|
|
|
Public Shared Function genDatensatzCSV_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False, Optional Geschaeftsjahr As Integer = -1, Optional ByRef filepath As String = "", Optional automatischerExport As Boolean = True) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
|
|
Try
|
|
|
|
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
|
|
|
|
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!!
|
|
|
|
'DATEIPFAD für Buchungsdaten
|
|
'-------------------------------------------------------------------------------------------
|
|
Dim pathArchiv = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATEV\ARCHIV\AR-DATEN\" & FIRMA.Firma_Bez & "\"
|
|
Dim path = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATEV\AR-DATEN\" & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
|
|
' path = pathArchiv 'TEST
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
pathArchiv = " \\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\DATEV\ARCHIV\AR-DATEN\" & FIRMA.Firma_Bez & "\"
|
|
path = "\\datenarchiv.verag.ost.dmn\DATENARCHIV\DATENARCHIV_TESTSYSTEM\DATEV\AR-DATEN\" & FIRMA.Firma_Bez & "\" & Geschaeftsjahr & "\"
|
|
End If
|
|
If Not System.IO.Directory.Exists(path) Then System.IO.Directory.CreateDirectory(path)
|
|
If Not System.IO.Directory.Exists(pathArchiv) Then System.IO.Directory.CreateDirectory(pathArchiv)
|
|
'-------------------------------------------------------------------------------------------
|
|
|
|
Dim NameZusatz = ""
|
|
Dim Buchungsjahr = -1
|
|
Select Case FIRMA.Firma_ID
|
|
Case 21 : NameZusatz = "UNISPED_AT_" : Buchungsjahr = Geschaeftsjahr
|
|
Case 22 : NameZusatz = "UNISPED_DE_" : Buchungsjahr = Geschaeftsjahr
|
|
Case 23 : NameZusatz = "UNISPED_ZS_" : Buchungsjahr = Geschaeftsjahr
|
|
Case 24 : NameZusatz = "AMBAR_DE_" : Buchungsjahr = Geschaeftsjahr
|
|
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"))
|
|
|
|
' initKDNr(dt_Buchungen)
|
|
Dim SummeBuchungen As Double = 0
|
|
Dim month = IIf(automatischerExport, Now.AddDays(-1).Month, Now.Month)
|
|
file.WriteLine(genStapelbuchungsHeader(Geschaeftsjahr, month))
|
|
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
|
|
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 System.IO.Directory.Exists(pathArchiv) Then System.io.Directory.CreateDirectory(pathArchiv)
|
|
If path <> pathArchiv Then System.IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
|
|
End If
|
|
|
|
If bool_DatenVorhanden Then
|
|
If OpenFile Then Process.Start(path & Dateiname)
|
|
Else
|
|
System.IO.File.Delete(path & Dateiname)
|
|
End If
|
|
filepath = path & Dateiname
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
|
|
Return True
|
|
End If
|
|
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
|
|
If s Is Nothing Then Return defaultValue
|
|
If s Is DBNull.Value Then Return defaultValue
|
|
FormatStringDVO = s.ToString.Replace(";", ",")
|
|
FormatStringDVO = s.ToString.Replace(Chr(34), " ")
|
|
'FormatStringDVO = s.ToString.Replace(",", "")
|
|
'FormatStringDVO = s.ToString.Replace("""", "\22")
|
|
If length > 0 Then
|
|
If FormatStringDVO.Length > length Then FormatStringDVO = FormatStringDVO.Substring(0, length)
|
|
End If
|
|
|
|
FormatStringDVO = Chr(34) & FormatStringDVO & Chr(34)
|
|
|
|
End Function
|
|
|
|
Shared Function getBuchungen(Firma_ID As Integer) As DataTable
|
|
|
|
Dim sqlStr = " SELECT IVO.Rechnungsdatum,IVO.Rechnungsnummer,min(Speditionsbuch) as Speditionsbuch ,min(FilialenNr) as FilialenNr,min(AbfertigungsNr) as AbfertigungsNr,min(UnterNr) as UnterNr,min(Abfertigungsdatum) as Abfertigungsdatum,min(BelegartenNr) as BelegartenNr
|
|
,min(KundenNrZentrale) as [KundenNrZentrale],min(RechnungsKundenNr) as RechnungsKundenNr,min(RechnungsLandKz) as RechnungsLandKz,min(RechnungsUstIdKz) as RechnungsUstIdKz,min(RechnungsUstIdNr) as RechnungsUstIdNr
|
|
,min(Lastschrift+0) as Lastschrift,min(Steuerschlüssel) as Steuerschlüssel,min([Steuersatz %]) as Steuersatz,min(WährungLokal) as WährungLokal,min(SteuerbetragLokal) as SteuerbetragLokal,min(RechnungsbetragLokal) as RechnungsbetragLokal
|
|
,min(WährungFremd) as WährungFremd,min(SteuerbetragFremd) as SteuerbetragFremd,min(RechnungsbetragFremd) as RechnungsbetragFremd,min(TrdinDateiname) as TrdinDateiname,min(Abgleich_op_debitor+0) as Abgleich_op_debitor
|
|
,min(Nettozahlungsziel) as Nettozahlungsziel,min(Firma_ID) as Firma_ID,min(UStVAn_ID) as UStVAn_ID ,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig,sum(PROD.SteuerpflichtigerBetragLokal) as SteuerpflichtigerBetragLokal
|
|
,sum(PROD.SteuerfreierBetragLokal) as SteuerfreierBetragLokal,sum(PROD.SteuerpflichtigerBetragFremd) as SteuerpflichtigerBetragFremd,sum(PROD.SteuerfreierBetragFremd) as SteuerfreierBetragFremd,min(Belegdaten) as Belegdaten
|
|
,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext
|
|
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer And IVO.Rechnungsdatum = PROD.Rechnungsdatum
|
|
WHERE Firma_ID ='" & Firma_ID & "' AND TrdinDateiname Is Null
|
|
group by IVO.Rechnungsnummer,IVO.rechnungsdatum,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig
|
|
ORDER BY Rechnungsdatum, Rechnungsnummer "
|
|
|
|
' and IVO.Rechnungsnummer='21400139'
|
|
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
|
|
|
|
'WHERE Firma_ID ='" & Firma_ID & "' AND TrdinDateiname Is Null
|
|
End Function
|
|
|
|
Public Shared Function genBuchungenBeginn() As String
|
|
Return "Umsatz (ohne Soll/Haben-Kz);Soll/Haben-Kennzeichen;WKZ Umsatz;Kurs;Basis-Umsatz;WKZ Basis-Umsatz;Konto;Gegenkonto (ohne BU-Schlüssel);BU-Schlüssel;Belegdatum;Belegfeld 1;Belegfeld 2;Skonto;Buchungstext;Postensperre;Diverse Adressnummer;Geschäftspartnerbank;Sachverhalt;Zinssperre;Beleglink;Beleginfo - Art 1;Beleginfo - Inhalt 1;Beleginfo - Art 2;Beleginfo - Inhalt 2;Beleginfo - Art 3;Beleginfo - Inhalt 3;Beleginfo - Art 4;Beleginfo - Inhalt 4;Beleginfo - Art 5;Beleginfo - Inhalt 5;Beleginfo - Art 6;Beleginfo - Inhalt 6;Beleginfo - Art 7;Beleginfo - Inhalt 7;Beleginfo - Art 8;Beleginfo - Inhalt 8;KOST1 - Kostenstelle;KOST2 - Kostenstelle;Kost-Menge;EU-Land u. UStID;EU-Steuersatz;Abw. Versteuerungsart;Sachverhalt L+L;Funktionsergänzung L+L;BU 49 Hauptfunktionstyp;BU 49 Hauptfunktionsnummer;BU 49 Funktionsergänzung;Zusatzinformation - Art 1;Zusatzinformation- Inhalt 1;Zusatzinformation - Art 2;Zusatzinformation- Inhalt 2;Zusatzinformation - Art 3;Zusatzinformation- Inhalt 3;Zusatzinformation - Art 4;Zusatzinformation- Inhalt 4;Zusatzinformation - Art 5;Zusatzinformation- Inhalt 5;Zusatzinformation - Art 6;Zusatzinformation- Inhalt 6;Zusatzinformation - Art 7;Zusatzinformation- Inhalt 7;Zusatzinformation - Art 8;Zusatzinformation- Inhalt 8;Zusatzinformation - Art 9;Zusatzinformation- Inhalt 9;Zusatzinformation - Art 10;Zusatzinformation- Inhalt 10;Zusatzinformation - Art 11;Zusatzinformation- Inhalt 11;Zusatzinformation - Art 12;Zusatzinformation- Inhalt 12;Zusatzinformation - Art 13;Zusatzinformation- Inhalt 13;Zusatzinformation - Art 14;Zusatzinformation- Inhalt 14;Zusatzinformation - Art 15;Zusatzinformation- Inhalt 15;Zusatzinformation - Art 16;Zusatzinformation- Inhalt 16;Zusatzinformation - Art 17;Zusatzinformation- Inhalt 17;Zusatzinformation - Art 18;Zusatzinformation- Inhalt 18;Zusatzinformation - Art 19;Zusatzinformation- Inhalt 19;Zusatzinformation - Art 20;Zusatzinformation- Inhalt 20;Stück;Gewicht;Zahlweise;Forderungsart;Veranlagungsjahr;Zugeordnete Fälligkeit;Skontotyp;Auftragsnummer;Buchungstyp (Anzahlungen);USt-Schlüssel (Anzahlungen);EU-Land (Anzahlungen);Sachverhalt L+L (Anzahlungen);EU-Steuersatz (Anzahlungen);Erlöskonto (Anzahlungen);Herkunft-Kz;Buchungs GUID;KOST-Datum;SEPA-Mandatsreferenz;Skontosperre;Gesellschaftername;Beteiligtennummer;Identifikationsnummer;Zeichnernummer;Postensperre bis;Bezeichnung SoBil-Sachverhalt;Kennzeichen SoBil-Buchung;Festschreibung;Leistungsdatum;Datum Zuord. Steuerperiode;Fälligkeit;Generalumkehr (GU);Steuersatz;Land;Abrechnungsreferenz;BVV-Position"
|
|
End Function
|
|
Public Shared Function genBuchungenEnd() As String
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
|
|
Public Shared Function genStammdatenHeader(Geschäftsjahr As Integer, aktuellesMonat As String) As String
|
|
|
|
Dim day = New cFeiertage(Geschäftsjahr)
|
|
|
|
Dim headerString = Chr(34) & "EXTF" & Chr(34) & ";" 'Export aus 3rd Party App
|
|
headerString &= datevVersion.ToString & ";"
|
|
headerString &= Datenkategorie.ToString & ";"
|
|
headerString &= Chr(34) & "Debitoren/Kreditoren" & Chr(34) & ";" 'Debitoren\Kreditoren
|
|
headerString &= Formatversion.ToString & ";"
|
|
headerString &= emptyFormatedValueWithoutCommas(5)
|
|
headerString &= BeraterNr.ToString & ";" 'Beraternummer
|
|
headerString &= MandantenNr.ToString & ";" 'Mandantennummer
|
|
headerString &= Geschäftsjahr.ToString & "0101" & ";" 'WJ-Beginn
|
|
headerString &= KontenlängePersonKto.ToString & ";"
|
|
headerString &= Geschäftsjahr.ToString & aktuellesMonat.PadLeft(2, "0") & "01" & ";" 'DatumVon
|
|
headerString &= Geschäftsjahr.ToString & aktuellesMonat.PadLeft(2, "0") & day.GetLastyDayYInxMonth(Now.DayOfWeek, CInt(aktuellesMonat), Geschäftsjahr, True).Day & ";" 'DatumBis
|
|
headerString &= "IMPORT AUS AVISO;" 'Bezeichnung
|
|
headerString &= Chr(34) & Chr(34) & ";"
|
|
headerString &= emptyFormatedValueWithoutCommas(12)
|
|
Return headerString
|
|
End Function
|
|
|
|
Public Shared Function genStapelbuchungsHeader(Geschäftsjahr As Integer, aktuellesMonat As String) As String
|
|
Dim headerString = Chr(34) & "EXTF" & Chr(34) & ";" 'Export aus 3rd Party App
|
|
Dim day = New cFeiertage(Geschäftsjahr)
|
|
headerString &= datevVersion.ToString & ";" 'Versionnummer Datev
|
|
headerString &= StapelbuchungsNr.ToString & ";" 'Stapelbuchungen
|
|
headerString &= Chr(34) & "Buchungsstapel" & Chr(34) & ";" 'Buchungsstapel
|
|
headerString &= "11;" 'Buchungsstapel -> 12 nicht möglich, steht aber in Schnittsetllenbeschreibung, 11 laut Testdaten???
|
|
headerString &= emptyFormatedValueWithoutCommas(5)
|
|
headerString &= BeraterNr.ToString & ";"
|
|
headerString &= MandantenNr.ToString & ";"
|
|
headerString &= Geschäftsjahr.ToString & "0101" & ";" 'WJ-Beginn
|
|
headerString &= KontenlängeSachKto.ToString & ";"
|
|
headerString &= Geschäftsjahr.ToString & aktuellesMonat.PadLeft(2, "0") & "01" & ";" 'DatumVon
|
|
headerString &= Geschäftsjahr.ToString & aktuellesMonat.PadLeft(2, "0") & day.GetLastyDayYInxMonth(Now.DayOfWeek, CInt(aktuellesMonat), Geschäftsjahr, True).Day & ";" 'DatumBis
|
|
headerString &= "IMPORT AUS AVISO;" 'Bezeichnung
|
|
headerString &= Chr(34) & Chr(34) & ";"
|
|
headerString &= emptyFormatedValueWithoutCommas(12)
|
|
Return headerString
|
|
End Function
|
|
|
|
Public Shared Function genStammdatenEnd() As String
|
|
Return ""
|
|
End Function
|
|
Public Shared Function genBuchungsZeile(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen) As String
|
|
genBuchungsZeile = ""
|
|
Dim steuerbetragLokal As Double = 0
|
|
Dim steuerbetragFremd As Double = 0
|
|
Dim GJ_short = Geschäftsjahr.ToString.Substring(2, 2)
|
|
Dim RgNrOld = FormatStringDVO(row("Rechnungsnummer")).Substring(2)
|
|
Dim fremdW = FormatStringDVO(row("WährungFremd"))
|
|
Dim RgBetrWährungLokal As Double = 0
|
|
Dim RgBetrWährungFremd As Double = 0
|
|
Dim BelegBez As String
|
|
Dim BelegKz As String
|
|
Dim SollHabenKz As Char
|
|
|
|
Select Case row("BelegartenNr")
|
|
|
|
Case 70
|
|
BelegBez = "Rechnung"
|
|
BelegKz = "AR"
|
|
SollHabenKz = Chr(72)
|
|
|
|
Case 71
|
|
BelegBez = "Gutschrift"
|
|
BelegKz = "AG"
|
|
SollHabenKz = Chr(83)
|
|
|
|
'Select Case row("RechnungsKundenNr")
|
|
' Case "13401"
|
|
' BelegKz = "ARG" '????
|
|
'End Select
|
|
|
|
|
|
Case Else
|
|
BelegBez = ""
|
|
BelegKz = ""
|
|
|
|
End Select
|
|
|
|
|
|
'Umsatz
|
|
If CBool(row("Steuerpflichtig")) Then
|
|
steuerbetragLokal += CDbl((getDbl2(row("SteuerpflichtigerBetragLokal")) * getDbl2(row("Steuersatz"))))
|
|
steuerbetragFremd += CDbl((getDbl2(row("SteuerpflichtigerBetragFremd")) * getDbl2(row("Steuersatz"))))
|
|
End If
|
|
|
|
' If steuerbetragLokal < 0 Then steuerbetragLokal = steuerbetragLokal * -1 --> SONST PROBLKEM BEI UNISPED; DA STEUER vom NETTO abgezogen wird!
|
|
'genBuchungsZeile &= getDbltr(getDbl(row("SteuerpflichtigerBetragLokal")) + getDbl(row("SteuerfreierBetragLokal")) + getDbl(row("SteuerpflichtigerBetragFremd")) + getDbl(row("SteuerfreierBetragFremd")) + If(steuerbetragLokal <> 0, getDbltr(steuerbetragLokal), "0")) + +If(steuerbetragFremd <> 0, getDbltr(steuerbetragFremd), "0")) & ";" 'betrag + steuer (brutto)
|
|
If fremdW <> "" Then
|
|
RgBetrWährungFremd = getDbltr(getDbl(row("SteuerpflichtigerBetragFremd")) + getDbl(row("SteuerfreierBetragFremd")) + If(steuerbetragFremd <> 0, getDbltr(steuerbetragFremd), "0"))
|
|
genBuchungsZeile &= IIf(RgBetrWährungFremd < 0, RgBetrWährungFremd * -1, RgBetrWährungFremd) & ";"
|
|
Else
|
|
RgBetrWährungLokal = getDbltr(getDbl(row("SteuerpflichtigerBetragLokal")) + getDbl(row("SteuerfreierBetragLokal")) + If(steuerbetragLokal <> 0, getDbltr(steuerbetragLokal), "0"))
|
|
genBuchungsZeile &= IIf(RgBetrWährungLokal < 0, RgBetrWährungLokal * -1, RgBetrWährungLokal) & ";"
|
|
End If
|
|
|
|
|
|
'Soll oder Haben
|
|
genBuchungsZeile &= FormatStringDVO(SollHabenKz) & ";"
|
|
|
|
'Fremdwährungen
|
|
If fremdW <> "" Then
|
|
genBuchungsZeile &= fremdW & ";"
|
|
genBuchungsZeile &= RgBetrWährungLokal / RgBetrWährungFremd + RgBetrWährungLokal Mod RgBetrWährungFremd
|
|
genBuchungsZeile &= emptyFormatedValue()
|
|
genBuchungsZeile &= FormatStringDVO(row("WährungLokal")) & ";"
|
|
|
|
Else
|
|
genBuchungsZeile &= emptyFormatedValue()
|
|
genBuchungsZeile &= emptyFormatedValueWithoutCommas(2)
|
|
genBuchungsZeile &= emptyFormatedValue()
|
|
End If
|
|
|
|
|
|
'Erlöskonto
|
|
genBuchungsZeile &= fill0Stellen(row("Sachkonto"), 4) & ";"
|
|
|
|
'Debitorenkonto
|
|
genBuchungsZeile &= (initKDNr2(row("KundenNrZentrale"), FIRMA.Firma_ID)) & ";"
|
|
|
|
'BU-Schlüssel -> nicht benötigt
|
|
genBuchungsZeile &= emptyFormatedValue()
|
|
|
|
'genBuchungsZeile &= getSteuercode(row, FIRMA) & ";"
|
|
'If CBool(row("Steuerpflichtig")) Then
|
|
' genBuchungsZeile &= (getDbl2(row("Steuersatz")) * 100) & ";" 'buchcode === 1 oder 2??
|
|
'Else
|
|
' genBuchungsZeile &= "0;" 'buchcode === 1 oder 2??
|
|
'End If
|
|
|
|
|
|
'Belegdatum
|
|
genBuchungsZeile &= "" & CDate(row("Rechnungsdatum")).ToString("ddMM") & ";"
|
|
|
|
'Belegfeld1 -> Rechnungsnummer
|
|
genBuchungsZeile &= FormatStringDVO(row("Rechnungsnummer")) & ";"
|
|
|
|
'Belegfeld 2 -> nicht benötigt (abweichendes Fälligkeitsdatum!)
|
|
genBuchungsZeile &= emptyFormatedValue()
|
|
|
|
' Skontoangabe -> nicht in Verwendung
|
|
genBuchungsZeile &= emptyFormatedValue()
|
|
|
|
'Buchungstext
|
|
'genBuchungsZeile &= FormatStringDVO(row("Buchungstext"),, Chr(34) & Chr(34)) & ";"
|
|
genBuchungsZeile &= FormatStringDVO(SQL.DLookup("[Ordnungsbegriff]", "Adressen", " AdressenNr= " & row("KundenNrZentrale"), "FMZOLL", "")) & ";"
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(25)
|
|
|
|
'UID-Nr
|
|
'genBuchungsZeile &= IIf(FormatStringDVO(row("RechnungsUstIdKz")) <> "", FormatStringDVO(row("RechnungsUstIdKz").Substring(0, 3)), "")
|
|
'genBuchungsZeile &= IIf(FormatStringDVO(row("RechnungsUstIdNr")) <> "", FormatStringDVO(row("RechnungsUstIdNr").Substring(1)), "") & ";"
|
|
genBuchungsZeile &= emptyFormatedValue(1)
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(7)
|
|
'Zusatzinformation Art1
|
|
genBuchungsZeile &= FormatStringDVO(BelegBez) & ";"
|
|
'Zusatzinformation Inhalt1
|
|
genBuchungsZeile &= FormatStringDVO("Datum " & CDate(row("Rechnungsdatum")).ToString("ddMMyyyy") & " Art " & BelegKz & row("Rechnungsnummer")) & ";"
|
|
'Zusatzinformation Art2
|
|
genBuchungsZeile &= FormatStringDVO(BelegBez & "positionen") & ";"
|
|
'Zusatzinformation Inhalt2
|
|
genBuchungsZeile &= FormatStringDVO(row("Leistungsbezeichnung"), 20) & ";"
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(45)
|
|
'USt-Schlüssel (Anzahlungen)
|
|
genBuchungsZeile &= FormatStringDVO("0") & ";"
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(8)
|
|
'keine Skontosperre - 0
|
|
genBuchungsZeile &= FormatStringDVO("0") & ";"
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(7)
|
|
'keine Festschreibung - 0
|
|
genBuchungsZeile &= FormatStringDVO("0") & ";"
|
|
'Leistungsdatum
|
|
genBuchungsZeile &= CDate(row("Abfertigungsdatum")).ToString("ddMMyyyy") & ";"
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(2)
|
|
'keine Generallumkehr - 0
|
|
genBuchungsZeile &= FormatStringDVO("0") & ";"
|
|
'Leerzeilen
|
|
genBuchungsZeile &= emptyFormatedValue(3)
|
|
|
|
'genBuchungsZeile &= FormatStringDVO(SQL.DLookup("[Ordnungsbegriff]", "Adressen", " AdressenNr= " & row("KundenNrZentrale"), "FMZOLL", "")) & ";"
|
|
'Dim KdAtrNr = SQL.DLookup("KdAuftragsNr", "Rechnungsausgang", "rechnungsnr='" & RgNrOld & "' And Buchungsjahr='" & Geschäftsjahr & "' and Firma_ID='" & FIRMA.Firma_ID & "'", "FMZOLL", "")
|
|
'KdAtrNr = KdAtrNr.ToString.Replace(vbNewLine, "").Replace(vbCr, "").Replace(vbLf, "").Replace(vbCrLf, "").Replace(System.Environment.NewLine, " ")
|
|
' genBuchungsZeile &= KdAtrNr & ";".Replace(Environment.NewLine, "") 'extbelegnr
|
|
|
|
' genBuchungsZeile &= If(row("BelegartenNr") = "70", "AR", "AG") & ";" ' Rg/GS 70=Rechnung 'AG ????????
|
|
' genBuchungsZeile &= If(row("BelegartenNr") = "70", "1", "2") & ";" ' Rg/GS 70=Rechnung 'AG ????????
|
|
|
|
|
|
'genBuchungsZeile &= getSteuercode(row, FIRMA) & ";"
|
|
' If CBool(row("Steuerpflichtig")) Then
|
|
' genBuchungsZeile &= (getDbl2(row("Steuersatz")) * 100) & ";" 'buchcode === 1 oder 2??
|
|
' Else
|
|
' genBuchungsZeile &= "0;" 'buchcode === 1 oder 2??
|
|
' End If
|
|
|
|
|
|
'genBuchungsZeile &= "" & If(steuerbetragLokal <> 0, getDbltr(steuerbetragLokal), "0") & ";" 'steuer
|
|
|
|
|
|
'genBuchungsZeile &= FormatStringDVO(row("Nettozahlungsziel")) & ";" ' Text
|
|
|
|
''... aus ...
|
|
'SummeBuchungen += getDbl(getDbl(row("SteuerpflichtigerBetragLokal")) + getDbl(row("SteuerfreierBetragLokal")))
|
|
|
|
|
|
End Function
|
|
|
|
Shared Sub initKDNr(ByRef dt As DataTable, ByVal firmaID As Integer)
|
|
|
|
Select Case firmaID
|
|
Case 24
|
|
|
|
For Each r In dt.Rows
|
|
If IsNumeric(r("Kontonummer")) AndAlso CInt(r("Kontonummer")) > 3000000 AndAlso r("Kontonummer").ToString.Length = 7 Then r("Kontonummer") = (CInt(r("Kontonummer")) - 3000000)
|
|
Next
|
|
|
|
|
|
Case Else
|
|
|
|
|
|
For Each r In dt.Rows
|
|
If IsNumeric(r("Kontonummer")) AndAlso CInt(r("Kontonummer")) > 2000000 Then r("Kontonummer") = (CInt(r("Kontonummer")) - 2000000)
|
|
' MsgBox((CInt(r("Konto-Nr")) - 1000000) + 200000)
|
|
Next
|
|
End Select
|
|
|
|
|
|
End Sub
|
|
|
|
Shared Function initKDNr2(ktoNr As String, ByVal firmaID As Integer) As String
|
|
Select Case firmaID
|
|
Case 24
|
|
If IsNumeric(ktoNr) AndAlso CInt(ktoNr) > 3000000 AndAlso ktoNr.Length = 7 Then ktoNr = (CInt(ktoNr) - 3000000) '- 300000
|
|
|
|
Case Else
|
|
|
|
If IsNumeric(ktoNr) AndAlso CInt(ktoNr) > 2000000 Then ktoNr = (CInt(ktoNr) - 2000000) '+ 200000
|
|
End Select
|
|
|
|
|
|
Return ktoNr
|
|
End Function
|
|
' Trdin=false
|
|
|
|
Shared Function getSteuercode(r As DataRow, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen) As String
|
|
Select Case r("Sachkonto")
|
|
'Case "3550", "3553", "3558"
|
|
' Return "999"
|
|
Case Else
|
|
|
|
If Not CBool(r("Steuerpflichtig")) Then
|
|
'Vorher immer return "" - galube es soll bei eu aber 77 sein...
|
|
If SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & r("RechnungsLandKz") & "'", "FMZOLL", False) Then
|
|
Return "77" ' EU-LAND
|
|
Else
|
|
Return "" ' Drittland
|
|
End If
|
|
Else
|
|
If (r("RechnungsLandKz")).ToString.Replace("AT", "A").Replace("DE", "D") = FIRMA.Firma_LandKz Then 'Abhängig von FIRMA --> INLAND!!!!!!
|
|
Return "1" 'Steuerpflichtig und AT
|
|
Else
|
|
If SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & r("RechnungsLandKz") & "'", "FMZOLL", False) Then
|
|
Return "77" ' EU-LAND
|
|
Else
|
|
Return "" ' Drittland
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End Select
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
|
|
Shared Function getDbl(o As Object) As Double
|
|
Try
|
|
If o Is Nothing Then Return 0
|
|
If o Is DBNull.Value Then Return 0
|
|
Return CDbl(o)
|
|
Catch ex As Exception
|
|
Return 0
|
|
End Try
|
|
End Function
|
|
Shared Function getDbl2(o As Object) As Double
|
|
Try
|
|
If o Is Nothing Then Return 0
|
|
If o Is DBNull.Value Then Return 0
|
|
Return CDbl(o.ToString.Replace(".", ","))
|
|
Catch ex As Exception
|
|
Return 0
|
|
End Try
|
|
End Function
|
|
Shared Function getDbltr(o As Object) As String
|
|
Try
|
|
If o Is Nothing Then Return 0
|
|
If o Is DBNull.Value Then Return 0
|
|
Return CDbl(o).ToString("F2").Replace(".", "").Replace(" ", "") '.Replace(",", ".")
|
|
Catch ex As Exception
|
|
Return 0
|
|
End Try
|
|
End Function
|
|
|
|
Shared Function fill0Stellen(i As Object, l As Integer) As String
|
|
If i Is DBNull.Value Then i = ""
|
|
If i Is Nothing Then i = ""
|
|
While i.ToString.Length < l
|
|
i &= "0"
|
|
End While
|
|
Return i
|
|
End Function
|
|
|
|
Shared Function emptyFormatedValue(Optional count As Integer = 1) As String
|
|
|
|
Dim retturnText As String = ""
|
|
|
|
For i = 1 To count
|
|
|
|
retturnText &= Chr(34) & Chr(34) & ";"
|
|
Next
|
|
|
|
Return retturnText
|
|
|
|
End Function
|
|
|
|
Shared Function emptyFormatedValueWithoutCommas(Optional count As Integer = 1) As String
|
|
|
|
Dim retturnText As String = ""
|
|
|
|
For i = 1 To count
|
|
|
|
retturnText &= ";"
|
|
|
|
Next
|
|
|
|
Return retturnText
|
|
|
|
End Function
|
|
|
|
|
|
|
|
End Class
|