Syska (MDM-Import), uta, etc.

This commit is contained in:
2026-09-17 16:45:02 +02:00
parent 6016fa4a5a
commit 09c666e239
3 changed files with 180 additions and 39 deletions

View File

@@ -394,7 +394,7 @@ Public Class usrCntlUSTV
If Not col.ColumnName.Contains(colName) Then col.ColumnName = col.ColumnName.Replace("UStVAn_", "") If Not col.ColumnName.Contains(colName) Then col.ColumnName = col.ColumnName.Replace("UStVAn_", "")
Next Next
cProgramFunctions.genExcelFromDT_NEW(dtNew, {"K1:K" & (dtNew.Rows.Count + 1), "O1:T" & (dtNew.Rows.Count + 1)},,,,, True) cProgramFunctions.genExcelFromDT_NEW(dtNew, {"K1:K" & (dtNew.Rows.Count + 1), "O1:T" & (dtNew.Rows.Count + 1)},,,, "", True)
End If End If
@@ -1203,7 +1203,7 @@ Public Class usrCntlUSTV
If dtVorschau.Columns.Contains("LandNr") Then dtVorschau.Columns.Remove("LandNr") If dtVorschau.Columns.Contains("LandNr") Then dtVorschau.Columns.Remove("LandNr")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau, {"G1:G" & (dtVorschau.Rows.Count + 1)},,,,, True) cProgramFunctions.genExcelFromDT_NEW(dtVorschau, {"G1:G" & (dtVorschau.Rows.Count + 1)},,,, "", True)
@@ -1320,7 +1320,7 @@ Public Class usrCntlUSTV
If dtVorschau.Columns.Contains("E-Mail") Then dtVorschau.Columns.Remove("E-Mail") If dtVorschau.Columns.Contains("E-Mail") Then dtVorschau.Columns.Remove("E-Mail")
If dtVorschau.Columns.Contains("E-Mail2") Then dtVorschau.Columns.Remove("E-Mail2") If dtVorschau.Columns.Contains("E-Mail2") Then dtVorschau.Columns.Remove("E-Mail2")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,,, True) cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,, "", True)
ElseIf item.Name = "mail" Then ElseIf item.Name = "mail" Then
@@ -1482,7 +1482,7 @@ Public Class usrCntlUSTV
If item.Name = "excel" Then If item.Name = "excel" Then
cProgramFunctions.genExcelFromDT_NEW(dtVorschau_3470, {"F1:F" & (dtVorschau_3470.Rows.Count + 1)}, False,,,, True) cProgramFunctions.genExcelFromDT_NEW(dtVorschau_3470, {"F1:F" & (dtVorschau_3470.Rows.Count + 1)}, False,,, "", True)
ElseIf item.Name = "mail" Then ElseIf item.Name = "mail" Then
@@ -1750,7 +1750,7 @@ Public Class usrCntlUSTV
End If End If
cProgramFunctions.genExcelFromDT_NEW(dtVorauszahlung,,,,,, True) cProgramFunctions.genExcelFromDT_NEW(dtVorauszahlung,,,,, "", True)
End Sub End Sub

View File

@@ -953,6 +953,16 @@ Public Class cUTA
Sub New() Sub New()
End Sub End Sub
Sub New(RechnungsNr, KundenNr, Datum, DocumentTyp)
Me.RechnungsNr = RechnungsNr
Me.KundenNr = KundenNr
Me.Datum = Datum
Me.DocumentTyp = DocumentTyp
LOAD(RechnungsNr, KundenNr, Datum, DocumentTyp)
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Id", Id,, True)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Id", Id,, True))
@@ -978,6 +988,38 @@ Public Class cUTA
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function End Function
Public Sub LOAD(RechnungsNr As String, KundenNr As Integer, Datum As Date, DocumentTyp As String)
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("Select * FROM tblUTADocuments WHERE Datum=@Datum AND KundenNr = @KundenNr AND RechnungsNr=@RechnungsNr AND DocumentTyp = @DocumentTyp ", conn)
cmd.Parameters.AddWithValue("@Datum", Datum)
cmd.Parameters.AddWithValue("@KundenNr", KundenNr)
cmd.Parameters.AddWithValue("@RechnungsNr", RechnungsNr)
cmd.Parameters.AddWithValue("@DocumentTyp", DocumentTyp)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name)
End Try
End Sub
Public Sub LOAD() Public Sub LOAD()
Try Try
hasEntry = False hasEntry = False

