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,
" TextHTML &= "
" TextHTML &= "In the attachment we will send you the Excel list and the corresponding invoices for the VAT refund.
" TextHTML &= "Please submit these invoices to the tax office.
" TextHTML &= "We are always available to answer more questions.
" TextHTML &= "Mit freundlichen Grüßen
" TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
" TextHTML &= "
" Mail.HTMLBody = "
" & TextHTML & SDL.cFakturierung.getSignature("DE") & "
" 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,
" TextHTML &= "
" TextHTML &= "isteklo nam je staro porezno Uvjerenje i potrebno je da nam dostavite hitno nova za sljedece zemlje.

" 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 &= "
  • " & 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)


  • " Case "SI" : TextHTML &= "
  • " & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Slovenacki)


  • " Case "LU" : TextHTML &= "
  • " & r.item("SteuerLandKz") & " (Na uverenju obavezno navedite sifru djelatnosti 4941, prevesti na Engleski)


  • " Case "SK" : TextHTML &= "
  • " & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Engleski)


  • " : attachmentSK = False 'attachmentSK = true -> nicht mehr mitschicken! Case "RO" : TextHTML &= "
  • " & r.item("SteuerLandKz") & " (Na uverenju mora biti naveden datum kad ste registrovani kao PDV obaveznik, prevedite na Rumonski)


  • " Case "HR" : TextHTML &= "
  • " & 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") & ")


  • " : attachmentHR = False 'attachmentHR = true -> nicht mehr mitschicken! Case Else TextHTML &= "
  • " & r.item("SteuerLandKz") & " (prevod na Engleski)


  • " 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 &= "

    Molim Vas da nam original uverenja + prijevod dostavite pojedinacno za svaku zemlju, znaci koliko zemalja toliko uverenja I prevoda.

    " TextHTML &= "U privitku se nalazi primjer uverenja (u smislu sadrzaja)

    " TextHTML &= "za pitanja stojim na raspolaganju!

    " TextHTML &= "Mit freundlichen Grüßen
    " TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
    " TextHTML &= "
    " Mail.HTMLBody = "
    " & TextHTML & SDL.cFakturierung.getSignature("DE") & "
    " 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