new
This commit is contained in:
@@ -1,4 +1,633 @@
|
||||
Public Class cSyska_Interface
|
||||
Imports System.Text.RegularExpressions
|
||||
|
||||
Public Class cSyska_Interface
|
||||
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
'STAMMDATEN
|
||||
Shared Function getStammdaten(FiBuSchnittstelleNr) As DataTable
|
||||
Dim sqlStr = " Select KundenNrZentrale As [Konto-Nr],isnull([Name 1],'') as Name,isnull([Name 2],'') as [Name2],(isnull(UstIdKz,'') + isnull(UstIdNr,'')) as [UST-Id-Nummer],isnull(UstIdGeprüft,'') as [UID-Datum],[Strasse],Adressen.landkz ,PLZ,LTRIM([Ort]) as Ort,isnull(BLZ,'') as [BLZ],isnull(KTO,'') as [KTO], CASE WHEN CAST(Zahlungsziel as VARCHAR(3)) ='0' THEN '' ELSE CAST(Zahlungsziel as VARCHAR(3)) END as [ZZiel],/*'' as [SPz],'' as [STg],*/isnull([E-Mail],'') as [mail],'' AS Info1,'' AS Inf2, Zahlungsziel2, Zahlungsziel3,[E-Mail],[Telefon] ,Telefax "
|
||||
sqlStr &= " ,Ordnungsbegriff ,Kunden.Währungscode,Ansprechpartner,Lastschrift,Kunden.[Eingegeben am] as EingegebenAm"
|
||||
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 FiBuSchnittstelle=1 AND Auswahl='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' "
|
||||
sqlStr &= " Order by [Konto-Nr] "
|
||||
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
||||
End Function
|
||||
|
||||
Shared Function updateFibu(FiBuSchnittstelleNr) 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 FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' "
|
||||
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function getPersonenKto(row As DataRow) As String
|
||||
|
||||
Dim LandKz = row("LandKz")
|
||||
Dim Gegenkontonummer = ""
|
||||
Dim Gegenkontonummer2 = ""
|
||||
If LandKz Is DBNull.Value Or LandKz.trim = "" Or LandKz = "A" Then
|
||||
Gegenkontonummer = "4000" ' Erl. 20%
|
||||
Gegenkontonummer2 = "4000" ' Erl. 20%
|
||||
Else
|
||||
If CBool(SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & LandKz & "'", "FMZOLL", False)) Then
|
||||
Gegenkontonummer = "4020" ' Erl. 0% EU
|
||||
Gegenkontonummer2 = "4020" ' Erl. 0% EU
|
||||
Else
|
||||
Gegenkontonummer = "4021" ' Erl. 0% 3.Land
|
||||
Gegenkontonummer2 = "4021" ' Erl. 0% 3.Land
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper
|
||||
|
||||
Dim Lastschrift = CBool(row("Lastschrift"))
|
||||
|
||||
getPersonenKto = ""
|
||||
getPersonenKto &= row("Konto-Nr") & vbTab
|
||||
getPersonenKto &= FormatStringSYS(cleanStringName, 2) & row("Konto-Nr") & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("Name"), 50) & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("Name2"), 50) & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("Strasse"), 50) & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("PLZ"), 20) & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("Ort"), 50) & vbTab
|
||||
getPersonenKto &= cProgramFunctions.getISO2Land(FormatStringSYS(LandKz, 5)) & vbTab
|
||||
getPersonenKto &= CDate(row("EingegebenAm")).ToShortDateString & vbTab 'Eröffnungsdatum
|
||||
getPersonenKto &= vbTab
|
||||
getPersonenKto &= vbTab 'Bankname
|
||||
getPersonenKto &= If(Lastschrift, row("BLZ"), "") & vbTab
|
||||
getPersonenKto &= If(Lastschrift, row("KTO"), "") & vbTab
|
||||
getPersonenKto &= "00" & vbTab 'Skontotage
|
||||
getPersonenKto &= row("ZZiel").ToString("00") & vbTab
|
||||
getPersonenKto &= "00,00" & vbTab 'Skonto
|
||||
getPersonenKto &= "01" & vbTab 'Mahnkennung
|
||||
getPersonenKto &= FormatStringSYS(row("UST-Id-Nummer"), 50) & vbTab
|
||||
getPersonenKto &= vbTab
|
||||
getPersonenKto &= row("Währungscode") & vbTab
|
||||
getPersonenKto &= vbTab 'Forderungsonto
|
||||
getPersonenKto &= vbTab
|
||||
getPersonenKto &= Gegenkontonummer2 & vbTab 'Platzhalter??
|
||||
getPersonenKto &= FormatStringSYS(row("Ansprechpartner"), 100) & vbTab
|
||||
getPersonenKto &= vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("Telefon")) & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("Telefax")) & vbTab
|
||||
getPersonenKto &= FormatStringSYS(row("E-Mail")) & vbTab
|
||||
getPersonenKto &= vbTab
|
||||
getPersonenKto &= vbTab
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function genDatensatz_Stammdaten(FiBuSchnittstelleNr As Integer, Optional OpenFile As Boolean = False) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
|
||||
Try
|
||||
|
||||
Dim bool_DatenVorhanden As Boolean = False
|
||||
Dim Geschaeftsjahr = Now.Year 'If(Now.Month = 1, Now.Year - 1, Now.Year) --> Bei IMEX ist das GJ=Wirtschaftsjahr
|
||||
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(FiBuSchnittstelleNr)
|
||||
|
||||
'DATEIPFAD für Stammdaten
|
||||
'-------------------------------------------------------------------------------------------
|
||||
Dim pathArchivKD = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
|
||||
Dim pathKD = "\\fmzoll\f\FMZoll\FiBu\Syska\" & FIRMA.Firma_ID & "\"
|
||||
'pathKD = pathArchivKD 'TEST
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
||||
pathArchivKD = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
|
||||
pathKD = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\"
|
||||
|
||||
'path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir
|
||||
'pathArchivKD = ""
|
||||
End If
|
||||
If Not IO.Directory.Exists(pathKD) Then IO.Directory.CreateDirectory(pathKD)
|
||||
If Not IO.Directory.Exists(pathArchivKD) Then IO.Directory.CreateDirectory(pathArchivKD)
|
||||
'-------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
If True Then 'boolKunden Then
|
||||
'----------------- STAMMDATEN -----------------
|
||||
Dim dt_Stamm As DataTable = getStammdaten(FiBuSchnittstelleNr)
|
||||
If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
|
||||
|
||||
Dim fileKD As System.IO.StreamWriter
|
||||
Dim DateinameKD = "AVISO_DEBI_" & Now.ToString("ddMMyyyy_HHmm") & ".txt"
|
||||
fileKD = My.Computer.FileSystem.OpenTextFileWriter(pathKD & DateinameKD, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
|
||||
|
||||
|
||||
'fileKD.WriteLine(genStammdatenBeginn())
|
||||
|
||||
|
||||
|
||||
initKDNr(dt_Stamm)
|
||||
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 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
|
||||
|
||||
'NOCH NICHT!!!
|
||||
' updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Shared Function genDatensatz_ALL(Optional OpenFile As Boolean = False, Optional boolKunden As Boolean = True, Optional boolBuchungen As Boolean = True) As Boolean
|
||||
genDatensatz_ALL = True
|
||||
If boolKunden Then
|
||||
' If Not genDatensatz_Stammdaten(OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Stammdaten(1, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Stammdaten(7, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Stammdaten(11, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Stammdaten(17, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Stammdaten(19, OpenFile) Then genDatensatz_ALL = False
|
||||
End If
|
||||
If boolBuchungen Then
|
||||
If Not genDatensatz_Buchungen(1, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Buchungen(7, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Buchungen(11, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Buchungen(17, OpenFile) Then genDatensatz_ALL = False
|
||||
If Not genDatensatz_Buchungen(19, OpenFile) Then genDatensatz_ALL = False
|
||||
' If Not genDatensatzCSV_Buchungen(XX, OpenFile) Then genDatensatzCSV_ALL = False
|
||||
' If Not genDatensatzCSV_Buchungen(XX, OpenFile) Then genDatensatzCSV_ALL = False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Shared Function genDatensatz_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False) 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
|
||||
Dim Geschaeftsjahr = Now.Year 'If(Now.Month = 1, Now.Year - 1, Now.Year) --> Bei IMEX ist das GJ=Wirtschaftsjahr
|
||||
|
||||
'DATEIPFAD für Buchungsdaten
|
||||
'-------------------------------------------------------------------------------------------
|
||||
Dim pathArchiv = "\\datenarchiv\Datenarchiv\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
|
||||
Dim path = "\\fmzoll\f\FMZoll\FiBu\Syska\" & FIRMA.Firma_ID & "\"
|
||||
'pathKD = pathArchivKD 'TEST
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
||||
pathArchiv = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
|
||||
path = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\"
|
||||
|
||||
'path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir
|
||||
'pathArchivKD = ""
|
||||
End If
|
||||
|
||||
If Not IO.Directory.Exists(path) Then IO.Directory.CreateDirectory(path)
|
||||
If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
|
||||
'-------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
'----------------- Buchungssätze -----------------
|
||||
If True Then 'boolBuchungen Then
|
||||
' 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 = "AVISO_BUBE_" & Now.ToString("ddMMyyyy_HHmm") & ".txt"
|
||||
file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
|
||||
|
||||
' initKDNr(dt_Buchungen)
|
||||
Dim SummeBuchungen As Double = 0
|
||||
'file.WriteLine(genBuchungenBeginn()) 'not needed
|
||||
For Each r In dt_Buchungen.Rows
|
||||
|
||||
|
||||
Dim curDifferenzbetrag As Double = 0
|
||||
If r("WährungFremd") Is DBNull.Value Then
|
||||
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragLokal") < 0, 0 - r("RechnungsbetragLokal"), r("RechnungsbetragLokal")), 2)
|
||||
Else
|
||||
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragFremd") < 0, 0 - r("RechnungsbetragFremd"), r("RechnungsbetragFremd")), 2)
|
||||
End If
|
||||
|
||||
If r("BelegartenNr") = 70 Then 'RECHNUNG ---> Immer am Anfang
|
||||
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
|
||||
End If
|
||||
Dim dt_BuchungenZeilen As DataTable = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"))
|
||||
If dt_BuchungenZeilen IsNot Nothing AndAlso dt_BuchungenZeilen.Rows.Count > 0 Then
|
||||
For Each rz In dt_BuchungenZeilen.Rows
|
||||
file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag)) ' BuchungsZeilen...
|
||||
Next
|
||||
End If
|
||||
If curDifferenzbetrag <> 0 Then 'Differenz --> Ausgelich auf Diff.Konto
|
||||
file.WriteLine(genBuchungsZeileDiffBetrag(r, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag))
|
||||
End If
|
||||
If r("BelegartenNr") = 71 Then 'GUTSCHRIFT ---> Immer am Schluss
|
||||
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
|
||||
End If
|
||||
Next
|
||||
' file.WriteLine(genBuchungenEnd(SummeBuchungen))
|
||||
bool_DatenVorhanden = True
|
||||
|
||||
'Update Filename TrdIn 'NOCH NICHT!!!!
|
||||
' 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
|
||||
|
||||
End If
|
||||
End If
|
||||
'----------------------------------
|
||||
|
||||
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Shared Function FormatStringSYS(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
|
||||
FormatStringSYS = s.ToString.Replace(";", ",")
|
||||
'FormatStringSYS = s.ToString.Replace(",", "")
|
||||
'FormatStringSYS = s.ToString.Replace("""", "\22")
|
||||
If length > 0 Then
|
||||
If FormatStringSYS.Length > length Then FormatStringSYS = FormatStringSYS.Substring(0, length)
|
||||
End If
|
||||
End Function
|
||||
|
||||
Shared Function FormatStringDbl(s As Object, Optional Nachkommastellen As String = "2", Optional defaultValue As String = "") As String
|
||||
If s Is Nothing Then Return defaultValue
|
||||
If s Is DBNull.Value Then Return defaultValue
|
||||
If IsNumeric(s) Then Return CDbl(s).ToString("N" & Nachkommastellen)
|
||||
Return s.ToString
|
||||
End Function
|
||||
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
|
||||
,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,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd
|
||||
|
||||
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer
|
||||
WHERE Firma_ID ='" & Firma_ID & "' AND TrdinDateiname Is Null
|
||||
group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung*/,Steuerpflichtig
|
||||
ORDER BY Rechnungsdatum, Rechnungsnummer "
|
||||
' --and IVO.Rechnungsnummer=19400002
|
||||
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
||||
|
||||
End Function
|
||||
|
||||
Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date) As DataTable
|
||||
|
||||
Dim sqlStr = " SELECT TOP (1000) IVO.Rechnungsdatum,IVO.Rechnungsnummer, Speditionsbuch ,FilialenNr,AbfertigungsNr,UnterNr, Abfertigungsdatum, BelegartenNr
|
||||
, [KundenNrZentrale], RechnungsKundenNr,RechnungsLandKz, RechnungsUstIdKz, RechnungsUstIdNr
|
||||
, Lastschrift, Steuerschlüssel,[Steuersatz %] as Steuersatz,WährungLokal, SteuerbetragLokal, RechnungsbetragLokal
|
||||
,WährungFremd,SteuerbetragFremd,RechnungsbetragFremd,TrdinDateiname,Abgleich_op_debitor
|
||||
, Nettozahlungsziel, Firma_ID, UStVAn_ID,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig,PROD.SteuerpflichtigerBetragLokal as SteuerpflichtigerBetragLokal
|
||||
,PROD.SteuerfreierBetragLokal as SteuerfreierBetragLokal,PROD.SteuerpflichtigerBetragFremd as SteuerpflichtigerBetragFremd,PROD.SteuerfreierBetragFremd as SteuerfreierBetragFremd,Belegdaten
|
||||
,Sachkonto,Buchungstext, (PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, (PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd
|
||||
|
||||
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer
|
||||
WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND TrdinDateiname Is Null
|
||||
ORDER BY Rechnungsdatum, Rechnungsnummer "
|
||||
' --and IVO.Rechnungsnummer=19400002
|
||||
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Public Shared Function genBuchungsZeileSum(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen) As String
|
||||
genBuchungsZeileSum = ""
|
||||
|
||||
If row("BelegartenNr") = 70 Then 'RECHNUNG
|
||||
|
||||
Dim FiBuSollkontonummer = row("KundenNrZentrale")
|
||||
Dim FiBuHabenkontonummer = "0"
|
||||
|
||||
Dim Bruttobetrag As Double
|
||||
Dim FiBuWährung = ""
|
||||
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
Bruttobetrag = row("RechnungsbetragLokal") 'Bruttobetrag
|
||||
Else
|
||||
Bruttobetrag = row("RechnungsbetragFremd") 'Bruttobetrag
|
||||
End If
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
FiBuWährung = row("WährungLokal")
|
||||
Else
|
||||
FiBuWährung = row("WährungFremd")
|
||||
End If
|
||||
|
||||
Dim FiBuEigenbruttobetrag = row("RechnungsbetragLokal")
|
||||
|
||||
genBuchungsZeileSum = "L" & vbTab
|
||||
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
|
||||
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
|
||||
|
||||
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
|
||||
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
|
||||
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
|
||||
|
||||
genBuchungsZeileSum &= CDbl(Bruttobetrag).ToString("N2") & vbTab
|
||||
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
|
||||
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
|
||||
genBuchungsZeileSum &= FiBuWährung & vbTab
|
||||
genBuchungsZeileSum &= CDbl(FiBuEigenbruttobetrag).ToString("N2") & vbTab
|
||||
|
||||
|
||||
ElseIf row("BelegartenNr") = 71 Then 'GUTSCHRIFT
|
||||
' Buchungssatz Gutschrift (immer letzte Buchungszeile)
|
||||
|
||||
Dim FiBuWährung = ""
|
||||
Dim FiBuSollkontonummer = "0"
|
||||
Dim FiBuHabenkontonummer = row("KundenNrZentrale")
|
||||
Dim FiBuBruttobetrag As Double
|
||||
|
||||
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
FiBuWährung = row("WährungLokal")
|
||||
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragLokal")))
|
||||
Else
|
||||
FiBuWährung = row("WährungFremd")
|
||||
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragFremd")))
|
||||
End If
|
||||
|
||||
Dim FiBuEigenbruttobetrag = 0 - CDbl(row("RechnungsbetragLokal"))
|
||||
|
||||
genBuchungsZeileSum = "L" & vbTab
|
||||
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
|
||||
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
|
||||
|
||||
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
|
||||
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
|
||||
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
|
||||
|
||||
genBuchungsZeileSum &= CDbl(FiBuBruttobetrag).ToString("N2") & vbTab
|
||||
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
|
||||
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
|
||||
genBuchungsZeileSum &= FiBuWährung & vbTab
|
||||
genBuchungsZeileSum &= CDbl(FiBuEigenbruttobetrag).ToString("N2") & vbTab
|
||||
|
||||
End If
|
||||
|
||||
Return genBuchungsZeileSum
|
||||
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, ByRef curDifferenzbetrag As Double) As String
|
||||
|
||||
Dim curSteuerbetrag As Double
|
||||
Dim curNettobetrag As Double
|
||||
Dim curBruttobetrag As Double
|
||||
Dim FiBuBruttobetrag As String
|
||||
Dim FiBuEigenbruttobetrag As Double
|
||||
Dim FiBuSteuersatz As Double
|
||||
Dim FiBuSteuerbetrag As String
|
||||
Dim FiBuSollkontonummer As Integer
|
||||
Dim FiBuHabenkontonummer As Integer
|
||||
|
||||
|
||||
Dim FiBuWährung = "EUR"
|
||||
|
||||
Select Case row("BelegartenNr")
|
||||
Case 70 'Rechnung
|
||||
FiBuSollkontonummer = "0"
|
||||
FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ")
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
curNettobetrag = row("BetragLokal")
|
||||
Else
|
||||
curNettobetrag = row("BetragFremd")
|
||||
End If
|
||||
Case 71 'Gutschrift
|
||||
FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ")
|
||||
FiBuHabenkontonummer = "0"
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
curNettobetrag = 0 - row("BetragLokal")
|
||||
Else
|
||||
curNettobetrag = 0 - row("BetragFremd")
|
||||
End If
|
||||
End Select
|
||||
|
||||
If CBool(row("steuerpflichtig")) Then
|
||||
curSteuerbetrag = CLng(curNettobetrag * CDbl(row("Steuersatz")) * 100) / 100
|
||||
curBruttobetrag = curNettobetrag + curSteuerbetrag
|
||||
FiBuBruttobetrag = curBruttobetrag.ToString("N2")
|
||||
curDifferenzbetrag = Math.Round(curDifferenzbetrag, 2) - Math.Round(CDbl(FiBuBruttobetrag), 2)
|
||||
FiBuSteuersatz = Format(CDbl(row("Steuersatz")) * 100, "00.00")
|
||||
' Die folgende Zeile führt zu Buchungsfehler bei Fremdwährung,
|
||||
' Buchungssatz.FiBuSteuerbetrag = Format(curSteuerbetrag, "########0.00")
|
||||
' deshalb nur Steuerprozent und keinen Steuerbetrag übergeben.
|
||||
FiBuSteuerbetrag = ""
|
||||
Else
|
||||
curBruttobetrag = curNettobetrag
|
||||
FiBuBruttobetrag = curBruttobetrag.ToString("N2")
|
||||
curDifferenzbetrag = Math.Round(curDifferenzbetrag, 2) - Math.Round(CDbl(FiBuBruttobetrag), 2)
|
||||
FiBuSteuersatz = "00,00"
|
||||
FiBuSteuerbetrag = ""
|
||||
End If
|
||||
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragLokal")) 'Bruttobetrag
|
||||
FiBuWährung = row("WährungLokal")
|
||||
Else
|
||||
FiBuWährung = row("WährungFremd")
|
||||
FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragFremd")) 'Bruttobetrag
|
||||
End If
|
||||
|
||||
genBuchungsZeile = "L" & vbTab
|
||||
genBuchungsZeile &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
|
||||
genBuchungsZeile &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
|
||||
|
||||
genBuchungsZeile &= FiBuSollkontonummer & vbTab
|
||||
genBuchungsZeile &= FiBuHabenkontonummer & vbTab
|
||||
genBuchungsZeile &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
|
||||
|
||||
genBuchungsZeile &= FiBuBruttobetrag & vbTab
|
||||
genBuchungsZeile &= FiBuSteuersatz.ToString("N2") & vbTab 'FiBuSteuersatz
|
||||
genBuchungsZeile &= FormatStringDbl(FiBuSteuerbetrag) & vbTab 'FiBuSteuerbetrag
|
||||
genBuchungsZeile &= FiBuWährung & vbTab
|
||||
genBuchungsZeile &= FiBuEigenbruttobetrag.ToString("N2") & vbTab
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
Public Shared Function genBuchungsZeileDiffBetrag(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, ByRef curDifferenzbetrag As Double) As String
|
||||
|
||||
' Buchungssatz Steuerdifferenz
|
||||
If curDifferenzbetrag <> 0 Then
|
||||
Dim FiBuWährung As String
|
||||
Dim FiBuEigenbruttobetrag As Double
|
||||
Dim FiBuSollkontonummer As Integer
|
||||
Dim FiBuHabenkontonummer As Integer
|
||||
Dim Buchungstext = row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & "/Steuerdiff." & vbTab
|
||||
If row("WährungFremd") Is DBNull.Value Then
|
||||
FiBuEigenbruttobetrag = curDifferenzbetrag 'Bruttobetrag
|
||||
FiBuWährung = row("WährungLokal")
|
||||
Else
|
||||
FiBuWährung = row("WährungFremd")
|
||||
FiBuEigenbruttobetrag = cProgramFunctions.fktEuro(curDifferenzbetrag, row("WährungFremd"), "EUR")
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Select Case row("BelegartenNr")
|
||||
Case 70 'Rechnung
|
||||
FiBuSollkontonummer = "0"
|
||||
FiBuHabenkontonummer = "8490"
|
||||
Case 71 'Gutschrift
|
||||
FiBuSollkontonummer = "8490"
|
||||
FiBuHabenkontonummer = "0"
|
||||
End Select
|
||||
|
||||
|
||||
genBuchungsZeileDiffBetrag = "L" & vbTab
|
||||
genBuchungsZeileDiffBetrag &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
|
||||
genBuchungsZeileDiffBetrag &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
|
||||
|
||||
genBuchungsZeileDiffBetrag &= FiBuSollkontonummer & vbTab
|
||||
genBuchungsZeileDiffBetrag &= FiBuHabenkontonummer & vbTab
|
||||
genBuchungsZeileDiffBetrag &= Buchungstext
|
||||
|
||||
genBuchungsZeileDiffBetrag &= curDifferenzbetrag.ToString("N2") & vbTab
|
||||
genBuchungsZeileDiffBetrag &= "00,00" & vbTab 'FiBuSteuersatz
|
||||
genBuchungsZeileDiffBetrag &= "" & vbTab 'FiBuSteuerbetrag
|
||||
genBuchungsZeileDiffBetrag &= FiBuWährung & vbTab
|
||||
genBuchungsZeileDiffBetrag &= FiBuEigenbruttobetrag.ToString("N2") & vbTab
|
||||
|
||||
|
||||
'curDifferenzbetrag += FiBuEigenbruttobetrag
|
||||
End If
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Shared Sub initKDNr(ByRef dt As DataTable)
|
||||
For Each r In dt.Rows
|
||||
If IsNumeric(r("Konto-Nr")) AndAlso CInt(r("Konto-Nr")) > 2000000 Then r("Konto-Nr") = (CInt(r("Konto-Nr")) - 2000000)
|
||||
' MsgBox((CInt(r("Konto-Nr")) - 1000000) + 200000)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
Shared Function initKDNr2(ktoNr As String) As String
|
||||
If IsNumeric(ktoNr) AndAlso CInt(ktoNr) > 2000000 Then ktoNr = (CInt(ktoNr) - 2000000) '+ 200000
|
||||
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("N2").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
|
||||
|
||||
|
||||
|
||||
' Public Function fktFiBuDebitoren(ByVal intFirma_ID As Integer) As Boolean
|
||||
|
||||
' Dim dq As DAO.QueryDef
|
||||
|
||||
Reference in New Issue
Block a user