diff --git a/DAKOSY_Worker/cDakosyFunftions.vb b/DAKOSY_Worker/cDakosyFunftions.vb index 001b01a..fa5f01c 100644 --- a/DAKOSY_Worker/cDakosyFunftions.vb +++ b/DAKOSY_Worker/cDakosyFunftions.vb @@ -76,7 +76,7 @@ Public Class cDakosyFunftions Case "SUB" : Return "SUB" Case "SBG" : Return "SBG" Case "NKD" : Return "NKD" - Case "NEU" : Return "NEU" + Case "NEU" : Return "SUB" 'Return "NEU" Case "WAI" : Return "WAI" Case Else : Return "SUB" End Select diff --git a/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb b/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb index 42b004a..8c7b103 100644 --- a/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb +++ b/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb @@ -548,9 +548,9 @@ Public Class cZollsysteme_Aktenbeschriftung ANZ_POS = EZA.eza_WARENPOS.Count For Each A In EZA.eza_AUFSCHUB If If(A.ezaAfb_AbgabeArt, "") = "B0000" Then - ABGABEN_EUST += CDbl(A.ezaAfb_Abgabenbetrag) + ABGABEN_EUST += IIf((A.ezaAfb_PositionsNummer) Is Nothing, CDbl(A.ezaAfb_Abgabenbetrag), 0) Else - ABGABEN_ZOLL += CDbl(A.ezaAfb_Abgabenbetrag) + ABGABEN_ZOLL += IIf((A.ezaAfb_PositionsNummer) Is Nothing, CDbl(A.ezaAfb_Abgabenbetrag), 0) End If Next diff --git a/MailSender/MAILSender.vb b/MailSender/MAILSender.vb index fa223be..a2f3db0 100644 --- a/MailSender/MAILSender.vb +++ b/MailSender/MAILSender.vb @@ -57,7 +57,7 @@ Module Mail ' PARAM = "MDM_IT_Verguetung" 'PARAM = "JAHRESABRECHNUNG AG-ZS" - 'PARAM = "BRG_AUSWERTUNG_STANDARD" + 'PARAM = "TETRAPAK" '------------------------------------------------------------------------------------ @@ -3867,7 +3867,7 @@ Module Mail order by ImporterEORI, importdate" - Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr) + Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr, 300) System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count) Dim excelBez = "TETRAPAK_DE_" & von.ToShortDateString.Replace(".", "-") & "_to_ " & bis.ToShortDateString.Replace(".", "-") @@ -3909,7 +3909,7 @@ Module Mail order by ImportDate,(SELECT Na FROM zsAnmConorTra WHERE (zsAnmConorTra.LizenzNr = zsAnmHea.LizenzNr ) And (zsAnmConorTra.OperatorID =zsAnmHea.OperatorID ) And (zsAnmConorTra.VorgangID = zsAnmHea.VorgangID ) And (zsAnmConorTra.AnmID = zsAnmHea.AnmID ))" - Dim dt As DataTable = sql.loadDgvBySql(sqlstr, "EZOLL") + Dim dt As DataTable = sql.loadDgvBySql(sqlstr, "EZOLL", 300) System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count) Dim excelBez = "TETRAPAK_AT_" & von.ToShortDateString.Replace(".", "-") & "_to_ " & bis.ToShortDateString.Replace(".", "-") genExcel(dt, excelBez, "TETRAPAK") diff --git a/UID/usrCntlAPI.vb b/UID/usrCntlAPI.vb index 059204c..ec49e44 100644 --- a/UID/usrCntlAPI.vb +++ b/UID/usrCntlAPI.vb @@ -52,6 +52,7 @@ Public Class usrCntlAPI cboAPIArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("CREDITSAFE", VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_IN_CS)) cboAPIArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SAMMELRECHNUNG", VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_SAMMELRECHNUNG)) cboAPIArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EINZELRECHNUNG", VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_EINZELRECHNUNG)) + cboAPIArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("MDM-PLOSE AUSWERTUNG", VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_MDM_AUSWERTUNG)) cboAPIArt.changeItem("") diff --git a/initATLASAufschubkonten/cGetMsgType.vb b/initATLASAufschubkonten/cGetMsgType.vb index 7f58af0..1a8fb21 100644 --- a/initATLASAufschubkonten/cGetMsgType.vb +++ b/initATLASAufschubkonten/cGetMsgType.vb @@ -772,6 +772,16 @@ Public Class cGetMsgType End If Return False End Function + + Shared Function isPLOSE_NewFormat_TR(doc As String) As Boolean + Dim lines() As String = System.IO.File.ReadAllLines(doc) + If lines.Count > 0 Then + If lines(0).ToString.Replace("""", "").StartsWith("CustomerCode") Then + Return True + End If + End If + Return False + End Function Shared Function isPLOSE_Header(doc As String) As Boolean Dim lines() As String = System.IO.File.ReadAllLines(doc) If lines.Count > 0 Then diff --git a/initATLASAufschubkonten/frmMDMNachrichtenVerarbeitung.vb b/initATLASAufschubkonten/frmMDMNachrichtenVerarbeitung.vb index d05da1d..6e28896 100644 --- a/initATLASAufschubkonten/frmMDMNachrichtenVerarbeitung.vb +++ b/initATLASAufschubkonten/frmMDMNachrichtenVerarbeitung.vb @@ -3,6 +3,7 @@ Imports System.Net Imports System.Text Imports System.Text.RegularExpressions Imports System.Xml +Imports java.util.function Imports VERAG_PROG_ALLGEMEIN Public Class frmMDMNachrichtenVerarbeitung @@ -355,7 +356,7 @@ Public Class frmMDMNachrichtenVerarbeitung Exit Sub End If - For i = 1 To 5 + For i = 1 To 6 For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD) Try @@ -412,7 +413,21 @@ Public Class frmMDMNachrichtenVerarbeitung End If If found Then cntDatenEingelesen += 1 End If - Case 4 + + 'Case 4 + ' '------------------------------------------ + ' '------- NEW FORMAT - TRANS-FILE ---------- + ' '------------------------------------------ + ' If fi.Extension.ToLower = ".csv" Then + + ' If Not found And cGetMsgType.isPLOSE_NewFormat_TR(d) Then + ' If readPLOSE_Detail_NEW_FORMAT(d) <> "" Then found = True + + ' End If + ' If found Then cntDatenEingelesen += 1 + ' End If + + Case 5 '------------------------------------------ '------------------ PDF ------------------ '------------------------------------------ @@ -468,7 +483,10 @@ Public Class frmMDMNachrichtenVerarbeitung 'Eintrag End If - Case 5 + + + + Case 6 frmStartOptions.moveFile_DateBack(d, ERROR_PFAD) dsNichtErkannt += 1 End Select @@ -491,6 +509,20 @@ Public Class frmMDMNachrichtenVerarbeitung End Try Next Next + + 'Dim sql_setMDMEinarbeitung As String = "UPDATE tblMDMEinarbeitung + ' SET billingdate = + ' CASE + ' WHEN DAY(invoicedate) < 15 THEN + ' EOMONTH(DATEADD(MONTH, -1, invoicedate)) + ' ELSE + ' DATEFROMPARTS(YEAR(invoicedate), MONTH(invoicedate), 15) + ' END + ' WHERE supplier = 'PLOSE' + ' AND billingdate IS NULL;" + + 'SQL.doSQL(sql_setMDMEinarbeitung, "FMZOLL") + End Sub @@ -727,6 +759,191 @@ Public Class frmMDMNachrichtenVerarbeitung End Try End Function + Function readPLOSE_Detail_NEW_FORMAT(d As String) As String + Try + readPLOSE_Detail_NEW_FORMAT = "" + Dim KdnR = "" + + Dim plose_RechnungsJahr = "" + Dim plose_RechnungsLieferantCode = "" + Dim plose_RechnungsNr = "" + + + Dim counTrans As Integer = 0 + Dim savedTrans As Integer = 0 + Dim MDMEinarb As New cMDMEinarbeitung("PLOSE", Now(), Now()) + + Dim plose_RechnungsDat = Nothing + Dim plose_Lieferant = Nothing + + Dim fi As FileInfo = New FileInfo(d) + If fi.Name.Length > 8 Then + + plose_RechnungsJahr = fi.Name.Substring(0, 2) + plose_RechnungsLieferantCode = fi.Name.Substring(2, 1) + + + '--------> auslesen [tblPLOSE_Lieferant] + Select Case plose_RechnungsLieferantCode + Case "0" : plose_Lieferant = "PLOSE Sistem Service" + Case "7" : plose_Lieferant = "Consortio PLOSE" + Case "1" : plose_Lieferant = "Plose Union" + Case "9" : plose_Lieferant = "PLOSE UNION SOCIETA COOPERATIVA" + End Select + + End If + + Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(d, Encoding.UTF8) + MyReader.TextFieldType = FileIO.FieldType.Delimited + MyReader.SetDelimiters(";") + Dim currentRow As String() + + Dim cnt = 0 + If True Then + + + + While Not MyReader.EndOfData + Try + + + currentRow = MyReader.ReadFields() + + + If True Then 'fi.Name.Length > 8 Then + + + + 'Select Case currentRow(0) + ' Case "TR1" + 'RECHNUGNSDATUM + If currentRow.Length > 1 AndAlso currentRow(11).ToString.Length = 8 Then + Dim datumParse = DateTime.ParseExact(currentRow(11), "yyyyMMdd", Nothing) + plose_RechnungsDat = datumParse + End If + 'RECHNUGNSNR + If currentRow.Length > 2 Then 'AndAlso currentRow(1).ToString.Length = 8 Then + plose_RechnungsNr = SQL.isleernothing(currentRow(12)) 'Rechnungsdatum aus TR1 Datensatz, überschreibt den Wert aus der Dateierstellung + End If + + 'Case "TR5" + If currentRow.Length > 24 AndAlso currentRow(12) <> "839160" Then 'KDNR <> VERAG --> Die Kosten bleiben uns + Dim PLOSE As New MDM_Worker.cPLOSE + + PLOSE.plose_Dateiname = fi.Name + PLOSE.plose_RechnungsNr = plose_RechnungsNr + PLOSE.plose_Lieferant = plose_Lieferant + PLOSE.plose_LieferantCode = plose_RechnungsLieferantCode + PLOSE.plose_RechnungsJahr = plose_RechnungsJahr + If plose_RechnungsDat IsNot Nothing Then PLOSE.plose_RechnungsDatum = plose_RechnungsDat + PLOSE.plose_Datensatztyp = SQL.isleernothing(currentRow(0)) + PLOSE.plose_KodexMautTankstelle = SQL.isleernothing(currentRow(1)) + PLOSE.plose_BeschreibungMautTankstelle = SQL.isleernothing(currentRow(2)) + PLOSE.plose_KodexEinfahrt = SQL.isleernothing(currentRow(3)) + PLOSE.plose_BeschreibungEinfahrt = SQL.isleernothing(currentRow(4)) + PLOSE.plose_KodexAusfahrt = SQL.isleernothing(currentRow(5)) + PLOSE.plose_BeschreibungAusfahrt = SQL.isleernothing(currentRow(6)) + PLOSE.plose_Kartenkodex = SQL.isleernothing(currentRow(7)) + PLOSE.plose_Kontonummer = SQL.isleernothing(currentRow(8)) + PLOSE.plose_NummerKarteGeraet = SQL.isleernothing(currentRow(9)) + PLOSE.plose_Kennzeichen = SQL.isleernothing(currentRow(10)) + PLOSE.plose_InterneNrFahrzeug = SQL.isleernothing(currentRow(11)) + PLOSE.plose_POLSEKundennummer = SQL.isleernothing(currentRow(12)) + PLOSE.plose_Firmenname = SQL.isleernothing(currentRow(13)) + PLOSE.plose_DatumTransaktion = SQL.isleernothingDateFormatstring(currentRow(14)) + PLOSE.plose_Produktbeschreibung = SQL.isleernothing(currentRow(15)) + PLOSE.plose_Menge = SQL.isNullNothingDbl(currentRow(16)) + PLOSE.plose_Preis = SQL.isNullNothingDbl(currentRow(17)) + PLOSE.Einheitsrabatt = SQL.isleernothing(currentRow(18)) + PLOSE.plose_NettobetragTransaktion = SQL.isNullNothingDbl(currentRow(19)) + PLOSE.plose_MWSTBetrag = SQL.isNullNothingDbl(currentRow(20)) + PLOSE.plose_BruttobetragTransaktion = SQL.isNullNothingDbl(currentRow(21)) + PLOSE.plose_NettobetragWaehrungAbbuchung = SQL.isNullNothingDbl(currentRow(22)) + PLOSE.plose_MWSTBetragWaehrungAbbuchung = SQL.isNullNothingDbl(currentRow(23)) + PLOSE.plose_BruttobetragWaehrungAbbuchung = SQL.isNullNothingDbl(currentRow(24)) + PLOSE.plose_WaehrungLandDiesntleistung = SQL.isleernothing(currentRow(25)) + PLOSE.plose_WaehrungAbbuchung = SQL.isleernothing(currentRow(26)) + PLOSE.plose_DokumentNrQuittungUhrzeit = SQL.isleernothing(currentRow(27)) + PLOSE.plose_ArtTransaktion = SQL.isleernothing(currentRow(28)) + PLOSE.plose_Fahrzeugklasse = SQL.isleernothing(currentRow(29)) + PLOSE.plose_KlassenidentifikationEURO = SQL.isleernothing(currentRow(30)) + PLOSE.plose_ProduktbeschreibungShort = SQL.isleernothing(currentRow(31)) + PLOSE.plose_DokumentNrQuittungUhrzeit = SQL.isleernothing(currentRow(32)) + PLOSE.plose_Geraetetyp = SQL.isleernothing(currentRow(33)) + PLOSE.plose_ProduktCode = SQL.isleernothing(currentRow(34)) + PLOSE.plose_ReferenzenBuchungMaut = SQL.isleernothing(currentRow(35)) + + If currentRow.Length > 36 Then PLOSE.plose_SupplierRechnungsNr = SQL.isleernothing(currentRow(36)) + If currentRow.Length > 37 AndAlso currentRow(37).ToString.Length = 8 Then + Dim datumParse = DateTime.ParseExact(currentRow(37), "yyyyMMdd", Nothing) + PLOSE.plose_SupplierRechnungsDatum = datumParse + End If + + If If(PLOSE.plose_SupplierRechnungsNr, "").contains("-SFC-") Then ' SOFICO + PLOSE.plose_LieferantCode = "90" + PLOSE.plose_Lieferant = SQL.DLookup("pl_Bezeichnung", "tblPLOSE_Lieferant", " [pl_LieferantCode]='" & PLOSE.plose_LieferantCode & "' ", "FMZOLL", "") + End If + + '''''''''''' + If PLOSE.SAVE() Then + savedTrans += 1 + End If + + counTrans += 1 + + End If + 'End Select + + cnt += 1 + End If + + + 'For Each currentField In currentRow + 'Next + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End While + + + 'Label30.Text = (cnt + 1) & " / " & LineCount + 'Label31.Visible = True + readPLOSE_Detail_NEW_FORMAT = "Zeilen: " & cnt + Else + ' MsgBox("FEHLER beim Löschen der vorhandenen OP-Liste.") + End If + End Using + + + + + Try + ' System.IO.File.Delete(p) + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + addDGVEinarbeitung("PLOSE: Detail" & KdnR, readPLOSE_Detail_NEW_FORMAT) + + + MDMEinarb.ds_total = counTrans + MDMEinarb.ds_count = savedTrans + MDMEinarb.importfilename = fi.Name + MDMEinarb.import_date = Now() + + If MDMEinarb.ds_total = MDMEinarb.ds_count Then + MDMEinarb.completed = True + MDMEinarb.completed_date = Now() + End If + + MDMEinarb.SAVE() + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) + readPLOSE_Detail_NEW_FORMAT = "" + End Try + End Function + Function readPLOSE_Header(d As String) As String Try diff --git a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb index fbd1cb9..65a7689 100644 --- a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb +++ b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb @@ -1168,7 +1168,7 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers End If - If programName.Contains("RMC") Then + If programName.Contains("RMC") Then If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index 85c3cc7..706058b 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -8365,7 +8365,7 @@ repeatRequest: 'hier ungültigen Prüfungen pro Firma If dtVerag.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 1) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtVerag,,,,, False,,, True) Dim anhenge As New List(Of String) @@ -8375,7 +8375,7 @@ repeatRequest: End If If dtIMEX.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 20) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtIMEX,,,,, False,,, True) Dim anhenge As New List(Of String) @@ -8385,7 +8385,7 @@ repeatRequest: End If If dtAMBAR.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 24) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtAMBAR,,,,, False,,, True) Dim anhenge As New List(Of String) @@ -8395,7 +8395,7 @@ repeatRequest: End If If dtUNISPED.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 21) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtUNISPED,,,,, False,,, True) Dim anhenge As New List(Of String) @@ -8405,7 +8405,7 @@ repeatRequest: End If If dtATILLA.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 7) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtATILLA,,,,, False,,, True) Dim anhenge As New List(Of String) @@ -8415,7 +8415,7 @@ repeatRequest: End If If dt360.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 19) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt360,,,,, False,,, True) Dim anhenge As New List(Of String) @@ -8425,7 +8425,7 @@ repeatRequest: End If If dtCS.Rows.Count > 0 Then - Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check") + Dim empfaneger = cMitarbeiter.GetEMailRecipientForEmailNotification("ZUGFERD-Check", 11) If empfaneger <> "" Then Dim path = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dtCS,,,,, False,,, True) Dim anhenge As New List(Of String)