From 3ae8593dd5d5f9513a9aaba305c5b4f9da326efd Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 7 Jun 2024 13:34:42 +0200 Subject: [PATCH] MDM, Kundenblatt --- SDL/Fakturierung/frmAbrechnungsMaske.vb | 6 +- SDL/kunden/frmKundenblatt.Designer.vb | 2 +- SDL/mdm/frmMDMDatenverarbetiung.vb | 218 +++++++++++++----- .../Messenger/frmMessenger.vb | 10 - 4 files changed, 166 insertions(+), 70 deletions(-) diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index 0c15e964..11625b97 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -50,10 +50,10 @@ Public Class frmAbrechnungsMaske End If 'If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then - FirmaTmp = "AMBAR" - 'End If + 'FirmaTmp = "AMBAR" + 'End If - MyComboBox2.Items.Clear() + MyComboBox2.Items.Clear() Select Case FirmaTmp Case "VERAG" diff --git a/SDL/kunden/frmKundenblatt.Designer.vb b/SDL/kunden/frmKundenblatt.Designer.vb index 9719426c..9e1e86d6 100644 --- a/SDL/kunden/frmKundenblatt.Designer.vb +++ b/SDL/kunden/frmKundenblatt.Designer.vb @@ -2094,7 +2094,7 @@ Partial Class frmKundenblatt ' Me.cntxtCntxtMDM.ImageScalingSize = New System.Drawing.Size(24, 24) Me.cntxtCntxtMDM.Name = "cntxtCntxtMDM" - Me.cntxtCntxtMDM.OwnerItem = Me.ToolStripMenuItem8 + Me.cntxtCntxtMDM.OwnerItem = Me.ToolStripMenuItem4 Me.cntxtCntxtMDM.Size = New System.Drawing.Size(61, 4) Me.cntxtCntxtMDM.Text = "cntxtMDM" ' diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index 8d514600..f50ddee6 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -102,9 +102,9 @@ Public Class frmMDMDatenverarbetiung End If Case "UTA" If genRGAtt_UTA() Then - 'If MautD_Befuellen() Then - ' setFakturiertUTA() - 'End If + If MautD_Befuellen() Then + 'setFakturiertUTA() + End If End If Case "IDS" @@ -529,7 +529,7 @@ Public Class frmMDMDatenverarbetiung 'Exit Sub 'MsgBox(.sql) - .SET_SQL(" SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort,Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart, tblUTAImport.Fakturierwarenart + .SET_SQL(" SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort,Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart, tblUTAImport.Fakturierwarenart,sum(tblUTAImport.Gesamtbetrag_Netto_in_Lieferlandwährung) as Netto ,sum(tblUTAImport.Gesamtbetrag_Brutto_in_Lieferlandwährung) as Brutto FROM tblUTAFakturierwarenarten INNER JOIN (((Adressen INNER JOIN tblUTAImport ON Adressen.UTAKundenNr = tblUTAImport.Kundennummer) INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr) @@ -586,16 +586,16 @@ Public Class frmMDMDatenverarbetiung End If - 'Dim sumBto As Double = 0 - 'Dim sumNto As Double = 0 - 'For Each r As DataGridViewRow In .Rows - ' sumBto += If(IsNumeric(r.Cells("plose_BruttobetragWaehrungAbbuchung").Value), CDbl(r.Cells("plose_BruttobetragWaehrungAbbuchung").Value), 0) - ' sumNto += If(IsNumeric(r.Cells("plose_NettobetragWaehrungAbbuchung").Value), CDbl(r.Cells("plose_NettobetragWaehrungAbbuchung").Value), 0) - 'Next + Dim sumBto As Double = 0 + Dim sumNto As Double = 0 + For Each r As DataGridViewRow In .Rows + sumBto += If(IsNumeric(r.Cells("Brutto").Value), CDbl(r.Cells("Brutto").Value), 0) + sumNto += If(IsNumeric(r.Cells("Netto").Value), CDbl(r.Cells("Netto").Value), 0) + Next - 'txtAnzahl.Text = .Rows.Count - 'txtPruefsummeNetto.Text = CDbl(sumNto).ToString("C2") - 'txtPruefsummeBrutto.Text = CDbl(sumBto).ToString("C2") + txtAnzahl.Text = .Rows.Count + txtPruefsummeNetto.Text = CDbl(sumNto).ToString("C2") + txtPruefsummeBrutto.Text = CDbl(sumBto).ToString("C2") .ClearSelection() End With @@ -784,38 +784,61 @@ Public Class frmMDMDatenverarbetiung INNER JOIN (((Adressen INNER JOIN tblUTAImport ON Adressen.UTAKundenNr = tblUTAImport.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 (tblUTAImport.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImport.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart - group by Kundennummer, KundenNr, UTAExportCSV,Rechnungsdruck - " - 'Dim SQLStr = " SELECT TOP 3 [Customer ID],[Customer Nr], UTAExportCSV,Rechnungsdruck , sum( Gesamtbetrag_Brutto_in_Darstellwährung ) - ' FROM( - ' SELECT Kundennummer AS [Customer ID], KundenNr AS [Customer Nr], UTAExportCSV,Rechnungsdruck , ( Gesamtbetrag_Brutto_in_Darstellwährung ) - ' FROM tblUTAImport - ' INNER JOIN Adressen ON Adressen.UTAKundenNr = tblUTAImport.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 (tblUTAImport.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImport.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart) - ' INNER JOIN tblUTAFakturierwarenarten ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart - ' ) as T1 /*WHERE Gesamtbetrag_Brutto_in_Darstellwährung <>0*/ - ' group by [Customer ID],[Customer Nr], UTAExportCSV,Rechnungsdruck - ' " + group by Kundennummer, KundenNr, UTAExportCSV,Rechnungsdruck" + Dim dt_Main As DataTable = SQL.loadDgvBySql_Param(SQLStr, "FMZOLL", 1200) - 'MsgBox("Keine Daten!""SELECT [AdressenNr],PLOSEKundenNr FROM tblPLOSE_Details INNER JOIN Adressen ON plose_POLSEKundennummer=PLOSEKundenNr where AND plose_Fakturiert = 0 AND plose_DatumTransaktion between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' group by [AdressenNr],PLOSEKundenNr ") + + If dt_Main Is Nothing OrElse dt_Main.Rows.Count = 0 Then MsgBox("Keine Daten!") Return False End If Dim cnt = 0 If vbYes = MsgBox("Es wurden Daten von " & dt_Main.Rows.Count & " Kunden gefunden " & vbNewLine & " Möchten Sie die Anhänge erstellen?", vbYesNoCancel) Then - Dim dir = "F:\FMZoll\Maut\UTA\Archiv\" & Now.ToShortDateString + Dim dir = "F:\FMZoll\Maut\UTA\Archiv\" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "Test", "") & Now.ToShortDateString If Directory.Exists(dir) Then dir &= "_" & Now.ToShortTimeString.Replace(":", "") Directory.CreateDirectory(dir) - For Each R_PLOSE In dt_Main.Rows + + + Dim displayView = New DataView(dt_Main, "UTAExportCSV = 1", "Customer ID", DataViewRowState.CurrentRows) + Dim distinctDT_CSV As DataTable = displayView.ToTable(True, "Customer ID", "Customer Nr") + + + For Each csv As DataRow In distinctDT_CSV.Rows + + Dim dt_CSV_selected = SQL.loadDgvBySql_Param("SELECT * FROM tblUTAImport where Kundennummer = " & csv.Item("Customer ID"), "FMZOLL") + dt_CSV_selected.ParentRelations.Clear() + dt_CSV_selected.ChildRelations.Clear() + dt_CSV_selected.Constraints.Clear() + dt_CSV_selected.Columns.Remove("upsize_ts") + + + Dim fn As String = dir & "\" & csv.Item(1) & "_Maut_UTA.csv" + Dim outFile As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(fn, False) + Dim clmns As String = "" + For i = 0 To dt_CSV_selected.Columns.Count - 1 + clmns &= dt_CSV_selected.Columns(i).ColumnName.ToString().Replace(";", ",") & ";" + Next + outFile.WriteLine(clmns) + For i = 0 To dt_CSV_selected.Rows.Count - 1 + clmns = "" + For j = 0 To dt_CSV_selected.Columns.Count - 1 + clmns &= dt_CSV_selected.Rows(i)(j).ToString.Replace(";", ",") & ";" + Next + outFile.WriteLine(clmns) + + Next + outFile.Close() + Next + + + For Each UTA In dt_Main.Rows Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing Dim verarbOK = True - ' If Not genUTA_SPEDBUCH_ByKdNr(R_PLOSE("AdressenNr"), R_PLOSE("PLOSEKundenNr"), dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString, SPEDBUCH) Then verarbOK = False - ' If Not genUTA_RECHNUNG_BySPEDBUCH(R_PLOSE("AdressenNr"), R_PLOSE("PLOSEKundenNr"), SPEDBUCH, dat_Sum_Von.Value, dat_Sum_Bis.Value) Then verarbOK = False - genUTAAttachmentByKdNr(R_PLOSE("Customer Nr"), R_PLOSE("Customer ID"), dir, datPloseAnhang.Value) 'R_PLOSE("AdressenNr"), R_PLOSE("PLOSEKundenNr"), dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString, dir) + + genUTAAttachmentByKdNr(UTA("Customer Nr"), UTA("Customer ID"), dir, datPloseAnhang.Value) If verarbOK Then 'UPDATE Fakturiert @@ -1253,6 +1276,108 @@ Public Class frmMDMDatenverarbetiung + If dt IsNot Nothing Then + con.Open() + For Each r In dt.Rows + Try + 'Zeitstempel + + Dim SQLQuery = "INSERT INTO tblMautbericht (Datenquelle,[Customer No],[Licence Plate Number],[Transaction Date],[Transaction Country],[Product description],[Card Number],[Nett Amount],[VAT Amount],[Total Amount]) VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10) " + ' "SELECT * FROM DBParent WHERE P_ID = " & UniqeID & ";" + Using Command As New OleDbCommand(SQLQuery, con) + + Command.Parameters.AddWithValue("@P1", r(0)) + Command.Parameters.AddWithValue("@P2", r(1)) + Command.Parameters.AddWithValue("@P3", r(2)) + Command.Parameters.AddWithValue("@P4", r(3)) + Command.Parameters.AddWithValue("@P5", r(4)) + Command.Parameters.AddWithValue("@P6", r(5)) + Command.Parameters.AddWithValue("@P7", r(6)) + Command.Parameters.AddWithValue("@P8", CDbl(r(7))) + Command.Parameters.AddWithValue("@P9", CDbl(r(8))) + Command.Parameters.AddWithValue("@P10", CDbl(r(9))) + + Command.ExecuteNonQuery() + Command.Dispose() + End Using + + Catch ex2 As System.Exception + MsgBox("err: " & ex2.Message & ex2.StackTrace) + + Finally + If reader IsNot Nothing Then reader.Close() + End Try + + + Next + con.Close() + End If + pic.Visible = True + Return True + + Catch ex As System.Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + Return False + + End Function + + + Function genUTAInsertMautAT(kdNr) As Boolean + Try + pic.Visible = False + Dim displayFilter = False + Dim sqlstr As String = "" + + Dim sqlWhere As String = "" + If kdNr <> "" Then + sqlWhere &= " AND Adressen.AdressenNr=" & kdNr + End If + + + sqlstr = "SELECT qryUTA_Fakturierungspositionen.KundenNr AS [Customer No], + isnull([KFZ_Kennzeichen_komprimiert],isnull([KFZ_Kennzeichen],isnull([Prägetext_i_d_R_KFZ_Kennzeichen],''))) AS LicencePlateNumber, + cast([Belegdatum] as datetime) AS [Transaction Date], + qryUTA_Fakturierungspositionen.Lieferland AS [Transaction Country], + qryUTA_Fakturierungspositionen.Warenart AS [Product description], + qryUTA_Fakturierungspositionen.Kartennummer AS [Card number], + qryUTA_Fakturierungspositionen.Autobahnauffahrt AS [Entry Terminal], + qryUTA_Fakturierungspositionen.Autobahnausfahrt AS [Exit Terminal], + qryUTA_Fakturierungspositionen.Gesamtbetrag_Brutto_in_Darstellwährung AS [Total Amount], + qryUTA_Fakturierungspositionen.Gesamtbetrag_Netto_in_Darstellwährung AS [Nett Amount], + qryUTA_Fakturierungspositionen.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung AS [VAT Amount] + + FROM + (SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort, Adressen.UTAExportCSV, Adressen.Rechnungsdruck, Offertenpositionen.KundenNr, Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart, tblUTAImport.* + FROM tblUTAFakturierwarenarten INNER JOIN (((Adressen INNER JOIN tblUTAImport ON Adressen.UTAKundenNr = tblUTAImport.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 (tblUTAImport.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImport.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart + WHERE Offertenpositionen.KundenNr=" & sqlWhere & " + ) as qryUTA_Fakturierungspositionen + WHERE (((qryUTA_Fakturierungspositionen.Gesamtbetrag_Brutto_in_Darstellwährung)<>0)) + order by KundenNr, LicencePlateNumber, Belegdatum, " + + + + Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") + + + + + Dim connectionString = "" + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL.verag.ost.dmn\f\FMZoll\MautD_Test.accdb" + Else + connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL.verag.ost.dmn\f\FMZoll\MautD.accdb" + End If + + Dim con As New OleDbConnection(connectionString) + Dim cmd As New OleDbCommand + Dim var1 As String + + Dim adapter As OleDbDataAdapter = New OleDbDataAdapter() + Dim reader As OleDbDataReader = Nothing + + + If dt IsNot Nothing Then con.Open() For Each r In dt.Rows @@ -1495,9 +1620,8 @@ Public Class frmMDMDatenverarbetiung Dim displayFilter = False Dim sqlstr As String = "" - sqlstr &= " - SELECT qryUTA_Fakturierungspositionen.KundenNr AS [Customer Nr], qryUTA_Fakturierungspositionen.Kundennummer AS [Customer ID], qryUTA_Fakturierungspositionen.[Name 1] AS [Customer name], - cast([Belegdatum] + ' ' + dbo.timeserial(Left([Lieferzeit],2) , right(Left([Lieferzeit],4),2) , Right([Lieferzeit],2)) as datetime) AS [Transaction Date], + sqlstr &= "SELECT qryUTA_Fakturierungspositionen.KundenNr AS [Customer Nr], qryUTA_Fakturierungspositionen.Kundennummer AS [Customer ID], qryUTA_Fakturierungspositionen.[Name 1] AS [Customer name], + cast([Belegdatum] as datetime) AS [Transaction Date], qryUTA_Fakturierungspositionen.Lieferzeit AS [Transaction Time], qryUTA_Fakturierungspositionen.Lieferland AS [Transaction Country], qryUTA_Fakturierungspositionen.Warenart AS [Product description], qryUTA_Fakturierungspositionen.Fakturierwarenart AS [Product Description ID], qryUTA_Fakturierungspositionen.Kartentyp AS [Card Type], qryUTA_Fakturierungspositionen.Kartennummer AS [Card number], isnull([KFZ_Kennzeichen_komprimiert],isnull([KFZ_Kennzeichen],isnull([Prägetext_i_d_R_KFZ_Kennzeichen],''))) AS LicencePlateNumber, qryUTA_Fakturierungspositionen.Autobahnauffahrt AS [Entry Terminal/Direction], qryUTA_Fakturierungspositionen.Autobahnausfahrt AS [Exit Terminal Description], qryUTA_Fakturierungspositionen.Gesamtbetrag_Brutto_in_Darstellwährung AS [Transaction Amount ( EUR )] FROM @@ -1908,24 +2032,6 @@ Public Class frmMDMDatenverarbetiung Function genASFINAG_SPEDBUCH_ByKdNr(KdNr As String, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch) Try - 'MsgBox("Funktion noch nicht vollständig implementiert!") - 'Exit Function - - 'Dim displayFilter = False - 'Dim sqlstr As String = "" - - 'sqlstr &= " SELECT * " - 'sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode " - 'sqlstr &= " WHERE 1=1 " - 'sqlstr &= " AND plose_Fakturiert=0 " - 'sqlstr &= " AND plose_POLSEKundennummer = '" & KdNr & "' " - 'sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' " - - '' sqlstr &= " group by plose_ProduktCode" - 'sqlstr &= " order by plp_Land, plose_DatumTransaktion" - - 'Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") - Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr) SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch @@ -2131,9 +2237,6 @@ Public Class frmMDMDatenverarbetiung Function genASFINAG_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch) Try - 'MsgBox("Funktion noch nicht vollständig implementiert!") - 'Exit Function - Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.VermittlerKundenNr) Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(SPEDBUCH.VermittlerKundenNr) Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang @@ -2751,6 +2854,8 @@ Public Class frmMDMDatenverarbetiung Select Case LIEFERANT Case "PLOSE" : deleteMautD("PLOSE") : Return genPLOSEInsertMautD(dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString) Case "ASFINAG" : deleteMautD("AT") : Return genASFINAGInsertMautAT(kdNr) + Case "UTA" : deleteMautD("UTA") : Return genUTAInsertMautAT(kdNr) + Case "MSE" : deleteMautD("MSE") 'Return genUTAInsertMautAT(kdNr) End Select Return False End Function @@ -2768,6 +2873,7 @@ Public Class frmMDMDatenverarbetiung If vbYes = MsgBox("Möchten Sie den Vorgang wirklich manuell ausgeführen (wird bei Rechnungserstellung automatisch ausgeführt)", vbYesNoCancel) Then Select Case LIEFERANT Case "PLOSE" : setFakturiertPLOSE() + Case "ASFINAG" : setFakturiert_ASFINAG() End Select End If End Sub diff --git a/VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb b/VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb index bbc39860..80a8cd02 100644 --- a/VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb +++ b/VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb @@ -1375,15 +1375,5 @@ Public Class frmMessenger 'End If End Sub - Private Sub UsrCntlChat_Art_Btn1_Load(ctl As usrCntlChat_Art_Btn) Handles UsrCntlChat_Art_Btn_MACHAT.CLICKED - End Sub - - Private Sub UsrCntlChat_Art_Btn2_Load(ctl As usrCntlChat_Art_Btn) Handles UsrCntlChat_Art_Btn_LKWCHAT.CLICKED - - End Sub - - Private Sub UsrCntlChat_Art_snd_Load(ctl As usrCntlChat_Art_Btn) Handles UsrCntlChat_Art_Btn_SNDCHAT.CLICKED - - End Sub End Class \ No newline at end of file