View File

@@ -6,15 +6,44 @@ Public Class cSyska_Interface
'STAMMDATEN 'STAMMDATEN
Shared Function getStammdaten(FiBuSchnittstelleNr) As DataTable 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,Anrede,Ansprechpartner,Lastschrift,Kunden.[Eingegeben am] as EingegebenAm" Dim SQLString = "Select Top(100)
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr " KundenNrZentrale As [Konto-Nr],
sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr " isnull([Name 1],'') as Name,
sqlStr &= " LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz " isnull([Name 2],'') as [Name2],
sqlStr &= " LEFT JOIN Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel " (isnull(UstIdKz,'') + isnull(UstIdNr,'')) as [UST-Id-Nummer],
sqlStr &= " WHERE FiBuSchnittstelle=1 AND Auswahl='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' " isnull(UstIdGeprüft,'') as [UID-Datum],
sqlStr &= " Order by [Konto-Nr] " [Strasse],
Return SQL.loadDgvBySql(sqlStr, "FMZOLL") 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],
isnull([E-Mail],'') as [mail],
'' AS Info1,
'' AS Inf2,
Zahlungsziel2,
Zahlungsziel3,
[E-Mail],
[Telefon] ,
Telefax,Ordnungsbegriff,
Kunden.Währungscode,
Anrede,
Ansprechpartner,
Lastschrift,
Kunden.[Eingegeben am] as EingegebenAm,
isnull(tblKundenErweitert.kde_BezFIBU,'') as [Kürzel],
2811 as [präf. Bank],
isnull(tblKundenErweitert.kde_Fakturierung_Sprache,'') as Sprache,
isnull(Adressen.Steuernummer,'')as [SteuerNr],
isnull(tblKundenErweitert.kde_betreuer,'') as Betreuer
FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr
Left Join tblKundenErweitert ON KundenNr=kde_KundenNr
Left Join [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz
Left Join Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel
WHERE FiBuSchnittstelle = 0 And Auswahl ='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' and KundenNr = 203152 Order by [Konto-Nr]"
Return SQL.loadDgvBySql(SQLString, "FMZOLL")
End Function End Function
' Shared Function getStammdatenTEST(FiBuSchnittstelleNr) As DataTable ' Shared Function getStammdatenTEST(FiBuSchnittstelleNr) As DataTable
@@ -80,9 +109,6 @@ Public Class cSyska_Interface
Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper
Dim Lastschrift = CBool(row("Lastschrift")) Dim Lastschrift = CBool(row("Lastschrift"))
'If FormatStringSYS(row("Name2"), 50) <> "" Then
' MsgBox(FormatStringSYS(row("Name2"), 50) & vbTab)
'End If
getPersonenKto = "" getPersonenKto = ""
getPersonenKto &= row("Konto-Nr") & vbTab getPersonenKto &= row("Konto-Nr") & vbTab
getPersonenKto &= FormatStringSYS(cleanStringName, 2) & row("Konto-Nr") & vbTab getPersonenKto &= FormatStringSYS(cleanStringName, 2) & row("Konto-Nr") & vbTab
@@ -113,7 +139,73 @@ Public Class cSyska_Interface
getPersonenKto &= FormatStringSYS(row("Telefax")) & vbTab getPersonenKto &= FormatStringSYS(row("Telefax")) & vbTab
getPersonenKto &= FormatStringSYS(row("E-Mail")) & vbTab getPersonenKto &= FormatStringSYS(row("E-Mail")) & vbTab
getPersonenKto &= vbTab getPersonenKto &= vbTab
' getPersonenKto &= vbTab
End Function
Public Shared Function getPersonenKto_MDM(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 SteuerNr As String = ""
If Not IsDBNull(row("SteuerNr")) Then
SteuerNr = Regex.Replace(row("SteuerNr").ToString(), "[^0-9]", "")
End If
Dim Lastschrift = CBool(row("Lastschrift"))
getPersonenKto_MDM = ""
getPersonenKto_MDM &= row("Konto-Nr") & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Kürzel"), 24) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Name"), 50) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Name2"), 50) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Strasse"), 50) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("PLZ"), 20) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Ort"), 50) & vbTab
getPersonenKto_MDM &= cProgramFunctions.getISO2Land(FormatStringSYS(LandKz, 5)) & vbTab
getPersonenKto_MDM &= CDate(row("EingegebenAm")).ToShortDateString & vbTab 'Eröffnungsdatum
'getPersonenKto_MDM &= Gegenkontonummer & vbTab
getPersonenKto_MDM &= vbTab 'Bankname
getPersonenKto_MDM &= If(Lastschrift, row("BLZ"), "") & vbTab
getPersonenKto_MDM &= If(Lastschrift, row("KTO"), "") & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Name"), 50) & vbTab 'Inhaber
getPersonenKto_MDM &= "00" & vbTab 'Skontotage
getPersonenKto_MDM &= If(row("ZZiel") IsNot DBNull.Value AndAlso row("ZZiel") <> String.Empty, CDbl(row("ZZiel")).ToString("00"), "") & vbTab
getPersonenKto_MDM &= "00,00" & vbTab 'Skonto
getPersonenKto_MDM &= "01" & vbTab 'Mahnkennung
getPersonenKto_MDM &= FormatStringSYS(row("UST-Id-Nummer"), 50) & vbTab
'getPersonenKto_MDM &= vbTab
getPersonenKto_MDM &= row("Währungscode") & vbTab
'getPersonenKto_MDM &= vbTab 'Forderungsonto
'getPersonenKto_MDM &= vbTab
'getPersonenKto_MDM &= Gegenkontonummer2 & vbTab 'Platzhalter??
getPersonenKto_MDM &= FormatStringSYS(row("Anrede") & " " & row("Ansprechpartner"), 100) & vbTab
'getPersonenKto_MDM &= vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Telefon")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Telefax")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("E-Mail")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("präf. Bank")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Sprache")) & vbTab
getPersonenKto_MDM &= FormatStringSYS(SteuerNr) & vbTab
getPersonenKto_MDM &= FormatStringSYS(row("Betreuer")) & vbTab
getPersonenKto_MDM &= vbTab
End Function End Function
@@ -146,43 +238,50 @@ Public Class cSyska_Interface
If True Then 'boolKunden Then If True Then 'boolKunden Then
'----------------- STAMMDATEN ----------------- '----------------- STAMMDATEN -----------------
Dim dt_Stamm As DataTable = getStammdaten(FiBuSchnittstelleNr) Dim dt_Stamm As DataTable = getStammdaten(FiBuSchnittstelleNr)
Dim postfix As String = ""
If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
If FiBuSchnittstelleNr = 19 Then postfix = "MDM_"
Dim fileKD As System.IO.StreamWriter Dim fileKD As System.IO.StreamWriter
Dim DateinameKD = "AVISO_DEBI_" & Now.ToString("ddMMyyyy_HHmm") & ".txt" Dim DateinameKD = "AVISO_DEBI_" & postfix & Now.ToString("ddMMyyyy_HHmm") & ".txt"
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(genStammdatenBeginn()) 'fileKD.WriteLine(genStammdatenBeginn())
initKDNr(dt_Stamm) initKDNr(dt_Stamm)
For Each r In dt_Stamm.Rows For Each r In dt_Stamm.Rows
fileKD.WriteLine(getPersonenKto(r)) If FiBuSchnittstelleNr = 19 Then
fileKD.WriteLine(getPersonenKto_MDM(r))
Else
fileKD.WriteLine(getPersonenKto(r))
End If
Next Next
bool_DatenVorhanden = True bool_DatenVorhanden = True
fileKD.Close() 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
'NOCH NICHT!!!
updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
'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 End If
If bool_DatenVorhanden Then
If OpenFile Then Process.Start(pathKD & DateinameKD)
Else
System.IO.File.Delete(pathKD & DateinameKD)
End If
'NOCH NICHT!!!
updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
End If End If
End If