Imports com.sun.xml.internal.rngom Imports iTextSharp.text.pdf Imports iTextSharp.text.pdf.parser Imports System.IO Imports System.Windows.Forms Public Class cMDMFunctionsAllgemein Public Shared ploseAlteLogikSchnittstelle As Boolean = False Public Shared ploseNeueLogikSchnittstelle As Boolean = False Public Shared ITSchnittstelle As Boolean = False Public Shared MSEAlteSchnittstelle As Boolean = False Public Shared MSENeueSchnittstelle As Boolean = False Public Shared IDSAlteSchnittstelle As Boolean = False Public Shared IDSNeueSchnittstelle As Boolean = False Public Shared UTAAlteSchnittstelle As Boolean = False Public Shared UTANeueSchnittstelle As Boolean = False Shared Function setSchnittstellen(ploseAlt As Boolean, IT As Boolean, MSEalt As Boolean, MSENeu As Boolean, IDSAlt As Boolean, IDSNeu As Boolean, UTAAlt As Boolean, UTANeu As Boolean, ploseNeu As Boolean) ploseAlteLogikSchnittstelle = ploseAlt ploseNeueLogikSchnittstelle = ploseNeu ITSchnittstelle = IT MSEAlteSchnittstelle = MSEalt MSENeueSchnittstelle = MSENeu IDSAlteSchnittstelle = IDSAlt IDSNeueSchnittstelle = IDSNeu UTAAlteSchnittstelle = UTAAlt UTANeueSchnittstelle = UTANeu End Function Shared Function Update_UStVASummenNeuBerechnen(KundenNr As Integer) As Boolean Try Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL If KundenNr < 0 Then Return False Dim dtKundenAntrage As DataTable = SQL.loadDgvBySql("SELECT tblUStVAntrag.UStVAn_ID, tblUStVAntrag.UStVAn_KuNr FROM tblUStVAntrag where UStVAn_KuNr = " & KundenNr & "ORDER BY tblUStVAntrag.UStVAn_ID", "FMZOLL") If dtKundenAntrage.Rows.Count < 1 Then Return False Dim updated = False For Each r As DataRow In dtKundenAntrage.Rows Dim sqltext = "UPDATE tblUStVAntrag SET UStVAn_USteuerbetrag = COALESCE( (SELECT SUM(UStVPo_USteuerbetrag) FROM tblUStVPositionen WHERE UStVAn_ID = tblUStVAntrag.UStVAn_ID), 0), UStVAn_Erstattungsbetrag = COALESCE( (SELECT SUM(UStVEr_USteuerbetrag) FROM tblUStVErstattung WHERE UStVAn_ID = tblUStVAntrag.UStVAn_ID), 0), UStVAn_USteuerbetragEUR = COALESCE( (SELECT SUM(UStVPo_USteuerbetragEUR) FROM tblUStVPositionen WHERE UStVAn_ID = tblUStVAntrag.UStVAn_ID), 0), UStVAn_ErstattungsbetragEUR = COALESCE( (SELECT SUM(UStVEr_USteuerbetragEUR) FROM tblUStVErstattung WHERE UStVAn_ID = tblUStVAntrag.UStVAn_ID), 0) WHERE UStVAn_ID =" & r.Item("UStVAn_ID") updated = SQL.doSQL(sqltext, "FMZOLL") If Not updated Then Return updated Next Return updated Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) Return False End Try End Function Shared Function Update_UStVASummenNeuBerechnen_USTVA(Optional UStVAn_ID As Integer = -1) As Boolean Try Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim sqltext = "UPDATE tblUStVAntrag SET UStVAn_USteuerbetrag = COALESCE( (SELECT SUM(UStVPo_USteuerbetrag) FROM tblUStVPositionen WHERE UStVAn_ID = " & IIf(UStVAn_ID > 0, UStVAn_ID, "tblUStVAntrag.UStVAn_ID") & "), 0), UStVAn_Erstattungsbetrag = COALESCE( (SELECT SUM(UStVEr_USteuerbetrag) FROM tblUStVErstattung WHERE UStVAn_ID = " & IIf(UStVAn_ID > 0, UStVAn_ID, "tblUStVAntrag.UStVAn_ID") & " ), 0), UStVAn_USteuerbetragEUR = COALESCE( (SELECT SUM(UStVPo_USteuerbetragEUR) FROM tblUStVPositionen WHERE UStVAn_ID = " & IIf(UStVAn_ID > 0, UStVAn_ID, "tblUStVAntrag.UStVAn_ID") & "), 0), UStVAn_ErstattungsbetragEUR = COALESCE( (SELECT SUM(UStVEr_USteuerbetragEUR) FROM tblUStVErstattung WHERE UStVAn_ID = " & IIf(UStVAn_ID > 0, UStVAn_ID, "tblUStVAntrag.UStVAn_ID") & "), 0) " & IIf(UStVAn_ID > 0, "WHERE tblUStVAntrag.UStVAn_ID = " & UStVAn_ID, "") Return SQL.doSQL(sqltext, "FMZOLL") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) Return False End Try End Function Shared Function UStVAKunden_SummenNeuBerechnen(Optional KundenNr As Integer = 0, Optional saveValues As Boolean = True, Optional dt As DataTable = Nothing, Optional sendMail As Boolean = False) As Boolean Try Dim sumChangedPLOSEOK As Boolean = True Dim sumChangedPLOSE As Boolean = True Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim sqlWhere = "" If KundenNr > 0 Then sqlWhere = " = " & KundenNr Else sqlWhere = "in (SELECT DISTINCT tblSteuernummern.AdressenNr AS UStVAn_KuNr FROM tblSteuernummern where AdressenNr is not null) AND Adressen.Auswahl = 'A'" End If 'alle Kunden, die eine SteuerNr hinterlegt haben inkl. deren hinterlegte Summen! Dim sqlKunden = "SELECT Kunden.KundenNr as KundenNr,isnull(Adressen.LandKz,'') as LandKz, Kunden.UStV_SummeUmsatzsteuerbetragEUR, Kunden.UStV_SummeErstattungsbetragEUR, Kunden.UStV_Summe3470BetragEUR, Kunden.UStV_SummeVZBetragEUR, Kunden.UStV_SummeVorschaubetragEUR_VERAG, Kunden.UStV_SummeVorschaubetragEUR_IDS, Kunden.UStV_SummeVorschaubetragEUR_IT, Kunden.UStV_SummeVorschaubetragEUR_MSE, Kunden.UStV_SummeVorschaubetragEUR_UTA, Kunden.UStV_SummeVorschaubetragEUR, kde_UStV_SummeVorschaubetragEUR_PLOSE as UStV_SummeVorschaubetragEUR_PLOSE FROM Kunden INNER JOIN Adressen on Adressen.AdressenNr = Kunden.KundenNr left JOIN [tblKundenErweitert] on [kde_KundenNr] = Kunden.KundenNr WHERE Kunden.KundenNr " & sqlWhere & " order by Kunden.KundenNr" Dim dtKunden As DataTable = sql.loadDgvBySql(sqlKunden, "FMZOLL") If dtKunden.Rows.Count > 0 Then For Each r As DataRow In dtKunden.Rows 'Neuberechnung der Steuerbeträge aus den Anträgen 'WICHTIG laut Brigitte am 09.04.2025: 'SRB und BIH Kunden bekommen die MWST direkt vom HU Finanzamt ausbezahlt. 'Deswegen sollten alle ungarischen Anträge die wir für SRB und BIH Kunden stellen, nicht beim Risiko mitberechnet werden Dim sqlSummeBilden_OLD = "SELECT tblUStVAntrag.UStVAn_KuNr, SUM(tblUStVAntrag.UStVAn_USteuerbetragEUR) As UStVKu_SummeUmsatzsteuer, SUM(tblUStVAntrag.UStVAn_ErstattungsbetragEUR) As UStVKu_SummeErstattung, SUM(ISNULL(tblUStVAntrag.UStVAn_3470, 0)) As UStVKu_SummeKonto3470, SUM( CASE WHEN (ISNULL(tblUStVAntrag.UStVAn_VZBetrag, 0) - ISNULL(tblUStVAntrag.UStVAn_RZBetragVZ, 0)) > tblUStVAntrag.UStVAn_ErstattungsbetragEUR THEN (ISNULL(tblUStVAntrag.UStVAn_VZBetrag, 0) - ISNULL(tblUStVAntrag.UStVAn_RZBetragVZ, 0)) - tblUStVAntrag.UStVAn_ErstattungsbetragEUR Else 0 End ) AS UStVKu_SummeVorauszahlung From tblUStVAntrag Where tblUStVAntrag.UStVAn_KuNr = " & r.Item("KundenNr") & " Group By tblUStVAntrag.UStVAn_KuNr" Dim sqlSummeBilden = "SELECT tblUStVAntrag.UStVAn_KuNr, SUM( CASE WHEN (tblUStVAntrag.UStVAn_LandKz = 'SRB' OR tblUStVAntrag.UStVAn_LandKz = 'BIH') AND tblUStVAntrag.UStVAn_LandNr = 64 THEN 0 Else UStVAn_USteuerbetragEUR End ) AS UStVKu_SummeUmsatzsteuer, SUM( CASE WHEN (tblUStVAntrag.UStVAn_LandKz = 'SRB' OR tblUStVAntrag.UStVAn_LandKz = 'BIH') AND tblUStVAntrag.UStVAn_LandNr = 64 THEN 0 Else UStVAn_ErstattungsbetragEUR End ) AS UStVKu_SummeErstattung, SUM(ISNULL(tblUStVAntrag.UStVAn_3470, 0)) As UStVKu_SummeKonto3470, SUM( CASE WHEN (ISNULL(tblUStVAntrag.UStVAn_VZBetrag, 0) - ISNULL(tblUStVAntrag.UStVAn_RZBetragVZ, 0)) > tblUStVAntrag.UStVAn_ErstattungsbetragEUR THEN (ISNULL(tblUStVAntrag.UStVAn_VZBetrag, 0) - ISNULL(tblUStVAntrag.UStVAn_RZBetragVZ, 0)) - tblUStVAntrag.UStVAn_ErstattungsbetragEUR Else 0 End ) AS UStVKu_SummeVorauszahlung From tblUStVAntrag Where tblUStVAntrag.UStVAn_KuNr = " & r.Item("KundenNr") & " Group By tblUStVAntrag.UStVAn_KuNr" Dim dtKundenSummen As DataTable = sql.loadDgvBySql(sqlSummeBilden, "FMZOLL") Dim curUStV_SummeVorschaubetragEUR As Double = 0 Dim curUStV_SummeVorschaubetragEUR_VERAG As Double = 0 Dim curUStV_SummeVorschaubetragEUR_IDS As Double = 0 Dim curUStV_SummeVorschaubetragEUR_IT As Double = 0 Dim curUStV_SummeVorschaubetragEUR_MSE As Double = 0 Dim curUStV_SummeVorschaubetragEUR_UTA As Double = 0 Dim curUStV_SummeVorschaubetragEUR_PLOSE As Double = 0 Dim curUStV_SummeUmsatzsteuerbetragEUR As Double = 0 Dim curUStV_SummeErstattungsbetragEUR As Double = 0 Dim curUStV_Summe3470BetragEUR As Double = 0 Dim curUStV_SummeVZBetragEUR As Double = 0 Dim invoiceDate = If(Date.Now > New Date(Date.Now.Year, 6, 30), New Date(Date.Now.Year, 1, 1), New Date(Date.Now.Year - 1, 1, 1)) 'Neuberechnung der Vorschausummen (also alle noch nicht verrechneten Transaktionen , die aber schon eingelesen wurden) curUStV_SummeVorschaubetragEUR_VERAG = UStVKunden_Summen_lesen_Vorschau_VERAG(r.Item("KundenNr"), r.Item("LandKz"), invoiceDate) curUStV_SummeVorschaubetragEUR_IDS = UStVKunden_Summen_lesen_Vorschau_IDS(r.Item("KundenNr"), r.Item("LandKz"), invoiceDate, IDSAlteSchnittstelle, IDSNeueSchnittstelle) curUStV_SummeVorschaubetragEUR_IT = UStVKunden_Summen_lesen_Vorschau_IT(r.Item("KundenNr"), r.Item("LandKz"), invoiceDate, ITSchnittstelle) curUStV_SummeVorschaubetragEUR_MSE = UStVKunden_Summen_lesen_Vorschau_MSE(r.Item("KundenNr"), r.Item("LandKz"), invoiceDate, MSEAlteSchnittstelle, MSENeueSchnittstelle) curUStV_SummeVorschaubetragEUR_UTA = UStVKunden_Summen_lesen_Vorschau_UTA(r.Item("KundenNr"), r.Item("LandKz"), invoiceDate, UTAAlteSchnittstelle, UTANeueSchnittstelle) curUStV_SummeVorschaubetragEUR_PLOSE = UStVKunden_Summen_lesen_Vorschau_PLOSE(r.Item("KundenNr"), r.Item("LandKz"), invoiceDate, ploseAlteLogikSchnittstelle, ploseNeueLogikSchnittstelle) curUStV_SummeVorschaubetragEUR += curUStV_SummeVorschaubetragEUR_VERAG curUStV_SummeVorschaubetragEUR += curUStV_SummeVorschaubetragEUR_IDS curUStV_SummeVorschaubetragEUR += curUStV_SummeVorschaubetragEUR_IT curUStV_SummeVorschaubetragEUR += curUStV_SummeVorschaubetragEUR_MSE curUStV_SummeVorschaubetragEUR += curUStV_SummeVorschaubetragEUR_UTA curUStV_SummeVorschaubetragEUR += curUStV_SummeVorschaubetragEUR_PLOSE Dim displayViewKundenSummen = New DataView(dtKundenSummen, "", "UStVAn_KuNr", DataViewRowState.CurrentRows) Dim KundenDTSummenNeuBerechnet As DataTable = displayViewKundenSummen.ToTable(False) If KundenDTSummenNeuBerechnet.Rows.Count = 1 Then curUStV_SummeUmsatzsteuerbetragEUR = IIf(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeUmsatzsteuer").ToString <> "" AndAlso IsNumeric(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeUmsatzsteuer").ToString), CDbl(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeUmsatzsteuer").ToString), 0) curUStV_SummeErstattungsbetragEUR = IIf(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeErstattung").ToString <> "" AndAlso IsNumeric(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeErstattung").ToString), CDbl(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeErstattung").ToString), 0) curUStV_Summe3470BetragEUR = IIf(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeKonto3470").ToString <> "" AndAlso IsNumeric(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeKonto3470").ToString), CDbl(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeKonto3470").ToString), 0) curUStV_SummeVZBetragEUR = IIf(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeVorauszahlung").ToString <> "" AndAlso IsNumeric(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeVorauszahlung").ToString), CDbl(KundenDTSummenNeuBerechnet.Rows(0).Item("UStVKu_SummeVorauszahlung").ToString), 0) End If Dim sumChanged As Boolean = False Dim sumChangedOK As Boolean = False If Not ( Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeUmsatzsteuerbetragEUR")), 0, r.Item("UStV_SummeUmsatzsteuerbetragEUR"))), 2) = curUStV_SummeUmsatzsteuerbetragEUR And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeErstattungsbetragEUR")), 0, r.Item("UStV_SummeUmsatzsteuerbetragEUR"))), 2) = curUStV_SummeErstattungsbetragEUR And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_Summe3470BetragEUR")), 0, r.Item("UStV_Summe3470BetragEUR"))), 2) = curUStV_Summe3470BetragEUR And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVZBetragEUR")), 0, r.Item("UStV_SummeVZBetragEUR"))), 2) = curUStV_SummeVZBetragEUR And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_VERAG")), 0, r.Item("UStV_SummeVorschaubetragEUR_VERAG"))), 2) = curUStV_SummeVorschaubetragEUR_VERAG And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_IDS")), 0, r.Item("UStV_SummeVorschaubetragEUR_IDS"))), 2) = curUStV_SummeVorschaubetragEUR_IDS And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_IT")), 0, r.Item("UStV_SummeVorschaubetragEUR_IT"))), 2) = curUStV_SummeVorschaubetragEUR_IT And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_MSE")), 0, r.Item("UStV_SummeVorschaubetragEUR_MSE"))), 2) = curUStV_SummeVorschaubetragEUR_MSE And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_UTA")), 0, r.Item("UStV_SummeVorschaubetragEUR_UTA"))), 2) = curUStV_SummeVorschaubetragEUR_UTA And Math.Round(CDbl(IIf(IsDBNull(r.Item("UStV_SummeVorschaubetragEUR")), 0, r.Item("UStV_SummeVorschaubetragEUR"))), 2) = curUStV_SummeVorschaubetragEUR) Then sumChanged = True sumChangedOK = False End If If IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_PLOSE")) Then sumChangedPLOSE = True sumChangedPLOSEOK = False ElseIf Not Math.Round(CDbl(r.Item("UStV_SummeVorschaubetragEUR_PLOSE")), 2) = curUStV_SummeVorschaubetragEUR_PLOSE Then sumChangedPLOSE = True sumChangedPLOSEOK = False End If If sumChanged And saveValues Then 'updateSummen sumChangedOK = sql.doSQL("Update Kunden set Kunden.UStV_SummeUmsatzsteuerbetragEUR = " & curUStV_SummeUmsatzsteuerbetragEUR.ToString.Replace(",", ".") & ", Kunden.UStV_SummeErstattungsbetragEUR = " & curUStV_SummeErstattungsbetragEUR.ToString.Replace(",", ".") & ", Kunden.UStV_Summe3470BetragEUR = " & curUStV_Summe3470BetragEUR.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVZBetragEUR = " & curUStV_SummeVZBetragEUR.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVorschaubetragEUR_VERAG = " & curUStV_SummeVorschaubetragEUR_VERAG.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVorschaubetragEUR_IDS = " & curUStV_SummeVorschaubetragEUR_IDS.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVorschaubetragEUR_IT = " & curUStV_SummeVorschaubetragEUR_IT.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVorschaubetragEUR_MSE = " & curUStV_SummeVorschaubetragEUR_MSE.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVorschaubetragEUR_UTA = " & curUStV_SummeVorschaubetragEUR_UTA.ToString.Replace(",", ".") & ", Kunden.UStV_SummeVorschaubetragEUR = " & curUStV_SummeVorschaubetragEUR.ToString.Replace(",", ".") & " WHERE Kunden.KundenNr = " & r.Item("KundenNr"), "FMZOLL") End If If sumChangedPLOSE And saveValues Then If IsDBNull(r.Item("UStV_SummeVorschaubetragEUR_PLOSE")) Then Dim kndErw As New cKundenErweitert(r.Item("KundenNr")) kndErw.kde_UStV_SummeVorschaubetragEUR_PLOSE = curUStV_SummeVorschaubetragEUR_PLOSE sumChangedPLOSEOK = kndErw.SAVE Else sumChangedPLOSEOK = sql.doSQL("Update tblKundenErweitert set kde_UStV_SummeVorschaubetragEUR_PLOSE = " & curUStV_SummeVorschaubetragEUR_PLOSE.ToString.Replace(",", ".") & " WHERE kde_KundenNr = " & r.Item("KundenNr"), "FMZOLL") End If End If If (KundenNr > 0 Or sendMail) AndAlso dt IsNot Nothing Then If Not dt.Columns.Contains("KundenNr") Then dt.Columns.Add("KundenNr", GetType(String)) dt.Columns.Add("VorschaubetragEUR", GetType(Double)) dt.Columns.Add("VorschaubetragEUR_VERAG", GetType(Double)) dt.Columns.Add("VorschaubetragEUR_IDS", GetType(Double)) dt.Columns.Add("VorschaubetragEUR_IT", GetType(Double)) dt.Columns.Add("VorschaubetragEUR_MSE", GetType(Double)) dt.Columns.Add("VorschaubetragEUR_UTA", GetType(Double)) dt.Columns.Add("VorschaubetragEUR_PLOSE", GetType(Double)) dt.Columns.Add("UmsatzsteuerbetragEUR", GetType(Double)) dt.Columns.Add("ErstattungsbetragEUR", GetType(Double)) dt.Columns.Add("3470BetragEUR", GetType(Double)) dt.Columns.Add("VZBetragEUR", GetType(Double)) End If Dim ro As DataRow = dt.NewRow ro("KundenNr") = IIf(KundenNr > 0, KundenNr, r.Item("KundenNr")) ro("VorschaubetragEUR") = curUStV_SummeVorschaubetragEUR ro("VorschaubetragEUR_VERAG") = curUStV_SummeVorschaubetragEUR_VERAG ro("VorschaubetragEUR_IDS") = curUStV_SummeVorschaubetragEUR_IDS ro("VorschaubetragEUR_IT") = curUStV_SummeVorschaubetragEUR_IT ro("VorschaubetragEUR_MSE") = curUStV_SummeVorschaubetragEUR_MSE ro("VorschaubetragEUR_UTA") = curUStV_SummeVorschaubetragEUR_UTA ro("VorschaubetragEUR_PLOSE") = curUStV_SummeVorschaubetragEUR_PLOSE ro("UmsatzsteuerbetragEUR") = curUStV_SummeUmsatzsteuerbetragEUR ro("ErstattungsbetragEUR") = curUStV_SummeErstattungsbetragEUR ro("3470BetragEUR") = curUStV_Summe3470BetragEUR ro("VZBetragEUR") = curUStV_SummeVZBetragEUR dt.Rows.Add(ro) End If Next End If Return sumChangedPLOSEOK And sumChangedPLOSEOK Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) Return False End Try End Function Shared Function UStVKunden_Summen_lesen_Vorschau_VERAG(varUStVAn_KuNr As Integer, landKZ As String, invoiceDate As Date) As Double 'Return 0 ' Public Function UStVKunden_Summen_lesen_Vorschau_VERAG(ByRef varUStVAn_KuNr As Variant) As Currency ' Dim qdf As DAO.QueryDef ' Dim rst As DAO.Recordset ' Dim strParameter As String ' Dim dtmRechnungsdatum As Date '2420 On Error GoTo PROC_Error '2430 UStVKunden_Summen_lesen_Vorschau_VERAG = 0 '2440 dtmRechnungsdatum = IIf(Date > DateSerial(Year(Date), 6, 30), DateSerial(Year(Date), 1, 1), DateSerial(Year(Date) - 1, 1, 1)) '2450 strParameter = ParameterBereitstellen(varUStVAn_KuNr, dtmRechnungsdatum) '2460 Set qdf = dbs.CreateQueryDef("") '2470 With qdf '2480 .Connect = AktuelleVerbindungszeichenfolge(0) '2490 .ReturnsRecords = True '2500 .SQL = "EXEC [dbo].[spUStVVorschau_VERAG_Summe] " & strParameter '2510 Set rst = qdf.OpenRecordset() '2520 End With '2530 If Not rst.EOF Then '2540 UStVKunden_Summen_lesen_Vorschau_VERAG = rst![Vorschaubetrag] '2550 End If Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim summeAlteSchnittstelle As Double = 0 Dim sqlFMZollDaten = "SELECT dbo.tblTrdinInvoice.RechnungsKundenNr AS AdressenNr, dbo.tblSteuernummern.LandNr, SUM(dbo.tblTrdinInvoice.SteuerbetragLokal) As Vorschaubetrag From dbo.tblTrdinInvoice INNER Join dbo.tblSteuernummern ON dbo.tblTrdinInvoice.RechnungsKundenNr = dbo.tblSteuernummern.AdressenNr Where (dbo.tblTrdinInvoice.RechnungsKundenNr = " & varUStVAn_KuNr & ") And (dbo.tblTrdinInvoice.Rechnungsdatum >= '" & invoiceDate.ToShortDateString & "') And (dbo.tblTrdinInvoice.UStVAn_ID Is NULL) And (dbo.tblSteuernummern.LandNr = 38) And (dbo.tblSteuernummern.UStV = 1) GROUP BY dbo.tblTrdinInvoice.RechnungsKundenNr, dbo.tblSteuernummern.LandNr" Dim dtIT As DataTable = sql.loadDgvBySql(sqlFMZollDaten, "FMZOLL") For Each r As DataRow In dtIT.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then summeAlteSchnittstelle += UST_org End If Next Return summeAlteSchnittstelle End Function Shared Function UStVKunden_Summen_lesen_Vorschau_IDS(varUStVAn_KuNr As Integer, landKZ As String, invoiceDate As Date, calcSummeAlteSchnittstelle As Boolean, calcSummeNeueSchnittstelle As Boolean) As Double '1300 dtmRechnungsdatum = IIf(Date > DateSerial(Year(Date), 6, 30), DateSerial(Year(Date), 1, 1), DateSerial(Year(Date) - 1, 1, 1)) '1310 strParameter = ParameterBereitstellen(varUStVAn_KuNr, dtmRechnungsdatum) '1320 Set qdf = dbs.CreateQueryDef("") '1330 With qdf '1340 .Connect = AktuelleVerbindungszeichenfolge(0) '1350 .ReturnsRecords = True '1360 .SQL = "EXEC [dbo].[spUStVVorschau_IDS_Summe] " & strParameter '1370 Set rst = qdf.OpenRecordset() '1380 End With '1390 Do Until rst.EOF '1400 UStVKunden_Summen_lesen_Vorschau_IDS = UStVKunden_Summen_lesen_Vorschau_IDS + rst![Vorschaubetrag] '1410 rst.MoveNext '1420 Loop Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim summeAlteSchnittstelle As Double = 0 Dim summeNeueSchnittstelle As Double = 0 If calcSummeAlteSchnittstelle Then Dim sqlFMZollDaten = "SELECT dbo.tblDieselArchiv.KdNrVERAG AS AdressenNr, dbo.tblSteuernummern.LandNr, SUM(dbo.tblDieselArchiv.[VAT Amount]) AS Vorschaubetrag FROM dbo.tblDieselArchiv INNER JOIN dbo.tblSteuernummern ON dbo.tblDieselArchiv.KdNrVERAG = dbo.tblSteuernummern.AdressenNr INNER JOIN dbo.tbl_IDS_Länder ON dbo.tblSteuernummern.LandNr = dbo.tbl_IDS_Länder.LandNr AND dbo.tblDieselArchiv.[Outlet Country Code] = dbo.tbl_IDS_Länder.OutletCountryCode WHERE (dbo.tblDieselArchiv.KdNrVERAG = " & varUStVAn_KuNr & " ) AND (dbo.tblDieselArchiv.[Year Month Day] >= '" & invoiceDate.ToShortDateString & "') AND (dbo.tblDieselArchiv.UStVAn_ID IS NULL) AND (dbo.tblSteuernummern.UStV = 1) " & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " GROUP BY dbo.tblDieselArchiv.KdNrVERAG, dbo.tblSteuernummern.LandNr ORDER BY dbo.tblDieselArchiv.KdNrVERAG, dbo.tblSteuernummern.LandNr" Dim dtIT As DataTable = sql.loadDgvBySql(sqlFMZollDaten, "FMZOLL") For Each r As DataRow In dtIT.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then summeAlteSchnittstelle += UST_org End If Next End If If calcSummeNeueSchnittstelle Then Dim sqlFMZollDatenNEU = "SELECT [tblIDSTransactionsNew].KdNrVERAG AS AdressenNr, dbo.tblSteuernummern.LandNr, SUM([tblIDSTransactionsNew].[VATAmount]) AS Vorschaubetrag FROM tblIDSTransactionsNew INNER JOIN dbo.tblSteuernummern ON [tblIDSTransactionsNew].KdNrVERAG = dbo.tblSteuernummern.AdressenNr INNER JOIN dbo.tbl_IDS_Länder ON dbo.tblSteuernummern.LandNr = dbo.tbl_IDS_Länder.LandNr AND [tblIDSTransactionsNew].[OutletCountryCode] = dbo.tbl_IDS_Länder.OutletCountryCode WHERE ([tblIDSTransactionsNew].KdNrVERAG = " & varUStVAn_KuNr & " ) AND ([tblIDSTransactionsNew].[YearMonthDay] >= '" & invoiceDate.ToShortDateString & "') AND ([tblIDSTransactionsNew].UStVAn_ID IS NULL) AND (dbo.tblSteuernummern.UStV = 1) " & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " GROUP BY [tblIDSTransactionsNew].KdNrVERAG, dbo.tblSteuernummern.LandNr ORDER BY [tblIDSTransactionsNew].KdNrVERAG, dbo.tblSteuernummern.LandNr" Dim dtIDSENeut As DataTable = sql.loadDgvBySql(sqlFMZollDatenNEU, "FMZOLL") For Each r As DataRow In dtIDSENeut.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then summeNeueSchnittstelle += UST_org End If Next End If Return summeAlteSchnittstelle + summeNeueSchnittstelle Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) Return 0 End Try End Function Shared Function UStVKunden_Summen_lesen_Vorschau_PLOSE(varUStVAn_KuNr As Integer, landKZ As String, invoiceDate As Date, calcSummeAlteSchnittstelle As Boolean, calcSummeNeueSchnitttelle As Boolean) As Double ' set plose_Archiv=1, [plose_ArchiviertDatum]=GETDATE(), UStVAn_ID = @UStVAn_ID beim Einarbeiten in USTVA Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim summeAlteSchnittstelle As Double = 0 Dim summeNeueSchnittstelle As Double = 0 If calcSummeAlteSchnittstelle Then 'plose_MWSTBetragWaehrungAbbuchung ist immer in EUR Dim sqlPLOSE = "select plose_POLSEKundennummer, sum([plose_MWSTBetragWaehrungAbbuchung])[plose_MWSTBetragWaehrungAbbuchung] FROM [tblPLOSE_Details] INNER JOIN tblPLOSE_Produktbeschreibung ON [plp_ProductCode]=[plose_ProduktCode] INNER JOIN Adressen ON tblPLOSE_Details.plose_POLSEKundennummer = Adressen.PLOSEKundenNr INNER JOIN tblSteuernummern ON Adressen.AdressenNr = tblSteuernummern.AdressenNr AND tblSteuernummern.LandKZ = tblPLOSE_Produktbeschreibung.plp_Land WHERE dbo.tblSteuernummern.AdressenNr = " & varUStVAn_KuNr & " AND (dbo.tblSteuernummern.UStV = 1) AND plose_Archiv <> 1 AND plose_Fakturiert = 1 AND plose_LieferantCode IN (0,1,7) AND cast(plose_RechnungsDatum as date) >= '" & invoiceDate.ToShortDateString & "' and Adressen.AdressenNr = " & varUStVAn_KuNr & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " group by plose_POLSEKundennummer" Dim dtPLOSE As DataTable = sql.loadDgvBySql(sqlPLOSE, "FMZOLL") For Each r As DataRow In dtPLOSE.Rows Dim UST_org = CDbl(r.Item("plose_MWSTBetragWaehrungAbbuchung")) If UST_org <> 0 Then summeAlteSchnittstelle += UST_org End If Next End If If calcSummeNeueSchnitttelle Then Dim sqlPLOSE = "select plInv_PLOSEKundennummer, sum([plInv_MWSTBetrag])[plInv_MWSTBetrag], ISNULL([plInv_Currency],'') as plInv_Currency FROM [tblPLOSE_Inv_Data] INNER JOIN Adressen on PLOSEKundenNr=plInv_PLOSEKundennummer INNER JOIN dbo.tblSteuernummern ON dbo.tblSteuernummern.AdressenNr = dbo.Adressen.AdressenNr and [tblPLOSE_Inv_Data].plInv_SupplierCountry = tblSteuernummern.LandKZ WHERE dbo.tblSteuernummern.AdressenNr = " & varUStVAn_KuNr & " AND (dbo.tblSteuernummern.UStV = 1) AND plInv_Archiv <> 1 AND plInv_ArchiviertDatum is null AND cast(plInv_SupplierRechnungsDatum as date) >= '" & invoiceDate.ToShortDateString & "' and Adressen.AdressenNr = " & varUStVAn_KuNr & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " group by plInv_PLOSEKundennummer, plInv_Currency" Dim dtPLOSE As DataTable = sql.loadDgvBySql(sqlPLOSE, "FMZOLL") For Each r As DataRow In dtPLOSE.Rows Dim UST_org = CDbl(r.Item("plInv_MWSTBetrag")) If UST_org <> 0 Then Dim Weahrung As String = IIf(r.Item("plInv_Currency") IsNot Nothing, r.Item("plInv_Currency"), "") If Weahrung <> "" Then If Weahrung <> "EUR" Then Dim kurs As New cEZB_Waehrungskurse(Weahrung) Dim UST_EUR As Double = 0 UST_EUR = Math.Round((UST_org / kurs.ezb_kurs), 2) '+ (UST_org Mod Math.Round(kurs.ezb_kurs, 2)), ")" summeNeueSchnittstelle += UST_EUR Else Weahrung = "EUR" summeNeueSchnittstelle += UST_org End If End If End If Next End If Return summeAlteSchnittstelle + summeNeueSchnittstelle Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG) Return 0 End Try End Function Shared Function UStVKunden_Summen_lesen_Vorschau_IT(varUStVAn_KuNr As Integer, landKZ As String, invoiceDate As Date, calcSum As Boolean) As Double ' Dim qdf As DAO.QueryDef ' Dim rst As DAO.Recordset ' Dim strParameter As String ' Dim dtmRechnungsdatum As Date '1550 On Error GoTo PROC_Error '1560 UStVKunden_Summen_lesen_Vorschau_IT = 0 '1570 dtmRechnungsdatum = IIf(Date > DateSerial(Year(Date), 6, 30), DateSerial(Year(Date), 1, 1), DateSerial(Year(Date) - 1, 1, 1)) '1580 strParameter = ParameterBereitstellen(varUStVAn_KuNr, dtmRechnungsdatum) '1590 Set qdf = dbs.CreateQueryDef("") '1600 With qdf '1610 .Connect = AktuelleVerbindungszeichenfolge(0) '1620 .ReturnsRecords = True '1630 .SQL = "EXEC [dbo].[spUStVVorschau_IT_Summe] " & strParameter '1640 Set rst = qdf.OpenRecordset() '1650 End With '1660 Do Until rst.EOF '1670 UStVKunden_Summen_lesen_Vorschau_IT = UStVKunden_Summen_lesen_Vorschau_IT + rst![Vorschaubetrag] '1680 rst.MoveNext '1690 Loop 'PROC_Exit: '1700 On Error Resume Next '1710 If Not rst Is Nothing Then '1720 rst.Close '1730 Set rst = Nothing '1740 End If '1750 If Not qdf Is Nothing Then '1760 qdf.Close0v '1770 Set qdf = Nothing '1780 End If Try Dim summechnittstelle As Double = 0 Dim sql As New VERAG_PROG_ALLGEMEIN.SQL If calcSum Then Dim sqlITSumme = "SELECT dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, dbo.tblMautITArchiv.Verrechnungsdatum AS Rechnungsdatum, dbo.tblMautITArchiv.Code_Adressat_des_Kontoauszugs AS Rechnungsnummer, SUM(CAST(ROUND((dbo.tblMautITArchiv.Betrag_mit_Preisnachlass_oder_Preisnachlass - dbo.tblMautITArchiv.Nicht_mehrwertsteuerpflichtiger_Betrag) / 1.22 * 0.22, 2) AS money)) AS Vorschaubetrag FROM dbo.tblSteuernummern INNER JOIN dbo.Adressen ON dbo.tblSteuernummern.AdressenNr = dbo.Adressen.AdressenNr INNER JOIN dbo.tblMautITArchiv ON dbo.Adressen.[TELEPASS-Kd-Nr] = dbo.tblMautITArchiv.Code_Adressat_des_Kontoauszugs WHERE (dbo.tblMautITArchiv.UStVAn_ID IS NULL) AND (dbo.tblSteuernummern.AdressenNr = " & varUStVAn_KuNr & ") AND (dbo.tblSteuernummern.LandNr = 5) AND (dbo.tblSteuernummern.UStV = 1) AND (dbo.tblMautITArchiv.Verrechnungsdatum >= '" & invoiceDate.ToShortDateString & "') GROUP BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, dbo.tblMautITArchiv.Verrechnungsdatum, dbo.tblMautITArchiv.Code_Adressat_des_Kontoauszugs" Dim dtIT As DataTable = sql.loadDgvBySql(sqlITSumme, "FMZOLL") For Each r As DataRow In dtIT.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then Dim WaehrungsCode As String = r.Item("Währungscode") summechnittstelle += VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(UST_org, WaehrungsCode, "EUR") End If Next End If Return summechnittstelle Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG) Return 0 End Try End Function Shared Function UStVKunden_Summen_lesen_Vorschau_MSE(varUStVAn_KuNr As Integer, landKZ As String, invoiceDate As Date, calcSumalteSchnittstelle As Boolean, calcSumneueSchnittstelle As Boolean) As Double 'Return 0 ' dtmRechnungsdatum = IIf(Date > DateSerial(Year(Of Date), 6, 30), DateSerial(Year(Of Date), 1, 1), DateSerial(Year(Of Date)() - 1, 1, 1)) '1850 strParameter = ParameterBereitstellen(varUStVAn_KuNr, dtmRechnungsdatum) '1860 Set qdf = dbs.CreateQueryDef("") '1870 With qdf '1880 .Connect = AktuelleVerbindungszeichenfolge(0) '1890 .ReturnsRecords = True '1900 .SQL = "EXEC [dbo].[spUStVVorschau_MSE_Summe] " & strParameter '1910 Set rst = qdf.OpenRecordset() '1920 End With '1930 Do Until rst.EOF '1940 curUmrechnungskurs = Nz(fktEurokurs(rst![Währungscode], rst![RechnungsDatum]), 0) '1950 If curUmrechnungskurs = 0 Then '1960 curVorschaubetragEUR = 0 '1970 Else '1980 curVorschaubetragEUR = Int(rst![Vorschaubetrag] / curUmrechnungskurs * 100 + 0.5) / 100 '1990 End If '2000 UStVKunden_Summen_lesen_Vorschau_MSE = UStVKunden_Summen_lesen_Vorschau_MSE + curVorschaubetragEUR '2010 rst.MoveNext Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim summeNeueSchnittstelle As Double = 0 Dim summeAlteSchnittstelle As Double = 0 If calcSumalteSchnittstelle Then Dim sqlFMZollDatenALT = "SELECT dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, dbo.tblMSETransactionsArchiv.[Invoice Date] AS Rechnungsdatum, SUM(dbo.tblMSETransactionsArchiv.[Original VAT Amount]) AS Vorschaubetrag, dbo.tblMSETransactionsArchiv.[Original Currency] AS Währungscode FROM dbo.tblSteuernummern INNER JOIN dbo.Adressen ON dbo.tblSteuernummern.AdressenNr = dbo.Adressen.AdressenNr INNER JOIN dbo.tblMSETransactionsArchiv ON dbo.Adressen.MSEKundenNr = dbo.tblMSETransactionsArchiv.[Customer ID] INNER JOIN dbo.[Länderverzeichnis für die Außenhandelsstatistik] ON dbo.tblSteuernummern.LandNr = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandNr AND dbo.tblMSETransactionsArchiv.[Transaction Country] = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandKz WHERE (dbo.tblSteuernummern.AdressenNr = " & varUStVAn_KuNr & ") AND (dbo.tblSteuernummern.UStV = 1) AND (dbo.tblMSETransactionsArchiv.[Invoice Date] >= '" & invoiceDate.ToShortDateString & "') AND (dbo.tblMSETransactionsArchiv.[Original VAT Amount] <> 0) AND (dbo.tblMSETransactionsArchiv.UStVAn_ID IS NULL) " & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " GROUP BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, dbo.tblMSETransactionsArchiv.[Invoice Date], dbo.tblMSETransactionsArchiv.[Original Currency] ORDER BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, dbo.tblMSETransactionsArchiv.[Invoice Date], dbo.tblMSETransactionsArchiv.[Original Currency] " Dim dtMSEAlt As DataTable = sql.loadDgvBySql(sqlFMZollDatenALT, "FMZOLL") For Each r As DataRow In dtMSEAlt.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then Dim WaehrungsCode As String = r.Item("Währungscode") summeAlteSchnittstelle += VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(UST_org, WaehrungsCode, "EUR") End If Next End If '[tblMSEInvoices] set archiv=1, [archiviertDatum]=GETDATE(), UStVAn_ID = @UStVAn_ID If calcSumneueSchnittstelle Then Dim sqlFMZollDatenNEU = "select * from ( select cust.[customer_id],bills.invoice_date, bills.invoice_number, bills.specification_page_name, trans.transaction_country, trans.original_currency ,sum(USteuer_EUR) as UST_EUR, sum(original_vat_amount) as UST FROM [VERAG].[dbo].[tblMSESettlements] as bills left join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id] left join [VERAG].[dbo].[tblMSECustomers] as cust on cust.partner_customer_number = trans.partner_haulier_id left join [VERAG].[dbo].[tblMSEInvoices] as inv on inv.invoice_id = bills.invoice_number left join dbo.tblSteuernummern on dbo.tblSteuernummern.AdressenNr = trans.partner_haulier_id and dbo.tblSteuernummern.LandKZ = trans.transaction_country where bills.invoice_date >= '" & invoiceDate.ToShortDateString & "' and inv.archiv <> 1 and dbo.tblSteuernummern.UStV = 1 and trans.charged = 1 and cust.[partner_customer_number] = " & varUStVAn_KuNr & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " group by bills.invoice_date, bills.invoice_number, cust.[customer_id], bills.specification_page_name, trans.transaction_country,trans.original_currency) as temp" Dim dtMSENeut As DataTable = sql.loadDgvBySql(sqlFMZollDatenNEU, "FMZOLL") For Each r As DataRow In dtMSENeut.Rows Dim UST_org = CDbl(r.Item("UST_EUR")) If UST_org <> 0 Then summeNeueSchnittstelle += UST_org End If Next End If Return summeAlteSchnittstelle + summeNeueSchnittstelle Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG) Return 0 End Try End Function Shared Function UStVKunden_Summen_lesen_Vorschau_UTA(varUStVAn_KuNr As Integer, landKZ As String, invoiceDate As Date, calcSumalteSchnittstelle As Boolean, calcSumneueSchnittstelle As Boolean) As Double 'Return 0 ' Dim qdf As DAO.QueryDef ' Dim rst As DAO.Recordset ' Dim strParameter As String ' Dim dtmRechnungsdatum As Date '2150 On Error GoTo PROC_Error '2160 UStVKunden_Summen_lesen_Vorschau_UTA = 0 '2170 dtmRechnungsdatum = IIf(Date > DateSerial(Year(Date), 6, 30), DateSerial(Year(Date), 1, 1), DateSerial(Year(Date) - 1, 1, 1)) '2180 strParameter = ParameterBereitstellen(varUStVAn_KuNr, dtmRechnungsdatum) '2190 Set qdf = dbs.CreateQueryDef("") '2200 With qdf '2210 .Connect = AktuelleVerbindungszeichenfolge(0) '2220 .ReturnsRecords = True '2230 .SQL = "EXEC [dbo].[spUStVVorschau_UTA_Summe] " & strParameter '2240 Set rst = qdf.OpenRecordset() '2250 End With '2260 Do Until rst.EOF ' 'Der Vorschaubetrag wird durch das Feld dbo.tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung bereitgestellt und ist EUR. '2270 UStVKunden_Summen_lesen_Vorschau_UTA = UStVKunden_Summen_lesen_Vorschau_UTA + rst![Vorschaubetrag] '2280 rst.MoveNext '2290 Loop 'PROC_Exit: '2300 On Error Resume Next '2310 If Not rst Is Nothing Then '2320 rst.Close '2330 Set rst = Nothing '2340 End If '2350 If Not qdf Is Nothing Then '2360 qdf.Close '2370 Set qdf = Nothing '2380 End If '2390 Exit Function 'PROC_Error: '2400 ErrNotify Err, "basUStV", "UStVKunden_Summen_lesen_Vorschau_UTA", eNormalError '2410 Resume PROC_Exit Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL Dim summeAlteSchnittstelle As Double = 0 Dim summeNeueSchnittstelle As Double = 0 If calcSumalteSchnittstelle Then Dim sqlFMZollDaten = "SELECT dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, SUM(dbo.tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS Vorschaubetrag FROM dbo.tblSteuernummern INNER JOIN dbo.Adressen ON dbo.tblSteuernummern.AdressenNr = dbo.Adressen.AdressenNr INNER JOIN dbo.tblUTAArchiv ON dbo.Adressen.UTAKundenNr = dbo.tblUTAArchiv.Kundennummer INNER JOIN dbo.[Länderverzeichnis für die Außenhandelsstatistik] ON dbo.tblSteuernummern.LandNr = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandNr AND dbo.tblUTAArchiv.Lieferland = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandKz_ISO_3 WHERE (dbo.tblSteuernummern.AdressenNr = " & varUStVAn_KuNr & ") AND (dbo.tblSteuernummern.UStV = 1) AND (dbo.tblUTAArchiv.UStVAn_ID IS NULL) AND (dbo.tblUTAArchiv.Rechnungsdatum >= '" & invoiceDate.ToShortDateString & "') AND (dbo.tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung <> 0) " & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " GROUP BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr ORDER BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr" Dim dtUTAAlt As DataTable = sql.loadDgvBySql(sqlFMZollDaten, "FMZOLL") For Each r As DataRow In dtUTAAlt.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then summeAlteSchnittstelle += UST_org End If Next End If If calcSumneueSchnittstelle Then 'hier muss auch auf die UStVAn_ID IS nULL geprüft werden /vorher noch kontrollieren Dim sqlNeueSchnittstelle = "SELECT dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr, SUM(dbo.tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS Vorschaubetrag FROM dbo.tblSteuernummern INNER JOIN dbo.Adressen ON dbo.tblSteuernummern.AdressenNr = dbo.Adressen.AdressenNr INNER JOIN dbo.tblUTAImportNew ON dbo.Adressen.UTAKundenNr = dbo.tblUTAImportNew.Kundennummer INNER JOIN dbo.[Länderverzeichnis für die Außenhandelsstatistik] ON dbo.tblSteuernummern.LandNr = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandNr AND dbo.tblUTAImportNew.Lieferland = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandKz_ISO_3 WHERE (dbo.tblSteuernummern.AdressenNr = " & varUStVAn_KuNr & ") AND (dbo.tblSteuernummern.UStV = 1) AND (dbo.tblUTAImportNew.archiv IS NULL) AND (dbo.tblUTAImportNew.charged = 1) AND (dbo.tblUTAImportNew.Rechnungsdatum >= '" & invoiceDate.ToShortDateString & "') AND (dbo.tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung <> 0) " & IIf(landKZ = "SRB" OrElse landKZ = "BIH", " AND dbo.tblSteuernummern.LandKZ <> 'HU'", "") & " GROUP BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr ORDER BY dbo.tblSteuernummern.AdressenNr, dbo.tblSteuernummern.LandNr" Dim dtUTANeut As DataTable = sql.loadDgvBySql(sqlNeueSchnittstelle, "FMZOLL") For Each r As DataRow In dtUTANeut.Rows Dim UST_org = CDbl(r.Item("Vorschaubetrag")) If UST_org <> 0 Then summeNeueSchnittstelle += UST_org End If Next End If If Math.Round(summeAlteSchnittstelle, 2) = Math.Round(summeNeueSchnittstelle, 2) Then Return summeNeueSchnittstelle End If Return summeAlteSchnittstelle + summeNeueSchnittstelle Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.LOG) Return 0 End Try End Function Shared Function getDaID_OLD(SchnittstellenNr, reDat, reNr, Antrag_LandKz, USTV_ANTRAG) Dim da_id = -1 Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Select Case If(SchnittstellenNr, -1) Case 1 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & reDat & "' and Rechnungsausgang.RechnungsNr='" & reNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL",,, -1) 'Case 6, 0 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and isnull(plose_RechnungsNr,plInv_SupplierRechnungsNr)='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1) Case 6, 0, 11 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and plInv_SupplierRechnungsNr='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1) Case 4, 9 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblMSEInvoices] as inv inner join tblMSECustomers on inv.customer_number = customer_id where invoice_date='" & reDat & "' and country='" & Antrag_LandKz & "' AND partner_customer_number = " & USTV_ANTRAG.UStVAn_KuNr & " AND daId is not null", "FMZOLL",,, -1) Case 10 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblUTAImportNew] where Rechnungsdatum='" & reDat & "' and Abrechnungsnummer='" & reNr & "' and Lieferland_ISO2='" & Antrag_LandKz & "' AND daId is not null", "FMZOLL",,, -1) Case 7 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & reDat & "' and rmc_reNr='" & reNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1) Case 8 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNew.daId FROM [tblIDSTransactionsNew] INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode LEFT JOIN tblIDSInvoicesNew on tblIDSInvoicesNew.CustomerCode = tblIDSTransactionsNew.CustomerCode and tblIDSInvoicesNew.Invoicenumber = Paymentsummarynumber where tblIDSTransactionsNew.[YearMonthDay] ='" & reDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & reNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL",,, -1) Case 12 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNewSplittedByCountry.daId FROM [tblIDSInvoicesNewSplittedByCountry] where tblIDSInvoicesNewSplittedByCountry.[YearMonthDay] ='" & reDat & "' AND tblIDSInvoicesNewSplittedByCountry.Invoicenumber ='" & reNr.ToString.Replace("/", "") & "' andtblIDSInvoicesNewSplittedByCountry.Country='" & Antrag_LandKz & "' AND tblIDSInvoicesNewSplittedByCountry.daId is not null", "FMZOLL",,, -1) End Select Return da_id End Function Shared Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected, LandKZ, USTVA, cFakturierung, returnDSID) As String Dim schnnittstellenNr = schnittstellenNr Dim dsID If Not IsDBNull(daId) AndAlso IsNumeric(daId) AndAlso daId > 0 Then dsID = daId Else dsID = getDaID_OLD(schnnittstellenNr, ReDat, ReNr, LandKZ, USTVA) End If If dsID < 0 Then Return "" ElseIf returnDSID Then If schnittstellenNr = 8 Then 'Nr enthätl alle IDS-Rechnungen, die nicht mitgeben! Return -1 Else Return dsID End If End If 'Anschrift Nummerierung: Dim x = 100 Dim y = 10 Dim width = 300 Dim height = 10 Dim mSize = 10 Dim mFont = "" Select Case schnnittstellenNr Case 1 If dsID > 0 Then 'Me.Cursor = Cursors.WaitCursor Dim path As String Dim onlyAsfinat As Boolean = True cFakturierung.doRechnungsDruck_SRorER(dsID,, False, 4, path,,,,, onlyAsfinat) If nummierung > 0 Then Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(path) PdfReader.unethicalreading = True Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) For page As Integer = 1 To pdfReader.NumberOfPages listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , iTextSharp.text.Element.ALIGN_LEFT, page)) Next pdfReader.Close() Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(path, listTowrite, , , , ,) Return PdfTmp Else Return path End If End If Case 8 'Me.Cursor = Cursors.WaitCursor Dim ds As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID) Dim path_src As String = ds.OPEN_SINGLE(False) If path_src = "" Then Return "" Try Dim fi As New System.IO.DirectoryInfo(path_src) Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(path_src) Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi.Name, fi.Extension,, False, "IDS-Rechnungen") Dim srcDoc As New iTextSharp.text.Document() Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New FileStream(TMP_Path_New, System.IO.FileMode.Create)) PdfCopyProvider.SetFullCompression() srcDoc.Open() PdfReader.unethicalreading = True Dim pages As New List(Of Integer)() For page As Integer = 1 To pdfReader.NumberOfPages Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy() Dim currentpagetext As String = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy) Dim searchtext As String = ReNr Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing If (currentpagetext.Contains(searchtext)) Then If page > pdfReader.NumberOfPages Then MsgBox("Seitenanzahl überschritten!") srcDoc.Close() : pdfReader.Close() Return False End If Try impPage = PdfCopyProvider.GetImportedPage(pdfReader, page) ' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite PdfCopyProvider.SetPageSize(New iTextSharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, pdfReader.GetPageRotation(page))) ' ----- PDF Seite in das neue Dokument einfügen If impPage IsNot Nothing Then PdfCopyProvider.AddPage(impPage) Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End If Next srcDoc.Close() pdfReader.Close() If nummierung > 0 Then Dim pdfReadernNew As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(TMP_Path_New) pdfReadernNew.unethicalreading = True Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) For page As Integer = 1 To pdfReadernNew.NumberOfPages listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y - 6, width, height, mFont, mSize, , iTextSharp.text.Element.ALIGN_LEFT, page)) Next pdfReader.Close() Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(TMP_Path_New, listTowrite, , , , ,) Return PdfTmp Else Return TMP_Path_New End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Case Else If dsID > 0 Then 'Me.Cursor = Cursors.WaitCursor Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID) Dim PathList As New List(Of String) Dim zielPfadZusammenfassung As String Dim merged As Boolean = False If DS.DATA_LIST.coll_daId > 0 Then For Each L As cDatenarchiv_Collection In DS.DATA_LIST.LIST If L.coll_pfad <> "" Then PathList.Add(L.coll_pfad) Next Else Dim PathTemp As String = DS.GET_TOP1_PATH If PathTemp <> "" Then PathList.Add(PathTemp) End If If PathList.Count > 1 Then zielPfadZusammenfassung = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Merged_" & DS.da_KundenNr & ".pdf", ".pdf",, False, "Zusammenfassung") Dim fm_new As New VERAG_PROG_ALLGEMEIN.cFormularManager fm_new.mergePDFs(PathList, zielPfadZusammenfassung) merged = True End If Dim Path As String = IIf(zielPfadZusammenfassung <> "" AndAlso merged, zielPfadZusammenfassung, If(PathList.Any(), PathList.First(), "")) If nummierung > 0 Then 'wenn PDF nicht beschreibbar, dann mittels Stamp! If PDFisProtected Then If Path = "" Then Return Path Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA") Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(Path) PdfReader.unethicalreading = True Dim fs = New FileStream(tempPathNew, FileMode.Create, FileAccess.Write, FileShare.None) Dim stamper = New PdfStamper(pdfReader, fs) For page As Integer = 1 To pdfReader.NumberOfPages Dim canvas As PdfContentByte = stamper.GetOverContent(page) Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED) canvas.SetFontAndSize(bf, 12) canvas.BeginText() 'The origin (0,0) is at the bottom-left corner of the page and represent coordinates in points!!!!! Dim _height = pdfReader.GetPageSizeWithRotation(page).GetTop(20) 'oberer Rand Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte 'Workaround! If _height > 1500 Then canvas.SetFontAndSize(bf, 45) _height -= 70 End If canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, _width, _height, 0) 'canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0) canvas.EndText() 'listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) Next stamper.Close() pdfReader.Close() Return tempPathNew Else If Path = "" Then Return Path Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(Path) Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) For page As Integer = 1 To pdfReader.NumberOfPages listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , iTextSharp.text.Element.ALIGN_LEFT, page)) Next pdfReader.Close() Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(IIf(zielPfadZusammenfassung <> "" AndAlso merged, zielPfadZusammenfassung, PathList.First), listTowrite, , , , ,) Return PdfTmp End If Else Return Path End If End If End Select End Function Shared Function generatePosList(USTV_ANTRAG As cUSTVAntrag, posId As String, Antrag_LandKz As String, SteuerNR As String, openFile As Boolean, type As String, ByRef dt As DataTable, Optional isVZ As Boolean = False, Optional RK_ID As Integer = -1) As String Dim sql As New SQL Dim sqlWHere = "" If posId <> "" Then sqlWHere = " And UStVPo_ID in(" & posId & ")" ElseIf isVZ Then sqlWHere = " and UStVPo_VZ = 1 And (UStVPo_VZ_RKID is null" & IIf(RK_ID > 0, " or UStVPo_VZ_RKID = " & RK_ID & ")", ")") End If Dim StringSQL = "SELECT [UStVPo_ID] as Number ,[UStVPo_ReDat] as 'Date of Invoice',[UStVPo_ReNr] as 'Number of invoice' ,[UStVPo_Leistungsbezeichnung] as 'Name of service',[UStVPo_Leistender] as 'Name of supplier',leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as Street, leist.[UstV_Leistender_PLZ] as 'ZIP-Code',leist.[UstV_Leistender_Stadt] as City,leist.[UstV_Leistender_Land] as Country,leist.[UstV_Leistender_UstNr] as VAT,[UStVPo_USteuerbetrag] as 'Amount of tax refund' FROM [tblUStVPositionen] LEFT JOIN [tblUStVLeistender] as leist ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0 AND leist.[UStV_LeistenderId] = [tblUStVPositionen].[UStVPo_LeistenderId]) OR ([tblUStVPositionen].[UStVPo_LeistenderId] <= 0 AND leist.[UStV_Leistender]= [tblUStVPositionen].[UStVPo_Leistender]) where UStVAn_ID=" & USTV_ANTRAG.UStVAn_ID & sqlWHere & " ORDER BY UStVPo_ID" Dim dtNew As DataTable = sql.loadDgvBySql(StringSQL, "FMZOLL") If dtNew IsNot Nothing AndAlso dtNew.Rows.Count > 0 Then If type = "excel" Then Dim sumVAT As Double = 0 For Each row In dtNew.Rows If Not IsDBNull(row("Amount of tax refund")) AndAlso IsNumeric(row("Amount of tax refund")) Then sumVAT += CDbl(row("Amount of tax refund")) If Not IsDBNull(row("Amount of tax refund")) AndAlso IsNumeric(row("Amount of tax refund")) Then row("Amount of tax refund") = CDbl(row("Amount of tax refund")) If Not IsDBNull(row("Name of supplier")) AndAlso row("Name of supplier") <> "" AndAlso Not IsDBNull(row("VAT")) AndAlso row("VAT") <> "" Then row("Name of supplier") = row("Name of supplier").ToString.Replace(" " & row("VAT").ToString.Substring(0, 2), "") End If Next Dim drLast = dtNew.NewRow If dtNew.Columns.Contains("Number") Then drLast.Item("Number") = dtNew.Rows.Count + 1 If dtNew.Columns.Contains("Date of Invoice") Then drLast.Item("Date of Invoice") = DBNull.Value If dtNew.Columns.Contains("Number of invoice") Then drLast.Item("Number of invoice") = DBNull.Value If dtNew.Columns.Contains("Amount of tax refund") Then drLast.Item("Amount of tax refund") = sumVAT If dtNew.Columns.Contains("Name of supplier") Then drLast.Item("Name of supplier") = DBNull.Value If dtNew.Columns.Contains("Street") Then drLast.Item("Street") = DBNull.Value If dtNew.Columns.Contains("City") Then drLast.Item("City") = DBNull.Value If dtNew.Columns.Contains("Country") Then drLast.Item("Country") = DBNull.Value If dtNew.Columns.Contains("ZIP-Code") Then drLast.Item("ZIP-Code") = DBNull.Value If dtNew.Columns.Contains("VAT") Then drLast.Item("VAT") = "SUM" If dtNew.Columns.Contains("Name of service") Then drLast.Item("Name of service") = DBNull.Value dtNew.Rows.InsertAt(drLast, dtNew.Rows.Count) Dim header1 As String = "" Dim header2 As String = "" Dim AD As New cAdressen(USTV_ANTRAG.UStVAn_KuNr) If Antrag_LandKz <> "" Then header1 = "Statement itemising VAT amounts relating to the period covered by this application" header2 = "VAT NO.: " & USTV_ANTRAG.UStVAn_Steuernummer & " " & "Name/Company: " & AD.Name_1 & " " & AD.Name_2 & " " & "VAT in " & Antrag_LandKz & ": " & SteuerNR End If Return cProgramFunctions.genExcelFromDT_NEW_(dtNew, {"K1:K" & (dtNew.Rows.Count + 1)},, header1, header2, IIf(USTV_ANTRAG.UStVAn_Währungscode = "EUR", "€", ""), True, "J", True, True, openFile) Else For Each row In dtNew.Rows If Not IsDBNull(row("VAT")) AndAlso row("VAT") <> "" AndAlso Not IsDBNull(row("Name of supplier")) AndAlso row("Name of supplier") <> "" Then row("Name of supplier") = row("Name of supplier").ToString.Replace(" " & row("VAT").ToString.Substring(0, 2), "") End If Next If dtNew.Columns.Contains("Number") Then dt = dtNew Return "prt" Else Return "" End If End If End If End Function End Class