From 839d828041d17d294bed3257f580c99f2ea3ab0d Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 4 Dec 2024 16:09:14 +0100 Subject: [PATCH 1/2] MDM Datenverarbeitung, TrdInvoice, USTVA --- SDL/My Project/AssemblyInfo.vb | 4 +- SDL/USTV/frmMDM_USTVAntrag.vb | 106 ++++++++---------- SDL/mdm/frmMDMDatenverarbetiung.vb | 13 ++- ...MDMDatenverarbeitungAuswertungen_divers.vb | 2 +- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 2 +- 5 files changed, 60 insertions(+), 67 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index f0a0d2de..e6351979 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index f3886f46..9fe54fe9 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -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 diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index f8a31ba9..4519c691 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -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,7 +4143,7 @@ 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 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")) If fehlendeLeistungsNr > 0 Then diff --git a/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb b/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb index 7c60a7ee..5478e031 100644 --- a/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb +++ b/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb @@ -606,7 +606,7 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers 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) + 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" Case Else diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index 9461c104..7b28996b 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -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) From 4a4a647b5a9811056a206cf8aed2111781ad38b8 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 4 Dec 2024 17:28:33 +0100 Subject: [PATCH 2/2] =?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