Files
SDL/SDL/USTV/usrCntlUSTV.vb
2026-07-31 15:28:27 +02:00

2102 lines
110 KiB
VB.net

Imports System.ComponentModel
Imports System.Linq.Expressions
Imports System.Text
Imports GrapeCity.DataVisualization.TypeScript
Imports Microsoft.Office.Interop
Imports org.BouncyCastle.Math.EC.Endo
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class usrCntlUSTV
Dim kundenSQL As New kundenSQL
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim FUNC As New cProgramFunctions
Dim aktbtn As String = ""
Dim dgvInitWait As Boolean = False
Public kdNr As Integer = -1
Dim loaded As Boolean = False
Sub init(Optional kdNr As Integer = -1, Optional ID As Integer = -1, Optional AntragsLand As String = "", Optional ignoreDate As Boolean = False)
pnlFilter.AutoScroll = False
btnKundendatenaktualisieren.Enabled = False
' MsgBox(kdNr)
If kdNr > 0 Then
Me.kdNr = kdNr
KdSearchBox1.KdNr = kdNr
KdSearchBox1.Enabled = False
setInfo(kdNr)
Else
If KdSearchBox1 IsNot Nothing Then
If KdSearchBox1.KdNr > 0 Then
setInfo(KdSearchBox1.KdNr)
End If
btnPLOSEAlle.Enabled = KdSearchBox1.KdNr > 0
End If
End If
With dgvUSTV
.ClearSelection()
Dim topMax = ""
If cbxTopMax.Checked Then
If IsNumeric(txtMaxSrch.Text) Then
topMax = " TOP (" & txtMaxSrch.Text.Trim & ")"
Else
topMax = " TOP (200)"
End If
End If
Dim sql_query As String = "SELECT " & topMax & " [tblUStVAntrag].[UStVAn_ID],UStVAn_AntragArt,[UStVAn_KuNr],[UStVAn_Name],[UStVAn_LandKz],LandKz as Land_Antrag , UStVAn_BezugsNr, [UStVAn_ReDatVon], [UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm, isnull(UStVAn_VZBetrag,0) - isnull(UStVAn_RZBetragVZ,0) as UStVAn_VZBetrag,[UStVAn_VZDatum],[UStVAn_3470],STUFF((
SELECT ', ' + CAST(e.GutschriftsNr AS VARCHAR(50))
From tblUStVErstattung e
Where e.UStVAn_ID = [tblUStVAntrag].[UStVAn_ID]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS 'GutschriftsNr' ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],([UStVAn_USteuerbetrag] - [UStVAn_Erstattungsbetrag]) as UStVAn_Differenzbetrag,[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],([UStVAn_USteuerbetragEUR] - [UStVAn_ErstattungsbetragEUR]) as UStVAn_DifferenzbetragEUR,UStVAn_VZoffen ,[UStVAn_Sachbearbeiter]
FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr
where 1=1 " & getWhere(Not ignoreDate, ID, AntragsLand) & "
order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc"
.SET_SQL(sql_query, "FMZOLL")
.LOAD()
loaded = True
.RowTemplate.Height = 20
.AllowUserToOrderColumns = False
.AllowUserToResizeRows = False
btnKundendatenaktualisieren.Enabled = KdSearchBox1.KdNr > 0 'AndAlso .RowCount > 0
If .Columns.Count > 0 Then
Dim DataGridViewCellStyleDate = New DataGridViewCellStyle()
DataGridViewCellStyleDate.Format = "MM/yyyy"
' .Columns("UStVAn_ID").Visible = False
.Columns("UStVAn_ID").Width = 60
.Columns("UStVAn_ID").HeaderText = "ID"
'.Columns("UStVAn_ID").Frozen = True
.Columns("UStVAn_AntragArt").HeaderText = "Art"
.Columns("UStVAn_AntragArt").Width = 50
'.Columns("UStVAn_AntragArt").Frozen = True
.Columns("UStVAn_KuNr").HeaderText = "KundenNr"
.Columns("UStVAn_KuNr").Width = 70
'.Columns("UStVAn_KuNr").Frozen = True
.Columns("UStVAn_Name").HeaderText = "Firma"
.Columns("UStVAn_Name").MinimumWidth = 150
.Columns("UStVAn_Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'.Columns("UStVAn_Name").Frozen = True
' .Columns("UStVAn_Name").MinimumWidth = 150
' .Columns("UStVAn_Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("UStVAn_LandKz").HeaderText = "Land"
.Columns("UStVAn_LandKz").Width = 50
'.Columns("UStVAn_LandKz").Frozen = True
.Columns("Land_Antrag").HeaderText = "Antrag Land"
.Columns("Land_Antrag").Width = 50
'.Columns("Land_Antrag").Frozen = True
.Columns("UStVAn_ReDatVon").HeaderText = "Von"
'.Columns("UStVAn_ReDatVon").DefaultCellStyle = DataGridViewCellStyleDate
.Columns("UStVAn_ReDatVon").Width = 75
.Columns("UStVAn_ReDatBis").HeaderText = "Bis"
'.Columns("UStVAn_ReDatBis").DefaultCellStyle = DataGridViewCellStyleDate
.Columns("UStVAn_ReDatBis").Width = 75
.Columns("UStVAn_BezugsNr").HeaderText = "BezugsNr"
.Columns("UStVAn_BezugsNr").Width = 60
.Columns("UStVAn_AntragEingereichtAm").HeaderText = "Eingereicht Datum"
.Columns("UStVAn_AntragEingereichtAm").Width = 80
.Columns("UStVAn_VZDatum").HeaderText = "Vorausz.Am"
.Columns("UStVAn_VZDatum").Width = 75
.Columns("UStVAn_VZBetrag").HeaderText = "Vorauszahlung Betrag"
.Columns("UStVAn_VZBetrag").Width = 100
.Columns("UStVAn_VZBetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_VZBetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_3470").HeaderText = "3470"
.Columns("UStVAn_3470").Width = 80
.Columns("UStVAn_3470").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_3470").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_Währungscode").HeaderText = "Währ."
.Columns("UStVAn_Währungscode").Width = 60
.Columns("UStVAn_USteuerbetrag").HeaderText = "USt Betrag"
.Columns("UStVAn_USteuerbetrag").Width = 100
.Columns("UStVAn_USteuerbetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_USteuerbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_Erstattungsbetrag").HeaderText = "Erstattung Betrag"
.Columns("UStVAn_Erstattungsbetrag").Width = 100
.Columns("UStVAn_Erstattungsbetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_Erstattungsbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_Differenzbetrag").HeaderText = "Differenz Betrag"
.Columns("UStVAn_Differenzbetrag").Width = 100
.Columns("UStVAn_Differenzbetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_Differenzbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_ErstattungsbetragEUR").HeaderText = "Erstattung Betrag EUR"
.Columns("UStVAn_ErstattungsbetragEUR").Width = 100
.Columns("UStVAn_ErstattungsbetragEUR").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_ErstattungsbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_USteuerbetragEUR").HeaderText = "USt-Betrag EUR"
.Columns("UStVAn_USteuerbetragEUR").Width = 100
.Columns("UStVAn_USteuerbetragEUR").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_USteuerbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_DifferenzbetragEUR").HeaderText = "Differenz Betrag EUR"
.Columns("UStVAn_DifferenzbetragEUR").Width = 100
.Columns("UStVAn_DifferenzbetragEUR").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_DifferenzbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_VZoffen").HeaderText = "VZ nicht abgerechnet"
.Columns("UStVAn_VZoffen").Width = 80
.Columns("UStVAn_VZoffen").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("GutschriftsNr").HeaderText = "GutschriftsNr"
.Columns("GutschriftsNr").Width = 180
.Columns("GutschriftsNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("UStVAn_Sachbearbeiter").HeaderText = "Sachbearbeiter"
.Columns("UStVAn_Sachbearbeiter").MinimumWidth = 60
End If
Dim GesamtUSteuer As Double = 0
Dim GesamtErstattung As Double = 0
Dim Differnezbetrag As Double = 0
Dim Gesamt3470 As Double = 0
Dim GesamtVZBetrag As Double = 0
Dim VorschaubetrGes As Double = 0
Dim OPSaldo As Double = 0
Dim Risiko As Double = 0
Dim calcRisiko As Boolean = False
If KdSearchBox1.KdNr > 0 Then
Dim dt As New DataTable
dt = SQL.loadDgvBySql("SELECT Kunden.KundenNr as KundenNr, Kunden.UStV_SummeUmsatzsteuerbetragEUR, Kunden.UStV_SummeErstattungsbetragEUR, Kunden.UStV_Summe3470BetragEUR, Kunden.UStV_SummeVZBetragEUR, Kunden.UStV_SummeVorschaubetragEUR
FROM Kunden
WHERE Kunden.KundenNr = " & KdSearchBox1.KdNr, "FMZOLL")
OPSaldo = CDbl((New SQL).getValueTxtBySql("SELECT isnull(sum(Gesamtausstand),0) FROM [Offene Posten] WHERE [Kontonummer]=" & KdSearchBox1.KdNr, "FMZOLL"))
calcRisiko = True
If dt.Rows.Count = 1 Then
GesamtUSteuer = dt.Rows(0).Item("UStV_SummeUmsatzsteuerbetragEUR")
GesamtErstattung = dt.Rows(0).Item("UStV_SummeErstattungsbetragEUR")
Gesamt3470 = dt.Rows(0).Item("UStV_Summe3470BetragEUR")
GesamtVZBetrag = dt.Rows(0).Item("UStV_SummeVZBetragEUR")
VorschaubetrGes = dt.Rows(0).Item("UStV_SummeVorschaubetragEUR")
Else
GesamtUSteuer = 0
GesamtErstattung = 0
Gesamt3470 = 0
GesamtVZBetrag = 0
VorschaubetrGes = 0
End If
'GesamtUSteuer = SQL.DLookup("isnull(sum(UStVAn_USteuerbetragEUR),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
'GesamtErstattung = SQL.DLookup("isnull(sum(UStVAn_ErstattungsbetragEUR),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
'Gesamt3470 = SQL.DLookup("isnull(sum(UStVAn_3470),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
'GesamtVZBetrag = SQL.DLookup("isnull(sum(UStVAn_VZBetrag),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
Else
For Each rows As DataGridViewRow In .Rows
If IsNumeric(rows.Cells("UStVAn_USteuerbetragEUR").Value) Then GesamtUSteuer += rows.Cells("UStVAn_USteuerbetragEUR").Value
If IsNumeric(rows.Cells("UStVAn_ErstattungsbetragEUR").Value) Then GesamtErstattung += rows.Cells("UStVAn_ErstattungsbetragEUR").Value
If IsNumeric(rows.Cells("UStVAn_3470").Value) Then Gesamt3470 += rows.Cells("UStVAn_3470").Value
If IsNumeric(rows.Cells("UStVAn_VZBetrag").Value) Then GesamtVZBetrag += rows.Cells("UStVAn_VZBetrag").Value
Next
VorschaubetrGes = 0
Risiko = 0
End If
'Beim Differenzbetrag
Differnezbetrag = GesamtUSteuer - GesamtErstattung
If calcRisiko Then
Risiko = OPSaldo - Differnezbetrag - Gesamt3470 + GesamtVZBetrag - VorschaubetrGes
End If
txtSumUst.Text = GesamtUSteuer.ToString("C2")
txtSumErst.Text = GesamtErstattung.ToString("C2")
txtSumDiff.Text = Differnezbetrag.ToString("C2")
txt3470Betrag.Text = Gesamt3470.ToString("C2")
txtVZBetrag.Text = GesamtVZBetrag.ToString("C2")
txtVorschaubetrGes.Text = VorschaubetrGes.ToString("C2")
txtOPSaldo.Text = OPSaldo.ToString("C2")
txtRisiko.Text = Risiko.ToString("C2")
End With
End Sub
Function getWhere(Optional useJahr As Boolean = True, Optional AntragsID As Integer = -1, Optional AntragsLandKZ As String = "") As String
Dim whereStr = ""
'If KdSearchBox1.KdNr <= 0 Then Exit Sub
If AntragsID > 0 Then
whereStr &= " AND UStVAn_ID=" & AntragsID & " " & IIf(KdSearchBox1.KdNr > 0, " AND UStVAn_KuNr=" & KdSearchBox1.KdNr & " ", "")
Return whereStr
End If
If useJahr Then
If cboJahr._value <> "" Then
If cboJahrBis._value <> "" Then
whereStr &= " AND UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND UStVAn_ReDatBis<='31.12." & cboJahrBis._value & "' "
Else
whereStr &= " AND UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND UStVAn_ReDatBis<='31.12." & cboJahr._value & "' "
End If
End If
End If
Select Case cbxEingereicht.CheckState
Case CheckState.Checked
whereStr &= " AND UStVAn_AntragEingereichtAm is not null "
Case CheckState.Unchecked
whereStr &= " AND UStVAn_AntragEingereichtAm is null "
Case CheckState.Indeterminate
End Select
Select Case cbxDifferenzbetrag.CheckState
Case CheckState.Checked
whereStr &= " AND ([UStVAn_USteuerbetrag]-[UStVAn_Erstattungsbetrag]) <> 0"
Case CheckState.Unchecked
whereStr &= " AND ([UStVAn_USteuerbetrag]-[UStVAn_Erstattungsbetrag]) = 0 "
Case CheckState.Indeterminate
End Select
Select Case cbxVZnichtabgerechnet.CheckState
Case CheckState.Checked
whereStr &= " AND isnull(UStVAn_VZoffen,0) <> 0"
Case CheckState.Unchecked
whereStr &= " AND isnull(UStVAn_VZoffen,0) = 0 "
Case CheckState.Indeterminate
End Select
If KdSearchBox1.KdNr > 0 Then whereStr &= " AND UStVAn_KuNr=" & KdSearchBox1.KdNr & " "
If AntragsLandKZ <> "" Then whereStr &= " AND LandKz='" & AntragsLandKZ & "' "
Return whereStr
End Function
Private Sub usrCntlUSTV_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' btnFilter.Left = Panel4.Width - btnFilter.Width
KdSearchBox1.initKdBox(Me.FindForm)
If kdNr > 0 Then
KdSearchBox1.KdNr = kdNr
KdSearchBox1.Enabled = False
End If
init()
cboJahr.Items.Clear()
cboJahr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
For i = 0 To Now().Year - 2005
cboJahr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(Now.Year - i, Now.Year - i))
Next
cboJahr.changeItem(Now.Year - 1)
cboJahrBis.Items.Clear()
cboJahrBis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
For i = 0 To Now().Year - 2005
cboJahrBis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(Now.Year - i, Now.Year - i))
Next
cboJahrBis.changeItem(Now.Year)
filterAntragsLand()
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
btnUSTVAloeschen.Enabled = False
btnNeuerUSTVA.Enabled = False
btnPLOSEAlle.Enabled = False
Else
btnUSTVAloeschen.Enabled = True
btnNeuerUSTVA.Enabled = True
End If
frmMain.EnableDoubleBuffered(dgvUSTV)
End Sub
Private Sub dgvUSTV_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvUSTV.CellDoubleClick
If dgvUSTV.SelectedRows.Count > 0 Then
Dim f As New frmMDM_USTVAntrag(dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value)
f.Show(Me)
If Not f.IsHandleCreated Then
dgvUSTV.RELOAD()
End If
'dgvUSTV.RELOAD()
End If
End Sub
Private Sub cboJahr_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboJahr.SelectedIndexChanged, cboJahrBis.SelectedIndexChanged
If loaded = False Then Exit Sub
init()
filterAntragsLand()
End Sub
Private Sub KdSearchBox1_PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Handles KdSearchBox1.PropertyChanged
If loaded = False Then Exit Sub
init()
filterAntragsLand()
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dtNew As New DataTable
dtNew = TryCast(dgvUSTV.DataSource, DataTable)
If dtNew.Rows.Count > 0 Then
For Each col As DataColumn In dtNew.Columns
Dim colName = col.ColumnName.Replace("UStVAn_", "")
If Not col.ColumnName.Contains(colName) Then col.ColumnName = col.ColumnName.Replace("UStVAn_", "")
Next
cProgramFunctions.genExcelFromDT_NEW(dtNew, {"K1:K" & (dtNew.Rows.Count + 1), "O1:T" & (dtNew.Rows.Count + 1)},,,,, True)
End If
End Sub
Private Sub Button8_Click_1(sender As Object, e As EventArgs) Handles Button8.Click
'Dim sqlStr = "SELECT [UStVAn_ID],[UStVAn_KuNr],[UStVAn_Name],LandKz,[UStVAn_ReDatVon],[UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],[UStVAn_Sachbearbeiter]
' FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr
' where 1=1 " & getWhere(False) & "
' AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))<>0
' AND UStVAn_AntragEingereichtAm is not null
' order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc"
Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KDNR,[UStVAn_Name] as Kundename,Adressen.LandKz as LKZ_KD, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA.LandKz as LKZ,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as WKZ,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, (isnull(UStVAn_VZBetrag,0) - isnull(UStVAn_RZBetragVZ,0)) as VZ, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr
FROM [tblUStVAntrag]
inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr
inner join Adressen on AdressenNr=UStVAn_KuNr
left join [tblSteuernummern] as stnr on stnr.AdressenNr = UStVAn_KuNr and stnr.LandNr=UStVAn_LandNr
where 1=1
AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))<>0
AND UStVAn_AntragEingereichtAm is not null
order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LfdA .LandKz,[UStVAn_ReDatVon] desc"
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt, ,,,,, True,,,,,, {"L1:Q" & (dt.Rows.Count + 1)})
Else
MsgBox("Keine Daten!")
End If
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
' If Not kdNr_filter Then
If dgvUSTV.SelectedCells.Count > 0 Then
If IsNumeric(dgvUSTV.CurrentRow.Cells("UStVAn_KuNr").Value) Then
cProgramFunctions.openKundenblatt(dgvUSTV.CurrentRow.Cells("UStVAn_KuNr").Value, Me.FindForm, True)
'Dim pf As New cProgramFunctions
'pf.openKundenblatt(dgvSDL.CurrentRow.Cells("KundenNr").Value)
End If
End If
' End If
End Sub
Private Sub btnPLOSEAlle_Click(sender As Object, e As EventArgs) Handles btnPLOSEAlle.Click
If Not ContextMenuStrip2.Items.ContainsKey("plose") Then
Dim plose = New ToolStripMenuItem() With {.Text = "Plose", .Name = "plose", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip2.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
If IsDate(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value) Then
If DirectCast(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value, Date).Year >= 2025 Then 'wenn INFO von PLOSE WÄHRUNGSCODE IN INV_DATA, dann freischalten
If Not ContextMenuStrip2.Items.ContainsKey("ploseneu") Then
Dim plose = New ToolStripMenuItem() With {.Text = "Plose-NEUE LOGIK", .Name = "ploseneu", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip2.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
End If
End If
If Not ContextMenuStrip2.Items.ContainsKey("rmc") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "RMC", .Name = "rmc", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(rmc)
End If
If Not ContextMenuStrip2.Items.ContainsKey("mse") Then
Dim mse = New ToolStripMenuItem() With {.Text = "MSE", .Name = "mse", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mse.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(mse)
End If
If Not ContextMenuStrip2.Items.ContainsKey("uta") Then
Dim uta = New ToolStripMenuItem() With {.Text = "UTA", .Name = "uta", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler uta.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(uta)
End If
If Not ContextMenuStrip2.Items.ContainsKey("ids") Then
Dim ids = New ToolStripMenuItem() With {.Text = "IDS", .Name = "ids", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(ids)
End If
If Not ContextMenuStrip2.Items.ContainsKey("verag") Then
Dim verag = New ToolStripMenuItem() With {.Text = "VERAG", .Name = "verag", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler verag.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(verag)
End If
ContextMenuStrip2.Show(Cursor.Position)
End Sub
Private Sub mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs)
Try
If dgvUSTV.SelectedRows.Count > 0 Then
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
Me.Cursor = Cursors.WaitCursor
If KdSearchBox1.KdNr <= 0 Then Exit Sub
If cboJahr._value = "" Then Exit Sub
If cboJahrBis._value = "" Then Exit Sub
Dim cnt = SQL.getValueTxtBySql(" SELECT COUNT(*) FROM [tblUStVAntrag] where UStVAn_AntragEingereichtAm is null AND UStVAn_KuNr=" & KdSearchBox1.KdNr & " AND UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND UStVAn_ReDatBis<='31.12." & cboJahrBis._value & "'", "FMZOLL")
If cnt = 0 Then MsgBox("Keine einreichbaren Anträge gefunden!") : Exit Sub
If item IsNot Nothing Then
If item.Name = "plose" Or item.Name = "ploseneu" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then ' OrElse r.Cells("UStVAn_AntragEingereichtAm").Value = "" Then
'Dim Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & r.Cells("UStVAn_LandNr").Value & "'", "FMZOLL")
frmMDM_USTVAntrag.loadUSTVFrom_PLOSE(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False, IIf(item.Name = "ploseneu", True, False))
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "rmc" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_RMC(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "mse" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_MSE(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "uta" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_UTA(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "ids" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_IDS(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "verag" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
If r.Cells("Land_Antrag").Value = "AT" Then frmMDM_USTVAntrag.loadUSTVFrom_VERAG(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
Else
MsgBox("Funktion nicht implementiert!")
End If
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub btnFAPruefung_Click(sender As Object, e As EventArgs) Handles btnFAPruefung.Click
If Not ContextMenuStrip3.Items.ContainsKey("dgv") Then
Dim dgv = New ToolStripMenuItem() With {.Text = "Übersicht anzeigen", .Name = "dgv", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler dgv.Click, AddressOf mnuFAPruefungenClicked
ContextMenuStrip3.Items.Add(dgv)
End If
If Not ContextMenuStrip3.Items.ContainsKey("excel") Then
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip3.Items.Add(excel)
AddHandler excel.Click, AddressOf mnuFAPruefungenClicked
End If
If Not ContextMenuStrip3.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnuFAPruefungenClicked
ContextMenuStrip3.Items.Add(mail)
End If
ContextMenuStrip3.Show(Cursor.Position)
End Sub
Private Sub btn3470_Click(sender As Object, e As EventArgs) Handles btn3470.Click
If Not ContextMenuStrip4.Items.ContainsKey("excel") Then
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip4.Items.Add(excel)
AddHandler excel.Click, AddressOf mnu3470_Clicked
End If
If Not ContextMenuStrip4.Items.ContainsKey("pdf") Then
Dim pdf = New ToolStripMenuItem() With {.Text = "PDF", .Name = "pdf", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip4.Items.Add(pdf)
AddHandler pdf.Click, AddressOf mnu3470_Clicked
End If
If Not ContextMenuStrip4.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnu3470_Clicked
ContextMenuStrip4.Items.Add(mail)
End If
ContextMenuStrip4.Show(Cursor.Position)
End Sub
Private Sub btnMail_Click(sender As Object, e As EventArgs) Handles btnMail.Click
If Not ContextMenuStrip1.Items.ContainsKey("excel") Then
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip1.Items.Add(excel)
AddHandler excel.Click, AddressOf mnuItem_Clicked
End If
If Not ContextMenuStrip1.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(mail)
End If
If Not ContextMenuStrip1.Items.ContainsKey("offeneAntraege") Then
Dim oa = New ToolStripMenuItem() With {.Text = "nicht eingearbeitet USTV-Anträge", .Name = "offeneAntraege", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler oa.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(oa)
End If
If Not ContextMenuStrip1.Items.ContainsKey("checkPDF") Then
Dim pdf = New ToolStripMenuItem() With {.Text = "PDF-Verknüpfungen prüfen", .Name = "checkPDF", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler pdf.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(pdf)
End If
If Not ContextMenuStrip1.Items.ContainsKey("checkAntragspositionen") Then
Dim pos = New ToolStripMenuItem() With {.Text = "Antragspositionen prüfen", .Name = "checkAntragspositionen", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler pos.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(pos)
End If
ContextMenuStrip1.Show(Cursor.Position)
End Sub
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
If item.Name = "excel" Then
If dgvUSTV.SelectedRows.Count > 0 Then excelAuswertung()
ElseIf item.Name = "mail" Then
If dgvUSTV.SelectedRows.Count > 0 Then mailmitExcelauswertung()
ElseIf item.Name = "offeneAntraege" Then
If dgvUSTV.SelectedRows.Count > 0 AndAlso dgvUSTV.SelectedRows(0) IsNot Nothing AndAlso IsDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value) AndAlso IsDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value) Then
If dgvUSTV.SelectedRows(0).Cells("UStVAn_KuNr").Value IsNot Nothing AndAlso dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value IsNot Nothing Then
Dim frm As New frmUSTVoffeneAntraege(CDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value), CDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value), dgvUSTV.SelectedRows(0).Cells("UStVAn_KuNr").Value, IIf(IsDBNull(dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value), "", dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value))
frm.Show()
Else
Dim frm As New frmUSTVoffeneAntraege(CDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value), CDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value))
frm.cbxAlleoffenen.Checked = True
frm.Show()
End If
Else
Dim start_date As New Date(Today.Year, 1, 1)
Dim end_date As New Date(Today.Year, 12, 31)
Dim ADR As cAdressen = New cAdressen(kdNr)
Dim frm As New frmUSTVoffeneAntraege(start_date, end_date, kdNr, ADR.Name_1)
frm.Show()
End If
ElseIf item.Name = "checkPDF" Then
checkPDF()
ElseIf item.Name = "checkAntragspositionen" Then
checkAntragspositionen(CInt(cboJahr._value), CInt(cboJahrBis._value))
Else
MsgBox("Funktion nicht implementiert!")
End If
End If
End Sub
Private Function excelAuswertung(Optional ByRef filepath As String = "", Optional feedback As Boolean = False, Optional openExcel As Boolean = True) As Boolean
Dim sqlStr = "SELECT [UStVPo_ReDat] as InvoiceDate , [UStVPo_ReNr] As InvoiceNumber, antr.UStVAn_Name as Company, LandKz as CountryOfRefund ,'EUR' as Currency ,[UStVPo_Leistender] as SupplierName, leist.[UstV_Leistender_Strasse] AS SupplierStreet, leist.[UstV_Leistender_StrasseNr] as SupplierStreetNumber, leist.[UstV_Leistender_PLZ] as SupplierPostalCode, leist.[UstV_Leistender_Stadt] as SupplierCity, leist.[UstV_Leistender_Land] as SupplierCountry, leist.[UstV_Leistender_UstNr] as SupplierVAT_TaxNumber, [UStVPo_Leistungsbezeichnung] as ExpenseCategory ,Round((1119/19*[UStVPo_USteuerbetragEUR]),2) as ExpenseGrossAmount, [UStVPo_USteuerbetragEUR] as ExpenseVATAmount,Round((100/19*[UStVPo_USteuerbetragEUR]),2) as ExpenseNetAmount
FROM [tblUStVPositionen]
inner Join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
inner join [tblUStVAntrag] as antr on antr.UStVAn_ID = [tblUStVPositionen].UStVAn_ID
inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr
where [tblUStVPositionen].UStVAn_ID ='" & dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value & "' ORDER BY UStVPo_ID"
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
'filepath = ""
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt, {"N1:N" & (dt.Rows.Count + 1), "O1:O" & (dt.Rows.Count + 1), "P1:P" & (dt.Rows.Count + 1)},,,, openExcel,,, True)
Return True
Else
MsgBox("Keine Daten!")
Return False
End If
End Function
Private Function checkPDF(Optional ByRef filepath As String = "", Optional feedback As Boolean = False, Optional openExcel As Boolean = True) As Boolean
'INFO -> Schnittstelle beinhaltet ald DA-ID die RK-ID (Feld wird missbraucht!!!)
Dim sqlStr = "select tblUStVAntrag.UStVAn_ID,[Länderverzeichnis für die Außenhandelsstatistik].LandKz, UStVPo_interneNr, UStVPo_ID, UStVPo_SchnittstellenNr, UStVPo_daId, UStVPo_daId_loeschbar
from tblUStVAntrag
inner join tblUStVPositionen on tblUStVAntrag.UStVAn_ID = tblUStVPositionen.UStVAn_ID
inner join [Länderverzeichnis für die Außenhandelsstatistik] on Landnr = tblUStVAntrag.UStVAn_LandNr
where isnull(UStVPo_daId, 0) <> 0 and isnull(UStVPo_daId, 0) not in (select da_id from tblDatenarchiv) and UStVPo_SchnittstellenNr <> 1
order by UStVAn_ID "
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
'filepath = ""
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, openExcel,,, True)
Return True
Else
MsgBox("Keine Daten!")
Return False
End If
End Function
Private Function checkAntragspositionen(RechnungsjahrVon As Integer, RechnungsjahrBis As Integer) As Boolean
Dim sqlStr = "SELECT [UStVAn_ID] as AntragsID,cast([UStVPo_ReDat] as date) as Rechnungsdatum,[UStVPo_ReNr] as RechnungsNr
FROM [VERAG].[dbo].[tblUStVPositionen] where Year([UStVPo_ReDat]) >= " & RechnungsjahrVon & " and Year([UStVPo_ReDat]) <= " & RechnungsjahrBis & "
group by [UStVAn_ID] ,[UStVPo_ReNr], [UStVPo_ReDat]
HAVING COUNT(*) > 1
order by [UStVAn_ID] desc"
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, True,,, True)
Return True
Else
MsgBox("Keine Daten!")
Return False
End If
End Function
Private Sub mailmitExcelauswertung()
Try
If dgvUSTV.Columns.Count > 0 Then
Dim subject As String = ""
subject &= IIf(dgvUSTV.CurrentRow.Cells("UStVAn_Name").Value <> "", dgvUSTV.CurrentRow.Cells("UStVAn_Name").Value & "_", "")
subject &= IIf(dgvUSTV.CurrentRow.Cells("Land_Antrag").Value <> "", dgvUSTV.CurrentRow.Cells("Land_Antrag").Value & "_", "")
If (dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value IsNot Nothing AndAlso dgvUSTV.CurrentRow.Cells("UStVAn_ReDatBis").Value IsNot Nothing) Then
subject &= CDate(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value).ToShortDateString & "-" & CDate(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatBis").Value).ToShortDateString
End If
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim filepath = ""
If excelAuswertung(filepath, False, False) Then
Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
Mail.Subject = subject
Dim TextHTML = ""
TextHTML &= "Ladies and Gentlemen,<br>"
TextHTML &= "<br>"
TextHTML &= "In the attachment we will send you the Excel list and the corresponding invoices for the VAT refund.<br>"
TextHTML &= "Please submit these invoices to the tax office.<br>"
TextHTML &= "We are always available to answer more questions.<br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial;font-size:15px;"">" & TextHTML & SDL.cFakturierung.getSignature("DE") & "</div>"
Mail.Display()
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Fehler beim Öffnen der Mail!")
End Try
End Sub
Private Sub cbxTopMax_CheckedChanged(sender As Object, e As EventArgs) Handles cbxTopMax.CheckedChanged
If loaded = False Then Exit Sub
init()
End Sub
Private Sub txtMaxSrch_TextChanged(sender As Object, e As EventArgs) Handles txtMaxSrch.Leave
If loaded = False Then Exit Sub
init()
End Sub
Private Sub cbxEingereicht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxEingereicht.CheckStateChanged, cbxDifferenzbetrag.CheckStateChanged
If loaded = False Then Exit Sub
init()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnKundendatenaktualisieren.Click
Dim ok As Boolean = False
Me.Cursor = Cursors.WaitCursor
Try
VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.setSchnittstellen(
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_PLOSE"),
False,
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_MSE_alt"),
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_MSE_neu"),
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_IDS_alt"),
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_IDS_neu"),
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_UTA_alt"),
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_UTA_neu"),
VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("Schnittstelle_PLOSE_NEU")
)
If VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen(KdSearchBox1.KdNr) Then
ok = VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.UStVAKunden_SummenNeuBerechnen(KdSearchBox1.KdNr)
End If
Catch ex As Exception
Me.Cursor = Cursors.Default
End Try
If ok Then
'MsgBox("Kundendaten wurden aktualisiert!")
init()
End If
Me.Cursor = Cursors.Default
End Sub
Private Sub btnNeuerUSTVA_Click(sender As Object, e As EventArgs) Handles btnNeuerUSTVA.Click
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
MsgBox("Nicht berechtigt!")
Exit Sub
End If
Dim frm = New frmMDM_USTVAntrag(IIf(KdSearchBox1.KdNr_value > 0, KdSearchBox1.KdNr_value, -1), "AT", Nothing, Nothing)
If frm.ShowDialog() = DialogResult.Cancel Then
dgvUSTV.RELOAD()
'Dim enabl = KdSearchBox1.Enabled
'Me.init(IIf(KdSearchBox1.KdNr_value > 0, KdSearchBox1.KdNr_value, -1))
'Me.KdSearchBox1.Enabled = enabl
End If
End Sub
Private Sub btnUSTVAloeschen_Click(sender As Object, e As EventArgs) Handles btnUSTVAloeschen.Click
If Not dgvUSTV.SelectedRows.Count = 0 Then
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
MsgBox("Nicht berechtigt!")
Exit Sub
End If
If vbYes = MsgBox("Möchten Sie den " & dgvUSTV.SelectedRows(0).Cells("Land_Antrag").Value & " Antrag von " & dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value & "( " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value & " - " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value & ") wirklich löschen?", vbYesNoCancel) Then
Dim del_antrag As New cUSTVAntrag(dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value)
If del_antrag.UStVAn_AntragEingereichtAm IsNot Nothing Then
MsgBox("Dieser Antrag wurde bereits eingereicht. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_3470 IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_3470) > 0 Then
MsgBox("Dieser Antrag enthält einen 3470-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_VZBetrag IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_VZBetrag) > 0 Then
MsgBox("Dieser Antrag enthält einen VZ-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_Erstattungsbetrag IsNot Nothing AndAlso CDbl(del_antrag.UStVAn_Erstattungsbetrag) > 0 Then
MsgBox("Dieser Antrag enthält einen Erstattungsbetrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
'1. zuerst prüfen ob Pos aus Schnittstelle und ggf. unterbinden
For Each pos In del_antrag.POSITIONEN
If pos.UStVPo_SchnittstellenNr > 0 Then
MsgBox("Antrag enthält Positionen, die über die Schnittstelle geladen wurden." & vbNewLine & "Positionen manuell löschen!")
Exit Sub
End If
Next
'2. nur Dokumente löschen, die nicht über Schnittstellen geladen wurden oder löschbar sind!
For Each pos In del_antrag.POSITIONEN
If pos.UStVPo_SchnittstellenNr < 0 OrElse pos.UStVPo_daId_loeschbar Then
If pos.UStVPo_daId < 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & pos.UStVAn_ID & "_" & pos.UStVPo_ID, "SONSTIGE", del_antrag.UStVAn_KuNr)
If DS IsNot Nothing Then DS.DELETE_COMPLETE()
ElseIf pos.UStVPo_daId > 0 Then
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(pos.UStVPo_daId)
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
DS.DELETE_COMPLETE()
End If
End If
End If
Next
If del_antrag.DELETE() Then
init()
End If
End If
End If
End Sub
Private Sub btnVorschau_Click(sender As Object, e As EventArgs) Handles btnVorschau.Click
Dim sqlKunden = ""
Dim sqlKundenVERAG = ""
Dim sqlKundenMSENEU = ""
Dim sqlKundenIDSALT = ""
Dim sqlKundenIDSNEU = ""
Dim sqlKundenPLOSENEU = ""
If KdSearchBox1.KdNr > 0 Then
sqlKunden = " AND Adressen.AdressenNr = " & KdSearchBox1.KdNr
sqlKundenVERAG = " AND RechnungsKundenNr = " & KdSearchBox1.KdNr
sqlKundenMSENEU = " AND partner_customer_number = " & KdSearchBox1.KdNr
sqlKundenIDSALT = " AND tblDieselArchiv.KdNrVERAG = " & KdSearchBox1.KdNr
sqlKundenIDSNEU = " AND [tblIDSTransactionsNew].KdNrVERAG = " & KdSearchBox1.KdNr
sqlKundenPLOSENEU = " AND tblPLOSE_Inv_Data.plInv_PLOSEKundennummer = " & KdSearchBox1.KdNr
End If
Dim qryUStVVorschau_VERAG As String = "SELECT 'VERAG' as LF, tblTrdinInvoice.RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, YEAR(tblTrdinInvoice.Rechnungsdatum) AS Jahr, MONTH(tblTrdinInvoice.Rechnungsdatum) as Monat, SUm(tblTrdinInvoice.SteuerbetragLokal) AS Steuerbetrag, 'EUR' as Waehrung, SUm(tblTrdinInvoice.SteuerbetragLokal) AS Steuerbetrag_EUR
FROM tblTrdinInvoice
INNER JOIN tblSteuernummern ON tblTrdinInvoice.RechnungsKundenNr = tblSteuernummern.AdressenNr
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.LandNr = 38 AND tblTrdinInvoice.Rechnungsdatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND tblTrdinInvoice.SteuerbetragLokal <> 0 AND tblTrdinInvoice.UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKundenVERAG & "
GROUP BY tblTrdinInvoice.RechnungsKundenNr, tblSteuernummern.LandNr,[Länderverzeichnis für die Außenhandelsstatistik].LandKz, YEAR(tblTrdinInvoice.Rechnungsdatum), MONTH(tblTrdinInvoice.Rechnungsdatum)
/*ORDER BY tblTrdinInvoice.RechnungsKundenNr, tblSteuernummern.LandNr, YEAR(tblTrdinInvoice.Rechnungsdatum), MONTH(tblTrdinInvoice.Rechnungsdatum)*/"
Dim qryUStVVorschau_IDS_ALT As String = "SELECT 'IDS_alt' as LF, tblDieselArchiv.KdNrVERAG AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, year(tblDieselArchiv.[Year Month Day]) AS Jahr, Month(tblDieselArchiv.[Year Month Day]) AS Monat, SUM(tblDieselArchiv.[VAT Amount]) AS Steuerbetrag, 'EUR' as Waehrung, SUM(tblDieselArchiv.[VAT Amount]) AS Steuerbetrag_EUR FROM tblDieselArchiv
INNER JOIN tblSteuernummern ON tblDieselArchiv.KdNrVERAG = tblSteuernummern.AdressenNr
INNER JOIN tbl_IDS_Länder ON tbl_IDS_Länder.LandNr = tblSteuernummern.LandNr AND tblDieselArchiv.[Outlet Country Code] = tbl_IDS_Länder.OutletCountryCode
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblDieselArchiv.[Year Month Day] >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND tblDieselArchiv.[VAT Amount] <> 0 AND tblDieselArchiv.UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKundenIDSALT & "
GROUP BY
tblDieselArchiv.KdNrVERAG, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblDieselArchiv.[Year Month Day]), Month(tblDieselArchiv.[Year Month Day])
/*ORDER BY tblDieselArchiv.KdNrVERAG, tblSteuernummern.LandNr, Year(tblDieselArchiv.[Year Month Day]), Month(tblDieselArchiv.[Year Month Day])*/
"
Dim qryUStVVorschau_MSE_ALT As String = "SELECT 'MSE_alt' as LF,tblSteuernummern.AdressenNr AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblMSETransactionsArchiv.[Invoice Date]) AS Jahr, Month(tblMSETransactionsArchiv.[Invoice Date]) AS Monat, CAST(ROUND(SUM(tblMSETransactionsArchiv.[Original VAT Amount]) / dbo.fktEUROKurs(tblMSETransactionsArchiv.[Original Currency], tblMSETransactionsArchiv.[Invoice Date]), 2) AS DECIMAL(18, 2)) AS Steuerbetrag, 'EUR' as Waehrung, tblMSETransactionsArchiv.[Invoice Date]), 2) AS DECIMAL(18, 2)) AS Steuerbetrag_EUR FROM tblSteuernummern
INNER JOIN Adressen ON tblSteuernummern.AdressenNr = Adressen.AdressenNr
INNER JOIN tblMSETransactionsArchiv ON Adressen.MSEKundenNr = tblMSETransactionsArchiv.[Customer ID]
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblMSETransactionsArchiv.[Transaction Country] = [Länderverzeichnis für die Außenhandelsstatistik].LandKz AND tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.UStV = 1 AND tblMSETransactionsArchiv.UStVAn_ID IS NULL " & sqlKunden & "
GROUP BY
tblSteuernummern.AdressenNr,
tblSteuernummern.LandNr,
[Länderverzeichnis für die Außenhandelsstatistik].LandKz,
tblMSETransactionsArchiv.[Invoice Date],
tblMSETransactionsArchiv.[Invoice ID],
tblMSETransactionsArchiv.[Original Currency]
HAVING
tblMSETransactionsArchiv.[Invoice Date] >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND SUM(tblMSETransactionsArchiv.[Original VAT Amount]) <> 0
/*ORDER BY tblSteuernummern.AdressenNr, tblSteuernummern.LandNr, tblMSETransactionsArchiv.[Invoice Date], tblMSETransactionsArchiv.[Invoice ID]*/"
Dim qryUStVVorschau_UTA_ALT As String = "SELECT 'UTA_alt' as LF,tblSteuernummern.AdressenNr AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblUTAArchiv.Rechnungsdatum) as Jahr,Month(tblUTAArchiv.Rechnungsdatum) as Monat , SUM(tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS Steuerbetrag, 'EUR' as Waehrung, SUM(tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS Steuerbetrag_EUR FROM tblSteuernummern
INNER JOIN Adressen ON tblSteuernummern.AdressenNr = Adressen.AdressenNr
INNER JOIN tblUTAArchiv ON Adressen.UTAKundenNr = tblUTAArchiv.Kundennummer
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblUTAArchiv.Lieferland = [Länderverzeichnis für die Außenhandelsstatistik].LandKz_ISO_3 AND tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.UStV = 1 AND tblUTAArchiv.UStVAn_ID IS NULL " & sqlKunden & "
GROUP BY
tblSteuernummern.AdressenNr,
tblSteuernummern.LandNr,
[Länderverzeichnis für die Außenhandelsstatistik].LandKz,
tblUTAArchiv.Rechnungsdatum
HAVING
tblUTAArchiv.Rechnungsdatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND SUM(tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) <> 0
/*ORDER BY tblSteuernummern.AdressenNr, tblSteuernummern.LandNr, tblUTAArchiv.Rechnungsdatum*/"
Dim qryUStVVorschau_IDS_NEU As String = "SELECT 'IDS' as LF, [tblIDSTransactionsNew].KdNrVERAG AS RechnungsKundenNr,tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, year([tblIDSTransactionsNew].[YearMonthDay]) AS Jahr, Month([tblIDSTransactionsNew].[YearMonthDay]) AS Monat, SUM([tblIDSTransactionsNew].[VATAmount]) AS Steuerbetrag, 'EUR' as Waehrung, SUM([tblIDSTransactionsNew].[VATAmount]) AS Steuerbetrag_EUR
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
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE [tblIDSTransactionsNew].[YearMonthDay] >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND [tblIDSTransactionsNew].[VATAmount] <> 0 AND [tblIDSTransactionsNew].UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKundenIDSNEU & "
GROUP BY
[tblIDSTransactionsNew].KdNrVERAG, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year([tblIDSTransactionsNew].[YearMonthDay]) , Month([tblIDSTransactionsNew].[YearMonthDay])
/* ORDER BY [tblIDSTransactionsNew].KdNrVERAG, tblSteuernummern.LandNr, Year([tblIDSTransactionsNew].[YearMonthDay]), Month([tblIDSTransactionsNew].[YearMonthDay])*/"
Dim qryUStVVorschau_MSE_NEU As String = " select 'MSE' as LF,cust.[partner_customer_number] as RechnungsKundenNr,'' as LandNr ,trans.transaction_country as LandKZ ,Year(bills.invoice_date) as Jahr,Month(bills.invoice_date) as Monat, sum(original_vat_amount) as Steuerbetrag, original_currency as Waehrung, sum(USteuer_EUR) as Steuerbetrag_EUR
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 >= CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
and inv.archiv <> 1 and dbo.tblSteuernummern.UStV = 1 and trans.charged = 1 AND inv.UStVAn_ID IS NULL " & sqlKundenMSENEU & "
group by cust.[partner_customer_number],trans.transaction_country,original_currency, Year(bills.invoice_date) ,Month(bills.invoice_date)
HAVING SUM(USteuer_EUR) <> 0"
Dim qryUStVVorschau_UTA_NEU As String = "SELECT 'UTA' as LF,tblSteuernummern.AdressenNr AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblUTAImportNew.Rechnungsdatum) as Jahr,Month(tblUTAImportNew.Rechnungsdatum) as Monat , SUM(tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS Steuerbetrag, 'EUR' as Wahrung, SUM(tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS Steuerbetrag_EUR FROM tblSteuernummern
INNER JOIN Adressen ON tblSteuernummern.AdressenNr = Adressen.AdressenNr
INNER JOIN tblUTAImportNew ON Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblUTAImportNew.Lieferland = [Länderverzeichnis für die Außenhandelsstatistik].LandKz_ISO_3 AND tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.UStV = 1 AND tblUTAImportNew.UStVAn_ID IS NULL " & sqlKunden & "
GROUP BY
tblSteuernummern.AdressenNr,
tblSteuernummern.LandNr,
[Länderverzeichnis für die Außenhandelsstatistik].LandKz,
tblUTAImportNew.Rechnungsdatum
HAVING
tblUTAImportNew.Rechnungsdatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND SUM(tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) <> 0
/*ORDER BY tblSteuernummern.AdressenNr, tblSteuernummern.LandNr, tblUTAImportNew.Rechnungsdatum*/"
Dim qryUStVVorschau_PLOSE_NEUE_LOGIK As String = "SELECT 'PLOSE' as LF, tblPLOSE_Inv_Data.plInv_PLOSEKundennummer AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, year(tblPLOSE_Inv_Data.[plInv_SupplierRechnungsDatum]) AS Jahr, Month(tblPLOSE_Inv_Data.[plInv_SupplierRechnungsDatum]) AS Monat, SUM(tblPLOSE_Inv_Data.[plInv_MWSTBetrag]) AS Steuerbetrag, isnull(plInv_Currency,'') as Wahrung, CAST(ROUND(SUM(tblPLOSE_Inv_Data.[plInv_MWSTBetrag]) / dbo.fktEUROKurs(plInv_Currency, max(tblPLOSE_Inv_Data.plInv_SupplierRechnungsDatum)), 2) AS DECIMAL(18, 2)) AS Steuerbetrag_EUR FROM tblPLOSE_Inv_Data
INNER JOIN Adressen ON tblPLOSE_Inv_Data.plInv_PLOSEKundennummer = Adressen.PLOSEKundenNr
INNER JOIN tblSteuernummern ON Adressen.AdressenNr = tblSteuernummern.AdressenNr and [tblPLOSE_Inv_Data].plInv_SupplierCountry = tblSteuernummern.LandKZ
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblPLOSE_Inv_Data.plInv_SupplierRechnungsDatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND tblPLOSE_Inv_Data.plInv_MWSTBetrag <> 0 AND tblPLOSE_Inv_Data.plInv_UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKunden & "
GROUP BY
tblPLOSE_Inv_Data.plInv_PLOSEKundennummer, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblPLOSE_Inv_Data.plInv_SupplierRechnungsDatum), Month(tblPLOSE_Inv_Data.plInv_SupplierRechnungsDatum), plInv_Currency
"
'plose_MWSTBetragWaehrungAbbuchung ist IMMER in EUR!!!!
Dim qryUStVVorschau_PLOSE_ALTE_LOGIK As String = " SELECT 'PLOSE_alt' as LF, tblPLOSE_Details.plose_POLSEKundennummer AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, year(tblPLOSE_Details.plose_RechnungsDatum) AS Jahr, Month(tblPLOSE_Details.plose_RechnungsDatum) AS Monat, SUM(tblPLOSE_Details.plose_MWSTBetragWaehrungAbbuchung) AS Steuerbetrag, 'EUR' as Wahrung, SUM(tblPLOSE_Details.plose_MWSTBetragWaehrungAbbuchung) AS Steuerbetrag_EUR 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
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblPLOSE_Details.plose_RechnungsDatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND tblPLOSE_Details.plose_MWSTBetragWaehrungAbbuchung <> 0 AND tblPLOSE_Details.UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 and plose_LieferantCode IN (1,7,9) " & sqlKunden & "
GROUP BY
tblPLOSE_Details.plose_POLSEKundennummer, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblPLOSE_Details.plose_RechnungsDatum), Month(tblPLOSE_Details.plose_RechnungsDatum)
"
Dim union As String = " UNION ALL "
Dim sqlQery = qryUStVVorschau_VERAG & union & qryUStVVorschau_IDS_ALT & union & qryUStVVorschau_UTA_ALT & union & qryUStVVorschau_IDS_NEU & union & qryUStVVorschau_UTA_NEU & union & qryUStVVorschau_MSE_NEU & union & qryUStVVorschau_PLOSE_ALTE_LOGIK & union & qryUStVVorschau_PLOSE_NEUE_LOGIK 'qryUStVVorschau_VERAG & union & qryUStVVorschau_IDS_ALT & union & qryUStVVorschau_UTA_ALT & union & qryUStVVorschau_IDS_NEU & union & qryUStVVorschau_UTA_NEU & union & qryUStVVorschau_MSE_NEU & union & qryUStVVorschau_MSE_ALT & union & qryUStVVorschau_PLOSE_ALTE_LOGIK & union & qryUStVVorschau_PLOSE_NEUE_LOGIK
Dim dtVorschau As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")
If dtVorschau.Columns.Contains("LandNr") Then dtVorschau.Columns.Remove("LandNr")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau, {"G1:G" & (dtVorschau.Rows.Count + 1)},,,,, True)
End Sub
Private Sub setInfo(kdnr As Integer)
If kdnr > 0 Then
Panel1.BackColor = Color.FromArgb(240, 245, 255)
Dim KUNDE As New cKunde(kdnr)
Dim KUNDE_ERW As New cKundenErweitert(kdnr)
If KUNDE.Abfertigungsverbot Then Panel1.BackColor = Color.IndianRed
If KUNDE_ERW.kde_AnmerkungVZ IsNot Nothing Then
lblVZhint.Text = KUNDE_ERW.kde_AnmerkungVZ
lblFRhint.Text = KUNDE_ERW.kde_AnmerkungFR
Else
End If
lblVZKunde.Visible = KUNDE_ERW.kde_VZ
lblFR.Visible = KUNDE_ERW.kde_FR
Else
lblVZKunde.Visible = False
lblFR.Visible = False
lblVZhint.Text = ""
lblFRhint.Text = ""
Panel1.BackColor = Color.FromArgb(240, 245, 255)
End If
End Sub
Private Sub mnuFAPruefungenClicked(sender As Object, e As EventArgs)
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
Dim sqlKunde = ""
Dim sqlKundeadmin = ""
If KdSearchBox1.KdNr > 0 Then
sqlKunde = " And A.AdressenNr = " & KdSearchBox1.KdNr
sqlKundeadmin = " AND [api_KundenNr] = " & KdSearchBox1.KdNr
End If
If item IsNot Nothing Then
If item.Name = "dgv" Then
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim frm As New Form
frm.Text = "Finanzamt-Bestätigung E-Mails"
Dim dgv As New DataGridView()
Dim dt As DataTable = SQL.loadDgvBySql(" select [api_datetime] as erstelltAm,[api_EMail] as An ,[api_EMailCC] as CC,[api_EMailBCC] as BCC,[api_EMailSubject] as Betreff,[api_EMailAttCnt] as Anzahl_Anhänge, [api_KundenNr] as KundenNr, [api_Username] as erstelltVon from [tblAPI] where [api_apiUArt] = 'FA-Bestaetigung' AND api_progName = 'SDL'" & sqlKundeadmin & " Order by api_datetime desc", "ADMIN")
dgv.DataSource = dt
If dgv IsNot Nothing Then
frm.Size = New Size(1000, 1000)
dgv.Size = New Size(frm.Size.Width - 10, frm.Size.Height - 10)
dgv.Dock = DockStyle.Fill
dgv.Anchor = AnchorStyles.Left
dgv.Anchor = AnchorStyles.Top
dgv.ReadOnly = True
frm.Controls.Add(dgv)
frm.StartPosition = FormStartPosition.CenterScreen
frm.ShowDialog()
If dgv.ColumnCount > 0 AndAlso dgv.Columns.Contains("An") Then dgv.Columns("An").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End If
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Else
Dim f As New frmDatumsabfrage("Bitte Prüfdatum eingeben", False, True)
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
Dim pruefdatum As Date = CDate(f.Datum)
Dim laenderausnahmen = f.exceptedCountries
Dim sqlQery = "Select A.AdressenNr, A.[E-Mail], A.[E-Mail2], A.LandKz as KundeLand, A.Ordnungsbegriff,L.LandKz as SteuerLandKz, S.StNrFürRückerstattungUSt, S.StNrGültigkeitsdatum, CAST('" & pruefdatum & "' AS DATE) AS Prüfdatum,
CASE
WHEN S.StNrGültigkeitsdatum > CAST('" & pruefdatum & "' AS DATE) THEN 1 ELSE 0
END AS Gültig
FROM [Länderverzeichnis für die Außenhandelsstatistik] L INNER JOIN (Adressen A INNER JOIN Währungstabelle W ON A.LandKz = W.LandKz INNER JOIN tblSteuernummern S ON A.AdressenNr = S.AdressenNr) ON L.LandNr = S.LandNr
WHERE S.StNrGültigkeitsdatum IS NOT NULL AND W.MitgliedslandEU = 0 " & IIf(sqlKunde <> "", sqlKunde, "") & IIf(f.cbxKunden.Checked, " AND A.AdressenNr between " & f.cboKundenkreis._value.Replace("-", " AND "), "") & IIf(laenderausnahmen <> "", " AND L.LandKz NOT IN (" & laenderausnahmen & ")", "")
Dim dtVorschau As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")
ContextMenuStrip3.Hide()
If dtVorschau.Rows.Count = 0 Then Exit Sub
If item.Name = "excel" Then
If dtVorschau.Columns.Contains("E-Mail") Then dtVorschau.Columns.Remove("E-Mail")
If dtVorschau.Columns.Contains("E-Mail2") Then dtVorschau.Columns.Remove("E-Mail2")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau,,,,,, True)
ElseIf item.Name = "mail" Then
Dim displayView = New DataView(dtVorschau, "Gültig = 0", "AdressenNr", DataViewRowState.CurrentRows)
Dim distinctDT As DataTable = displayView.ToTable(True, "AdressenNr")
If distinctDT.Rows.Count = 0 Then
MsgBox("Zu diesem Datum sind alle FA-Bestätigung gültig!")
Exit Sub
End If
If Not vbYes = MsgBox("Es werden Emails für " & distinctDT.Rows.Count & " unterschiedliche/n Kunden erstellt." & vbNewLine & "Möchten Sie fortfahren?", vbYesNoCancel) Then Exit Sub
For Each row In distinctDT.Rows
Dim dt_Data_selected = dtVorschau.Select("AdressenNr ='" & row.Item(0) & "' AND Gültig = 0").CopyToDataTable
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = "PDV UVERENJA"
Dim TextHTML = ""
TextHTML &= "Postovani,<br>"
TextHTML &= "<br>"
TextHTML &= "isteklo nam je staro porezno Uvjerenje i potrebno je da nam dostavite hitno nova za sljedece zemlje.<br><br>"
Dim attachmentSRB As Boolean = False
Dim attachmentBIH As Boolean = False
Dim attachmentSK As Boolean = False
Dim attachmentHR As Boolean = False
For Each r In dt_Data_selected.Rows
'steuerland!
If Not IsDBNull(r.item("SteuerLandKz")) Then
Select Case r.item("SteuerLandKz")
Case "HU" : TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Madarski, potpis sluzbene osobe ne smije biti faksimil mora bit vlastorucan)</li></b><br><br>"
Case "SI" : TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Slovenacki)</li></b><br><br>"
Case "LU" : TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (Na uverenju obavezno navedite sifru djelatnosti 4941, prevesti na Engleski)</li></b><br><br>"
Case "SK" : TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Engleski)</li></b><br><br>" : attachmentSK = False 'attachmentSK = true -> nicht mehr mitschicken!
Case "RO" : TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Rumonski)</li></b><br><br>"
Case "HR" : TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, " & IIf(Not IsDBNull(r.item("KundeLand")) AndAlso r.item("KundeLand") = "BIH", "trazite da Vam izdaju uvjerenja na latinici da izbjegnete trosak prijevoda na Hrvatski jezik.", "prevedite na Hrvatski") & ")</li></b><br><br>" : attachmentHR = False 'attachmentHR = true -> nicht mehr mitschicken!
Case Else
TextHTML &= "<li><b>" & r.item("SteuerLandKz") & " (prevod na Engleski)</li></b><br><br>"
End Select
End If
'kundeland
If Not IsDBNull(r.item("KundeLand")) Then
Select Case r.item("KundeLand")
Case "SRB" : attachmentSRB = True
Case "BIH" : attachmentBIH = True
End Select
End If
Next
TextHTML &= "<br><br>Molim Vas da nam original uverenja + prijevod dostavite pojedinacno za svaku zemlju, znaci koliko zemalja toliko uverenja I prevoda.<br><br>"
TextHTML &= "U privitku se nalazi primjer uverenja (u smislu sadrzaja)<br><br>"
TextHTML &= "za pitanja stojim na raspolaganju!<br><br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial;font-size:15px;"">" & TextHTML & SDL.cFakturierung.getSignature("DE") & "</div>"
If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail") & ";"
'If Not IsDBNull(dt_Data_selected.Rows(0).Item("E-Mail2")) Then Mail.To &= dt_Data_selected.Rows(0).Item("E-Mail2") & ";"
If attachmentSRB Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "SRB_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
If attachmentBIH Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "BIH_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
If attachmentSK Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "SVK_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
If attachmentHR Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "VORLAGEN", "SONSTIGE", "MDM", "", "HR_FA_BESTAETIGUNG")
Dim filepath = DS.GET_TOP1_PATH(False)
If filepath <> "" Then Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
Mail.Display()
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_FA, "FA-Bestaetigung",,, row.Item(0))
API.api_EMail = Mail.To
API.api_EMailSubject = Mail.Subject
API.api_EMailText = TextHTML
API.api_EMailAttCnt = Mail.Attachments.Count
API.SAVE()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Fehler beim Öffnen der Mail!")
End Try
Next
End If
End If
End If
End If
End Sub
Private Sub mnu3470_Clicked(sender As Object, e As EventArgs)
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
Dim KdNr_Auswahl As Integer = -1
If kdNr > 0 Then
KdNr_Auswahl = kdNr
ElseIf KdSearchBox1 IsNot Nothing AndAlso KdSearchBox1.KdNr > 0 Then
KdNr_Auswahl = KdSearchBox1.KdNr
End If
Dim sql_Query As String = "SELECT [UStVAn_KuNr] AS 'Customer No.', [UStVAn_Name] As Name, UStVAn_LandKz as 'Customer Country', [UStVAn_ReDatVon] As 'from', [UStVAn_ReDatBis] As 'to', LandKz As Country, [UStVAn_3470] As Amount,
STUFF((
SELECT ', ' + CAST(e.GutschriftsNr AS VARCHAR(50))
From tblUStVErstattung e
Where e.UStVAn_ID = a.UStVAn_ID
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS 'Credit Note No.'
FROM [tblUStVAntrag] a
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] l ON a.UStVAn_LandNr = l.Landnr
WHERE ISNULL([UStVAn_3470], 0) <> 0 " & IIf(KdNr_Auswahl > 0, "AND [UStVAn_KuNr] = " & KdNr_Auswahl & "", "") & "
ORDER BY UStVAn_KuNr,UStVAn_Name, DATEPART(YEAR, [UStVAn_ReDatVon]) ASC,LandKz,[UStVAn_ReDatVon] ASC"
Dim dtVorschau_3470 As DataTable = SQL.loadDgvBySql(sql_Query, "FMZOLL")
If item.Name = "excel" Then
cProgramFunctions.genExcelFromDT_NEW(dtVorschau_3470, {"F1:F" & (dtVorschau_3470.Rows.Count + 1)}, False,,,, True)
ElseIf item.Name = "mail" Then
Try
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim groupField = ""
If KdNr_Auswahl > 0 Then
groupField = "Customer Country"
Dim ADR As New cAdressen(KdNr_Auswahl)
Mail.To = ADR.E_Mail
If Mail.To <> "" AndAlso ADR.E_Mail2 <> "" Then Mail.To &= ";" & ADR.E_Mail2
Else
groupField = "Customer No."
End If
Dim filePathExcel = cProgramFunctions.genExcelFromDT_NEW(dtVorschau_3470, {"F1:F" & (dtVorschau_3470.Rows.Count + 1)}, False,,,, True,,,, False)
Dim FilePath_PDF = create3470Report(dtVorschau_3470, groupField)
Mail.Attachments.Add(filePathExcel, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue,, "AccountNo_3470.xslx")
Mail.Attachments.Add(FilePath_PDF, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue,, "AccountNo_3470.pdf")
Mail.Display()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Fehler beim Öffnen der Mail!")
End Try
ElseIf item.Name = "pdf" Then
Dim groupField = ""
If KdNr_Auswahl > 0 Then
groupField = "Customer Country"
Else
groupField = "Customer No."
End If
create3470Report(dtVorschau_3470, groupField, True)
End If
End If
End Sub
Private Function create3470Report(dt As DataTable, GroupField As String, Optional open As Boolean = False) As String
Dim rpt As New rpt_3470
rpt.DataSource = dt
rpt.GroupHeader1.DataField = GroupField 'Gruppierung
rpt.GroupHeader2.DataField = Nothing
If rpt.DataSource.rows.count > 0 Then
Dim sum As Double = 0
Dim sumGroup As Double = 0
rpt.lblDat.Text = Now.ToShortDateString
AddHandler rpt.ReportHeader1.Format, Sub()
If GroupField = "Customer Country" Then
rpt.Label3.Text &= " - " & rpt.Fields.Item("Customer Country").Value()
End If
End Sub
AddHandler rpt.Detail.Format, Sub()
rpt.lblKDName.Text = rpt.Fields.Item("Name").Value()
rpt.lblKDNumber.Text = rpt.Fields.Item("Customer No.").Value()
rpt.lblCountry.Text = rpt.Fields.Item("Country").Value()
rpt.lblAmount.Text = CDbl(rpt.Fields.Item("Amount").Value()).ToString("N2") & ""
rpt.lblCreditNodeNo.Text = IIf(Not IsDBNull(rpt.Fields.Item("Credit Note No.").Value()), rpt.Fields.Item("Credit Note No.").Value(), "-")
rpt.lblTimeperiod.Text = CDate((rpt.Fields.Item("from").Value())).ToShortDateString & " - " & CDate((rpt.Fields.Item("to").Value())).ToShortDateString
sum += CDbl(rpt.Fields.Item("Amount").Value()).ToString("N2")
sumGroup += CDbl(rpt.Fields.Item("Amount").Value()).ToString("N2")
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
If GroupField = "Customer Country" Then
'rpt.lblGroup1.Text = rpt.Fields.Item("UStVAn_LandKz").Value()
rpt.lblWahrung.Text = rpt.Fields.Item("Customer Country").Value()
End If
rpt.lblSumme.Text = sumGroup.ToString("N2") & ""
'rpt.lblWahrung.Text = "EUR" 'rpt.Fields.Item("Währung").Value()
sumGroup = 0
End Sub
AddHandler rpt.GroupFooter2.Format, Sub()
rpt.lblSumGesamt.Text = sum.ToString("N2") & ""
'rpt.lblWaehrung_Ges.Text = "EUR"
End Sub
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Konto_3470" & Now.ToString("TMP_ddMMyyyy_HHmmSS") & ".pdf", ".pdf", , False)
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
rpt.Run(False)
p.NeverEmbedFonts = ""
p.Export(rpt.Document, tmpPath)
If open Then Process.Start(tmpPath)
rpt.Dispose()
Return tmpPath
Else
Return ""
End If
End Function
Private Sub btnWikiStatusmails_Click(sender As Object, e As EventArgs) Handles btnWikiStatusmails.Click
Dim webAddress As String = "https://wiki.verag.ag/software/sdl/ustva"
Process.Start(webAddress)
End Sub
Private Sub cbxVZnichtabgerechnet_CheckStateChanged(sender As Object, e As EventArgs) Handles cbxVZnichtabgerechnet.CheckStateChanged
If loaded = False Then Exit Sub
init()
End Sub
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSucheID.KeyDown
If e.KeyCode = Keys.Enter Then
If txtSucheID.Text <> "" AndAlso IsNumeric(txtSucheID.Text) Then
If loaded = False Then Exit Sub
init(kdNr, txtSucheID.Text)
Else
If loaded = False Then Exit Sub
init()
End If
End If
End Sub
Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox1.SelectedIndexChanged
If loaded = False Then Exit Sub
If txtSucheID.Text <> "" AndAlso IsNumeric(txtSucheID.Text) Then
init(kdNr, txtSucheID.Text, MyComboBox1._value)
Else
init(kdNr, , MyComboBox1._value)
End If
End Sub
Private Sub filterAntragsLand()
If Not MyComboBox1._value <> "" Then
MyComboBox1.Items.Clear()
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
Dim list As New List(Of String)
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("Land_Antrag").Value IsNot Nothing And r.Cells("Land_Antrag").Value <> "" Then
If Not list.Any(Function(c) c = r.Cells("Land_Antrag").Value) Then
list.Add(r.Cells("Land_Antrag").Value)
End If
End If
Next
If list.Count > 1 Then
list.OrderBy(Function(x) x.ToString)
End If
For Each l In list
Dim listItem As New VERAG_PROG_ALLGEMEIN.MyListItem(l, l)
MyComboBox1.Items.Add(listItem)
Next
End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnVZ.Click
Dim sqlKunde = ""
Dim whereStr = ""
If KdSearchBox1.KdNr > 0 Then
sqlKunde = " And AdressenNr = " & KdSearchBox1.KdNr
End If
If cboJahr._value <> "" Then
If cboJahrBis._value <> "" Then
whereStr &= " AND tblUStVAntrag.UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND tblUStVAntrag.UStVAn_ReDatBis<='31.12." & cboJahrBis._value & "' "
Else
whereStr &= " AND tblUStVAntrag.UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND tblUStVAntrag.UStVAn_ReDatBis<='31.12." & cboJahr._value & "' "
End If
End If
If txtSucheID.Text <> "" AndAlso IsNumeric(txtSucheID.Text) AndAlso txtSucheID.Text > 0 Then
whereStr &= " AND UStVAn_ID=" & txtSucheID.Text & " "
End If
If MyComboBox1._value <> "" Then whereStr &= " AND dbo.Adressen.LandKz='" & MyComboBox1._value & "' "
Dim sqlQery = "SELECT dbo.tblUStVAntrag.UStVAn_KuNr as KDNR, dbo.Adressen.Ordnungsbegriff as Name, dbo.Adressen.LandKz,dbo.tblUStVAntrag.UStVAn_ID as ID,
(SELECT LandKz from [Länderverzeichnis für die Außenhandelsstatistik] where LandNr = dbo.tblUStVAntrag.UStVAn_LandNr) as Antrag_LKZ,
dbo.tblUStVAntrag.UStVAn_ReDatVon as ReDatVon, dbo.tblUStVAntrag.UStVAn_ReDatBis as ReDatBis,
dbo.tblUStVAntrag.UStVAn_Ausstellungsdatum as Ausstellungsdatum , dbo.tblUStVAntrag.UStVAn_VZDatum as VZDat, dbo.tblUStVAntrag.UStVAn_VZBetrag as VZBetrag, dbo.tblUStVAntrag.UStVAn_RZBetragVZ as RZBetragVZ,
ISNULL
((SELECT SUM(UStVEr_USteuerbetragEUR) AS Expr1
FROM dbo.tblUStVErstattung
WHERE (UStVAn_ID = dbo.tblUStVAntrag.UStVAn_ID)), 0) AS Erstattungsbetrag, CASE WHEN ([UStVAn_VZBetrag] - ISNULL([UStVAn_RZBetragVZ], 0) - ISNULL
((SELECT SUM(dbo.tblUStVErstattung.UStVEr_USteuerbetragEUR)
FROM dbo.tblUStVErstattung
WHERE dbo.tblUStVErstattung.UStVAn_ID = dbo.tblUStVAntrag.UStVAn_ID), 0)) > 0 THEN [UStVAn_VZBetrag] - ISNULL([UStVAn_RZBetragVZ], 0) - ISNULL
((SELECT SUM(dbo.tblUStVErstattung.UStVEr_USteuerbetragEUR)
FROM dbo.tblUStVErstattung
WHERE dbo.tblUStVErstattung.UStVAn_ID = dbo.tblUStVAntrag.UStVAn_ID), 0) ELSE 0 END AS VZBetragAktuell
FROM dbo.tblUStVAntrag INNER JOIN
dbo.Adressen ON dbo.tblUStVAntrag.UStVAn_KuNr = dbo.Adressen.AdressenNr
WHERE (dbo.tblUStVAntrag.UStVAn_VZBetrag IS NOT NULL)" & sqlKunde & whereStr
Dim dtVorauszahlung As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")
ContextMenuStrip3.Hide()
If dtVorauszahlung.Rows.Count = 0 Then
MsgBox("keine Daten!")
Exit Sub
Else
End If
cProgramFunctions.genExcelFromDT_NEW(dtVorauszahlung,,,,,, True)
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim sqlStr = "SELECT [UStVAn_ID] as ID,[UStVAn_KuNr] as KundenNr,[UStVAn_Name] as Kundename,Adressen.LandKz as Land_Kunde, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA .LandKz Land_Antrag,cast([UStVAn_ReDatVon] as Date) as ReDatVon,cast([UStVAn_ReDatBis] as Date) as ReDatBis , cast(UStVAn_AntragEingereichtAm as Date) as EingereichtAm,[UStVAn_3470] as An3470 ,[UStVAn_Währungscode] as Währung,[UStVAn_USteuerbetrag] as Steuerbetrag,[UStVAn_Erstattungsbetrag] as Erstattungsbetrag,[UStVAn_USteuerbetragEUR] as SteuerbetragEUR,[UStVAn_ErstattungsbetragEUR] as ErstattungsbetragEUR,(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR] as decimal(17,2))) as DifferenzbetragEUR, UStVAn_VZBetrag as Vorauszahlungsbetrag, [UStVAn_Sachbearbeiter] as Sachbearbeiter, UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt] as SteuerNr
FROM [tblUStVAntrag]
inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr
inner join Adressen on AdressenNr=UStVAn_KuNr
left join [tblSteuernummern] as stnr on stnr.AdressenNr = UStVAn_KuNr and stnr.LandNr=UStVAn_LandNr
where 1=1 AND UStVAn_AntragEingereichtAm is null
order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LfdA .LandKz,[UStVAn_ReDatVon] desc"
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt, {"J1:M" & (dt.Rows.Count + 1)},,,,, True)
Else
MsgBox("Keine Daten!")
End If
End Sub
Private Sub btnoffeneAntraege_Click(sender As Object, e As EventArgs) Handles btnoffeneAntraege.Click
If loaded = False Then Exit Sub
cbxDifferenzbetrag.CheckState = CheckState.Checked
init(,,, True)
End Sub
Private Sub btn_Zahlungen_importieren_Click(sender As Object, e As EventArgs) Handles btn_Zahlungen_importieren.Click
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Try
Dim importiert As Boolean = False
Dim fd As New OpenFileDialog
fd.InitialDirectory = "\\share01.verag.ost.dmn\F\19 VERAG 360 - MDM\MWST Eingänge\"
fd.Filter = "Excel Dateien (*.xlsx)|*.xlsx"
If fd.ShowDialog() <> DialogResult.OK Then Exit Sub
If Not fd.FileName.ToUpper().EndsWith(".XLSX") Then
MessageBox.Show("Bitte eine XLSX-Datei auswählen.")
Exit Sub
End If
Dim exclApp As Object = Nothing
Dim Datei As Object = Nothing
Dim Blatt As Object = Nothing
Dim dt As New DataTable
If dt IsNot Nothing And Not dt.Columns.Contains("name") Then
dt.Columns.Add("AntragID", GetType(String))
dt.Columns.Add("Steuerbetrag", GetType(Double))
dt.Columns.Add("Bank", GetType(String))
dt.Columns.Add("BelegNr", GetType(String))
dt.Columns.Add("GS", GetType(String))
dt.Columns.Add("RZVZ", GetType(String))
dt.Columns.Add("Info", GetType(String))
dt.Columns.Add("3470", GetType(String))
End If
Try
exclApp = CreateObject("Excel.Application")
exclApp.DisplayAlerts = False
exclApp.CutCopyMode = False
Datei = exclApp.Workbooks.Open(fd.FileName)
Blatt = Datei.Worksheets(1)
' Header einlesen
Dim headerMap As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
For col As Integer = 1 To Blatt.UsedRange.Columns.Count
Dim header As String = Convert.ToString(Blatt.Cells(3, col).Value).Trim()
If header <> "" AndAlso Not headerMap.ContainsKey(header) Then
headerMap.Add(header, col)
End If
Next
' Pflichtspalten prüfen
Dim requiredHeaders As String() = {
"ID",
"Steuerbetrag",
"BANK",
"BelNr",
"GS",
"RZVZ",
"3470",
"INFO"
}
For Each h As String In requiredHeaders
If Not headerMap.ContainsKey(h) Then
MsgBox("Pflichtspalte nicht gefunden: " & h)
Exit Sub
End If
Next
Dim letzteZeile As Integer = Blatt.UsedRange.Rows.Count
For row As Integer = 4 To letzteZeile
Dim USTAV_ID As String =
getTrimedString(Convert.ToString(Blatt.Cells(row, headerMap("ID")).Value), 6)
Dim Zahlungsbetrag As String =
Convert.ToString(Blatt.Cells(row, headerMap("Steuerbetrag")).Value)
Dim BelNr As String =
getTrimedString(Convert.ToString(Blatt.Cells(row, headerMap("BelNr")).Value), 6)
Dim Bank As String =
Convert.ToString(Blatt.Cells(row, headerMap("BANK")).Value)
Dim GS As String =
Convert.ToString(Blatt.Cells(row, headerMap("GS")).Value)
Dim RZVZ As String =
Convert.ToString(Blatt.Cells(row, headerMap("RZVZ")).Value)
Dim INFO As String =
Convert.ToString(Blatt.Cells(row, headerMap("INFO")).Value)
Dim _3470 As String =
Convert.ToString(Blatt.Cells(row, headerMap("3470")).Value)
If String.IsNullOrWhiteSpace(USTAV_ID) Then
Continue For
End If
If IsNumeric(USTAV_ID) AndAlso Bank <> "" AndAlso IsNumeric(Bank) AndAlso GS <> "" Then
Dim R As DataRow = dt.NewRow
R("AntragID") = USTAV_ID
R("Steuerbetrag") = Zahlungsbetrag
R("Bank") = Bank
R("BelegNr") = BelNr
R("GS") = GS
R("RZVZ") = RZVZ
R("Info") = INFO
dt.Rows.Add(R)
Else
Continue For
End If
Next
If dt.Rows.Count > 0 Then
Using frm As New frmAbrechnungHandling(dt, Nothing, "Import " & dt.Rows.Count & " Erstattungspositionen")
frm.btnPreisliste.Visible = False
frm.Button2.Text = "Importieren"
If frm.ShowDialog() = DialogResult.OK Then
For Each r As DataRow In dt.Rows
Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(r.Item("AntragID"))
If USTV_ANTRAG.hasEntry Then
Select Case r.Item("3470").ToString.ToLower
Case "ja"
If Not USTV_ANTRAG.UStVAn_3470 Then
USTV_ANTRAG.UStVAn_3470 = True
USTV_ANTRAG.SAVE()
End If
'Case "nein"
' If USTV_ANTRAG.UStVAn_3470 Then
' USTV_ANTRAG.UStVAn_3470 = False
' USTV_ANTRAG.SAVE()
' End If
End Select
Dim UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen()
UStV_ERS.UStVEr_ID = USTV_ANTRAG.getMaxPosNrErst()
UStV_ERS.UStVEr_interneNr = USTV_ANTRAG.getMaxinternePosNrErst()
UStV_ERS.UStVAn_ID = USTV_ANTRAG.UStVAn_ID
End If
Next
importiert = True
End If
End Using
Else
Exit Sub
End If
Finally
If Datei IsNot Nothing Then
Datei.Close(False)
End If
If exclApp IsNot Nothing Then
exclApp.Quit()
End If
If Blatt IsNot Nothing Then
Runtime.InteropServices.Marshal.ReleaseComObject(Blatt)
End If
If Datei IsNot Nothing Then
Runtime.InteropServices.Marshal.ReleaseComObject(Datei)
End If
If exclApp IsNot Nothing Then
Runtime.InteropServices.Marshal.ReleaseComObject(exclApp)
End If
Blatt = Nothing
Datei = Nothing
exclApp = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()
If importiert Then
Dim zielOrdner As String = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(fd.FileName), "Importiert")
If Not System.IO.Directory.Exists(zielOrdner) Then
System.IO.Directory.CreateDirectory(zielOrdner)
End If
Dim zielDatei As String = System.IO.Path.Combine(zielOrdner, System.IO.Path.GetFileName(fd.FileName))
'Falls bereits vorhanden, überschreiben
If System.IO.File.Exists(zielDatei) Then
System.IO.File.Delete(zielDatei)
End If
System.IO.File.Move(fd.FileName, zielDatei)
End If
End Try
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Refresh()
End Sub
Function getTrimedString(s As String, l As Integer) As String
Try
If s Is Nothing Then Return ""
If s.ToString.Length > l Then
Return s.Substring(0, l)
End If
Return s.ToString
Catch ex As Exception
MsgBox("getTrimedString: " & ex.Message & ex.StackTrace)
End Try
Return ""
End Function
Function getTrimedStringACCES(s As Object, l As Integer) As String
Try
If s Is Nothing Then Return ""
If s Is DBNull.Value Then Return ""
If s.ToString.Length > l Then
Return s.Substring(0, l)
End If
Return s
Catch ex As Exception
MsgBox("getTrimedString: " & ex.Message & ex.StackTrace)
End Try
Return ""
End Function
Function getTrimedStringACCESEUR(s As Object, l As Integer) As String
Try
If s Is Nothing Then Return ""
If s Is DBNull.Value Then Return ""
If s.ToString.Length > l Then
Return s.Substring(0, l)
End If
If IsNumeric(s) Then
Return CDbl(s).ToString("C2")
End If
Return s
Catch ex As Exception
MsgBox("getTrimedString: " & ex.Message & ex.StackTrace)
End Try
Return ""
End Function
Function isleernothing(s) As Object
If s Is DBNull.Value Then Return Nothing
If s.ToString.Trim = "" Then Return Nothing
Return s.trim
End Function
End Class