From 6d48a78f849bae349f74f75544c07430d6988cf0 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 18 Apr 2025 15:37:01 +0200 Subject: [PATCH 01/10] MDM Datenverarbeitung, automailfakt. --- SDL/Fakturierung/cAutomailversand.vb | 46 +++++++++------ SDL/Fakturierung/cFakturierung.vb | 8 ++- SDL/My Project/AssemblyInfo.vb | 4 +- SDL/SDL.vbproj | 7 --- SDL/frmLogin.vb | 6 +- SDL/mdm/frmMDMDatenverarbetiung.vb | 85 ++++++++++++++++------------ VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb | 1 + 7 files changed, 88 insertions(+), 69 deletions(-) diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index a3fce594..4881a779 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -1,7 +1,5 @@  -Imports GrapeCity.DataVisualization.TypeScript Imports Microsoft.Office.Interop -Imports Microsoft.Office.Interop.Outlook Imports VERAG_PROG_ALLGEMEIN Public Class cAutomailversand @@ -117,7 +115,7 @@ Public Class cAutomailversand - If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoCC = "") Then + If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then Dim Mailsubject As String = "" Dim HTMLMail As String = "" @@ -128,9 +126,11 @@ Public Class cAutomailversand If doRechnung(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs) Then loadAndSetAnhaenge(SR_DT, ATTACHMENTS, listPDFs) + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST" + If mailoeffnen Then Dim Mail = createMail(Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID) - If setLog(row.Item("RechnungsKundenNr"),,,,,,, Mail) Then + If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum,,,,,,, Mail) Then Mail.Display() End If @@ -138,27 +138,20 @@ Public Class cAutomailversand Dim TextHTML = "" TextHTML &= HTMLMail - TextHTML &= "
" - TextHTML &= "
" - TextHTML &= "Mit freundlichen Grüßen
" - TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
" - TextHTML &= "
" - TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True) + TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True) HTMLMail = "
" & TextHTML & "
" - If setLog(row.Item("RechnungsKundenNr"), ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC) Then + If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC) Then End If End If End If + End If - - + Next - - Catch ex As System.Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) @@ -279,9 +272,11 @@ Public Class cAutomailversand End Sub - Private Function setLog(kdNr As Integer, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean + Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean Dim mailcreated As Boolean = False + Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + Dim EMails As String = "" Dim EMails_CC As String = "" @@ -307,8 +302,20 @@ Public Class cAutomailversand End If + Dim AbfertigungsNr As Integer + Dim FilialenNr As Integer - Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_BELEGMAIL, "SAMMELRECHNUNG-MDM",,, kdNr) + If SR_DT.Rows.Count > 0 Then + For Each r As DataRow In SR_DT.Rows + AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0) + FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0) + Next + + End If + + + + Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG-MDM",,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr) API.api_EMail = EMails API.api_EMailCC = EMails_CC @@ -334,11 +341,16 @@ Public Class cAutomailversand mailcreated = True Else API.UPDTAE_ERR() + sql.doSQL("update Rechnungsausgang set Status = 2 where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4", "FMZOLL") + Return mailcreated End If + + End If Return mailcreated diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 1580d48a..5aec1e4e 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -2466,14 +2466,16 @@ Public Class cFakturierung Return getSignature(RECHNUNG.RechnungsLandKz, RECHNUNG.Firma_ID) End Function - Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False) As String + Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False, Optional firmenSignature = False) As String getSignature = "" firma = getFirmaNr(firma) Dim imgsrc = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\").Replace("\", "/") - Dim emailindividuell = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email + Dim emailindividuell As String = "" + + If Not firmenSignature Then emailindividuell = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email If additionalLine <> "" Then additionalLine = "
" & additionalLine & "
" @@ -2524,7 +2526,7 @@ Public Class cFakturierung Case 19 'VERAG360 getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG 360 GmbH
" - getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "mmd@verag.ag") & " | www.verag.ag | FN 544732b
" + getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, If(firmenSignature, "mmdabrechnung@verag.ag", emailindividuell), "mmd@verag.ag") & " | www.verag.ag | FN 544732b
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 26 'VERAG-UNISPED getSignature &= "" diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index a7884f1c..64e75b4a 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/SDL.vbproj b/SDL/SDL.vbproj index 30b8a79d..dc93f763 100644 --- a/SDL/SDL.vbproj +++ b/SDL/SDL.vbproj @@ -889,10 +889,6 @@ UserControl - - frmDatumsabfrage.vb - - frmMDMLieferantenrechnungen.vb @@ -3419,9 +3415,6 @@ usrCntlBesuchsberichte.vb - - frmDatumsabfrage.vb - frmMDMLieferantenrechnungen.vb diff --git a/SDL/frmLogin.vb b/SDL/frmLogin.vb index a22df40e..e9d21c22 100644 --- a/SDL/frmLogin.vb +++ b/SDL/frmLogin.vb @@ -77,7 +77,7 @@ Public Class frmLogin ElseIf PARAM = "SAMMELRECHNUNG_AUTOSENT" Then Dim SRT_ART As Integer = 6 - Dim REDat As Date + Dim REDat As New Date(2025, 3, 15) Dim FirmaID As Integer = 19 If (parameter.Count - 1) >= 4 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist @@ -91,10 +91,6 @@ Public Class frmLogin Dim func As New cAutomailversand func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID) - 'Dim f As New c() - 'f.sendMailSammelrechnung(,,) - - End If diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index c516ac8b..429aa15d 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -1,5 +1,6 @@ Imports System.Data.OleDb Imports System.IO +Imports com.sun.xml.internal.ws.api.message Imports itextsharp.text.pdf Imports MDM_Worker Imports VERAG_PROG_ALLGEMEIN @@ -1127,7 +1128,7 @@ Public Class frmMDMDatenverarbetiung 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 isnull(charged,0) = 0 and cast([Rechnungsdatum] as date) = '" & DateTimePicker2.Text & "' and Adressen.AdressenNr not in(756150, 711104) " & IIf(test, " and KundenNr = 450018 ", "") & + where isnull(charged,0) = 0 and cast([Rechnungsdatum] as date) = '" & DateTimePicker2.Text & "' and Adressen.AdressenNr not in(756150, 711104) " & IIf(test, " and KundenNr = 402352 or KundenNr = 402421 ", "") & " group by Kundennummer, KundenNr, UTAExportCSV,Rechnungsdruck" Dim dt_Main As DataTable = SQL.loadDgvBySql_Param(SQLStr, "FMZOLL", 1200) @@ -1203,44 +1204,58 @@ Public Class frmMDMDatenverarbetiung If Not gen_RECHNUNG_BySPEDBUCH(uta("Customer Nr"), SPEDBUCH, "UTA",,,, RECHNUNG) Then verarbOK = False Dim pathFile = genUTAAttachmentByKdNr(uta("Customer Nr"), uta("Customer ID"), dir, datPloseAnhang.Value) - If Not AddAttachementToRE(pathFile, uta("Customer Nr"), RECHNUNG, "UTA") Then verarbOK = False + Dim customerNrwithCSV As Integer = distinctDT_CSV.AsEnumerable().Where(Function(res) res.Field(Of Integer)("Customer ID") = uta("Customer ID")).Select(Function(res) res.Field(Of Integer)("Customer Nr")).FirstOrDefault() + If customerNrwithCSV > 0 Then + For Each f In Directory.GetFiles(dir) + If f.Contains(customerNrwithCSV & "_Maut_UTA.csv") Then + Dim FileCSV = New FileInfo(f) + If Not AddAttachementToRE(FileCSV.FullName, uta("Customer Nr"), RECHNUNG, "UTA") Then + verarbOK = False + Else + Exit For + End If + + End If + Next + End If + + If verarbOK Then - 'UPDATE Fakturiert - SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL") - End If - If True Then 'cnt Mod 10 = 0 Then - txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count - Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 - pbPloseAnh_Proz.Value = proz - lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" - 'GroupBox12.Refresh() - My.Application.DoEvents() - End If - cnt += 1 - Next + 'UPDATE Fakturiert + SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL") + End If + If True Then 'cnt Mod 10 = 0 Then + txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count + Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 + pbPloseAnh_Proz.Value = proz + lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" + 'GroupBox12.Refresh() + My.Application.DoEvents() + End If + cnt += 1 + Next + If test Then Return True - If test Then Return True - - ' ANHÄNGE WERDEN NCIHT BENÖTIGT:: - 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren - Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) - If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) - For Each f In Directory.GetFiles(dirAnhang) - File.Delete(f) - Next - End If - If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) - For Each f In Directory.GetFiles(dir) - File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) - Next - pbPloseAnh_Proz.Value = 100 - txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count - lblPloseAnh_Proz.Text = "100.00 %" - Return True - End If - Return False + ' ANHÄNGE WERDEN NCIHT BENÖTIGT:: + 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren + Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) + If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) + For Each f In Directory.GetFiles(dirAnhang) + File.Delete(f) + Next + End If + If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) + For Each f In Directory.GetFiles(dir) + File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) + Next + pbPloseAnh_Proz.Value = 100 + txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count + lblPloseAnh_Proz.Text = "100.00 %" + Return True + End If + Return False End Function Function genRGAtt_MSE(mseParam As cMSEAPI) As Boolean Dim top = "" diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb b/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb index e7c37d0c..c02aa1fb 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb @@ -26,6 +26,7 @@ Public Enum cAPI_ART AVISO_IN_MSE = 80 SDL_OUT_FA = 81 + SDL_OUT_SAMMELRECHNUNG = 82 End Enum From 5d1cdab948d000dd75f1ffc57b4f01c3ea7f2b28 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 18 Apr 2025 15:58:55 +0200 Subject: [PATCH 02/10] Fakt. --- SDL/Fakturierung/cAutomailversand.vb | 4 ++-- SDL/Fakturierung/cFakturierung.vb | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 4881a779..62d456cc 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -195,10 +195,10 @@ Public Class cAutomailversand End Sub - Private Function doRechnung(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True) + Private Function doRechnung(kdNr As Integer, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, lastAktuelle_RgNr As Integer, DruckDatumZeit As Date, Kopie As Boolean, listPDFs As List(Of String), Optional EinzelAnlagen As Boolean = False, Optional Sammelbericht As Boolean = True, Optional saveInThereFore As Boolean = False) Dim RechnungsNrisSet As Boolean = False - RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(19, 6, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie) + RechnungsNrisSet = cFakturierung.doSAMMELRechnungsDruck(19, 6, Rechnungsdatum, Rechnungsdatum, "", EinzelAnlagen, Sammelbericht, kdNr, 4, listPDFs, "", lastAktuelle_RgNr, DruckDatumZeit, , , ,, ,,, True, Kopie,, saveInThereFore) Return RechnungsNrisSet End Function diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 5aec1e4e..6fe131f8 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -2938,7 +2938,7 @@ Public Class cFakturierung End Function - Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional MDMRENrvoarhanden As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean + Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional MDMRENrvoarhanden As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean 'If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False Try @@ -2997,7 +2997,7 @@ Public Class cFakturierung If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr Dim path = "" - doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart) 'hier wird auch die RG Nr erhöht! + doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) 'hier wird auch die RG Nr erhöht! Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) If path <> "" Then listPDFs.Add(path) End If @@ -3026,7 +3026,7 @@ Public Class cFakturierung If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr Dim path = "" - doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart) + doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) If path <> "" Then listPDFs.Add(path) End If @@ -3075,7 +3075,7 @@ Public Class cFakturierung 'Letzter Abschnitt: If found Then Dim path = "" - If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie) + If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore) If path <> "" Then listPDFs.Add(path) End If lastAktuelle_RgNr = Aktuelle_RgNr @@ -3097,7 +3097,7 @@ Public Class cFakturierung End Function - Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsanhangPDF As Boolean = False, Optional RechnugnskopieMDMSammelrechnung As Boolean = False, Optional AnhList As List(Of String) = Nothing, Optional RechnungsanhangCSV As Boolean = False, Optional onlyAsfinagAnhang As Boolean = False) As Boolean + Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsanhangPDF As Boolean = False, Optional RechnugnskopieMDMSammelrechnung As Boolean = False, Optional AnhList As List(Of String) = Nothing, Optional RechnungsanhangCSV As Boolean = False, Optional onlyAsfinagAnhang As Boolean = False, Optional saveInTherefore As Boolean = True) As Boolean 'SB Nicht mehr benötigt, da RG-Nr und DruckdatumUhrzeit Dim dt As DataTable @@ -3185,8 +3185,16 @@ Public Class cFakturierung '------------------------------------------------------------------------------- Try If RechnungsdruckArt <> 7 Then - If Not SRDruckWiederholen And (Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM OrElse vbYes = MsgBox("TEST - in Therefore speichern?", vbYesNoCancel)) Then - VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(pathPDF, "SA " & RechnungsNr & " " & dt.Rows(0)("RechnungsName 1"), "", Firma_ID, False) + If Not SRDruckWiederholen And saveInTherefore Then + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + If vbYes = MsgBox("TEST - in Therefore speichern?") Then + VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(pathPDF, "SA " & RechnungsNr & " " & dt.Rows(0)("RechnungsName 1"), "", Firma_ID, False) + End If + Else + VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(pathPDF, "SA " & RechnungsNr & " " & dt.Rows(0)("RechnungsName 1"), "", Firma_ID, False) + End If + + End If End If From c9eeee91a610d3e157fa3ce47d484acd0a1c7a7e Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 08:36:37 +0200 Subject: [PATCH 03/10] uta, MDM Plose --- SDL/mdm/frmMDMDatenverarbetiung.vb | 2 +- VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index 429aa15d..897864b0 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -1756,7 +1756,7 @@ Public Class frmMDMDatenverarbetiung Dim displayFilter = False Dim sqlstr As String = "" - sqlstr &= " SELECT 'PLOSE',AdressenNr,plose_Kennzeichen,plose_DatumTransaktion,plp_Land,isnull([tblPLOSE_Produktbeschreibung].plp_Description_EN,plose_Produktbeschreibung) as plose_Produktbeschreibung ,isnull(plose_NummerKarteGeraet,plose_Kontonummer) as plose_NummerKarteGeraet ,plose_BeschreibungEinfahrt,isnull(plose_BeschreibungAusfahrt,plose_BeschreibungMautTankstelle) as plose_BeschreibungAusfahrt,plose_NettobetragWaehrungAbbuchung,(plose_BruttobetragWaehrungAbbuchung-plose_NettobetragWaehrungAbbuchung) as Steuer,plose_BruttobetragWaehrungAbbuchung " + sqlstr &= " SELECT 'PLOSE',AdressenNr,plose_Kennzeichen,plose_DatumTransaktion,plp_Land,isnull([tblPLOSE_Produktbeschreibung].plp_Description_EN,plose_Produktbeschreibung) as plose_Produktbeschreibung ,isnull(plose_NummerKarteGeraet,plose_Kontonummer) as plose_NummerKarteGeraet ,plose_BeschreibungEinfahrt,case when plose_BeschreibungAusfahrt is null and plose_BeschreibungMautTankstelle = 'Bregana' then 'Bregana' else isnull(plose_BeschreibungAusfahrt,'') end as plose_BeschreibungAusfahrt,plose_NettobetragWaehrungAbbuchung,(plose_BruttobetragWaehrungAbbuchung-plose_NettobetragWaehrungAbbuchung) as Steuer,plose_BruttobetragWaehrungAbbuchung " sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode INNER JOIN Adressen on plose_POLSEKundennummer=PLOSEKundenNr and plp_LeistungsNr is not null " sqlstr &= " WHERE 1=1 " sqlstr &= " AND plose_Fakturiert=0 AND plose_ProduktCode NOT IN (" & ProduktCode_NOT_IN & " ) AND plp_Land NOT IN ('AT','DE') " diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb b/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb index bba20655..04af6d27 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb @@ -1064,7 +1064,7 @@ Public Class cUTA Case "20" - lngÜbertragungsposition = 6616 + 'lngÜbertragungsposition = 6616 From 735c14c03b1a5c85ee4e955a8a441b9b21a76f21 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 11:29:08 +0200 Subject: [PATCH 04/10] ustva, Antragspos --- SDL/USTV/frmMDM_USTVAntrag.vb | 83 ++++++++++++++++++++++---- SDL/USTV/ustCntlUSTV_AntragPosition.vb | 7 ++- 2 files changed, 76 insertions(+), 14 deletions(-) diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index c7df3cc4..4932b070 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -1,6 +1,5 @@ Imports System.IO Imports System.Reflection -Imports System.ServiceModel.Configuration Imports System.Windows.Documents Imports itextsharp.text.pdf Imports itextsharp.text.pdf.parser @@ -177,6 +176,7 @@ Public Class frmMDM_USTVAntrag If da_id > 0 Then + DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = Nothing DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf End If @@ -411,6 +411,7 @@ Public Class frmMDM_USTVAntrag 'refreshDgv(kdNr, SDLNr, Kfz, History)'?????????????? ausgebelndet,was das ein VErsuch? 31.07.2017 Dim posIdinDGV As Boolean = False + For Each r As DataGridViewRow In dgvUSTVPositionen.Rows If r.Cells("UStVPo_ID").Value = POSId Then posIdinDGV = True @@ -420,6 +421,7 @@ Public Class frmMDM_USTVAntrag If posIdinDGV Then dgvUSTVPositionen.VALUE_CHANGED = True + init(POSId) Else init(dgvUSTVPositionen.Rows.Count + 1) End If @@ -694,9 +696,24 @@ Public Class frmMDM_USTVAntrag USTV_POS.UStVPo_Schnittstelle = True USTV_POS.UStVPo_Leistungsbezeichnung = "Maut" - Dim leistender As New cUStVLeistender(ANTRAG.plose_Lieferant & " " & Antrag_LandKz, Antrag_LandKz) + Dim leistenderName As String = "" + + Select Case Antrag_LandKz + Case "DK" + leistenderName = "A/S Storebealt" + Case Else + If ANTRAG.plose_Lieferant = "SOFICO BELGIO" Then + leistenderName = "Sofico" + Else + leistenderName = ANTRAG.plose_Lieferant + End If + + End Select + + + Dim leistender As New cUStVLeistender(leistenderName & " " & Antrag_LandKz, Antrag_LandKz) If leistender.UStV_LeistenderId < 1 Then - leistender = New cUStVLeistender(ANTRAG.plose_Lieferant.ToString) + leistender = New cUStVLeistender(leistenderName) End If USTV_POS.UStVPo_Leistender = leistender.UStV_Leistender @@ -1183,7 +1200,19 @@ Public Class frmMDM_USTVAntrag Select Case Antrag_LandKz Case "RO" - + leistenderName = "Kuwait Petroleum Romania S.R.L" + Case "SE" + leistenderName = "OK-Q8 AB" + Case "DK" + leistenderName = "Q8 Danmark A/S" + Case "PL" + leistenderName = "Kuwait Petroleum Sp. Z.o.o" + Case "DE" + leistenderName = "Kuwait Petroleum Gmbh" + Case "IT" + leistenderName = "Kuwait Petroleum Italie Spa" + Case "ES" + leistenderName = "Fuel Iberia S.L.U" Case Else leistenderName = "IDS EUROPE B.V." End Select @@ -1265,22 +1294,42 @@ Public Class frmMDM_USTVAntrag USTV_ANTRAG.UStVAn_LandNr = cbxLand._value + If USTV_ANTRAG.UStVAn_LandNr = "" Then + MsgBox("Land muss gesetzt werden!") + Exit Sub + End If + If cbxWahrung.SelectedValue Is Nothing Then USTV_ANTRAG.UStVAn_Währungscode = SQL.DLookup("Währungscode", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL") Else USTV_ANTRAG.UStVAn_Währungscode = cbxWahrung.SelectedValue End If + If Not (IsDate(txtVon._value) AndAlso IsDate(txtBis._value)) Then + MsgBox("Zeitraum muss gesetzt werden!") + Exit Sub + End If + + + 'check if already existing + Dim anzUSTVA = CInt((New SQL).getValueTxtBySql("Select count(*) from tblUStVAntrag where UStvAN_KuNr = " & KundenNr & " and isnull(UStVAn_AntragArt,'MWST') = '" & cboAntragArt._value & "' and UStVAn_LandNr = " & USTV_ANTRAG.UStVAn_LandNr & " + AND (cast(UStVAn_ReDatvon as date) <= '" & CDate(txtVon._value).ToShortDateString & "' and cast(UStVAn_ReDatBis as date) >= '" & CDate(txtBis._value).ToShortDateString & "' or cast(UStVAn_ReDatvon as date) >= '" & CDate(txtBis._value).ToShortDateString & "' or cast(UStVAn_ReDatbis as date) >= '" & CDate(txtVon._value).ToShortDateString & "')", "FMZOLL")) + + If anzUSTVA > 0 Then + If Not vbYes = MsgBox("Es existiert bereits mind. ein " & cboAntragArt._value & " -Eintrag in diesem Zeitbereich von " & ADR.Name_1 & " für " & cbxLand.SelectedItem.ToString & vbNewLine & "Trotzdem Antrag speichern?", vbYesNoCancel) Then Exit Sub + End If + + USTV_ANTRAG.UStVAn_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME - USTV_ANTRAG.UStVAn_Zeitstempel = Now() + USTV_ANTRAG.UStVAn_Zeitstempel = Now() - getValue(USTV_ANTRAG, ADR, FIRMA) + getValue(USTV_ANTRAG, ADR, FIRMA) - Me.UStVAn_ID = USTV_ANTRAG.SAVEID() + Me.UStVAn_ID = USTV_ANTRAG.SAVEID() - init() + init() - End If + End If End Sub @@ -1859,8 +1908,12 @@ Public Class frmMDM_USTVAntrag If dgvUSTVPositionen.SelectedRows.Count > 0 Then Dim nummerierung As Boolean = False - If vbYes = MsgBox("Soll eine Nummerierung auf den PDF Dokumenten angegeben werden?", vbYesNoCancel) Then nummerierung = True + Select Case MsgBox("Soll eine Nummerierung auf den PDF Dokumenten angegeben werden?", vbYesNoCancel) + Case vbYes : nummerierung = True + Case vbNo : nummerierung = True + Case Else : Exit Sub + End Select For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index) @@ -2076,8 +2129,14 @@ Public Class frmMDM_USTVAntrag Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED) canvas.SetFontAndSize(bf, 12) canvas.BeginText() - 'The origin (0,0) is at the bottom-left corner of the page and represent coordinates in points!!!!!!! - canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0) + + 'The origin (0,0) is at the bottom-left corner of the page and represent coordinates in points!!!!! + Dim _height = pdfReader.GetPageSizeWithRotation(page).GetTop(25) 'oberer Rand + Dim _width = pdfReader.GetPageSizeWithRotation(page).GetRight(0) / 2 'Mitte + + canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, _width, _height, 0) + 'canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0) + canvas.EndText() 'listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page)) Next diff --git a/SDL/USTV/ustCntlUSTV_AntragPosition.vb b/SDL/USTV/ustCntlUSTV_AntragPosition.vb index 39c3cb07..a4681b2b 100644 --- a/SDL/USTV/ustCntlUSTV_AntragPosition.vb +++ b/SDL/USTV/ustCntlUSTV_AntragPosition.vb @@ -574,13 +574,16 @@ Public Class ustCntlUSTV_AntragPosition Private Sub scanSonstiges_FileAdded(id As String, path As String, name As String) Handles scanSonstiges.FileAdded getValues(UStV_POS, True) UStV_POS.UStVPo_daId = id - If UStV_POS.SAVE() Then scanSonstiges.INIT_daId(UStV_POS.UStVPo_daId) + If UStV_POS.SAVE() Then + scanSonstiges.INIT_daId(UStV_POS.UStVPo_daId) + RaiseEvent CHANGED(UStV_POS.UStVPo_ID) + End If End Sub Private Sub scanSonstiges_FileDeleted() Handles scanSonstiges.FileDeleted getValues(UStV_POS, True) UStV_POS.UStVPo_daId = Nothing - UStV_POS.SAVE() + If UStV_POS.SAVE() Then RaiseEvent CHANGED(UStV_POS.UStVPo_ID) End Sub From 79cd4dae3d93158959c0ebefaad32321e1043564 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 12:40:22 +0200 Subject: [PATCH 05/10] MDM Auswertung --- .../usrCntlMDMDatenverarbeitungAuswertungen_divers.vb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb b/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb index aa0f2226..57c26dd7 100644 --- a/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb +++ b/SDL/mdm/usrCntlMDMDatenverarbeitungAuswertungen_divers.vb @@ -42,6 +42,8 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers Button6.Text = "fehlende KdNr" Button2.Text = "fehlende Fakt.warenart" Button1.Text = "fehlende Offertenpos." + Button3.Text = "Vergleich Bericht" + Button3.Visible = True Case "MSE" @@ -339,6 +341,12 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers sqlstr = "SELECT * FROM vwUTA_PrüfungInkonsistenzVERAGOffertenpositionen2_new" + Case "VERGLEICH" + + sqlstr = "select Rechnungsempfänger_Kundennummer,cast(Rechnungsdatum as date) as Rechnungsdatum,Abrechnungsnummer, sum(Gesamtbetrag_Brutto_in_Darstellwährung) as Total from tblUTAImportNew where isnull(charged,0) = 0 and cast(Rechnungsdatum as Date) = '" & MAIN.DateTimePicker2.Text & "' + GROUP BY Rechnungsempfänger_Kundennummer,Rechnungsdatum,Abrechnungsnummer + order by Rechnungsempfänger_Kundennummer,Rechnungsdatum,Abrechnungsnummer" + Case Else MsgBox("Auswertungsart nicht definiert!") Exit Sub @@ -834,6 +842,9 @@ Public Class usrCntlMDMDatenverarbeitungAuswertungen_divers Case "IDS" genIDSBericht("LAENDERCODES") + Case "UTA" + genUTABericht("VERGLEICH") + End Select From d8db42fd4d362ce50a2e54c01b5e6d0eecdda12b Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 14:02:08 +0200 Subject: [PATCH 06/10] MDM --- SDL/mdm/frmMDMDatenverarbetiung.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index 897864b0..85904f1e 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -368,7 +368,8 @@ Public Class frmMDMDatenverarbetiung AND (tblUTAImportNew.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart) as temp where isnull(temp.charged,0) = 0 and cast(Rechnungsdatum as Date) = '" & DateTimePicker2.Text & "' - GROUP BY Kundennummer, KundenNr, [Name 1], LandKz, Ort, Lieferland, Kartennummer" + GROUP BY Kundennummer, KundenNr, [Name 1], LandKz, Ort, Lieferland, Kartennummer + order by Kundennummer,Lieferland" Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") 'DataGridView.DataSource = dt From 821047e2407e19a7d27d2508246b97e91eb6cd3a Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 14:41:14 +0200 Subject: [PATCH 07/10] Export USTVA in Excel --- SDL/USTV/usrCntlUSTV.vb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index 396b9c6b..59b32023 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -43,7 +43,7 @@ Public Class usrCntlUSTV End If End If - .SET_SQL("SELECT " & topMax & " [UStVAn_ID],UStVAn_AntragArt,[UStVAn_KuNr],[UStVAn_Name],[UStVAn_LandKz],LandKz, UStVAn_BezugsNr, [UStVAn_ReDatVon], [UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],([UStVAn_USteuerbetrag] - [UStVAn_Erstattungsbetrag]) as UStVAn_Differenzbetrag,[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],([UStVAn_USteuerbetragEUR] - [UStVAn_ErstattungsbetragEUR]) as UStVAn_DifferenzbetragEUR,[UStVAn_VZBetrag],[UStVAn_VZDatum],[UStVAn_Sachbearbeiter] + .SET_SQL("SELECT " & topMax & " [UStVAn_ID],UStVAn_AntragArt,[UStVAn_KuNr],[UStVAn_Name],[UStVAn_LandKz],LandKz as LandKzAntrag , UStVAn_BezugsNr, [UStVAn_ReDatVon], [UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],([UStVAn_USteuerbetrag] - [UStVAn_Erstattungsbetrag]) as UStVAn_Differenzbetrag,[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],([UStVAn_USteuerbetragEUR] - [UStVAn_ErstattungsbetragEUR]) as UStVAn_DifferenzbetragEUR,[UStVAn_VZBetrag],[UStVAn_VZDatum],[UStVAn_Sachbearbeiter] FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr where 1=1 " & getWhere() & " order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc", "FMZOLL") @@ -82,7 +82,7 @@ Public Class usrCntlUSTV .Columns("UStVAn_LandKz").HeaderText = "Land" .Columns("UStVAn_LandKz").Width = 60 - .Columns("LandKz").Width = 60 + .Columns("LandKzAntrag").Width = 60 .Columns("UStVAn_ReDatVon").HeaderText = "Von" '.Columns("UStVAn_ReDatVon").DefaultCellStyle = DataGridViewCellStyleDate @@ -331,7 +331,10 @@ Public Class usrCntlUSTV If dtNew.Rows.Count > 0 Then For Each col As DataColumn In dtNew.Columns - col.ColumnName = col.ColumnName.Replace("UStVAn_", "") + + Dim colName = col.ColumnName.Replace("UStVAn_", "") + + If Not col.ColumnName.Contains(colName) Then col.ColumnName = col.ColumnName.Replace("UStVAn_", "") Next cProgramFunctions.genExcelFromDT_NEW(dtNew, {"J1:N" & (dtNew.Rows.Count + 1)},,,,, True) From bb103a56d6e4515b6a26f46e6cbd04e44a9722be Mon Sep 17 00:00:00 2001 From: "m.ilhan" Date: Tue, 22 Apr 2025 15:24:26 +0200 Subject: [PATCH 08/10] changes --- .../Schnittstellen/TIMAS/cTimasAPI.vb | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb index 1705e627..b0f3516a 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb @@ -1,4 +1,5 @@ -Imports System.Net +Imports System.Data.SqlClient +Imports System.Net Imports System.Text Imports System.Windows.Forms @@ -31,6 +32,41 @@ Public Class cTimasAPI End Sub + Public Function loadDgvBySql(ByVal sql As String, Optional conn_art As String = "SDL", Optional timeout As Integer = 0, Optional showerror As Boolean = True) As DataTable + Try + Dim myTable = New DataTable() + Dim conn As New SqlConnection + Select Case conn_art + + Case "ADMIN" + conn.ConnectionString = "Data Source=SQLGUIDE01.verag.ost.dmn;Initial Catalog=ADMIN;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$" + conn.Open() + + + + Case "AVISO_ATILLA" + conn.ConnectionString = "Data Source=172.16.0.98;Initial Catalog=AVISO_ATILLA;Integrated Security=false;User ID=sa;Password=BmWr501956;Pooling=true;Min Pool Size=5;Max Pool Size=200" + conn.Open() + End Select + ' MsgBox(cAllgemein.TESTSYSTEM) + ' Using conn As SqlConnection = cSqlDb.GetNewOpenConnection() + Using cmd As New SqlCommand(sql, conn) + If timeout > 0 Then cmd.CommandTimeout = timeout 'Seconds + Dim dr As SqlDataReader = cmd.ExecuteReader() + + myTable.Load(dr) + dr.Close() + End Using + conn.Close() + ' End Using + Return myTable 'While Schleife wird hier verlassen + Catch ex As Exception + If showerror Then VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler", , , sql) + End Try + + Return Nothing + + End Function Public Function checkConnectionTImas(ByRef failureText As String) As Boolean Try Dim success As Boolean From 648ed7c2b3ceb967f45cb03224389997e43139cb Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 15:56:23 +0200 Subject: [PATCH 09/10] ustva, etc. --- SDL/USTV/frmMDM_USTVAntrag.vb | 2 +- SDL/USTV/usrCntlUSTV.vb | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index 4932b070..a048d958 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -1840,7 +1840,7 @@ Public Class frmMDM_USTVAntrag TextHTML &= "Mit freundlichen Grüßen
" TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
" TextHTML &= "
" - Mail.HTMLBody = "
" & TextHTML & SDL.cFakturierung.getSignature("DE") & "
" + Mail.HTMLBody = "
" & TextHTML & SDL.cFakturierung.getSignature("DE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID) & "
" Mail.Display() diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index 59b32023..fadc3b0a 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -43,7 +43,7 @@ Public Class usrCntlUSTV End If End If - .SET_SQL("SELECT " & topMax & " [UStVAn_ID],UStVAn_AntragArt,[UStVAn_KuNr],[UStVAn_Name],[UStVAn_LandKz],LandKz as LandKzAntrag , UStVAn_BezugsNr, [UStVAn_ReDatVon], [UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],([UStVAn_USteuerbetrag] - [UStVAn_Erstattungsbetrag]) as UStVAn_Differenzbetrag,[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],([UStVAn_USteuerbetragEUR] - [UStVAn_ErstattungsbetragEUR]) as UStVAn_DifferenzbetragEUR,[UStVAn_VZBetrag],[UStVAn_VZDatum],[UStVAn_Sachbearbeiter] + .SET_SQL("SELECT " & topMax & " [UStVAn_ID],UStVAn_AntragArt,[UStVAn_KuNr],[UStVAn_Name],[UStVAn_LandKz],LandKz as Land_Antrag , UStVAn_BezugsNr, [UStVAn_ReDatVon], [UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],([UStVAn_USteuerbetrag] - [UStVAn_Erstattungsbetrag]) as UStVAn_Differenzbetrag,[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],([UStVAn_USteuerbetragEUR] - [UStVAn_ErstattungsbetragEUR]) as UStVAn_DifferenzbetragEUR,[UStVAn_VZBetrag],[UStVAn_VZDatum],[UStVAn_Sachbearbeiter] FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr where 1=1 " & getWhere() & " order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc", "FMZOLL") @@ -82,7 +82,7 @@ Public Class usrCntlUSTV .Columns("UStVAn_LandKz").HeaderText = "Land" .Columns("UStVAn_LandKz").Width = 60 - .Columns("LandKzAntrag").Width = 60 + .Columns("Land_Antrag").Width = 90 .Columns("UStVAn_ReDatVon").HeaderText = "Von" '.Columns("UStVAn_ReDatVon").DefaultCellStyle = DataGridViewCellStyleDate @@ -459,7 +459,7 @@ Public Class usrCntlUSTV For Each r As DataGridViewRow In dgvUSTV.Rows If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then ' OrElse r.Cells("UStVAn_AntragEingereichtAm").Value = "" Then 'Dim Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & r.Cells("UStVAn_LandNr").Value & "'", "FMZOLL") - frmMDM_USTVAntrag.loadUSTVFrom_PLOSE(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False, IIf(item.Name = "ploseneu", True, False)) + frmMDM_USTVAntrag.loadUSTVFrom_PLOSE(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False, IIf(item.Name = "ploseneu", True, False)) End If Next init() @@ -472,7 +472,7 @@ Public Class usrCntlUSTV If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then For Each r As DataGridViewRow In dgvUSTV.Rows If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then - frmMDM_USTVAntrag.loadUSTVFrom_RMC(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False) + frmMDM_USTVAntrag.loadUSTVFrom_RMC(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False) End If Next init() @@ -484,7 +484,7 @@ Public Class usrCntlUSTV If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then For Each r As DataGridViewRow In dgvUSTV.Rows If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then - frmMDM_USTVAntrag.loadUSTVFrom_MSE(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False) + frmMDM_USTVAntrag.loadUSTVFrom_MSE(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False) End If Next init() @@ -498,7 +498,7 @@ Public Class usrCntlUSTV If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then For Each r As DataGridViewRow In dgvUSTV.Rows If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then - frmMDM_USTVAntrag.loadUSTVFrom_UTA(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False) + frmMDM_USTVAntrag.loadUSTVFrom_UTA(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False) End If Next init() @@ -510,7 +510,7 @@ Public Class usrCntlUSTV If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then For Each r As DataGridViewRow In dgvUSTV.Rows If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then - frmMDM_USTVAntrag.loadUSTVFrom_IDS(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False) + frmMDM_USTVAntrag.loadUSTVFrom_IDS(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False) End If Next init() @@ -523,7 +523,7 @@ Public Class usrCntlUSTV If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then For Each r As DataGridViewRow In dgvUSTV.Rows If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then - If r.Cells("LandKz").Value = "AT" Then frmMDM_USTVAntrag.loadUSTVFrom_VERAG(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False) + If r.Cells("Land_Antrag").Value = "AT" Then frmMDM_USTVAntrag.loadUSTVFrom_VERAG(r.Cells("UStVAn_ID").Value, r.Cells("Land_Antrag").Value, False) End If Next init() @@ -790,7 +790,7 @@ Public Class usrCntlUSTV Exit Sub End If - If vbYes = MsgBox("Möchten Sie den " & dgvUSTV.SelectedRows(0).Cells("LandKz").Value & " Antrag von " & dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value & "( " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value & " - " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value & ") wirklich löschen?", vbYesNoCancel) Then + If vbYes = MsgBox("Möchten Sie den " & dgvUSTV.SelectedRows(0).Cells("Land_Antrag").Value & " Antrag von " & dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value & "( " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value & " - " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value & ") wirklich löschen?", vbYesNoCancel) Then Dim del_antrag As New cUSTVAntrag(dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value) From 40482b9841598086291b49ec09e738befa612919 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 22 Apr 2025 16:49:17 +0200 Subject: [PATCH 10/10] cbam --- SDL/kunden/usrCntlCBAM.vb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/SDL/kunden/usrCntlCBAM.vb b/SDL/kunden/usrCntlCBAM.vb index 0ec8a373..4b1a9042 100644 --- a/SDL/kunden/usrCntlCBAM.vb +++ b/SDL/kunden/usrCntlCBAM.vb @@ -502,24 +502,24 @@ SQLWhereMRN &= " AND BelegNr not in (" & MRNNr & ")" - Dim sqlNew = "select * from Speditionsbuch + Dim sqlNew = "select Speditionsbuch.[FilialenNr],[AbfertigungsNr],[UnterNr],[Abfertigungsdatum],[Bar],[Fakturiert],[BelegNr],[ErfassungsNr],[LKW Kennzeichen],[AbsenderKundenNr],[Absender],[AbsenderOffertenNr],[EmpfängerKundenNr],[Empfänger],[EmpfängerOffertenNr],[VermittlerKundenNr],[Vermittler],[VermittlerOffertenNr],[FrachtführerKundenNr],[Frachtführer],[AnzahlZA],[AnzahlZAFremd],[AnzahlZnV],[AnzahlZnVFremd],[AnzahlT1],[AnzahlT2],[AnzahlAE] from Speditionsbuch inner join Kunden on Speditionsbuch.[VermittlerKundenNr] = Kunden.KundenNr OR Speditionsbuch.[EmpfängerKundenNr]= Kunden.KundenNr OR Speditionsbuch.[VermittlerKundenNr] = Kunden.KundenNr OR Speditionsbuch.[EmpfängerKundenNr] = Kunden.KundenNr - where 1 = 1 AND Kunden.EORITIN = '" & EORI & "' AND BelegNr <> '' AND (Speditionsbuch.[Abfertigungsdatum] BETWEEN '" & txtVon._value & "' and '" & txtBis._value & "' )" & SQLWhereMRN + where 1 = 1 AND Kunden.EORITIN = '" & EORI & "' AND BelegNr <> '' AND (Speditionsbuch.[Abfertigungsdatum] BETWEEN '" & txtVon._value & "' and '" & txtBis._value & "' )" & IIf(MRNNr <> "", SQLWhereMRN, "") ' MsgBox(SQLSTR) If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then - Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, EORI & "_Detailbericht_" & txtVon._value & "-" & txtBis._value) - btnCBAM_DS_DAKOSY_Deteil.Tag = path - btnCBAM_DS_DAKOSY_Deteil.Enabled = True - btnCBAM_DS_DAKOSY_Copy.Enabled = True + Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, EORI & "_Detailbericht_" & txtVon._value & "-" & txtBis._value) + btnCBAM_DS_DAKOSY_Deteil.Tag = path + btnCBAM_DS_DAKOSY_Deteil.Enabled = True + btnCBAM_DS_DAKOSY_Copy.Enabled = True - End If + End If - Dim dtNew = SQL.loadDgvBySql(sqlNew, "FMZOLL", 600) - If dtNew IsNot Nothing AndAlso dtNew.Rows.Count > 0 Then - If dtNew.Columns.Contains("Packstücke") Then dtNew.Columns.Remove("Packstücke") - Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtNew,,,,, False, EORI & "_Unterschiede zum Sped-Buch_" & txtVon._value & "-" & txtBis._value) + Dim dtNew = SQL.loadDgvBySql(sqlNew, "FMZOLL", 600) + If dtNew IsNot Nothing AndAlso dtNew.Rows.Count > 0 Then + If dtNew.Columns.Contains("Packstücke") Then dtNew.Columns.Remove("Packstücke") + Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtNew,,,,, False, EORI & "_Unterschiede zum Sped-Buch_" & txtVon._value & "-" & txtBis._value) btnCBAM_DS_DAKOSY_Spedb.Enabled = True btnCBAM_DS_DAKOSY_Spedb.Tag = path Me.Cursor = Cursors.Default