Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2024-12-04 20:25:57 +01:00
4 changed files with 134 additions and 76 deletions

View File

@@ -447,8 +447,7 @@ Public Class frmMDM_USTVAntrag
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)
Return False
Dim verarbeitet As Boolean = True
If GET_Rechnungen Then
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_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_Leistender = "VERAG 360 GmbH; 4975 Suben"
USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
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")
' Case 135 To 139, 141, 654, 655, 658 To 668, 670 To 678
If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then
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)
USTV_POS.UStVPo_Leistungsbezeichnung = result
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
' If USTV_POS.UStVPo_Leistungsbezeichnung Is Nothing Then
' 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
Next
End If
'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
'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
USTV_POS.INSERT()
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
Next
End If
End If
Next
'Einträge als archivert setzen ' vormals wichtig
MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_ID)
Return verarbeitet
End If
Return True
@@ -997,7 +989,7 @@ Public Class frmMDM_USTVAntrag
Case 1 'VERAG 360 GmbH; 4975 Suben
'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")
Case 2 ' UStV-Antragsnummer im IDSDieseldatenArchiv löschen 'IDS alte Schnittstelle - OK

View File

@@ -3466,13 +3466,13 @@ Public Class frmMDMDatenverarbetiung
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
INNER JOIN (((Adressen INNER JOIN tblUTAImportNew ON Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer)
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
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")
@@ -3573,9 +3573,10 @@ Public Class frmMDMDatenverarbetiung
Dim UstBetrag As Double = r("Steuerbetrag")
Dim Rabatt As Double = r("SummevonRabattbetrag")
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim LeistungsBez As String = r("LeistungsBez")
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
@@ -3680,11 +3681,11 @@ Public Class frmMDMDatenverarbetiung
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
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))
'If PARK Is Nothing Then
@@ -4142,15 +4143,32 @@ Public Class frmMDMDatenverarbetiung
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 dt As DataTable = SQL.loadDgvBySql("Select distinct(tblIDSTransactionsNew.KdNrVERAG) from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "'", "FMZOLL")
If dt.Rows.Count > 0 Then
Dim counter As Integer = 0
For Each r In dt.Rows
Dim kundenNr = r.Item("KdNrVERAG")
If Not IsDBNull(kundenNr) AndAlso kundenNr > 0 Then
Dim sqlStringfehlendeLeistungsNr = " select count(*) from (SELECT Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG, Offertenpositionen.LeistungsNr as LeistungsNr2, Offertenpositionen.LeistungsBez as LeistungsBez2 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 = " & kundenNr & " 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 tblIDSTransactionsNew.KdNrVERAG = " & kundenNr & " and
Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez ) as t1"
Dim fehlendeLeistungsNr As Integer = CInt((New SQL).getValueTxtBySql(sqlStringfehlendeLeistungsNr, "FMZOLL"))
If fehlendeLeistungsNr > 0 Then counter += fehlendeLeistungsNr
End If
Next
If counter > 0 Then
MsgBox("Bei " & counter & " Leistungen fehlt die Offertenzuweisung !" & vbNewLine & "Diese Offerten (von Rechnungsdatum " & DateTimePicker2.Text & ") müssen nachgetragen werden.")
Return False
End If
Dim fehlendeLeistungsNr As Integer = CInt((New SQL).getValueTxtBySql(sqlStringfehlendeLeistungsNr, "FMZOLL"))
If fehlendeLeistungsNr > 0 Then
pruefData_IDS = False
MsgBox("Bei " & fehlendeLeistungsNr & " Leistungen fehlt die Offertenzuweisung !" & vbNewLine & "Diese Offerten (von Rechnungsdatum " & DateTimePicker2.Text & ") müssen nachgetragen werden.")
Return False
End If
Dim OBONumberOderVRNumberfehlern As Integer = 0
OBONumberOderVRNumberfehlern = CInt((New SQL).getValueTxtBySql("select count(*) from [tblIDSTransactionsNew] WHERE cast(YearMonthDay as Date) = '" & DateTimePicker2.Text & "' AND tblIDSTransactionsNew.[UStVAn_ID] is null AND [VRNumber] is null AND [OBONumber] is null", "FMZOLL"))

View File

@@ -525,7 +525,7 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers
Sub genIDSBericht(art As String)
Dim dtOfferten As New DataTable
Dim sqlstr = ""
Select Case art
@@ -603,11 +603,51 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers
Case "OFFERTEN"
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 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)
where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & MAIN.DateTimePicker2.Text & "' and Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG"
Dim dtKunden = SQL.loadDgvBySql("Select distinct(tblIDSTransactionsNew.KdNrVERAG) from tblIDSTransactionsNew where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & MAIN.DateTimePicker2.Text & "'", "FMZOLL")
If dtKunden.Rows.Count > 0 Then
For Each r In dtKunden.Rows
Dim kundenNr = r.Item("KdNrVERAG")
If Not IsDBNull(kundenNr) AndAlso kundenNr > 0 Then
Dim sqlStringfehlendeLeistungsNr = " select * 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 = " & kundenNr & " 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 tblIDSTransactionsNew.KdNrVERAG = " & kundenNr & " and Offertenpositionen.LeistungsNr is null Group by Leistungen.LeistungsNr, Leistungen.LeistungsBez,tblIDSTransactionsNew.KdNrVERAG) as t1" 'Verag360 und VeragAG
Dim dtResult As New DataTable
dtResult = SQL.loadDgvBySql(sqlStringfehlendeLeistungsNr, "FMZOLL")
If dtOfferten IsNot Nothing Then
If Not dtOfferten.Columns.Contains("KdNrVERAG") Then
dtOfferten.Columns.Add("KdNrVERAG", GetType(String))
dtOfferten.Columns.Add("LeistungsNr", GetType(Integer))
dtOfferten.Columns.Add("LeistungsBez", GetType(String))
End If
For Each offert In dtResult.Rows
Dim ro As DataRow = dtOfferten.NewRow
ro("KdNrVERAG") = offert.Item("KdNrVERAG")
ro("LeistungsNr") = offert.Item("LeistungsNr")
ro("LeistungsBez") = offert.Item("LeistungsBez")
dtOfferten.Rows.Add(ro)
Next
End If
End If
Next
End If
Case Else
MsgBox("Auswertungsart nicht definiert!")
@@ -615,7 +655,15 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers
End Select
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
Dim dt As DataTable
If art = "OFFERTEN" Then
dt = dtOfferten
Else
dt = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
End If
Dim print As New frmPrintLayout
print.Text = "IDS"
If dt Is Nothing OrElse dt.Rows.Count = 0 Then

View File

@@ -195,7 +195,7 @@ Public Class cTrdInvoice
Using cmd As New SqlCommand(" SELECT tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer, tblTrdinInvoice.SteuerbetragLokal, tblTrdinInvoice.UStVAn_ID
FROM tblTrdinInvoice
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("@bis", bis)