Files
SDL/SDL/USTV/ustCntlUSTV_AntragPosition.vb
2025-04-28 16:22:23 +02:00

753 lines
36 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 = ""
Dim kdnr = ""
Public Event EV_PREV()
Public Event EV_NEXT()
Public Event CHANGED(UStVPo_ID)
Dim gridAktiv = False
Dim txtChanged As Boolean = False
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()
txtRgDatum._value = ""
txtRgNr._value = ""
btnLeistenderSave.Visible = False
txtUmrechnungskurs._value = 1
txtLeistungsbezeichnung._value = ""
txtUmrechnungskurs._value = 1
txtUSTBetrag._value = 0
txtUSTBetragEUR._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 = ""
gridAktiv = True
Dim filter As String = "UstV_aktiv = 1"
If Antrag_LandKz <> "" AndAlso cbxAntragsfilter.Checked Then
filter &= " and left(UstV_Leistender_UstNr,2)='" & Antrag_LandKz & "'"
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"})
Else
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 If
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.kdnr = kdnr
cbxAPI.Checked = If(UStV_POS.UStVPo_Schnittstelle, False)
cboSchnittstellennr.changeItem(If(UStV_POS.UStVPo_SchnittstellenNr, ""))
txtRgDatum._value = If(UStV_POS.UStVPo_ReDat, "")
txtRgNr._value = If(UStV_POS.UStVPo_ReNr, "")
lblSachbearbeiter.Text = If(UStV_POS.UStVPo_Sachbearbeiter, "")
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, "")
txtLeistungsbezeichnung.Text = If(UStV_POS.UStVPo_Leistungsbezeichnung, "")
txtUSTBetrag.Text = If(UStV_POS.UStVPo_USteuerbetrag, "")
txtUmrechnungskurs.Text = If(UStV_POS.UStVPo_Umrechnungskurs, "")
txtUSTBetragEUR.Text = If(UStV_POS.UStVPo_USteuerbetragEUR, "")
sbLeistender.Text = UStV_Leitender.UStV_Leistender
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
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 = UStV_POS.UStVPo_daId_loeschbar
Else
scanSonstiges.INIT(kdnr, "MDM", "MDM_DATEN", "USTVA_" & UStV_POS.UStVAn_ID & "_" & UStV_POS.UStVPo_ID)
'scanSonstiges.INIT_daId(da_id)
scanSonstiges.Enabled = True
btnAPIUbload.Enabled = False
End If
scanUSTVFABest.INIT(kdnr, "KUNDENDATEN", "FA_Bestaetigungen")
scanUSTVVollmachten.INIT(kdnr, "KUNDENDATEN", "USTV_Vollmachten")
Dim filter As String = "UstV_aktiv = 1"
If Antrag_LandKz <> "" AndAlso cbxAntragsfilter.Checked Then
filter &= " and left(UstV_Leistender_UstNr,2)='" & Antrag_LandKz & "'"
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"})
Else
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 If
'sbLeistender.initSearchBox(Me.FindForm, "[UStV_LeistenderId],[UStV_Leistender], ([UStV_Leistender] + ' ' + isnull([UstV_Leistender_UstNr],'')) 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"}, "UstV_aktiv = 1", "UStV_Leistender", "UStV_LeistenderId", "Leistender", "FMZOLL",, 400, 200, {"UStV_Leistender", "UStV_LeistenderId"})
gridAktiv = True
End Sub
Sub getValues(ByRef UStV_POS, ByRef save)
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
If txtUSTBetrag.Text <> "" Then
UStV_POS.UStVPo_USteuerbetrag = txtUSTBetrag.Text.Replace(",", ".")
Else
lblWarning.Text = "UST-Betrag muss ausgefüllt werden."
save = False
End If
If txtUSTBetragEUR.Text <> "" Then
UStV_POS.UStVPo_USteuerbetragEUR = txtUSTBetragEUR.Text.Replace(",", ".")
Else
save = False
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
UStV_POS.UStVPo_Umrechnungskurs = txtUmrechnungskurs.Text.Replace(",", ".")
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
'save = False
End If
UStV_POS.UStVPo_Schnittstelle = cbxAPI.Checked
UStV_POS.UStVPo_SchnittstellenNr = IIf(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 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)
'MsgBox("TEST")
If setSave Then Return UStV_POS.SAVE
Return False
End Function
Private Sub txtBestellung_TextChanged(sender As Object, e As EventArgs) Handles txtLeistungsbezeichnung.TextChanged, txtRgDatum.TextChanged, txtRgNr.TextChanged, txtUSTBetrag.TextChanged, txtUmrechnungskurs.TextChanged, txtUSTBetragEUR.TextChanged
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
'If sender Is txtLieferung Then
' If Not PROG.checkSDLNrPartnerKdNr(kdNr, SDLNr) Then MsgBox("Bitte geben Sie die Partner-Kundennummer im Kundenblatt oder im FM-ZOLL ein!")
'End If
If sender Is cboLeistungsgeber AndAlso cboLeistungsgeber.SelectedItem <> "" Then
'UStV_POS.UStVPo_Leistender = cboLeistungsgeber.SelectedItem
'values_changed()
Else
'txtChanged = True
End If
End If
End Sub
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 = ""
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
End If
If Not initial Then
'Listener für Änderungen im Detail-Panel
If Not adressLoadedByLeistender Then
For Each c As Control In pnlAdresse.Controls
If TypeOf (c) Is TextBox Then
AddHandler CType(c, TextBox).TextChanged, AddressOf SomethingChanged
End If
If TypeOf (c) Is MyComboBox Then
AddHandler CType(c, MyComboBox).TextChanged, AddressOf SomethingChanged
End If
Next
Else
btnLeistenderSave.Visible = False
End If
Else
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_Enter(sender As Object, e As EventArgs) Handles cboLeistungsgeber.Enter
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))
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
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 CDbl(UStV_POS.UStVPo_USteuerbetrag) <> CDbl(txtUSTBetrag.Text) OrElse UStV_POS.UStVPo_USteuerbetrag Is Nothing 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 = Math.Floor((txtUSTBetrag.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 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 = Math.Floor((txtUSTBetrag.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("-", ".")
'If IsDate(txtRgDatum.Text) Then 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
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(CInt(sbLeistender.Text))
Else
UStV_Leist = New VERAG_PROG_ALLGEMEIN.cUStVLeistender(sbLeistender.Text)
End If
loadChangedDSToPanel(UStV_Leist)
Else
loadChangedDSToPanel(Nothing, True)
End If
End If
'MsgBox()
End If
End If
If txtChanged Then
values_changed()
txtChanged = False
End If
End If
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
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
Dim filter As String = "UstV_aktiv = 1"
If Antrag_LandKz <> "" Then
If cbxAntragsfilter.Checked Then filter &= " and left(UstV_Leistender_UstNr,2)='" & Antrag_LandKz & "'"
sbLeistender.initSearchBox(Me.FindForm, "[UStV_LeistenderId],[UStV_Leistender], ([UStV_Leistender] + ' ' + isnull([UstV_Leistender_UstNr],'')) 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 If
End Sub
Private Sub btnAPIUbload_Click(sender As Object, e As EventArgs) Handles btnAPIUbload.Click
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
If dt IsNot Nothing And Not dt.Columns.Contains("currency") Then
dt.Columns.Add("currency", GetType(String))
dt.Columns.Add("seller_VAT_id", GetType(String))
dt.Columns.Add("seller_address_city", GetType(String))
dt.Columns.Add("seller_address_country", GetType(String))
dt.Columns.Add("seller_address_postcode", GetType(String))
dt.Columns.Add("seller_address_street", GetType(String))
dt.Columns.Add("seller_name", GetType(String))
dt.Columns.Add("total_VAT_amount", GetType(Double))
dt.Columns.Add("invoice_id", GetType(String))
dt.Columns.Add("invoice_date", GetType(String))
dt.Columns.Add("status", GetType(String))
End If
Dim failreDesc As String
Dim authResp = API.authenticate("VAT", "client1", "password")
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("vat_invoice", UStV_POS.UStVPo_daId) Then
resp = API.SendRequestWithAuthHeader("application/json", failreDesc, "/process", "POST", dt)
If dt.Rows.Count > 0 Then
Dim f As New frmVAT_ATEZ()
f.usrcntlVAT_ATEZ1.initDGV(dt)
If f.ShowDialog = DialogResult.OK Then
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
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)
'1. Antragswährung = Belegswährung (EUR zu FREMD und FREMD zu EUR)
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
txtUSTBetragEUR.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
If antr.UStVAn_Währungscode <> "EUR" Then
txtUSTBetrag.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
Else
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUmrechnungskurs.Text = 1
End If
Else
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
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
txtUSTBetrag.Text = f.usrcntlVAT_ATEZ1.va.total_VAT_amount
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, f.usrcntlVAT_ATEZ1.va.currency, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
ElseIf f.usrcntlVAT_ATEZ1.va.currency = "EUR" Then
txtUSTBetrag.Text = Math.Round(kurs.EXCHANGE_EURTOCUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUSTBetragEUR.Text = txtUSTBetrag.Text
txtUmrechnungskurs.Text = 1
End If
Else
'2.1 Antragswährung <> Belegswährung (FREMD zu FREMD)
txtUSTBetrag.Text = 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)
txtUSTBetragEUR.Text = Math.Round(kurs.EXCHANGE_CURTOEUR(f.usrcntlVAT_ATEZ1.va.total_VAT_amount, antr.UStVAn_Währungscode, CDate(UStV_POS.UStVPo_ReDat)), 2)
txtUmrechnungskurs.Text = Math.Floor((CDbl(txtUSTBetrag.Text) / CDbl(txtUSTBetragEUR.Text) * 100 + 0.5)) / 100
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 Sub
Private Sub txtStrasse_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles txtStrasse.PreviewKeyDown, txtPLZ.PreviewKeyDown, txtOrt.PreviewKeyDown, txtLand.PreviewKeyDown, txtStrassenNr.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
End Class