diff --git a/MDM_Worker/cPLOSE_Inv_Data.vb b/MDM_Worker/cPLOSE_Inv_Data.vb index 0f9d05d..2f9393b 100644 --- a/MDM_Worker/cPLOSE_Inv_Data.vb +++ b/MDM_Worker/cPLOSE_Inv_Data.vb @@ -211,7 +211,7 @@ Public Class cPLOSE_Inv_Data If jahr < 2020 Then Return False - Dim REohneDAID As String = "Select plInv_Id, plInv_PdfFileName, plInv_daId, plInv_PLOSEKundennummer FROM [tblPLOSE_Inv_Data] where plInv_daId Is null And plInv_PdfFileName Is Not null And Year(plInv_SupplierRechnungsDatum) = " & jahr & IIf(kdNr > 0, " and plInv_PLOSEKundennummer = " & kdNr, "") + Dim REohneDAID As String = "Select plInv_Id, plInv_Dateiname,plInv_PdfFileName, plInv_daId, plInv_PLOSEKundennummer FROM [tblPLOSE_Inv_Data] where plInv_daId Is null And plInv_PdfFileName Is Not null And Year(plInv_SupplierRechnungsDatum) = " & jahr & IIf(kdNr > 0, " and plInv_PLOSEKundennummer = " & kdNr, "") Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim dtREohneDAID As DataTable = SQL.loadDgvBySql(REohneDAID, "FMZOLL") @@ -234,56 +234,72 @@ Public Class cPLOSE_Inv_Data filename2 = filename.Replace("-", "_") + 'If r.Item("plInv_Dateiname") = "830850-PSS-MAUT. PLOSE BOX-2025-07-14-000000-999999-00_RGDAT_17.07.2025.csv" Then + + ' filename3 = filename.ToString().Substring(0, 9) + ' filename3 &= "%" + ' filename3 &= filename.ToString().Substring(9, filename.Length - 9) + ' filename4 = filename3.Replace("-", "_") + + ' filename3 = filename3.Replace(" ", "") + ' filename4 = filename4.Replace(" ", "") + 'End If + If Regex.IsMatch(filename, "^[A-Za-z]") Then - Dim match As Match = Regex.Match(filename, "\d+") - If match.Success Then - filename3 = filename.Substring(match.Index).Trim - filename4 = filename.Replace("-", "_") - End If + Dim match As Match = Regex.Match(filename, "\d+") + If match.Success Then + filename3 = filename.Substring(match.Index).Trim + filename4 = filename.Replace("-", "_") + End If - ElseIf filename.Contains("_dk") Then 'Sonderlogik Dänemark + ElseIf filename.Contains("_dk") Then 'Sonderlogik Dänemark - filename3 = filename.Replace(jahrEnd & "-", jahrEnd) + filename3 = filename.Replace(jahrEnd & "-", jahrEnd) filename4 = filename.Replace(jahrEnd & "-", jahrEnd) + filename3 = filename3.Replace(" ", "") + filename4 = filename4.Replace(" ", "") + ElseIf filename.Contains("_fy") Then 'Sonderlogik Norwegen - Dim indexOfFirst_ = filename.IndexOf("_fy") - If filename.Length > indexOfFirst_ + 5 Then - Dim month = filename.Substring(indexOfFirst_ + 3, 2) - If IsNumeric(month) Then - Dim test = month.IndexOf(0) - Dim monthWithoutLeadingZero As String = month - If monthWithoutLeadingZero.IndexOf(0) = 0 Then monthWithoutLeadingZero = monthWithoutLeadingZero.Replace("0", "") - filename3 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero) + Dim indexOfFirst_ = filename.IndexOf("_fy") + If filename.Length > indexOfFirst_ + 5 Then + Dim month = filename.Substring(indexOfFirst_ + 3, 2) + If IsNumeric(month) Then + Dim test = month.IndexOf(0) + Dim monthWithoutLeadingZero As String = month + If monthWithoutLeadingZero.IndexOf(0) = 0 Then monthWithoutLeadingZero = monthWithoutLeadingZero.Replace("0", "") + filename3 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero) filename4 = filename.Replace(jahrEnd & month, jahrEnd & monthWithoutLeadingZero) + filename3 = filename3.Replace(" ", "") + filename4 = filename4.Replace(" ", "") End If + End If + + + + + End If + + Dim daId As Integer = 0 + If filename3 = "" Then + daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0)) + Else + daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "' or da_name like '%" & filename3 & "' or da_name like '%" & filename4 & "')", "FMZOLL",,, 0)) End If - - End If - - Dim daId As Integer = 0 - If filename3 = "" Then - daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "')", "FMZOLL",,, 0)) - Else - daId = CInt(SQL.getValueTxtBySql("Select top(1) isnull(da_id,0) FROM tblDatenarchiv WHERE da_KundenNr = 0 And da_kategorie = 'MDM' AND da_ordner='MDM_DATEN' AND da_uOrdner1= 'PLOSE' AND da_uOrdner2= '" & jahr & "' AND (da_name like '%" & filename & "' or da_name like '%" & filename2 & "' or da_name like '%" & filename3 & "' or da_name like '%" & filename4 & "')", "FMZOLL",,, 0)) - End If - - - - If daId > 0 Then - Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) - Dim Path As String = DS.GET_TOP1_PATH() - If Path <> "" And System.IO.File.Exists(Path) Then - SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_daId = " & DS.da_id & ", plInv_daIdgesetztDatum = getdate() WHERE plInv_Id = " & r.Item("plInv_Id") & " AND plInv_daId is null", "FMZOLL") + If daId > 0 Then + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) + Dim Path As String = DS.GET_TOP1_PATH() + If Path <> "" And System.IO.File.Exists(Path) Then + SQL.doSQL("UPDATE [tblPLOSE_Inv_Data] SET plInv_daId = " & DS.da_id & ", plInv_daIdgesetztDatum = getdate() WHERE plInv_Id = " & r.Item("plInv_Id") & " AND plInv_daId is null", "FMZOLL") + End If End If End If - End If Next diff --git a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb index efc91f4..6cee86f 100644 --- a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb +++ b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb @@ -4,6 +4,7 @@ Imports System.Text Imports System.Text.RegularExpressions Imports System.Web Imports System.Xml +Imports io.konik.zugferd Imports Renci.SshNet Imports Renci.SshNet.Sftp Imports VERAG_PROG_ALLGEMEIN @@ -23,6 +24,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers Dim Dateiname = "" Public year As Integer Public UtaTestkunden As Boolean = False + Public RMCNewFormat As Boolean = True Sub New(programName As String) @@ -526,11 +528,17 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers Exit Sub End If + Dim dt As New DataTable + Dim deleteTable As Boolean = False Dim verarbeitungspfad, zielpfad If programName.Contains("RMC") Then verarbeitungspfad = rmc.VERARBEITUNG_PFAD zielpfad = rmc.ZIEL_PFAD + + dt.Columns.Add("KundenNr", GetType(String)) + dt.Columns.Add("UID", GetType(String)) + ElseIf programName.Contains("UTA") Then verarbeitungspfad = uta.VERARBEITUNG_PFAD zielpfad = uta.ZIEL_PFAD @@ -552,6 +560,8 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers If programName.Contains("RMC") Then + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True + Select Case i Case 1 @@ -561,7 +571,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers If fi.Extension.ToLower = ".csv" Then If Not found Then - If readRMC(d) <> "" Then found = True + If readRMC(d, programName) <> "" Then found = True End If If found Then cntDatenEingelesen += 1 End If @@ -580,30 +590,126 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers 'd.breimaier: 2024-06-05 aktuell nur die RMC-Dateien! (später, wenn CSV vollständig, dann alle PDFs importieren! 'd.breimaier: 2024-06-17 laut Christian Schuster von Comcore (EDV-BEtr. von RMC) nicht möglich CSV mit easytrip und sofico Datensätzen zu ergängen! - If fi.Name.ToString.StartsWith("invoice_") Then + 'd.breimaier: 2025-09-15 laut Christian Schuster erhalten wir nun die Rechnungen mit folgenden Aufbau: - Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) + '• fixwert invoice + '• Kundennummer 26807 (in der CSV enthalten) + '• Abrechnungnummer 5549 (Stimmt mit der Abrechnungsnummer im Dateinamen der CSV überein) + '• RechnungsNr "262014347" (in der CSV enthalten) - nicht verwechseln mit RechngsNrSL + '• Das Land AT, DE, FR... + '• zuletzt steht orig. Das ist für euch nicht wichtig, bedeutet nur das ist das Original und keine Kopie - DS.uploadDataToDATENSERVER(d,,,,,, True) + 'easytrip-Rechnungen sind immer ITALIEN! + + Dim fileNamePath As String = d + + 'If fi.Name.ToString.StartsWith("invoice_") Then + + If RMCNewFormat Then + + Dim destFilename As String = fi.FullName + + destFilename = destFilename.Replace(".pdf", IIf(programName.ToLower.Contains("nto"), "_nto", "_bto") & ".pdf") + + System.IO.File.Move(fi.FullName, destFilename) 'Datei umbenennen + + fileNamePath = destFilename + + End If + + If fi.Name.ToString.StartsWith("invoice_") OrElse (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'RMC Eigenrechnungen + + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "RMC", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(fileNamePath)) + + DS.uploadDataToDATENSERVER(fileNamePath,,,,,, True) + + If fi.Name.ToString.StartsWith("invoice_") Then + + SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL") + + ElseIf (fi.Name.ToString.StartsWith("maut_") AndAlso fi.Name.ToString.Contains("EGR") AndAlso Not fi.Name.ToString.Contains("ALL")) Then 'EasyTrip IT Rechnungen + + Dim fileNameEasyTrip As String = fi.Name + + fileNameEasyTrip = fileNameEasyTrip.Replace("maut_", "") + fileNameEasyTrip = fileNameEasyTrip.Replace("EGR_con", "") + + 'maut_24952_EGR_con00079883FITFIT2002A25-07993920250908120506AT70DE_341929194_.pdf + + '24952_00079883FITFIT2002A25-07993920250908120506AT70DE_341929194_.pdf + + 'RechnungNr: FIT2002A25-079939 + 'Datum: 08/09/2025 + 'Land: IT + 'VAT: DE_341929194 + + Dim indexOfFIT = fileNameEasyTrip.LastIndexOf("FITFIT") + 3 + + Dim kdNr As String = fileNameEasyTrip.Substring(0, 5) + Dim invoiceNo As String = "" 'FIT2002A25-079939 + Dim invoiceDate As String = "" '20250908 + Dim UID As String = "" 'DE_341929194 + + Dim RMC As New cRMC() 'easytry über Filename anlegen! + + invoiceNo = fileNameEasyTrip.Substring(indexOfFIT, 17) + invoiceDate = fileNameEasyTrip.Substring(indexOfFIT + 17, 8) + Dim parsedDate As DateTime = DateTime.ParseExact(invoiceDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture) + + UID = fileNameEasyTrip.Substring(fileNameEasyTrip.IndexOf("AT70") + 4, 12) + UID = UID.Replace("_", "") + + RMC.rmc_reDatum = parsedDate.ToString("dd.MM.yyyy") + RMC.rmc_importDatum = Now() + RMC.rmc_kdNr = kdNr + RMC.rmc_UID = UID + RMC.rmc_landKZ = "IT" + RMC.rmc_landBezeichnung = "Italien" + RMC.rmc_reDatum = parsedDate + RMC.rmc_reNr = invoiceNo + RMC.rmc_waehrung = "EUR" + RMC.rmc_daId = DS.da_id + RMC.rmc_pdfFileName = fi.Name + + 'EasyTrip können die Beträge initual nicht ausgelesen werden, dürfen aber nicht 0 sein! + RMC.rmc_betragBrutto = 0.01 + RMC.rmc_betragMWST = 0.01 + RMC.rmc_betragNetto = 0.01 + RMC.rmc_euroBrutto = 0.01 + + + If RMC.SAVE() Then + + + Dim adress As New VERAG_PROG_ALLGEMEIN.cAdressen(RMC.rmc_UID, RMC.rmc_kdNr) + If Not adress.hasEntry Then + Dim R As DataRow = dt.NewRow + R("KundenNr") = RMC.rmc_kdNr + R("UID") = RMC.rmc_UID + dt.Rows.Add(R) + End If + + End If + + End If - SQL.doSQL("Update [tblRMCImport] SET [rmc_daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL") End If 'copy file to lydia - - Dim filepathToLydia = IIf(rmc.PDFRECHNUNGEN <> "", rmc.PDFRECHNUNGEN, "\\share01\F\Juricevic Datensicherung\RMC_RECHNUNGEN\") - If Dateiname.ToString.ToLower.Contains("nto") Then - frmStartOptions.copyFile(d, filepathToLydia & "NETTO\") - Else - frmStartOptions.copyFile(d, filepathToLydia & "BRUTTO\") + If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + Dim filepathToLydia = IIf(rmc.PDFRECHNUNGEN <> "", rmc.PDFRECHNUNGEN, "\\share01\F\Juricevic Datensicherung\RMC_RECHNUNGEN\") + If Dateiname.ToString.ToLower.Contains("nto") Then + frmStartOptions.copyFile(fileNamePath, filepathToLydia & "NETTO\") + Else + frmStartOptions.copyFile(fileNamePath, filepathToLydia & "BRUTTO\") + End If End If - frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") + frmStartOptions.moveFile_DateBack(fileNamePath, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") If fi.Name.ToLower.Contains("pdf") Then addDGVEinarbeitung("PDF", fi.Name) dgvEinarbeitung.Refresh() - End If @@ -955,6 +1061,23 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers If programName.Contains("UTA") Then uta.importUTALeistungen() + If programName.Contains("RMC") Then + + + If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + If dt.Rows.Count > 0 Then + Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False,) + If filepath <> "" Then + Dim anhenge As New List(Of String) + anhenge.Add(filepath) + VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("juricevic@verag.ag", "Wölfl-UIDNr (EASYTRIP)", "Im Anhang die zu prüfenden Kunden von WÖLFL EasyTrip: " & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag", anhenge) + End If + End If + + End If + + End If + End Sub @@ -979,7 +1102,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers End Sub - Function readRMC(d As String) As String + Function readRMC(d As String, typ As String) As String Try Dim fi As FileInfo = New FileInfo(d) @@ -989,6 +1112,10 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers Dim fileNr = filetimestamp.Substring(0, IIf(filetimestamp.Length > 8, filetimestamp.Length - 8, filetimestamp.Length)) Dim fileType = IIf(fi.Name.ToLower.Contains("nto"), "netto", "brutto") + If RMCNewFormat Then + fileType = IIf(typ.ToLower.Contains("nto"), "netto", "brutto") + End If + Dim dt As New DataTable dt.Columns.Add("KundenNr", GetType(String)) dt.Columns.Add("Kunde", GetType(String)) @@ -1030,13 +1157,14 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers End Using addDGVEinarbeitung("RMC: Detail" & kdNr, readRMC) - - If dt.Rows.Count > 0 Then - Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False,) - If filepath <> "" Then - Dim anhenge As New List(Of String) - anhenge.Add(filepath) - VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("juricevic@verag.ag", "Wölfl-UIDNr", "Im Anhang die zu prüfenden Kunden von WÖLFL für Importdatei: " & fi.Name & vbNewLine & "Pro Importdatei wird ein Email generiert/gesendet" & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag", anhenge) + If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + If dt.Rows.Count > 0 Then + Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False,) + If filepath <> "" Then + Dim anhenge As New List(Of String) + anhenge.Add(filepath) + VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail("juricevic@verag.ag", "Wölfl-UIDNr", "Im Anhang die zu prüfenden Kunden von WÖLFL für Importdatei: " & fi.Name & vbNewLine & "Pro Importdatei wird ein Email generiert/gesendet" & vbNewLine & "*Automatic generated e-mail*",,,,, "d.breimaier@verag.ag", anhenge) + End If End If End If @@ -1142,7 +1270,15 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers End If RMC.rmc_euroBrutto = SQL.isleernothing(currentRow(13)) - RMC.rmc_pdfFileName = "invoice_" & RMC.rmc_kdNr & "_" & filenr & "_" & RMC.rmc_sammelReNr & IIf(fileType = "netto", "_nto_e_verag.pdf", "_bto_e_verag.pdf") + + If RMCNewFormat Then + RMC.rmc_pdfFileName = "invoice_" & RMC.rmc_kdNr & "_" & filenr & "_" & RMC.rmc_sammelReNr & "_" & RMC.rmc_landKZ & "_orig" & IIf(fileType = "netto", "_nto", "_bto") & ".pdf" + Else + RMC.rmc_pdfFileName = "invoice_" & RMC.rmc_kdNr & "_" & filenr & "_" & RMC.rmc_sammelReNr & IIf(fileType = "netto", "_nto_e_verag.pdf", "_bto_e_verag.pdf") + End If + + + If RMC.SAVE() Then If kdNr <> RMC.rmc_kdNr Then diff --git a/initATLASAufschubkonten/frmStartOptions.Designer.vb b/initATLASAufschubkonten/frmStartOptions.Designer.vb index 23742af..5a6f39b 100644 --- a/initATLASAufschubkonten/frmStartOptions.Designer.vb +++ b/initATLASAufschubkonten/frmStartOptions.Designer.vb @@ -277,6 +277,11 @@ Partial Class frmStartOptions Me.Button27 = New System.Windows.Forms.Button() Me.lblWartungen = New System.Windows.Forms.Label() Me.TabPage7 = New System.Windows.Forms.TabPage() + Me.cbxMailsenden = New System.Windows.Forms.CheckBox() + Me.cbxKundenbesonderheitenCS = New System.Windows.Forms.CheckBox() + Me.lblCS_DB = New System.Windows.Forms.Label() + Me.lbl_CS_online = New System.Windows.Forms.Label() + Me.cbxTestsystemCS = New System.Windows.Forms.CheckBox() Me.lblCSPortfolio = New System.Windows.Forms.Label() Me.bcxKundendatenaktCS = New System.Windows.Forms.CheckBox() Me.cbCheckDate = New System.Windows.Forms.CheckBox() @@ -306,11 +311,8 @@ Partial Class frmStartOptions Me.lklAufschubkontenATLASEZOLL = New System.Windows.Forms.LinkLabel() Me.lblRoutineManager = New System.Windows.Forms.Label() Me.Button21 = New System.Windows.Forms.Button() - Me.cbxTestsystemCS = New System.Windows.Forms.CheckBox() - Me.lbl_CS_online = New System.Windows.Forms.Label() - Me.lblCS_DB = New System.Windows.Forms.Label() - Me.cbxKundenbesonderheitenCS = New System.Windows.Forms.CheckBox() - Me.cbxMailsenden = New System.Windows.Forms.CheckBox() + Me.cbxCSsync = New System.Windows.Forms.CheckBox() + Me.Label48 = New System.Windows.Forms.Label() Me.MyTextBox3 = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.MyTextBox2 = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.txtSyskaWdhDateiname = New VERAG_PROG_ALLGEMEIN.MyTextBox() @@ -3463,6 +3465,8 @@ Partial Class frmStartOptions ' 'TabPage7 ' + Me.TabPage7.Controls.Add(Me.Label48) + Me.TabPage7.Controls.Add(Me.cbxCSsync) Me.TabPage7.Controls.Add(Me.cbxMailsenden) Me.TabPage7.Controls.Add(Me.cbxKundenbesonderheitenCS) Me.TabPage7.Controls.Add(Me.lblCS_DB) @@ -3482,6 +3486,57 @@ Partial Class frmStartOptions Me.TabPage7.Text = "Creditsafe" Me.TabPage7.UseVisualStyleBackColor = True ' + 'cbxMailsenden + ' + Me.cbxMailsenden.AutoSize = True + Me.cbxMailsenden.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbxMailsenden.Location = New System.Drawing.Point(16, 246) + Me.cbxMailsenden.Name = "cbxMailsenden" + Me.cbxMailsenden.Size = New System.Drawing.Size(83, 17) + Me.cbxMailsenden.TabIndex = 163 + Me.cbxMailsenden.Text = "Mail senden" + Me.cbxMailsenden.UseVisualStyleBackColor = True + ' + 'cbxKundenbesonderheitenCS + ' + Me.cbxKundenbesonderheitenCS.AutoSize = True + Me.cbxKundenbesonderheitenCS.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbxKundenbesonderheitenCS.Location = New System.Drawing.Point(16, 223) + Me.cbxKundenbesonderheitenCS.Name = "cbxKundenbesonderheitenCS" + Me.cbxKundenbesonderheitenCS.Size = New System.Drawing.Size(164, 17) + Me.cbxKundenbesonderheitenCS.TabIndex = 162 + Me.cbxKundenbesonderheitenCS.Text = "setze Kundenbesonderheiten" + Me.cbxKundenbesonderheitenCS.UseVisualStyleBackColor = True + ' + 'lblCS_DB + ' + Me.lblCS_DB.AutoSize = True + Me.lblCS_DB.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblCS_DB.Location = New System.Drawing.Point(152, 48) + Me.lblCS_DB.Name = "lblCS_DB" + Me.lblCS_DB.Size = New System.Drawing.Size(0, 13) + Me.lblCS_DB.TabIndex = 161 + ' + 'lbl_CS_online + ' + Me.lbl_CS_online.AutoSize = True + Me.lbl_CS_online.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lbl_CS_online.Location = New System.Drawing.Point(102, 48) + Me.lbl_CS_online.Name = "lbl_CS_online" + Me.lbl_CS_online.Size = New System.Drawing.Size(0, 13) + Me.lbl_CS_online.TabIndex = 160 + ' + 'cbxTestsystemCS + ' + Me.cbxTestsystemCS.AutoSize = True + Me.cbxTestsystemCS.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbxTestsystemCS.Location = New System.Drawing.Point(17, 6) + Me.cbxTestsystemCS.Name = "cbxTestsystemCS" + Me.cbxTestsystemCS.Size = New System.Drawing.Size(79, 17) + Me.cbxTestsystemCS.TabIndex = 140 + Me.cbxTestsystemCS.Text = "Testsystem" + Me.cbxTestsystemCS.UseVisualStyleBackColor = True + ' 'lblCSPortfolio ' Me.lblCSPortfolio.AutoSize = True @@ -3496,7 +3551,7 @@ Partial Class frmStartOptions ' Me.bcxKundendatenaktCS.AutoSize = True Me.bcxKundendatenaktCS.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.bcxKundendatenaktCS.Location = New System.Drawing.Point(14, 147) + Me.bcxKundendatenaktCS.Location = New System.Drawing.Point(16, 200) Me.bcxKundendatenaktCS.Name = "bcxKundendatenaktCS" Me.bcxKundendatenaktCS.Size = New System.Drawing.Size(150, 17) Me.bcxKundendatenaktCS.TabIndex = 158 @@ -3507,7 +3562,7 @@ Partial Class frmStartOptions ' Me.cbCheckDate.AutoSize = True Me.cbCheckDate.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbCheckDate.Location = New System.Drawing.Point(14, 124) + Me.cbCheckDate.Location = New System.Drawing.Point(16, 177) Me.cbCheckDate.Name = "cbCheckDate" Me.cbCheckDate.Size = New System.Drawing.Size(74, 17) Me.cbCheckDate.TabIndex = 140 @@ -3529,7 +3584,7 @@ Partial Class frmStartOptions Me.Button28.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.Button28.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) Me.Button28.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button28.Location = New System.Drawing.Point(10, 216) + Me.Button28.Location = New System.Drawing.Point(12, 269) Me.Button28.Name = "Button28" Me.Button28.Size = New System.Drawing.Size(131, 24) Me.Button28.TabIndex = 141 @@ -3541,7 +3596,7 @@ Partial Class frmStartOptions Me.btnCreditsaveLauf.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnCreditsaveLauf.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) Me.btnCreditsaveLauf.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnCreditsaveLauf.Location = New System.Drawing.Point(16, 76) + Me.btnCreditsaveLauf.Location = New System.Drawing.Point(14, 103) Me.btnCreditsaveLauf.Name = "btnCreditsaveLauf" Me.btnCreditsaveLauf.Size = New System.Drawing.Size(131, 24) Me.btnCreditsaveLauf.TabIndex = 140 @@ -3806,56 +3861,27 @@ Partial Class frmStartOptions Me.Button21.Text = "AAS Sendung 24h" Me.Button21.UseVisualStyleBackColor = True ' - 'cbxTestsystemCS + 'cbxCSsync ' - Me.cbxTestsystemCS.AutoSize = True - Me.cbxTestsystemCS.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbxTestsystemCS.Location = New System.Drawing.Point(17, 6) - Me.cbxTestsystemCS.Name = "cbxTestsystemCS" - Me.cbxTestsystemCS.Size = New System.Drawing.Size(79, 17) - Me.cbxTestsystemCS.TabIndex = 140 - Me.cbxTestsystemCS.Text = "Testsystem" - Me.cbxTestsystemCS.UseVisualStyleBackColor = True + Me.cbxCSsync.AutoSize = True + Me.cbxCSsync.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbxCSsync.Location = New System.Drawing.Point(17, 64) + Me.cbxCSsync.Name = "cbxCSsync" + Me.cbxCSsync.Size = New System.Drawing.Size(54, 17) + Me.cbxCSsync.TabIndex = 164 + Me.cbxCSsync.Text = "Sync*" + Me.cbxCSsync.UseVisualStyleBackColor = True ' - 'lbl_CS_online + 'Label48 ' - Me.lbl_CS_online.AutoSize = True - Me.lbl_CS_online.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lbl_CS_online.Location = New System.Drawing.Point(102, 48) - Me.lbl_CS_online.Name = "lbl_CS_online" - Me.lbl_CS_online.Size = New System.Drawing.Size(0, 13) - Me.lbl_CS_online.TabIndex = 160 - ' - 'lblCS_DB - ' - Me.lblCS_DB.AutoSize = True - Me.lblCS_DB.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblCS_DB.Location = New System.Drawing.Point(152, 48) - Me.lblCS_DB.Name = "lblCS_DB" - Me.lblCS_DB.Size = New System.Drawing.Size(0, 13) - Me.lblCS_DB.TabIndex = 161 - ' - 'cbxKundenbesonderheitenCS - ' - Me.cbxKundenbesonderheitenCS.AutoSize = True - Me.cbxKundenbesonderheitenCS.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbxKundenbesonderheitenCS.Location = New System.Drawing.Point(14, 170) - Me.cbxKundenbesonderheitenCS.Name = "cbxKundenbesonderheitenCS" - Me.cbxKundenbesonderheitenCS.Size = New System.Drawing.Size(164, 17) - Me.cbxKundenbesonderheitenCS.TabIndex = 162 - Me.cbxKundenbesonderheitenCS.Text = "setze Kundenbesonderheiten" - Me.cbxKundenbesonderheitenCS.UseVisualStyleBackColor = True - ' - 'cbxMailsenden - ' - Me.cbxMailsenden.AutoSize = True - Me.cbxMailsenden.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbxMailsenden.Location = New System.Drawing.Point(14, 193) - Me.cbxMailsenden.Name = "cbxMailsenden" - Me.cbxMailsenden.Size = New System.Drawing.Size(83, 17) - Me.cbxMailsenden.TabIndex = 163 - Me.cbxMailsenden.Text = "Mail senden" - Me.cbxMailsenden.UseVisualStyleBackColor = True + Me.Label48.AutoSize = True + Me.Label48.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label48.ForeColor = System.Drawing.Color.Red + Me.Label48.Location = New System.Drawing.Point(14, 84) + Me.Label48.Name = "Label48" + Me.Label48.Size = New System.Drawing.Size(450, 13) + Me.Label48.TabIndex = 165 + Me.Label48.Text = "*bei Sync werden alle gelöscht und neu hochgeladen, sonst nur hochgeladen." ' 'MyTextBox3 ' @@ -4612,7 +4638,7 @@ Partial Class frmStartOptions Me.txtCSDate.BackColor = System.Drawing.SystemColors.Window Me.txtCSDate.Enabled = False Me.txtCSDate.ForeColor = System.Drawing.Color.Red - Me.txtCSDate.Location = New System.Drawing.Point(94, 121) + Me.txtCSDate.Location = New System.Drawing.Point(96, 174) Me.txtCSDate.MaxLength = 10 Me.txtCSDate.MaxLineLength = -1 Me.txtCSDate.MaxLines_Warning = "" @@ -5081,4 +5107,6 @@ Partial Class frmStartOptions Friend WithEvents lbl_CS_online As Label Friend WithEvents cbxMailsenden As CheckBox Friend WithEvents cbxKundenbesonderheitenCS As CheckBox + Friend WithEvents Label48 As Label + Friend WithEvents cbxCSsync As CheckBox End Class diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index 2dd1633..ed37a3c 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -6,6 +6,7 @@ Imports System.Security.Cryptography.X509Certificates Imports System.Text Imports System.Threading Imports System.Xml +Imports com.sun.xml.internal.rngom.digested Imports MDM_Worker Imports Renci.SshNet Imports VERAG_PROG_ALLGEMEIN @@ -847,7 +848,9 @@ Public Class frmStartOptions Case "CREDITSAFE_UPLOADS" VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False - UploadCompaniesToCreditsafe() + Dim sync As Boolean = True + + UploadCompaniesToCreditsafe(sync) closeMe() @@ -6278,7 +6281,7 @@ weiter: 'Existing companies in the portfolio will be skipped, and only new unique entries will be added. - UploadCompaniesToCreditsafe() + UploadCompaniesToCreditsafe(cbxCSsync.Checked) End Sub @@ -6357,7 +6360,7 @@ weiter: '3. Drill Down to Company-Level Events When Needed: For detailed insights into a specific company, use the company-specific endpoint. '4. Verify Enabled Rules: Ensure that the appropriate event rules are enabled for your portfolios to capture the desired notifications. Refer to the Activate Event Rules section for guidance. - 'aktuell machem wir gleich punkt 3, das verursacht sehr viele APP-Aurfrufe, besser nach der Liste oben! + 'aktuell machem wir gleich Punkt 3 (damit haben wir alle Informationen), das verursacht allerdings sehr viele API-Aurfrufe, besser nach dem Best Practice oben! Dim creditsaveOld As String = " @@ -6426,14 +6429,21 @@ weiter: End Sub - Private Sub UploadCompaniesToCreditsafe() + Private Sub UploadCompaniesToCreditsafe(sync As Boolean) Dim cs = New cCreditSafeAPI("creditsafe") Dim addCreditsave As Boolean = False If cs.authenticate() = "200" Then addCreditsave = True + 'The Sync method allows you to replace all existing companies in a portfolio with the contents of an uploaded file. + 'Unlike the Import method, this endpoint overwrites the entire portfolio, deleting all previously allocated companies. + + Dim where As String = "" + + If Not sync Then where = " and kde_CSPortfolioAdded = 0" + While addCreditsave - Dim creditsave As String = "select kde_CreditSaveNo 'Safe Number', '' as 'Local Org No.',left(kde_CreditSaveId,2) as 'Country Code', '' as Reference, '' as 'Free Text', '' as 'Personal Limit' from tblKundenErweitert where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' and kde_CSPortfolioAdded = 0 group by kde_CreditSaveNo, kde_CreditSaveId" + Dim creditsave As String = "select kde_CreditSaveNo 'Safe Number', '' as 'Local Org No.',left(kde_CreditSaveId,2) as 'Country Code', '' as Reference, '' as 'Free Text', '' as 'Personal Limit' from tblKundenErweitert inner join Adressen on Adressen.AdressenNr = kde_KundenNr where isnull(tblKundenErweitert.kde_CreditSaveId,'') <> '' and kde_CreditSaveId <> 'True' and kde_CreditSaveId <>'False' and isnull(kde_CreditSaveNo,'') <> '' " & where & " and Adressen.Auswahl = 'A' group by kde_CreditSaveNo, kde_CreditSaveId" Dim dtCreditsafe_CSV As DataTable = (New SQL).loadDgvBySql(creditsave, "FMZOLL") If dtCreditsafe_CSV.Rows.Count = 0 Then @@ -6442,11 +6452,13 @@ weiter: Dim Path As String = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genCSVFromDT(dtCreditsafe_CSV,,, "importcsv") If Path <> "" Then - If cs.AddCompaniesCSVToPortfolio(Path).Contains("400") Then 'bei Fehler abbrechen! + + Dim resp = cs.AddCompaniesCSVToPortfolio(Path, sync) + If resp IsNot Nothing AndAlso resp.Contains("400") Then 'bei Fehler abbrechen! Exit While End If - End If + End If Dim displayView = New DataView(dtCreditsafe_CSV, "", "Safe Number", DataViewRowState.CurrentRows) @@ -6464,7 +6476,7 @@ weiter: addCreditsave = (New SQL).doSQL("Update tblKundenErweitert set kde_CSPortfolioAdded = 1 where kde_CreditSaveNo in (" & CS_ID & ")", "FMZOLL") End If - + If sync Then addCreditsave = False End While