Files
SDL/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb
2024-12-18 14:31:35 +01:00

1308 lines
82 KiB
VB.net

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 and isnull(charged,0) = 0) " &
" 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 AND isnull(charged,0) = 0 ")
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