1190 lines
69 KiB
VB.net
1190 lines
69 KiB
VB.net
|
|
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
|