Files
SDL/SDL/USTV/frmMDM_USTVAntrag.vb

809 lines
36 KiB
VB.net

Imports System.Reflection
'Imports DocumentFormat.OpenXml.Drawing.Charts
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class frmMDM_USTVAntrag
Dim UStVAn_ID As Integer
Dim USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag = Nothing
Dim Antrag_LandKz As String = ""
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
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 init()
pnlFilter.AutoScroll = False
lblGesamtUSteuer.Text = "-"
lblGesamtErstattung.Text = "-"
lblDiffernezbetrag.Text = "-"
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]
FROM [tblUStVPositionen]
left join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
.LOAD()
.RowTemplate.Height = 20
.AllowUserToOrderColumns = False
.AllowUserToResizeRows = False
If .Columns.Count > 0 Then
.Columns("UStVAn_ID").Visible = False
.Columns("UStVPo_ID").HeaderText = "Pos"
.Columns("UStVPo_ID").Width = 40
.Columns("UStVPo_ReDat").HeaderText = "Rg-Datum"
.Columns("UStVPo_ReDat").Width = 80
.Columns("UStVPo_ReNr").HeaderText = "Rechnungs-Nr"
.Columns("UStVPo_ReNr").Width = 180
.Columns("UStVPo_USteuerbetrag").HeaderText = "USt-Betrag"
.Columns("UStVPo_USteuerbetrag").Width = 110
.Columns("UStVPo_USteuerbetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVPo_USteuerbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVPo_Leistungsbezeichnung").HeaderText = "Leistungsbezeichnung"
.Columns("UStVPo_Leistungsbezeichnung").Width = 150
.Columns("UStVPo_Leistender").HeaderText = "Leistender"
.Columns("UStVPo_Leistender").Width = 100
.Columns("UstV_Leistender_Strasse").HeaderText = "Strasse"
.Columns("UstV_Leistender_Strasse").Width = 50
.Columns("UstV_Leistender_PLZ").HeaderText = "PLZ"
.Columns("UstV_Leistender_PLZ").Width = 50
.Columns("UstV_Leistender_Land").HeaderText = "Land"
.Columns("UstV_Leistender_Land").Width = 50
.Columns("UstV_Leistender_Stadt").HeaderText = "Stadt"
.Columns("UstV_Leistender_Stadt").Width = 100
.Columns("UstV_Leistender_UstNr").HeaderText = "UID-Nr"
.Columns("UstV_Leistender_UstNr").Width = 150
.Columns("UStVPo_Schnittstelle").HeaderText = "API"
.Columns("UStVPo_Schnittstelle").Width = 30
.Columns("UStVPo_SchnittstellenNr").HeaderText = "API-Nr"
.Columns("UStVPo_SchnittstellenNr").Width = 40
.Columns("UStVPo_Umrechnungskurs").HeaderText = "Umrechnungskurs"
.Columns("UStVPo_Umrechnungskurs").Width = 60
.Columns("UStVPo_Umrechnungskurs").DefaultCellStyle.Format = "N2"
.Columns("UStVPo_Umrechnungskurs").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVPo_USteuerbetragEUR").HeaderText = "USt-Betrag EUR"
.Columns("UStVPo_USteuerbetragEUR").Width = 110
.Columns("UStVPo_USteuerbetragEUR").DefaultCellStyle.Format = "N2"
.Columns("UStVPo_USteuerbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVPo_Sachbearbeiter").HeaderText = "Sachbearbeiter"
.Columns("UStVPo_Sachbearbeiter").MinimumWidth = 100
.Columns("UStVPo_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End If
End With
Dim GesamtUSteuer As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetragEUR),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
Dim GesamtErstattung As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetragEUR),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
Dim Differnezbetrag As Double = GesamtUSteuer - GesamtErstattung
lblGesamtUSteuer.Text = GesamtUSteuer.ToString("C2")
lblGesamtErstattung.Text = GesamtErstattung.ToString("C2")
lblDiffernezbetrag.Text = Differnezbetrag.ToString("C2")
Dim GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)
If GET_Antraege IsNot Nothing AndAlso GET_Antraege.Count > 0 Then
lblPLOSE_EintrageVerarbetiet.Text = "aussehende Einträge: " & GET_Antraege.Count
Else
lblPLOSE_EintrageVerarbetiet.Text = "alle Einträge verarbeitet"
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, "")
End Sub
Sub getValue(ByRef USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag)
If Me_Validate() Then
'lblFirma.Text = USTV_ANTRAG.UStVAn_Name
'lblLand.Text = Antrag_LandKz
If IsDate(txtVon._value) Then USTV_ANTRAG.UStVAn_ReDatVon = CDate(txtVon._value)
If IsDate(txtBis._value) Then USTV_ANTRAG.UStVAn_ReDatBis = CDate(txtBis._value)
'lblZeitraum.Text = CDate(USTV_ANTRAG.UStVAn_ReDatVon).ToString("dd.MM.yyyy") & " - " & CDate(USTV_ANTRAG.UStVAn_ReDatBis).ToString("dd.MM.yyyy")
USTV_ANTRAG.UStVAn_Status = cboStatus._value
USTV_ANTRAG.UStVAn_AntragArt = cboAntragArt._value
USTV_ANTRAG.UStVAn_StatusText = rtbStatusText.Text
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
dgvUSTVPositionen.VALUE_CHANGED = True
End Sub
Private Sub usrCntlVERAGCard_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")
lblPLOSE_EintrageVerarbetiet.Text = ""
If UStVAn_ID > 0 Then
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)
End If
init()
End Sub
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
loadUSTVFrom_PLOSE(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
init()
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
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, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean
Try
Dim bytSchnittstellenNr = 6 'glaube noch frei?
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)
If GET_Antraege IsNot Nothing Then
For Each ANTRAG In GET_Antraege
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
USTV_POS.UStVPo_Schnittstelle = True
USTV_POS.UStVPo_Leistungsbezeichnung = "Maut"
USTV_POS.UStVPo_Leistender = ANTRAG.plose_Lieferant
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_POS.UStVPo_Zeitstempel = Now()
' Berechnungen
USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung 'VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ANTRAG.plose_MWSTBetragWaehrungAbbuchung, USTV_ANTRAG.UStVAn_Währungscode, "EUR")
'USTV_POS.UStVPo_Umrechnungskurs = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuroKurs(ANTRAG.plose_WaehrungAbbuchung, ANTRAG.plose_RechnungsDatum)
USTV_POS.UStVPo_Umrechnungskurs = ANTRAG.plose_MWSTBetrag / ANTRAG.plose_MWSTBetragWaehrungAbbuchung
USTV_POS.UStVPo_USteuerbetrag = ANTRAG.plose_MWSTBetrag
' MsgBox(ANTRAG.plose_Lieferant & " - " & ANTRAG.plose_RechnungsDatum & " - " & ANTRAG.plose_RechnungsNr & " :::::::::: " & CDbl(ANTRAG.plose_MWSTBetrag).ToString("C2"))
USTV_POS.INSERT()
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)
End If
Return True
Catch ex As Exception
Return False
End Try
End Function
Shared Function loadUSTVFrom_RMC(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean
Try
Dim bytSchnittstellenNr = 7 'glaube noch frei?
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")
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
USTV_POS.UStVPo_Schnittstelle = True
USTV_POS.UStVPo_Leistungsbezeichnung = "Diesel"
USTV_POS.UStVPo_Leistender = "RMC Service GmbH"
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_POS.UStVPo_Zeitstempel = Now()
' Berechnungen
Dim umrechKurs = 1
If (CDbl(r.Item("rmc_betragBrutto")) > 0 AndAlso CDbl(r.Item("rmc_euroBrutto")) > 0) Then
umrechKurs = CDbl(r.Item("rmc_betragBrutto") / r.Item("rmc_euroBrutto"))
End If
If CDbl(r.Item("rmc_betragMWST")) > 0 Then
USTV_POS.UStVPo_USteuerbetragEUR = CDbl(r.Item("rmc_betragMWST") * umrechKurs)
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)
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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
getValue(USTV_ANTRAG)
If USTV_ANTRAG.SAVE Then
Me.Close()
End If
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)
UstCntlUSTV_AntragPosition1.Enabled = True
UstCntlUSTV_AntragPosition1.setValues(USTV_ANTRAG.UStVAn_KuNr, ANTR_POS, Antrag_LandKz, ANTR_Leistender)
Else
UstCntlUSTV_AntragPosition1.reset()
UstCntlUSTV_AntragPosition1.Enabled = False
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)
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_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_AntragPosition_KeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown
If e.KeyValue = Keys.PageDown Then
UstCntlUSTV_AntragPosition1_EV_NEXT()
End If
If e.KeyValue = Keys.PageUp Then
UstCntlUSTV_AntragPosition1_EV_PREV()
End If
End Sub
Private Sub frmMDM_USTVAntrag_Shown(sender As Object, e As EventArgs) Handles Me.Shown
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
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
cboStatus.changeItem(cUSTVStatus.STAT_EINGEREICHT)
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 Button2.Click
UstCntlUSTV_AntragPosition1.reset()
UstCntlUSTV_AntragPosition1.UStV_POS = Nothing
UstCntlUSTV_AntragPosition1.Enabled = True
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If vbYes = MsgBox("Möchten Sie den Eintrag wirklich löschen?", vbYesNoCancel) Then
'UstCntlUSTV_AntragPosition1.UStV_POS.delete()
UstCntlUSTV_AntragPosition1.Enabled = False
End If
End Sub
Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint
End Sub
Private Sub btnMail_Click(sender As Object, e As EventArgs) Handles btnMail.Click
If Not ContextMenuStrip1.Items.ContainsKey("excel") Then
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip1.Items.Add(excel)
AddHandler excel.Click, AddressOf mnuItem_Clicked
End If
If Not ContextMenuStrip1.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(mail)
End If
ContextMenuStrip1.Show(Cursor.Position)
End Sub
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
If item.Name = "excel" Then
excelAuswertung()
ElseIf item.Name = "mail" Then
mailmitExcelauswertung()
Else
MsgBox("Funktion nicht implementiert!")
End If
End If
End Sub
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 ,[UStVPo_Leistender] as SupplierName, leist.[UstV_Leistender_Strasse] AS SupplierStreet, leist.[UstV_Leistender_StrasseNr] as SupplierStreetNumber, leist.[UstV_Leistender_PLZ] as SupplierPostalCode, leist.[UstV_Leistender_Stadt] as SupplierCity, leist.[UstV_Leistender_Land] as SupplierCountry, leist.[UstV_Leistender_UstNr] as SupplierVAT_TaxNumber, [UStVPo_Leistungsbezeichnung] as ExpenseCategory ,Round((1119/19*[UStVPo_USteuerbetragEUR]),2) as ExpenseGrossAmount, [UStVPo_USteuerbetragEUR] as ExpenseVATAmount,Round((100/19*[UStVPo_USteuerbetragEUR]),2) as ExpenseNetAmount
FROM [tblUStVPositionen]
inner Join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
inner join [tblUStVAntrag] as antr on antr.UStVAn_ID = [tblUStVPositionen].UStVAn_ID
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") & "</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 btnRMCEinarbeiten_Click(sender As Object, e As EventArgs) Handles btnRMCEinarbeiten.Click
End Sub
' Private Sub cmdITMautÜbernehmen_Click()
' Dim wrk As DAO.Workspace
' Dim qry1 As DAO.QueryDef
' Dim qry2 As DAO.QueryDef
' Dim rst1 As DAO.Recordset
' Dim rstUStVPositionen As DAO.Recordset
' Dim bytSchnittstellenNr As Byte
' Dim fInTransaktion As Boolean
' Dim intUStVPo_ID As Integer
'1380 On Error GoTo PROC_Error
'1390 If Eingabefehler Then Exit Sub
'1400 If Me!UStVAn_LandNr <> 5 Then
'1410 MsgBox "Datenübernahme nicht möglich (Land ist nicht Italien).", vbInformation, "Eingabeprüfung"
'1420 Exit Sub
'1430 End If
' ' Wenn Daten in Formular geändert wurden, Speichern auslösen.
'1440 If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
'1450 DoCmd.Hourglass True
' ' Italienisches Mautarchiv lesen.
'1460 Set wrk = DBEngine.Workspaces(0)
'1470 Set qry1 = dbs.QueryDefs("qryUStVMautITLesen")
'1480 qry1.Parameters("[Param1]") = Me![UStVAn_ReDatVon]
'1490 qry1.Parameters("[Param2]") = Me![UStVAn_ReDatBis]
'1500 qry1.Parameters("[Param3]") = Me![UStVAn_KuNr]
'1510 Set rst1 = qry1.OpenRecordset(dbOpenSnapshot)
'1520 If Not rst1.EOF Then
'1530 bytSchnittstellenNr = 3
'1540 intUStVPo_ID = UStVPo_ID_zuordnen(Me![UStVAn_ID])
'1550 Set rstUStVPositionen = dbs.OpenRecordset("tblUStVPositionen", dbOpenDynaset, dbAppendOnly)
'1560 wrk.BeginTrans
'1570 fInTransaktion = True
'1580 Do Until rst1.EOF
'1590 If RechnungÜbernehmen(rst1!RechnungsDatum, CStr(rst1!Rechnungsnummer), bytSchnittstellenNr, Me!UStVAn_KuNr, Me!UStVAn_LandNr) Then
'1600 intUStVPo_ID = intUStVPo_ID + 1
' ' Schreiben der Umsatzsteuerdaten in die Tabelle.
'1610 With rstUStVPositionen
'1620 .AddNew
'1630 !UStVAn_ID = Me![UStVAn_ID]
'1640 !UStVPo_ID = intUStVPo_ID
'1650 !UStVPo_ReDat = rst1!RechnungsDatum
'1660 !UStVPo_ReNr = CStr(rst1!Rechnungsnummer)
'1670 !UStVPo_Schnittstelle = True
'1680 !UStVPo_SchnittstellenNr = bytSchnittstellenNr
'1690 !UStVPo_Leistungsbezeichnung = "Maut"
'1700 !UStVPo_Leistender = "Telepass"
'1710 !UStVPo_Sachbearbeiter = CurrentUser()
'1720 !UStVPo_Zeitstempel = Now()
' ' Berechnungen
'1730 !UStVPo_USteuerbetragEUR = rst1!MWStBetrag
'1740 !UStVPo_Umrechnungskurs = fktEurokurs(Me![UStVAn_Währungscode], ![UStVPo_ReDat])
'1750 !UStVPo_USteuerbetrag = Int(![UStVPo_USteuerbetragEUR] * !UStVPo_Umrechnungskurs * 100 + 0.5) / 100
'1760 .Update
'1770 End With
' ' UStV-Antragsnummer im Archiv eintragen.
'1780 Set qry2 = dbs.QueryDefs("qryUStVMautITAntragsNrEintragen")
'1790 qry2.Parameters("[prmUStVAn_ID]") = Me![UStVAn_ID]
'1800 qry2.Parameters("[prmVerrechnungsdatum]") = rst1!RechnungsDatum
'1810 qry2.Parameters("[prmCode_Adressat_des_Kontoauszugs]") = rst1!Rechnungsnummer
'1820 qry2.Execute dbFailOnError
'1830 qry2.Close
'1840 Set qry2 = Nothing
'1850 End If
'1860 rst1.MoveNext
'1870 Loop
'1880 wrk.CommitTrans
'1890 fInTransaktion = False
'1900 Me!tblUStVPositionen.Requery
'1910 End If
'PROC_Exit:
'1920 On Error Resume Next
'1930 If Not rstUStVPositionen Is Nothing Then
'1940 rstUStVPositionen.Close
'1950 Set rstUStVPositionen = Nothing
'1960 End If
'1970 If Not rst1 Is Nothing Then
'1980 rst1.Close
'1990 Set rst1 = Nothing
'2000 End If
'2010 If Not qry2 Is Nothing Then
'2020 qry2.Close
'2030 Set qry2 = Nothing
'2040 End If
'2050 If Not qry1 Is Nothing Then
'2060 qry1.Close
'2070 Set qry1 = Nothing
'2080 End If
'2090 If Not wrk Is Nothing Then
'2100 Set wrk = Nothing
'2110 End If
'2120 DoCmd.Hourglass False
'2130 Exit Sub
'PROC_Error:
'2140 If fInTransaktion Then
'2150 wrk.Rollback
'2160 fInTransaktion = False
'2170 End If
'2180 DoCmd.Hourglass False
'2190 ErrNotify Err, "Form_frmUStVAntragserfassung", "cmdITMautÜbernehmen_Click", eNormalError
'2200 Resume PROC_Exit
' End Sub
' Private Function RechnungÜbernehmen(
' ByRef varUStVPo_ReDat As Variant,
' ByRef varUStVPo_ReNr As Variant,
' ByRef varUStVPo_SchnittstellenNr As Variant,
' ByRef varUStVAn_KuNr,
' ByRef varUStVAn_LandNr) As Boolean
' Dim fResult As Boolean
' Dim qry As DAO.QueryDef
' Dim rst As DAO.Recordset
'12000 On Error GoTo PROC_Error
'12010 Set qry = dbs.QueryDefs("qryUStVRechnungÜbernehmen")
'12020 qry.Parameters("[prmUStVPo_ReDat]") = varUStVPo_ReDat
'12030 qry.Parameters("[prmUStVPo_ReNr]") = varUStVPo_ReNr
'12040 qry.Parameters("[prmUStVPo_SchnittstellenNr]") = varUStVPo_SchnittstellenNr
'12050 qry.Parameters("[prmUStVAn_KuNr]") = varUStVAn_KuNr
'12060 qry.Parameters("[prmUStVAn_LandNr]") = varUStVAn_LandNr
'12070 Set rst = qry.OpenRecordset(dbOpenSnapshot)
'12080 If rst.EOF Then fResult = True Else fResult = False
'PROC_Exit:
'12090 On Error Resume Next
'12100 If Not rst Is Nothing Then
'12110 rst.Close
'12120 Set rst = Nothing
'12130 End If
'12140 If Not qry Is Nothing Then
'12150 qry.Close
'12160 Set qry = Nothing
'12170 End If
'12180 RechnungÜbernehmen = fResult
'12190 Exit Function
'PROC_Error:
'12200 Select Case ErrHandler(Err, "Form_frmUStVAntragserfassung", "RechnungÜbernehmen")
' Case 0
'12210 Resume
'12220 Case 1
'12230 ErrNotify Err, "Form_frmUStVAntragserfassung", "RechnungÜbernehmen", eNormalError
'12240 Case 2
'12250 ErrNotify Err, "Form_frmUStVAntragserfassung", "RechnungÜbernehmen", eHiddenError
'12260 End Select
'12270 fResult = False
'12280 Resume PROC_Exit
' End Function
End Class