MDM, Mahnungen, EORI, Kundenblatt, MSEAPI, UTA, Zollanmeldungen_Import_Dakosy

This commit is contained in:
2024-10-17 16:45:23 +02:00
parent 152ce4c892
commit f062f1a0d7
22 changed files with 2416 additions and 474 deletions

View File

@@ -21,7 +21,7 @@ Public Class frmMDM_USTVAntrag
End Sub
Sub init()
Sub init(Optional Lieferant As String = "")
pnlFilter.AutoScroll = False
lblGesamtUSteuer.Text = "-"
@@ -143,16 +143,39 @@ Public Class frmMDM_USTVAntrag
lblGesamtErstattung.Text = GesamtErstattung.ToString("C2")
lblDiffernezbetrag.Text = Differnezbetrag.ToString("C2")
Dim GET_Antraege
Dim antraegeVearbeitet = False
Dim GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)
Select Case Lieferant.ToLower
Case "plose"
GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)
antraegeVearbeitet = True
Case "rmc"
Dim dt As New DataTable
GET_Antraege = cRMC.GET_Antraege_RMC(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)
antraegeVearbeitet = True
Case "mse"
Dim dt As New DataTable
GET_Antraege = cMSEAPI.GET_Antraege_MSE(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, False)
antraegeVearbeitet = True
Case "uta"
Dim dt As New DataTable
GET_Antraege = cUTA.GET_Antraege_UTA(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, False)
antraegeVearbeitet = True
Case "ids"
MsgBox("Funktion noch nicht implementiert")
End Select
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"
If antraegeVearbeitet Then
If GET_Antraege IsNot Nothing AndAlso GET_Antraege.Count > 0 Then
lbl_EintrageVerarbetiet.Text = "aussehende Einträge: " & GET_Antraege.Count
Else
lbl_EintrageVerarbetiet.Text = "alle Einträge verarbeitet"
End If
End If
End Sub
@@ -236,7 +259,7 @@ Public Class frmMDM_USTVAntrag
lblPLOSE_EintrageVerarbetiet.Text = ""
lbl_EintrageVerarbetiet.Text = ""
If UStVAn_ID > 0 Then
USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
@@ -249,11 +272,73 @@ Public Class frmMDM_USTVAntrag
End Sub
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
loadUSTVFrom_PLOSE(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
init()
If Not ContextMenuStrip2.Items.ContainsKey("plose") Then
Dim plose = New ToolStripMenuItem() With {.Text = "Plose", .Name = "plose", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip2.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
If Not ContextMenuStrip2.Items.ContainsKey("rmc") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "RMC", .Name = "rmc", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(rmc)
End If
If Not ContextMenuStrip2.Items.ContainsKey("mse") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "MSE", .Name = "mse", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(rmc)
End If
If Not ContextMenuStrip2.Items.ContainsKey("uta") Then
Dim uta = New ToolStripMenuItem() With {.Text = "UTA", .Name = "uta", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler uta.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(uta)
End If
If Not ContextMenuStrip2.Items.ContainsKey("ids") Then
Dim ids = New ToolStripMenuItem() With {.Text = "IDS", .Name = "ids", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(ids)
End If
ContextMenuStrip2.Show(Cursor.Position)
End Sub
Private Sub mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs)
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
If item.Name = "plose" Then
loadUSTVFrom_PLOSE(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
init()
ElseIf item.Name = "rmc" Then
loadUSTVFrom_RMC(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
init()
ElseIf item.Name = "mse" Then
loadUSTVFrom_MSE(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
init()
ElseIf item.Name = "uta" Then
loadUSTVFrom_UTA(UStVAn_ID, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)
init()
ElseIf item.Name = "ids" Then
MsgBox("IDS noch nicht implementiert!")
End If
End If
End Sub
Shared Function alreadyExists(USTVAn_KuNr As Integer, UStVAn_LandNr As String, USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim cnt = SQL.getValueTxtBySql(" SELECT count(*) FROM [tblUStVAntrag] inner join [tblUStVPositionen] on tblUStVAntrag.UStVAn_ID= [tblUStVPositionen].UStVAn_ID
@@ -383,6 +468,138 @@ Public Class frmMDM_USTVAntrag
End Try
End Function
Shared Function loadUSTVFrom_MSE(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean
Try
Dim bytSchnittstellenNr = 4 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
Dim dt As New DataTable
Dim GET_Antraege = cMSEAPI.GET_Antraege_MSE(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, ArchivierteEintracheNochmalsEinarbetien)
If GET_Antraege Then
For Each r As DataRow In dt.Rows
Dim kdNr = r.Item("customer_id")
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
USTV_POS.UStVPo_ReDat = r.Item("invoice_date")
USTV_POS.UStVPo_ReNr = r.Item("invoice_number") & " - " & kdNr
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 = r.Item("specification_page_name")
USTV_POS.UStVPo_Leistender = "MS Europe BV"
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_POS.UStVPo_Zeitstempel = Now()
' Berechnungen
'!UStVPo_USteuerbetrag = rst1!Umsatzsteuerbetrag
'!UStVPo_Umrechnungskurs = fktEurokurs(Me![UStVAn_Währungscode], ![UStVPo_ReDat])
'!UStVPo_USteuerbetragEUR = Int(![UStVPo_USteuerbetrag] / !UStVPo_Umrechnungskurs * 100 + 0.5) / 100
Dim umrechKurs As Double = 1
Dim UST_EUR = CDbl(r.Item("UST_EUR"))
Dim UST_org = CDbl(r.Item("UST"))
If (UST_EUR > 0 AndAlso UST_org > 0 AndAlso UST_org <> UST_EUR) Then
umrechKurs = UST_org / UST_EUR
End If
If UST_org > 0 Then
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR 'Math.Round((UST_org / umrechKurs), 2)
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
USTV_POS.UStVPo_USteuerbetrag = UST_org
End If
If USTV_POS.INSERT() Then
cMSEAPI.UPDATE_ARCHIV(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
Shared Function loadUSTVFrom_UTA(UStVAn_ID, Antrag_LandKz, ArchivierteEintracheNochmalsEinarbetien) As Boolean
Try
Dim bytSchnittstellenNr = 5 'damit von alter Schnittstelle und neue Schnittstelle keine Daten doppelt importiert werden
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
Dim dt As New DataTable
Dim GET_Antraege = cUTA.GET_Antraege_UTA(dt, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, USTV_ANTRAG.UStVAn_Währungscode, ArchivierteEintracheNochmalsEinarbetien)
If GET_Antraege Then
For Each r As DataRow In dt.Rows
Dim kdNr = r.Item("customer_id")
Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr
USTV_POS.UStVPo_ReDat = r.Item("invoice_date")
USTV_POS.UStVPo_ReNr = r.Item("invoice_number") & " - " & kdNr
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, DIESEL oder KFZ-Zubehör"
USTV_POS.UStVPo_Leistender = "Union Tank Eckstein Gmbh&Co KG, Kleinostheim"
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_POS.UStVPo_Zeitstempel = Now()
' Berechnungen
'!UStVPo_USteuerbetrag = rst1!Umsatzsteuerbetrag
'!UStVPo_Umrechnungskurs = fktEurokurs(Me![UStVAn_Währungscode], ![UStVPo_ReDat])
'!UStVPo_USteuerbetragEUR = Int(![UStVPo_USteuerbetrag] / !UStVPo_Umrechnungskurs * 100 + 0.5) / 100
Dim umrechKurs As Double = 1
Dim UST_EUR = CDbl(r.Item("UST_EUR"))
Dim UST_org = CDbl(r.Item("UST"))
If (UST_EUR > 0 AndAlso UST_org > 0 AndAlso UST_org <> UST_EUR) Then
umrechKurs = UST_org / UST_EUR
End If
If UST_org > 0 Then
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR 'Math.Round((UST_org / umrechKurs), 2)
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
USTV_POS.UStVPo_USteuerbetrag = UST_org
End If
If USTV_POS.INSERT() Then
cUTA.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
@@ -590,7 +807,11 @@ Public Class frmMDM_USTVAntrag
ContextMenuStrip1.Items.Add(mail)
End If
If Not ContextMenuStrip1.Items.ContainsKey("offeneAntraege") Then
Dim oa = New ToolStripMenuItem() With {.Text = "offene Anträge", .Name = "offeneAntraege", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler oa.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(oa)
End If
ContextMenuStrip1.Show(Cursor.Position)
@@ -607,6 +828,14 @@ Public Class frmMDM_USTVAntrag
ElseIf item.Name = "mail" Then
mailmitExcelauswertung()
ElseIf item.Name = "offeneAntraege" Then
Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
Dim frm As New frmUSTVoffeneAntraege(CDate(USTV_ANTRAG.UStVAn_ReDatVon), CDate(USTV_ANTRAG.UStVAn_ReDatBis), USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_Name)
frm.Show()
Else
MsgBox("Funktion nicht implementiert!")
End If
@@ -680,175 +909,4 @@ Public Class frmMDM_USTVAntrag
End Sub
Private Sub btnRMCEinarbeiten_Click(sender As Object, e As EventArgs) Handles btnRMCEinarbeiten.Click
End Sub
Private Sub txt3470_ValueChanged() Handles txt3470.ValueChanged
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