This commit is contained in:
2023-01-21 10:36:41 +01:00
3 changed files with 2074 additions and 2059 deletions

View File

@@ -1,24 +1,25 @@
Public Class cDatev_Interface
Shared datevVersion As Integer = 700
Shared KreditorenNr As Integer = 16
Shared DebitorenNr As Integer = 16
Shared StapelbuchungsNr As Integer = 21
Shared BeraterNr As Integer = 1001
Shared MandantenNr As Integer = 99999
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
'STAMMDATEN
Shared Function getStammdaten() As DataTable
Dim sqlStr = "Select KundenNrZentrale As [Kontonummer], 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], [Strasse], 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], Adressen.landkz as [Länderkennzeichen]"
'STAMMDATEN
Shared Function getStammdaten() As DataTable
Dim sqlStr = "Select KundenNrZentrale As [Kontonummer], 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='5701' AND FiBuSchnittstelle=1 "
sqlStr &= "WHERE Auswahl='A' AND FilialenNr='5701' AND FiBuSchnittstelle=1 "
sqlStr &= " Order by [Kontonummer] "
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
End Function
End Function
'
Shared Function updateFibu() As DataTable
Shared Function updateFibu() As DataTable
Dim sqlStr = " UPDATE Kunden "
sqlStr &= " SET FiBuSchnittstelle = '0' "
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
@@ -40,9 +41,9 @@
personenRow &= row("Kontonummer") & ";" 'Mapping für KOntonummern einbauen weil bei AMBAR Kontonummer <> Kundennummer
personenRow &= FormatStringDVO(row("Name"), 50) & ";"
personenRow &= FormatStringDVO(row("Name2"), 50) & ";"
personenRow &= emptyFormatedValue(3)
personenRow &= FormatStringDVO(2) & ";" 'Typ Unternehmen
personenRow &= emptyFormatedValue()
personenRow &= emptyFormatedValue(4)
'personenRow &= FormatStringDVO(2) & ";" 'Typ Unternehmen
personenRow &= FormatStringDVO(row("Name"), 15) & ";"
personenRow &= FormatStringDVO(row("EU-Land")) & ";"
personenRow &= FormatStringDVO(row("EU-UstID")) & ";"
personenRow &= FormatStringDVO(row("Anrede")) & ";"
@@ -50,8 +51,8 @@
personenRow &= FormatStringDVO(row("Strasse"), 36) & ";"
personenRow &= emptyFormatedValue()
personenRow &= FormatStringDVO(row("PLZ")) & ";"
personenRow &= FormatStringDVO(row("Ort")) & ";"
personenRow &= Chr(34) & cProgramFunctions.getISO2Land(row("Länderkennzeichen")) & Chr(34) & ";"
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)
@@ -240,10 +241,11 @@
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(";", ",")
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
@@ -254,7 +256,7 @@
End Function
Shared Function getBuchungen(Firma_ID As Integer) As DataTable
Shared Function getBuchungen(Firma_ID As Integer) As DataTable
Dim sqlStr = " SELECT TOP (1000) 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
@@ -264,13 +266,14 @@
,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
WHERE IVO.Rechnungsnummer = '19400002'
WHERE Firma_ID ='1' AND Sachkonto <> ''
group by IVO.Rechnungsnummer,IVO.rechnungsdatum,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig
ORDER BY Rechnungsdatum, Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
'WHERE Firma_ID ='" & Firma_ID & "' AND TrdinDateiname Is Null
'WHERE IVO.Rechnungsnummer = '21400139'
End Function
@@ -286,7 +289,7 @@
Public Shared Function genStammdatenHeader() As String
Dim headerString = Chr(34) & "EXTF" & Chr(34) & ";" 'Export aus 3rd Party App
headerString &= datevVersion.ToString & ";" 'Versionnummer Datev
headerString &= KreditorenNr.ToString & ";" 'Debitoren\Kreditoren
headerString &= DebitorenNr.ToString & ";" 'Debitoren\Kreditoren
headerString &= Chr(34) & "Debitoren/Kreditoren" & Chr(34) & ";" 'Debitoren\Kreditoren
headerString &= "5;" 'Debitoren\Kreditoren
headerString &= ";;;;;"
@@ -330,28 +333,40 @@
Dim steuerbetragLokal As Double = 0
Dim GJ_short = Geschäftsjahr.ToString.Substring(2, 2)
Dim RgNrOld = FormatStringDVO(row("Rechnungsnummer")).Substring(2)
'Umsatz
If CBool(row("Steuerpflichtig")) Then
steuerbetragLokal = CDbl((getDbl2(row("SteuerpflichtigerBetragLokal")) * getDbl2(row("Steuersatz"))))
steuerbetragLokal += 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")) & ";" 'betrag + steuer (brutto)
genBuchungsZeile &= FormatStringDVO(Chr(83)) & ";" 'Soll-Haben-Steuerung!!!
'Soll oder Haben
genBuchungsZeile &= IIf(row("BelegartenNr") = "70", FormatStringDVO(Chr(83)), FormatStringDVO(Chr(72))) & ";"
'Fremdwährungen -> nicht benötigt
genBuchungsZeile &= emptyFormatedValue()
genBuchungsZeile &= emptyFormatedValueWithoutCommas(2)
genBuchungsZeile &= emptyFormatedValue()
'Debitorenkonto
genBuchungsZeile &= (initKDNr2(row("KundenNrZentrale"))) & ";"
'Erlöskonto
genBuchungsZeile &= fill0Stellen(row("Sachkonto"), 4) & ";"
'BU-Schlüssel -> nicht benötigt
genBuchungsZeile &= emptyFormatedValue()
'Belegdatum
genBuchungsZeile &= "" & CDate(row("Rechnungsdatum")).ToString("ddMM") & ";"
'Belegfeld1 -> Rechnungsnummer
genBuchungsZeile &= FormatStringDVO(row("Rechnungsnummer")).Substring(0, 2) & "-" & FormatStringDVO(row("Rechnungsnummer")).Substring(2) & ";"
'Belegfeld 2 -> nicht benötigt
genBuchungsZeile &= emptyFormatedValue()
genBuchungsZeile &= emptyFormatedValue() ' Skontoangabe
genBuchungsZeile &= FormatStringDVO(SQL.DLookup("[Ordnungsbegriff]", "Adressen", " AdressenNr= " & row("KundenNrZentrale"), "FMZOLL", "")) & ";"
' Skontoangabe -> Kontrollieren
genBuchungsZeile &= emptyFormatedValue()
'Buchungstext
genBuchungsZeile &= FormatStringDVO(row("Buchungstext"),, Chr(34) & Chr(34)) & ";"
'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
@@ -448,8 +463,8 @@
Try
If o Is Nothing Then Return 0
If o Is DBNull.Value Then Return 0
Return CDbl(o).ToString("N2").Replace(".", "") '.Replace(",", ".")
Catch ex As Exception
Return CDbl(o).ToString("F2").Replace(".", "").Replace(" ", "") '.Replace(",", ".")
Catch ex As Exception
Return 0
End Try
End Function