MDM Datenverarbeitung, TrdInvoice, USTVA

This commit is contained in:
2024-12-04 16:09:14 +01:00
parent 5973e557e6
commit 839d828041
5 changed files with 60 additions and 67 deletions

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.3.3.2")> <Assembly: AssemblyVersion("1.3.3.4")>
<Assembly: AssemblyFileVersion("1.3.3.2")> <Assembly: AssemblyFileVersion("1.3.3.4")>

View File

@@ -447,8 +447,7 @@ Public Class frmMDM_USTVAntrag
Dim dt_RE As New DataTable Dim dt_RE As New DataTable
Dim GET_Rechnungen = cTrdInvoice.GET_RECHNUNGEN(dt_RE, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr) Dim GET_Rechnungen = cTrdInvoice.GET_RECHNUNGEN(dt_RE, USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr)
Return False Dim verarbeitet As Boolean = True
If GET_Rechnungen Then If GET_Rechnungen Then
For Each r As DataRow In dt_RE.Rows For Each r As DataRow In dt_RE.Rows
@@ -461,82 +460,75 @@ Public Class frmMDM_USTVAntrag
USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer") USTV_POS.UStVPo_ReNr = r.Item("Rechnungsnummer")
USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr
Dim dt_Prod As New DataTable
Dim GET_Positionen = cTrdProduct.GET_PRODUCTS(dt_Prod, USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr)
If GET_Positionen Then
For Each pos As DataRow In dt_RE.Rows
If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then
USTV_POS.UStVPo_Schnittstelle = True USTV_POS.UStVPo_Schnittstelle = True
USTV_POS.UStVPo_Leistender = "VERAG 360 GmbH; 4975 Suben" USTV_POS.UStVPo_Leistender = "VERAG 360 GmbH; 4975 Suben"
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
USTV_POS.UStVPo_Zeitstempel = Now() USTV_POS.UStVPo_Zeitstempel = Now()
' USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung
Dim dt_Prod As New DataTable
Dim GET_Positionen = cTrdProduct.GET_PRODUCTS(dt_Prod, USTV_POS.UStVPo_ReDat, USTV_POS.UStVPo_ReNr)
If GET_Positionen Then
For Each pos As DataRow In dt_Prod.Rows
Select Case pos.Item("Leistungsnummer")
Case 135 To 139, 141, 654, 655, 658 To 668, 670 To 678
' Select Case pos.Item("Leistungsnummer") If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then
' Case 135 To 139, 141, 654, 655, 658 To 668, 670 To 678 USTV_POS.UStVPo_Leistungsbezeichnung = pos.Item("Leistungsbezeichnung")
Else
Dim result As String = Microsoft.VisualBasic.Strings.Left(pos.Item("Leistungsbezeichnung") & vbCrLf & USTV_POS.UStVPo_Leistungsbezeichnung, 255)
' If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then USTV_POS.UStVPo_Leistungsbezeichnung = result
' USTV_POS.UStVPo_Leistungsbezeichnung = pos.Item("Leistungsbezeichnung")
' Else
' USTV_POS.UStVPo_Leistungsbezeichnung = Left(rstRP!Leistungsbezeichnung & vbCrLf & !UStVPo_Leistungsbezeichnung, 255)
' End If
'Case Else
'' Sonstige Kosten
'If IsNull(!UStVPo_Leistungsbezeichnung) Then
' !UStVPo_Leistungsbezeichnung = rstRP!Leistungsbezeichnung
'Else
' !UStVPo_Leistungsbezeichnung = Left(!UStVPo_Leistungsbezeichnung & vbCrLf & rstRP!Leistungsbezeichnung, 255)
'End If
'End Select
'7410 Do Until rstRP.EOF
'7420 Select Case rstRP!Leistungsnummer
' Case 135 To 139, 141, 654, 655, 658 To 668, 670 To 678
' ' Maut und Diesel
'7430 If IsNull(!UStVPo_Leistungsbezeichnung) Then
'7440 !UStVPo_Leistungsbezeichnung = rstRP!Leistungsbezeichnung
'7450 Else
'7460 !UStVPo_Leistungsbezeichnung = Left(rstRP!Leistungsbezeichnung & vbCrLf & !UStVPo_Leistungsbezeichnung, 255)
'7470 End If
'7480 Case Else
' ' Sonstige Kosten
'7490 If IsNull(!UStVPo_Leistungsbezeichnung) Then
'7500 !UStVPo_Leistungsbezeichnung = rstRP!Leistungsbezeichnung
'7510 Else
'7520 !UStVPo_Leistungsbezeichnung = Left(!UStVPo_Leistungsbezeichnung & vbCrLf & rstRP! , 255)
'7530 End If
'7540 End Select
'7550 rstRP.MoveNext
'7560 Loop
'7570 rstRP.Close
'7580 Set rstRP = Nothing
'7590 qryRP.Close
'7600 Set qryRP = Nothing
' ' Berechnungen
'7610 !UStVPo_USteuerbetragEUR = rstRK!SteuerbetragLokal
'7620 !UStVPo_Umrechnungskurs = fktEurokurs(Forms!frmUStVAntragserfassung![UStVAn_Währungscode], ![UStVPo_ReDat])
'7630 !UStVPo_USteuerbetrag = Int(![UStVPo_USteuerbetragEUR] * !UStVPo_Umrechnungskurs * 100 + 0.5) / 100
USTV_POS.INSERT()
End If End If
Case Else
' Sonstige Kosten
If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then
USTV_POS.UStVPo_Leistungsbezeichnung = pos.Item("Leistungsbezeichnung")
Else
Dim result As String = Microsoft.VisualBasic.Strings.Left(USTV_POS.UStVPo_Leistungsbezeichnung & vbCrLf & pos.Item("Leistungsbezeichnung"), 255)
USTV_POS.UStVPo_Leistungsbezeichnung = result
End If
End Select
Next Next
End If
'Berechnungen
Dim umrechKurs As Double = 1
Dim UST_EUR = CDbl(r.Item("SteuerbetragLokal"))
USTV_POS.UStVPo_USteuerbetragEUR = UST_EUR 'Math.Round((UST_org / umrechKurs), 2)
USTV_POS.UStVPo_Umrechnungskurs = umrechKurs
USTV_POS.UStVPo_USteuerbetrag = UST_EUR
Dim sql As New SQL
If USTV_POS.INSERT() Then
verarbeitet = sql.doSQL("Update tblTrdinInvoice SET tblTrdinInvoice.UStVAn_ID = NULL WHERE tblTrdinInvoice.Rechnungsdatum = '" & USTV_POS.UStVPo_ReDat & "' And tblTrdinInvoice.Rechnungsnummer = " & USTV_POS.UStVPo_ReNr, "FMZOLL")
If Not verarbeitet Then
MsgBox("Fehler beim Setzen der UStVAn_ID")
Return verarbeitet
End If
End If
End If End If
Next Next
'Einträge als archivert setzen ' vormals wichtig 'Einträge als archivert setzen ' vormals wichtig
MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID) Return verarbeitet
End If End If
Return True Return True
@@ -997,7 +989,7 @@ Public Class frmMDM_USTVAntrag
Case 1 'VERAG 360 GmbH; 4975 Suben Case 1 'VERAG 360 GmbH; 4975 Suben
'UStV-Antragsnummer im Buchungssatz löschen. 'UStV-Antragsnummer im Buchungssatz löschen.
sqlText = "Update tblTrdinInvoice SET tblTrdinInvoice.UStVAn_ID = NULL WHERE tblTrdinInvoice.Rechnungsdatum = " & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat & " And tblTrdinInvoice.Rechnungsnummer = " & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr sqlText = "Update tblTrdinInvoice SET tblTrdinInvoice.UStVAn_ID = NULL WHERE tblTrdinInvoice.Rechnungsdatum = '" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReDat & "' And tblTrdinInvoice.Rechnungsnummer = " & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_ReNr
If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL") If Not test Then updated = SQL.doSQL(sqlText, "FMZOLL")
Case 2 ' UStV-Antragsnummer im IDSDieseldatenArchiv löschen 'IDS alte Schnittstelle - OK Case 2 ' UStV-Antragsnummer im IDSDieseldatenArchiv löschen 'IDS alte Schnittstelle - OK

