This commit is contained in:
2024-10-08 09:26:36 +02:00
9 changed files with 483 additions and 153 deletions

View File

@@ -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
@@ -283,6 +287,22 @@ Module Mail
System.Console.WriteLine("Vorgang gestartet...")
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 "Imex_Kunden_keine_Abfertigung"
Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year)
Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1)
@@ -1184,7 +1204,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." &
"<br><br>Erstellt am: " & Now.ToShortDateString & ", um " & Now.ToShortTimeString &
"<br><br><br>Automatisch generiertes E-Mail. Bitte Antworten Sie nicht an dieses E-Mail." &
"<br><br>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," &
"<br><br>enclosed the import customs statistics for " & Report & "." &
"<br><br>Created at: " & Now.ToShortDateString & ", on " & Now.ToShortTimeString &
"<br><br><br>Automatically generated e-mail. Please do not reply to this e-mail." &
"<br><br>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")
@@ -1351,12 +1455,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
@@ -2119,6 +2223,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
@@ -2143,6 +2341,96 @@ 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, Optional CmdChangeTimeout As Integer = 0) As DataTable
Try
Dim myTable = New DataTable()