Imports System Imports System.Collections.Generic Imports System.Data.SqlClient Imports System.IO Imports System.Reflection Imports Therefore.API Imports VERAG_PROG_ALLGEMEIN Public Class cUTA Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Public Function importUTALeistungen() As Boolean 'Einträge in tblUTALeistungen machen, wenn Fakturierwarenart und Lieferland noch nicht in der Tabelle enthalten sind. Dim query = "INSERT INTO tblUTALeistungen (Fakturierwarenart, Lieferland, VERAG_OffertenNr, VERAG_LeistungsNr ) Select tblUTAImportNew.Fakturierwarenart, tblUTAImportNew.Lieferland, tblUTAFakturierwarenarten.VERAG_OffertenNr, tblUTAFakturierwarenarten.VERAG_LeistungsNr From tblUTAImportNew INNER Join tblUTAFakturierwarenarten On tblUTAImportNew.Fakturierwarenart = tblUTAFakturierwarenarten.Fakturierwarenart Group By tblUTAImportNew.Fakturierwarenart, tblUTAImportNew.Lieferland, tblUTAFakturierwarenarten.VERAG_OffertenNr, tblUTAFakturierwarenarten.VERAG_LeistungsNr HAVING((((SELECT tblUTALeistungen.Fakturierwarenart FROM tblUTALeistungen WHERE tblUTALeistungen.Fakturierwarenart=tblUTAImportNew.Fakturierwarenart And tblUTALeistungen.Lieferland=tblUTAImportNew.Lieferland)) Is Null))" Return SQL.doSQL(query, "FMZOLL") End Function Public Class UTAHeader Property Übertragungsnummer As Integer Property ErstellDatumUhrzeit As DateTime Property Absender_ID As Object = Nothing Property Empfänger_ID As Object = Nothing Property Filler_Feld_5 As Object = Nothing Property Abrechnungsnummer As Object = Nothing Property DTF_Format As Object = Nothing Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(Übertragungsnummer, ErstellDatumUhrzeit) Me.Übertragungsnummer = Übertragungsnummer Me.ErstellDatumUhrzeit = ErstellDatumUhrzeit LOAD() End Sub Sub New() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Übertragungsnummer", Übertragungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ErstellDatumUhrzeit", ErstellDatumUhrzeit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Absender_ID", Absender_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Empfänger_ID", Empfänger_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_5", Filler_Feld_5)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abrechnungsnummer", Abrechnungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("DTF_Format", DTF_Format)) Return list End Function Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAHeaderNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand("Select * FROM tblUTAHeaderNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit", conn) cmd.Parameters.AddWithValue("@Übertragungsnummer", Übertragungsnummer) cmd.Parameters.AddWithValue("@ErstellDatumUhrzeit", ErstellDatumUhrzeit) 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 Nothing 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 Function getUpdateCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' Return (" UPDATE [tblUTAHeaderNew] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function Public Function getInsertCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" Dim values As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "]," values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' Return (" INSERT INTO tblUTAHeaderNew (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function End Class Public Class UTABody Property ErstellDatumUhrzeit As DateTime Property Übertragungsnummer As Integer Property Übertragungsposition As Integer Property Abrechnungsnummer As Double Property Datum_für_Lieferungen_und_Leistungen_bis As DateTime Property Rechnungsempfänger_Kundennummer As Integer Property Abrechnungsdatum As DateTime Property Kundennummer As Integer Property Kartennummer As String Property Belegdatum As DateTime Property Akzeptanzstellennummer As Double Property Standort_der_Akzeptanzstelle As String Property Lieferland As String Property Belegnummer_des_Lieferanten As String Property Kilometerstand As Double Property Fakturierwarenart As String Property Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen As Char Property Menge As Double Property SB_BT As Char Property Umsatzsteuerprozentsatz As Double Property Lieferlandwährung_ISO As String Property Einzelpreis_Brutto_in_Lieferlandwährung As Double Property Einzelpreis_Netto_in_Lieferlandwährung As Double Property Betrag_Service_in_Lieferlandwährung As Double Property Betrag_Nachlass_in_Lieferlandwährung As Double Property Gesamtbetrag_Netto_in_Lieferlandwährung As Double Property Gesamtbetrag_Brutto_in_Lieferlandwährung As Double Property Darstellwährung_ISO As String Property Betrag_Service_in_Darstellwährung As Double Property Betrag_Nachlass_in_Darstellwährung As Double Property Gesamtbetrag_Netto_in_Darstellwährung As Double Property Gesamtbetrag_Umsatzsteuer_in_Darstellwährung As Double Property Gesamtbetrag_Brutto_in_Darstellwährung As Double Property Prägetext_i_d_R_KFZ_Kennzeichen As String Property Kunden_Kostenstelle_1 As String Property Kartentyp As String Property Filler_Feld_35 As Char Property Filler_Feld_36 As String Property KZ_Autobahn As Char Property INFO_Feld As String Property KFZ_Kennzeichen As String Property Filler_Feld_40 As Char Property Buchungsart As Char Property Buchungsgrund As Char Property Filler_Feld_43 As Char Property Informationsbeleg As Char Property Belegherkunft As Char Property Filler_Feld_46 As String Property Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen As Double Property Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen As Double Property Rechnungsdatum As DateTime Property Umsatzsteuerprozentsatz_informativ As Double Property Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ As Double Property Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ As Double Property Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ As Double Property Fälligkeitsdatum As DateTime Property Zahlungsziel_in_Tagen As Integer Property Zahlungsart As String Property TC_Rechnungsnummer_gegenüber_dem_Nutzer As String Property TC_Rechnungsdatum As DateTime Property Zahlungszielgruppe As String Property Kunden_Kostenstelle_2 As String Property Lieferzeit As String Property Fremdkartennummer As String Property OnBoardUnitID As String Property KFZ_Kennzeichen_komprimiert As String Property Kartenkategorie As String Property Rechnungsnummer_pro_Lieferland As Double Property Autobahnauffahrt As String Property Autobahnausfahrt As String Property Rabattschlüssel_der_französischen_Autobahngesellschaften As Integer Property Nummer_Belastungsanzeige As Double Property Betreuungsstelle As String Property Filler_Feld_72 As String Property Akzeptanz_Medium As String Property Steuerkategorie As String Property UTA_Beleg_ID As String Property UTA_Normalbeleg_ID As String Property Gebühren_Bescheinigung_von As DateTime Property Gebühren_Bescheinigung_bis As DateTime Property Herausgeber_Nutzer_Nummer As String Property Maßeinheit As String Property Land_der_Akzeptanzstelle As String Property Postleitzahl_der_Akzeptanzstelle As String Property Steuerliches_Lieferland As String Property Steuerliche_Produktgruppe As String Property Leistungsort_verlagerbar As Char Property abgerechnetDatum As Object Property abgerechnet As Boolean = False Property daId As Object Property charged As Boolean = False Property chargedDatetime As Object = Nothing Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(Übertragungsnummer, Übertragungsposition, ErstellDatumUhrzeit) Me.Übertragungsnummer = Übertragungsnummer Me.Übertragungsposition = Übertragungsposition Me.ErstellDatumUhrzeit = ErstellDatumUhrzeit LOAD() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ErstellDatumUhrzeit", ErstellDatumUhrzeit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Übertragungsnummer", Übertragungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Übertragungsposition", Übertragungsposition)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abrechnungsnummer", Abrechnungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Datum_für_Lieferungen_und_Leistungen_bis", Datum_für_Lieferungen_und_Leistungen_bis)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsempfänger_Kundennummer", Rechnungsempfänger_Kundennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abrechnungsdatum", Abrechnungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kundennummer", Kundennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kartennummer", Kartennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegdatum", Belegdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Akzeptanzstellennummer", Akzeptanzstellennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Standort_der_Akzeptanzstelle", Standort_der_Akzeptanzstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lieferland", Lieferland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegnummer_des_Lieferanten", Belegnummer_des_Lieferanten)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kilometerstand", Kilometerstand)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fakturierwarenart", Fakturierwarenart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen", Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Menge", Menge)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SB_BT", SB_BT)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Umsatzsteuerprozentsatz", Umsatzsteuerprozentsatz)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lieferlandwährung_ISO", Lieferlandwährung_ISO)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Brutto_in_Lieferlandwährung", Einzelpreis_Brutto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Netto_in_Lieferlandwährung", Einzelpreis_Netto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Service_in_Lieferlandwährung", Betrag_Service_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Nachlass_in_Lieferlandwährung", Betrag_Nachlass_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Netto_in_Lieferlandwährung", Gesamtbetrag_Netto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Brutto_in_Lieferlandwährung", Gesamtbetrag_Brutto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Darstellwährung_ISO", Darstellwährung_ISO)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Nachlass_in_Darstellwährung", Betrag_Nachlass_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Netto_in_Darstellwährung", Gesamtbetrag_Netto_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung", Gesamtbetrag_Umsatzsteuer_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Brutto_in_Darstellwährung", Gesamtbetrag_Brutto_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Prägetext_i_d_R_KFZ_Kennzeichen", Prägetext_i_d_R_KFZ_Kennzeichen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kunden_Kostenstelle_1", Kunden_Kostenstelle_1)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kartentyp", Kartentyp)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_35", Filler_Feld_35)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_36", Filler_Feld_36)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KZ_Autobahn", KZ_Autobahn)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KFZ_Kennzeichen", KFZ_Kennzeichen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("INFO_Feld", INFO_Feld)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_40", Filler_Feld_40)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungsart", Buchungsart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungsgrund", Buchungsgrund)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_43", Filler_Feld_43)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Informationsbeleg", Informationsbeleg)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegherkunft", Belegherkunft)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_46", Filler_Feld_46)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen", Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen", Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Umsatzsteuerprozentsatz_informativ", Umsatzsteuerprozentsatz_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ", Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ", Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ", Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fälligkeitsdatum", Fälligkeitsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zahlungsziel_in_Tagen", Zahlungsziel_in_Tagen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zahlungsart", Zahlungsart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("TC_Rechnungsnummer_gegenüber_dem_Nutzer", TC_Rechnungsnummer_gegenüber_dem_Nutzer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("TC_Rechnungsdatum", TC_Rechnungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zahlungszielgruppe", Zahlungszielgruppe)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kunden_Kostenstelle_2", Kunden_Kostenstelle_2)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lieferzeit", Lieferzeit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fremdkartennummer", Fremdkartennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OnBoardUnitID", OnBoardUnitID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KFZ_Kennzeichen_komprimiert", KFZ_Kennzeichen_komprimiert)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kartenkategorie", Kartenkategorie)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsnummer_pro_Lieferland", Rechnungsnummer_pro_Lieferland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Autobahnauffahrt", Autobahnauffahrt)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Autobahnausfahrt", Autobahnausfahrt)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rabattschlüssel_der_französischen_Autobahngesellschaften", Rabattschlüssel_der_französischen_Autobahngesellschaften)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Nummer_Belastungsanzeige", Nummer_Belastungsanzeige)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betreuungsstelle", Betreuungsstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_72", Filler_Feld_72)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Akzeptanz_Medium", Akzeptanz_Medium)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerkategorie", Steuerkategorie)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UTA_Beleg_ID", UTA_Beleg_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UTA_Normalbeleg_ID", UTA_Normalbeleg_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gebühren_Bescheinigung_von", Gebühren_Bescheinigung_von)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gebühren_Bescheinigung_bis", Gebühren_Bescheinigung_bis)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Herausgeber_Nutzer_Nummer", Herausgeber_Nutzer_Nummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Maßeinheit", Maßeinheit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Land_der_Akzeptanzstelle", Land_der_Akzeptanzstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Postleitzahl_der_Akzeptanzstelle", Postleitzahl_der_Akzeptanzstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerliches_Lieferland", Steuerliches_Lieferland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerliche_Produktgruppe", Steuerliche_Produktgruppe)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Leistungsort_verlagerbar", Leistungsort_verlagerbar)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("abgerechnetDatum", abgerechnetDatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("abgerechnet", abgerechnet)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("daId", daId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("charged", charged)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("chargedDatetime", chargedDatetime)) Return list End Function Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAImportNew WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand("Select * FROM tblUTAImportNew WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit ", conn) cmd.Parameters.AddWithValue("@Übertragungsnummer", Übertragungsnummer) cmd.Parameters.AddWithValue("@Übertragungsposition", Übertragungsposition) cmd.Parameters.AddWithValue("@ErstellDatumUhrzeit", ErstellDatumUhrzeit) 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 Function getUpdateCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' Return (" UPDATE [tblUTAImportNew] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function Public Function getInsertCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" Dim values As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "]," values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' Return (" INSERT INTO tblUTAImportNew (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function End Class Public Class UTAArchiv Property ErstellDatumUhrzeit As DateTime Property Übertragungsnummer As Integer Property Übertragungsposition As Integer Property Abrechnungsnummer As Object Property Datum_für_Lieferungen_und_Leistungen_bis As DateTime Property Rechnungsempfänger_Kundennummer As Integer Property Abrechnungsdatum As DateTime Property Kundennummer As Integer Property Kartennummer As Object Property Belegdatum As DateTime Property Akzeptanzstellennummer As Object Property Standort_der_Akzeptanzstelle As Object Property Lieferland As Object Property Belegnummer_des_Lieferanten As Object Property Kilometerstand As Object Property Fakturierwarenart As Object Property Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen As Object Property Menge As Object Property SB_BT As Object Property Umsatzsteuerprozentsatz As Object Property Lieferlandwährung_ISO As Object Property Einzelpreis_Netto_in_Lieferlandwährung As Object Property Einzelpreis_Brutto_in_Lieferlandwährung As Object Property ÜbertragEinzelpreis_Netto_in_Lieferlandwährungungsposition As Object Property Betrag_Service_in_Lieferlandwährung As Object Property Betrag_Nachlass_in_Lieferlandwährung As Object Property Gesamtbetrag_Netto_in_Lieferlandwährung As Object Property Gesamtbetrag_Brutto_in_Lieferlandwährung As Object Property Darstellwährung_ISO As Object Property Betrag_Service_in_Darstellwährung As Object Property Betrag_Nachlass_in_Darstellwährung As Object Property Gesamtbetrag_Netto_in_Darstellwährung As Object Property Gesamtbetrag_Umsatzsteuer_in_Darstellwährung As Object Property Gesamtbetrag_Brutto_in_Darstellwährung As Object Property Prägetext_i_d_R_KFZ_Kennzeichen As Object Property Kunden_Kostenstelle_1 As Object Property Kartentyp As Object Property Filler_Feld_35 As Object Property Filler_Feld_36 As Object Property KZ_Autobahn As Object Property INFO_Feld As Object Property KFZ_Kennzeichen As Object Property Filler_Feld_40 As Object Property Buchungsart As Object Property Buchungsgrund As Object Property Filler_Feld_43 As Object Property Informationsbeleg As Object Property Belegherkunft As Object Property Filler_Feld_46 As Object Property Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen As Object Property Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen As Object Property Rechnungsdatum As DateTime Property Umsatzsteuerprozentsatz_informativ As Object Property Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ As Object Property Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ As Object Property Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ As Object Property Fälligkeitsdatum As DateTime Property Zahlungsziel_in_Tagen As Integer Property Zahlungsart As Object Property TC_Rechnungsnummer_gegenüber_dem_Nutzer As Object Property TC_Rechnungsdatum As DateTime Property Zahlungszielgruppe As Object Property Kunden_Kostenstelle_2 As Object Property Lieferzeit As Object Property Fremdkartennummer As Object Property OnBoardUnitID As Object Property KFZ_Kennzeichen_komprimiert As Object Property Kartenkategorie As Object Property Rechnungsnummer_pro_Lieferland As Object Property Autobahnauffahrt As Object Property Autobahnausfahrt As Object Property Rabattschlüssel_der_französischen_Autobahngesellschaften As Integer Property Nummer_Belastungsanzeige As Object Property Betreuungsstelle As Object Property Filler_Feld_72 As Object Property Akzeptanz_Medium As Object Property Steuerkategorie As Object Property UTA_Beleg_ID As Object Property UTA_Normalbeleg_ID As Object Property Gebühren_Bescheinigung_von As DateTime Property Gebühren_Bescheinigung_bis As DateTime Property Herausgeber_Nutzer_Nummer As Object Property Maßeinheit As Object Property Land_der_Akzeptanzstelle As Object Property Postleitzahl_der_Akzeptanzstelle As Object Property Steuerliches_Lieferland As Object Property Steuerliche_Produktgruppe As Object Property Leistungsort_verlagerbar As Object Property UStVAn_ID As Object Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(Belegdatum, UTA_Beleg_ID) Me.Belegdatum = Belegdatum Me.UTA_Beleg_ID = UTA_Beleg_ID LOAD() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ErstellDatumUhrzeit", ErstellDatumUhrzeit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Übertragungsnummer", Übertragungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Übertragungsposition", Übertragungsposition)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abrechnungsnummer", Abrechnungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Datum_für_Lieferungen_und_Leistungen_bis", Datum_für_Lieferungen_und_Leistungen_bis)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsempfänger_Kundennummer", Rechnungsempfänger_Kundennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abrechnungsdatum", Abrechnungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kundennummer", Kundennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kartennummer", Kartennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegdatum", Belegdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Akzeptanzstellennummer", Akzeptanzstellennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Standort_der_Akzeptanzstelle", Standort_der_Akzeptanzstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lieferland", Lieferland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegnummer_des_Lieferanten", Belegnummer_des_Lieferanten)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kilometerstand", Kilometerstand)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fakturierwarenart", Fakturierwarenart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen", Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Menge", Menge)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SB_BT", SB_BT)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Umsatzsteuerprozentsatz", Umsatzsteuerprozentsatz)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lieferlandwährung_ISO", Lieferlandwährung_ISO)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Netto_in_Lieferlandwährung", Einzelpreis_Netto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Brutto_in_Lieferlandwährung", Einzelpreis_Brutto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Service_in_Lieferlandwährung", Betrag_Service_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Nachlass_in_Lieferlandwährung", Betrag_Nachlass_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Netto_in_Lieferlandwährung", Gesamtbetrag_Netto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Brutto_in_Lieferlandwährung", Gesamtbetrag_Brutto_in_Lieferlandwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Darstellwährung_ISO", Darstellwährung_ISO)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Nachlass_in_Darstellwährung", Betrag_Nachlass_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Netto_in_Darstellwährung", Gesamtbetrag_Netto_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung", Gesamtbetrag_Umsatzsteuer_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_Brutto_in_Darstellwährung", Gesamtbetrag_Brutto_in_Darstellwährung)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Prägetext_i_d_R_KFZ_Kennzeichen", Prägetext_i_d_R_KFZ_Kennzeichen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kunden_Kostenstelle_1", Kunden_Kostenstelle_1)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kartentyp", Kartentyp)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_35", Filler_Feld_35)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_36", Filler_Feld_36)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KZ_Autobahn", KZ_Autobahn)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KFZ_Kennzeichen", KFZ_Kennzeichen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("INFO_Feld", INFO_Feld)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_40", Filler_Feld_40)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungsart", Buchungsart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungsgrund", Buchungsgrund)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_43", Filler_Feld_43)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Informationsbeleg", Informationsbeleg)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegherkunft", Belegherkunft)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_46", Filler_Feld_46)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen", Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen", Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Umsatzsteuerprozentsatz_informativ", Umsatzsteuerprozentsatz_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ", Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ", Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ", Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fälligkeitsdatum", Fälligkeitsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zahlungsziel_in_Tagen", Zahlungsziel_in_Tagen)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zahlungsart", Zahlungsart)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("TC_Rechnungsnummer_gegenüber_dem_Nutzer", TC_Rechnungsnummer_gegenüber_dem_Nutzer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("TC_Rechnungsdatum", TC_Rechnungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zahlungszielgruppe", Zahlungszielgruppe)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kunden_Kostenstelle_2", Kunden_Kostenstelle_2)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lieferzeit", Lieferzeit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fremdkartennummer", Fremdkartennummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OnBoardUnitID", OnBoardUnitID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KFZ_Kennzeichen_komprimiert", KFZ_Kennzeichen_komprimiert)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kartenkategorie", Kartenkategorie)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsnummer_pro_Lieferland", Rechnungsnummer_pro_Lieferland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Autobahnauffahrt", Autobahnauffahrt)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Autobahnausfahrt", Autobahnausfahrt)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rabattschlüssel_der_französischen_Autobahngesellschaften", Rabattschlüssel_der_französischen_Autobahngesellschaften)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Nummer_Belastungsanzeige", Nummer_Belastungsanzeige)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betreuungsstelle", Betreuungsstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Filler_Feld_72", Filler_Feld_72)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Akzeptanz_Medium", Akzeptanz_Medium)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerkategorie", Steuerkategorie)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UTA_Beleg_ID", UTA_Beleg_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UTA_Normalbeleg_ID", UTA_Normalbeleg_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gebühren_Bescheinigung_von", Gebühren_Bescheinigung_von)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Gebühren_Bescheinigung_bis", Gebühren_Bescheinigung_bis)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Herausgeber_Nutzer_Nummer", Herausgeber_Nutzer_Nummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Maßeinheit", Maßeinheit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Land_der_Akzeptanzstelle", Land_der_Akzeptanzstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Postleitzahl_der_Akzeptanzstelle", Postleitzahl_der_Akzeptanzstelle)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerliches_Lieferland", Steuerliches_Lieferland)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerliche_Produktgruppe", Steuerliche_Produktgruppe)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Leistungsort_verlagerbar", Leistungsort_verlagerbar)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_ID", UStVAn_ID)) Return list End Function Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() 'Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM CLFArchiv WHERE PKFileName=@PKFileName AND OBUID = @OBUID) " & Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAArchiv WHERE UTA_Beleg_ID = @UTA_Beleg_ID AND Belegdatum = @Belegdatum) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand("Select * FROM tblUTAArchiv WHERE UTA_Beleg_ID = @UTA_Beleg_ID AND Belegdatum = @Belegdatum ", conn) cmd.Parameters.AddWithValue("@UTA_Beleg_ID", UTA_Beleg_ID) cmd.Parameters.AddWithValue("@Belegdatum", Belegdatum) 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 Function getUpdateCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' Return (" UPDATE [tblUTAArchiv] SET " & str & " WHERE UTA_Beleg_ID = @UTA_Beleg_ID AND Belegdatum = @Belegdatum") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function Public Function getInsertCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" Dim values As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "]," values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' Return (" INSERT INTO tblUTAArchiv (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function End Class Public Class UTATrailer Property ErstellDatumUhrzeit As DateTime Property Übertragungsnummer As Integer Property Anzahl_Sätze As Integer Property Checksumme As Object = Nothing Public hasEntry = False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Sub New(Übertragungsnummer, ErstellDatumUhrzeit) Me.Übertragungsnummer = Übertragungsnummer Me.ErstellDatumUhrzeit = ErstellDatumUhrzeit LOAD() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ErstellDatumUhrzeit", ErstellDatumUhrzeit)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Übertragungsnummer", Übertragungsnummer)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl_Sätze", Anzahl_Sätze)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Checksumme", Checksumme)) Return list End Function Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTATrailerNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) End Function Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand("Select * FROM tblUTATrailerNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit", conn) cmd.Parameters.AddWithValue("@Übertragungsnummer", Übertragungsnummer) cmd.Parameters.AddWithValue("@ErstellDatumUhrzeit", ErstellDatumUhrzeit) 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 Function getUpdateCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' Return (" UPDATE [tblUTATrailerNew] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function Public Function getInsertCmd() As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim str As String = "" Dim values As String = "" For Each i In list If Not i.isPrimaryParam Then str &= "[" & i.Text & "]," values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' Return (" INSERT INTO tblUTATrailerNew (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try Return "" End Function End Class Public Function readAndSaveUTA(objFileRead As StreamReader, fi As FileInfo, cnt As Integer, Optional onlyTestkunedn As Boolean = False) As Boolean Dim booHeaderVorhanden = False Dim booPrüfziffernfehler = False Dim booInTransaktion = False Dim booTrailerVorhanden = False Dim dtmErstellDatumUhrzeit As Date Dim lngÜbertragungsnummer As Integer Dim lngÜbertragungsposition As Integer Dim curChecksumme As Double Dim lngRecordCount As Long 'Datei auf Fehler prüfen! Do While (objFileRead.Peek() > -1) Dim strZeile = objFileRead.ReadLine() Select Case Mid(strZeile, 1, 2) Case "10" booHeaderVorhanden = True lngRecordCount = lngRecordCount + 1 Case "20" ' Meldung bei nicht vorhandenen Haeder. If Not booHeaderVorhanden Then MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") objFileRead.Close() Return False End If lngRecordCount = lngRecordCount + 1 Case "90" ' Meldung bei nicht vorhandenen Haeder. If Not booHeaderVorhanden Then MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") objFileRead.Close() Return False End If booTrailerVorhanden = True lngRecordCount = lngRecordCount + 1 ' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer. If Trim(Mid(strZeile, 3, 13)) <> (lngRecordCount) Then MsgBox("Fehler: " & vbNewLine & "Prüfsumme in der Datei stimmt nicht mit der Zeilenanzahl der Datei überein! " & vbNewLine & "Record Count: " & Trim(Mid(strZeile, 3, 13)) & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf) objFileRead.Close() Return False End If ' Meldung bei Prüfsummenfehler. If booPrüfziffernfehler Then MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.") objFileRead.Close() End If Case Else booPrüfziffernfehler = True End Select Loop Dim lngPKLine As Long = 0 lngRecordCount = 0 'gleicher PKFileName wird nun aus CLFHeader gelöscht. CASCADE löscht dann zugehörige CLFBody und CLFTrailer. 'If Not SQL.doSQL("DELETE tblUTAHeaderNew.ErstellDatumUhrzeit, tblUTAHeaderNew.Übertragungsnummer FROM tblUTAHeaderNew WHERE (((tblUTAHeaderNew.ErstellDatumUhrzeit)=" & Format$(dtmErstellDatumUhrzeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") & ") AND ((tblUTAHeaderNew.Übertragungsnummer)=" & lngÜbertragungsnummer, "FMZOLL") Then ' MsgBox("Fehler beim Löschen des CLF-Headers") ' objFileRead.Close() ' Return False 'End If 'If Not SQL.doSQL("UPDATE CLF SET PKFileName = '" & fi.Name.ToString & "'", "FMZOLL") Then ' MsgBox("Fehler beim Update der CLF-Nr") ' objFileRead.Close() ' Return False 'End If objFileRead.DiscardBufferedData() objFileRead.BaseStream.Seek(0, System.IO.SeekOrigin.Begin) Do While (objFileRead.Peek() > -1) Dim strZeile = objFileRead.ReadLine() Select Case Mid(strZeile, 1, 2) Case "10" booHeaderVorhanden = True lngRecordCount = lngRecordCount + 1 dtmErstellDatumUhrzeit = DateSerial(Mid(strZeile, 35, 4), Mid(strZeile, 32, 2), Mid(strZeile, 29, 2)) & " " & TimeSerial(Mid(strZeile, 40, 2), Mid(strZeile, 43, 2), Mid(strZeile, 46, 2)) lngÜbertragungsnummer = Mid(strZeile, 61, 6) 'Dim ext = CInt(fi.Extension.Remove(0, 1)) Dim clfHeader As New cUTA.UTAHeader(lngÜbertragungsnummer, dtmErstellDatumUhrzeit) With clfHeader .Absender_ID = Mid(strZeile, 10, 6) .Empfänger_ID = Mid(strZeile, 23, 6) .Filler_Feld_5 = IIf(Trim(Mid(strZeile, 39, 1)) = "", Nothing, Trim(Mid(strZeile, 39, 1))) .Abrechnungsnummer = IIf(Trim(Mid(strZeile, 48, 13)) = Nothing, "", Trim(Mid(strZeile, 48, 13))) .DTF_Format = IIf(Trim(Mid(strZeile, 67, 6)) = Nothing, "", Trim(Mid(strZeile, 67, 6))) .SAVE() End With Case "20" lngRecordCount = lngRecordCount + 1 lngÜbertragungsposition = lngÜbertragungsposition + 1 Dim clfBody As New cUTA.UTABody(lngÜbertragungsnummer, lngÜbertragungsposition, dtmErstellDatumUhrzeit) With clfBody .Übertragungsnummer = lngÜbertragungsnummer .Übertragungsposition = lngÜbertragungsposition .Abrechnungsnummer = Mid(strZeile, 3, 13) .[Datum_für_Lieferungen_und_Leistungen_bis] = DateSerial(Mid(strZeile, 20, 4), Mid(strZeile, 18, 2), Mid(strZeile, 16, 2)) .[Rechnungsempfänger_Kundennummer] = Mid(strZeile, 24, 13) .[Abrechnungsdatum] = DateSerial(Mid(strZeile, 41, 4), Mid(strZeile, 39, 2), Mid(strZeile, 37, 2)) .[Kundennummer] = Mid(strZeile, 45, 13) .[Kartennummer] = IIf(Trim(Mid(strZeile, 58, 19)) = "", Nothing, Trim(Mid(strZeile, 58, 19))) .[Belegdatum] = DateSerial(Mid(strZeile, 81, 4), Mid(strZeile, 79, 2), Mid(strZeile, 77, 2)) .[Akzeptanzstellennummer] = Mid(strZeile, 85, 13) .[Standort_der_Akzeptanzstelle] = IIf(Trim(Mid(strZeile, 98, 25)) = "", Nothing, Trim(Mid(strZeile, 98, 25))) .[Lieferland] = IIf(Trim(Mid(strZeile, 123, 3)) = "", Nothing, Trim(Mid(strZeile, 123, 3))) .[Belegnummer_des_Lieferanten] = IIf(Trim(Mid(strZeile, 126, 13)) = "", Nothing, Trim(Mid(strZeile, 126, 13))) .[Kilometerstand] = Mid(strZeile, 139, 8) .[Fakturierwarenart] = IIf(Trim(Mid(strZeile, 147, 5)) = "", Nothing, Trim(Mid(strZeile, 147, 5))) .[Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen] = IIf(Trim(Mid(strZeile, 152, 1)) = "", Nothing, Trim(Mid(strZeile, 152, 1))) .[Menge] = Mid(strZeile, 153, 10) / 100 .[SB_BT] = IIf(Trim(Mid(strZeile, 163, 1)) = "", Nothing, Trim(Mid(strZeile, 163, 1))) .[Umsatzsteuerprozentsatz] = Mid(strZeile, 164, 5) / 10000 .[Lieferlandwährung_ISO] = IIf(Trim(Mid(strZeile, 169, 3)) = "", Nothing, Trim(Mid(strZeile, 169, 3))) .[Einzelpreis_Brutto_in_Lieferlandwährung] = Mid(strZeile, 172, 11) / 100 .[Einzelpreis_Netto_in_Lieferlandwährung] = Mid(strZeile, 183, 11) / 100 .[Betrag_Service_in_Lieferlandwährung] = Mid(strZeile, 194, 11) / 100 .[Betrag_Nachlass_in_Lieferlandwährung] = Mid(strZeile, 205, 11) / 100 .[Gesamtbetrag_Netto_in_Lieferlandwährung] = Mid(strZeile, 216, 11) / 100 .[Gesamtbetrag_Brutto_in_Lieferlandwährung] = Mid(strZeile, 227, 11) / 100 .[Darstellwährung_ISO] = IIf(Trim(Mid(strZeile, 238, 3)) = "", Nothing, Trim(Mid(strZeile, 238, 3))) .[Betrag_Service_in_Darstellwährung] = Mid(strZeile, 241, 11) / 100 .[Betrag_Nachlass_in_Darstellwährung] = Mid(strZeile, 252, 11) / 100 .[Gesamtbetrag_Netto_in_Darstellwährung] = Mid(strZeile, 263, 11) / 100 .[Gesamtbetrag_Umsatzsteuer_in_Darstellwährung] = Mid(strZeile, 274, 11) / 100 .[Gesamtbetrag_Brutto_in_Darstellwährung] = Mid(strZeile, 285, 11) / 100 .[Prägetext_i_d_R_KFZ_Kennzeichen] = IIf(Trim(Mid(strZeile, 296, 16)) = "", Nothing, Trim(Mid(strZeile, 296, 16))) .[Kunden_Kostenstelle_1] = IIf(Trim(Mid(strZeile, 312, 20)) = "", Nothing, Trim(Mid(strZeile, 312, 20))) .[Kartentyp] = IIf(Trim(Mid(strZeile, 332, 8)) = "", Nothing, Trim(Mid(strZeile, 332, 8))) .[Filler_Feld_35] = IIf(Trim(Mid(strZeile, 340, 1)) = "", Nothing, Trim(Mid(strZeile, 340, 1))) .[Filler_Feld_36] = IIf(Trim(Mid(strZeile, 341, 3)) = "", Nothing, Trim(Mid(strZeile, 341, 3))) .[KZ_Autobahn] = IIf(Trim(Mid(strZeile, 344, 1)) = "", Nothing, Trim(Mid(strZeile, 344, 1))) .[INFO_Feld] = IIf(Trim(Mid(strZeile, 345, 18)) = "", Nothing, Trim(Mid(strZeile, 345, 18))) .[KFZ_Kennzeichen] = IIf(Trim(Mid(strZeile, 363, 16)) = "", Nothing, Trim(Mid(strZeile, 363, 16))) .[Filler_Feld_40] = IIf(Trim(Mid(strZeile, 379, 1)) = "", Nothing, Trim(Mid(strZeile, 379, 1))) .[Buchungsart] = IIf(Trim(Mid(strZeile, 380, 1)) = "", Nothing, Trim(Mid(strZeile, 380, 1))) .[Buchungsgrund] = IIf(Trim(Mid(strZeile, 381, 1)) = "", Nothing, Trim(Mid(strZeile, 381, 1))) .[Filler_Feld_43] = IIf(Trim(Mid(strZeile, 382, 1)) = "", Nothing, Trim(Mid(strZeile, 382, 1))) .[Informationsbeleg] = IIf(Trim(Mid(strZeile, 383, 1)) = "", Nothing, Trim(Mid(strZeile, 383, 1))) .[Belegherkunft] = IIf(Trim(Mid(strZeile, 384, 1)) = "", Nothing, Trim(Mid(strZeile, 384, 1))) .[Filler_Feld_46] = IIf(Trim(Mid(strZeile, 385, 14)) = "", Nothing, Trim(Mid(strZeile, 385, 14))) .[Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen] = Mid(strZeile, 399, 13) / 10000 .[Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen] = Mid(strZeile, 412, 13) / 10000 .[Rechnungsdatum] = DateSerial(Mid(strZeile, 429, 4), Mid(strZeile, 427, 2), Mid(strZeile, 425, 2)) .[Umsatzsteuerprozentsatz_informativ] = Mid(strZeile, 433, 5) / 10000 .[Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ] = Mid(strZeile, 438, 11) / 100 .[Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ] = Mid(strZeile, 449, 11) / 100 .[Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ] = Mid(strZeile, 460, 11) / 100 .[Fälligkeitsdatum] = DateSerial(Mid(strZeile, 475, 4), Mid(strZeile, 473, 2), Mid(strZeile, 471, 2)) .[Zahlungsziel_in_Tagen] = Mid(strZeile, 479, 3) .[Zahlungsart] = IIf(Trim(Mid(strZeile, 482, 8)) = "", Nothing, Trim(Mid(strZeile, 482, 8))) .[TC_Rechnungsnummer_gegenüber_dem_Nutzer] = IIf(Trim(Mid(strZeile, 490, 20)) = "", Nothing, Trim(Mid(strZeile, 490, 20))) .[TC_Rechnungsdatum] = DateSerial(Mid(strZeile, 514, 4), Mid(strZeile, 512, 2), Mid(strZeile, 510, 2)) .[Zahlungszielgruppe] = IIf(Trim(Mid(strZeile, 518, 7)) = "", Nothing, Trim(Mid(strZeile, 518, 7))) .[Kunden_Kostenstelle_2] = IIf(Trim(Mid(strZeile, 525, 20)) = "", Nothing, Trim(Mid(strZeile, 525, 20))) .[Lieferzeit] = IIf(Trim(Mid(strZeile, 545, 6)) = "", Nothing, Trim(Mid(strZeile, 545, 6))) .[Fremdkartennummer] = IIf(Trim(Mid(strZeile, 551, 20)) = "", Nothing, Trim(Mid(strZeile, 551, 20))) .[OnBoardUnitID] = IIf(Trim(Mid(strZeile, 571, 20)) = "", Nothing, Trim(Mid(strZeile, 571, 20))) .[KFZ_Kennzeichen_komprimiert] = IIf(Trim(Mid(strZeile, 591, 16)) = "", Nothing, Trim(Mid(strZeile, 591, 16))) .[Kartenkategorie] = IIf(Trim(Mid(strZeile, 607, 8)) = "", Nothing, Trim(Mid(strZeile, 607, 8))) .[Rechnungsnummer_pro_Lieferland] = Mid(strZeile, 615, 13) .[Autobahnauffahrt] = IIf(Trim(Mid(strZeile, 628, 40)) = "", Nothing, Trim(Mid(strZeile, 628, 40))) .[Autobahnausfahrt] = IIf(Trim(Mid(strZeile, 668, 40)) = "", Nothing, Trim(Mid(strZeile, 668, 40))) .[Rabattschlüssel_der_französischen_Autobahngesellschaften] = IIf(Trim(Mid(strZeile, 708, 1)) = "", Nothing, Trim(Mid(strZeile, 708, 1))) .[Nummer_Belastungsanzeige] = Mid(strZeile, 709, 13) .[Betreuungsstelle] = IIf(Trim(Mid(strZeile, 722, 20)) = "", Nothing, Trim(Mid(strZeile, 722, 20))) .[Filler_Feld_72] = IIf(Trim(Mid(strZeile, 742, 20)) = "", Nothing, Trim(Mid(strZeile, 742, 20))) .[Akzeptanz_Medium] = IIf(Trim(Mid(strZeile, 762, 20)) = "", Nothing, Trim(Mid(strZeile, 762, 20))) .[Steuerkategorie] = IIf(Trim(Mid(strZeile, 782, 8)) = "", Nothing, Trim(Mid(strZeile, 782, 8))) .[UTA_Beleg_ID] = Mid(strZeile, 790, 11) .[UTA_Normalbeleg_ID] = Mid(strZeile, 801, 11) .[Gebühren_Bescheinigung_von] = DateSerial(Mid(strZeile, 816, 4), Mid(strZeile, 814, 2), Mid(strZeile, 812, 2)) .[Gebühren_Bescheinigung_bis] = DateSerial(Mid(strZeile, 824, 4), Mid(strZeile, 822, 2), Mid(strZeile, 820, 2)) .[Herausgeber_Nutzer_Nummer] = IIf(Trim(Mid(strZeile, 828, 20)) = "", Nothing, Trim(Mid(strZeile, 828, 20))) .[Maßeinheit] = IIf(Trim(Mid(strZeile, 848, 8)) = "", Nothing, Trim(Mid(strZeile, 848, 8))) .[Land_der_Akzeptanzstelle] = IIf(Trim(Mid(strZeile, 856, 3)) = "", Nothing, Trim(Mid(strZeile, 856, 3))) .[Postleitzahl_der_Akzeptanzstelle] = IIf(Trim(Mid(strZeile, 859, 7)) = "", Nothing, Trim(Mid(strZeile, 859, 7))) .[Steuerliches_Lieferland] = IIf(Trim(Mid(strZeile, 866, 3)) = "", Nothing, Trim(Mid(strZeile, 866, 3))) .[Steuerliche_Produktgruppe] = IIf(Trim(Mid(strZeile, 869, 5)) = "", Nothing, Trim(Mid(strZeile, 869, 5))) .[Leistungsort_verlagerbar] = IIf(Trim(Mid(strZeile, 874, 1)) = "", Nothing, Trim(Mid(strZeile, 874, 1))) Select Case .[Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen] Case "0" 'positiv curChecksumme = curChecksumme + .[Gesamtbetrag_Brutto_in_Darstellwährung] Case "1" 'negativ curChecksumme = curChecksumme - .[Gesamtbetrag_Brutto_in_Darstellwährung] .[Menge] = 0 - .[Menge] .[Einzelpreis_Brutto_in_Lieferlandwährung] = 0 - .[Einzelpreis_Brutto_in_Lieferlandwährung] .[Einzelpreis_Netto_in_Lieferlandwährung] = 0 - .[Einzelpreis_Netto_in_Lieferlandwährung] .[Betrag_Service_in_Lieferlandwährung] = 0 - .[Betrag_Service_in_Lieferlandwährung] .[Betrag_Nachlass_in_Lieferlandwährung] = 0 - .[Betrag_Nachlass_in_Lieferlandwährung] .[Gesamtbetrag_Netto_in_Lieferlandwährung] = 0 - .[Gesamtbetrag_Netto_in_Lieferlandwährung] .[Gesamtbetrag_Brutto_in_Lieferlandwährung] = 0 - .[Gesamtbetrag_Brutto_in_Lieferlandwährung] .[Betrag_Service_in_Darstellwährung] = 0 - .[Betrag_Service_in_Darstellwährung] .[Betrag_Nachlass_in_Darstellwährung] = 0 - .[Betrag_Nachlass_in_Darstellwährung] .[Gesamtbetrag_Netto_in_Darstellwährung] = 0 - .[Gesamtbetrag_Netto_in_Darstellwährung] .[Gesamtbetrag_Umsatzsteuer_in_Darstellwährung] = 0 - .[Gesamtbetrag_Umsatzsteuer_in_Darstellwährung] .[Gesamtbetrag_Brutto_in_Darstellwährung] = 0 - .[Gesamtbetrag_Brutto_in_Darstellwährung] .[Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen] = 0 - .[Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen] .[Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen] = 0 - .[Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen] .[Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ] = 0 - .[Betrag_Nachlass_in_Lieferlandwährung_Umsatzsteuer_informativ] .[Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ] = 0 - .[Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ] .[Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ] = 0 - .[Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ] End Select If onlyTestkunedn Then 'nur KundenNr 100964 und 825040 speichern: If .[Kundennummer] = 100964 Or .[Kundennummer] = 825040 Then .SAVE() End If Else .SAVE() End If 'Dim clfArchiv As New cUTA.UTAArchiv(.Belegdatum, .UTA_Beleg_ID) 'clfArchiv.Übertragungsnummer = .Übertragungsnummer 'clfArchiv.ErstellDatumUhrzeit = .ErstellDatumUhrzeit 'clfArchiv.Übertragungsposition = .Übertragungsposition 'clfArchiv.Abrechnungsnummer = .Abrechnungsnummer 'clfArchiv.Datum_für_Lieferungen_und_Leistungen_bis = .Datum_für_Lieferungen_und_Leistungen_bis 'clfArchiv.Rechnungsempfänger_Kundennummer = .Rechnungsempfänger_Kundennummer 'clfArchiv.Abrechnungsdatum = .Abrechnungsdatum 'clfArchiv.Kundennummer = .Kundennummer 'clfArchiv.Kartennummer = .Kartennummer 'clfArchiv.Akzeptanzstellennummer = .Akzeptanzstellennummer 'clfArchiv.Standort_der_Akzeptanzstelle = .Standort_der_Akzeptanzstelle 'clfArchiv.Lieferland = .Lieferland 'clfArchiv.Belegnummer_des_Lieferanten = .Belegnummer_des_Lieferanten 'clfArchiv.Kilometerstand = .Kilometerstand 'clfArchiv.Fakturierwarenart = .Fakturierwarenart 'clfArchiv.Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen = .Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen 'clfArchiv.Menge = .Menge 'clfArchiv.SB_BT = .SB_BT 'clfArchiv.Umsatzsteuerprozentsatz = .Umsatzsteuerprozentsatz 'clfArchiv.Lieferlandwährung_ISO = .Lieferlandwährung_ISO 'clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung = .Einzelpreis_Netto_in_Lieferlandwährung 'clfArchiv.Einzelpreis_Brutto_in_Lieferlandwährung = .Einzelpreis_Brutto_in_Lieferlandwährung 'clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung = .Einzelpreis_Netto_in_Lieferlandwährung 'clfArchiv.Betrag_Service_in_Lieferlandwährung = .Betrag_Service_in_Lieferlandwährung 'clfArchiv.Betrag_Nachlass_in_Lieferlandwährung = .Betrag_Nachlass_in_Lieferlandwährung 'clfArchiv.Gesamtbetrag_Netto_in_Lieferlandwährung = .Gesamtbetrag_Netto_in_Lieferlandwährung 'clfArchiv.Gesamtbetrag_Brutto_in_Lieferlandwährung = .Gesamtbetrag_Brutto_in_Lieferlandwährung 'clfArchiv.Darstellwährung_ISO = .Darstellwährung_ISO 'clfArchiv.Betrag_Service_in_Darstellwährung = .Betrag_Service_in_Darstellwährung 'clfArchiv.Betrag_Nachlass_in_Darstellwährung = .Betrag_Nachlass_in_Darstellwährung 'clfArchiv.Gesamtbetrag_Netto_in_Darstellwährung = .Gesamtbetrag_Netto_in_Darstellwährung 'clfArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung = .Gesamtbetrag_Umsatzsteuer_in_Darstellwährung 'clfArchiv.Gesamtbetrag_Brutto_in_Darstellwährung = .Gesamtbetrag_Brutto_in_Darstellwährung 'clfArchiv.Prägetext_i_d_R_KFZ_Kennzeichen = .Prägetext_i_d_R_KFZ_Kennzeichen 'clfArchiv.Kunden_Kostenstelle_1 = .Kunden_Kostenstelle_1 'clfArchiv.Kartentyp = .Kartentyp 'clfArchiv.Filler_Feld_35 = .Filler_Feld_35 'clfArchiv.Filler_Feld_36 = .Filler_Feld_36 'clfArchiv.KZ_Autobahn = .KZ_Autobahn 'clfArchiv.INFO_Feld = .INFO_Feld 'clfArchiv.KFZ_Kennzeichen = .KFZ_Kennzeichen 'clfArchiv.Filler_Feld_40 = .Filler_Feld_40 'clfArchiv.Buchungsart = .Buchungsart 'clfArchiv.Buchungsgrund = .Buchungsgrund 'clfArchiv.Filler_Feld_43 = .Filler_Feld_43 'clfArchiv.Informationsbeleg = .Informationsbeleg 'clfArchiv.Belegherkunft = .Belegherkunft 'clfArchiv.Filler_Feld_46 = .Filler_Feld_46 'clfArchiv.Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen = .Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen 'clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen = .Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen 'clfArchiv.Rechnungsdatum = .Rechnungsdatum 'clfArchiv.Umsatzsteuerprozentsatz_informativ = .Umsatzsteuerprozentsatz_informativ 'clfArchiv.Betrag_Nachlass_in_Lieferlandwährung = .Betrag_Nachlass_in_Lieferlandwährung 'clfArchiv.Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ = .Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ 'clfArchiv.Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ = .Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ 'clfArchiv.Fälligkeitsdatum = .Fälligkeitsdatum 'clfArchiv.Zahlungsziel_in_Tagen = .Zahlungsziel_in_Tagen 'clfArchiv.Zahlungsart = .Zahlungsart 'clfArchiv.TC_Rechnungsnummer_gegenüber_dem_Nutzer = .TC_Rechnungsnummer_gegenüber_dem_Nutzer 'clfArchiv.TC_Rechnungsdatum = .TC_Rechnungsdatum 'clfArchiv.Zahlungszielgruppe = .Zahlungszielgruppe 'clfArchiv.Kunden_Kostenstelle_2 = .Kunden_Kostenstelle_2 'clfArchiv.Lieferzeit = .Lieferzeit 'clfArchiv.Fremdkartennummer = .Fremdkartennummer 'clfArchiv.OnBoardUnitID = .OnBoardUnitID 'clfArchiv.KFZ_Kennzeichen_komprimiert = .KFZ_Kennzeichen_komprimiert 'clfArchiv.Kartenkategorie = .Kartenkategorie 'clfArchiv.Rechnungsnummer_pro_Lieferland = .Rechnungsnummer_pro_Lieferland 'clfArchiv.Autobahnauffahrt = .Autobahnauffahrt 'clfArchiv.Autobahnausfahrt = .Autobahnausfahrt 'clfArchiv.Rabattschlüssel_der_französischen_Autobahngesellschaften = .Rabattschlüssel_der_französischen_Autobahngesellschaften 'clfArchiv.Nummer_Belastungsanzeige = .Nummer_Belastungsanzeige 'clfArchiv.Betreuungsstelle = .Betreuungsstelle 'clfArchiv.Filler_Feld_72 = .Filler_Feld_72 'clfArchiv.Akzeptanz_Medium = .Akzeptanz_Medium 'clfArchiv.Steuerkategorie = .Steuerkategorie 'clfArchiv.UTA_Normalbeleg_ID = .UTA_Normalbeleg_ID 'clfArchiv.Gebühren_Bescheinigung_von = .Gebühren_Bescheinigung_von 'clfArchiv.Gebühren_Bescheinigung_bis = .Gebühren_Bescheinigung_bis 'clfArchiv.Herausgeber_Nutzer_Nummer = .Herausgeber_Nutzer_Nummer 'clfArchiv.Maßeinheit = .Maßeinheit 'clfArchiv.Land_der_Akzeptanzstelle = .Land_der_Akzeptanzstelle 'clfArchiv.Postleitzahl_der_Akzeptanzstelle = .Postleitzahl_der_Akzeptanzstelle 'clfArchiv.Steuerliches_Lieferland = .Steuerliches_Lieferland 'clfArchiv.Steuerliche_Produktgruppe = .Steuerliche_Produktgruppe 'clfArchiv.Leistungsort_verlagerbar = .Leistungsort_verlagerbar 'clfArchiv.SAVE() End With Case "90" If curChecksumme < 0 Then curChecksumme = 0 - curChecksumme End If If Trim(Mid(strZeile, 16, 18) / 100) <> Math.Round(curChecksumme, 2) Then MsgBox("Checksumme: " & Trim(Mid(strZeile, 16, 18) / 100) & vbCrLf & "Prüfsumme: " & curChecksumme & vbCrLf & "Datei kann wegen Prüfsummenfehler nicht verarbeitet werden") 'Return False End If lngRecordCount = lngRecordCount + 1 Dim clfTrailer As New cUTA.UTATrailer(lngÜbertragungsnummer, dtmErstellDatumUhrzeit) With clfTrailer .ErstellDatumUhrzeit = dtmErstellDatumUhrzeit .Übertragungsnummer = lngÜbertragungsnummer .Anzahl_Sätze = Mid(strZeile, 3, 13) .Checksumme = Mid(strZeile, 16, 18) / 100 .SAVE() End With Case Else ' Andere RecordNumber überlesen. End Select Loop cnt = CInt(lngRecordCount) objFileRead.Close() Return True End Function Public VERARBEITUNG_PFAD Public ARCHIV_PFAD Public ERROR_PFAD Public ZIEL_PFAD Public FTP_PFAD Public ANLAGEN Public ARCHIV Public API_STRING As String Public API As New DataTable Dim Dateiname = "" Public Function initImportPfade(programName As String) As Boolean ERROR_PFAD = cUTA.Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) ARCHIV_PFAD = cUTA.Paramter.GET_PARAM_ByName("ARCHIV_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) VERARBEITUNG_PFAD = cUTA.Paramter.GET_PARAM_ByName("VERARBEITUNG_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) ZIEL_PFAD = cUTA.Paramter.GET_PARAM_ByName("ZIEL_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) ANLAGEN = cUTA.Paramter.GET_PARAM_ByName("ANLAGEN", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) ARCHIV = cUTA.Paramter.GET_PARAM_ByName("ARCHIV", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) If Not System.IO.Directory.Exists(VERARBEITUNG_PFAD) AndAlso VERARBEITUNG_PFAD <> "" Then System.IO.Directory.CreateDirectory(VERARBEITUNG_PFAD) ElseIf VERARBEITUNG_PFAD = "" Then MsgBox("Verabreitungspfad nicht gesetzt!") End If Return Paramter.getFTPConenction(API_STRING, API, programName) End Function Public Shared Function GET_Antraege_UTA(ByRef dt As DataTable, von As Date, bis As Date, KundenNr As Integer, LandKZ As String, Wahrungscode As String, Optional Archiv As Object = Nothing) As Boolean Try Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand("SELECT [tblUTAImportNew].Rechnungsdatum, [tblUTAImportNew].Rechnungsnummer_pro_Lieferland AS Rechnungsnummer,Adressen.AdressenNr as Kundennummer, Sum([Gesamtbetrag_Brutto_in_Lieferlandwährung]-[Gesamtbetrag_Netto_in_Lieferlandwährung]) AS Umsatzsteuerbetrag_in_Lieferlandwährung, Lieferlandwährung_ISO, Sum([Gesamtbetrag_Brutto_in_Darstellwährung]-[Gesamtbetrag_Netto_in_Darstellwährung]) AS Umsatzsteuerbetrag_in_Darstellwährung, Darstellwährung_ISO FROM [tblUTAImportNew] INNER JOIN Adressen ON [tblUTAImportNew].Kundennummer = Adressen.UTAKundenNr WHERE ([tblUTAImportNew].Rechnungsdatum Between '" & von.ToShortDateString & "' And '" & bis.ToShortDateString & "' AND [tblUTAImportNew].Lieferland_ISO2='" & LandKZ & "' AND [tblUTAImportNew].Lieferlandwährung_ISO='" & Wahrungscode & "' AND Adressen.AdressenNr=" & KundenNr & " AND charged = 1 AND isnull(tblUTAImportNew.UStVAn_ID,0) = " & IIf(Archiv IsNot Nothing AndAlso Archiv, 1, 0) & " ) GROUP BY [tblUTAImportNew].Rechnungsdatum, [tblUTAImportNew].Rechnungsnummer_pro_Lieferland, Lieferlandwährung_ISO ,Darstellwährung_ISO,Adressen.AdressenNr HAVING (((Sum([Gesamtbetrag_Brutto_in_Lieferlandwährung]-[Gesamtbetrag_Netto_in_Lieferlandwährung]))<>0));", conn) cmd.Parameters.AddWithValue("@von", von) cmd.Parameters.AddWithValue("@bis", bis) cmd.Parameters.AddWithValue("@AdressenNr", KundenNr) If Archiv IsNot Nothing Then cmd.Parameters.AddWithValue("@Archiv", If(Archiv, 1, 0)) Dim dr = cmd.ExecuteReader() dt.Load(dr) 'While dr.Read ' dt.Load(dr) 'End While dr.Close() End Using End Using Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Public Shared Function UPDATE_ARCHIV(reDat As Date, reNr As Integer, uta_kdNr As Integer, ustvaId As Integer) As Boolean Try Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("reDat", reDat)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("reNr", reNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uta_kdNr", uta_kdNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ustvaId", ustvaId)) Return SQL.doSQLVarList(" UPDATE [tblUTAImportNew] set archiv=1, [archiviertDatum]=GETDATE(), UStVAn_ID = @ustvaId WHERE cast(Rechnungsdatum as date) = @reDat and Rechnungsnummer_pro_Lieferland = @reNr and Kundennummer=@uta_kdNr ", "FMZOLL",, list) Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return "" End Function Public Class Paramter Shared apiSettingsloaded As Boolean = False Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL Shared Function GET_PARAM_ByName(tcParam_name, TESTSYSTEM) As String Return SQL.getValueTxtBySql("SELECT TOP 1 [Param_value] FROM [tblPartnersystem_Paramter] WHERE Param_system='UTA' AND [Param_name]='" & tcParam_name & "'", , , SQL.GetNewOpenConnectionFMZOLL_SYSTEM(TESTSYSTEM)) End Function Shared Function getFTPConenction(ByRef API_String As String, ByRef API As DataTable, ByRef program As String) As Boolean 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 API-Einstellungen für " & program & " gefunden!") Else apiSettingsloaded = True API_String = API.Rows(0).Item("api_url") End If Return apiSettingsloaded End Function End Class End Class