From 56662d1341f13dd14a56da1bf040eae3e7699b7a Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 7 Oct 2024 13:47:13 +0200 Subject: [PATCH] Uta, Mailsender --- DAKOSY_Worker/DAKOSY_Worker_lib.vbproj | 2 +- MDM_Worker/MDM_Worker_lib.vbproj | 1 + MailSender/MAILSender.vb | 297 +++++++++++++++++- TELOTEK_Worker_lib/TELOTEC_Worker_lib.vbproj | 2 +- initATLASAufschubkonten/RoutineManager.vbproj | 7 +- initATLASAufschubkonten/cUTA.vb | 225 +++++++------ .../frmDYNachrichtenVerarbeitung.vb | 10 +- .../frmNachrichtenVerarbeitung_MDM_divers.vb | 80 ++++- initATLASAufschubkonten/frmStartOptions.vb | 15 +- 9 files changed, 485 insertions(+), 154 deletions(-) diff --git a/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj b/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj index d2f2982..fef9343 100644 --- a/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj +++ b/DAKOSY_Worker/DAKOSY_Worker_lib.vbproj @@ -21,7 +21,7 @@ bin\Debug\ DAKOSY_Worker.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - x64 + AnyCPU pdbonly diff --git a/MDM_Worker/MDM_Worker_lib.vbproj b/MDM_Worker/MDM_Worker_lib.vbproj index 049bb39..d032cda 100644 --- a/MDM_Worker/MDM_Worker_lib.vbproj +++ b/MDM_Worker/MDM_Worker_lib.vbproj @@ -22,6 +22,7 @@ bin\Debug\ MDM_Worker.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + AnyCPU pdbonly diff --git a/MailSender/MAILSender.vb b/MailSender/MAILSender.vb index f0b6009..c10f9e3 100644 --- a/MailSender/MAILSender.vb +++ b/MailSender/MAILSender.vb @@ -6,6 +6,9 @@ Imports DocumentFormat Imports System.Net Imports DAKOSY_Worker Imports System.Reflection +Imports VERAG_PROG_ALLGEMEIN +Imports com.sun.xml.internal.rngom +Imports DocumentFormat.OpenXml.Bibliography Module Mail Dim sPath As String = System.AppDomain.CurrentDomain.BaseDirectory @@ -26,6 +29,7 @@ Module Mail ' Next End If + System.Console.WriteLine("MailSender gestartet ...") ' If IO.File.Exists(options) Then @@ -71,7 +75,7 @@ Module Mail 'PARAM = "THYSSENKRUPP_AUSWERTUNG" 'PARAM = "JAHRESABRECHNUNG AG-ZS" - 'PARAM = "AMBAR_Datev_Mailversand_to_HK" + 'PARAM = "TETRAPAK" '------------------------------------------------------------------------------------ ' PARAM = "NCTSLIST_TOBB" @@ -284,6 +288,22 @@ Module Mail SendEmail_AMBARTOHKT() System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") + + Case "UID_OPS_SYSKA_ABGLEICH" + System.Console.WriteLine("OPTION erkannt: UID-Vergleich SYSKA") + System.Console.WriteLine("Vorgang gestartet...") + If SendEmail_Syska_UID_Vergleich("as@verag.ag") Then System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") + + Case "TETRAPAK" + Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year) + Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1) + + System.Console.WriteLine("OPTION erkannt: TETRA_PACK _ Erstellt eine monatliche Auswertung der DAKSOY/EZOLL-Abfertigungen für TETRAPAK.") + System.Console.WriteLine("Auswertung Details gestartet...") + If SendEmail_Tetrapak("Maria.mendez@tetrapak.com; Andrea.Ronceria@tetrapak.com", von, bis, "DE") AndAlso SendEmail_Tetrapak("Maria.mendez@tetrapak.com;Andrea.Ronceria@tetrapak.com", von, bis, "AT") Then + System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") + End If + Case Else System.Console.WriteLine("OPTION nicht erkannt!") End Select @@ -1141,7 +1161,91 @@ Module Mail Return False End Function + Private Function SendEmail_Syska_UID_Vergleich(Mailto As String) As Boolean + Try + Dim excel As String = genEXCEL_Syska_UID_VERGLEICH() + System.Console.WriteLine("EXCEL erstellt...") + If excel <> "" And Not excel.StartsWith("ERROR: ") Then + System.Console.WriteLine("Sende E-Mail...") + + Dim Subject = "Auswertungen Syska UID-Vergleich " + Dim Body = "Anbei befinden sich der UID-Nr Vergleich mit Syska." & + "

Erstellt am: " & Now.ToShortDateString & ", um " & Now.ToShortTimeString & + "


Automatisch generiertes E-Mail. Bitte Antworten Sie nicht an dieses E-Mail." & + "

VERAG SPEDITION AG" + + + Dim anhenge As New List(Of String) + anhenge.Add(excel) + If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False,, "d.breimaier@verag.ag", anhenge) Then + System.Console.WriteLine("E-Mail gesendet.") + System.Console.WriteLine("Erfolgreich!") + Else + System.Console.WriteLine("ERROR BEIM SENDEN DER MAIL!") + + End If + + Return True + Else + System.Console.WriteLine(excel) + End If + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) + System.Console.WriteLine(ex.Message & ex.StackTrace) + Return False + End Try + End Function + + Private Function SendEmail_Tetrapak(Mailto As String, von As Date, bis As Date, Report As String) As Boolean + Try + Dim anhenge As New List(Of String) + + Select Case Report + + Case "DE" + Dim dakosy_excel As String = genEXCEL_TETRAPAK_DE(von, bis) + System.Console.WriteLine("EXCEL DAKOSY erstellt...") + If dakosy_excel <> "" And Not dakosy_excel.StartsWith("ERROR: ") Then + anhenge.Add(dakosy_excel) + Else + System.Console.WriteLine(dakosy_excel) + End If + Case "AT" + Dim dhf_excel As String = genEXCEL_TETRAPAK_AT(von, bis) + System.Console.WriteLine("EXCEL DHF erstellt...") + If dhf_excel <> "" And Not dhf_excel.StartsWith("ERROR: ") Then + anhenge.Add(dhf_excel) + Else + System.Console.WriteLine(dhf_excel) + End If + End Select + + System.Console.WriteLine("Sende E-Mail...") + + Dim Subject = "Import Customs Statistics " & Report & " " & von & "-" & bis + Dim Body = "Dear sir or madam," & + "

enclosed the import customs statistics for " & Report & "." & + "

Created at: " & Now.ToShortDateString & ", on " & Now.ToShortTimeString & + "


Automatically generated e-mail. Please do not reply to this e-mail." & + "

