Files
SDL/SDL/USTV/ustCntlUSTV_AntragPosition.vb
2026-10-22 10:46:38 +02:00

1297 lines
52 KiB
VB.net

Imports VERAG_PROG_ALLGEMEIN
Public Class ustCntlUSTV_AntragPosition
Public UStV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen = Nothing
Public UStV_Leist As VERAG_PROG_ALLGEMEIN.cUStVLeistender = Nothing
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Public Antrag_LandKz = ""
Public Event EV_PREV()
Public Event EV_NEXT()
Public Event CHANGED(UStVPo_ID)
Private _kundenNr As Integer
Private _gridAktiv As Boolean
Private _txtChanged As Boolean
Dim API As cATEZ_NCTS_IN
Private Sub btnBildAuf_Click(sender As Object, e As EventArgs) Handles btnBildAuf.Click
RaiseEvent EV_PREV()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
RaiseEvent EV_NEXT()
End Sub
Sub reset(Antrag_LandKz As String)
txtRgDatum._value = ""
txtRgNr._value = ""
btnLeistenderSave.Visible = False
txtUmrechnungskurs._value = ""
txtLeistungsbezeichnung._value = ""
txtUSTBetrag._value = 0
txtUSTBetragEUR._value = 0
txtNettobetrag._value = 0
txtNettobetragEUR._value = 0
cbxAPI.Checked = False
cboSchnittstellennr.changeItem("")
lblAenderungsdatum.Text = "-"
lblSachbearbeiter.Text = "-"
sbLeistender._value = ""
sbLeistender.Text = ""
pnlAdresse.Enabled = True 'enablePanel 'immer änderbar!
txtStrasse.Text = ""
txtStrassenNr.Text = ""
txtPLZ.Text = ""
txtOrt.Text = ""
txtLand.Text = ""
txtUIDNr.Text = ""
Me.Antrag_LandKz = Antrag_LandKz
_gridAktiv = True
InitLeistenderSearchBox()
End Sub
Sub initUsrCntlPDF()
scanSonstiges.INIT(_kundenNr, "MDM", "MDM_DATEN", "USTVA_" & UStV_POS.UStVAn_ID & "_" & UStV_POS.UStVPo_interneNr)
'scanSonstiges.INIT_daId(da_id)
scanSonstiges.Enabled = True
btnAPIUbload.Enabled = False
End Sub
Sub setValues(kdnr As Integer, UStV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen, Antrag_LandKz As String, UStV_Leitender As VERAG_PROG_ALLGEMEIN.cUStVLeistender, atez_api As cATEZ_NCTS_IN)
initSchnittstellenNr()
_gridAktiv = False
btnLeistenderSave.Visible = False
Me.Antrag_LandKz = Antrag_LandKz
Me.UStV_POS = UStV_POS
Me._kundenNr = kdnr
cbxAPI.Checked = If(UStV_POS.UStVPo_Schnittstelle, False)
cboSchnittstellennr.changeItem(If(UStV_POS.UStVPo_SchnittstellenNr, ""))
If UStV_POS.UStVPo_Zeitstempel IsNot Nothing Then lblAenderungsdatum.Text = CDate(UStV_POS.UStVPo_Zeitstempel).ToString("dd.MM.yyyy HH:mm")
cboLeistungsgeber.Text = If(UStV_POS.UStVPo_Leistender, "")
txtRgDatum._value = ValueOrEmpty(UStV_POS.UStVPo_ReDat)
txtRgNr._value = ValueOrEmpty(UStV_POS.UStVPo_ReNr)
txtLeistungsbezeichnung.Text = ValueOrEmpty(UStV_POS.UStVPo_Leistungsbezeichnung)
txtUSTBetrag.Text = ValueOrEmpty(UStV_POS.UStVPo_USteuerbetrag)
txtUmrechnungskurs.Text = ValueOrEmpty(UStV_POS.UStVPo_Umrechnungskurs)
txtUSTBetragEUR.Text = ValueOrEmpty(UStV_POS.UStVPo_USteuerbetragEUR)
txtNettobetrag.Text = ValueOrEmpty(UStV_POS.UStVPo_Nettobetrag)
txtNettobetragEUR.Text = ValueOrEmpty(UStV_POS.UStVPo_NettobetragEUR)
lblSachbearbeiter.Text = ValueOrEmpty(UStV_POS.UStVPo_Sachbearbeiter)
If UStV_Leitender IsNot Nothing Then
sbLeistender.Text = UStV_Leitender.UStV_Leistender
If IsNumeric(UStV_Leitender.UStV_LeistenderId) AndAlso UStV_Leitender.UStV_LeistenderId > 0 Then
sbLeistender._value = UStV_Leitender.UStV_LeistenderId
sbLeistender_VALUE_CHANGED()
Else
'sbLeistender._value = ""
End If
'sbLeistender._value = ""
Else
sbLeistender._value = ""
sbLeistender.Text = ""
End If
loadChangedDSToPanel(UStV_Leitender, True)
API = atez_api
Dim da_id = -1
If Not IsDBNull(UStV_POS.UStVPo_daId) AndAlso UStV_POS.UStVPo_daId > 0 Then
da_id = UStV_POS.UStVPo_daId
Else
'--------------------------------------------------------------------------------------------
'Bei SchnittstelleNr 1 wird die interne RK_ID der Rechnung im Feld DA_ID gespeichert, wenn es dann "aus Zufall" eine echte DA_ID mit dieser RK_ID-Nr gibt, wird dieser Name angezeigt (aber geladen wird die korrekte Rechnung)!!!!!!!!!!!!!!
'--------------------------------------------------------------------------------------------
Select Case If(UStV_POS.UStVPo_SchnittstellenNr, -1)
Case 6, 0, 11 : da_id = 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",,, -1)
Case 7 : da_id = sql.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & UStV_POS.UStVPo_ReDat & "' and rmc_reNr='" & UStV_POS.UStVPo_ReNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_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='" & UStV_POS.UStVPo_ReDat & "' and country='" & Antrag_LandKz & "' AND partner_customer_number = " & kdnr & " AND daId is not null", "FMZOLL",,, -1)
Case 10 : da_id = sql.getValueTxtBySql("SELECT TOP(1) [daId] FROM [tblUTAImportNew] where Rechnungsdatum='" & UStV_POS.UStVPo_ReDat & "' and Abrechnungsnummer='" & UStV_POS.UStVPo_ReNr & "' and Lieferland_ISO2='" & Antrag_LandKz & "' AND 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] ='" & 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",,, -1) : scanSonstiges.Enabled = False
Case 1 : da_id = 1 : scanSonstiges.Enabled = False 'VERAG-RECHNUGNEN werden immer direkt OHNE daid geöffnet!
Case -1 : da_id = IIf(UStV_POS.UStVPo_daId > 0, UStV_POS.UStVPo_daId, -1)
End Select
End If
If da_id > -1 Then
scanSonstiges.INIT_daId(da_id)
scanSonstiges.Enabled = UStV_POS.UStVPo_daId_loeschbar 'Not UStV_POS.UStVPo_SchnittstellenNr > 0
btnAPIUbload.Enabled = True 'hochladbar aber nicht einfügen lassen! UStV_POS.UStVPo_daId_loeschbar
Else
initUsrCntlPDF()
'scanSonstiges.INIT(kdnr, "MDM", "MDM_DATEN", "USTVA_" & UStV_POS.UStVAn_ID & "_" & UStV_POS.UStVPo_interneNr)
''scanSonstiges.INIT_daId(da_id)
'scanSonstiges.Enabled = True
'btnAPIUbload.Enabled = False
End If
If txtNettobetrag.Text = "" AndAlso txtNettobetragEUR.Text <> "" Then
btn_EUR_to_FW.Visible = True
Else
btn_EUR_to_FW.Visible = False
End If
scanUSTVFABest.INIT(kdnr, "KUNDENDATEN", "FA_Bestaetigungen")
scanUSTVVollmachten.INIT(kdnr, "KUNDENDATEN", "USTV_Vollmachten")
InitLeistenderSearchBox()
_gridAktiv = True
End Sub
Sub getValues(ByRef UStV_POS As cUStVPositionen, ByRef save As Boolean)
If UStV_POS Is Nothing OrElse UStV_POS.UStVAn_ID = 0 Then UStV_POS = New VERAG_PROG_ALLGEMEIN.cUStVPositionen()
lblWarning.Text = ""
If txtRgNr.Text <> "" Then
UStV_POS.UStVPo_ReNr = txtRgNr.Text
Else
lblWarning.Text = "RechnungsNr muss ausgefüllt werden."
save = False
End If
If txtRgDatum.Text <> "" AndAlso IsDate(txtRgDatum.Text) Then
UStV_POS.UStVPo_ReDat = txtRgDatum._value
Else
lblWarning.Text = "Rechnungsdatum muss ausgefüllt werden."
save = False
End If
Dim ustBetrag As Decimal
If Not TryGetDecimal(txtUSTBetrag.Text, ustBetrag) Then
lblWarning.Text = "UST-Betrag ist ungültig."
save = False
Else
UStV_POS.UStVPo_USteuerbetrag = ustBetrag
End If
Dim ustBetragEUR As Decimal
If Not TryGetDecimal(txtUSTBetragEUR.Text, ustBetragEUR) Then
lblWarning.Text = "UST-Betrag ist ungültig."
save = False
Else
UStV_POS.UStVPo_USteuerbetragEUR = ustBetragEUR
End If
Dim Nettobetrag As Decimal
If TryGetDecimal(txtNettobetrag.Text, Nettobetrag) Then
UStV_POS.UStVPo_Nettobetrag = Nettobetrag
End If
Dim NettobetragEUR As Decimal
If TryGetDecimal(txtNettobetragEUR.Text, NettobetragEUR) Then
UStV_POS.UStVPo_NettobetragEUR = NettobetragEUR
End If
If txtLeistungsbezeichnung.Text <> "" Then
UStV_POS.UStVPo_Leistungsbezeichnung = txtLeistungsbezeichnung.Text
Else
lblWarning.Text = "Leistungsbez. muss ausgefüllt werden."
save = False
End If
If Not txtUmrechnungskurs.Text = "" Then
If txtUmrechnungskurs.Text <> "" Then
Dim Umrechnungskurs As Decimal
If TryGetDecimal(txtUmrechnungskurs.Text, Umrechnungskurs) Then
UStV_POS.UStVPo_Umrechnungskurs = Umrechnungskurs
End If
End If
Else
lblWarning.Text = "Umrechnungskurs muss ausgefüllt werden."
save = False
End If
If sbLeistender._value IsNot Nothing AndAlso sbLeistender._value <> "" Then
If IsNumeric(sbLeistender._value) Then
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(CInt(sbLeistender._value))
Else
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(sbLeistender._value)
End If
UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender
If UStV_Leist.UStV_LeistenderId > 0 Then UStV_POS.UStVPo_LeistenderId = UStV_Leist.UStV_LeistenderId
Else
UStV_POS.UStVPo_Leistender = Nothing
End If
UStV_POS.UStVPo_Schnittstelle = cbxAPI.Checked
UStV_POS.UStVPo_SchnittstellenNr = If(cboSchnittstellennr.SelectedItem IsNot Nothing, cboSchnittstellennr._value, -1)
UStV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
UStV_POS.UStVPo_Zeitstempel = Now
End Sub
Private Sub InitLeistenderSearchBox()
Dim filter As String = "UstV_aktiv = 1"
If cbxAntragsfilter.Checked AndAlso Not String.IsNullOrWhiteSpace(Antrag_LandKz) Then
filter &= " AND LEFT(UstV_Leistender_UstNr, 2) = '" & Antrag_LandKz.Replace("'", "''") & "'"
End If
sbLeistender.initSearchBox(Me.FindForm, "[UStV_LeistenderId],[UStV_Leistender],[UStV_Leistender] AS Leistender,[UstV_Leistender_PLZ] AS PLZ,([UstV_Leistender_Strasse] + ' ' + [UstV_Leistender_StrasseNr]) AS Strasse,[UstV_Leistender_Stadt] AS Stadt FROM [tblUStVLeistender]", {"UStV_Leistender", "UstV_Leistender_UstNr"}, filter, "UStV_Leistender", "UStV_LeistenderId", "Leistender", "FMZOLL",, 400, 200, {"UStV_Leistender", "UStV_LeistenderId"})
End Sub
Private Sub ustCntlUSTV_AntragPosition_KeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown
If e.KeyValue = Keys.PageDown Then
RaiseEvent EV_NEXT()
End If
If e.KeyValue = Keys.PageUp Then
RaiseEvent EV_PREV()
End If
End Sub
Function save()
Dim setSave As Boolean = True
getValues(UStV_POS, setSave)
If setSave Then Return UStV_POS.SAVE
Return False
End Function
Private Shared Function ValueOrEmpty(value As Object) As String
If value Is Nothing OrElse IsDBNull(value) Then
Return String.Empty
End If
Return Convert.ToString(value)
End Function
Private Function RoundCurrency(value As Decimal) As Decimal
Return Decimal.Round(value, 2, MidpointRounding.AwayFromZero)
End Function
Private Function TryGetDecimal(text As String, ByRef value As Decimal) As Boolean
text = text.Trim()
If text = "" Then
Return False
End If
Return Decimal.TryParse(
text,
Globalization.NumberStyles.Number,
Globalization.CultureInfo.CurrentCulture,
value
)
End Function
Sub values_changed()
lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
lblAenderungsdatum.Text = Now.ToString("dd.MM.yyyy HH:mm")
' If e.Column.ColumnName = "Sachbearbeiter" Or e.Column.ColumnName = "Änderungsdatum" Then Exit Sub
If save() Then
RaiseEvent CHANGED(UStV_POS.UStVPo_ID)
End If
End Sub
Private Sub loadChangedDSToPanel(UStV_Leitender As VERAG_PROG_ALLGEMEIN.cUStVLeistender, Optional initial As Boolean = False)
Dim adressLoadedByLeistender As Boolean = False
UStV_Leist = UStV_Leitender
'If newLeistender <> "" Then UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(newLeistender)
If UStV_Leist Is Nothing Then
txtStrasse.Text = ""
txtStrassenNr.Text = ""
txtPLZ.Text = ""
txtOrt.Text = ""
txtLand.Text = ""
txtUIDNr.Text = ""
btnDel.Visible = False
Else
pnlAdresse.Enabled = True 'enablePanel 'immer änderbar!
txtStrasse.Text = If(UStV_Leist.UstV_Leistender_Strasse, "")
txtStrassenNr.Text = If(UStV_Leist.UstV_Leistender_StrasseNr, "")
txtPLZ.Text = If(UStV_Leist.UstV_Leistender_PLZ, "")
txtOrt.Text = If(UStV_Leist.UstV_Leistender_Stadt, "")
txtLand.Text = If(UStV_Leist.UstV_Leistender_Land, "")
txtUIDNr.Text = If(UStV_Leist.UstV_Leistender_UstNr, "")
If UStV_Leist.hasEntry Then
adressLoadedByLeistender = True
btnLeistenderSave.Visible = False
btnDel.Visible = True
Else
btnLeistenderSave.Visible = True
btnDel.Visible = False
End If
End If
SetAddressChangeHandlers(Not initial AndAlso Not adressLoadedByLeistender)
If initial OrElse adressLoadedByLeistender Then
btnLeistenderSave.Visible = False
End If
End Sub
Private Sub SomethingChanged(sender As Object, e As EventArgs)
btnLeistenderSave.Visible = True
End Sub
Private Sub picSave_Click(sender As Object, e As EventArgs) Handles btnLeistenderSave.Click
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
MsgBox("keine Berechtigung!")
Exit Sub
End If
Dim leistNew = sbLeistender.Text
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(leistNew)
If Not UStV_Leist.hasEntry Then
If vbYes = MsgBox("Dieser Leistende wurde noch nicht angelegt!" & vbNewLine & UStV_Leist.UStV_Leistender & " anlegen? ", vbYesNo) Then
'adresseChanged = True
UStV_Leist.UstV_Leistender_Strasse = If(txtStrasse.Text, "")
UStV_Leist.UstV_Leistender_StrasseNr = If(txtStrassenNr.Text, "")
UStV_Leist.UstV_Leistender_PLZ = If(txtPLZ.Text, "")
UStV_Leist.UstV_Leistender_Stadt = If(txtOrt.Text, "")
UStV_Leist.UstV_Leistender_Land = If(txtLand.Text, "")
UStV_Leist.UstV_Leistender_UstNr = If(txtUIDNr.Text, "")
Dim saveid = UStV_Leist.SAVEID
If saveid > 0 Then
btnLeistenderSave.Visible = False
UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender
UStV_POS.UStVPo_LeistenderId = saveid
'RaiseEvent CHANGED(UStV_POS.UStVPo_ID)
values_changed()
End If
End If
Else
Dim adresseChanged As Boolean = False
If UStV_Leist.UstV_Leistender_Strasse <> If(txtStrasse.Text, "") Then adresseChanged = True
If UStV_Leist.UstV_Leistender_StrasseNr <> If(txtStrassenNr.Text, "") Then adresseChanged = True
If UStV_Leist.UstV_Leistender_PLZ <> If(txtPLZ.Text, "") Then adresseChanged = True
If UStV_Leist.UstV_Leistender_Stadt <> If(txtOrt.Text, "") Then adresseChanged = True
If UStV_Leist.UstV_Leistender_Land <> If(txtLand.Text, "") Then adresseChanged = True
If UStV_Leist.UstV_Leistender_UstNr <> If(txtUIDNr.Text, "") Then adresseChanged = True
UStV_Leist.UstV_Leistender_Strasse = If(txtStrasse.Text, "")
UStV_Leist.UstV_Leistender_StrasseNr = If(txtStrassenNr.Text, "")
UStV_Leist.UstV_Leistender_PLZ = If(txtPLZ.Text, "")
UStV_Leist.UstV_Leistender_Stadt = If(txtOrt.Text, "")
UStV_Leist.UstV_Leistender_Land = If(txtLand.Text, "")
UStV_Leist.UstV_Leistender_UstNr = If(txtUIDNr.Text, "")
UStV_Leist.UstV_Leistender_Adresse = True
If UStV_Leist.UstV_Leistender_Adresse And adresseChanged Then
If Not vbYes = MsgBox("Bei diesem Leistenden ist bereits eine Adresse hinterlegt, soll diese Adresse wirklich geändert werden?", vbYesNo) Then
btnLeistenderSave.Visible = False
UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender
'RaiseEvent CHANGED(UStV_POS.UStVPo_ID)
values_changed()
Exit Sub
End If
End If
If UStV_Leist.SAVE() Then
If Not UStV_Leist.UstV_Leistender_Adresse And adresseChanged Then UStV_Leist.UstV_Leistender_Adresse = True
btnLeistenderSave.Visible = False
UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender
'RaiseEvent CHANGED(UStV_POS.UStVPo_ID)
values_changed()
End If
End If
End Sub
Private Sub cboLeistungsgeber_DropDown(sender As Object, e As EventArgs) Handles cboLeistungsgeber.DropDown
cboLeistungsgeber.Items.Clear()
cboLeistungsgeber.fillWithSQL("select top 100 UStV_Leistender from tblUStVLeistender Where 1= 1 " & IIf(cboLeistungsgeber.Text <> "", "AND UStV_Leistender like '" & cboLeistungsgeber.Text & "%'", ""), False, "FMZOLL", True)
cboLeistungsgeber.changeItem(If(cboLeistungsgeber.Text, ""))
End Sub
Private Sub initSchnittstellenNr()
If cboSchnittstellennr.Items.Count = 0 Then
cboSchnittstellennr.Items.Add(New MyListItem("", -1))
cboSchnittstellennr.Items.Add(New MyListItem("VERAG 360", 1))
cboSchnittstellennr.Items.Add(New MyListItem("IDS alt", 2))
cboSchnittstellennr.Items.Add(New MyListItem("TELEPASS", 3))
cboSchnittstellennr.Items.Add(New MyListItem("MSE alt", 4))
cboSchnittstellennr.Items.Add(New MyListItem("UTA alt", 5))
cboSchnittstellennr.Items.Add(New MyListItem("PLOSE", 6))
cboSchnittstellennr.Items.Add(New MyListItem("RMC", 7))
cboSchnittstellennr.Items.Add(New MyListItem("IDS neu", 8))
cboSchnittstellennr.Items.Add(New MyListItem("MSE neu", 9))
cboSchnittstellennr.Items.Add(New MyListItem("UTA neu", 10))
cboSchnittstellennr.Items.Add(New MyListItem("PLOSE neu", 11))
cboSchnittstellennr.Items.Add(New MyListItem("IDS neu", 12))
End If
End Sub
Private Sub sbLeistender_VALUE_CHANGED() Handles sbLeistender.VALUE_CHANGED
If sbLeistender._value IsNot Nothing AndAlso sbLeistender._value <> "" Then
If IsNumeric(sbLeistender._value) Then
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(CInt(sbLeistender._value))
Else
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(sbLeistender._value)
End If
loadChangedDSToPanel(UStV_Leist)
Else
loadChangedDSToPanel(Nothing, True)
End If
End Sub
Private Sub txtUSTBetrag_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtUSTBetrag.PreviewKeyDown, txtUSTBetragEUR.PreviewKeyDown, txtRgDatum.PreviewKeyDown, txtRgNr.PreviewKeyDown, txtUmrechnungskurs.PreviewKeyDown, sbLeistender.PreviewKeyDown, txtLeistungsbezeichnung.PreviewKeyDown
lblWarning.Text = ""
If e.KeyValue <> Keys.Tab Then Return
If Not CanEdit() Then
lblWarning.Text = "keine Berechtigung/bereits abgerech."
Return
End If
If Not _gridAktiv OrElse Me.FindForm Is Nothing Then Return
lblWarning.Text = ""
Select Case True
Case sender Is txtUSTBetrag
HandleVatAmountChanged()
Case sender Is txtUSTBetragEUR
HandleVatAmountEurChanged()
Case sender Is txtUmrechnungskurs
HandleExchangeRateChanged()
Case sender Is txtRgDatum
HandleInvoiceDateChanged()
Case sender Is txtLeistungsbezeichnung
HandleServiceDescriptionChanged()
Case sender Is sbLeistender
HandleSupplierChanged()
End Select
SaveIfChanged()
'If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub
'If _gridAktiv And Me.FindForm IsNot Nothing Then
' ' Eingabeprüfung
' If e.KeyValue = 9 Then
' lblWarning.Text = ""
' If sender Is txtUSTBetrag Or sender Is txtUSTBetragEUR Or sender Is txtUmrechnungskurs Then
' If txtUSTBetrag.Text = "" Then
' lblWarning.Text = "Bitte Umsatzsteuerbetrag eingeben."
' Exit Sub
' End If
' End If
' If sender Is txtUSTBetrag Then
' If IsNumeric(txtUSTBetrag.Text) AndAlso IsNumeric(txtUmrechnungskurs.Text) Then
' If UStV_POS.UStVPo_USteuerbetrag Is Nothing OrElse CDbl(UStV_POS.UStVPo_USteuerbetrag) <> CDbl(txtUSTBetrag.Text) Then
' 'Umrechnung bei Währung <> EUR im Antrag!
' Dim antr As New cUSTVAntrag(UStV_POS.UStVAn_ID)
' If antr.UStVAn_Währungscode <> "EUR" AndAlso (IsDate(UStV_POS.UStVPo_ReDat) OrElse (txtRgDatum.Text <> "" AndAlso IsDate(txtRgDatum.Text))) Then
' If txtUmrechnungskurs.Text = 1 Or txtUmrechnungskurs.Text = "" Then
' Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
' If IsDate(UStV_POS.UStVPo_ReDat) Then
' txtUmrechnungskurs.Text = kurs.GET_KURS(antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat))
' ElseIf IsDate(txtRgDatum.Text) Then
' txtUmrechnungskurs.Text = kurs.GET_KURS(antr.UStVAn_Währungscode, CDate(txtRgDatum.Text))
' Else
' txtUmrechnungskurs.Text = kurs.ezb_kurs
' End If
' End If
' End If
' txtUSTBetragEUR.Text = RoundCurrency(txtUSTBetrag.Text / txtUmrechnungskurs.Text).ToString()
' If IsNumeric(txtNettobetrag.Text) Then txtNettobetragEUR.Text = RoundCurrency(txtNettobetrag.Text / txtUmrechnungskurs.Text).ToString() 'Math.Floor((txtNettobetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100
' _txtChanged = True
' End If
' End If
' ElseIf sender Is txtUSTBetragEUR Then
' 'so herum nicht umrechnen!!!!
' 'If IsNumeric(txtUSTBetragEUR._value) AndAlso IsNumeric(txtUmrechnungskurs._value) Then
' ' txtUSTBetrag.Text = Math.Floor((txtUSTBetragEUR._value * txtUmrechnungskurs._value) * 100 + 0.5) / 100
' ' 'values_changed()
' 'End If
' If IsNumeric(txtUSTBetragEUR.Text) AndAlso IsNumeric(txtUSTBetrag.Text) Then
' If UStV_POS.UStVPo_USteuerbetragEUR Is Nothing OrElse CDbl(UStV_POS.UStVPo_USteuerbetragEUR) <> CDbl(txtUSTBetragEUR.Text) Then
' 'If CDbl(UStV_POS.UStVPo_USteuerbetragEUR) <> CDbl(txtUSTBetragEUR.Text) OrElse UStV_POS.UStVPo_USteuerbetragEUR Is Nothing Then
' Dim zahl1 = CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text)
' txtUmrechnungskurs.Text = Math.Round(zahl1, 2)
' _txtChanged = True
' End If
' End If
' ElseIf sender Is txtUmrechnungskurs Then
' If IsNumeric(txtUSTBetrag.Text) AndAlso IsNumeric(txtUmrechnungskurs._value) Then
' If UStV_POS.UStVPo_Umrechnungskurs <> txtUmrechnungskurs.Text.Replace(",", ".") OrElse UStV_POS.UStVPo_Umrechnungskurs Is Nothing Then
' txtUSTBetragEUR.Text = RoundCurrency(txtUSTBetrag.Text / txtUmrechnungskurs.Text).ToString() ' Math.Floor((txtUSTBetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100
' If IsNumeric(txtNettobetrag.Text) Then txtNettobetragEUR.Text = RoundCurrency(txtNettobetrag.Text / txtUmrechnungskurs.Text).ToString() 'Math.Floor((txtNettobetrag.Text / txtUmrechnungskurs.Text) * 100 + 0.5) / 100
' _txtChanged = True
' End If
' End If
' 'ElseIf sender Is sbLeistender Then
' ' If UStV_Leist.hasEntry Then
' ' UStV_POS.UStVPo_Leistender = UStV_Leist.UStV_Leistender
' ' If UStV_Leist.UStV_LeistenderId > 0 Then UStV_POS.UStVPo_LeistenderId = UStV_Leist.UStV_LeistenderId
' ' txtChanged = True
' ' End If
' ElseIf sender Is txtRgDatum Then
' If txtRgDatum.Text <> "" Then
' txtRgDatum.Text = txtRgDatum.Text.Replace("-", ".")
' txtRgDatum.Text = txtRgDatum.Text.Replace(",", ".")
' Dim antr As New cUSTVAntrag(UStV_POS.UStVAn_ID)
' If IsDate(txtRgDatum.Text) AndAlso ((CDate(txtRgDatum.Text) > antr.UStVAn_ReDatBis) OrElse (CDate(txtRgDatum.Text) < antr.UStVAn_ReDatVon)) Then
' MsgBox("Rechnungsdatum " & CDate(txtRgDatum.Text) & " darf nicht außerhalb der Antragsperiode liegen!")
' Else
' _txtChanged = True
' End If
' End If
' ElseIf sender Is txtLeistungsbezeichnung Then
' 'If UStV_POS.UStVPo_Leistungsbezeichnung <> txtLeistungsbezeichnung.Text Then
' 'UStV_POS.UStVPo_Leistungsbezeichnung = txtLeistungsbezeichnung.Text
' _txtChanged = True
' 'End If
' ElseIf sender Is sbLeistender Then
' If sbLeistender.Text <> "" Then
' If sbLeistender.Text IsNot Nothing AndAlso sbLeistender.Text <> "" Then
' If IsNumeric(sbLeistender.Text) Then
' If UStV_Leist IsNot Nothing AndAlso UStV_Leist.UStV_Leistender <> "" AndAlso (UStV_POS.UStVPo_Leistender <> sbLeistender.Text OrElse UStV_POS.UStVPo_LeistenderId <> sbLeistender.Text) Then
' 'speichern der Änderung nur, wenn 1. Leistender gelöscht wird.
' _txtChanged = True
' ElseIf UStV_Leist Is Nothing Then
' _txtChanged = True
' End If
' UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(CInt(sbLeistender.Text))
' Else
' If UStV_Leist IsNot Nothing AndAlso UStV_Leist.UStV_Leistender <> "" AndAlso (UStV_Leist.UStV_Leistender <> sbLeistender.Text OrElse UStV_POS.UStVPo_Leistender <> sbLeistender.Text) Then
' _txtChanged = True
' ElseIf UStV_Leist Is Nothing Then
' _txtChanged = True
' End If
' End If
' UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(sbLeistender.Text)
' loadChangedDSToPanel(UStV_Leist)
' Else
' If UStV_POS.UStVPo_Leistender <> "" OrElse UStV_POS.UStVPo_LeistenderId <> 0 Then
' loadChangedDSToPanel(Nothing, True)
' End If
' End If
' End If
' 'MsgBox()
' End If
' End If
' If _txtChanged Then
' values_changed()
' _txtChanged = False
' End If
'End If
End Sub
Private Function CanEdit() As Boolean
Dim allowed As Boolean = False
allowed = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm)
If allowed Then
If UStV_POS.UStVPo_VZ_RKID IsNot Nothing AndAlso CInt(UStV_POS.UStVPo_VZ_RKID) > 0 Then
allowed = False
End If
End If
Return allowed
End Function
Private Sub HandleVatAmountChanged()
If String.IsNullOrWhiteSpace(txtUSTBetrag.Text) Then
lblWarning.Text = "Bitte Umsatzsteuerbetrag eingeben."
Return
End If
Dim ustBetrag As Decimal
Dim umrechnungskurs As Decimal
If Not TryGetDecimal(txtUSTBetrag.Text, ustBetrag) Then
lblWarning.Text = "USt-Betrag ist ungültig."
Return
End If
If Not TryGetDecimal(txtUmrechnungskurs.Text, umrechnungskurs) OrElse
umrechnungskurs <= 0 Then
LoadExchangeRate()
If Not TryGetDecimal(txtUmrechnungskurs.Text, umrechnungskurs) OrElse
umrechnungskurs <= 0 Then
lblWarning.Text = "Umrechnungskurs ist ungültig."
Return
End If
End If
Dim oldValueChanged As Boolean =
UStV_POS Is Nothing OrElse
UStV_POS.UStVPo_USteuerbetrag Is Nothing OrElse
Convert.ToDecimal(UStV_POS.UStVPo_USteuerbetrag) <> ustBetrag
If Not oldValueChanged Then Return
txtUSTBetragEUR.Text =
RoundCurrency(ustBetrag / umrechnungskurs).ToString()
Dim nettoBetrag As Decimal
If TryGetDecimal(txtNettobetrag.Text, nettoBetrag) Then
txtNettobetragEUR.Text =
RoundCurrency(nettoBetrag / umrechnungskurs).ToString()
End If
_txtChanged = True
End Sub
Private Sub HandleVatAmountEurChanged()
Dim ustBetragEUR As Decimal
Dim ustBetrag As Decimal
If Not TryGetDecimal(txtUSTBetragEUR.Text, ustBetragEUR) Then
Return
End If
If Not TryGetDecimal(txtUSTBetrag.Text, ustBetrag) Then
Return
End If
If ustBetragEUR = 0 Then
lblWarning.Text = "USt-Betrag EUR darf nicht 0 sein."
Return
End If
Dim oldValueChanged As Boolean = UStV_POS Is Nothing OrElse UStV_POS.UStVPo_USteuerbetragEUR Is Nothing OrElse Convert.ToDecimal(UStV_POS.UStVPo_USteuerbetragEUR) <> ustBetragEUR
If Not oldValueChanged Then Return
Dim kurs As Decimal = RoundCurrency(ustBetrag / ustBetragEUR)
txtUmrechnungskurs.Text = kurs.ToString()
_txtChanged = True
End Sub
Private Sub HandleExchangeRateChanged()
Dim ustBetrag As Decimal
Dim umrechnungskurs As Decimal
If Not TryGetDecimal(txtUSTBetrag.Text, ustBetrag) Then
Return
End If
If Not TryGetDecimal(txtUmrechnungskurs.Text, umrechnungskurs) Then
lblWarning.Text = "Umrechnungskurs ist ungültig."
Return
End If
If umrechnungskurs <= 0 Then
lblWarning.Text = "Umrechnungskurs muss größer als 0 sein."
Return
End If
Dim oldKurs As Decimal
If UStV_POS IsNot Nothing AndAlso UStV_POS.UStVPo_Umrechnungskurs IsNot Nothing AndAlso TryGetDecimal(Convert.ToString(UStV_POS.UStVPo_Umrechnungskurs), oldKurs) Then
If oldKurs = umrechnungskurs Then
Return
End If
End If
txtUSTBetragEUR.Text =
RoundCurrency(ustBetrag / umrechnungskurs).ToString()
Dim nettoBetrag As Decimal
If TryGetDecimal(txtNettobetrag.Text, nettoBetrag) Then
txtNettobetragEUR.Text =
RoundCurrency(nettoBetrag / umrechnungskurs).ToString()
End If
_txtChanged = True
End Sub
Private Sub HandleInvoiceDateChanged()
If String.IsNullOrWhiteSpace(txtRgDatum.Text) Then
Return
End If
txtRgDatum.Text =
txtRgDatum.Text.Replace("-", ".").Replace(",", ".")
Dim rechnungsDatum As DateTime
If Not DateTime.TryParse(txtRgDatum.Text, rechnungsDatum) Then
lblWarning.Text = "Rechnungsdatum ist ungültig."
Return
End If
Dim antrag As New cUSTVAntrag(UStV_POS.UStVAn_ID)
If rechnungsDatum > antrag.UStVAn_ReDatBis OrElse
rechnungsDatum < antrag.UStVAn_ReDatVon Then
MsgBox("Rechnungsdatum " & rechnungsDatum.ToString("dd.MM.yyyy") & " darf nicht außerhalb der Antragsperiode liegen!")
Return
End If
_txtChanged = True
End Sub
Private Sub HandleServiceDescriptionChanged()
If String.IsNullOrWhiteSpace(txtLeistungsbezeichnung.Text) Then
lblWarning.Text = "Leistungsbez. muss ausgefüllt werden."
Return
End If
_txtChanged = True
End Sub
Private Sub HandleSupplierChanged()
Dim supplierText As String = sbLeistender.Text.Trim()
If String.IsNullOrWhiteSpace(supplierText) Then
If UStV_POS IsNot Nothing AndAlso (UStV_POS.UStVPo_Leistender <> "" OrElse UStV_POS.UStVPo_LeistenderId <> 0) Then
UStV_Leist = Nothing
loadChangedDSToPanel(Nothing, True)
_txtChanged = True
End If
Return
End If
Dim supplier As VERAG_PROG_ALLGEMEIN.cUStVLeistender
If IsNumeric(supplierText) Then
supplier = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(CInt(supplierText))
Else
supplier = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(supplierText)
End If
If supplier Is Nothing Then Return
Dim changed As Boolean = False
If UStV_Leist Is Nothing Then
changed = True
ElseIf UStV_POS Is Nothing Then
changed = True
ElseIf UStV_POS.UStVPo_Leistender <> supplier.UStV_Leistender Then
changed = True
ElseIf UStV_POS.UStVPo_LeistenderId <> supplier.UStV_LeistenderId Then
changed = True
End If
UStV_Leist = supplier
loadChangedDSToPanel(UStV_Leist)
If changed Then
_txtChanged = True
End If
End Sub
Private Sub LoadExchangeRate()
If UStV_POS Is Nothing Then Return
Dim antrag As New cUSTVAntrag(UStV_POS.UStVAn_ID)
If antrag.UStVAn_Währungscode = "EUR" Then
txtUmrechnungskurs.Text = "1"
Return
End If
Dim rechnungsDatum As DateTime
If DateTime.TryParse(txtRgDatum.Text, rechnungsDatum) Then
Dim kurs As New cEZB_Waehrungskurse(antrag.UStVAn_Währungscode)
txtUmrechnungskurs.Text = kurs.GET_KURS(antrag.UStVAn_Währungscode, rechnungsDatum).ToString()
End If
End Sub
Private Sub SaveIfChanged()
If Not _txtChanged Then Return
_txtChanged = False
values_changed()
End Sub
Private Sub scanSonstiges_FileAdded(id As String, path As String, name As String) Handles scanSonstiges.FileAdded
getValues(UStV_POS, True)
UStV_POS.UStVPo_daId = id
If UStV_POS.SAVE() Then
scanSonstiges.INIT_daId(UStV_POS.UStVPo_daId)
RaiseEvent CHANGED(UStV_POS.UStVPo_ID)
End If
End Sub
Private Sub scanSonstiges_FileDeleted() Handles scanSonstiges.FileDeleted
getValues(UStV_POS, True)
UStV_POS.UStVPo_daId = Nothing
sql.doSQL("update tblUStVPositionen set UStVPo_daId = NULL where UStVAn_ID = " & UStV_POS.UStVAn_ID & " and UStVPo_daId > 0 and isnull(UStVPo_daId, 0) not in (select da_id from tblDatenarchiv) ", "FMZOLL")
If UStV_POS.SAVE() Then RaiseEvent CHANGED(UStV_POS.UStVPo_ID)
End Sub
Private Sub cbxAntragsfilter_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAntragsfilter.CheckedChanged
InitLeistenderSearchBox()
End Sub
Private Sub mnuItemKIUPLOAD_Clicked(sender As Object, e As EventArgs)
cnS_KIUPLOAD.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
'If UStV_POS.UStVPo_daId Is Nothing AndAlso UStV_POS.UStVPo_USteuerbetragEUR = 0.01 AndAlso UStV_POS.UStVPo_SchnittstellenNr = 7 Then
' UStV_POS.UStVPo_daId = sql.getValueTxtBySql("SELECT TOP(1) [rmc_daId] FROM [tblRMCImport] where rmc_reDatum='" & UStV_POS.UStVPo_ReDat & "' and rmc_reNr='" & UStV_POS.UStVPo_ReNr & "' and rmc_landKZ='" & Antrag_LandKz & "' AND [rmc_daId] is not null", "FMZOLL",,, -1)
'End If
If UStV_POS.UStVPo_daId < 1 Then
MsgBox("kein Dokument hinterlegt!")
Exit Sub
End If
If item IsNot Nothing Then
If API IsNot Nothing Then
If vbYes = MsgBox("Möchten Sie die Rechnungsdaten per ATEZ-API auslesen lassen?", vbYesNoCancel) Then
Dim dt As New DataTable
dt = API.createVATDatatable(item.Name)
Dim failreDesc As String
Dim authResp = API.authenticate("VAT", "client1", "password", item.Name)
Dim resp
If authResp <> "200" Then
MsgBox("Authentifizierung fehlgeschlagen" & vbNewLine & authResp)
Exit Sub
Else
'If API.SendRequestWithAuthHeader("application/json", failreDesc, "/health", "GET") = "200" Then
'document_type = vat_invoice or receipt
If API.setJsonVAT(item.Name, UStV_POS.UStVPo_daId) Then
resp = API.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt, item.Name)
If dt.Rows.Count > 0 Then
Dim f As New frmVAT_ATEZ()
f.usrcntlVAT_ATEZ1.btnUebernehmen.Enabled = UStV_POS.UStVPo_daId_loeschbar 'NUR ÜBERNEHMEN WENN LÖSCHBAR!
f.usrcntlVAT_ATEZ1.initDGV(dt)
f.usrcntlVAT_ATEZ1.setColorIndgv()
f.usrcntlVAT_ATEZ1.setAmountOnly = UStV_POS.UStVPo_SchnittstellenNr = 7
If f.ShowDialog = DialogResult.OK Then
If Not f.usrcntlVAT_ATEZ1.setAmountOnly Then
txtRgDatum.Text = f.usrcntlVAT_ATEZ1.va.invoice_date
txtRgNr.Text = f.usrcntlVAT_ATEZ1.va.invoice_id
txtStrasse.Text = f.usrcntlVAT_ATEZ1.va.seller_address_street
txtOrt.Text = f.usrcntlVAT_ATEZ1.va.seller_address_city
txtLand.Text = f.usrcntlVAT_ATEZ1.va.seller_address_country
txtPLZ.Text = f.usrcntlVAT_ATEZ1.va.seller_address_postcode
sbLeistender._value = f.usrcntlVAT_ATEZ1.va.seller_name
End If
If IsNumeric(f.usrcntlVAT_ATEZ1.va.total_VAT_amount) AndAlso f.usrcntlVAT_ATEZ1.va.total_VAT_amount <> 0 AndAlso f.usrcntlVAT_ATEZ1.va.currency <> "" Then
Dim antr As New cUSTVAntrag(UStV_POS.UStVAn_ID)
If f.usrcntlVAT_ATEZ1.va.currency = antr.UStVAn_Währungscode Then
Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
If antr.UStVAn_Währungscode = "EUR" Then
UStV_POS.UStVPo_USteuerbetragEUR = f.usrcntlVAT_ATEZ1.va.total_VAT_amount.Replace(",", ".")
'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 = f.usrcntlVAT_ATEZ1.va.total_VAT_amount.Replace(",", ".")
UStV_POS.UStVPo_Umrechnungskurs = 1
'End If
UStV_POS.SAVE()
Else
UStV_POS.UStVPo_USteuerbetrag = f.usrcntlVAT_ATEZ1.va.total_VAT_amount.Replace(",", ".")
UStV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, 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
UStV_POS.SAVE()
End If
Else
'2. Antragswährung <> Belegswährung (EUR zu FREMD und FREMD zu EUR)
If antr.UStVAn_Währungscode = "EUR" Then
Dim kurs As New cEZB_Waehrungskurse(f.usrcntlVAT_ATEZ1.va.currency)
If f.usrcntlVAT_ATEZ1.va.currency <> "EUR" Then
UStV_POS.UStVPo_USteuerbetrag = f.usrcntlVAT_ATEZ1.va.total_VAT_amount.Replace(",", ".")
UStV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, 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
UStV_POS.SAVE()
ElseIf f.usrcntlVAT_ATEZ1.va.currency = "EUR" Then
UStV_POS.UStVPo_USteuerbetrag = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
UStV_POS.UStVPo_USteuerbetragEUR = UStV_POS.UStVPo_USteuerbetrag
UStV_POS.UStVPo_Umrechnungskurs = 1
UStV_POS.SAVE()
End If
Else
'2.1 Antragswährung <> Belegswährung (FREMD zu FREMD)
If f.usrcntlVAT_ATEZ1.va.currency = "EUR" Then
UStV_POS.UStVPo_USteuerbetragEUR = f.usrcntlVAT_ATEZ1.va.total_VAT_amount.Replace(",", ".")
Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
UStV_POS.UStVPo_USteuerbetrag = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.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
UStV_POS.SAVE()
Else
UStV_POS.UStVPo_USteuerbetrag = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, antr.UStVAn_Währungscode)
Dim kurs As New cEZB_Waehrungskurse(antr.UStVAn_Währungscode)
UStV_POS.UStVPo_USteuerbetragEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, 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
UStV_POS.SAVE()
End If
End If
End If
End If
End If
Else
MsgBox(resp)
End If
End If
'Else
' MsgBox("Service is not running!")
'End If
End If
End If
End If
End If
End Sub
Private Sub SetAddressChangeHandlers(enabled As Boolean)
For Each c As Control In pnlAdresse.Controls
If TypeOf c Is TextBox Then
Dim tb As TextBox = DirectCast(c, TextBox)
RemoveHandler tb.TextChanged, AddressOf SomethingChanged
If enabled Then
AddHandler tb.TextChanged, AddressOf SomethingChanged
End If
ElseIf TypeOf c Is MyComboBox Then
Dim cb As MyComboBox = DirectCast(c, MyComboBox)
RemoveHandler cb.TextChanged, AddressOf SomethingChanged
If enabled Then
AddHandler cb.TextChanged, AddressOf SomethingChanged
End If
End If
Next
End Sub
Private Sub btnAPIUbload_Click(sender As Object, e As EventArgs) Handles btnAPIUbload.Click
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 txtStrasse_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtStrasse.PreviewKeyDown, txtPLZ.PreviewKeyDown, txtOrt.PreviewKeyDown, txtLand.PreviewKeyDown, txtStrassenNr.PreviewKeyDown, txtUIDNr.PreviewKeyDown
If _gridAktiv And Me.FindForm IsNot Nothing Then
' Eingabeprüfung
If e.KeyValue = 9 Then
Dim leistNew = sbLeistender.Text
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(leistNew)
If UStV_Leist.UstV_Leistender_Strasse <> If(txtStrasse.Text, "") Then SomethingChanged(sender, e)
If UStV_Leist.UstV_Leistender_StrasseNr <> If(txtStrassenNr.Text, "") Then SomethingChanged(sender, e)
If UStV_Leist.UstV_Leistender_PLZ <> If(txtPLZ.Text, "") Then SomethingChanged(sender, e)
If UStV_Leist.UstV_Leistender_Stadt <> If(txtOrt.Text, "") Then SomethingChanged(sender, e)
If UStV_Leist.UstV_Leistender_Land <> If(txtLand.Text, "") Then SomethingChanged(sender, e)
If UStV_Leist.UstV_Leistender_UstNr <> If(txtUIDNr.Text, "") Then SomethingChanged(sender, e)
End If
End If
End Sub
Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click
Dim leistNew = sbLeistender.Text
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(leistNew)
If UStV_Leist.hasEntry Then
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVALeistender_deaktiveren", Me.FindForm) Then
MsgBox("Nicht berechtigt!")
Exit Sub
End If
If Not vbYes = MsgBox("Soll der Leistende " & UStV_Leist.UStV_Leistender & " gelöscht werden?", vbYesNo) Then Exit Sub
UStV_Leist.UstV_aktiv = False
UStV_Leist.SAVE()
sbLeistender.Text = ""
sbLeistender._value = ""
UStV_POS.UStVPo_LeistenderId = -1
UStV_POS.UStVPo_Leistender = ""
values_changed()
btnDel.Visible = False
End If
End Sub
Private Sub btn_EUR_to_FW_Click(sender As Object, e As EventArgs) Handles btn_EUR_to_FW.Click
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
MsgBox("Keine Berechtigung für das Bearbeiten des Antrages - MDM_USTVA_bearbeiten")
Exit Sub
Else
If IsNumeric(txtNettobetragEUR.Text) Then
txtNettobetrag.Text = Math.Floor((txtNettobetragEUR.Text * txtUmrechnungskurs.Text) * 100 + 0.5) / 100
_txtChanged = True
If _txtChanged Then
values_changed()
_txtChanged = False
End If
End If
End If
End Sub
End Class