From 4a4a647b5a9811056a206cf8aed2111781ad38b8 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 4 Dec 2024 17:28:33 +0100 Subject: [PATCH] =?UTF-8?q?MDM=20Offertenpr=C3=BCfung=20f=C3=BCr=20IDS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/mdm/frmMDMDatenverarbetiung.vb | 29 +++++++-- ...MDMDatenverarbeitungAuswertungen_divers.vb | 62 ++++++++++++++++--- 2 files changed, 78 insertions(+), 13 deletions(-) diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index 4519c691..446d1fe2 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -4143,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 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 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")) diff --git a/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb b/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb index 5478e031..aa0f2226 100644 --- a/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb +++ b/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb @@ -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 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" + 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