View File

@@ -3466,13 +3466,13 @@ Public Class frmMDMDatenverarbetiung
useNettogesamtbetrag = False useNettogesamtbetrag = False
sqlstr = " SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort,Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart, tblUTAImportNew.Fakturierwarenart,sum(tblUTAImportNew.Gesamtbetrag_Netto_in_Lieferlandwährung) as Netto ,sum(tblUTAImportNew.Gesamtbetrag_Brutto_in_Lieferlandwährung) as Brutto sqlstr = " SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort,Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, sum(tblUTAImportNew.Gesamtbetrag_Netto_in_Lieferlandwährung) as Netto ,sum(tblUTAImportNew.Gesamtbetrag_Brutto_in_Lieferlandwährung) as Brutto /*,tblUTAFakturierwarenarten.Warenart, tblUTAImportNew.Fakturierwarenart*/
FROM tblUTAFakturierwarenarten FROM tblUTAFakturierwarenarten
INNER JOIN (((Adressen INNER JOIN tblUTAImportNew ON Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer) INNER JOIN (((Adressen INNER JOIN tblUTAImportNew ON Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer)
INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr) INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr)
INNER JOIN tblUTALeistungen ON (tblUTALeistungen.VERAG_LeistungsNr = Offertenpositionen.LeistungsNr) AND (tblUTALeistungen.VERAG_OffertenNr = Offertenpositionen.OffertenNr) AND (tblUTAImportNew.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImportNew.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart INNER JOIN tblUTALeistungen ON (tblUTALeistungen.VERAG_LeistungsNr = Offertenpositionen.LeistungsNr) AND (tblUTALeistungen.VERAG_OffertenNr = Offertenpositionen.OffertenNr) AND (tblUTAImportNew.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImportNew.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart
where Offertenpositionen.LeistungsNr is not null AND Offertenpositionen.OffertenNr = " & OffertenNr & " AND Offertenpositionen.KundenNr = " & KdNr & where Offertenpositionen.LeistungsNr is not null AND Offertenpositionen.OffertenNr = " & OffertenNr & " AND Offertenpositionen.KundenNr = " & KdNr &
"group by Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort, Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart,tblUTAImportNew.Fakturierwarenart" "group by Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort, Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez /*, tblUTAFakturierwarenarten.Warenart,tblUTAImportNew.Fakturierwarenart*/"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
@@ -3573,9 +3573,10 @@ Public Class frmMDMDatenverarbetiung
Dim UstBetrag As Double = r("Steuerbetrag") Dim UstBetrag As Double = r("Steuerbetrag")
Dim Rabatt As Double = r("SummevonRabattbetrag") Dim Rabatt As Double = r("SummevonRabattbetrag")
Dim LeistungsNr As Integer = r("LeistungsNr") Dim LeistungsNr As Integer = r("LeistungsNr")
Dim LeistungsBez As String = r("LeistungsBez")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag - Rabatt, UstBetrag) allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag - Rabatt, UstBetrag, LeistungsBez) 'bei IDS muss ebenfalls die LeistungsBez korrekt sein!
Next Next
@@ -3680,11 +3681,11 @@ Public Class frmMDMDatenverarbetiung
End Function End Function
Function allPos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double, Optional UstBetrag As Double = 0) Function allPos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double, Optional UstBetrag As Double = 0, Optional leistungsBez As String = "")
Try Try
For Each o In OFFERTE.POSITIONEN For Each o In OFFERTE.POSITIONEN
If o.LeistungsNr = LeistungsNr Then If o.LeistungsNr = LeistungsNr AndAlso IIf(leistungsBez <> "", o.LeistungsBez = leistungsBez, True) Then ' bei IDS muss ebenfalls die Leistungsbezeichnung eindeutig sein!
'Dim PARK = RECHNUNG.POSITIONEN.FindAll(Function(x) (x.LeistungsNr = 313 Or x.LeistungsNr = 312)) 'Dim PARK = RECHNUNG.POSITIONEN.FindAll(Function(x) (x.LeistungsNr = 313 Or x.LeistungsNr = 312))
'If PARK Is Nothing Then 'If PARK Is Nothing Then
@@ -4142,7 +4143,7 @@ Public Class frmMDMDatenverarbetiung
End If End If
Dim sqlStringfehlendeLeistungsNr = "select count(*) from (SELECT Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG FROM Leistungen INNER Join tbl_IDS_Länder On Leistungen.LeistungsNr = tbl_IDS_Länder.LeistungsNr INNER Join tblIDSTransactionsNew On tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode Left JOIN Offertenpositionen on Offertenpositionen.KundenNr IN (select tblIDSTransactionsNew.KdNrVERAG from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "') and Leistungen.LeistungsNr = Offertenpositionen.LeistungsNr and ( Offertenpositionen.OffertenNr=17 or Offertenpositionen.OffertenNr=21) where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "' and Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG ) as t1" 'Verag360 und VeragAG Dim sqlStringfehlendeLeistungsNr = "select count(*) from (SELECT Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG FROM Leistungen INNER Join tbl_IDS_Länder On Leistungen.LeistungsNr = tbl_IDS_Länder.LeistungsNr INNER Join tblIDSTransactionsNew On tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode Left JOIN Offertenpositionen on Offertenpositionen.KundenNr IN (select tblIDSTransactionsNew.KdNrVERAG from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "') and Leistungen.LeistungsNr = Offertenpositionen.LeistungsNr and Leistungen.LeistungsBez = Offertenpositionen.LeistungsBez and ( Offertenpositionen.OffertenNr=17 or Offertenpositionen.OffertenNr=21) where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "' and Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG ) as t1" 'Verag360 und VeragAG
Dim fehlendeLeistungsNr As Integer = CInt((New SQL).getValueTxtBySql(sqlStringfehlendeLeistungsNr, "FMZOLL")) Dim fehlendeLeistungsNr As Integer = CInt((New SQL).getValueTxtBySql(sqlStringfehlendeLeistungsNr, "FMZOLL"))
If fehlendeLeistungsNr > 0 Then If fehlendeLeistungsNr > 0 Then

View File

@@ -606,7 +606,7 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers
sqlstr = "select Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG FROM Leistungen sqlstr = "select Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG FROM Leistungen
INNER Join tbl_IDS_Länder On Leistungen.LeistungsNr = tbl_IDS_Länder.LeistungsNr INNER Join tbl_IDS_Länder On Leistungen.LeistungsNr = tbl_IDS_Länder.LeistungsNr
INNER Join tblIDSTransactionsNew On tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode INNER Join tblIDSTransactionsNew On tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode
Left JOIN Offertenpositionen on Offertenpositionen.KundenNr IN (select tblIDSTransactionsNew.KdNrVERAG from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & MAIN.DateTimePicker2.Text & "') and Leistungen.LeistungsNr = Offertenpositionen.LeistungsNr and ( Offertenpositionen.OffertenNr=17 or Offertenpositionen.OffertenNr=21) Left JOIN Offertenpositionen on Offertenpositionen.KundenNr IN (select tblIDSTransactionsNew.KdNrVERAG from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & MAIN.DateTimePicker2.Text & "') and Leistungen.LeistungsNr = Offertenpositionen.LeistungsNr and Leistungen.LeistungsBez = Offertenpositionen.LeistungsBez and ( Offertenpositionen.OffertenNr=17 or Offertenpositionen.OffertenNr=21)
where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & MAIN.DateTimePicker2.Text & "' and Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG" where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & MAIN.DateTimePicker2.Text & "' and Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG"
Case Else Case Else

View File

@@ -195,7 +195,7 @@ Public Class cTrdInvoice
Using cmd As New SqlCommand(" SELECT tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer, tblTrdinInvoice.SteuerbetragLokal, tblTrdinInvoice.UStVAn_ID Using cmd As New SqlCommand(" SELECT tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer, tblTrdinInvoice.SteuerbetragLokal, tblTrdinInvoice.UStVAn_ID
FROM tblTrdinInvoice FROM tblTrdinInvoice
WHERE tblTrdinInvoice.Rechnungsdatum Between @von And @bis AND tblTrdinInvoice.SteuerbetragLokal<>0 AND tblTrdinInvoice.RechnungsKundenNr=@AdressenNr AND tblTrdinInvoice.WährungLokal='EUR' WHERE tblTrdinInvoice.Rechnungsdatum Between @von And @bis AND tblTrdinInvoice.SteuerbetragLokal<>0 AND tblTrdinInvoice.RechnungsKundenNr=@AdressenNr AND tblTrdinInvoice.WährungLokal='EUR'
ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnumme", conn) ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer", conn)
cmd.Parameters.AddWithValue("@von", von) cmd.Parameters.AddWithValue("@von", von)
cmd.Parameters.AddWithValue("@bis", bis) cmd.Parameters.AddWithValue("@bis", bis)