Files
SDL/VERAG_PROG_ALLGEMEIN/Classes/cMDMFunctionsAllgemein.vb
2025-04-29 17:18:24 +02:00

1107 lines
65 KiB
VB.net

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
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
ploseAlteLogikSchnittstelle = True
ploseNeueLogikSchnittstelle = True
ITSchnittstelle = False
MSEAlteSchnittstelle = True
MSENeueSchnittstelle = True
IDSAlteSchnittstelle = True
IDSNeueSchnittstelle = True
UTAAlteSchnittstelle = True
UTANeueSchnittstelle = True
End If
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 = "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 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
cFakturierung.doRechnungsDruck_SRorER(dsID,, False, 4, path)
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)
If nummierung > 0 Then
'wenn PDF nicht beschreibbar, dann mittels Stamp!
If PDFisProtected Then
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(DS.GET_TOP1_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, 16)
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(25) 'oberer Rand
Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte
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
Dim pdfReader As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(DS.GET_TOP1_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(DS.GET_TOP1_PATH, listTowrite, , , , ,)
Return PdfTmp
End If
Else
Return DS.GET_TOP1_PATH
End If
End If
End Select
End Function
Shared Function generateExcelPosList(USTV_ANTRAG As cUSTVAntrag, posId As String, Antrag_LandKz As String, SteuerNR As String, openFile As Boolean) As String
Dim sql As New SQL
Dim sqlWHere = ""
If posId <> "" Then
sqlWHere = " And UStVPo_ID in(" & posId & ")"
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
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 <> "" AndAlso SteuerNR <> "" 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,, openFile)
End If
End Function
End Class