3072 lines
148 KiB
VB.net
3072 lines
148 KiB
VB.net
Imports System.IO
|
|
Imports System.Reflection
|
|
Imports System.Windows.Documents
|
|
Imports itextsharp.text.pdf
|
|
Imports Microsoft.Office.Interop
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmMDM_USTVAntrag
|
|
|
|
Dim UStVAn_ID As Integer
|
|
Dim KundenNr As Integer
|
|
Dim USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag = Nothing
|
|
Dim Antrag_LandKz As String = ""
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim posTabisSelected As Boolean = True
|
|
Dim atez_api = New cATEZ_NCTS_IN("ATEZ_VAT", False)
|
|
Dim abfNrisSetManually As Boolean = False
|
|
Dim von, bis As Date
|
|
Dim func As New cMDMFunctionsAllgemein
|
|
Dim dTLANDEU As New DataTable
|
|
|
|
Sub New(UStVAn_ID)
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
Me.UStVAn_ID = UStVAn_ID
|
|
|
|
End Sub
|
|
|
|
Sub New(Antrag_KundenNr As Integer, Antrag_LandKz As String, von As Date, bis As Date)
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
Me.KundenNr = Antrag_KundenNr
|
|
Me.Antrag_LandKz = Antrag_LandKz
|
|
Me.von = von
|
|
Me.bis = bis
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Sub init(Optional posIndex As Integer = -1, Optional Lieferant As String = "")
|
|
pnlBody.AutoScroll = False
|
|
|
|
lblGesamtUSteuerFW.Text = "-"
|
|
lblGesamtErstattungFW.Text = "-"
|
|
lblDiffernezbetragFW.Text = "-"
|
|
|
|
|
|
lblGesamtUSteuer.Text = "-"
|
|
lblGesamtErstattung.Text = "-"
|
|
lblDiffernezbetrag.Text = "-"
|
|
|
|
btnAntrageeinarbeiten.Enabled = Not UStVAn_ID <= 0
|
|
FlowLayoutPanel.Enabled = Not UStVAn_ID <= 0
|
|
btnEintragloeschen.Enabled = Not UStVAn_ID <= 0
|
|
btnNeuerEintrag.Enabled = Not UStVAn_ID <= 0
|
|
UstCntlUSTV_AntragPosition1.Enabled = Not UStVAn_ID <= 0
|
|
cbxLand.Visible = UStVAn_ID <= 0
|
|
|
|
With dgvUSTVPositionen
|
|
.ClearSelection()
|
|
|
|
If UStVAn_ID <= 0 Then Exit Sub
|
|
|
|
'.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId]
|
|
' FROM [tblUStVPositionen]
|
|
' left join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
|
|
' where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
|
|
|
|
.SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar]
|
|
FROM [tblUStVPositionen]
|
|
LEFT JOIN [tblUStVLeistender] as leist
|
|
ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0
|
|
AND leist.[UStV_LeistenderId] = [tblUStVPositionen].[UStVPo_LeistenderId])
|
|
OR ([tblUStVPositionen].[UStVPo_LeistenderId] <= 0
|
|
AND leist.[UStV_Leistender] = [tblUStVPositionen].[UStVPo_Leistender])
|
|
where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
|
|
|
|
|
|
|
|
.LOAD()
|
|
.RowTemplate.Height = 20
|
|
.AllowUserToOrderColumns = False
|
|
.AllowUserToResizeRows = False
|
|
|
|
If .Columns.Count > 0 Then
|
|
|
|
.Columns("UStVAn_ID").Visible = False
|
|
.Columns("UStVPo_ID").HeaderText = "Pos"
|
|
.Columns("UStVPo_ID").Width = 40
|
|
|
|
|
|
.Columns("UStVPo_ReDat").HeaderText = "Rg-Datum"
|
|
.Columns("UStVPo_ReDat").Width = 80
|
|
|
|
.Columns("UStVPo_ReNr").HeaderText = "Rechnungs-Nr"
|
|
.Columns("UStVPo_ReNr").Width = 180
|
|
|
|
.Columns("UStVPo_USteuerbetrag").HeaderText = "USt-Betrag"
|
|
.Columns("UStVPo_USteuerbetrag").Width = 110
|
|
.Columns("UStVPo_USteuerbetrag").DefaultCellStyle.Format = "N2"
|
|
.Columns("UStVPo_USteuerbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
|
|
|
|
|
|
.Columns("UStVPo_Leistungsbezeichnung").HeaderText = "Leistungsbezeichnung"
|
|
.Columns("UStVPo_Leistungsbezeichnung").Width = 150
|
|
|
|
.Columns("UStVPo_Leistender").HeaderText = "Leistender"
|
|
.Columns("UStVPo_Leistender").Width = 100
|
|
|
|
.Columns("UstV_Leistender_Strasse").HeaderText = "Strasse"
|
|
.Columns("UstV_Leistender_Strasse").Width = 50
|
|
|
|
.Columns("UstV_Leistender_PLZ").HeaderText = "PLZ"
|
|
.Columns("UstV_Leistender_PLZ").Width = 50
|
|
|
|
.Columns("UstV_Leistender_Land").HeaderText = "Land"
|
|
.Columns("UstV_Leistender_Land").Width = 50
|
|
|
|
.Columns("UstV_Leistender_Stadt").HeaderText = "Stadt"
|
|
.Columns("UstV_Leistender_Stadt").Width = 100
|
|
|
|
|
|
.Columns("UstV_Leistender_UstNr").HeaderText = "UID-Nr"
|
|
.Columns("UstV_Leistender_UstNr").Width = 150
|
|
|
|
.Columns("UStVPo_Schnittstelle").HeaderText = "API"
|
|
.Columns("UStVPo_Schnittstelle").Width = 30
|
|
|
|
.Columns("UStVPo_SchnittstellenNr").HeaderText = "API-Nr"
|
|
.Columns("UStVPo_SchnittstellenNr").Width = 40
|
|
|
|
|
|
.Columns("UStVPo_Umrechnungskurs").HeaderText = "Umrechnungskurs"
|
|
.Columns("UStVPo_Umrechnungskurs").Width = 60
|
|
.Columns("UStVPo_Umrechnungskurs").DefaultCellStyle.Format = "N2"
|
|
.Columns("UStVPo_Umrechnungskurs").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
|
|
|
|
.Columns("UStVPo_USteuerbetragEUR").HeaderText = "USt-Betrag EUR"
|
|
.Columns("UStVPo_USteuerbetragEUR").Width = 110
|
|
.Columns("UStVPo_USteuerbetragEUR").DefaultCellStyle.Format = "N2"
|
|
.Columns("UStVPo_USteuerbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
|
|
|
|
.Columns("UStVPo_Sachbearbeiter").HeaderText = "Sachbearbeiter"
|
|
.Columns("UStVPo_Sachbearbeiter").MinimumWidth = 100
|
|
.Columns("UStVPo_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
|
|
.Columns("UStVPo_daId").Visible = False
|
|
|
|
.Columns("UStVPo_daId_loeschbar").Visible = False
|
|
|
|
|
|
Dim c As New DataGridViewImageColumn
|
|
c.Name = "clmnPDF" : c.HeaderText = "RE"
|
|
' c.Image = Nothing
|
|
c.DefaultCellStyle.NullValue = Nothing
|
|
c.ImageLayout = DataGridViewImageCellLayout.Zoom
|
|
c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White
|
|
'c.DefaultCellStyle.Tag = "Therefore anzeigen"
|
|
|
|
|
|
If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c)
|
|
|
|
For Each r As DataGridViewRow In .Rows
|
|
|
|
Dim da_id As Integer = -1
|
|
|
|
If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then
|
|
da_id = r.Cells("UStVPo_daId").Value
|
|
Else
|
|
da_id = func.getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Antrag_LandKz, USTV_ANTRAG)
|
|
End If
|
|
|
|
|
|
If da_id > 0 Then
|
|
DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = Nothing
|
|
DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
End With
|
|
|
|
Dim GesamtUSteuerEUR As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetragEUR),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
|
|
Dim GesamtErstattungEUR As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetragEUR),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
|
|
Dim DiffernezbetragEUR As Double = GesamtUSteuerEUR - GesamtErstattungEUR
|
|
|
|
Dim GesamtUSteuer As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetrag),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
|
|
Dim GesamtErstattung As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetrag),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
|
|
Dim Differnezbetrag As Double = GesamtUSteuer - GesamtErstattung
|
|
|
|
lblGesamtUSteuerFW.Text = GesamtUSteuer.ToString("C2")
|
|
lblGesamtErstattungFW.Text = GesamtErstattung.ToString("C2")
|
|
lblDiffernezbetragFW.Text = Differnezbetrag.ToString("C2")
|
|
|
|
lblGesamtUSteuer.Text = GesamtUSteuerEUR.ToString("C2")
|
|
lblGesamtErstattung.Text = GesamtErstattungEUR.ToString("C2")
|
|
lblDiffernezbetrag.Text = DiffernezbetragEUR.ToString("C2")
|
|
|
|
Dim GET_Antraege
|
|
Dim antraegeVearbeitet = False
|
|
|
|
Select Case Lieferant.ToLower
|
|
Case "plose", "ploseneu"
|
|
GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False, IIf(Lieferant.ToLower = "ploseneu", True, False))
|
|
antraegeVearbeitet = True
|
|
Case "rmc"
|
|
Dim dt As New DataTable
|
|
GET_Antraege = cRMC.GET_Antraege_RMC(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)
|
|
antraegeVearbeitet = True
|
|
Case "mse"
|
|
Dim dt As New DataTable
|
|
GET_Antraege = cMSEAPI.GET_Antraege_MSE(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, False)
|
|
antraegeVearbeitet = True
|
|
Case "uta"
|
|
Dim dt As New DataTable
|
|
GET_Antraege = cUTA.GET_Antraege_UTA(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, False)
|
|
antraegeVearbeitet = True
|
|
Case "ids"
|
|
Dim dt As New DataTable
|
|
GET_Antraege = cIDS.GET_Antraege_IDS(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)
|
|
antraegeVearbeitet = True
|
|
End Select
|
|
|
|
If antraegeVearbeitet Then
|
|
If GET_Antraege IsNot Nothing AndAlso GET_Antraege.Count > 0 Then
|
|
lbl_EintrageVerarbetiet.Text = "aussehende Einträge: " & GET_Antraege.Count
|
|
Else
|
|
lbl_EintrageVerarbetiet.Text = "alle Einträge verarbeitet"
|
|
End If
|
|
End If
|
|
|
|
|
|
If UStVAn_ID > 0 Then
|
|
KdSearchBox1.Visible = False
|
|
USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL")
|
|
setValue(USTV_ANTRAG)
|
|
|
|
Dim KUNDE As New cKunde(USTV_ANTRAG.UStVAn_KuNr)
|
|
Dim KUNDE_ERW As New cKundenErweitert(USTV_ANTRAG.UStVAn_KuNr)
|
|
If KUNDE IsNot Nothing Then
|
|
pnlHeader.BackColor = Color.FromArgb(0, 54, 128)
|
|
If KUNDE.Abfertigungsverbot Then pnlHeader.BackColor = Color.IndianRed
|
|
Else
|
|
pnlHeader.BackColor = Color.FromArgb(0, 54, 128)
|
|
End If
|
|
|
|
|
|
If KUNDE_ERW IsNot Nothing Then
|
|
|
|
If KUNDE_ERW.kde_MWStAbrechnung <> "" Then
|
|
lblMWSTAntrag.Text = KUNDE_ERW.kde_MWStAbrechnung
|
|
Else
|
|
lblMWSTAntrag.Text = ""
|
|
End If
|
|
If KUNDE_ERW.kde_AnmerkungAntrag IsNot Nothing AndAlso KUNDE_ERW.kde_AnmerkungAntrag <> "" Then lblMWSTAntrag.Text &= " - " & KUNDE_ERW.kde_AnmerkungAntrag
|
|
End If
|
|
|
|
If USTV_ANTRAG.FilialenNr IsNot Nothing AndAlso USTV_ANTRAG.FilialenNr > 0 AndAlso USTV_ANTRAG.AbfertigungsNr IsNot Nothing AndAlso USTV_ANTRAG.AbfertigungsNr > 0 Then
|
|
Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr, 0)
|
|
If spedBuch.hasEntry Then
|
|
Button4.Text = "Sped.-Buch anzeigen"
|
|
Button5.Visible = True
|
|
Else
|
|
Button4.Text = "Sped.-Buch eintragen"
|
|
Button5.Visible = False
|
|
End If
|
|
Else
|
|
Button4.Text = "Sped.-Buch eintragen"
|
|
Button5.Visible = False
|
|
End If
|
|
End If
|
|
|
|
If posIndex > 0 Then
|
|
posIndex = posIndex - 1
|
|
If posIndex > 0 And dgvUSTVPositionen.Rows.Count > posIndex Then
|
|
dgvUSTVPositionen.ClearSelection()
|
|
dgvUSTVPositionen.Rows(posIndex).Selected = True
|
|
For Each c As DataGridViewCell In dgvUSTVPositionen.Rows(posIndex).Cells
|
|
If c.Visible Then
|
|
dgvUSTVPositionen.CurrentCell = c 'Damit der Cursor in der DGV richtig steht
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Sub setValue(USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag)
|
|
|
|
lblFirma.Text = USTV_ANTRAG.UStVAn_Name
|
|
lblKdNr.Text = USTV_ANTRAG.UStVAn_KuNr
|
|
lblLand.Text = Antrag_LandKz
|
|
txtVon._value = CDate(USTV_ANTRAG.UStVAn_ReDatVon)
|
|
txtBis._value = CDate(USTV_ANTRAG.UStVAn_ReDatBis)
|
|
'lblZeitraum.Text = CDate(USTV_ANTRAG.UStVAn_ReDatVon).ToString("dd.MM.yyyy") & " - " & CDate(USTV_ANTRAG.UStVAn_ReDatBis).ToString("dd.MM.yyyy")
|
|
cboStatus.changeItem(If(USTV_ANTRAG.UStVAn_Status, ""))
|
|
If If(USTV_ANTRAG.UStVAn_AntragArt, "") = "" Then cboAntragArt.changeItem("MWST")
|
|
cboAntragArt.changeItem(If(USTV_ANTRAG.UStVAn_AntragArt, ""))
|
|
rtbStatusText.Text = If(USTV_ANTRAG.UStVAn_StatusText, "")
|
|
txt3470.Text = If(USTV_ANTRAG.UStVAn_3470, "")
|
|
|
|
txtVZ.Text = If(USTV_ANTRAG.UStVAn_VZBetrag, "")
|
|
txtVZam._value = If(USTV_ANTRAG.UStVAn_VZDatum, "")
|
|
txtBezugsNr.Text = If(USTV_ANTRAG.UStVAn_BezugsNr, "")
|
|
txtAbfNr.Text = If(USTV_ANTRAG.AbfertigungsNr, "")
|
|
txtEingereichtAm.Text = If(USTV_ANTRAG.UStVAn_AntragEingereichtAm, "")
|
|
cbxFiliale.changeItem(If(USTV_ANTRAG.FilialenNr, ""))
|
|
cbxWahrung.changeItem(If(USTV_ANTRAG.UStVAn_Währungscode, ""))
|
|
|
|
End Sub
|
|
|
|
Sub getValue(ByRef USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag, Optional ADR As cAdressen = Nothing, Optional FIRMA As cFirmen = Nothing)
|
|
|
|
If Me_Validate() Then
|
|
|
|
If IsDate(txtVon._value) Then USTV_ANTRAG.UStVAn_ReDatVon = CDate(txtVon._value)
|
|
If IsDate(txtBis._value) Then USTV_ANTRAG.UStVAn_ReDatBis = CDate(txtBis._value)
|
|
|
|
USTV_ANTRAG.UStVAn_Status = cboStatus._value
|
|
USTV_ANTRAG.UStVAn_AntragArt = cboAntragArt._value
|
|
USTV_ANTRAG.UStVAn_StatusText = rtbStatusText.Text
|
|
|
|
USTV_ANTRAG.FilialenNr = cbxFiliale._value
|
|
|
|
USTV_ANTRAG.FilialenNr = cbxFiliale._value
|
|
|
|
If txt3470.Text <> "" AndAlso IsNumeric(txt3470.Text) Then
|
|
USTV_ANTRAG.UStVAn_3470 = CDbl(txt3470.Text)
|
|
Else
|
|
USTV_ANTRAG.UStVAn_3470 = Nothing
|
|
End If
|
|
|
|
If txtVZ.Text <> "" AndAlso IsNumeric(txtVZ.Text) Then
|
|
USTV_ANTRAG.UStVAn_VZBetrag = CDbl(txtVZ.Text)
|
|
Else
|
|
USTV_ANTRAG.UStVAn_VZBetrag = Nothing
|
|
End If
|
|
|
|
If txtVZam.Text <> "" AndAlso IsDate(txtVZam.Text) Then
|
|
USTV_ANTRAG.UStVAn_VZDatum = CDate(txtVZam.Text)
|
|
Else
|
|
USTV_ANTRAG.UStVAn_VZDatum = Nothing
|
|
End If
|
|
|
|
|
|
USTV_ANTRAG.UStVAn_BezugsNr = txtBezugsNr.Text
|
|
USTV_ANTRAG.AbfertigungsNr = txtAbfNr.Text
|
|
|
|
If txtEingereichtAm.Text <> "" AndAlso IsDate(txtEingereichtAm.Text) Then
|
|
USTV_ANTRAG.UStVAn_AntragEingereichtAm = txtEingereichtAm.Text
|
|
ElseIf txtEingereichtAm.Text = "" Then
|
|
USTV_ANTRAG.UStVAn_AntragEingereichtAm = Nothing
|
|
End If
|
|
|
|
|
|
If ADR IsNot Nothing Then
|
|
USTV_ANTRAG.UStVAn_KuNr = ADR.AdressenNr
|
|
USTV_ANTRAG.UStVAn_Name = ADR.Name_1 & IIf(ADR.Name_2 <> "", " " & ADR.Name_2, "")
|
|
USTV_ANTRAG.UStVAn_Straße = ADR.Straße
|
|
USTV_ANTRAG.UStVAn_LandKz = ADR.LandKz
|
|
USTV_ANTRAG.UStVAn_Ort = ADR.Ort
|
|
USTV_ANTRAG.UStVAn_Steuernummer = ADR.Steuernummer
|
|
End If
|
|
|
|
|
|
If FIRMA IsNot Nothing Then
|
|
USTV_ANTRAG.UStVAn_Kontoinhaber = FIRMA.Firma_Bez & "; " & FIRMA.Firma_Straße & ";" & FIRMA.Firma_Ort
|
|
USTV_ANTRAG.UStVAn_Bankverbindung = FIRMA.Firma_Bankverbindung1
|
|
USTV_ANTRAG.UStVAn_BLZ = FIRMA.Firma_BLZ1
|
|
USTV_ANTRAG.UStVAn_KTO = FIRMA.Firma_KTO1
|
|
|
|
'fallback laut FM-ZOLL
|
|
If USTV_ANTRAG.UStVAn_Kontoinhaber Is Nothing Then USTV_ANTRAG.UStVAn_Kontoinhaber = "VERAG 360 GmbH; 4975 Suben"
|
|
If USTV_ANTRAG.UStVAn_Bankverbindung Is Nothing Then USTV_ANTRAG.UStVAn_Bankverbindung = "Raiba Suben"
|
|
If USTV_ANTRAG.UStVAn_KTO Is Nothing Then USTV_ANTRAG.UStVAn_KTO = "4210225"
|
|
If USTV_ANTRAG.UStVAn_BLZ Is Nothing Then USTV_ANTRAG.UStVAn_BLZ = "34620"
|
|
If USTV_ANTRAG.UStVAn_Gewerbe Is Nothing Then USTV_ANTRAG.UStVAn_Gewerbe = "Transportunternehmer"
|
|
If USTV_ANTRAG.UStVAn_Erklärung_9_a Is Nothing Then USTV_ANTRAG.UStVAn_Erklärung_9_a = "Warentransport"
|
|
If USTV_ANTRAG.UStVAn_Ausstellungsort Is Nothing Then USTV_ANTRAG.UStVAn_Ausstellungsort = "Suben"
|
|
|
|
If USTV_ANTRAG.UStVAn_Erklärung_9_b_1 Is Nothing Then USTV_ANTRAG.UStVAn_Erklärung_9_b_1 = False
|
|
If USTV_ANTRAG.UStVAn_Erklärung_9_b_2 Is Nothing Then USTV_ANTRAG.UStVAn_Erklärung_9_b_2 = False
|
|
If USTV_ANTRAG.UStVAn_Erklärung_9_b_3 Is Nothing Then USTV_ANTRAG.UStVAn_Erklärung_9_b_3 = False
|
|
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
Function Me_Validate() As Boolean
|
|
If Not IsDate(txtVon._value) Then MsgBox("Datumsformat: Von") : Return False
|
|
If Not IsDate(txtBis._value) Then MsgBox("Datumsformat: Bis") : Return False
|
|
Return True
|
|
End Function
|
|
|
|
Public Shared Sub EnableDoubleBuffered(ByRef dgv As DataGridView)
|
|
Dim dgvType As Type = dgv.[GetType]()
|
|
Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
|
|
pi.SetValue(dgv, True, Nothing)
|
|
End Sub
|
|
|
|
Private Sub UsrCntlDatenDetails1_Changed(POSId) Handles UstCntlUSTV_AntragPosition1.CHANGED
|
|
'refreshDgv(kdNr, SDLNr, Kfz, History)'?????????????? ausgebelndet,was das ein VErsuch? 31.07.2017
|
|
|
|
Dim posIdinDGV As Boolean = False
|
|
|
|
For Each r As DataGridViewRow In dgvUSTVPositionen.Rows
|
|
If r.Cells("UStVPo_ID").Value = POSId Then
|
|
posIdinDGV = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If posIdinDGV Then
|
|
dgvUSTVPositionen.VALUE_CHANGED = True
|
|
init(POSId)
|
|
Else
|
|
init(dgvUSTVPositionen.Rows.Count + 1)
|
|
End If
|
|
|
|
'Dim dgvUSTVPositionen.
|
|
'init()
|
|
End Sub
|
|
|
|
Private Sub UstCntlUSTV_AntragErstattungen1_Changed(POSId) Handles UstCntlUSTV_AntragErstattungen1.CHANGED
|
|
|
|
|
|
Dim posIdinDGV As Boolean = False
|
|
|
|
For Each r As DataGridViewRow In dgvErstattungspositionen.Rows
|
|
If r.Cells("UStVEr_ID").Value = POSId Then
|
|
posIdinDGV = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If posIdinDGV Then
|
|
dgvUSTVPositionen.VALUE_CHANGED = True
|
|
initdgvErstattungen(POSId)
|
|
Else
|
|
initdgvErstattungen(dgvUSTVPositionen.Rows.Count + 1)
|
|
End If
|
|
|
|
'Dim dgvUSTVPositionen.
|
|
'init()
|
|
End Sub
|
|
|
|
Private Sub usrCntlUSTVA_Antrag_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
|
|
EnableDoubleBuffered(dgvUSTVPositionen)
|
|
|
|
cboStatus.Items.Clear()
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("-", ""))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("In Bearbeitung", cUSTVStatus.STAT_INBEARBEITUNG))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unvollständig", cUSTVStatus.STAT_UNVOLLSTAENDIG))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Eingereicht", cUSTVStatus.STAT_EINGEREICHT))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Nachforderung/Berichtigung", cUSTVStatus.STAT_NACHFORDERUNG))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Abgeschlossen/Erstattet", cUSTVStatus.STAT_ERSTATTET))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Teil-Erstattet", cUSTVStatus.STAT_TEILERSTATTET))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Abgelehnt", cUSTVStatus.STAT_ABGELEHNT))
|
|
cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Storno", cUSTVStatus.STAT_STORNO))
|
|
cboStatus.changeItem(cUSTVStatus.STAT_INBEARBEITUNG)
|
|
|
|
cboAntragArt.Items.Clear()
|
|
cboAntragArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("USTV-Antrag", "MWST"))
|
|
cboAntragArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MÖST-Antrag", "MOEST"))
|
|
cboAntragArt.changeItem("MWST")
|
|
|
|
|
|
cbxWahrung.fillWithSQL("SELECT [Länderverzeichnis für die Außenhandelsstatistik].Währungscode FROM [Länderverzeichnis für die Außenhandelsstatistik] WHERE ((([Länderverzeichnis für die Außenhandelsstatistik].Umsatzsteuervergütungsverfahren)=1)) GROUP BY [Länderverzeichnis für die Außenhandelsstatistik].Währungscode
|
|
ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].Währungscode", False, "FMZOLL", True)
|
|
cboAntragArt.changeItem(" ")
|
|
|
|
cbxFiliale.fillWithSQL("SELECT Filialen.FilialenNr, Filialen.Grenzstelle FROM Filialen WHERE Filialen.FilialenNr>=4800 AND Filialen.Fil_Status='A' ORDER BY Filialen.FilialenNr",, "FMZOLL", True)
|
|
|
|
lbl_EintrageVerarbetiet.Text = ""
|
|
|
|
If UStVAn_ID > 0 Then
|
|
cbxWahrung.Enabled = False
|
|
KdSearchBox1.Visible = False
|
|
USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL")
|
|
setValue(USTV_ANTRAG)
|
|
|
|
|
|
Else
|
|
Dim sqlWhere As String = ""
|
|
'neuer USTVA-Antrag
|
|
KdSearchBox1.Visible = True
|
|
cbxWahrung.Enabled = True
|
|
|
|
|
|
For i As Integer = 0 To cbxFiliale.Items.Count - 1
|
|
If cbxFiliale.Items(i).ToString().Contains("MWST Rückerstattung") Then
|
|
cbxFiliale.SelectedIndex = i
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
|
|
KdSearchBox1.initKdBox(Me)
|
|
AddHandler KdSearchBox1.PropertyChanged, Sub()
|
|
Try
|
|
|
|
|
|
lblKdNr.Text = KdSearchBox1.KdNr
|
|
KundenNr = KdSearchBox1.KdNr
|
|
|
|
|
|
Dim ADR As New cAdressen(KdSearchBox1.KdNr)
|
|
lblFirma.Text = ADR.Name_1
|
|
|
|
|
|
cbxLand.fillWithSQL("SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz
|
|
FROM [Länderverzeichnis für die Außenhandelsstatistik] INNER JOIN tblSteuernummern On [Länderverzeichnis für die Außenhandelsstatistik].LandNr = tblSteuernummern.LandNr
|
|
WHERE[Länderverzeichnis für die Außenhandelsstatistik].Umsatzsteuervergütungsverfahren = 1 And (tblSteuernummern.AdressenNr)=" & KdSearchBox1.KdNr & " And tblSteuernummern.UStV = 1
|
|
group by [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandNr
|
|
order by [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandNr", False, "FMZOLL")
|
|
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
If KundenNr > 0 Then
|
|
KdSearchBox1.KdNr = KundenNr
|
|
sqlWhere = "And tblSteuernummern.AdressenNr=" & KundenNr
|
|
End If
|
|
|
|
cbxLand.Visible = True
|
|
cbxLand.fillWithSQL("SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz
|
|
FROM [Länderverzeichnis für die Außenhandelsstatistik] INNER JOIN tblSteuernummern On [Länderverzeichnis für die Außenhandelsstatistik].LandNr = tblSteuernummern.LandNr
|
|
WHERE[Länderverzeichnis für die Außenhandelsstatistik].Umsatzsteuervergütungsverfahren = 1 And tblSteuernummern.UStV = 1 " & sqlWhere &
|
|
"group by [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandNr
|
|
order by [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandNr", False, "FMZOLL")
|
|
|
|
cbxLand.changeItem(Antrag_LandKz)
|
|
|
|
txtVon._value = von
|
|
txtBis._value = bis
|
|
|
|
If cbxLand.SelectedValue IsNot Nothing AndAlso Antrag_LandKz <> cbxLand.SelectedValue.ToString Then
|
|
lblWarnung.Text = "keine StNr für " & Antrag_LandKz
|
|
Else
|
|
lblWarnung.Text = ""
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
|
|
btnAntrageeinarbeiten.Enabled = False
|
|
FlowLayoutPanel.Enabled = False
|
|
btnEintragloeschen.Enabled = False
|
|
btnNeuerEintrag.Enabled = False
|
|
UstCntlUSTV_AntragPosition1.Enabled = False
|
|
|
|
End If
|
|
|
|
init()
|
|
|
|
setinfofields()
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then btnAbfertigungsNrVergeben.Visible = True
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles btnAntrageeinarbeiten.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 USTV_ANTRAG.UStVAn_ReDatVon.year >= 2025 Then
|
|
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
|
|
|
|
|
|
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 rmc = New ToolStripMenuItem() With {.Text = "MSE", .Name = "mse", .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("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 ids = New ToolStripMenuItem() With {.Text = "VERAG", .Name = "verag", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
|
|
ContextMenuStrip2.Items.Add(ids)
|
|
End If
|
|
|
|
ContextMenuStrip2.Show(Cursor.Position)
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs)
|
|
|
|
ContextMenuStrip1.Hide()
|
|
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
|
|
|
|
If item IsNot Nothing Then
|
|
If item.Name = "plose" Or item.Name = "ploseneu" Then
|
|
loadUSTVFrom_PLOSE(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked, IIf(item.Name = "ploseneu", True, False))
|
|
init()
|
|
ElseIf item.Name = "rmc" Then
|
|
loadUSTVFrom_RMC(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
|
|
init()
|
|
ElseIf item.Name = "mse" Then
|
|
loadUSTVFrom_MSE(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
|
|
init()
|
|
ElseIf item.Name = "uta" Then
|
|
loadUSTVFrom_UTA(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
|
|
init()
|
|
ElseIf item.Name = "ids" Then
|
|
loadUSTVFrom_IDS(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
|
|
init()
|
|
ElseIf item.Name = "verag" Then
|
|
loadUSTVFrom_VERAG(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
|
|
init()
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Shared Function alreadyExists(USTVAn_KuNr As Integer, UStVAn_LandNr As String, USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim cnt = SQL.getValueTxtBySql(" Select count(*) FROM [tblUStVAntrag] inner join [tblUStVPositionen] On tblUStVAntrag.UStVAn_ID= [tblUStVPositionen].UStVAn_ID
|
|
WHERE USTVAn_KuNr='" & USTVAn_KuNr & "' /* AND UStVPo_SchnittstellenNr='" & USTV_POS.UStVPo_SchnittstellenNr & "'*/ AND UStVPo_ReNr = '" & USTV_POS.UStVPo_ReNr & "' AND UStVPo_ReDat='" & USTV_POS.UStVPo_ReDat & "' AND UStVAn_LandNr='" & UStVAn_LandNr & "'", "FMZOLL")
|
|
Return (cnt > 0)
|
|
End Function
|
|
|
|
Shared Function alreadyExistsMitLeistungsBez(USTVAn_KuNr As Integer, UStVAn_LandNr As String, USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
Dim cnt = SQL.getValueTxtBySql(" SELECT count(*) FROM [tblUStVAntrag] inner join [tblUStVPositionen] on tblUStVAntrag.UStVAn_ID= [tblUStVPositionen].UStVAn_ID
|
|
WHERE USTVAn_KuNr='" & USTVAn_KuNr & "' /* AND UStVPo_SchnittstellenNr='" & USTV_POS.UStVPo_SchnittstellenNr & "' */ AND UStVPo_ReNr = '" & USTV_POS.UStVPo_ReNr & "' AND UStVPo_ReDat='" & USTV_POS.UStVPo_ReDat & "' AND UStVAn_LandNr='" & UStVAn_LandNr & "' AND UStVPo_Leistungsbezeichnung = '" & USTV_POS.UStVPo_Leistungsbezeichnung & "'", "FMZOLL")
|
|
Return (cnt > 0)
|
|
End Function
|
|
|
|
Function alreadyExists_InAntrag(USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
|
|
For Each row As DataGridViewRow In dgvUSTVPositionen.Rows
|
|
If row.Cells("UStVPo_SchnittstellenNr").Value = USTV_POS.UStVPo_SchnittstellenNr Then
|
|
If row.Cells("UStVPo_ReNr").Value = USTV_POS.UStVPo_ReNr.ToString And row.Cells("UStVPo_ReDat").Value = USTV_POS.UStVPo_ReDat Then
|
|
Return True
|
|
End If
|
|
End If
|
|
Next
|
|
Return False
|
|
End Function
|
|
|
|
Shared Function loadUSTVFrom_PLOSE(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean, MWSTSummenAusBeleg As Boolean) As Boolean
|
|
Try
|
|
Dim bytSchnittstellenNr = IIf(MWSTSummenAusBeleg, 11, 6)
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Dim GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien, MWSTSummenAusBeleg)
|
|
|
|
If GET_Antraege IsNot Nothing Then
|
|
|
|
For Each ANTRAG In GET_Antraege
|
|
Dim sql As New SQL
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
|
|
USTV_POS.UStVPo_ReDat = ANTRAG.plose_RechnungsDatum
|
|
USTV_POS.UStVPo_ReNr = ANTRAG.plose_RechnungsNr.ToString
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
|
|
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
|
|
If MWSTSummenAusBeleg AndAlso ANTRAG.plose_daId IsNot Nothing Then
|
|
USTV_POS.UStVPo_daId = ANTRAG.plose_daId
|
|
Else
|
|
USTV_POS.UStVPo_daId = sql.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & USTV_POS.UStVPo_ReDat & "' and plInv_SupplierRechnungsNr='" & USTV_POS.UStVPo_ReNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL")
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = "Maut"
|
|
|
|
Dim leistenderName As String = ""
|
|
|
|
Select Case Antrag_LandKz
|
|
Case "DK"
|
|
If IsDBNull(ANTRAG.plose_Lieferant) Then
|
|
leistenderName = "A/S Storebealt"
|
|
Else
|
|
leistenderName = ANTRAG.plose_Lieferant
|
|
End If
|
|
|
|
Case "SE"
|
|
If IsDBNull(ANTRAG.plose_Lieferant) Then
|
|
leistenderName = "Oresundsbro konsortiet I/S"
|
|
Else
|
|
leistenderName = ANTRAG.plose_Lieferant
|
|
End If
|
|
|
|
Case Else
|
|
If Not IsDBNull(ANTRAG.plose_Lieferant) Then
|
|
If ANTRAG.plose_Lieferant IsNot Nothing AndAlso ANTRAG.plose_Lieferant = "SOFICO BELGIO" Then
|
|
leistenderName = "Sofico"
|
|
Else
|
|
leistenderName = ANTRAG.plose_Lieferant
|
|
End If
|
|
End If
|
|
|
|
End Select
|
|
|
|
|
|
Dim leistender As New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz)
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender(leistenderName)
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender
|
|
USTV_POS.UStVPo_LeistenderId = leistender.UStV_LeistenderId
|
|
'If ANTRAG.plose_Lieferant = "PLOSE Sistem Service" Then
|
|
' USTV_POS.UStVPo_Leistender = "PLOSE SISTEM SERVICE SPA"
|
|
'End If
|
|
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
If IsNumeric(USTV_POS.UStVPo_daId) AndAlso USTV_POS.UStVPo_daId > 0 Then
|
|
USTV_POS.UStVPo_daId_loeschbar = False
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
End If
|
|
' USTV_POS.UStVPo_daId = ANTRAG.plose_daId
|
|
|
|
' Berechnungen
|
|
If Not MWSTSummenAusBeleg Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung 'IMMER IN EUR
|
|
USTV_POS.UStVPo_Umrechnungskurs = ANTRAG.plose_MWSTBetrag / ANTRAG.plose_MWSTBetragWaehrungAbbuchung
|
|
USTV_POS.UStVPo_USteuerbetrag = ANTRAG.plose_MWSTBetrag
|
|
|
|
Else
|
|
'TODO - hier Umrechnungslogik von FRMDW und EUR und EUR/FRMDWR für Belegsebene
|
|
Dim umrechKurs As Double = 1
|
|
|
|
If USTV_ANTRAG.UStVAn_Währungscode = ANTRAG.plose_WaehrungAbbuchung And USTV_ANTRAG.UStVAn_Währungscode = "EUR" Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung
|
|
USTV_POS.UStVPo_Umrechnungskurs = ANTRAG.plose_MWSTBetrag / ANTRAG.plose_MWSTBetragWaehrungAbbuchung
|
|
USTV_POS.UStVPo_USteuerbetrag = ANTRAG.plose_MWSTBetrag
|
|
|
|
Else
|
|
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
|
Dim UST_EUR = ANTRAG.plose_MWSTBetrag
|
|
Dim UST_org = ANTRAG.plose_MWSTBetrag
|
|
|
|
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung = "EUR" Then
|
|
|
|
UST_org = Math.Round(kurs.EXCHANGE_EURTOCUR(UST_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
|
|
ElseIf USTV_ANTRAG.UStVAn_Währungscode = "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung <> "EUR" Then
|
|
|
|
UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
|
|
ElseIf USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso ANTRAG.plose_WaehrungAbbuchung <> "EUR" Then
|
|
|
|
UST_EUR = Math.Round(kurs.EXCHANGE_CURTOEUR(UST_org, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
|
|
End If
|
|
|
|
|
|
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
|
|
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
|
End If
|
|
|
|
|
|
If UST_org <> 0 Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
|
|
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
|
USTV_POS.UStVPo_USteuerbetrag = UST_org
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
If USTV_POS.INSERT() Then
|
|
If bytSchnittstellenNr = 11 Then 'wegel bei welcher Einlesselogik, sollen immer [tblPLOSE_Details] und [tblPLOSE_Inv_Data] aktualisiert werden!
|
|
MDM_Worker.cPLOSE.UPDATE_ARCHIV_NEULOGIK(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
|
|
MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
|
|
Else
|
|
MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
|
|
MDM_Worker.cPLOSE.UPDATE_ARCHIV_NEULOGIK(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID, USTV_POS.UStVPo_ReNr, True)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
'Einträge als archivert setzen ' vormals wichtig
|
|
'MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID)
|
|
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Shared Function loadUSTVFrom_VERAG(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
|
|
Try
|
|
|
|
If Antrag_LandKz <> "AT" Then
|
|
Return False
|
|
End If
|
|
|
|
Dim bytSchnittstellenNr = 1
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Dim dt_RE As New DataTable
|
|
Dim GET_Rechnungen = cTrdInvoice.GET_RECHNUNGEN(dt_RE, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, ArchivierteEintracheNochmalsEinarbetien)
|
|
|
|
Dim verarbeitet As Boolean = True
|
|
If GET_Rechnungen Then
|
|
|
|
For Each r As DataRow In dt_RE.Rows
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
|
|
USTV_POS.UStVPo_ReDat = r.Item("Rechnungsdatum")
|
|
USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer")
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
|
|
|
|
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
Dim sql As New SQL
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
|
|
Dim leistender As New cUStVLeistender("VERAG 360 GmbH" & " " & Antrag_LandKz, Antrag_LandKz)
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender("VERAG 360 GmbH")
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
|
|
USTV_POS.UStVPo_daId = 0
|
|
Dim rkID = sql.getValueTxtBySql("SELECT TOP(1) isnull(RK_ID,0) FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & USTV_POS.UStVPo_ReDat & "' and Rechnungsausgang.RechnungsNr='" & USTV_POS.UStVPo_ReNr & "' AND FilialenNr = " & r.Item("FilialenNr") & " AND RK_ID is not null", "FMZOLL")
|
|
If rkID <> "" AndAlso IsNumeric(rkID) Then USTV_POS.UStVPo_daId = rkID
|
|
If USTV_POS.UStVPo_daId > 0 Then
|
|
USTV_POS.UStVPo_daId_loeschbar = False
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
End If
|
|
|
|
|
|
Dim dt_Prod As New DataTable
|
|
Dim GET_Positionen = cTrdProduct.GET_PRODUCTS(dt_Prod, USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr)
|
|
|
|
If GET_Positionen Then
|
|
For Each pos As DataRow In dt_Prod.Rows
|
|
|
|
Select Case pos.Item("Leistungsnummer")
|
|
Case 135 To 139, 141, 654, 655, 658 To 668, 670 To 678
|
|
|
|
|
|
If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = pos.Item("Leistungsbezeichnung")
|
|
Else
|
|
Dim result As String = Microsoft.VisualBasic.Strings.Left(pos.Item("Leistungsbezeichnung") & vbCrLf & USTV_POS.UStVPo_Leistungsbezeichnung, 255)
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = result
|
|
End If
|
|
Case Else
|
|
' Sonstige Kosten
|
|
If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = pos.Item("Leistungsbezeichnung")
|
|
Else
|
|
Dim result As String = Microsoft.VisualBasic.Strings.Left(USTV_POS.UStVPo_Leistungsbezeichnung & vbCrLf & pos.Item("Leistungsbezeichnung"), 255)
|
|
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = result
|
|
End If
|
|
End Select
|
|
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
'Berechnungen - Beträge IMMER in EUR!
|
|
Dim umrechKurs As Double = 1
|
|
Dim UST_EUR = CDbl(r.Item("SteuerbetragLokal"))
|
|
|
|
UST_EUR = Math.Round(UST_EUR, 2)
|
|
|
|
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
|
|
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
|
USTV_POS.UStVPo_USteuerbetrag = UST_EUR
|
|
|
|
|
|
If USTV_POS.INSERT() Then
|
|
verarbeitet = sql.doSQL("Update tblTrdinInvoice SET tblTrdinInvoice.UStVAn_ID = " & USTV_POS.UStVAn_ID & " WHERE tblTrdinInvoice.Rechnungsdatum = '" & USTV_POS.UStVPo_ReDat & "' And tblTrdinInvoice.Rechnungsnummer = " & USTV_POS.UStVPo_ReNr, "FMZOLL")
|
|
If Not verarbeitet Then
|
|
MsgBox("Fehler beim Setzen der UStVAn_ID")
|
|
Return verarbeitet
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
Return verarbeitet
|
|
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Shared Function loadUSTVFrom_RMC(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
|
|
|
|
Try
|
|
Dim bytSchnittstellenNr = 7
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Dim dt As New DataTable
|
|
Dim GET_Antraege = cRMC.GET_Antraege_RMC(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien)
|
|
|
|
If GET_Antraege Then
|
|
|
|
For Each r As DataRow In dt.Rows
|
|
|
|
Dim kdNr = r.Item("rmc_kdNr")
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
USTV_POS.UStVPo_ReDat = r.Item("rmc_reDatum")
|
|
USTV_POS.UStVPo_ReNr = r.Item("rmc_reNr").ToString
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
USTV_POS.UStVPo_daId = r.Item("rmc_daId")
|
|
If IsNumeric(USTV_POS.UStVPo_daId) AndAlso USTV_POS.UStVPo_daId > 0 Then
|
|
USTV_POS.UStVPo_daId_loeschbar = False
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
|
|
End If
|
|
|
|
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = "Diesel"
|
|
|
|
Dim leistender As New cUStVLeistender("RMC Service GmbH" & " " & Antrag_LandKz, Antrag_LandKz)
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender("RMC Service GmbH")
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
|
|
|
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
|
|
' Berechnungen
|
|
'von RMC bekommen wir Fremdwährung und EUR, d.b. wir können und den Umrechnungskurs selbst berechnen!
|
|
|
|
Dim umrechKurs As Double = 1
|
|
If (CDbl(r.Item("rmc_betragBrutto")) <> 0 AndAlso CDbl(r.Item("rmc_euroBrutto")) <> 0) Then
|
|
|
|
Dim UST_EUR As Double = CDbl(r.Item("rmc_euroBrutto"))
|
|
Dim UST_org As Double = CDbl(r.Item("rmc_betragBrutto"))
|
|
|
|
'umrechKurs = frmdw / eur
|
|
|
|
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
|
|
|
End If
|
|
|
|
If CDbl(r.Item("rmc_betragMWST")) <> 0 Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round((r.Item("rmc_betragMWST") / umrechKurs), 2)
|
|
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
|
USTV_POS.UStVPo_USteuerbetrag = r.Item("rmc_betragMWST")
|
|
End If
|
|
|
|
If USTV_POS.INSERT() Then
|
|
cRMC.UPDATE_ARCHIV(USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr, kdNr, USTV_POS.UStVAn_ID)
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Shared Function loadUSTVFrom_MSE(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
|
|
Try
|
|
Dim bytSchnittstellenNr = 9 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Dim dt As New DataTable
|
|
Dim GET_Antraege = cMSEAPI.GET_Antraege_MSE(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, ArchivierteEintracheNochmalsEinarbetien)
|
|
|
|
If GET_Antraege Then
|
|
|
|
For Each r As DataRow In dt.Rows
|
|
|
|
Dim kdNr = r.Item("customer_id")
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
USTV_POS.UStVPo_ReDat = r.Item("invoice_date")
|
|
USTV_POS.UStVPo_ReNr = r.Item("invoice_number") & " - " & kdNr & IIf(Antrag_LandKz = "BE", "/Belgium", "")
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
USTV_POS.UStVPo_daId = r.Item("daId")
|
|
If IsNumeric(USTV_POS.UStVPo_daId) AndAlso USTV_POS.UStVPo_daId > 0 Then
|
|
USTV_POS.UStVPo_daId_loeschbar = False
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
End If
|
|
|
|
If Not alreadyExistsMitLeistungsBez(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = r.Item("specification_page_name")
|
|
|
|
Dim leistender As New cUStVLeistender("MS Europe BV" & " " & Antrag_LandKz, Antrag_LandKz)
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender("MS Europe BV")
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
|
|
' Berechnungen
|
|
'von MSE bekommen wir Fremdwährung und EUR, d.b. wir können den Umrechnungskurs selbst berechnen!
|
|
|
|
Dim umrechKurs As Double = 1
|
|
Dim UST_EUR = CDbl(r.Item("UST_EUR"))
|
|
Dim UST_org = CDbl(r.Item("UST"))
|
|
|
|
If (UST_EUR <> 0 AndAlso UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
|
|
|
|
'umrechKurs = UST_org / UST_EUR
|
|
|
|
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
|
|
|
End If
|
|
|
|
If UST_org <> 0 Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR 'Math.Round((UST_org / umrechKurs), 2)
|
|
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
|
USTV_POS.UStVPo_USteuerbetrag = UST_org
|
|
End If
|
|
|
|
If USTV_POS.INSERT() Then
|
|
cMSEAPI.UPDATE_ARCHIV(r.Item("invoice_date"), r.Item("invoice_number"), r.Item("customer_id"), Antrag_LandKz, USTV_POS.UStVAn_ID)
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Shared Function loadUSTVFrom_UTA(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
|
|
Try
|
|
Dim bytSchnittstellenNr = 10 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Dim dt As New DataTable
|
|
Dim GET_Antraege = cUTA.GET_Antraege_UTA(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, ArchivierteEintracheNochmalsEinarbetien)
|
|
|
|
If GET_Antraege Then
|
|
|
|
For Each r As DataRow In dt.Rows
|
|
|
|
Dim kdnr = r.Item("Kundennummer")
|
|
Dim kdnrUTA = r.Item("KundennummerUTA")
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
USTV_POS.UStVPo_ReDat = r.Item("Rechnungsdatum")
|
|
USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer").ToString
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
USTV_POS.UStVPo_daId = r.Item("daId")
|
|
If IsNumeric(USTV_POS.UStVPo_daId) AndAlso USTV_POS.UStVPo_daId > 0 Then
|
|
USTV_POS.UStVPo_daId_loeschbar = False
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
End If
|
|
|
|
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
|
|
Dim Leistender As New cUStVLeistender("Union Tank Eckstein Gmbh&Co KG" & " " & Antrag_LandKz, Antrag_LandKz)
|
|
|
|
If Leistender IsNot Nothing Then
|
|
USTV_POS.UStVPo_LeistenderId = Leistender.UStV_LeistenderId
|
|
USTV_POS.UStVPo_Leistender = Leistender.UStV_Leistender
|
|
Else
|
|
USTV_POS.UStVPo_Leistender = "Union Tank Eckstein Gmbh&Co KG"
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = "MAUT, DIESEL oder KFZ-Zubehör"
|
|
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
|
|
' Berechnungen
|
|
'UTA liefert Beträge immer in EUR und in FREMDW!
|
|
|
|
Dim umrechKurs As Double = 1
|
|
|
|
Dim UST_org = CDbl(r.Item("Umsatzsteuerbetrag_in_Lieferlandwährung"))
|
|
Dim UST_EUR = CDbl(r.Item("Umsatzsteuerbetrag_in_Darstellwährung")) 'ist immer EUR
|
|
|
|
|
|
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
|
|
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
|
End If
|
|
|
|
|
|
|
|
If UST_org <> 0 Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
|
|
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
|
USTV_POS.UStVPo_USteuerbetrag = UST_org
|
|
End If
|
|
|
|
If USTV_POS.INSERT() Then
|
|
cUTA.UPDATE_ARCHIV(USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr, kdnrUTA, USTV_POS.UStVAn_ID)
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Shared Function loadUSTVFrom_IDS(UStVAn_ID As Integer, Antrag_LandKz As String, ArchivierteEintracheNochmalsEinarbetien As Boolean) As Boolean
|
|
Try
|
|
'Dim bytSchnittstellenNr = 8 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
|
|
Dim bytSchnittstellenNr = 12
|
|
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
Dim dt As New DataTable
|
|
Dim GET_Antraege = cIDS.GET_Antraege_IDS(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien)
|
|
|
|
If GET_Antraege Then
|
|
|
|
For Each r As DataRow In dt.Rows
|
|
Dim sql As New SQL
|
|
Dim kdnr = r.Item("Kundennummer")
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
USTV_POS.UStVPo_ReDat = r.Item("Rechnungsdatum")
|
|
USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer").ToString
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
|
|
|
|
'OLD - Gesammelte Rechnung
|
|
'USTV_POS.UStVPo_daId = sql.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNew.daId FROM [tblIDSTransactionsNew] INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode LEFT JOIN tblIDSInvoicesNew on tblIDSInvoicesNew.CustomerCode = tblIDSTransactionsNew.CustomerCode and tblIDSInvoicesNew.Invoicenumber = Paymentsummarynumber where tblIDSTransactionsNew.[YearMonthDay] ='" & USTV_POS.UStVPo_ReDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & USTV_POS.UStVPo_ReNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL")
|
|
|
|
'NEW-Einzelrechnung
|
|
USTV_POS.UStVPo_daId = sql.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNewSplittedByCountry.daId FROM [tblIDSInvoicesNewSplittedByCountry] where tblIDSInvoicesNewSplittedByCountry.[YearMonthDay] ='" & USTV_POS.UStVPo_ReDat & "' AND tblIDSInvoicesNewSplittedByCountry.Invoicenumber ='" & USTV_POS.UStVPo_ReNr.ToString.Replace("/", "") & "' and tblIDSInvoicesNewSplittedByCountry.Country='" & Antrag_LandKz & "' AND tblIDSInvoicesNewSplittedByCountry.daId is not null", "FMZOLL")
|
|
|
|
|
|
If IsNumeric(USTV_POS.UStVPo_daId) AndAlso USTV_POS.UStVPo_daId > 0 Then
|
|
USTV_POS.UStVPo_daId_loeschbar = False
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
End If
|
|
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = "Diesel"
|
|
|
|
'sonderfälle vom leistenden bei IDS, leider nicht in der Importtabelle, daher hardcoded:
|
|
|
|
Dim leistenderName As String = ""
|
|
|
|
Select Case Antrag_LandKz
|
|
Case "RO"
|
|
leistenderName = "Kuwait Petroleum Romania S.R.L"
|
|
Case "SE"
|
|
leistenderName = "OK-Q8 AB"
|
|
Case "DK"
|
|
leistenderName = "Q8 Danmark A/S"
|
|
Case "PL"
|
|
leistenderName = "Kuwait Petroleum Sp. Z.o.o"
|
|
Case "DE"
|
|
leistenderName = "Kuwait Petroleum Gmbh"
|
|
Case "IT"
|
|
leistenderName = "Kuwait Petroleum Italie Spa"
|
|
Case "ES"
|
|
leistenderName = "Fuel Iberia S.L.U"
|
|
Case Else
|
|
leistenderName = "IDS EUROPE B.V."
|
|
End Select
|
|
|
|
|
|
Dim leistender As New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz)
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender(leistenderName)
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
|
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
|
|
|
|
Dim umrechKurs As Double = 1
|
|
|
|
'IDS liefert Beträge immer in EUR, wir müssen allerdings die Beträge in FREMDW umrechnen!
|
|
|
|
Dim UST_EUR = CDbl(r.Item("Steuerbetrag")) 'ist immer EUR
|
|
Dim UST_org = CDbl(r.Item("Steuerbetrag"))
|
|
|
|
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" Then
|
|
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
|
UST_org = Math.Round(kurs.EXCHANGE_EURTOCUR(UST_EUR, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
End If
|
|
|
|
If (UST_org <> 0 AndAlso UST_org <> UST_EUR) Then
|
|
umrechKurs = Math.Floor((UST_org / UST_EUR * 100 + 0.5)) / 100
|
|
End If
|
|
|
|
|
|
If UST_org <> 0 Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR
|
|
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
|
|
USTV_POS.UStVPo_USteuerbetrag = UST_org
|
|
End If
|
|
|
|
If USTV_POS.INSERT() Then
|
|
cIDS.UPDATE_ARCHIV(USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr, kdnr, Antrag_LandKz, USTV_POS.UStVAn_ID)
|
|
End If
|
|
'tblUStVPositionen
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Shared Function loadUSTVFrom_ATEZ_KI(UStVAn_ID As Integer, Antrag_LandKz As String, atez_api As cATEZ_NCTS_IN, daid As Integer, pageCount As Integer, documentType As String, deleteOrigPDF As Boolean) As Boolean
|
|
Try
|
|
|
|
Dim bytSchnittstellenNr = -1
|
|
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
|
|
|
|
Dim dt As New DataTable
|
|
|
|
If dt IsNot Nothing And Not dt.Columns.Contains("currency") Then
|
|
|
|
dt.Columns.Add("count", GetType(Integer))
|
|
dt.Columns.Add("currency", GetType(String))
|
|
dt.Columns.Add("seller_VAT_id", GetType(String))
|
|
dt.Columns.Add("seller_address_city", GetType(String))
|
|
dt.Columns.Add("seller_address_country", GetType(String))
|
|
dt.Columns.Add("seller_address_postcode", GetType(String))
|
|
dt.Columns.Add("seller_address_street", GetType(String))
|
|
dt.Columns.Add("seller_name", GetType(String))
|
|
dt.Columns.Add("total_VAT_amount", GetType(Double))
|
|
dt.Columns.Add("invoice_id", GetType(String))
|
|
dt.Columns.Add("invoice_date", GetType(String))
|
|
dt.Columns.Add("status", GetType(String))
|
|
dt.Columns.Add("document_count", GetType(Integer))
|
|
End If
|
|
|
|
Dim failreDesc As String
|
|
Dim authResp = atez_api.authenticate("VAT", "client1", "password")
|
|
Dim resp
|
|
If authResp <> "200" Then
|
|
MsgBox("Authentifizierung fehlgeschlagen" & vbNewLine & authResp)
|
|
Return False
|
|
Else
|
|
'If API.SendRequestWithAuthHeader("application/json", failreDesc, "/health", "GET") = "200" Then
|
|
|
|
|
|
If atez_api.setJsonVAT(documentType, daid) Then
|
|
|
|
resp = atez_api.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt)
|
|
|
|
|
|
If dt.Rows.Count > 0 Then
|
|
|
|
|
|
Dim f As New frmVAT_ATEZ()
|
|
f.usrcntlVAT_ATEZ1.initDGV(dt)
|
|
If f.ShowDialog = DialogResult.OK Then
|
|
|
|
|
|
Dim DS_ORIG_alreadyDeleted = Not deleteOrigPDF 'ist wirklich so richtig!
|
|
Dim DS_ORIG As New cDATENSERVER(daid)
|
|
Dim fi_orig As New FileInfo(DS_ORIG.GET_TOP1_PATH())
|
|
|
|
For Each r As DataGridViewRow In f.usrcntlVAT_ATEZ1.dgvVAT.SelectedRows
|
|
|
|
Dim sql As New SQL
|
|
'Dim kdnr = r.Cells("Kundennummer").Value
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
|
|
|
|
Dim reDat As Date = IIf(Not IsDBNull(r.Cells("invoice_date").Value) AndAlso IsDate(r.Cells("invoice_date").Value), r.Cells("invoice_date").Value, Nothing)
|
|
|
|
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
USTV_POS.UStVPo_ReDat = reDat.ToShortDateString
|
|
USTV_POS.UStVPo_ReNr = r.Cells("invoice_id").Value.ToString
|
|
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
|
|
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = "Maut/Diesel"
|
|
USTV_POS.UStVPo_Schnittstelle = True
|
|
|
|
|
|
|
|
|
|
|
|
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
|
|
|
|
|
|
|
|
If pageCount = r.Cells("document_count").Value Then
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
|
|
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "ATEZ_KI", Now.Year, Now.ToString("yyyyMMdd"), fi_orig.Name, USTV_ANTRAG.UStVAn_KuNr, False)
|
|
If Not DS_NEW.uploadDataToDATENSERVER(fi_orig.FullName) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
|
|
If DS_NEW.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
|
|
USTV_POS.UStVPo_daId = DS_NEW.da_id
|
|
|
|
'gesamtePDF wird gespeichert, alte DS kann gelscht werden:
|
|
If DS_ORIG.DELETE_COMPLETE() Then DS_ORIG_alreadyDeleted = True
|
|
|
|
Else
|
|
USTV_POS.UStVPo_daId_loeschbar = True
|
|
|
|
'todo: Logik Aufsplittung des PDF in Teilpdfs
|
|
Dim pagestart = 0
|
|
For Each pages As DataRow In dt.Rows
|
|
pagestart += CInt(pages.Item("document_count"))
|
|
If pages.Item("count") = r.Cells("count").Value Then Exit For
|
|
Next
|
|
|
|
|
|
|
|
Dim TMP_Path_Old = fi_orig.FullName
|
|
Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi_orig.Name, fi_orig.Extension,, True, "USTVA_POS")
|
|
|
|
VERAG_PROG_ALLGEMEIN.cAllgemein.ExtractPdfPages(TMP_Path_Old, TMP_Path_New, pagestart, r.Cells("document_count").Value)
|
|
|
|
|
|
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "ATEZ_KI", Now.Year, Now.ToString("yyyyMMdd"), fi_orig.Name, USTV_ANTRAG.UStVAn_KuNr, False)
|
|
If Not DS_NEW.uploadDataToDATENSERVER(TMP_Path_New) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
|
|
If DS_NEW.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
|
|
|
|
USTV_POS.UStVPo_daId = DS_NEW.da_id
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dim leistenderName As String = r.Cells("seller_name").Value
|
|
Dim leistenderUID As String = r.Cells("seller_VAT_id").Value
|
|
Dim leistender As New cUStVLeistender(leistenderUID, True)
|
|
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz)
|
|
End If
|
|
If leistender.UStV_LeistenderId < 1 Then
|
|
leistender = New cUStVLeistender(leistenderName)
|
|
End If
|
|
|
|
USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender.ToString
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
|
|
'1. Antragswährung = Belegswährung (EUR zu FREMD und FREMD zu EUR)
|
|
If r.Cells("currency").Value = USTV_ANTRAG.UStVAn_Währungscode Then
|
|
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
|
If USTV_ANTRAG.UStVAn_Währungscode = "EUR" Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = r.Cells("total_VAT_amount").Value
|
|
If USTV_ANTRAG.UStVAn_Währungscode <> "EUR" Then
|
|
USTV_POS.UStVPo_USteuerbetrag = Math.Round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
|
|
Else
|
|
USTV_POS.UStVPo_USteuerbetrag = r.Cells("total_VAT_amount").Value
|
|
USTV_POS.UStVPo_Umrechnungskurs = 1
|
|
End If
|
|
|
|
Else
|
|
|
|
USTV_POS.UStVPo_USteuerbetrag = r.Cells("total_VAT_amount").Value
|
|
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, r.Cells("currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
|
|
End If
|
|
Else
|
|
'2. Antragswährung <> Belegswährung (EUR zu FREMD und FREMD zu EUR)
|
|
If USTV_ANTRAG.UStVAn_Währungscode = "EUR" Then
|
|
Dim kurs As New cEZB_Waehrungskurse(r.Cells("currency").Value)
|
|
If r.Cells("currency").Value <> "EUR" Then
|
|
USTV_POS.UStVPo_USteuerbetrag = r.Cells("total_VAT_amount").Value
|
|
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, r.Cells("currency").Value, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
|
|
ElseIf r.Cells("currency").Value = "EUR" Then
|
|
USTV_POS.UStVPo_USteuerbetrag = Math.Round(kurs.EXCHANGE_EURTOCUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
USTV_POS.UStVPo_USteuerbetragEUR = USTV_POS.UStVPo_USteuerbetrag
|
|
USTV_POS.UStVPo_Umrechnungskurs = 1
|
|
End If
|
|
Else
|
|
'2.1 Antragswährung <> Belegswährung (FREMD zu FREMD)
|
|
|
|
USTV_POS.UStVPo_USteuerbetrag = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(r.Cells("total_VAT_amount").Value, r.Cells("currency").Value, USTV_ANTRAG.UStVAn_Währungscode)
|
|
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
|
USTV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(r.Cells("total_VAT_amount").Value, USTV_ANTRAG.UStVAn_Währungscode, CDate(USTV_POS.UStVPo_ReDat)), 2)
|
|
USTV_POS.UStVPo_Umrechnungskurs = Math.Floor((CDbl(USTV_POS.UStVPo_USteuerbetrag) / CDbl(USTV_POS.UStVPo_USteuerbetragEUR) * 100 + 0.5)) / 100
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
USTV_POS.INSERT()
|
|
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
If Not DS_ORIG_alreadyDeleted Then
|
|
DS_ORIG.DELETE_COMPLETE()
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
Else
|
|
MsgBox(resp)
|
|
End If
|
|
End If
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|
|
|
If UStVAn_ID > 0 Then
|
|
|
|
dgvUSTVPositionen.GetOrder()
|
|
|
|
getValue(USTV_ANTRAG)
|
|
If USTV_ANTRAG.SAVE Then
|
|
init()
|
|
dgvUSTVPositionen.SetOrder()
|
|
End If
|
|
|
|
VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen_USTVA(USTV_ANTRAG.UStVAn_ID)
|
|
|
|
Else
|
|
|
|
Dim USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag()
|
|
Dim ADR As New cAdressen(KundenNr)
|
|
Dim ERW As New cKundenErweitert(KundenNr)
|
|
Dim FIRMA As New cFirmen(1) 'Nr 1 weil weil Kontodaten von Verag.....
|
|
|
|
If KundenNr < 0 Then
|
|
MsgBox("Kunde auswählen!")
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If ERW.kde_keineMWSt Then
|
|
If Not vbYes = MsgBox("Der ausgewählte Kunde " & ADR.Name_1 & " ist als KEIN MWST-Kunde deklariert!" & vbNewLine & "Trotzdem Antrag speichern?", vbYesNoCancel) Then Exit Sub
|
|
End If
|
|
|
|
USTV_ANTRAG.UStVAn_LandNr = cbxLand._value
|
|
|
|
If USTV_ANTRAG.UStVAn_LandNr = "" Then
|
|
MsgBox("Land muss gesetzt werden!")
|
|
Exit Sub
|
|
End If
|
|
|
|
If cbxWahrung.SelectedItem Is Nothing Then
|
|
USTV_ANTRAG.UStVAn_Währungscode = SQL.DLookup("Währungscode", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL")
|
|
Else
|
|
USTV_ANTRAG.UStVAn_Währungscode = cbxWahrung.SelectedItem.Text
|
|
End If
|
|
|
|
If Not (IsDate(txtVon._value) AndAlso IsDate(txtBis._value)) Then
|
|
MsgBox("Zeitraum muss gesetzt werden!")
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
'check if already existing
|
|
Dim anzUSTVA = CInt((New SQL).getValueTxtBySql("Select count(*) from tblUStVAntrag where UStvAN_KuNr = " & KundenNr & " and (isnull(UStVAn_AntragArt,'MWST') = '" & cboAntragArt._value & "' or UStVAn_AntragArt = '') and UStVAn_LandNr = " & USTV_ANTRAG.UStVAn_LandNr & "
|
|
AND not((cast(UStVAn_ReDatvon as date) > '" & CDate(txtVon._value).ToShortDateString & "' or cast(UStVAn_ReDatBis as date) < '" & CDate(txtBis._value).ToShortDateString & "'))", "FMZOLL"))
|
|
|
|
If anzUSTVA > 0 Then
|
|
If Not vbYes = MsgBox("Es existiert bereits mind. ein " & cboAntragArt._value & " -Eintrag in diesem Zeitbereich von " & ADR.Name_1 & " für " & cbxLand.SelectedItem.ToString & vbNewLine & "Trotzdem Antrag speichern?", vbYesNoCancel) Then Exit Sub
|
|
End If
|
|
|
|
|
|
USTV_ANTRAG.UStVAn_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_ANTRAG.UStVAn_Zeitstempel = Now()
|
|
|
|
getValue(USTV_ANTRAG, ADR, FIRMA)
|
|
|
|
Me.UStVAn_ID = USTV_ANTRAG.SAVEID()
|
|
|
|
VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen_USTVA(USTV_ANTRAG.UStVAn_ID)
|
|
|
|
init()
|
|
|
|
End If
|
|
|
|
initScanUSTVA()
|
|
|
|
End Sub
|
|
|
|
Sub initPosition(UStVPo_ID)
|
|
If UStVPo_ID > 0 Then
|
|
Dim ANTR_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen(USTV_ANTRAG.UStVAn_ID, UStVPo_ID)
|
|
|
|
Dim ANTR_Leistender As New VERAG_PROG_ALLGEMEIN.cUStVLeistender(ANTR_POS.UStVPo_Leistender)
|
|
If Not IsDBNull(ANTR_POS.UStVPo_LeistenderId) AndAlso ANTR_POS.UStVPo_LeistenderId > 0 Then
|
|
ANTR_Leistender = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(ANTR_POS.UStVPo_LeistenderId)
|
|
End If
|
|
|
|
UstCntlUSTV_AntragPosition1.Enabled = True
|
|
UstCntlUSTV_AntragPosition1.setValues(USTV_ANTRAG.UStVAn_KuNr, ANTR_POS, Antrag_LandKz, ANTR_Leistender, atez_api)
|
|
Else
|
|
UstCntlUSTV_AntragPosition1.reset()
|
|
UstCntlUSTV_AntragPosition1.Enabled = False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Sub initErstsattungsPosition(UStVEr_ID)
|
|
If UStVEr_ID > 0 Then
|
|
Dim ANTR_ERSTATTUNG As New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen(USTV_ANTRAG.UStVAn_ID, UStVEr_ID)
|
|
UstCntlUSTV_AntragErstattungen1.Enabled = True
|
|
UstCntlUSTV_AntragErstattungen1.setValues(USTV_ANTRAG, ANTR_ERSTATTUNG, USTV_ANTRAG.UStVAn_KuNr)
|
|
Else
|
|
UstCntlUSTV_AntragErstattungen1.reset()
|
|
UstCntlUSTV_AntragErstattungen1.Enabled = False
|
|
UstCntlUSTV_AntragErstattungen1.setValues(USTV_ANTRAG)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvUSTVPositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvUSTVPositionen.SelectionChanged
|
|
|
|
|
|
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
|
|
initPosition(dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID").Value)
|
|
calcSumme()
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvErstattungspositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvErstattungspositionen.SelectionChanged
|
|
If dgvErstattungspositionen.SelectedRows.Count > 0 Then
|
|
initErstsattungsPosition(dgvErstattungspositionen.SelectedRows(0).Cells("UStVEr_ID").Value)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub UstCntlUSTV_AntragPosition1_EV_NEXT() Handles UstCntlUSTV_AntragPosition1.EV_NEXT
|
|
|
|
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
|
|
If dgvUSTVPositionen.RowCount > dgvUSTVPositionen.SelectedRows(0).Index + 1 Then
|
|
UstCntlUSTV_AntragPosition1.Enabled = True
|
|
Dim selIndex = dgvUSTVPositionen.SelectedRows(0).Index + 1
|
|
dgvUSTVPositionen.ClearSelection()
|
|
dgvUSTVPositionen.Rows(selIndex).Selected = True
|
|
dgvUSTVPositionen.CurrentCell = dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID")
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub UstCntlUSTV_AntragErstattungen1_EV_NEXT() Handles UstCntlUSTV_AntragErstattungen1.EV_NEXT
|
|
|
|
|
|
If dgvErstattungspositionen.SelectedRows.Count > 0 Then
|
|
If dgvErstattungspositionen.RowCount > dgvErstattungspositionen.SelectedRows(0).Index + 1 Then
|
|
UstCntlUSTV_AntragErstattungen1.Enabled = True
|
|
Dim selIndex = dgvErstattungspositionen.SelectedRows(0).Index + 1
|
|
dgvErstattungspositionen.ClearSelection()
|
|
dgvErstattungspositionen.Rows(selIndex).Selected = True
|
|
dgvErstattungspositionen.CurrentCell = dgvErstattungspositionen.SelectedRows(0).Cells("UStVEr_ID")
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
Private Sub UstCntlUSTV_AntragPosition1_EV_PREV() Handles UstCntlUSTV_AntragPosition1.EV_PREV
|
|
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
|
|
If dgvUSTVPositionen.SelectedRows(0).Index > 0 Then
|
|
UstCntlUSTV_AntragPosition1.Enabled = True
|
|
Dim selIndex = dgvUSTVPositionen.SelectedRows(0).Index - 1
|
|
dgvUSTVPositionen.ClearSelection()
|
|
dgvUSTVPositionen.Rows(selIndex).Selected = True
|
|
dgvUSTVPositionen.CurrentCell = dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID")
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub UstCntlUSTV_AntragErstattungen1_EV_PREV() Handles UstCntlUSTV_AntragErstattungen1.EV_PREV
|
|
If dgvErstattungspositionen.SelectedRows.Count > 0 Then
|
|
If dgvErstattungspositionen.SelectedRows(0).Index > 0 Then
|
|
UstCntlUSTV_AntragErstattungen1.Enabled = True
|
|
Dim selIndex = dgvErstattungspositionen.SelectedRows(0).Index - 1
|
|
dgvErstattungspositionen.ClearSelection()
|
|
dgvErstattungspositionen.Rows(selIndex).Selected = True
|
|
dgvErstattungspositionen.CurrentCell = dgvErstattungspositionen.SelectedRows(0).Cells("UStVEr_ID")
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub ustCntlUSTV_AntragPosition_KeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown
|
|
If posTabisSelected = True Then
|
|
If e.KeyValue = Keys.PageDown Then
|
|
UstCntlUSTV_AntragPosition1_EV_NEXT()
|
|
End If
|
|
If e.KeyValue = Keys.PageUp Then
|
|
UstCntlUSTV_AntragPosition1_EV_PREV()
|
|
End If
|
|
Else
|
|
If e.KeyValue = Keys.PageDown Then
|
|
UstCntlUSTV_AntragErstattungen1_EV_NEXT()
|
|
End If
|
|
If e.KeyValue = Keys.PageUp Then
|
|
UstCntlUSTV_AntragErstattungen1_EV_PREV()
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub frmMDM_USTVAntrag_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
|
|
|
If IsNumeric(txtAbfNr.Text) AndAlso CInt(txtAbfNr.Text) > 0 Then btnAbfertigungsNrVergeben.Visible = False
|
|
|
|
Me.Top = 0
|
|
Me.Height = Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height
|
|
End Sub
|
|
|
|
Private Sub cboStatus_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboStatus.SelectedIndexChanged
|
|
For Each b In FlowLayoutPanel.Controls
|
|
b.visible = False
|
|
Next
|
|
|
|
|
|
Panel5.BackColor = Color.FromArgb(255, 255, 192)
|
|
Panel5.ForeColor = Color.Black
|
|
Select Case cboStatus._value
|
|
Case cUSTVStatus.STAT_INBEARBEITUNG
|
|
btnEingereicht.Visible = True
|
|
btnStorno.Visible = True
|
|
btnUnvollst.Visible = True
|
|
Panel5.BackColor = Color.LightGray
|
|
Case cUSTVStatus.STAT_UNVOLLSTAENDIG
|
|
btnBearb.Visible = True
|
|
btnEingereicht.Visible = True
|
|
btnStorno.Visible = True
|
|
Panel5.BackColor = Color.FromArgb(255, 192, 128)
|
|
Case cUSTVStatus.STAT_EINGEREICHT
|
|
'btnBearb.Visible = True
|
|
btnStorno.Visible = True
|
|
btnTeilerstattung.Visible = True
|
|
btnErstettel.Visible = True
|
|
btnAbgelehnt.Visible = True
|
|
btnNachforderung.Visible = True
|
|
Panel5.BackColor = Color.SteelBlue
|
|
Panel5.ForeColor = Color.White
|
|
|
|
If USTV_ANTRAG.UStVAn_AntragEingereichtAm Is Nothing OrElse Not IsDate(USTV_ANTRAG.UStVAn_AntragEingereichtAm) Then
|
|
|
|
Dim f As New frmDatumsabfrage("Bitte Einreichdatum eingeben", False)
|
|
f.ShowDialog()
|
|
If f.DialogResult = DialogResult.OK Then
|
|
Dim pruefdatum As Date = CDate(f.Datum)
|
|
USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
USTV_ANTRAG.UStVAn_AntragEingereichtAm = pruefdatum
|
|
USTV_ANTRAG.SAVE()
|
|
cboStatus.changeItem(cUSTVStatus.STAT_EINGEREICHT)
|
|
init()
|
|
End If
|
|
End If
|
|
|
|
|
|
Case cUSTVStatus.STAT_ABGELEHNT
|
|
btnBearb.Visible = True
|
|
btnEingereicht.Visible = True
|
|
btnUnvollst.Visible = True
|
|
btnStorno.Visible = True
|
|
Panel5.BackColor = Color.Red
|
|
Panel5.ForeColor = Color.White
|
|
Case cUSTVStatus.STAT_NACHFORDERUNG
|
|
btnBearb.Visible = True
|
|
btnEingereicht.Visible = True
|
|
'btnUnvollst.Visible = True
|
|
btnStorno.Visible = True
|
|
Panel5.BackColor = Color.FromArgb(255, 192, 128)
|
|
Case cUSTVStatus.STAT_ERSTATTET
|
|
' btnStorno.Visible = True
|
|
Panel5.BackColor = Color.Green
|
|
Panel5.ForeColor = Color.White
|
|
lblAntragAbgeschlossen.Visible = True
|
|
lblAntragAbgeschlossen.ForeColor = Color.DarkGreen
|
|
Case cUSTVStatus.STAT_TEILERSTATTET
|
|
' btnErstettel.Visible = True
|
|
' btnStorno.Visible = True
|
|
Panel5.BackColor = Color.Green
|
|
Panel5.ForeColor = Color.White
|
|
lblAntragAbgeschlossen.Visible = True
|
|
lblAntragAbgeschlossen.ForeColor = Color.DarkGreen
|
|
Case cUSTVStatus.STAT_STORNO
|
|
' btnStorno.Visible = True
|
|
Panel5.BackColor = Color.IndianRed
|
|
Panel5.ForeColor = Color.White
|
|
lblAntragAbgeschlossen.Visible = True
|
|
lblAntragAbgeschlossen.ForeColor = Color.IndianRed
|
|
End Select
|
|
|
|
cboStatus.BackColor = Panel5.BackColor
|
|
cboStatus.ForeColor = Panel5.ForeColor
|
|
|
|
Label5.BackColor = Panel5.BackColor
|
|
Label5.ForeColor = Panel5.ForeColor
|
|
Label6.ForeColor = Panel5.ForeColor
|
|
Label6.ForeColor = Panel5.ForeColor
|
|
End Sub
|
|
|
|
Private Sub btnBearb_Click(sender As Object, e As EventArgs) Handles btnBearb.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_INBEARBEITUNG)
|
|
End Sub
|
|
|
|
Private Sub btnTeilerstattung_Click(sender As Object, e As EventArgs) Handles btnTeilerstattung.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_TEILERSTATTET)
|
|
End Sub
|
|
|
|
Private Sub btnUnvollst_Click(sender As Object, e As EventArgs) Handles btnUnvollst.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_UNVOLLSTAENDIG)
|
|
End Sub
|
|
|
|
Private Sub btnEingereicht_Click(sender As Object, e As EventArgs) Handles btnEingereicht.Click
|
|
|
|
If USTV_ANTRAG.UStVAn_AntragEingereichtAm Is Nothing OrElse Not IsDate(USTV_ANTRAG.UStVAn_AntragEingereichtAm) Then
|
|
|
|
Dim f As New frmDatumsabfrage("Bitte Einreichdatum eingeben", False)
|
|
f.ShowDialog()
|
|
If f.DialogResult = DialogResult.OK Then
|
|
Dim pruefdatum As Date = CDate(f.Datum)
|
|
USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
USTV_ANTRAG.UStVAn_AntragEingereichtAm = pruefdatum
|
|
USTV_ANTRAG.SAVE()
|
|
cboStatus.changeItem(cUSTVStatus.STAT_EINGEREICHT)
|
|
init()
|
|
End If
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btnAbgelehnt_Click(sender As Object, e As EventArgs) Handles btnAbgelehnt.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_ABGELEHNT)
|
|
End Sub
|
|
|
|
Private Sub btnNachforderung_Click(sender As Object, e As EventArgs) Handles btnNachforderung.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_NACHFORDERUNG)
|
|
End Sub
|
|
|
|
Private Sub btnErstettel_Click(sender As Object, e As EventArgs) Handles btnErstettel.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_ERSTATTET)
|
|
End Sub
|
|
|
|
Private Sub btnStorno_Click(sender As Object, e As EventArgs) Handles btnStorno.Click
|
|
cboStatus.changeItem(cUSTVStatus.STAT_STORNO)
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnNeuerEintrag.Click
|
|
UstCntlUSTV_AntragPosition1.reset()
|
|
UstCntlUSTV_AntragPosition1.UStV_POS = New cUStVPositionen(UStVAn_ID)
|
|
UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
UstCntlUSTV_AntragPosition1.Enabled = True
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnEintragloeschen.Click
|
|
|
|
If dgvUSTVPositionen.Rows.Count = 0 Then Exit Sub
|
|
|
|
If vbYes = MsgBox("Möchten Sie den Eintrag wirklich löschen?", vbYesNoCancel) Then
|
|
|
|
If UstCntlUSTV_AntragPosition1.cbxAPI IsNot Nothing AndAlso UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value IsNot Nothing Then
|
|
|
|
If UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value = -1 OrElse UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId_loeschbar Then 'nur Dokumente löschen, die nicht über Schnittstellen geladen wurden!
|
|
|
|
If UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId < 0 Then
|
|
|
|
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID & "_" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID, "SONSTIGE", USTV_ANTRAG.UStVAn_KuNr)
|
|
|
|
If DS IsNot Nothing Then
|
|
DS.DELETE_COMPLETE()
|
|
End If
|
|
|
|
ElseIf UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId > 0 Then
|
|
|
|
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId)
|
|
|
|
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
|
|
DS.DELETE_COMPLETE()
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
Dim Leistungsbezeichnung = ""
|
|
If UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value = 3 Then Leistungsbezeichnung = UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_Leistungsbezeichnung
|
|
|
|
If setArchiv(UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr, Leistungsbezeichnung) Then
|
|
If UstCntlUSTV_AntragPosition1.UStV_POS.DELETE(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID, UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ID) Then
|
|
reorderUSTVAPositions(UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID)
|
|
End If
|
|
init()
|
|
End If
|
|
End If
|
|
|
|
UstCntlUSTV_AntragPosition1.Enabled = False
|
|
|
|
End If
|
|
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
|
|
|
|
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
|
|
excelAuswertung()
|
|
|
|
ElseIf item.Name = "mail" Then
|
|
mailmitExcelauswertung()
|
|
|
|
ElseIf item.Name = "offeneAntraege" Then
|
|
|
|
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
|
|
|
|
Dim frm As New frmUSTVoffeneAntraege(CDate(USTV_ANTRAG.UStVAn_ReDatVon), CDate(USTV_ANTRAG.UStVAn_ReDatBis), USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_Name)
|
|
frm.Show()
|
|
|
|
Else
|
|
MsgBox("Funktion nicht implementiert!")
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Function setArchiv(SchnittstellenNr As Integer, RechnungsDatum As Date, RechnungsNr As String, Leistungsbez As String) As Boolean
|
|
|
|
|
|
Dim updated As Boolean = False
|
|
Dim sqlText = ""
|
|
Dim test As Boolean = False
|
|
|
|
Select Case SchnittstellenNr
|
|
|
|
Case 1 'VERAG 360 GmbH; 4975 Suben
|
|
'UStV-Antragsnummer im Buchungssatz löschen.
|
|
sqlText = "Update tblTrdinInvoice SET tblTrdinInvoice.UStVAn_ID = NULL WHERE tblTrdinInvoice.Rechnungsdatum = '" & RechnungsDatum.ToShortDateString & "' And tblTrdinInvoice.Rechnungsnummer = " & RechnungsNr
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
Case 2 ' UStV-Antragsnummer im IDSDieseldatenArchiv löschen 'IDS alte Schnittstelle - OK
|
|
sqlText = "UPDATE tblDieselArchiv SET tblDieselArchiv.UStVAn_ID = NULL FROM tblDieselArchiv INNER JOIN tbl_IDS_Länder ON tblDieselArchiv.[Outlet Country Code] = tbl_IDS_Länder.OutletCountryCode WHERE (((tblDieselArchiv.[Year Month Day])='" & RechnungsDatum.ToShortDateString & "') AND ((ISNULL([OBO Number],ISNULL([VR Number],[Payment summary number])))='" & RechnungsNr & "') AND ((tblDieselArchiv.KdNrVERAG)=" & USTV_ANTRAG.UStVAn_KuNr & ") AND ((tbl_IDS_Länder.LandNr)=" & USTV_ANTRAG.UStVAn_LandNr & "))"
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
Case 3 'Telepass ' UStV-Antragsnummer in tblMautITArchiv löschen.- NICHT MEHR AKTIV
|
|
sqlText = "UPDATE tblMautITArchiv SET tblMautITArchiv.UStVAn_ID = NULL WHERE tblMautITArchiv.Verrechnungsdatum='" & RechnungsDatum.ToShortDateString & "' AND tblMautITArchiv.Code_Adressat_des_Kontoauszugs='" & RechnungsNr & "' AND ([Betrag_mit_Preisnachlass_oder_Preisnachlass]-[Nicht_mehrwertsteuerpflichtiger_Betrag])<>0"
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
|
|
Case 4 'MS Europe BV; GC Rijswijk alte Schnittstelle UStV-Antragsnummer in tblMSETransactionsArchiv löschen. - OK
|
|
sqlText = "UPDATE tblMSETransactionsArchiv SET tblMSETransactionsArchiv.UStVAn_ID = NULL FROM tblMSETransactionsArchiv INNER JOIN Adressen ON tblMSETransactionsArchiv.[Customer ID] = Adressen.MSEKundenNr WHERE (((tblMSETransactionsArchiv.[Invoice Date])='" & RechnungsDatum.ToShortDateString & "') AND ((tblMSETransactionsArchiv.[Invoice ID])='" & RechnungsNr & "') AND ((tblMSETransactionsArchiv.[Specification Page])='" & Leistungsbez & "') AND ((Adressen.AdressenNr)=" & USTV_ANTRAG.UStVAn_KuNr & ") AND ((tblMSETransactionsArchiv.[Transaction Country])='" & Antrag_LandKz & "') AND ((tblMSETransactionsArchiv.[Original Currency])='" & USTV_ANTRAG.UStVAn_Währungscode & "') AND ((tblMSETransactionsArchiv.[Original VAT Amount])<>0))"
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
Case 5 'UNIONTANK - UTA - OK
|
|
' UStV-Antragsnummer in tblUTAArchiv löschen.
|
|
sqlText =
|
|
"UPDATE tblUTAArchiv SET tblUTAArchiv.UStVAn_ID = NULL FROM tblUTAArchiv INNER JOIN Adressen ON tblUTAArchiv.Kundennummer = Adressen.UTAKundenNr
|
|
WHERE tblUTAArchiv.Rechnungsdatum='" & RechnungsDatum.ToShortDateString & "'
|
|
AND tblUTAArchiv.Rechnungsnummer_pro_Lieferland=" & RechnungsNr & "
|
|
AND tblUTAArchiv.Lieferland='" & VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO3LandFromLandNr(USTV_ANTRAG.UStVAn_LandNr) & "'
|
|
AND tblUTAArchiv.Lieferlandwährung_ISO='" & USTV_ANTRAG.UStVAn_Währungscode & "'
|
|
AND Adressen.AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & "
|
|
AND ([Gesamtbetrag_Brutto_in_Lieferlandwährung]-[Gesamtbetrag_Netto_in_Lieferlandwährung])<>0"
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
Case 6, 11 'PLOSE-alte Logik -> aus Transaktionen und neue Logik -> aus Rechnungsdaten (immer beide Ausführen!)
|
|
|
|
sqlText = "Update [tblPLOSE_Details]
|
|
set plose_Archiv=0, [plose_ArchiviertDatum]=NULL, UStVAn_ID = NULL
|
|
From [tblPLOSE_Details] INNER Join Adressen On PLOSEKundenNr=plose_POLSEKundennummer
|
|
INNER Join [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode]
|
|
WHERE cast(plose_RechnungsDatum As Date) = '" & RechnungsDatum.ToShortDateString & "' And AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & " AND plose_RechnungsNr = '" & RechnungsNr & "'
|
|
And plose_LieferantCode IN (0,1,7,9) "
|
|
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
|
|
sqlText = "Update [tblPLOSE_Inv_Data]
|
|
set plInv_Archiv=0, [plInv_ArchiviertDatum]=NULL, plInv_UStVAn_ID = NULL
|
|
From [tblPLOSE_Inv_Data] INNER Join Adressen On PLOSEKundenNr=plInv_PLOSEKundennummer
|
|
WHERE cast(plInv_SupplierRechnungsDatum As Date) = '" & RechnungsDatum.ToShortDateString & "' And AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr & " AND [plInv_SupplierRechnungsNr] = '" & RechnungsNr & "'"
|
|
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
Case 7 'RMC - neue Schnittstelle - OK
|
|
sqlText = "Update [tblRMCImport] Set rmc_archiv=0, [rmc_archiviertDatum] = NULL, UStVAn_ID = NULL FROM [tblRMCImport] inner join adressen on adressen.WölflKundenNr = tblRMCImport.rmc_kdNr Where cast(rmc_reDatum as date) = '" & RechnungsDatum.ToShortDateString & "' And rmc_reNr = " & RechnungsNr & " AND adressen.AdressenNr=" & USTV_ANTRAG.UStVAn_KuNr
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
Case 8, 12 'IDS neue Schnittstelle - OK
|
|
sqlText = "update tblIDSTransactionsNew set UStVAn_ID = NULL
|
|
From tblIDSTransactionsNew
|
|
INNER Join tbl_IDS_Länder
|
|
On tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode
|
|
Where
|
|
tblIDSTransactionsNew.[YearMonthDay] = '" & RechnungsDatum.ToShortDateString & "' And ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) = '" & RechnungsNr & "'
|
|
And tblIDSTransactionsNew.KdNrVERAG = " & USTV_ANTRAG.UStVAn_KuNr & "
|
|
And tbl_IDS_Länder.[Lieferland_ISO2] = '" & Antrag_LandKz & "'"
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
Case 9 'MSE neue Schnitttelle - OK
|
|
If RechnungsNr.ToString.Length >= 15 Then
|
|
Dim invoiceNo = RechnungsNr.ToString.Substring(0, 7)
|
|
Dim customerNo = RechnungsNr.ToString.Substring(10, 5)
|
|
sqlText = "UPDATE [tblMSEInvoices] set UStVAn_ID = NULL, archiv = 0, archiviertDatum = NULL FROM [tblMSEInvoices] inner join [tblMSECustomers] on tblMSEInvoices.customer_number = tblMSECustomers.customer_id WHERE cast(invoice_date as date) = '" & RechnungsDatum.ToShortDateString & "' And invoice_id = " & invoiceNo & " And tblMSECustomers.partner_customer_number= " & USTV_ANTRAG.UStVAn_KuNr & " And country = '" & Antrag_LandKz & "' and tblMSEInvoices.customer_number = " & customerNo
|
|
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
End If
|
|
Case 10 ' UTA neue Schnittstelle - OK
|
|
sqlText = "UPDATE [tblUTAImportNew] set UStVAn_ID = NULL, archiv = 0, archiviertDatum = NULL from [tblUTAImportNew] INNER JOIN Adressen ON [tblUTAImportNew].Kundennummer = Adressen.UTAKundenNr WHERE cast(Rechnungsdatum as date) = '" & RechnungsDatum.ToShortDateString & "' And Rechnungsnummer_pro_Lieferland = " & RechnungsNr & " And Adressen.AdressenNr= " & USTV_ANTRAG.UStVAn_KuNr & " AND Lieferland_ISO2 = '" & Antrag_LandKz & "'"
|
|
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
|
|
|
|
|
|
|
|
End Select
|
|
|
|
If (SchnittstellenNr > 0 And SchnittstellenNr < 13) Then
|
|
If Not updated Then
|
|
If Not vbYes = MsgBox("Fehler beim zurücksetzen der USTVA-ID!" & vbNewLine & "Möchten Sie den Eintrag trotzdem löschen?", vbYesNoCancel) Then
|
|
Return updated
|
|
Else
|
|
Return True
|
|
End If
|
|
Else
|
|
|
|
Return updated
|
|
End If
|
|
Else
|
|
Return True
|
|
|
|
End If
|
|
|
|
|
|
End Function
|
|
|
|
|
|
Private Function excelAuswertung(ByRef Optional 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, 'FR' as CountryOfRefund ,'EUR' as Currency ,replace([UStVPo_Leistender],'FR','') 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
|
|
Where [tblUStVPositionen].UStVAn_ID ='" & UStVAn_ID & "' ORDER BY UStVPo_ID"
|
|
|
|
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
|
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)
|
|
Return True
|
|
Else
|
|
If feedback Then MsgBox("keine Daten vorhanden!")
|
|
Return False
|
|
End If
|
|
|
|
End Function
|
|
|
|
Private Sub mailmitExcelauswertung()
|
|
|
|
Try
|
|
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
|
|
|
|
Dim subject As String = ""
|
|
subject &= IIf(USTV_ANTRAG.UStVAn_Name <> "", USTV_ANTRAG.UStVAn_Name & "_", "")
|
|
subject &= IIf(USTV_ANTRAG.UStVAn_LandKz <> "", USTV_ANTRAG.UStVAn_LandKz & "_", "")
|
|
subject &= IIf(USTV_ANTRAG.UStVAn_ReDatVon IsNot Nothing AndAlso USTV_ANTRAG.UStVAn_ReDatBis IsNot Nothing, CDate(USTV_ANTRAG.UStVAn_ReDatVon).ToShortDateString & "-" & CDate(USTV_ANTRAG.UStVAn_ReDatBis).ToShortDateString, "")
|
|
|
|
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", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID) & "</div>"
|
|
|
|
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
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvUSTVPositionen_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvUSTVPositionen.CellContentDoubleClick
|
|
|
|
Try
|
|
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
|
|
|
|
Dim pdf As String = ""
|
|
pdf = func.getPDF(dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_SchnittstellenNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReDat").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_daId").Value, False, False, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
|
|
|
|
If IO.File.Exists(pdf) Then
|
|
Process.Start(pdf)
|
|
End If
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
'Private Function getDaID_OLD(SchnittstellenNr, reDat, reNr)
|
|
' Dim da_id = -1
|
|
|
|
' Select Case If(SchnittstellenNr, -1)
|
|
' Case 1 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & reDat & "' and Rechnungsausgang.RechnungsNr='" & reNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL",,, -1)
|
|
' 'Case 6, 0 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and isnull(plose_RechnungsNr,plInv_SupplierRechnungsNr)='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
|
|
' Case 6, 0, 11 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [plInv_daId] FROM [tblPLOSE_Inv_Data] where plInv_SupplierRechnungsDatum='" & reDat & "' and plInv_SupplierRechnungsNr='" & reNr & "' and plInv_SupplierCountry='" & Antrag_LandKz & "' AND [plInv_daId] is not null", "FMZOLL",,, -1)
|
|
' Case 4, 9 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblMSEInvoices] as inv inner join tblMSECustomers on inv.customer_number = customer_id where invoice_date='" & reDat & "' and country='" & Antrag_LandKz & "' AND partner_customer_number = " & USTV_ANTRAG.UStVAn_KuNr & " AND daId is not null", "FMZOLL",,, -1)
|
|
' Case 10 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblUTAImportNew] where Rechnungsdatum='" & reDat & "' and Abrechnungsnummer='" & reNr & "' and Lieferland_ISO2='" & Antrag_LandKz & "' AND daId is not null", "FMZOLL",,, -1)
|
|
' Case 7 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & reDat & "' and rmc_reNr='" & reNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1)
|
|
' Case 8 : da_id = SQL.getValueTxtBySql("SELECT TOP(1) tblIDSInvoicesNew.daId FROM [tblIDSTransactionsNew] INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode LEFT JOIN tblIDSInvoicesNew on tblIDSInvoicesNew.CustomerCode = tblIDSTransactionsNew.CustomerCode and tblIDSInvoicesNew.Invoicenumber = Paymentsummarynumber where tblIDSTransactionsNew.[YearMonthDay] ='" & reDat & "' AND ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) ='" & reNr & "' and tbl_IDS_Länder.Lieferland_ISO2='" & Antrag_LandKz & "' AND tblIDSInvoicesNew.daId is not null", "FMZOLL",,, -1)
|
|
' End Select
|
|
|
|
' Return da_id
|
|
|
|
'End Function
|
|
|
|
Private Sub cbxLand_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxLand.SelectedValueChanged
|
|
|
|
lblLand.Text = IIf(cbxLand.SelectedItem IsNot Nothing, cbxLand.SelectedItem.Text, "")
|
|
|
|
setinfofields()
|
|
|
|
End Sub
|
|
|
|
Private Sub picPDF_Click(sender As Object, e As EventArgs) Handles picPDF.Click
|
|
|
|
|
|
If dgvUSTVPositionen.SelectedRows.Count = 0 Then Exit Sub
|
|
|
|
Try
|
|
|
|
Dim list As New List(Of String)
|
|
|
|
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
|
|
Dim nummerierung As Boolean = False
|
|
|
|
Select Case MsgBox("Soll eine Nummerierung auf den PDF Dokumenten angegeben werden?", vbYesNoCancel)
|
|
Case vbYes : nummerierung = True
|
|
Case vbNo : nummerierung = True
|
|
Case Else : Exit Sub
|
|
End Select
|
|
|
|
For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index)
|
|
|
|
Dim pdf As String = ""
|
|
pdf = func.getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1), True, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
|
|
|
|
If pdf <> "" Then list.Add(pdf)
|
|
|
|
Next
|
|
End If
|
|
|
|
If list.Count = 0 Then Me.Cursor = Cursors.Default : Exit Sub
|
|
|
|
If list.Count > 1 Then
|
|
Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("RG_" & Now.ToString("ddMMyyyyHHmmss") & ".pdf", ".pdf", False, False)
|
|
If FormularManagerNEU.MergePdfFiles(list, pathPDF) Then
|
|
Process.Start(pathPDF)
|
|
End If
|
|
Else
|
|
Dim PDFFile As String = ""
|
|
PDFFile = list(0)
|
|
|
|
Process.Start(PDFFile)
|
|
|
|
End If
|
|
|
|
|
|
Me.Cursor = Cursors.Default
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
Me.Cursor = Cursors.Default
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvUSTVPositionen_Sorted(sender As Object, e As EventArgs) Handles dgvUSTVPositionen.Sorted
|
|
|
|
For Each r As DataGridViewRow In dgvUSTVPositionen.Rows
|
|
|
|
Dim da_id
|
|
If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then
|
|
da_id = r.Cells("UStVPo_daId").Value
|
|
Else
|
|
da_id = func.getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Antrag_LandKz, USTV_ANTRAG)
|
|
End If
|
|
If da_id > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
|
|
Next
|
|
|
|
End Sub
|
|
|
|
|
|
'Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected, LandKZ, USTVA) As String
|
|
|
|
|
|
' Dim schnnittstellenNr = schnittstellenNr
|
|
' Dim dsID
|
|
|
|
' If Not IsDBNull(daId) AndAlso IsNumeric(daId) AndAlso daId > 0 Then
|
|
' dsID = daId
|
|
' Else
|
|
' dsID = func.getDaID_OLD(schnnittstellenNr, ReDat, ReNr, LandKZ, USTVA)
|
|
|
|
' End If
|
|
|
|
' If dsID < 0 Then Return ""
|
|
|
|
' 'Anschrift Nummerierung:
|
|
' Dim x = 100
|
|
' Dim y = 10
|
|
' Dim width = 300
|
|
' Dim height = 10
|
|
' Dim mSize = 10
|
|
' Dim mFont = ""
|
|
|
|
' Select Case schnnittstellenNr
|
|
' Case 1
|
|
' If dsID > 0 Then
|
|
' Me.Cursor = Cursors.WaitCursor
|
|
' Dim path As String
|
|
' cFakturierung.doRechnungsDruck_SRorER(dsID,, False, 4, path)
|
|
|
|
' If nummierung > 0 Then
|
|
|
|
' Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path)
|
|
' PdfReader.unethicalreading = True
|
|
|
|
' Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
|
|
' Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
|
|
|
|
' For page As Integer = 1 To pdfReader.NumberOfPages
|
|
' listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
|
|
' Next
|
|
|
|
' pdfReader.Close()
|
|
|
|
' Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(path, listTowrite, , , , ,)
|
|
' Return PdfTmp
|
|
|
|
' Else
|
|
' Return path
|
|
' End If
|
|
|
|
|
|
' End If
|
|
|
|
' Case 8
|
|
|
|
' Me.Cursor = Cursors.WaitCursor
|
|
' Dim ds As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
|
|
|
|
' Dim path_src As String = ds.OPEN_SINGLE(False)
|
|
' If path_src = "" Then Return ""
|
|
|
|
' Try
|
|
|
|
' Dim fi As New System.IO.DirectoryInfo(path_src)
|
|
' Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path_src)
|
|
|
|
' Dim TMP_Path_New = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(fi.Name, fi.Extension,, False, "IDS-Rechnungen")
|
|
' Dim srcDoc As New itextsharp.text.Document()
|
|
' Dim PdfCopyProvider As New itextsharp.text.pdf.PdfCopy(srcDoc, New FileStream(TMP_Path_New, System.IO.FileMode.Create))
|
|
' PdfCopyProvider.SetFullCompression()
|
|
' srcDoc.Open()
|
|
' PdfReader.unethicalreading = True
|
|
' Dim pages As New List(Of Integer)()
|
|
|
|
' For page As Integer = 1 To pdfReader.NumberOfPages
|
|
|
|
' Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy()
|
|
' Dim currentpagetext As String = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy)
|
|
' Dim searchtext As String = ReNr
|
|
' Dim impPage As itextsharp.text.pdf.PdfImportedPage = Nothing
|
|
|
|
' If (currentpagetext.Contains(searchtext)) Then
|
|
|
|
' If page > pdfReader.NumberOfPages Then
|
|
' MsgBox("Seitenanzahl überschritten!")
|
|
' srcDoc.Close() : pdfReader.Close()
|
|
' Return False
|
|
' End If
|
|
' Try
|
|
|
|
' impPage = PdfCopyProvider.GetImportedPage(pdfReader, page)
|
|
' ' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
|
|
' PdfCopyProvider.SetPageSize(New itextsharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, pdfReader.GetPageRotation(page)))
|
|
' ' ----- PDF Seite in das neue Dokument einfügen
|
|
' If impPage IsNot Nothing Then PdfCopyProvider.AddPage(impPage)
|
|
' Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
' End Try
|
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
' Next
|
|
|
|
' srcDoc.Close()
|
|
' pdfReader.Close()
|
|
|
|
' If nummierung > 0 Then
|
|
|
|
' Dim pdfReadernNew As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(TMP_Path_New)
|
|
' pdfReadernNew.unethicalreading = True
|
|
|
|
' Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
|
|
' Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
|
|
|
|
' For page As Integer = 1 To pdfReadernNew.NumberOfPages
|
|
' listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y - 6, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
|
|
' Next
|
|
|
|
' pdfReader.Close()
|
|
|
|
' Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(TMP_Path_New, listTowrite, , , , ,)
|
|
' Return PdfTmp
|
|
' Else
|
|
|
|
|
|
' Return TMP_Path_New
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
' Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
' End Try
|
|
' Case Else
|
|
' If dsID > 0 Then
|
|
' Me.Cursor = Cursors.WaitCursor
|
|
' Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
|
|
' If nummierung > 0 Then
|
|
|
|
' 'wenn PDF nicht beschreibbar, dann mittels Stamp!
|
|
' If PDFisProtected Then
|
|
|
|
' Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA")
|
|
|
|
' Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
|
|
' PdfReader.unethicalreading = True
|
|
|
|
' Dim fs = New FileStream(tempPathNew, FileMode.Create, FileAccess.Write, FileShare.None)
|
|
' Dim stamper = New PdfStamper(pdfReader, fs)
|
|
|
|
' For page As Integer = 1 To pdfReader.NumberOfPages
|
|
' Dim canvas As PdfContentByte = stamper.GetOverContent(page)
|
|
' Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED)
|
|
' canvas.SetFontAndSize(bf, 12)
|
|
' canvas.BeginText()
|
|
|
|
' 'The origin (0,0) is at the bottom-left corner of the page and represent coordinates in points!!!!!
|
|
' Dim _height = pdfReader.GetPageSizeWithRotation(page).GetTop(25) 'oberer Rand
|
|
' Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte
|
|
|
|
' canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, _width, _height, 0)
|
|
' 'canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0)
|
|
|
|
' canvas.EndText()
|
|
' 'listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
|
|
' Next
|
|
' stamper.Close()
|
|
' pdfReader.Close()
|
|
|
|
' Return tempPathNew
|
|
|
|
' Else
|
|
|
|
|
|
' Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
|
|
|
|
' Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
|
|
' Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
|
|
|
|
' For page As Integer = 1 To pdfReader.NumberOfPages
|
|
' listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
|
|
' Next
|
|
|
|
' pdfReader.Close()
|
|
|
|
' Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,)
|
|
' Return PdfTmp
|
|
|
|
' End If
|
|
|
|
|
|
' Else
|
|
|
|
' Return DS.GET_TOP1_PATH
|
|
' End If
|
|
|
|
|
|
|
|
' End If
|
|
' End Select
|
|
|
|
|
|
'End Function
|
|
|
|
Private Sub reorderUSTVAPositions(UStVAn_ID As Integer)
|
|
|
|
If UStVAn_ID < 0 Then Exit Sub
|
|
|
|
|
|
Dim dtUSTVA As DataTable = SQL.loadDgvBySql("SELECT tblUStVPositionen.UStVPo_ID FROM tblUStVPositionen WHERE tblUStVPositionen.UStVAn_ID=" & UStVAn_ID & " ORDER BY tblUStVPositionen.UStVPo_ID ", "FMZOLL")
|
|
Dim counter As Integer = 0
|
|
|
|
For Each row In dtUSTVA.Rows
|
|
|
|
counter = counter + 1
|
|
|
|
Dim USTV_POS = New VERAG_PROG_ALLGEMEIN.cUStVPositionen(UStVAn_ID, row("UStVPo_ID"))
|
|
If USTV_POS.UStVPo_ID <> counter Then
|
|
SQL.doSQL("UPDATE tblUStVPositionen SET UStVPo_ID = " & counter & " WHERE UStVAn_ID=" & UStVAn_ID & " AND UStVPo_ID=" & USTV_POS.UStVPo_ID, "FMZOLL")
|
|
End If
|
|
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvUSTVPositionen_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles dgvUSTVPositionen.PreviewKeyDown
|
|
|
|
If dgvUSTVPositionen.SelectedRows.Count <> 1 Then Exit Sub
|
|
|
|
If (e.KeyCode) = Keys.Add AndAlso e.Control Then
|
|
|
|
Dim id As Integer = dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID").Value
|
|
|
|
initPosition(id)
|
|
|
|
dgvUSTVPositionen.GetOrder()
|
|
|
|
Dim USTV_POS_temp As New cUStVPositionen(UStVAn_ID, id)
|
|
|
|
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
|
|
USTV_POS.UStVAn_ID = USTV_POS_temp.UStVAn_ID
|
|
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
|
|
USTV_POS.UStVPo_ReDat = USTV_POS_temp.UStVPo_ReDat
|
|
USTV_POS.UStVPo_ReNr = USTV_POS_temp.UStVPo_ReNr
|
|
USTV_POS.UStVPo_SchnittstellenNr = -1
|
|
USTV_POS.UStVPo_Schnittstelle = False
|
|
USTV_POS.UStVPo_Leistungsbezeichnung = USTV_POS_temp.UStVPo_Leistungsbezeichnung
|
|
USTV_POS.UStVPo_Leistender = USTV_POS_temp.UStVPo_Leistender
|
|
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
USTV_POS.UStVPo_USteuerbetragEUR = 0
|
|
USTV_POS.UStVPo_USteuerbetrag = 0
|
|
USTV_POS.UStVPo_Umrechnungskurs = 1
|
|
USTV_POS.UStVPo_Zeitstempel = Now()
|
|
If USTV_POS.SAVE() Then
|
|
init()
|
|
dgvUSTVPositionen.SetOrder()
|
|
Else
|
|
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
|
|
|
|
If TabControl1.SelectedTab Is TabPage1 Then
|
|
init()
|
|
posTabisSelected = True
|
|
|
|
ElseIf TabControl1.SelectedTab Is TabPage2 Then
|
|
initdgvErstattungen()
|
|
posTabisSelected = False
|
|
txtSumme._value = 0
|
|
End If
|
|
|
|
|
|
picPDF.Visible = posTabisSelected
|
|
btnAntrageeinarbeiten.Enabled = posTabisSelected
|
|
cbxArchivierteEintracheNochmalsEinarbetien.Enabled = posTabisSelected
|
|
|
|
End Sub
|
|
|
|
Private Sub setinfofields()
|
|
|
|
Dim dtSteuerNr As DataTable
|
|
|
|
If Not USTV_ANTRAG Is Nothing AndAlso Not IsDBNull(USTV_ANTRAG.UStVAn_LandNr) Then
|
|
|
|
dtSteuerNr = SQL.loadDgvBySql("SELECT * FROM tblSteuernummern WHERE AdressenNr = " & USTV_ANTRAG.UStVAn_KuNr & " and tblSteuernummern.LandNr =" & IIf(USTV_ANTRAG.UStVAn_LandNr Is Nothing, "", USTV_ANTRAG.UStVAn_LandNr), "FMZOLL")
|
|
|
|
If dtSteuerNr.Rows.Count > 0 Then
|
|
txtStNr.Text = IIf(Not IsDBNull(dtSteuerNr.Rows(0).Item("StNrFürRückerstattungUSt")), dtSteuerNr.Rows(0).Item("StNrFürRückerstattungUSt"), "")
|
|
txtGueltig.Text = IIf(Not IsDBNull(dtSteuerNr.Rows(0).Item("StNrGültigkeitsdatum")), dtSteuerNr.Rows(0).Item("StNrGültigkeitsdatum"), "")
|
|
End If
|
|
|
|
Else
|
|
|
|
dtSteuerNr = SQL.loadDgvBySql("SELECT * FROM tblSteuernummern WHERE AdressenNr = " & KundenNr & " and tblSteuernummern.LandKz ='" & lblLand.Text & "'", "FMZOLL")
|
|
|
|
If dtSteuerNr.Rows.Count > 0 Then
|
|
txtStNr.Text = IIf(Not IsDBNull(dtSteuerNr.Rows(0).Item("StNrFürRückerstattungUSt")), dtSteuerNr.Rows(0).Item("StNrFürRückerstattungUSt"), "")
|
|
txtGueltig.Text = IIf(Not IsDBNull(dtSteuerNr.Rows(0).Item("StNrGültigkeitsdatum")), dtSteuerNr.Rows(0).Item("StNrGültigkeitsdatum"), "")
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
' If Not IsNull(Me!UStVAn_LandNr) Then
|
|
' strSQL = "SELECT tblSteuernummern.*" &
|
|
' " FROM tblSteuernummern" &
|
|
' " WHERE (((tblSteuernummern.AdressenNr)=" & Me!lngKundenNr & ") AND ((tblSteuernummern.LandNr)=" & Me!UStVAn_LandNr & "));"
|
|
' Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
|
|
' If Not rst.EOF Then
|
|
' Me!StNrFürRückerstattungUSt = rst!StNrFürRückerstattungUSt
|
|
' Me!StNrGültigkeitsdatum = rst!StNrGültigkeitsdatum
|
|
' Me!bezVertretungsvollmachtAusgestelltAm.ForeColor = -2147483630
|
|
' Me!bezVertretungsvollmachtAusgestelltAm.Caption = "Vertretungsvollmacht ausgestellt am"
|
|
' Me!VertretungsvollmachtAusgestelltAm = rst!VertretungsvollmachtAusgestelltAm
|
|
' Me!bezVertretungsvollmachtErhaltenAm.ForeColor = -2147483630
|
|
' Me!bezVertretungsvollmachtErhaltenAm.Caption = "Vertretungsvollmacht erhalten am"
|
|
' Me!VertretungsvollmachtErhaltenAm = rst!VertretungsvollmachtErhaltenAm
|
|
' Me!AuszahlungsvollmachtAusgestelltAm = rst!AuszahlungsvollmachtAusgestelltAm
|
|
' Me!AuszahlungsvollmachtErhaltenAm = rst!AuszahlungsvollmachtErhaltenAm
|
|
' Me!Bemerkung = rst!Bemerkung
|
|
' End If
|
|
' rst.Close
|
|
' ' ab 25.03.2010 Generalvollmacht Eintrag in Tabelle Adressen
|
|
' strSQL = "SELECT Adressen.UStV_GVAnfDat, Adressen.UStV_GVAusDat" &
|
|
' " FROM Adressen" &
|
|
' " WHERE (((Adressen.AdressenNr)=" & Me!lngKundenNr & ") AND" &
|
|
' " (((Adressen.UStV_GVAnfDat) Is Not Null) OR ((Adressen.UStV_GVAusDat) Is Not Null)));"
|
|
' Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
|
|
' If Not rst.EOF Then
|
|
' Me!bezVertretungsvollmachtAusgestelltAm.ForeColor = 16711808
|
|
' Me!bezVertretungsvollmachtAusgestelltAm.Caption = "Generalvollmacht angefordert am"
|
|
' Me!VertretungsvollmachtAusgestelltAm = rst!UStV_GVAnfDat
|
|
' Me!bezVertretungsvollmachtErhaltenAm.ForeColor = 16711808
|
|
' Me!bezVertretungsvollmachtErhaltenAm.Caption = "Generalvollmacht ausgestellt am"
|
|
' Me!VertretungsvollmachtErhaltenAm = rst!UStV_GVAusDat
|
|
' End If
|
|
' rst.Close
|
|
' Set rst = Nothing
|
|
'End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click
|
|
UstCntlUSTV_AntragErstattungen1.reset()
|
|
UstCntlUSTV_AntragErstattungen1.UStV_ERS = New VERAG_PROG_ALLGEMEIN.cUStVErstattungPositionen()
|
|
UstCntlUSTV_AntragErstattungen1.UStV_ERS.UStVEr_ID = UstCntlUSTV_AntragErstattungen1.UStV_ERS.getMaxPosNr()
|
|
UstCntlUSTV_AntragErstattungen1.Enabled = True
|
|
End Sub
|
|
|
|
Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
|
|
|
|
If dgvErstattungspositionen.Rows.Count = 0 Then Exit Sub
|
|
If vbYes = MsgBox("Möchten Sie den Erstattungseintrag wirklich löschen?", vbYesNoCancel) Then
|
|
|
|
If UstCntlUSTV_AntragErstattungen1.UStV_ERS.DELETE(UstCntlUSTV_AntragErstattungen1.UstV_AN.UStVAn_ID, UstCntlUSTV_AntragErstattungen1.UStV_ERS) Then
|
|
initdgvErstattungen()
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
|
getValue(USTV_ANTRAG)
|
|
|
|
Dim id = USTV_ANTRAG.SAVEID()
|
|
|
|
VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen_USTVA(id)
|
|
|
|
USTV_ANTRAG = New cUSTVAntrag(id)
|
|
|
|
If IsDBNull(USTV_ANTRAG.FilialenNr) OrElse USTV_ANTRAG.FilialenNr Is Nothing OrElse USTV_ANTRAG.FilialenNr = 0 Then MsgBox("Für das Speditionsbuch muss die Filiale eingegeben werden.") : Exit Sub
|
|
If IsDBNull(USTV_ANTRAG.AbfertigungsNr) OrElse USTV_ANTRAG.AbfertigungsNr Is Nothing OrElse USTV_ANTRAG.AbfertigungsNr <= 0 Then MsgBox("Für das Speditionsbuch muss die Abfertigungs-Nr eingegeben werden.") : Exit Sub
|
|
|
|
Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr, 0)
|
|
|
|
If spedBuch.hasEntry Then
|
|
Dim frmNacherfassung As New frmNacherfassungNEU
|
|
frmNacherfassung.srchFiliale = USTV_ANTRAG.FilialenNr
|
|
frmNacherfassung.srchAbfertigungsnummer = USTV_ANTRAG.AbfertigungsNr
|
|
frmNacherfassung.srchUnterNr = 0
|
|
frmNacherfassung.ShowDialog(Me)
|
|
|
|
Exit Sub
|
|
End If
|
|
|
|
If USTV_ANTRAG.UStVAn_ErstattungsbetragEUR = 0 Then
|
|
If Not vbYes = MsgBox("Der Erstattungsbetrag beträgt 0 EUR." & vbNewLine & "Fortfahren?", vbYesNo) Then Exit Sub
|
|
End If
|
|
|
|
'dTLANDEU = (New SQL).loadDgvBySql("select LandKz, MitgliedslandEU from Währungstabelle where LandKz is not null", "FMZOLL")
|
|
|
|
'Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = Antrag_LandKz).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
|
|
|
|
With spedBuch
|
|
.Abfertigungsdatum = Today()
|
|
.AvisUhrzeit = Now()
|
|
.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
.ErfassungsNr = USTV_ANTRAG.UStVAn_ID
|
|
.AnzahlSonstiges = 1
|
|
.Abfertigungsart = 10
|
|
.Abfertigungsanzahl = 1
|
|
.Packstücke = "Mehrwertsteuerrückerstattung " & Antrag_LandKz & " / " & USTV_ANTRAG.UStVAn_ReDatVon & " - " & USTV_ANTRAG.UStVAn_ReDatBis
|
|
.VermittlerKundenNr = USTV_ANTRAG.UStVAn_KuNr
|
|
.Rechnungsbetrag = USTV_ANTRAG.UStVAn_ErstattungsbetragEUR * -1
|
|
If .SAVE() Then
|
|
MsgBox("Sped-Eintrag wurde angelegt")
|
|
init()
|
|
End If
|
|
|
|
End With
|
|
End Sub
|
|
|
|
Private Sub picExcel_Click(sender As Object, e As EventArgs) Handles picExcel.Click
|
|
|
|
'Dim dtNew As DataTable = cProgramFunctions.dgridViewTods(dgvUSTVPositionen, True, IIf(dgvUSTVPositionen.SelectedRows.Count > 0, True, False))
|
|
Dim posId As String = ""
|
|
Dim counter = 0
|
|
For Each dgvRow As DataGridViewRow In dgvUSTVPositionen.SelectedRows
|
|
posId &= "'" & dgvRow.Cells("UStVPo_ID").Value & "'"
|
|
counter = counter + 1
|
|
If (dgvUSTVPositionen.SelectedRows.Count <> 1 And counter <> dgvUSTVPositionen.SelectedRows.Count) Then posId &= ","
|
|
Next
|
|
|
|
func.generateExcelPosList(USTV_ANTRAG, posId, Antrag_LandKz, txtStNr.Text, True)
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub initdgvErstattungen(Optional posIndex As Integer = -1)
|
|
|
|
|
|
With dgvErstattungspositionen
|
|
.ClearSelection()
|
|
|
|
If UStVAn_ID <= 0 Then Exit Sub
|
|
|
|
.SET_SQL("SELECT [UStVAn_ID] ,[UStVEr_ID],[UStVEr_USteuerbetrag],[Belegdatum],[Belegnummer],[GutschriftsDatum],[GutschriftsNr],[Berufungsdatum],[Berufungshöhe],[Berufungsgrund],[Bemerkung],[UStVEr_Umrechnungskurs],[UStVEr_USteuerbetragEUR],[UStVEr_Sachbearbeiter],[UStVEr_Zeitstempel]
|
|
FROM [tblUStVErstattung]
|
|
where UStVAn_ID=" & UStVAn_ID & " ORDER BY UStVEr_ID", "FMZOLL")
|
|
.LOAD()
|
|
.RowTemplate.Height = 20
|
|
.AllowUserToOrderColumns = False
|
|
.AllowUserToResizeRows = False
|
|
|
|
If .Columns.Count > 0 Then
|
|
|
|
.Columns("UStVAn_ID").Visible = False
|
|
.Columns("UStVEr_ID").HeaderText = "Pos"
|
|
.Columns("UStVEr_ID").Width = 40
|
|
|
|
.Columns("Belegdatum").Width = 80
|
|
.Columns("Belegnummer").Width = 130
|
|
|
|
.Columns("UStVEr_USteuerbetrag").HeaderText = "USt-Betrag"
|
|
.Columns("UStVEr_USteuerbetrag").Width = 110
|
|
.Columns("UStVEr_USteuerbetrag").DefaultCellStyle.Format = "N2"
|
|
.Columns("UStVEr_USteuerbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
|
|
|
|
.Columns("GutschriftsDatum").HeaderText = "GS-Datum"
|
|
.Columns("GutschriftsNr").HeaderText = "GS-Nr"
|
|
|
|
.Columns("GutschriftsDatum").Width = 80
|
|
.Columns("GutschriftsNr").Width = 130
|
|
|
|
|
|
.Columns("Berufungsdatum").HeaderText = "BE-Datum"
|
|
.Columns("Berufungshöhe").HeaderText = "BE-Höhe"
|
|
.Columns("Berufungsgrund").HeaderText = "BE-Grund"
|
|
|
|
.Columns("Berufungsdatum").Width = 80
|
|
.Columns("Berufungshöhe").Width = 100
|
|
.Columns("Berufungsgrund").Width = 150
|
|
.Columns("Bemerkung").Width = 200
|
|
|
|
.Columns("UStVEr_Umrechnungskurs").HeaderText = "Umrechnungskurs"
|
|
.Columns("UStVEr_Umrechnungskurs").Width = 60
|
|
.Columns("UStVEr_Umrechnungskurs").DefaultCellStyle.Format = "N2"
|
|
.Columns("UStVEr_Umrechnungskurs").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
|
|
|
|
.Columns("UStVEr_USteuerbetragEUR").HeaderText = "USt-Betrag EUR"
|
|
.Columns("UStVEr_USteuerbetragEUR").Width = 110
|
|
.Columns("UStVEr_USteuerbetragEUR").DefaultCellStyle.Format = "N2"
|
|
.Columns("UStVEr_USteuerbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
|
|
|
|
.Columns("UStVEr_Sachbearbeiter").HeaderText = "Sachbearbeiter"
|
|
.Columns("UStVEr_Sachbearbeiter").MinimumWidth = 100
|
|
.Columns("UStVEr_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
|
|
.Columns("UStVEr_Zeitstempel").Visible = False
|
|
|
|
End If
|
|
|
|
If .RowCount < 1 Then
|
|
initErstsattungsPosition(-1)
|
|
|
|
Else
|
|
If posIndex > 0 Then
|
|
posIndex = posIndex - 1
|
|
If posIndex > 0 And dgvErstattungspositionen.Rows.Count > posIndex Then
|
|
dgvErstattungspositionen.ClearSelection()
|
|
dgvErstattungspositionen.Rows(posIndex).Selected = True
|
|
For Each c As DataGridViewCell In dgvErstattungspositionen.Rows(posIndex).Cells
|
|
If c.Visible Then
|
|
dgvErstattungspositionen.CurrentCell = c 'Damit der Cursor in der DGV richtig steht
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
End With
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvUSTVPositionen_KeyUp(sender As Object, e As Windows.Forms.KeyEventArgs) Handles dgvUSTVPositionen.KeyUp
|
|
|
|
If e.KeyCode = Keys.Delete Then
|
|
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
|
|
|
|
|
|
|
|
If vbYes = MsgBox("Möchten Sie die markierten " & dgvUSTVPositionen.SelectedRows.Count & " Einträge wirklich löschen?", vbYesNoCancel) Then
|
|
|
|
For Each r As DataGridViewRow In dgvUSTVPositionen.SelectedRows
|
|
|
|
If r.Cells("UStVPo_Schnittstelle").Value IsNot Nothing AndAlso r.Cells("UStVPo_SchnittstellenNr").Value IsNot Nothing AndAlso IsNumeric(r.Cells("UStVPo_SchnittstellenNr").Value) Then
|
|
|
|
If r.Cells("UStVPo_SchnittstellenNr").Value = -1 OrElse r.Cells("UStVPo_daId_loeschbar").Value Then 'nur Dokumente löschen, die nicht über Schnittstellen geladen wurden oder löschbar sind!
|
|
|
|
If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then
|
|
If r.Cells("UStVPo_daId").Value Is Nothing Then
|
|
|
|
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & UStVAn_ID & "_" & r.Cells("UStVPo_ID").Value, "SONSTIGE", USTV_ANTRAG.UStVAn_KuNr)
|
|
|
|
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
|
|
DS.DELETE_COMPLETE()
|
|
End If
|
|
|
|
ElseIf r.Cells("UStVPo_daId").Value > 0 Then
|
|
|
|
Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(r.Cells("UStVPo_daId").Value)
|
|
|
|
If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then
|
|
DS.DELETE_COMPLETE()
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
Dim Leistungsbezeichnung = ""
|
|
If r.Cells("UStVPo_SchnittstellenNr").Value = 3 Then Leistungsbezeichnung = r.Cells("UStVPo_Leistungsbezeichnung").Value
|
|
|
|
If setArchiv(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Leistungsbezeichnung) Then
|
|
Dim sqlstr = " DELETE FROM tblUStVPositionen WHERE UStVAn_ID=" & Me.UStVAn_ID & " AND UStVPo_ID=" & r.Cells("UStVPo_ID").Value
|
|
If Not SQL.doSQL(sqlstr, "FMZOLL") Then
|
|
Exit Sub
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
reorderUSTVAPositions(Me.UStVAn_ID)
|
|
init()
|
|
UstCntlUSTV_AntragPosition1.Enabled = False
|
|
End If
|
|
End If
|
|
e.Handled = True
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub txtAbfNr_TextChanged(sender As Object, e As EventArgs) Handles txtAbfNr.TextChanged
|
|
If IsNumeric(txtAbfNr.Text) AndAlso CInt(txtAbfNr.Text) > 10000 AndAlso USTV_ANTRAG.AbfertigungsNr <> txtAbfNr.Text AndAlso (Not btnAbfertigungsNrVergeben.Visible) Then
|
|
Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, txtAbfNr.Text, 0)
|
|
If spedBuch.hasEntry Then
|
|
MsgBox("Es existiert bereits ein Speditionsbucheintrag mit dieser Nr!")
|
|
Exit Sub
|
|
Else
|
|
If Not abfNrisSetManually Then
|
|
abfNrisSetManually = True
|
|
txtAbfNr.Text = CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cbxFiliale._value, Now.Year))
|
|
|
|
|
|
End If
|
|
Exit Sub
|
|
|
|
End If
|
|
Else
|
|
abfNrisSetManually = False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnAbfertigungsNrVergeben.Click
|
|
|
|
If Not IsNumeric(cbxFiliale._value) OrElse CInt(cbxFiliale._value) <= 0 Then
|
|
MsgBox("Bitte Filiale auswählen!") : Exit Sub
|
|
End If
|
|
txtAbfNr.Text = CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cbxFiliale._value, Now.Year))
|
|
|
|
If txtBezugsNr.Text = "" AndAlso txtAbfNr.Text.ToString.Length >= 6 Then
|
|
txtBezugsNr.Text = txtAbfNr.Text.Substring(txtAbfNr.Text.ToString.Length - 6, 6)
|
|
txtBezugsNr.Text = txtBezugsNr.Text.TrimStart("0"c)
|
|
End If
|
|
cbxFiliale.Enabled = False
|
|
btnAbfertigungsNrVergeben.Visible = False
|
|
|
|
End Sub
|
|
|
|
Private Sub txtAbfNr_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtAbfNr.PreviewKeyDown
|
|
|
|
If e.KeyValue = 9 Then
|
|
If IsNumeric(txtAbfNr.Text) AndAlso CInt(txtAbfNr.Text) > 10000 AndAlso USTV_ANTRAG.AbfertigungsNr <> txtAbfNr.Text Then
|
|
Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, txtAbfNr.Text, 0)
|
|
If spedBuch.hasEntry Then
|
|
MsgBox("Es existiert bereits ein Speditionsbucheintrag mit dieser Nr!")
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If txtBezugsNr.Text = "" AndAlso txtAbfNr.Text.ToString.Length >= 6 Then
|
|
txtBezugsNr.Text = txtAbfNr.Text.Substring(txtAbfNr.Text.ToString.Length - 6, 6)
|
|
txtBezugsNr.Text = txtBezugsNr.Text.TrimStart("0"c)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button5_Click_1(sender As Object, e As EventArgs) Handles Button5.Click
|
|
|
|
If IsDBNull(USTV_ANTRAG.FilialenNr) OrElse USTV_ANTRAG.FilialenNr Is Nothing OrElse USTV_ANTRAG.FilialenNr = 0 Then MsgBox("Für das Speditionsbuch muss die Filiale eingegeben werden.") : Exit Sub
|
|
If IsDBNull(USTV_ANTRAG.AbfertigungsNr) OrElse USTV_ANTRAG.AbfertigungsNr Is Nothing OrElse USTV_ANTRAG.AbfertigungsNr <= 0 Then MsgBox("Für das Speditionsbuch muss die Abfertigungs-Nr eingegeben werden.") : Exit Sub
|
|
|
|
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr)
|
|
f.Show(Me)
|
|
|
|
End Sub
|
|
|
|
Private Sub cbxWahrung_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxWahrung.SelectedValueChanged
|
|
If USTV_ANTRAG IsNot Nothing Then
|
|
If cbxWahrung.SelectedItem IsNot Nothing Then
|
|
USTV_ANTRAG.UStVAn_Währungscode = cbxWahrung.SelectedItem.Text
|
|
Else
|
|
USTV_ANTRAG.UStVAn_Währungscode = ""
|
|
End If
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub scanUSTVA_FileAdded(id As String, path As String, name As String) Handles scanUSTVA.FileAdded
|
|
btnPDFauslesen.Enabled = scanUSTVA.getDS.da_id > 0
|
|
cbxKIUploaddelete.Enabled = btnPDFauslesen.Enabled
|
|
|
|
End Sub
|
|
|
|
Private Sub scanUSTVA_FileDeleted() Handles scanUSTVA.FileDeleted
|
|
btnPDFauslesen.Enabled = False
|
|
cbxKIUploaddelete.Enabled = btnPDFauslesen.Enabled
|
|
|
|
End Sub
|
|
|
|
Private Sub mnuItemKIUPLOAD_Clicked(sender As Object, e As EventArgs)
|
|
|
|
cnS_KIUPLOAD.Hide()
|
|
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
|
|
|
|
If item IsNot Nothing Then
|
|
|
|
Dim daid As Integer = scanUSTVA.getDS().da_id
|
|
|
|
If daid > 0 Then
|
|
|
|
Dim DS As New cDATENSERVER(daid)
|
|
|
|
If DS.GET_TOP1_PATH <> "" Then
|
|
|
|
Dim pdfR As New PdfReader(DS.GET_TOP1_PATH)
|
|
|
|
|
|
If atez_api IsNot Nothing Then
|
|
|
|
|
|
|
|
If vbYes = MsgBox("Möchten Sie die Rechnungsdaten der " & item.Text & " per ATEZ-API auslesen lassen?", vbYesNoCancel) Then
|
|
|
|
'document_type = vat_invoice or receipt
|
|
loadUSTVFrom_ATEZ_KI(UStVAn_ID, Antrag_LandKz, atez_api, scanUSTVA.getDS().da_id, pdfR.NumberOfPages, item.Name, cbxKIUploaddelete.Checked)
|
|
|
|
initScanUSTVA()
|
|
|
|
End If
|
|
|
|
Else
|
|
If cbxKIUploaddelete.Checked Then
|
|
DS.DELETE_COMPLETE()
|
|
initScanUSTVA()
|
|
|
|
End If
|
|
|
|
End If
|
|
init()
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btnPDFauslesen_Click(sender As Object, e As EventArgs) Handles btnPDFauslesen.Click
|
|
|
|
'document_type = vat_invoice or receipt
|
|
|
|
If Not cnS_KIUPLOAD.Items.ContainsKey("vat_invoice") Then
|
|
Dim vat = New ToolStripMenuItem() With {.Text = "MWST-Rechnung(en)", .Name = "vat_invoice", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
cnS_KIUPLOAD.Items.Add(vat)
|
|
AddHandler vat.Click, AddressOf mnuItemKIUPLOAD_Clicked
|
|
End If
|
|
|
|
|
|
If Not cnS_KIUPLOAD.Items.ContainsKey("receipt") Then
|
|
Dim receipt = New ToolStripMenuItem() With {.Text = "Quittung(en)", .Name = "receipt", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
cnS_KIUPLOAD.Items.Add(receipt)
|
|
AddHandler receipt.Click, AddressOf mnuItemKIUPLOAD_Clicked
|
|
|
|
End If
|
|
|
|
cnS_KIUPLOAD.Show(Cursor.Position)
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub calcSumme()
|
|
|
|
Dim countSumme As Double = 0
|
|
|
|
If posTabisSelected Then
|
|
|
|
For i As Integer = 0 To dgvUSTVPositionen.SelectedRows.Count - 1
|
|
countSumme += CDbl(dgvUSTVPositionen.SelectedRows(i).Cells("UStVPo_USteuerbetragEUR").Value)
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
txtSumme._value = countSumme.ToString
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub initScanUSTVA()
|
|
If USTV_ANTRAG IsNot Nothing Then
|
|
scanUSTVA.INIT(USTV_ANTRAG.UStVAn_KuNr, "MDM", "USTVA_KI_" & USTV_ANTRAG.UStVAn_ID)
|
|
btnPDFauslesen.Enabled = scanUSTVA.getDS().da_id > 0
|
|
cbxKIUploaddelete.Enabled = btnPDFauslesen.Enabled
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
End Class |