From 429958d2d82d78ad4fd124d2d3661956298f5bf3 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 30 Jul 2025 16:06:59 +0200 Subject: [PATCH] Mailsender, etc. --- .../cZollsysteme_Aktenbeschriftung.vb | 189 +++++++-- MailSender/MAILSender.vb | 361 +++++++++++++----- MailSender/MailSender.vbproj | 1 + MailSender/My Project/Resources.Designer.vb | 10 + MailSender/My Project/Resources.resx | 3 + MailSender/Resources/RG_ZF_NEW.xlsx | Bin 0 -> 10318 bytes 6 files changed, 445 insertions(+), 119 deletions(-) create mode 100644 MailSender/Resources/RG_ZF_NEW.xlsx diff --git a/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb b/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb index 2536006..1c9508a 100644 --- a/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb +++ b/DAKOSY_Worker/cZollsysteme_Aktenbeschriftung.vb @@ -5,36 +5,31 @@ Public Class cZollsysteme_Aktenbeschriftung Property Praeferenznachweis As String Property Handelsrechnung As String Property PräferenzAufRechnung As String - Property Colli As String Property Gewicht As String - - Property num_Colli As Integer = 0 Property num_Gewicht As Double = 0 - Property Rechnungspreis As String Property Warenbezeichung As String - Property AbgabenKonto As String Property Garantie As String - Property Absender As String Property Empfaenger As String Property Anmelder As String Property Vertreter As String Property Sachbearbeiter As String - Property VerBestLandZst As String Property Vorpapier As String - Property ATCMRN As String - Property ABGABEN_EUST As Double = 0 Property ABGABEN_ZOLL As Double = 0 Property ANZ_POS As Integer = 0 - + Property Zollstelle_Eingang As String = "" + Property Waehrungscode As String = "EUR" + Property Incoterms As String = "" + Property Geschaeftsart As String = "" Property isUeT1 As Boolean = False + Property dtWARENPOS As New DataTable Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL @@ -99,12 +94,8 @@ Public Class cZollsysteme_Aktenbeschriftung End If ' MsgBox("1") getDataByBezugsnummer = False - Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA - ' Case "UNISPED" - Case "" - Case Else - 'MsgBox("2 " & Abfertigungsart) - Select Case Abfertigungsart + 'MsgBox("2 " & Abfertigungsart) + Select Case Abfertigungsart Case 38, 26 'AT Select Case Zollsystem_Land Case "AT" @@ -151,7 +142,7 @@ Public Class cZollsysteme_Aktenbeschriftung End If End If End Select - End Select + End Function @@ -286,7 +277,7 @@ Public Class cZollsysteme_Aktenbeschriftung ' Dim Währungsschlüssel As String = "900" 'Standard EUR ' Tabelle zsAnmValData lesen. - Dim DTzsAnmValData As DataTable = SQL.loadDgvBySql("SELECT InvCurr, InvVal" & + Dim DTzsAnmValData As DataTable = SQL.loadDgvBySql("SELECT TransacCd,TermDelCd,InvCurr, InvVal" & " FROM zsAnmValData" & " WHERE (LizenzNr = '" & DR_zsAnmRefs.Item("LizenzNr") & "') And (OperatorID = " & DR_zsAnmRefs.Item("OperatorID") & ") And (VorgangID = '" & DR_zsAnmRefs.Item("VorgangID") & "') And (AnmID = " & DR_zsAnmRefs.Item("AnmID") & ")", EZOLL_SQL) If DTzsAnmValData.Rows().Count > 0 Then @@ -299,6 +290,10 @@ Public Class cZollsysteme_Aktenbeschriftung 'End If ' fNEF.cbxWaehrung._value = DTzsAnmValData.Rows(0).Item("InvCurr") ' = DLookup("[Währungsschlüssel]", "Währungstabelle", "[Währungscode] = '" & DTzsAnmValData.Rows(0).Item("InvCurr") & "'") If Not IsNull(DTzsAnmValData.Rows(0).Item("InvVal")) Then Rechnungspreis = CDbl(DTzsAnmValData.Rows(0).Item("InvVal")) + If Not IsNull(DTzsAnmValData.Rows(0).Item("InvCurr")) Then Waehrungscode = DTzsAnmValData.Rows(0).Item("InvCurr") + If Not IsNull(DTzsAnmValData.Rows(0).Item("TermDelCd")) Then Incoterms = DTzsAnmValData.Rows(0).Item("TermDelCd") + If Not IsNull(DTzsAnmValData.Rows(0).Item("TransacCd")) Then Geschaeftsart = DTzsAnmValData.Rows(0).Item("TransacCd") + End If @@ -319,13 +314,48 @@ Public Class cZollsysteme_Aktenbeschriftung 'Dim pkAnz = SQL.DLookup("sum(cast(Nr as float))", "[zsAnmGdsItemPack]", "(LizenzNr = '" & DR_zsAnmRefs.Item("LizenzNr") & "') And (OperatorID = " & DR_zsAnmRefs.Item("OperatorID") & ") And (VorgangID = '" & DR_zsAnmRefs.Item("VorgangID") & "') And (AnmID = " & DR_zsAnmRefs.Item("AnmID") & ")", EZOLL_SQL, "") + + + ' Tabelle zsAnmEntryCO lesen. + Dim DTAnmEntryCO As DataTable = SQL.loadDgvBySql("SELECT Ref" & + " FROM zsAnmEntryCO" & + " WHERE (LizenzNr = '" & DR_zsAnmRefs.Item("LizenzNr") & "') And (OperatorID = " & DR_zsAnmRefs.Item("OperatorID") & ") And (VorgangID = '" & DR_zsAnmRefs.Item("VorgangID") & "') And (AnmID = " & DR_zsAnmRefs.Item("AnmID") & ")", EZOLL_SQL) + + If DTAnmEntryCO.Rows().Count > 0 Then + If Not IsNull(DTAnmEntryCO.Rows(0).Item("Ref")) Then Zollstelle_Eingang = DTAnmEntryCO.Rows(0).Item("Ref") + End If + + ' Tabelle zsAnmGdsitem lesen. - Dim DTzsAnmGdsitem As DataTable = SQL.loadDgvBySql("SELECT GdsDes" & + Dim DTzsAnmGdsitem As DataTable = SQL.loadDgvBySql("SELECT GdsItemID,ComCd, GdsDes,Net, ProcCd, Orig, Pref,ItVal" & " FROM zsAnmGdsitem" & " WHERE (LizenzNr = '" & DR_zsAnmRefs.Item("LizenzNr") & "') And (OperatorID = " & DR_zsAnmRefs.Item("OperatorID") & ") And (VorgangID = '" & DR_zsAnmRefs.Item("VorgangID") & "') And (AnmID = " & DR_zsAnmRefs.Item("AnmID") & ")" & " ORDER BY GdsItemID", EZOLL_SQL) If DTzsAnmGdsitem.Rows().Count > 0 Then + + initDTWarenpos() + + For Each row In DTzsAnmGdsitem.Rows + + Dim R As DataRow = dtWARENPOS.NewRow + If Not IsNull(row.Item("GdsItemID")) Then R("PosNr") = row.Item("GdsItemID") + If Not IsNull(row.Item("ComCd")) Then R("WarenNr") = row.Item("ComCd") + If Not IsNull(row.Item("GdsDes")) Then R("WarenBez") = row.Item("GdsDes") + If Not IsNull(row.Item("ProcCd")) Then R("Verfahren") = row.Item("ProcCd") + If Not IsNull(row.Item("Pref")) Then R("Preferenz") = row.Item("Pref") + If Not IsNull(row.Item("ItVal")) Then R("PosWert") = row.Item("ItVal") + If Not IsNull(row.Item("Net")) Then R("Netto") = row.Item("Net") + If Not IsNull(row.Item("Orig")) Then R("Herkunft") = row.Item("Orig") + + If Not IsNull(row.Item("ComCd")) AndAlso IsNumeric(row.Item("ComCd")) Then + R("isCBAM") = checkisCBAM(row.Item("ComCd")) + End If + + dtWARENPOS.Rows.Add(R) + + Next + If Not IsNull(DTzsAnmGdsitem.Rows(0).Item("GdsDes")) Then If IsNull(Warenbezeichung) Then Warenbezeichung = DTzsAnmGdsitem.Rows(0).Item("GdsDes") @@ -405,6 +435,42 @@ Public Class cZollsysteme_Aktenbeschriftung Return load_EZA_FromDAKOSY(EZA) End Function + Function checkisCBAM(cbamWarenNr As String) As Boolean + + If (Left(cbamWarenNr, 4) = "2523" Or + Left(cbamWarenNr, 4) = "2716" Or + Left(cbamWarenNr, 4) = "2808" Or + Left(cbamWarenNr, 4) = "2814" Or + Left(cbamWarenNr, 4) = "3102" Or + Left(cbamWarenNr, 4) = "3105" Or + Left(cbamWarenNr, 4) = "7201" Or + Left(cbamWarenNr, 4) = "7203" Or + Left(cbamWarenNr, 4) = "7318" Or + Left(cbamWarenNr, 6) = "283421" Or + Left(cbamWarenNr, 6) = "260112" Or + Left(cbamWarenNr, 6) = "720211" Or + Left(cbamWarenNr, 6) = "720219" Or + Left(cbamWarenNr, 6) = "720241" Or + Left(cbamWarenNr, 6) = "720249" Or + Left(cbamWarenNr, 6) = "720260" Or + Left(cbamWarenNr, 6) = "280410" Or + Left(cbamWarenNr, 4) = "7326" Or + Left(cbamWarenNr, 4) = "7601" Or + Left(cbamWarenNr, 4) = "7616" Or + Left(cbamWarenNr, 8) = "25070080" Or + CInt(Left(cbamWarenNr, 4)) <= 7301 And CInt(Left(cbamWarenNr, 4)) >= 7311 Or + CInt(Left(cbamWarenNr, 4)) <= 7205 And CInt(Left(cbamWarenNr, 4)) >= 7229 Or + CInt(Left(cbamWarenNr, 4)) <= 7603 And CInt(Left(cbamWarenNr, 4)) >= 7614) And Not Left(cbamWarenNr, 6) = "310560" Then + + Return True + + Else + + Return False + + End If + + End Function Function load_EZA_FromDAKOSY(EZA As DAKOSY_Worker.cDakosyEZA) As Boolean Try @@ -414,7 +480,7 @@ Public Class cZollsysteme_Aktenbeschriftung ' If IsNumeric(If(EZA.eza_GesamtRohmasse, "")) Then Me.Gewicht = CDbl(EZA.eza_GesamtRohmasse).ToString("N1") & " kg" : num_Gewicht = CDbl(EZA.eza_GesamtRohmasse).ToString("N1") If IsNumeric(If(EZA.eza_Rechnungspreis, "")) Then Me.Rechnungspreis = CDbl(EZA.eza_Rechnungspreis).ToString("N2") - Me.Rechnungspreis &= " " & If(EZA.eza_Rechnungswaehrung, "") + 'Me.Rechnungspreis &= " " & If(EZA.eza_Rechnungswaehrung, "") ATCMRN = If(EZA.eza_ANR, "") ' Me.Rechnungspreis &= " " & If(EZA.eza_Rechnungswaehrung, "") @@ -428,9 +494,33 @@ Public Class cZollsysteme_Aktenbeschriftung Dim Colli As Integer = 0 Dim cnt As Integer = 0 If EZA.eza_WARENPOS.Count > 0 Then + + initDTWarenpos() + Me.Warenbezeichung = EZA.eza_WARENPOS.Count & " POS: " Me.Warenbezeichung &= If(EZA.eza_WARENPOS.Count = 1, If(EZA.eza_WARENPOS(0).ezaWP_Warenbezeichnung, ""), "* diverse *") + For Each POS In EZA.eza_WARENPOS + + Dim R As DataRow = dtWARENPOS.NewRow + If Not IsNull(POS.ezaWP_PositionsNummer) Then R("PosNr") = POS.ezaWP_PositionsNummer + If Not IsNull(POS.ezaWP_WarennummerEZT) Then R("WarenNr") = POS.ezaWP_WarennummerEZT + If Not IsNull(POS.ezaWP_Warenbezeichnung) Then R("WarenBez") = POS.ezaWP_Warenbezeichnung + If Not IsNull(POS.ezaWP_AnmeldeVErfahren) Then R("Verfahren") = POS.ezaWP_AnmeldeVErfahren + If Not IsNull(POS.ezaWP_Artikelpreis) Then R("PosWert") = POS.ezaWP_Artikelpreis + If Not IsNull(POS.ezaWP_BeguenstigungBenatragtCode) Then R("Preferenz") = POS.ezaWP_BeguenstigungBenatragtCode + If Not IsNull(POS.ezaWP_UrsprungslandCode) Then R("Herkunft") = POS.ezaWP_UrsprungslandCode + If Not IsNull(POS.ezaWP_Rohmasse) Then R("Netto") = POS.ezaWP_Rohmasse + If Not IsNull(POS.ezaWP_WarennummerEZT) AndAlso IsNumeric(POS.ezaWP_WarennummerEZT) Then + R("isCBAM") = checkisCBAM(POS.ezaWP_WarennummerEZT) + + End If + + + + dtWARENPOS.Rows.Add(R) + + For Each UL In POS.ezaWP_UNTERLAGEN If UL.ezaWpUl_Art IsNot Nothing Then Select Case UL.ezaWpUl_Art @@ -469,7 +559,7 @@ Public Class cZollsysteme_Aktenbeschriftung Select Case AD.ezaAd_AdressTyp - Case "CZ" : Absender = ""'Anschrift --> nicht benötigt + Case "CZ" : Absender = Anschrift'Anschrift --> nicht benötigt Case "CN" : Empfaenger = Anschrift Case "DT" : Anmelder = Anschrift Case "CB" : Vertreter = "" ' Anschrift - -> nicht benötigt @@ -505,6 +595,14 @@ Public Class cZollsysteme_Aktenbeschriftung AbgabenKonto = listToString(AUFSCHUB_List) + If EZA.eza_ArtGeschaeftCode IsNot Nothing AndAlso EZA.eza_ArtGeschaeftCode <> "" Then Geschaeftsart = EZA.eza_ArtGeschaeftCode + + If EZA.eza_LieferbedingungCode IsNot Nothing AndAlso EZA.eza_LieferbedingungCode <> "" Then Incoterms = EZA.eza_LieferbedingungCode + + If EZA.eza_LieferbedingungCode IsNot Nothing AndAlso EZA.eza_LieferbedingungCode <> "" Then Incoterms = EZA.eza_LieferbedingungCode + If EZA.eza_LieferbedingungOrt IsNot Nothing AndAlso EZA.eza_LieferbedingungOrt <> "" AndAlso Incoterms <> "" Then Incoterms &= " " & EZA.eza_LieferbedingungOrt + + If EZA.eza_Rechnungswaehrung IsNot Nothing AndAlso EZA.eza_Rechnungswaehrung <> "" Then Waehrungscode = EZA.eza_Rechnungswaehrung Return True Catch ex As Exception @@ -991,25 +1089,25 @@ Public Class cZollsysteme_Aktenbeschriftung 'Frächter Dim DTzsAnmCarrier As DataTable = SQL.loadDgvBySql("SELECT * FROM [zsAnmCarrTra] WHERE (LizenzNr = '" & r.Item("LizenzNr") & "') And (OperatorID = " & r.Item("OperatorID") & ") And (VorgangID = '" & r.Item("VorgangID") & "') And (AnmID = " & AnmID & ")", "EZOLL") - If DTzsAnmCarrier.Rows().Count > 0 Then - VERAG_NCTS.NCTS_Data.Carrier.Name = DTzsAnmCarrier.Rows(0).Item("Na") - If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Pst")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.Postcode = DTzsAnmCarrier.Rows(0).Item("Pst") - If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Strt")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.Street = DTzsAnmCarrier.Rows(0).Item("Strt") - If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Cty")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.City = DTzsAnmCarrier.Rows(0).Item("Cty") - If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Ctry")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.Country = DTzsAnmCarrier.Rows(0).Item("Ctry") - If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("TIN")) Then VERAG_NCTS.NCTS_Data.Carrier.EORI = DTzsAnmCarrier.Rows(0).Item("TIN") - 'VERAG_NCTS.NCTS_Data.Carrier.EORI_NL = If(NCTS_TMP.ncts_Empfaenger_NLNR, "") - 'VERAG_NCTS.NCTS_Data.Carrier.UID_Nr = If(NCTS_TMP.ncts_Empfaenger_NLNR, "") - End If + If DTzsAnmCarrier.Rows().Count > 0 Then + VERAG_NCTS.NCTS_Data.Carrier.Name = DTzsAnmCarrier.Rows(0).Item("Na") + If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Pst")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.Postcode = DTzsAnmCarrier.Rows(0).Item("Pst") + If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Strt")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.Street = DTzsAnmCarrier.Rows(0).Item("Strt") + If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Cty")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.City = DTzsAnmCarrier.Rows(0).Item("Cty") + If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("Ctry")) Then VERAG_NCTS.NCTS_Data.Carrier.Adress.Country = DTzsAnmCarrier.Rows(0).Item("Ctry") + If Not SQL.IsNull(DTzsAnmCarrier.Rows(0).Item("TIN")) Then VERAG_NCTS.NCTS_Data.Carrier.EORI = DTzsAnmCarrier.Rows(0).Item("TIN") + 'VERAG_NCTS.NCTS_Data.Carrier.EORI_NL = If(NCTS_TMP.ncts_Empfaenger_NLNR, "") + 'VERAG_NCTS.NCTS_Data.Carrier.UID_Nr = If(NCTS_TMP.ncts_Empfaenger_NLNR, "") + End If - ' Tabelle zsAnmGrteeGrteeRef lesen. - Dim DTzsAnmGrteeGrteeRef As DataTable = SQL.loadDgvBySql("SELECT GRN, GVal" & + ' Tabelle zsAnmGrteeGrteeRef lesen. + Dim DTzsAnmGrteeGrteeRef As DataTable = SQL.loadDgvBySql("SELECT GRN, GVal" & " FROM zsAnmGrteeGrteeRef" & " WHERE (LizenzNr = '" & r.Item("LizenzNr") & "') And (OperatorID = " & r.Item("OperatorID") & ") And (VorgangID = '" & r.Item("VorgangID") & "') And (AnmID = " & AnmID & ")" & " ORDER BY GrteeID, GrteeRefID", "EZOLL") - If DTzsAnmGrteeGrteeRef.Rows().Count > 0 Then + If DTzsAnmGrteeGrteeRef.Rows().Count > 0 Then VERAG_NCTS.NCTS_Data.Guarantee.Amount = 0 For Each DTzsAnmGrteeGrteeRef_row In DTzsAnmGrteeGrteeRef.Rows() If Not SQL.IsNull(DTzsAnmGrteeGrteeRef_row.item("GRN")) Then VERAG_NCTS.NCTS_Data.Guarantee.GRN = DTzsAnmGrteeGrteeRef_row.item("GRN") @@ -1055,6 +1153,29 @@ Public Class cZollsysteme_Aktenbeschriftung End Function + Sub initDTWarenpos() + + If dtWARENPOS IsNot Nothing And Not dtWARENPOS.Columns.Contains("PosNr") Then + + dtWARENPOS.Columns.Add("PosNr", GetType(Integer)) + dtWARENPOS.Columns.Add("WarenNr", GetType(String)) + dtWARENPOS.Columns.Add("WarenBez", GetType(String)) + dtWARENPOS.Columns.Add("Verfahren", GetType(Integer)) + dtWARENPOS.Columns.Add("Preferenz", GetType(Integer)) + dtWARENPOS.Columns.Add("PosWert", GetType(Double)) + dtWARENPOS.Columns.Add("isCBAM", GetType(Boolean)) + dtWARENPOS.Columns.Add("Herkunft", GetType(String)) + dtWARENPOS.Columns.Add("Netto", GetType(Integer)) + + Else + + dtWARENPOS.Clear() + + End If + + + End Sub + Shared Function getGRTY_fromEZOLL(LRN As String) As String Try Return SQL.getValueTxtBySql("SELECT TOP 1 GRN FROM zsAnmRefs inner join zsAnmGrteeGrteeRef on zsAnmGrteeGrteeRef.AnmID=zsAnmRefs.AnmID WHERE (zsAnmRefs.VorgangID = 'AV') AND (LRN = '" & LRN & "')", "EZOLL") diff --git a/MailSender/MAILSender.vb b/MailSender/MAILSender.vb index 5647629..8fb3a4c 100644 --- a/MailSender/MAILSender.vb +++ b/MailSender/MAILSender.vb @@ -58,7 +58,7 @@ Module Mail ' PARAM = "NCTSLIST_TOBB" ' PARAM = "NCTSLIST_TOBB" '------------------------------------------------------------------------------------ - ' PARAM = "ZF" + 'PARAM = "ZF_QUARTER" If PARAM = "" Then System.Console.WriteLine("OPTION nicht erkannt!") @@ -274,13 +274,16 @@ Module Mail Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year) Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1) + + '--------ZF PASSAU------------ + Dim KdNr As String = "714869" If dtParam.Rows.Count = 1 Then System.Console.WriteLine("OPTION erkannt: " & dtParam.Rows(0).Item("ms_info")) System.Console.WriteLine("Auswertung Details gestartet...") - If SendEmail_ZF(dtParam.Rows(0).Item("ms_an"), KdNr, von, bis, dtParam.Rows(0).Item("ms_cc"), dtParam.Rows(0).Item("ms_bcc"), dtParam.Rows(0).Item("ms_subject"), dtParam.Rows(0).Item("ms_mailtext")) Then + If SendEmail_ZF(dtParam.Rows(0).Item("ms_an"), KdNr, von, bis, "monthly", dtParam.Rows(0).Item("ms_cc"), dtParam.Rows(0).Item("ms_bcc"), dtParam.Rows(0).Item("ms_subject"), dtParam.Rows(0).Item("ms_mailtext")) Then System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") End If @@ -288,7 +291,7 @@ Module Mail System.Console.WriteLine("OPTION erkannt: ZF _ Erstellt eine monaltiche Auswertung der DAKSOY-Abfertigungen für ZF.") System.Console.WriteLine("Auswertung Details gestartet...") - If SendEmail_ZF("robert.buchbauer@zf.com; teresa.elster@zf.com", KdNr, von, bis) Then + If SendEmail_ZF("robert.buchbauer@zf.com; teresa.elster@zf.com", KdNr, von, bis, "monthly") Then System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") End If @@ -309,7 +312,7 @@ Module Mail System.Console.WriteLine("OPTION erkannt: " & dtParam.Rows(0).Item("ms_info")) System.Console.WriteLine("Auswertung Details gestartet...") - If SendEmail_ZF(dtParam.Rows(0).Item("ms_an"), KdNr, von, bis, dtParam.Rows(0).Item("ms_cc"), dtParam.Rows(0).Item("ms_bcc"), dtParam.Rows(0).Item("ms_subject"), dtParam.Rows(0).Item("ms_mailtext")) Then + If SendEmail_ZF(dtParam.Rows(0).Item("ms_an"), KdNr, von, bis, "monthly", dtParam.Rows(0).Item("ms_cc"), dtParam.Rows(0).Item("ms_bcc"), dtParam.Rows(0).Item("ms_subject"), dtParam.Rows(0).Item("ms_mailtext")) Then System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") End If @@ -318,7 +321,7 @@ Module Mail System.Console.WriteLine("OPTION erkannt: ZF _ Erstellt eine monaltiche Auswertung der Abfertigungen für ZF.") System.Console.WriteLine("Auswertung Details gestartet...") - If SendEmail_ZF("teresa.elster@zf.com;manfred.lindbichler@zf.com;walter.gnadlinger@zf.com", KdNr, von, bis) Then + If SendEmail_ZF("teresa.elster@zf.com;manfred.lindbichler@zf.com;walter.gnadlinger@zf.com", KdNr, von, bis, "monthly") Then System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") End If @@ -326,6 +329,50 @@ Module Mail End If + Case "ZF_QUARTER" 'umgebaut auf neue Mailsender-Logik + + Dim quartal As Integer = ((Now.Month - 1) \ 3) + + Dim von = CDate("01." & (quartal - 1) * 3 + 1 & "." & Now.Year) + Dim bis = CDate(von.AddMonths(3).AddDays(-1)) + + + '--------ZF STEYR------------ + + + Dim KdNr As String = "764755" + + If dtParam.Rows.Count = 1 Then + + System.Console.WriteLine("OPTION erkannt: " & dtParam.Rows(0).Item("ms_info")) + System.Console.WriteLine("Auswertung Details gestartet...") + If SendEmail_ZF(dtParam.Rows(0).Item("ms_an"), KdNr, von, bis, "quarter", dtParam.Rows(0).Item("ms_cc"), dtParam.Rows(0).Item("ms_bcc"), dtParam.Rows(0).Item("ms_subject"), dtParam.Rows(0).Item("ms_mailtext")) Then + System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") + End If + + Else + + System.Console.WriteLine("OPTION erkannt: ZF _ Erstellt eine Auswertung pro Quartal aller Abfertigungen für ZF.") + System.Console.WriteLine("Auswertung Details gestartet...") + If SendEmail_ZF("d.breimaier@verag.ag; ml@verag.ag", KdNr, von, bis, "quarter") Then + System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") + End If + + + End If + + '--------ZF THYRNAU------------ + + KdNr = "718486" + 'NIX... + + '--------ZF PASSAU------------ + + KdNr = "714869" + 'NIX... + + + Case "QS_AUFTEILUNG" System.Console.WriteLine("OPTION erkannt: QS_AUFTEILUNG _ Erstellt die Auswertung der QS-AUFTEILUNG.") System.Console.WriteLine("Auswertung gestartet...") @@ -747,18 +794,18 @@ Module Mail Dim anhenge As New List(Of String) - anhenge.Add(excel) - If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False,, "d.breimaier@verag.ag;schulung@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 + anhenge.Add(excel) + If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False,, "d.breimaier@verag.ag;schulung@verag.ag", anhenge) Then + System.Console.WriteLine("E-Mail gesendet.") + System.Console.WriteLine("Erfolgreich!") Else - System.Console.WriteLine(excel) + 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) @@ -791,18 +838,18 @@ Module Mail Dim anhenge As New List(Of String) - anhenge.Add(excel) + anhenge.Add(excel) If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False, cc, bcc, anhenge) Then System.Console.WriteLine("E-Mail gesendet.") System.Console.WriteLine("Erfolgreich!") Else System.Console.WriteLine("ERROR BEIM SENDEN DER MAIL!") - End If + End If - Return True - Else - System.Console.WriteLine(excel) + 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) @@ -853,9 +900,9 @@ Module Mail End Try End Function - Private Function SendEmail_ZF(Mailto As String, KdNr As String, von As Date, bis As Date, Optional cc As String = "", Optional bcc As String = "", Optional Subject As String = "", Optional Body As String = "") As Boolean + Private Function SendEmail_ZF(Mailto As String, KdNr As String, von As Date, bis As Date, Auswertungstyp As String, Optional cc As String = "", Optional bcc As String = "", Optional Subject As String = "", Optional Body As String = "") As Boolean Try - Dim excel As String = genEXCEL_ZF(KdNr, von, bis) + Dim excel As String = genEXCEL_ZF(KdNr, von, bis, Auswertungstyp) System.Console.WriteLine("EXCEL erstellt...") If excel <> "" And Not excel.StartsWith("ERROR: ") Then @@ -867,35 +914,35 @@ Module Mail Case Else : Subject = "Auswertungen Zollanmeldungen ZF Friedrichshafen AG " End Select - + Else Subject = replaceBodyVariable(Subject, von, bis) End If If Body = "" Then - Body = "Anbei befinden sich die Auswertungen Zollanmeldungen von " & von.ToShortDateString & " bis " & bis.ToShortDateString & "." & + Body = "Anbei befinden sich die Auswertungen Zollanmeldungen von " & von.ToShortDateString & " bis " & bis.ToShortDateString & "." & "

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


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

VERAG SPEDITION AG" - Else - Body = replaceBodyVariable(Body, von, bis) - End If + Else + Body = replaceBodyVariable(Body, von, bis) + End If - Dim anhenge As New List(Of String) - anhenge.Add(excel) + Dim anhenge As New List(Of String) + anhenge.Add(excel) If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False, cc, bcc, anhenge) Then System.Console.WriteLine("E-Mail gesendet.") System.Console.WriteLine("Erfolgreich!") Else System.Console.WriteLine("ERROR BEIM SENDEN DER MAIL!") - End If + End If - Return True - Else - System.Console.WriteLine(excel) + 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) @@ -1836,10 +1883,10 @@ Module Mail Else System.Console.WriteLine("ERROR BEIM SENDEN DER MAIL!") - End If + End If + + Return True - 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) @@ -2191,7 +2238,7 @@ Module Mail End Function - Public Function genEXCEL_ZF(KdNr As String, von As Date, bis As Date) As String + Public Function genEXCEL_ZF(KdNr As String, von As Date, bis As Date, Auswertungstyp As String) As String Try Dim KUNDENADR = New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr) @@ -2204,7 +2251,7 @@ Module Mail ,BelegNr ,[FilialenNr],[AbfertigungsNr],Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung,Speditionsbuch.Zollsystem_Land FROM Speditionsbuch INNER JOIN [Abfertigungsarten] ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart - where EmpfängerKundenNr IN (" & KdNr & ") and Abfertigungsdatum BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And Speditionsbuch.Abfertigungsart IN (1,29,38)") + where EmpfängerKundenNr IN (" & KdNr & ") and VermittlerKundenNr IN (" & KdNr & ") and Abfertigungsdatum BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And Speditionsbuch.Abfertigungsart IN (1,29,38)") @@ -2219,62 +2266,206 @@ Module Mail Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet exclApp = CreateObject("Excel.Application") - With exclApp - .Visible = False - - Try - Path = sPath & "ZF_" & KdNr & "_" & von.ToShortDateString & " - " & bis.ToShortDateString & "" & ".xlsx" - While System.IO.File.Exists(Path) - Path = sPath & "ZF_" & KdNr & "_" & von.ToShortDateString & "-" & bis.ToShortDateString & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx" - End While - My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.RG_ZF, False) - Catch ex As System.Exception - ' MsgBox(ex.Message) - MsgBox("Error 01: " & ex.Message & vbNewLine & ex.StackTrace) + Select Case Auswertungstyp + Case "monthly" - Return "" - End Try + With exclApp + .Visible = False - Datei = .Workbooks.Open(Path) 'Anpassen - Blatt = Datei.Worksheets(1) 'Anpassen + Try + Path = sPath & "ZF_" & KdNr & "_" & von.ToShortDateString & " - " & bis.ToShortDateString & "" & ".xlsx" + While System.IO.File.Exists(Path) + Path = sPath & "ZF_" & KdNr & "_" & von.ToShortDateString & "-" & bis.ToShortDateString & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx" + End While + My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.RG_ZF, False) + Catch ex As System.Exception + ' MsgBox(ex.Message) + MsgBox("Error 01: " & ex.Message & vbNewLine & ex.StackTrace) - Blatt.Range("I1").Value = von.ToShortDateString & "-" & bis.ToShortDateString - Dim cnt = 3 - For Each r In dt.Rows - Blatt.Range("A" & cnt).Value = cnt - 2 - Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer") - ' Blatt.Range("C" & cnt).Value = r("RechnungsNr") - Blatt.Range("C" & cnt).Value = r("Abfertigungsdatum") - Blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung") - Blatt.Range("E" & cnt).Value = r("Absender") - Blatt.Range("F" & cnt).Value = "" 'r("Betrag") - Blatt.Range("H" & cnt).Value = r("BelegNr") + Return "" + End Try - VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" + Datei = .Workbooks.Open(Path) 'Anpassen + Blatt = Datei.Worksheets(1) 'Anpassen - Dim ZOLLANMELDUNG As New cZollsysteme_Aktenbeschriftung - Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "") - If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then - Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.Rechnungspreis - Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) - Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL - Blatt.Range("J" & cnt).Value = ZOLLANMELDUNG.ANZ_POS - If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then - Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.ATCMRN - End If - End If + Blatt.Range("I1").Value = von.ToShortDateString & "-" & bis.ToShortDateString + + Dim cnt = 3 + For Each r In dt.Rows + Blatt.Range("A" & cnt).Value = cnt - 2 + Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer") + ' Blatt.Range("C" & cnt).Value = r("RechnungsNr") + Blatt.Range("C" & cnt).Value = r("Abfertigungsdatum") + Blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung") + Blatt.Range("E" & cnt).Value = r("Absender") + Blatt.Range("F" & cnt).Value = "" 'r("Betrag") + Blatt.Range("H" & cnt).Value = r("BelegNr") + + VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" + + Dim ZOLLANMELDUNG As New cZollsysteme_Aktenbeschriftung + Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "") + If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then + Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.Rechnungspreis + Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine) + Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL + Blatt.Range("J" & cnt).Value = ZOLLANMELDUNG.ANZ_POS + If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then + Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.ATCMRN + End If + End If + + cnt += 1 + + Next + + Datei.Save() + .DisplayAlerts = False + .quit() + Try : Datei.close(True) : Catch : End Try + End With + + + Case "quarter" + + + With exclApp + .Visible = False + + Try + Path = sPath & "ZF_" & KdNr & "_" & von.ToShortDateString & " - " & bis.ToShortDateString & "" & ".xlsx" + While System.IO.File.Exists(Path) + Path = sPath & "ZF_" & KdNr & "_" & von.ToShortDateString & "-" & bis.ToShortDateString & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx" + End While + My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.RG_ZF_NEW, False) + Catch ex As System.Exception + ' MsgBox(ex.Message) + MsgBox("Error 01: " & ex.Message & vbNewLine & ex.StackTrace) + + + Return "" + End Try + + Datei = .Workbooks.Open(Path) 'Anpassen + Blatt = Datei.Worksheets(1) 'Anpassen + + + Dim cnt = 2 + + For Each r In dt.Rows + + Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung + + Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "") + If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then + + If ZOLLANMELDUNG.dtWARENPOS.Rows.Count > 0 Then + + Dim rowcounter As Integer = 0 + + For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows + + Dim ZollInProzent As Double = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.Rechnungspreis * 100 + + Blatt.Range("A" & cnt).Value = cnt - 1 + Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum") + Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr")) + Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger + Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr") + Blatt.Range("F" & cnt).Value = r("BelegNr") + Blatt.Range("G" & cnt).Value = row.Item("PosNr") + Blatt.Range("H" & cnt).Value = row.Item("WarenNr") + Blatt.Range("I" & cnt).Value = "-" + Blatt.Range("J" & cnt).Value = row.Item("WarenBez") + Blatt.Range("K" & cnt).Value = "" + Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Waehrungscode + Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart + Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang + Blatt.Range("O" & cnt).Value = "" + Blatt.Range("P" & cnt).Value = row.Item("Netto") + Blatt.Range("Q" & cnt).Value = row.Item("PosWert") + Blatt.Range("R" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_EUST, "") + Blatt.Range("S" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_ZOLL, "") + Blatt.Range("T" & cnt).Value = IIf(rowcounter = 0, ZollInProzent.ToString("N2") & " %", "") + Blatt.Range("U" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "") + Blatt.Range("V" & cnt).Value = ZOLLANMELDUNG.Absender + Blatt.Range("W" & cnt).Value = row.Item("Herkunft") + Blatt.Range("X" & cnt).Value = ZOLLANMELDUNG.Incoterms + Blatt.Range("Y" & cnt).Value = row.Item("Verfahren") + Blatt.Range("Z" & cnt).Value = row.Item("Preferenz") + Blatt.Range("AA" & cnt).Value = IIf(row.Item("isCBAM"), "Y", "N") + + If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("F" & cnt).Value = "" Then + Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ATCMRN + End If + + cnt += 1 + rowcounter += 1 + Next + + + Else + + Dim ZollInProzent As Double = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.Rechnungspreis * 100 + + Blatt.Range("A" & cnt).Value = cnt - 1 + Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum") + Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr")) + Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger + Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr") + Blatt.Range("F" & cnt).Value = r("BelegNr") + Blatt.Range("G" & cnt).Value = "" + Blatt.Range("H" & cnt).Value = "" + Blatt.Range("I" & cnt).Value = "-" + Blatt.Range("J" & cnt).Value = "" + Blatt.Range("K" & cnt).Value = "" + Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Waehrungscode + Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart + Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang + Blatt.Range("O" & cnt).Value = "" + Blatt.Range("P" & cnt).Value = "" + Blatt.Range("Q" & cnt).Value = "" + Blatt.Range("R" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST + Blatt.Range("S" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL + Blatt.Range("T" & cnt).Value = ZollInProzent.ToString("N2") & " %" + Blatt.Range("U" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "") + Blatt.Range("V" & cnt).Value = ZOLLANMELDUNG.Absender + Blatt.Range("W" & cnt).Value = "" + Blatt.Range("X" & cnt).Value = ZOLLANMELDUNG.Incoterms + Blatt.Range("Y" & cnt).Value = "" + Blatt.Range("Z" & cnt).Value = "" + Blatt.Range("AA" & cnt).Value = "" + + + If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("F" & cnt).Value = "" Then + Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ATCMRN + End If + cnt += 1 + End If + + + + End If + + Next + + + + Datei.Save() + .DisplayAlerts = False + .quit() + Try : Datei.close(True) : Catch : End Try + + End With + + + + End Select - cnt += 1 - Next - Datei.Save() - .DisplayAlerts = False - .quit() - Try : Datei.close(True) : Catch : End Try - End With 'Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, "Report Data_" & KUNDENADR.FullName & "_" & von.ToShortDateString & "-" & bis.ToShortDateString) diff --git a/MailSender/MailSender.vbproj b/MailSender/MailSender.vbproj index af52273..135e095 100644 --- a/MailSender/MailSender.vbproj +++ b/MailSender/MailSender.vbproj @@ -130,6 +130,7 @@ Always + diff --git a/MailSender/My Project/Resources.Designer.vb b/MailSender/My Project/Resources.Designer.vb index e533f9e..00c3826 100644 --- a/MailSender/My Project/Resources.Designer.vb +++ b/MailSender/My Project/Resources.Designer.vb @@ -109,5 +109,15 @@ Namespace My.Resources Return CType(obj,Byte()) End Get End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[]. + ''' + Friend ReadOnly Property RG_ZF_NEW() As Byte() + Get + Dim obj As Object = ResourceManager.GetObject("RG_ZF_NEW", resourceCulture) + Return CType(obj,Byte()) + End Get + End Property End Module End Namespace diff --git a/MailSender/My Project/Resources.resx b/MailSender/My Project/Resources.resx index 770048e..f3e09a1 100644 --- a/MailSender/My Project/Resources.resx +++ b/MailSender/My Project/Resources.resx @@ -133,4 +133,7 @@ ..\Resources\RG_ZF.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\RG_ZF_NEW.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/MailSender/Resources/RG_ZF_NEW.xlsx b/MailSender/Resources/RG_ZF_NEW.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b753d89270b2a282318f30a71378b01296424ac7 GIT binary patch literal 10318 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 literal 0 HcmV?d00001