VERAG SPEDITION AG" + + If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False,, "d.breimaier@verag.ag", anhenge) Then + System.Console.WriteLine("E-Mail gesendet.") + System.Console.WriteLine("Erfolgreich!") + Else + System.Console.WriteLine("ERROR BEIM SENDEN DER MAIL!") + + End If + + Return True + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL) + System.Console.WriteLine(ex.Message & ex.StackTrace) + Return False + End Try + End Function Private Sub send() Dim message As New MailMessage("al@verag.ag", "al@verag.ag", "Test", "Testmail") @@ -1308,12 +1412,12 @@ Module Mail End Try End Function - Sub genExcel(dt As DataTable) + Sub genExcel(dt As DataTable, Optional excelBez As String = "TMP", Optional Arbeitsplattbez As String = "Kundenliste") Dim wb As New XLWorkbook() ' Dim wb As New ClosedXML.Excel.XLWorkbook - wb.Worksheets.Add(dt, "Kundenliste") - wb.SaveAs(sPath & "TMP.xlsx") + wb.Worksheets.Add(dt, Arbeitsplattbez) + wb.SaveAs(sPath & excelBez & ".xlsx") End Sub Public Function genCSV(von, bis) As String @@ -2022,6 +2126,100 @@ Module Mail Return "ERROR: " & ex.Message End Try End Function + + Public Function genEXCEL_Syska_UID_VERGLEICH() As String + Try + + Dim wb As New XLWorkbook() + Dim firmenlist As New List(Of MyListItem) + firmenlist.Add(New MyListItem("VERAG AG", 1)) + firmenlist.Add(New MyListItem("VERAG CS", 11)) + firmenlist.Add(New MyListItem("ATILLA", 7)) + + For Each i In firmenlist + Dim top = 100 + Dim sql As New SQL + Dim sqlstrKunden = " select * from ( SELECT [KundenNr] as KundenNr, (isnull(Adressen.UstIdKz,'') + isnull(Adressen.UstIdNr,'')) as UIDNrKunden, isnull(c_ustidnr,'') as UIDNrKundenDeb, [i_firm_refid] as MandantFIBU, FiBuSchnittstelleNr as MandantAVISO FROM [VERAG].[dbo].[Kunden] + inner join Adressen on Adressen.AdressenNr = Kunden.KundenNr + inner join Buchhaltung.[FIBU2].[dbo].[fibu_konto] on Kunden.KundenNrZentrale = i_konto + where isnull(KundenNrZentrale,0) <> 0 and Auswahl = 'A' And isnull(FiBuSchnittstelleNr,0) = " & i.Value & " ANd [i_firm_refid] = " & i.Value & " ) as temp where UIDNrKunden <> UIDNrKundenDeb" + + + Dim dtKunden As DataTable = loadDgvBySqlFMZOLL(sqlstrKunden) + If dtKunden.Rows.Count = 0 Then Return "" + + + + 'Dim dtmerged As New DataTable + 'dtmerged.Columns.Add("KundenNr", GetType(Integer)) + 'dtmerged.Columns.Add("UIDNrKunden", GetType(String)) + 'dtmerged.Columns.Add("UIDNrDebitoren", GetType(String)) + + 'Dim dtmerged2 = dtmerged.Clone + + 'If dtKunden IsNot Nothing AndAlso dtDebitoren IsNot Nothing Then + ' dtmerged.Merge(dtKunden, False, MissingSchemaAction.Add) + ' dtmerged.Merge(dtDebitoren, True, MissingSchemaAction.Add) + 'End If + + + 'Dim tableResult = dtmerged2.Clone() + + + + 'dtmerged2 = (From d1 In dtKunden.AsEnumerable() + ' Join d2 In dtDebitoren.AsEnumerable() On d1.Item("KundenNr") Equals d2.Item("KundenNr") + ' Select dtmerged2.LoadDataRow(New Object() {d1.Item("KundenNr"), d1.Item("UIDNrKunden"), d2.Item("UIDNrDebitoren")}, False)).CopyToDataTable + + + + + 'Dim groups = dtmerged.AsEnumerable(). + 'GroupBy(Function(row) New With { + 'Key .Id = row.Field(Of Integer)("KundenNr"), + 'Key .UIDK = row.Field(Of String)("UIDNrKunden"), + 'Key .UIDD = row.Field(Of String)("UIDNrDebitoren"), + 'Key .Mandant = row.Field(Of String)("Mandant") + '}) + + + 'Dim groups = dtmerged.AsEnumerable(). + 'GroupBy(Function(row) New With { + 'Key .Id = row.Field(Of Integer)("KundenNr") + '}) + + + + + 'For Each grp In groups + + ' Dim ID = (grp.Key.Id) + ' 'Dim UIDNrKd = IIf((grp.Key.UIDK) Is Nothing, "-", grp.Key.UIDK) + ' 'Dim UIDNrDEB = IIf((grp.Key.UIDD) Is Nothing, "-", grp.Key.UIDD) + ' 'Dim Mandant = IIf((grp.Key.Mandant) Is Nothing, "-", grp.Key.Mandant) + + 'Next + + System.Console.WriteLine("Vorhandene Datensätze: " & dtKunden.Rows.Count) + + wb.Worksheets.Add(dtKunden, i.Text) + + Next + + + + + wb.SaveAs(sPath & "TMP.xlsx") + + + Return sPath & "TMP.xlsx" + + Catch ex As Exception + ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) + Return "ERROR: " & ex.Message + End Try + End Function + Public Function genEXCEL_TR_ATILLA(LandEinschr) As String Try @@ -2046,6 +2244,97 @@ Module Mail Return "ERROR: " & ex.Message End Try End Function + + Public Function genEXCEL_TETRAPAK_DE(von As DateTime, bis As DateTime) As String + Try + Dim sql As New SQL + Dim sqlstr = "SELECT /*eza_id,eza_dyaAnmID,*/ cast(isnull(eza_anmeldedatum,eza_Trans_DatumZeit) as date) as ImportDate,eza_ANR as MRN, + ezaWP_AnmeldeVErfahren [Import regime], + (SELECT [tblDakosy_EZA_Adressen].ezaAd_TeilnehmerEORI FROM [tblDakosy_EZA_Adressen] WHERE eza_id=ezaAd_EZAId and ezaAd_AdressTyp='CZ') ExporterEORI, + (SELECT [tblDakosy_EZA_Adressen].ezaAd_NameFirma1 FROM [tblDakosy_EZA_Adressen] WHERE eza_id=ezaAd_EZAId and ezaAd_AdressTyp='CZ') Exporter, + (SELECT [tblDakosy_EZA_Adressen].ezaAd_LandCode FROM [tblDakosy_EZA_Adressen] WHERE eza_id=ezaAd_EZAId and ezaAd_AdressTyp='CZ') ExporterCountry, + (SELECT [tblDakosy_EZA_Adressen].ezaAd_TeilnehmerEORI FROM [tblDakosy_EZA_Adressen] WHERE eza_id=ezaAd_EZAId and ezaAd_AdressTyp='CN') ImporterEORI, + (SELECT TOP 1 [Ordnungsbegriff] FROM [VERAG].[dbo].[Adressen] inner join kunden on KundenNr=AdressenNr WHERE EORITIN =(SELECT [tblDakosy_EZA_Adressen].ezaAd_TeilnehmerEORI FROM [tblDakosy_EZA_Adressen] WHERE eza_id=ezaAd_EZAId and ezaAd_AdressTyp='CN') ) Importer, + + ezaWP_UrsprungslandCode CountryOrigin, + + ezaWP_PositionsNummer as PositionNummer, + tblDakosy_EZA_Warenposition.ezaWP_WarennummerEZT HSCode, + tblDakosy_EZA_Warenposition.ezaWP_Artikelpreis GoodsValue, + CASE WHEN ezaWP_PositionsNummer=1 then SUM(CASE WHEN [ezaAfb_AbgabeArt] = 'B0000' THEN [ezaAfb_Abgabenbetrag] ELSE 0 END) ELSE '' END VAT, + CASE WHEN ezaWP_PositionsNummer=1 then SUM(CASE WHEN [ezaAfb_AbgabeArt] = 'B0000' THEN 0 ELSE [ezaAfb_Abgabenbetrag] END) ELSE '' END DUTY, + ezaWP_PackstueckAnzahl Package, + sum(tblDakosy_EZA_Warenposition.ezaWP_Eigenmasse) NetWeight, + sum(tblDakosy_EZA_Warenposition.ezaWP_Rohmasse) GrossWeight, + + + max(tblDakosy_EZA_Warenposition.ezaWP_Warenbezeichnung )GoodsDescription + + FROM [VERAG].[dbo].[tblDakosy_EZA] inner join tblDakosy_EZA_Warenposition on ezaWP_EzaId=eza_Id + inner join tblDakosy_EZA_Aufschub on [ezaAfb_EZAId]=eza_Id + where (SELECT count(*) FROM [tblDakosy_EZA_Adressen] WHERE eza_id=ezaAd_EZAId AND ezaAd_TeilnehmerEORI IN( 'ATEOS1000001405','ATEOS1000001405','DE2030640','DE2010348')and ezaAd_AdressTyp='CN')>0 + + and cast(isnull(eza_anmeldedatum,eza_Trans_DatumZeit) as date) between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' + and (eza_status BETWEEN 60 and 60 or eza_ANR like 'ATC%') + group by eza_id,eza_dyaAnmID,eza_ANR,ezaWP_PositionsNummer,isnull(eza_anmeldedatum,eza_Trans_DatumZeit),ezaWP_UrsprungslandCode ,ezaWP_WarennummerEZT,ezaWP_Artikelpreis,ezaWP_ArtikelpreisWaehrung,ezaWP_PackstueckAnzahl,ezaWP_AnmeldeVErfahren + + order by ImporterEORI, importdate" + + Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr) + System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count) + + Dim excelBez = "TETRAPACK_DE_" & von.ToShortDateString.Replace(".", "-") & "_to_ " & von.ToShortDateString.Replace(".", "-") + genExcel(dt, excelBez, "TETRAPACK") + + Return sPath & excelBez & ".xlsx" + + Catch ex As Exception + ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) + Return "ERROR: " & ex.Message + End Try + End Function + + Public Function genEXCEL_TETRAPAK_AT(von As DateTime, bis As DateTime) As String + Try + Dim sql As New SQL + Dim sqlstr = " DECLARE @Eori AS VARCHAR(100)='ATEOS1000001405' + + + select CRN,cast(DecDT as date) ImportDate,LRN,Net,TotGross,ItVal ,[ProcCd] Regime + , Orig Ursprungsland + + , (SELECT TIN FROM zsAnmConorTra WHERE (zsAnmConorTra.LizenzNr = zsAnmHea.LizenzNr ) And (zsAnmConorTra.OperatorID =zsAnmHea.OperatorID ) And (zsAnmConorTra.VorgangID = zsAnmHea.VorgangID ) And (zsAnmConorTra.AnmID = zsAnmHea.AnmID )) EORI_Exporter + , (SELECT Na FROM zsAnmConorTra WHERE (zsAnmConorTra.LizenzNr = zsAnmHea.LizenzNr ) And (zsAnmConorTra.OperatorID =zsAnmHea.OperatorID ) And (zsAnmConorTra.VorgangID = zsAnmHea.VorgangID ) And (zsAnmConorTra.AnmID = zsAnmHea.AnmID )) Exporter + , (SELECT TIN FROM zsAnmConeeTra WHERE (zsAnmConeeTra.LizenzNr = zsAnmHea.LizenzNr ) And (zsAnmConeeTra.OperatorID =zsAnmHea.OperatorID ) And (zsAnmConeeTra.VorgangID = zsAnmHea.VorgangID ) And (zsAnmConeeTra.AnmID = zsAnmHea.AnmID ))EORI_Importer + , (SELECT Na FROM zsAnmConeeTra WHERE (zsAnmConeeTra.LizenzNr = zsAnmHea.LizenzNr ) And (zsAnmConeeTra.OperatorID =zsAnmHea.OperatorID ) And (zsAnmConeeTra.VorgangID = zsAnmHea.VorgangID ) And (zsAnmConeeTra.AnmID = zsAnmHea.AnmID ))Importer + ,GdsDes GoodsDescription,ComCd + + from zsAnmRefs + inner join zsAnmGdsitem on zsAnmRefs.LizenzNr=zsAnmGdsitem.LizenzNr and zsAnmRefs.AnmID=zsAnmGdsitem.AnmID and zsAnmRefs.VorgangID=zsAnmGdsitem.VorgangID and zsAnmRefs.OperatorID=zsAnmGdsitem.OperatorID + inner join zsAnmHea on zsAnmHea.LizenzNr=zsAnmGdsitem.LizenzNr and zsAnmHea.AnmID=zsAnmGdsitem.AnmID and zsAnmHea.VorgangID=zsAnmGdsitem.VorgangID and zsAnmHea.OperatorID=zsAnmGdsitem.OperatorID + inner join zsAnmDeclarant on zsAnmHea.LizenzNr=zsAnmDeclarant.LizenzNr and zsAnmHea.AnmID=zsAnmDeclarant.AnmID and zsAnmHea.VorgangID=zsAnmDeclarant.VorgangID and zsAnmHea.OperatorID=zsAnmDeclarant.OperatorID + inner join zsAnmTransp on zsAnmHea.LizenzNr=zsAnmTransp.LizenzNr and zsAnmHea.AnmID=zsAnmTransp.AnmID and zsAnmHea.VorgangID=zsAnmTransp.VorgangID and zsAnmHea.OperatorID=zsAnmTransp.OperatorID + where DecDT between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' + + and crn is not null + + and (SELECT TIN FROM zsAnmConeeTra WHERE (zsAnmConeeTra.LizenzNr = zsAnmHea.LizenzNr ) And (zsAnmConeeTra.OperatorID =zsAnmHea.OperatorID ) And (zsAnmConeeTra.VorgangID = zsAnmHea.VorgangID ) And (zsAnmConeeTra.AnmID = zsAnmHea.AnmID )) LIKE @Eori + + 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") + System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count) + Dim excelBez = "TETRAPACK_AT_" & von.ToShortDateString.Replace(".", "-") & "_to_ " & von.ToShortDateString.Replace(".", "-") + genExcel(dt, excelBez, "TETRAPACK") + + Return sPath & excelBez & ".xlsx" + + Catch ex As Exception + ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) + Return "ERROR: " & ex.Message + End Try + End Function + Public Function loadDgvBySqlFMZOLL(ByVal sql As String) As DataTable Try Dim myTable = New DataTable() diff --git a/TELOTEK_Worker_lib/TELOTEC_Worker_lib.vbproj b/TELOTEK_Worker_lib/TELOTEC_Worker_lib.vbproj index e3d306e..4bc99f6 100644 --- a/TELOTEK_Worker_lib/TELOTEC_Worker_lib.vbproj +++ b/TELOTEK_Worker_lib/TELOTEC_Worker_lib.vbproj @@ -22,7 +22,7 @@ bin\Debug\ TELOTEC_Worker.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - x64 + AnyCPU
pdbonly diff --git a/initATLASAufschubkonten/RoutineManager.vbproj b/initATLASAufschubkonten/RoutineManager.vbproj index 9c5b762..2999689 100644 --- a/initATLASAufschubkonten/RoutineManager.vbproj +++ b/initATLASAufschubkonten/RoutineManager.vbproj @@ -97,6 +97,10 @@ True C:\Windows\assembly\GAC_MSIL\office\15.0.0.0__71e9bce111e9429c\OFFICE.DLL + + False + F:\PROGRAMMIERUNG\dll\Spire.PDF\Spire.Pdf.dll + @@ -109,9 +113,6 @@ - - F:\PROGRAMMIERUNG\dll\ZUGFeRD.NET.dll - diff --git a/initATLASAufschubkonten/cUTA.vb b/initATLASAufschubkonten/cUTA.vb index 5695460..cb70f36 100644 --- a/initATLASAufschubkonten/cUTA.vb +++ b/initATLASAufschubkonten/cUTA.vb @@ -1,12 +1,6 @@ Imports System.Data.SqlClient -Imports System.Globalization Imports System.IO Imports System.Reflection -Imports System.Text.RegularExpressions -Imports com.esendex.sdk -Imports DocumentFormat.OpenXml.Bibliography -Imports DocumentFormat.OpenXml.EMMA -Imports DocumentFormat.OpenXml.VariantTypes Imports VERAG_PROG_ALLGEMEIN Public Class cUTA @@ -15,7 +9,7 @@ Public Class cUTA Public Function clearimporttable() As Boolean - Return SQL.doSQL("DELETE FROM tblUTAImport", "FMZOLL") + Return SQL.doSQL("DELETE FROM tblUTAImportNew", "FMZOLL") End Function @@ -23,10 +17,10 @@ Public Class cUTA 'Einträge in tblUTALeistungen machen, wenn Fakturierwarenart und Lieferland noch nicht in der Tabelle enthalten sind. Dim query = "INSERT INTO tblUTALeistungen (Fakturierwarenart, Lieferland, VERAG_OffertenNr, VERAG_LeistungsNr ) - Select tblUTAImport.Fakturierwarenart, tblUTAImport.Lieferland, tblUTAFakturierwarenarten.VERAG_OffertenNr, tblUTAFakturierwarenarten.VERAG_LeistungsNr - From tblUTAImport INNER Join tblUTAFakturierwarenarten On tblUTAImport.Fakturierwarenart = tblUTAFakturierwarenarten.Fakturierwarenart - Group By tblUTAImport.Fakturierwarenart, tblUTAImport.Lieferland, tblUTAFakturierwarenarten.VERAG_OffertenNr, tblUTAFakturierwarenarten.VERAG_LeistungsNr - HAVING((((SELECT tblUTALeistungen.Fakturierwarenart FROM tblUTALeistungen WHERE tblUTALeistungen.Fakturierwarenart=tblUTAImport.Fakturierwarenart And tblUTALeistungen.Lieferland=tblUTAImport.Lieferland)) Is Null))" + Select tblUTAImportNew.Fakturierwarenart, tblUTAImportNew.Lieferland, tblUTAFakturierwarenarten.VERAG_OffertenNr, tblUTAFakturierwarenarten.VERAG_LeistungsNr + From tblUTAImportNew INNER Join tblUTAFakturierwarenarten On tblUTAImportNew.Fakturierwarenart = tblUTAFakturierwarenarten.Fakturierwarenart + Group By tblUTAImportNew.Fakturierwarenart, tblUTAImportNew.Lieferland, tblUTAFakturierwarenarten.VERAG_OffertenNr, tblUTAFakturierwarenarten.VERAG_LeistungsNr + HAVING((((SELECT tblUTALeistungen.Fakturierwarenart FROM tblUTALeistungen WHERE tblUTALeistungen.Fakturierwarenart=tblUTAImportNew.Fakturierwarenart And tblUTALeistungen.Lieferland=tblUTAImportNew.Lieferland)) Is Null))" Return SQL.doSQL(query, "FMZOLL") @@ -72,7 +66,7 @@ Public Class cUTA Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAHeader WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAHeaderNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & @@ -85,7 +79,7 @@ Public Class cUTA Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() - Using cmd As New SqlCommand("Select * FROM tblUTAHeader WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit", conn) + Using cmd As New SqlCommand("Select * FROM tblUTAHeaderNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit", conn) cmd.Parameters.AddWithValue("@Übertragungsnummer", Übertragungsnummer) cmd.Parameters.AddWithValue("@ErstellDatumUhrzeit", ErstellDatumUhrzeit) Dim dr = cmd.ExecuteReader() @@ -123,7 +117,7 @@ Public Class cUTA End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' - Return (" UPDATE [tblUTAHeader] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit ") + Return (" UPDATE [tblUTAHeaderNew] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) @@ -145,7 +139,7 @@ Public Class cUTA Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' - Return (" INSERT INTO tblUTAHeader (" & str & ") VALUES(" & values & ") ") + Return (" INSERT INTO tblUTAHeaderNew (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try @@ -357,7 +351,7 @@ Public Class cUTA Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAImport WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTAImportNew WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & @@ -370,7 +364,7 @@ Public Class cUTA Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() - Using cmd As New SqlCommand("Select * FROM tblUTAImport WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit ", conn) + Using cmd As New SqlCommand("Select * FROM tblUTAImportNew WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition AND ErstellDatumUhrzeit = @ErstellDatumUhrzeit ", conn) cmd.Parameters.AddWithValue("@Übertragungsnummer", Übertragungsnummer) cmd.Parameters.AddWithValue("@Übertragungsposition", Übertragungsposition) cmd.Parameters.AddWithValue("@ErstellDatumUhrzeit", ErstellDatumUhrzeit) @@ -409,7 +403,7 @@ Public Class cUTA End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' - Return (" UPDATE [tblUTAImport] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition") + Return (" UPDATE [tblUTAImportNew] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND Übertragungsposition = @Übertragungsposition") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) @@ -431,7 +425,7 @@ Public Class cUTA Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' - Return (" INSERT INTO tblUTAImport (" & str & ") VALUES(" & values & ") ") + Return (" INSERT INTO tblUTAImportNew (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try @@ -752,7 +746,7 @@ Public Class cUTA Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTATrailer WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM tblUTATrailerNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & @@ -765,7 +759,7 @@ Public Class cUTA Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() - Using cmd As New SqlCommand("Select * FROM tblUTATrailer WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit", conn) + Using cmd As New SqlCommand("Select * FROM tblUTATrailerNew WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit", conn) cmd.Parameters.AddWithValue("@Übertragungsnummer", Übertragungsnummer) cmd.Parameters.AddWithValue("@ErstellDatumUhrzeit", ErstellDatumUhrzeit) Dim dr = cmd.ExecuteReader() @@ -803,7 +797,7 @@ Public Class cUTA End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' - Return (" UPDATE [tblUTATrailer] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit") + Return (" UPDATE [tblUTATrailerNew] SET " & str & " WHERE Übertragungsnummer=@Übertragungsnummer AND ErstellDatumUhrzeit=@ErstellDatumUhrzeit") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) @@ -825,7 +819,7 @@ Public Class cUTA Next str = str.Substring(0, str.Length - 1) 'wg. ',' values = values.Substring(0, values.Length - 1) 'wg. ',' - Return (" INSERT INTO tblUTATrailer (" & str & ") VALUES(" & values & ") ") + Return (" INSERT INTO tblUTATrailerNew (" & str & ") VALUES(" & values & ") ") Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name) End Try @@ -949,7 +943,7 @@ Public Class cUTA lngRecordCount = 0 'gleicher PKFileName wird nun aus CLFHeader gelöscht. CASCADE löscht dann zugehörige CLFBody und CLFTrailer. - 'If Not SQL.doSQL("DELETE tblUTAHeader.ErstellDatumUhrzeit, tblUTAHeader.Übertragungsnummer FROM tblUTAHeader WHERE (((tblUTAHeader.ErstellDatumUhrzeit)=" & Format$(dtmErstellDatumUhrzeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") & ") AND ((tblUTAHeader.Übertragungsnummer)=" & lngÜbertragungsnummer, "FMZOLL") Then + 'If Not SQL.doSQL("DELETE tblUTAHeaderNew.ErstellDatumUhrzeit, tblUTAHeaderNew.Übertragungsnummer FROM tblUTAHeaderNew WHERE (((tblUTAHeaderNew.ErstellDatumUhrzeit)=" & Format$(dtmErstellDatumUhrzeit, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#") & ") AND ((tblUTAHeaderNew.Übertragungsnummer)=" & lngÜbertragungsnummer, "FMZOLL") Then ' MsgBox("Fehler beim Löschen des CLF-Headers") ' objFileRead.Close() ' Return False @@ -1102,94 +1096,94 @@ Public Class cUTA .SAVE() - Dim clfArchiv As New cUTA.UTAArchiv(.Belegdatum, .UTA_Beleg_ID) - clfArchiv.Übertragungsnummer = .Übertragungsnummer - clfArchiv.ErstellDatumUhrzeit = .ErstellDatumUhrzeit - clfArchiv.Übertragungsposition = .Übertragungsposition - clfArchiv.Abrechnungsnummer = .Abrechnungsnummer - clfArchiv.Datum_für_Lieferungen_und_Leistungen_bis = .Datum_für_Lieferungen_und_Leistungen_bis - clfArchiv.Rechnungsempfänger_Kundennummer = .Rechnungsempfänger_Kundennummer - clfArchiv.Abrechnungsdatum = .Abrechnungsdatum - clfArchiv.Kundennummer = .Kundennummer - clfArchiv.Kartennummer = .Kartennummer - clfArchiv.Akzeptanzstellennummer = .Akzeptanzstellennummer - clfArchiv.Standort_der_Akzeptanzstelle = .Standort_der_Akzeptanzstelle - clfArchiv.Lieferland = .Lieferland - clfArchiv.Belegnummer_des_Lieferanten = .Belegnummer_des_Lieferanten - clfArchiv.Kilometerstand = .Kilometerstand - clfArchiv.Fakturierwarenart = .Fakturierwarenart - clfArchiv.Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen = .Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen - clfArchiv.Menge = .Menge - clfArchiv.SB_BT = .SB_BT - clfArchiv.Umsatzsteuerprozentsatz = .Umsatzsteuerprozentsatz - clfArchiv.Lieferlandwährung_ISO = .Lieferlandwährung_ISO - clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung = .Einzelpreis_Netto_in_Lieferlandwährung - clfArchiv.Einzelpreis_Brutto_in_Lieferlandwährung = .Einzelpreis_Brutto_in_Lieferlandwährung - clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung = .Einzelpreis_Netto_in_Lieferlandwährung - clfArchiv.Betrag_Service_in_Lieferlandwährung = .Betrag_Service_in_Lieferlandwährung - clfArchiv.Betrag_Nachlass_in_Lieferlandwährung = .Betrag_Nachlass_in_Lieferlandwährung - clfArchiv.Gesamtbetrag_Netto_in_Lieferlandwährung = .Gesamtbetrag_Netto_in_Lieferlandwährung - clfArchiv.Gesamtbetrag_Brutto_in_Lieferlandwährung = .Gesamtbetrag_Brutto_in_Lieferlandwährung - clfArchiv.Darstellwährung_ISO = .Darstellwährung_ISO - clfArchiv.Betrag_Service_in_Darstellwährung = .Betrag_Service_in_Darstellwährung - clfArchiv.Betrag_Nachlass_in_Darstellwährung = .Betrag_Nachlass_in_Darstellwährung - clfArchiv.Gesamtbetrag_Netto_in_Darstellwährung = .Gesamtbetrag_Netto_in_Darstellwährung - clfArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung = .Gesamtbetrag_Umsatzsteuer_in_Darstellwährung - clfArchiv.Gesamtbetrag_Brutto_in_Darstellwährung = .Gesamtbetrag_Brutto_in_Darstellwährung - clfArchiv.Prägetext_i_d_R_KFZ_Kennzeichen = .Prägetext_i_d_R_KFZ_Kennzeichen - clfArchiv.Kunden_Kostenstelle_1 = .Kunden_Kostenstelle_1 - clfArchiv.Kartentyp = .Kartentyp - clfArchiv.Filler_Feld_35 = .Filler_Feld_35 - clfArchiv.Filler_Feld_36 = .Filler_Feld_36 - clfArchiv.KZ_Autobahn = .KZ_Autobahn - clfArchiv.INFO_Feld = .INFO_Feld - clfArchiv.KFZ_Kennzeichen = .KFZ_Kennzeichen - clfArchiv.Filler_Feld_40 = .Filler_Feld_40 - clfArchiv.Buchungsart = .Buchungsart - clfArchiv.Buchungsgrund = .Buchungsgrund - clfArchiv.Filler_Feld_43 = .Filler_Feld_43 - clfArchiv.Informationsbeleg = .Informationsbeleg - clfArchiv.Belegherkunft = .Belegherkunft - clfArchiv.Filler_Feld_46 = .Filler_Feld_46 - clfArchiv.Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen = .Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen - clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen = .Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen - clfArchiv.Rechnungsdatum = .Rechnungsdatum - clfArchiv.Umsatzsteuerprozentsatz_informativ = .Umsatzsteuerprozentsatz_informativ - clfArchiv.Betrag_Nachlass_in_Lieferlandwährung = .Betrag_Nachlass_in_Lieferlandwährung - clfArchiv.Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ = .Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ - clfArchiv.Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ = .Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ - clfArchiv.Fälligkeitsdatum = .Fälligkeitsdatum - clfArchiv.Zahlungsziel_in_Tagen = .Zahlungsziel_in_Tagen - clfArchiv.Zahlungsart = .Zahlungsart - clfArchiv.TC_Rechnungsnummer_gegenüber_dem_Nutzer = .TC_Rechnungsnummer_gegenüber_dem_Nutzer - clfArchiv.TC_Rechnungsdatum = .TC_Rechnungsdatum - clfArchiv.Zahlungszielgruppe = .Zahlungszielgruppe - clfArchiv.Kunden_Kostenstelle_2 = .Kunden_Kostenstelle_2 - clfArchiv.Lieferzeit = .Lieferzeit - clfArchiv.Fremdkartennummer = .Fremdkartennummer - clfArchiv.OnBoardUnitID = .OnBoardUnitID - clfArchiv.KFZ_Kennzeichen_komprimiert = .KFZ_Kennzeichen_komprimiert - clfArchiv.Kartenkategorie = .Kartenkategorie - clfArchiv.Rechnungsnummer_pro_Lieferland = .Rechnungsnummer_pro_Lieferland - clfArchiv.Autobahnauffahrt = .Autobahnauffahrt - clfArchiv.Autobahnausfahrt = .Autobahnausfahrt - clfArchiv.Rabattschlüssel_der_französischen_Autobahngesellschaften = .Rabattschlüssel_der_französischen_Autobahngesellschaften - clfArchiv.Nummer_Belastungsanzeige = .Nummer_Belastungsanzeige - clfArchiv.Betreuungsstelle = .Betreuungsstelle - clfArchiv.Filler_Feld_72 = .Filler_Feld_72 - clfArchiv.Akzeptanz_Medium = .Akzeptanz_Medium - clfArchiv.Steuerkategorie = .Steuerkategorie - clfArchiv.UTA_Normalbeleg_ID = .UTA_Normalbeleg_ID - clfArchiv.Gebühren_Bescheinigung_von = .Gebühren_Bescheinigung_von - clfArchiv.Gebühren_Bescheinigung_bis = .Gebühren_Bescheinigung_bis - clfArchiv.Herausgeber_Nutzer_Nummer = .Herausgeber_Nutzer_Nummer - clfArchiv.Maßeinheit = .Maßeinheit - clfArchiv.Land_der_Akzeptanzstelle = .Land_der_Akzeptanzstelle - clfArchiv.Postleitzahl_der_Akzeptanzstelle = .Postleitzahl_der_Akzeptanzstelle - clfArchiv.Steuerliches_Lieferland = .Steuerliches_Lieferland - clfArchiv.Steuerliche_Produktgruppe = .Steuerliche_Produktgruppe - clfArchiv.Leistungsort_verlagerbar = .Leistungsort_verlagerbar - clfArchiv.SAVE() + 'Dim clfArchiv As New cUTA.UTAArchiv(.Belegdatum, .UTA_Beleg_ID) + 'clfArchiv.Übertragungsnummer = .Übertragungsnummer + 'clfArchiv.ErstellDatumUhrzeit = .ErstellDatumUhrzeit + 'clfArchiv.Übertragungsposition = .Übertragungsposition + 'clfArchiv.Abrechnungsnummer = .Abrechnungsnummer + 'clfArchiv.Datum_für_Lieferungen_und_Leistungen_bis = .Datum_für_Lieferungen_und_Leistungen_bis + 'clfArchiv.Rechnungsempfänger_Kundennummer = .Rechnungsempfänger_Kundennummer + 'clfArchiv.Abrechnungsdatum = .Abrechnungsdatum + 'clfArchiv.Kundennummer = .Kundennummer + 'clfArchiv.Kartennummer = .Kartennummer + 'clfArchiv.Akzeptanzstellennummer = .Akzeptanzstellennummer + 'clfArchiv.Standort_der_Akzeptanzstelle = .Standort_der_Akzeptanzstelle + 'clfArchiv.Lieferland = .Lieferland + 'clfArchiv.Belegnummer_des_Lieferanten = .Belegnummer_des_Lieferanten + 'clfArchiv.Kilometerstand = .Kilometerstand + 'clfArchiv.Fakturierwarenart = .Fakturierwarenart + 'clfArchiv.Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen = .Vorzeichen_Statusfeld_für_alle_Beträge_und_Mengen + 'clfArchiv.Menge = .Menge + 'clfArchiv.SB_BT = .SB_BT + 'clfArchiv.Umsatzsteuerprozentsatz = .Umsatzsteuerprozentsatz + 'clfArchiv.Lieferlandwährung_ISO = .Lieferlandwährung_ISO + 'clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung = .Einzelpreis_Netto_in_Lieferlandwährung + 'clfArchiv.Einzelpreis_Brutto_in_Lieferlandwährung = .Einzelpreis_Brutto_in_Lieferlandwährung + 'clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung = .Einzelpreis_Netto_in_Lieferlandwährung + 'clfArchiv.Betrag_Service_in_Lieferlandwährung = .Betrag_Service_in_Lieferlandwährung + 'clfArchiv.Betrag_Nachlass_in_Lieferlandwährung = .Betrag_Nachlass_in_Lieferlandwährung + 'clfArchiv.Gesamtbetrag_Netto_in_Lieferlandwährung = .Gesamtbetrag_Netto_in_Lieferlandwährung + 'clfArchiv.Gesamtbetrag_Brutto_in_Lieferlandwährung = .Gesamtbetrag_Brutto_in_Lieferlandwährung + 'clfArchiv.Darstellwährung_ISO = .Darstellwährung_ISO + 'clfArchiv.Betrag_Service_in_Darstellwährung = .Betrag_Service_in_Darstellwährung + 'clfArchiv.Betrag_Nachlass_in_Darstellwährung = .Betrag_Nachlass_in_Darstellwährung + 'clfArchiv.Gesamtbetrag_Netto_in_Darstellwährung = .Gesamtbetrag_Netto_in_Darstellwährung + 'clfArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung = .Gesamtbetrag_Umsatzsteuer_in_Darstellwährung + 'clfArchiv.Gesamtbetrag_Brutto_in_Darstellwährung = .Gesamtbetrag_Brutto_in_Darstellwährung + 'clfArchiv.Prägetext_i_d_R_KFZ_Kennzeichen = .Prägetext_i_d_R_KFZ_Kennzeichen + 'clfArchiv.Kunden_Kostenstelle_1 = .Kunden_Kostenstelle_1 + 'clfArchiv.Kartentyp = .Kartentyp + 'clfArchiv.Filler_Feld_35 = .Filler_Feld_35 + 'clfArchiv.Filler_Feld_36 = .Filler_Feld_36 + 'clfArchiv.KZ_Autobahn = .KZ_Autobahn + 'clfArchiv.INFO_Feld = .INFO_Feld + 'clfArchiv.KFZ_Kennzeichen = .KFZ_Kennzeichen + 'clfArchiv.Filler_Feld_40 = .Filler_Feld_40 + 'clfArchiv.Buchungsart = .Buchungsart + 'clfArchiv.Buchungsgrund = .Buchungsgrund + 'clfArchiv.Filler_Feld_43 = .Filler_Feld_43 + 'clfArchiv.Informationsbeleg = .Informationsbeleg + 'clfArchiv.Belegherkunft = .Belegherkunft + 'clfArchiv.Filler_Feld_46 = .Filler_Feld_46 + 'clfArchiv.Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen = .Einzelpreis_Brutto_in_Lieferlandwährung_mit_4_Nachkommastellen + 'clfArchiv.Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen = .Einzelpreis_Netto_in_Lieferlandwährung_mit_4_Nachkommastellen + 'clfArchiv.Rechnungsdatum = .Rechnungsdatum + 'clfArchiv.Umsatzsteuerprozentsatz_informativ = .Umsatzsteuerprozentsatz_informativ + 'clfArchiv.Betrag_Nachlass_in_Lieferlandwährung = .Betrag_Nachlass_in_Lieferlandwährung + 'clfArchiv.Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ = .Betrag_Service_in_Lieferlandwährung_Umsatzsteuer_informativ + 'clfArchiv.Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ = .Gesamtbetrag_in_Lieferlandwährung_Umsatzsteuer_informativ + 'clfArchiv.Fälligkeitsdatum = .Fälligkeitsdatum + 'clfArchiv.Zahlungsziel_in_Tagen = .Zahlungsziel_in_Tagen + 'clfArchiv.Zahlungsart = .Zahlungsart + 'clfArchiv.TC_Rechnungsnummer_gegenüber_dem_Nutzer = .TC_Rechnungsnummer_gegenüber_dem_Nutzer + 'clfArchiv.TC_Rechnungsdatum = .TC_Rechnungsdatum + 'clfArchiv.Zahlungszielgruppe = .Zahlungszielgruppe + 'clfArchiv.Kunden_Kostenstelle_2 = .Kunden_Kostenstelle_2 + 'clfArchiv.Lieferzeit = .Lieferzeit + 'clfArchiv.Fremdkartennummer = .Fremdkartennummer + 'clfArchiv.OnBoardUnitID = .OnBoardUnitID + 'clfArchiv.KFZ_Kennzeichen_komprimiert = .KFZ_Kennzeichen_komprimiert + 'clfArchiv.Kartenkategorie = .Kartenkategorie + 'clfArchiv.Rechnungsnummer_pro_Lieferland = .Rechnungsnummer_pro_Lieferland + 'clfArchiv.Autobahnauffahrt = .Autobahnauffahrt + 'clfArchiv.Autobahnausfahrt = .Autobahnausfahrt + 'clfArchiv.Rabattschlüssel_der_französischen_Autobahngesellschaften = .Rabattschlüssel_der_französischen_Autobahngesellschaften + 'clfArchiv.Nummer_Belastungsanzeige = .Nummer_Belastungsanzeige + 'clfArchiv.Betreuungsstelle = .Betreuungsstelle + 'clfArchiv.Filler_Feld_72 = .Filler_Feld_72 + 'clfArchiv.Akzeptanz_Medium = .Akzeptanz_Medium + 'clfArchiv.Steuerkategorie = .Steuerkategorie + 'clfArchiv.UTA_Normalbeleg_ID = .UTA_Normalbeleg_ID + 'clfArchiv.Gebühren_Bescheinigung_von = .Gebühren_Bescheinigung_von + 'clfArchiv.Gebühren_Bescheinigung_bis = .Gebühren_Bescheinigung_bis + 'clfArchiv.Herausgeber_Nutzer_Nummer = .Herausgeber_Nutzer_Nummer + 'clfArchiv.Maßeinheit = .Maßeinheit + 'clfArchiv.Land_der_Akzeptanzstelle = .Land_der_Akzeptanzstelle + 'clfArchiv.Postleitzahl_der_Akzeptanzstelle = .Postleitzahl_der_Akzeptanzstelle + 'clfArchiv.Steuerliches_Lieferland = .Steuerliches_Lieferland + 'clfArchiv.Steuerliche_Produktgruppe = .Steuerliche_Produktgruppe + 'clfArchiv.Leistungsort_verlagerbar = .Leistungsort_verlagerbar + 'clfArchiv.SAVE() End With @@ -1242,10 +1236,13 @@ Public Class cUTA ERROR_PFAD = cUTA.Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) ARCHIV_PFAD = cUTA.Paramter.GET_PARAM_ByName("ARCHIV_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - VERARBEITUNG_PFAD = cUTA.Paramter.GET_PARAM_ByName("VERARBEITUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + VERARBEITUNG_PFAD = cUTA.Paramter.GET_PARAM_ByName("VERARBEITUNG_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) ZIEL_PFAD = cUTA.Paramter.GET_PARAM_ByName("ZIEL_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - If Not System.IO.Directory.Exists(VERARBEITUNG_PFAD) Then + + If Not System.IO.Directory.Exists(VERARBEITUNG_PFAD) AndAlso VERARBEITUNG_PFAD <> "" Then System.IO.Directory.CreateDirectory(VERARBEITUNG_PFAD) + ElseIf VERARBEITUNG_PFAD = "" Then + MsgBox("Verabreitungspfad nicht gesetzt!") End If Return Paramter.getFTPConenction(API_STRING, API, programName) diff --git a/initATLASAufschubkonten/frmDYNachrichtenVerarbeitung.vb b/initATLASAufschubkonten/frmDYNachrichtenVerarbeitung.vb index 0d68cb2..bcf3cea 100644 --- a/initATLASAufschubkonten/frmDYNachrichtenVerarbeitung.vb +++ b/initATLASAufschubkonten/frmDYNachrichtenVerarbeitung.vb @@ -1,15 +1,7 @@ Imports System.IO -Imports System.Globalization Imports System.Xml -Imports Renci.SshNet -Imports System.Net.Mail -Imports GrapeCity.Enterprise.Data.DataEngine.DataProcessing -Imports DocumentFormat.OpenXml.Wordprocessing Imports DAKOSY_Worker -Imports Renci.SshNet.Messages -Imports System.Windows.Forms.VisualStyles.VisualStyleElement -Imports DocumentFormat.OpenXml.Drawing.Charts -Imports iTextSharp.text.xml.simpleparser +Imports Renci.SshNet Public Class frmDYNachrichtenVerarbeitung Dim cntDatenEingelesen As Integer = 0 diff --git a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb index 0e6db81..bfa5d05 100644 --- a/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb +++ b/initATLASAufschubkonten/frmNachrichtenVerarbeitung_MDM_divers.vb @@ -3,16 +3,13 @@ Imports System.Net Imports System.Text Imports System.Text.RegularExpressions Imports System.Web -Imports io.konik -Imports io.konik.carriage.pdfbox.xmp -Imports io.konik.validation -Imports io.konik.zugferd -Imports java.nio.channels +Imports System.Xml Imports Renci.SshNet Imports Renci.SshNet.Sftp Imports VERAG_PROG_ALLGEMEIN + Public Class frmNachrichtenVerarbeitung_MDM_divers Dim cntDatenEingelesen As Integer = 0 Dim dsNichtErkannt As Integer = 0 @@ -412,29 +409,78 @@ Public Class frmNachrichtenVerarbeitung_MDM_divers 'PDFs über EEA und Zugpfrd If fi.Extension.ToLower = ".pdf" Then - If Not System.IO.Directory.Exists(zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then System.IO.Directory.CreateDirectory(zielpfad & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") + If True Then 'Not System.IO.Directory.Exists(zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then System.IO.Directory.CreateDirectory(zielpfad & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") - If fi.Name.ToString.StartsWith("invoice_") Then + If fi.Name.ToString.StartsWith("invoice_") Then - Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "UTA", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("MDM", "MDM_DATEN", "UTA", Now.Year, Now.ToString("yyyyMMdd"), frmStartOptions.getFileName(d)) - DS.uploadDataToDATENSERVER(d,,,,,, True) + DS.uploadDataToDATENSERVER(d,,,,,, True) - 'zugferd-Daten aus pdf auslesen! - Dim invoice As New Invoice(zugferd.profile.ConformanceLevel.BASIC) - Dim validator As InvoiceValidator = New InvoiceValidator() - Dim test = validator.validate(invoice) + 'zugferd-Daten aus pdf auslesen! + + '1 Read your PDF + '2 Get the catalog inside your PDF + '3 Get the Array with name AF from Catalog + '4 Get first element from AF array (should be file spec) + '5 From file spec get the dictionary named EF + '6 Get the stream content of EF + + Try + + Dim invoiceNr As String = "" + Dim invoiceDate As String = "" + Dim UTA_Beleg_ID As String = "" + Dim doc = New Spire.Pdf.PdfDocument() + doc.LoadFromFile(fi.FullName) + + Dim pdfAtt = doc.Attachments(0) + If pdfAtt.FileName = "ZUGFeRD-invoice.xml" Then + + Dim filename = Path.GetFileName(pdfAtt.FileName) + File.WriteAllBytes(filename, pdfAtt.Data) + + Dim docxml As New XmlDocument() + docxml.Load(New XmlTextReader(filename)) + If docxml.HasChildNodes Then + + If docxml.GetElementsByTagName("rsm:ExchangedDocument").Count > 0 Then + Dim count As Integer = 1 + For Each node As XmlElement In docxml.GetElementsByTagName("rsm:ExchangedDocument") + If node.HasChildNodes Then + For Each element As XmlElement In node.ChildNodes + If element.Name = "ram:ID" AndAlso element.InnerText <> "" Then invoiceNr = element.InnerText 'Rechnungsnummer + If element.Name = "ram:IssueDateTime" AndAlso element.InnerText <> "" Then invoiceDate = element.InnerText + + Next + + count = count + 1 + + End If + Next + + End If + + End If + End If + + If UTA_Beleg_ID <> "" Then + 'TO DO -> ÄNDERN---------------------- + SQL.doSQL("Update [tblUTAImportNew] SET [daId]='" & DS.da_id & "' where [UTA_Beleg_ID] = '" & UTA_Beleg_ID & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL") + 'TO DO -> ÄNDERN---------------------- + End If - 'TO DO -> ÄNDERN---------------------- - ' SQL.doSQL("Update [tblUTAImport] SET [daId]='" & DS.da_id & "' where [rmc_pdfFileName] = '" & DS.da_name & "' and [rmc_importDatum] > DATEADD(DAY,-4,getdate()) ", "FMZOLL") - 'TO DO -> ÄNDERN---------------------- + Catch ex As System.Exception + End Try + + End If End If End If - frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") + 'frmStartOptions.moveFile_DateBack(d, zielpfad & "Invoice_PDF\" & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") If fi.Name.ToLower.Contains("pdf") Then addDGVEinarbeitung("PDF", fi.Name) dgvEinarbeitung.Refresh() diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index 2817902..c4e6339 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -342,7 +342,7 @@ Public Class frmStartOptions If (parameter.Count - 1) >= 3 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist - 'mdm_mail_attach %file% %subject% %datetimereceived% %from% - testsubject test@uta.com" + 'mdm_mail_attach %file% %subject% %datetimereceived% %from%" pfad = parameter(2) betreff = parameter(3) @@ -350,7 +350,7 @@ Public Class frmStartOptions VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False - If von.Contains("@uta.com") Or betreff.ToLower.Contains("UTA") Then + If von.Contains("ebilling@uta.com") Then '---------------------UTA---------------------- importFileFromUTAMailAnhang(pfad, betreff) End If @@ -4692,7 +4692,14 @@ Public Class frmStartOptions Else Dim totalPages = 1 - Dim batchrequestNr = IIf(txtBatchNr.Text <> "", CInt(txtBatchNr.Text), CInt(cbxMSEBatchNr._value)) + Dim batchrequestNr As Integer + + If txtBatchNr.Text <> "" Then + batchrequestNr = CInt(txtBatchNr.Text) + Else + batchrequestNr = CInt(cbxMSEBatchNr._value) + End If + fehler = mse.getTransactionsFromBatchNrAndPage(token, transactions, batchrequestNr, totalPages, 0) If fehler <> "" Then @@ -4714,8 +4721,6 @@ Public Class frmStartOptions End If Next - - End If MsgBox("DONE")