3368 lines
161 KiB
VB.net
3368 lines
161 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
|
|
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
|
|
|
|
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
|
|
Dim DiffernezbetragEUR As Double
|
|
Dim GesamtUSteuerEUR As Double
|
|
Dim GesamtUSteuer As Double
|
|
|
|
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] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet
|
|
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 = 120
|
|
|
|
.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 = 120
|
|
|
|
.Columns("UStVPo_Leistender").HeaderText = "Leistender"
|
|
.Columns("UStVPo_Leistender").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
|
|
.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 = 80
|
|
|
|
|
|
.Columns("UstV_Leistender_UstNr").HeaderText = "UID-Nr"
|
|
.Columns("UstV_Leistender_UstNr").Width = 100
|
|
|
|
.Columns("UStVPo_Schnittstelle").HeaderText = "API"
|
|
.Columns("UStVPo_Schnittstelle").Width = 30
|
|
|
|
.Columns("UStVPo_VZ").HeaderText = "VZ"
|
|
.Columns("UStVPo_VZ").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
.Columns("UStVPo_VZ").Width = 40
|
|
|
|
.Columns("UStVPo_SchnittstellenNr").HeaderText = "API-Nr"
|
|
.Columns("UStVPo_SchnittstellenNr").Width = 40
|
|
|
|
.Columns("VZabrechnet").HeaderText = "abger."
|
|
.Columns("VZabrechnet").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_VZ_RKID").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
|
|
|
|
GesamtUSteuerEUR = 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")
|
|
DiffernezbetragEUR = GesamtUSteuerEUR - GesamtErstattungEUR
|
|
|
|
GesamtUSteuer = 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
|
|
|
|
If CInt(SQL.getValueTxtBySql("select COUNT(*) from Rechnungsausgang where FilialenNr = " & USTV_ANTRAG.FilialenNr & " and AbfertigungsNr = " & USTV_ANTRAG.AbfertigungsNr & " and Firma_ID = 19 and DruckDatumZeit is not null", "FMZOLL",,, "0")) > 0 Then
|
|
pb_Beleg.Visible = True
|
|
Else
|
|
pb_Beleg.Visible = False
|
|
|
|
End If
|
|
|
|
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, "")
|
|
|
|
txtRZ.Text = If(USTV_ANTRAG.UStVAn_RZBetragVZ, "")
|
|
txtRZam._value = If(USTV_ANTRAG.UStVAn_RZDatumVZ, "")
|
|
|
|
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, ""))
|
|
cbxRGretour.Checked = USTV_ANTRAG.UStVAn_RGRetour
|
|
|
|
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.UStVAn_RGRetour = cbxRGretour.Checked
|
|
|
|
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
|
|
|
|
If txtRZ.Text <> "" AndAlso IsNumeric(txtRZ.Text) Then
|
|
USTV_ANTRAG.UStVAn_RZBetragVZ = CDbl(txtRZ.Text)
|
|
Else
|
|
USTV_ANTRAG.UStVAn_RZBetragVZ = Nothing
|
|
End If
|
|
|
|
If txtRZam.Text <> "" AndAlso IsDate(txtRZam.Text) Then
|
|
USTV_ANTRAG.UStVAn_RZDatumVZ = CDate(txtRZam.Text)
|
|
Else
|
|
USTV_ANTRAG.UStVAn_RZDatumVZ = 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
|
|
dgvErstattungspositionen.VALUE_CHANGED = True
|
|
initdgvErstattungen(POSId)
|
|
Else
|
|
initdgvErstattungen(dgvErstattungspositionen.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
|
|
|
|
initScanUSTVA()
|
|
|
|
End Sub
|
|
|
|
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles btnAntrageeinarbeiten.Click
|
|
|
|
|
|
|
|
If Not cns_LRE.Items.ContainsKey("plose") Then
|
|
Dim plose = New ToolStripMenuItem() With {.Text = "Plose", .Name = "plose", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
cns_LRE.Items.Add(plose)
|
|
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
|
|
End If
|
|
|
|
If USTV_ANTRAG.UStVAn_ReDatVon.year >= 2025 Then
|
|
If Not cns_LRE.Items.ContainsKey("ploseneu") Then
|
|
Dim plose = New ToolStripMenuItem() With {.Text = "Plose NEUE LOGIK", .Name = "ploseneu", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
cns_LRE.Items.Add(plose)
|
|
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
|
|
End If
|
|
End If
|
|
|
|
|
|
If Not cns_LRE.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
|
|
cns_LRE.Items.Add(rmc)
|
|
End If
|
|
|
|
If Not cns_LRE.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
|
|
cns_LRE.Items.Add(rmc)
|
|
End If
|
|
|
|
If Not cns_LRE.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
|
|
cns_LRE.Items.Add(uta)
|
|
End If
|
|
|
|
If Not cns_LRE.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
|
|
cns_LRE.Items.Add(ids)
|
|
End If
|
|
|
|
If Not cns_LRE.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
|
|
cns_LRE.Items.Add(ids)
|
|
End If
|
|
|
|
cns_LRE.Show(Cursor.Position)
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs)
|
|
|
|
cns_neAntraege.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 'egal 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
|
|
|
|
'TODO: IDS liefert Beträge immer in EUR, wir müssen allerdings die Beträge in FREMDW umrechnen, ev. bei IDS nachfragen, ob wir den Fremdwährungsbetrag bekommen können (würde uns einige manuelle Arbeit ersparen oder zumindest den Umrechnungskurs, das IDS einen Mischsatz verwendet und nicht den Umrechnungskurs vom Rechnungsdatum)!!
|
|
|
|
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
|
|
|
|
dt = atez_api.createVATDatatable(documentType)
|
|
|
|
Dim failreDesc As String
|
|
Dim authResp = atez_api.authenticate("VAT", "client1", "password", documentType)
|
|
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
|
|
|
|
Dim pageCounter = 0
|
|
resp = atez_api.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt, documentType)
|
|
|
|
|
|
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("page_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("ddMMyy_HHmmss.ffff"), 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("page_count"))
|
|
If pages.Item("doc_index") = r.Cells("doc_index").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("page_count").Value)
|
|
|
|
|
|
Dim DS_NEW As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "ATEZ_KI", Now.Year, Now.ToString("ddMMyy_HHmmss.ffff"), fi_orig.Name, USTV_ANTRAG.UStVAn_KuNr, False)
|
|
If Not DS_NEW.uploadDataToDATENSERVER(TMP_Path_New) Then MsgBox("Fehler beim Speichern: Datenserver!")
|
|
If DS_NEW.da_id <= 0 Then MsgBox("Keine DocId!")
|
|
|
|
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("total_VAT_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("total_VAT_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("total_VAT_currency").Value)
|
|
If r.Cells("total_VAT_currency").Value <> "EUR" Then
|
|
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("total_VAT_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("total_VAT_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)
|
|
If r.Cells("total_VAT_currency").Value = "EUR" Then
|
|
USTV_POS.UStVPo_USteuerbetragEUR = r.Cells("total_VAT_amount").Value
|
|
Dim kurs As New cEZB_Waehrungskurse(USTV_ANTRAG.UStVAn_Währungscode)
|
|
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 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(r.Cells("total_VAT_amount").Value, r.Cells("total_VAT_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, r.Cells("total_VAT_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
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
If USTV_ANTRAG.UStVAn_Währungscode IsNot Nothing AndAlso USTV_ANTRAG.UStVAn_Währungscode <> "EUR" AndAlso USTV_ANTRAG.UStVAn_Währungscode <> "" Then
|
|
Dim averageUmrechnungskurs As Double = 1
|
|
If dgvUSTVPositionen.Rows.Count > 0 Then
|
|
For Each row In dgvUSTVPositionen.Rows
|
|
averageUmrechnungskurs += row.Cells("UStVPo_Umrechnungskurs").Value
|
|
Next
|
|
averageUmrechnungskurs = averageUmrechnungskurs / dgvUSTVPositionen.Rows.Count
|
|
End If
|
|
|
|
Dim abw As Double = Math.Abs(Math.Round(GesamtUSteuer / averageUmrechnungskurs, 2) - Math.Round(GesamtUSteuerEUR, 2))
|
|
|
|
If abw >= 250 Then
|
|
MsgBox("Bitte Umrechnungskurs in den Antragspositionen kontrollieren!" & vbNewLine & "Der Steuerbetrag weicht um " & Math.Round(abw, 2) & "€ vom FW-Steuerbetrag ab! ")
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
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 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 'überschneidungen prüfen!!!!
|
|
|
|
|
|
Dim dt_existingUSTVA As DataTable = SQL.loadDgvBySql("Select UStVAn_ID,UStVAn_ReDatvon, UStVAn_ReDatBis, UStVAn_AntragEingereichtAm 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(txtVon._value).ToShortDateString & "' ) and (cast(UStVAn_ReDatBis as date) < '" & CDate(txtBis._value).ToShortDateString & "' or cast(UStVAn_ReDatvon as date) >= '" & CDate(txtBis._value).ToShortDateString & "'))", "FMZOLL")
|
|
|
|
'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 & "' and cast(UStVAn_ReDatBis as date) <= '" & CDate(txtVon._value).ToShortDateString & "') or (cast(UStVAn_ReDatvon as date) < '" & CDate(txtBis._value).ToShortDateString & "' and cast(UStVAn_ReDatBis as date) >= '" & CDate(txtBis._value).ToShortDateString & "'))", "FMZOLL"))
|
|
|
|
If dt_existingUSTVA.Rows.Count = 1 Then
|
|
|
|
Dim eingereicht As String = IIf(Not IsDBNull(dt_existingUSTVA.Rows(0).Item("UStVAn_AntragEingereichtAm")) AndAlso IsDate(dt_existingUSTVA.Rows(0).Item("UStVAn_AntragEingereichtAm")), " EINGEREICHTER ", "")
|
|
|
|
Dim result As MsgBoxResult = MsgBox("Es existiert bereits ein " & eingereicht & cboAntragArt._value & "-Eintrag von " & dt_existingUSTVA.Rows(0).Item("UStVAn_ReDatvon") & " - " & dt_existingUSTVA.Rows(0).Item("UStVAn_ReDatbis") & " von " & ADR.Name_1 & " für " & cbxLand.SelectedItem.ToString & vbNewLine & "Ja = Antrag speichern" & vbNewLine & "Nein = existierenden Antrag öffnen", vbYesNoCancel)
|
|
|
|
Select Case result
|
|
Case MsgBoxResult.Cancel : Exit Sub
|
|
Case MsgBoxResult.No
|
|
Me.Close()
|
|
Dim frm = New frmMDM_USTVAntrag(dt_existingUSTVA.Rows(0).Item("UStVAn_ID"))
|
|
frm.ShowDialog()
|
|
Exit Sub
|
|
End Select
|
|
|
|
ElseIf dt_existingUSTVA.Rows.Count > 1 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 cns_neAntraege.Items.ContainsKey("excel") Then
|
|
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
cns_neAntraege.Items.Add(excel)
|
|
AddHandler excel.Click, AddressOf mnuItem_Clicked
|
|
End If
|
|
|
|
|
|
If Not cns_neAntraege.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
|
|
cns_neAntraege.Items.Add(mail)
|
|
End If
|
|
|
|
If Not cns_neAntraege.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
|
|
cns_neAntraege.Items.Add(oa)
|
|
End If
|
|
|
|
cns_neAntraege.Show(Cursor.Position)
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
|
|
cns_neAntraege.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 = False
|
|
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 = USTV_ANTRAG.getMaxPosNrErst()
|
|
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 DiffernezbetragEUR = 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") = USTV_ANTRAG.UStVAn_LandKz).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
|
|
|
|
Dim kunde As New cKunde(USTV_ANTRAG.UStVAn_KuNr)
|
|
|
|
With spedBuch
|
|
.Abfertigungsdatum = Today()
|
|
.AvisUhrzeit = Now()
|
|
.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
.ErfassungsNr = USTV_ANTRAG.UStVAn_ID
|
|
.AnzahlSonstiges = 1
|
|
.Abfertigungsart = IIf(isEU, 114, 115)
|
|
.Abfertigungsanzahl = 1
|
|
.Packstücke = USTV_ANTRAG.UStVAn_AntragArt & "-Rückerstattung " & Antrag_LandKz & " / " & USTV_ANTRAG.UStVAn_ReDatVon & " - " & USTV_ANTRAG.UStVAn_ReDatBis
|
|
.VermittlerKundenNr = IIf(kunde.KundenNrZentrale IsNot Nothing, kunde.KundenNrZentrale, kunde.KundenNr)
|
|
|
|
If .VermittlerKundenNr = 140000 Or .VermittlerKundenNr = 150000 Then
|
|
.EmpfängerKundenNr = USTV_ANTRAG.UStVAn_KuNr
|
|
End If
|
|
|
|
.Rechnungsbetrag = DiffernezbetragEUR * -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.generatePosList(USTV_ANTRAG, posId, Antrag_LandKz, txtStNr.Text, True, "excel", Nothing)
|
|
|
|
|
|
|
|
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 RK_ID As Integer = CInt(SQL.getValueTxtBySql("select top(1) RK_ID from Rechnungsausgang where FilialenNr = " & USTV_ANTRAG.FilialenNr & " and AbfertigungsNr = " & USTV_ANTRAG.AbfertigungsNr & " and Firma_ID = 19", "FMZOLL", ,, "0"))
|
|
|
|
Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where FilialenNr = " & USTV_ANTRAG.FilialenNr & " and AbfertigungsNr = " & USTV_ANTRAG.AbfertigungsNr & " and Firma_ID = 19", "FMZOLL")
|
|
|
|
Dim hasVZ As Boolean = False
|
|
For Each pos In USTV_ANTRAG.POSITIONEN
|
|
If pos.UStVPo_VZ AndAlso (IsDBNull(pos.UStVPo_VZ_RKID) Or pos.UStVPo_VZ_RKID Is Nothing) Then 'VZ die noch nicht abgerechnet wurde!
|
|
hasVZ = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
ncs_Belege.Items.Clear()
|
|
|
|
Dim reNEW = New ToolStripMenuItem() With {.Text = "NEU", .Name = "NEU" + IIf(hasVZ, "_VZ", ""), .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
ncs_Belege.Items.Add(reNEW)
|
|
|
|
If dtRE.Rows.Count > 0 Then
|
|
|
|
Dim RK_ID As String = ""
|
|
|
|
For Each r As DataRow In dtRE.Rows
|
|
|
|
Dim re = New ToolStripMenuItem() With {.Text = r.Item("FilialenNr") & " - " & r.Item("RechnungsNr"), .Name = r.Item("RK_ID"), .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
ncs_Belege.Items.Add(re)
|
|
AddHandler re.Click, AddressOf mnuItemBelege_Clicked
|
|
|
|
Next
|
|
|
|
AddHandler reNEW.Click, AddressOf mnuItemBelege_Clicked
|
|
|
|
Else
|
|
|
|
AddHandler reNEW.Click, AddressOf mnuItemBelege_Clicked
|
|
|
|
End If
|
|
|
|
ncs_Belege.Show(Cursor.Position)
|
|
|
|
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 AndAlso scanUSTVA IsNot Nothing Then
|
|
|
|
Dim daid As Integer = 0
|
|
If scanUSTVA.getDS() IsNot Nothing Then daid = 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("invoice") Then
|
|
Dim vat = New ToolStripMenuItem() With {.Text = "MWST-Rechnung(en)", .Name = "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
|
|
If Not IsDBNull(dgvUSTVPositionen.SelectedRows(i).Cells("UStVPo_USteuerbetragEUR").Value) AndAlso IsNumeric(dgvUSTVPositionen.SelectedRows(i).Cells("UStVPo_USteuerbetragEUR").Value) Then
|
|
countSumme += CDbl(dgvUSTVPositionen.SelectedRows(i).Cells("UStVPo_USteuerbetragEUR").Value)
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
|
|
txtSumme._value = countSumme.ToString
|
|
|
|
End Sub
|
|
|
|
Private Sub pb_Beleg_Click(sender As Object, e As EventArgs) Handles pb_Beleg.Click
|
|
|
|
|
|
Dim dtRE As DataTable = (New SQL).loadDgvBySql("select RK_ID, RechnungsNr, FilialenNr from Rechnungsausgang where FilialenNr = " & USTV_ANTRAG.FilialenNr & " and AbfertigungsNr = " & USTV_ANTRAG.AbfertigungsNr & " and Firma_ID = 19", "FMZOLL")
|
|
|
|
ncs_Belege.Items.Clear()
|
|
|
|
|
|
If dtRE.Rows.Count > 0 Then
|
|
|
|
Dim RK_ID As String = ""
|
|
|
|
For Each r As DataRow In dtRE.Rows
|
|
|
|
Dim re = New ToolStripMenuItem() With {.Text = r.Item("FilialenNr") & " - " & r.Item("RechnungsNr"), .Name = r.Item("RK_ID"), .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
|
|
ncs_Belege.Items.Add(re)
|
|
AddHandler re.Click, AddressOf mnuItemBelegeOpenPDF_Clicked
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
ncs_Belege.Show(Cursor.Position)
|
|
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub cbxRGretour_CheckedChanged(sender As Object, e As EventArgs) Handles cbxRGretour.CheckedChanged
|
|
|
|
If cbxRGretour.Checked Then
|
|
cbxRGretour.ForeColor = Color.Red
|
|
Else
|
|
cbxRGretour.ForeColor = Color.White
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub dgvUSTVPositionen_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvUSTVPositionen.CellMouseClick
|
|
|
|
If e.RowIndex < 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt
|
|
If e.ColumnIndex < 0 Then Exit Sub
|
|
|
|
DirectCast(sender, DataGridView).Rows(e.RowIndex).Selected = True
|
|
If e.Button = MouseButtons.Right Then
|
|
|
|
If sender Is dgvUSTVPositionen Then
|
|
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
cns_vorauszahlen.Show(Cursor.Position)
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub AktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AktivierenToolStripMenuItem.Click
|
|
|
|
If vbYes = MsgBox("Möchten Sie die Vorauszahlung der markierten Positionen setzen?", vbYesNoCancel) Then
|
|
|
|
For Each r As DataGridViewRow In dgvUSTVPositionen.SelectedRows
|
|
|
|
If IsDBNull(r.Cells("UStVPo_VZ_RKID").Value) OrElse r.Cells("UStVPo_VZ_RKID").Value Is Nothing Then
|
|
|
|
Dim USTV_POS = New VERAG_PROG_ALLGEMEIN.cUStVPositionen(UStVAn_ID, r.Cells("UStVPo_ID").Value)
|
|
|
|
If IsDBNull(USTV_POS.UStVPo_VZ) OrElse USTV_POS.UStVPo_VZ = False Then
|
|
USTV_POS.UStVPo_VZ = True
|
|
USTV_POS.SAVE()
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 1 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0)", "FMZOLL")
|
|
|
|
init()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub DeaktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DeaktivierenToolStripMenuItem.Click
|
|
|
|
If vbYes = MsgBox("Möchten Sie die Vorauszahlung der markierten Positionen deaktiveren?", vbYesNoCancel) Then
|
|
|
|
For Each r As DataGridViewRow In dgvUSTVPositionen.SelectedRows
|
|
|
|
If IsDBNull(r.Cells("UStVPo_VZ_RKID").Value) OrElse r.Cells("UStVPo_VZ_RKID").Value Is Nothing Then 'nur noch nicht abgerech. dürfen gesetzt werden!
|
|
|
|
Dim USTV_POS = New VERAG_PROG_ALLGEMEIN.cUStVPositionen(UStVAn_ID, r.Cells("UStVPo_ID").Value)
|
|
|
|
If IsDBNull(USTV_POS.UStVPo_VZ) OrElse USTV_POS.UStVPo_VZ = True Then
|
|
USTV_POS.UStVPo_VZ = False
|
|
USTV_POS.SAVE()
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
'würde prüfung nochmals für alle machen, performance allerdings nicht gut....
|
|
'SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZDatetime],0) = 0 )")
|
|
|
|
|
|
|
|
Dim count_nichtAbgerVZ As Integer = -1
|
|
count_nichtAbgerVZ = CInt(SQL.getValueTxtBySql("SELECT COUNT(*) FROM [tblUStVPositionen] WHERE [UStVAn_ID] = " & USTV_ANTRAG.UStVAn_ID & " and [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) = 0", "FMZOLL"))
|
|
If count_nichtAbgerVZ = 0 Then
|
|
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] =" & USTV_ANTRAG.UStVAn_ID, "FMZOLL")
|
|
End If
|
|
|
|
init()
|
|
End If
|
|
|
|
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
|
|
Else
|
|
cbxKIUploaddelete.Enabled = False
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub mnuItemBelege_Clicked(sender As Object, e As EventArgs)
|
|
ncs_Belege.Hide()
|
|
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
|
|
|
|
If item IsNot Nothing Then
|
|
|
|
If item.Name <> "" Then
|
|
|
|
If IsNumeric(item.Name) Then
|
|
|
|
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(item.Name)
|
|
f.Show(Me)
|
|
|
|
Else
|
|
|
|
Dim hasVZ = IIf(item.Name.Contains("_VZ"), True, False)
|
|
|
|
Dim f As New SDL.frmAbrechnungsMaskeEinzeln(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr, IIf(USTV_ANTRAG.UStVAn_ErstattungsbetragEUR >= 0, "AG", "AR"), hasVZ)
|
|
f.Show(Me)
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub mnuItemBelegeOpenPDF_Clicked(sender As Object, e As EventArgs)
|
|
ncs_Belege.Hide()
|
|
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
|
|
|
|
If item IsNot Nothing Then
|
|
|
|
If item.Name <> "" Then
|
|
|
|
If IsNumeric(item.Name) Then
|
|
|
|
Dim RG_PATH = ""
|
|
cFakturierung.doRechnungsDruck_SRorER(item.Name,, False, 4, RG_PATH,,, True)
|
|
Process.Start(RG_PATH)
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
End Class |