diff --git a/MailSender/MAILSender.vb b/MailSender/MAILSender.vb index c223c91..166d270 100644 --- a/MailSender/MAILSender.vb +++ b/MailSender/MAILSender.vb @@ -4,6 +4,7 @@ Imports System.Data.SqlClient Imports ClosedXML.Excel Imports DocumentFormat Imports System.Net +Imports DAKOSY_Worker Module Mail Dim sPath As String = System.AppDomain.CurrentDomain.BaseDirectory @@ -69,6 +70,7 @@ Module Mail 'PARAM = "THYSSENKRUPP_AUSWERTUNG" 'PARAM = "RED_BULL" + 'PARAM = "ZF" '------------------------------------------------------------------------------------ ' PARAM = "NCTSLIST_TOBB" @@ -97,7 +99,7 @@ Module Mail ' cnt += 1 'End While If cnt >= 20 Then - System.Console.WriteLine("MailSender konnte nicht gestartet werden, da eine Insatanz noch läuft...") + System.Console.WriteLine("MailSender konnte nicht gestartet werden, da eine Instanz noch läuft...") Else 'Select Case firma @@ -205,6 +207,16 @@ Module Mail If SendEmail_RED_BULL("customs.documents.ata@redbull.com", KdNr, von, bis) Then 'für Andreas Details System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") End If + Case "ZF" + Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year) + Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1) + + Dim KdNr As String = "714869" + 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; christina.eggerl@zf.com; teresa.elster@zf.com", KdNr, von, bis) Then + System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") + End If Case "QS_AUFTEILUNG" System.Console.WriteLine("OPTION erkannt: QS_AUFTEILUNG _ Erstellt die Auswertung der QS-AUFTEILUNG.") System.Console.WriteLine("Auswertung gestartet...") @@ -556,6 +568,43 @@ Module Mail End Try End Function + Private Function SendEmail_ZF(Mailto As String, KdNr As String, von As Date, bis As Date) As Boolean + Try + Dim excel As String = genEXCEL_ZF(KdNr, von, bis) + System.Console.WriteLine("EXCEL erstellt...") + If excel <> "" And Not excel.StartsWith("ERROR: ") Then + + System.Console.WriteLine("Sende E-Mail...") + + Dim Subject = "Auswertungen Zollanmeldungen ZF Friedrichshafen AG " + Dim 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" + + + Dim anhenge As New List(Of String) + anhenge.Add(excel) + If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False,, "d.breimaier@verag.ag;ra@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_BRG_Auswertung(Optional wochenAuswertung As Boolean = False, Optional details As Boolean = False) As Boolean Dim Msg As New MailMessage Dim myCredentials As New System.Net.NetworkCredential @@ -1375,6 +1424,97 @@ Module Mail End Function + + Public Function genEXCEL_ZF(KdNr As String, von As Date, bis As Date) As String + Try + + Dim KUNDENADR = New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr) + Dim sqlstr As String = "" + + sqlstr &= "SELECT CAST([FilialenNr] as varchar) + '/' + CAST([AbfertigungsNr] as varchar) Abfertigungsnummer,cast([Abfertigungsdatum] as date)Abfertigungsdatum,Absender,Rechnungsbetrag Betrag ,BelegNr,[FilialenNr],[AbfertigungsNr],Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung" + sqlstr &= " FROM Speditionsbuch INNER JOIN [Abfertigungsarten] ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart" + sqlstr &= " where EmpfängerKundenNr IN (" & KdNr & ") and Abfertigungsdatum BETWEEN '" & von.ToShortDateString & "' AND '" & bis.ToShortDateString & "' And Speditionsbuch.Abfertigungsart IN (1,29)" + + Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr) + + + Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\" + If Not My.Computer.FileSystem.DirectoryExists(sPath) Then + My.Computer.FileSystem.CreateDirectory(sPath) + End If + + Dim Path = "" + Dim exclApp As Object 'as Application + Dim Datei As Object 'as WorkBook + 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_" & von.ToShortDateString & "-" & bis.ToShortDateString & "" & " .xlsx" + While System.IO.File.Exists(Path) + Path = sPath & "ZF_" & 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) + + + Return "" + End Try + + Datei = .Workbooks.Open(Path) 'Anpassen + Blatt = Datei.Worksheets(1) 'Anpassen + + 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 + If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False) 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 + End If + + 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) + Dim filepath = Path + If filepath = "" Then Return "ERROR 01: Fehler beim Erzeugen des XLS." + + Return filepath + Catch ex As System.Exception + ' MsgBox(ex.Message) + Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace + End Try + + End Function + Private Sub releaseObject(ByVal obj As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) @@ -1417,7 +1557,7 @@ Module Mail .Visible = False Dim filepath = sPath & "CS_Auswertung.xlsx" Try - My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.cs_Aufteilung, False) + My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.CS_Aufteilung, False) Catch ex As System.Exception ' MsgBox(ex.Message) Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace @@ -1563,7 +1703,7 @@ Module Mail .Visible = False Dim filepath = sPath & "\Depot.xlsx" Try - My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.depot, False) + My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.Depot, False) Catch ex As System.Exception ' MsgBox(ex.Message) Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace diff --git a/MailSender/MailSender.vbproj b/MailSender/MailSender.vbproj index 0275e9e..c471987 100644 --- a/MailSender/MailSender.vbproj +++ b/MailSender/MailSender.vbproj @@ -128,6 +128,7 @@ Always + @@ -137,6 +138,10 @@ {a3b497bd-842c-4a2b-b398-ed1976849df1} VERAG_PROG_ALLGEMEIN + + {50E8E49B-4FD9-4DD4-B159-BDC2B7D0E94F} + DAKOSY_Worker_lib + {6eb4d3a4-3cf2-4651-9af9-ad5f727df403} ADMIN diff --git a/MailSender/My Project/Resources.Designer.vb b/MailSender/My Project/Resources.Designer.vb index fde27c0..e533f9e 100644 --- a/MailSender/My Project/Resources.Designer.vb +++ b/MailSender/My Project/Resources.Designer.vb @@ -22,7 +22,7 @@ Namespace My.Resources ''' ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. ''' - _ @@ -99,5 +99,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() As Byte() + Get + Dim obj As Object = ResourceManager.GetObject("RG_ZF", 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 5798ab4..770048e 100644 --- a/MailSender/My Project/Resources.resx +++ b/MailSender/My Project/Resources.resx @@ -130,4 +130,7 @@ ..\Resources\QS_Aufteilung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\RG_ZF.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/UID/Dienstplan/frmDienstplanVariabel.vb b/UID/Dienstplan/frmDienstplanVariabel.vb index 409878f..4546368 100644 --- a/UID/Dienstplan/frmDienstplanVariabel.vb +++ b/UID/Dienstplan/frmDienstplanVariabel.vb @@ -899,7 +899,7 @@ Public Class frmDienstplanVariabel Try entryId_TMP = entryId - Dim row As DataRow = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info as dstma_kuerzel,dstetr_info,dstma_id, dstetr_von,dstetr_bis,dstetr_art,dstetr_pause,dstetr_datum,dstma_mitId, dstetr_splitschicht FROM tblDienstplanEintraege, tblDienstMitarb, tblMitarbeiter WHERE dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId AND dstetr_id='" & entryId & "'").Rows(0) + Dim row As DataRow = SQLDienst.loadDGV("SELECT dstetr_id, dstma_kuerzel + ' '+ dstetr_info as dstma_kuerzel,dstetr_info,dstma_id, dstetr_von,dstetr_bis,dstetr_art,dstetr_pause,dstetr_datum,dstma_mitId, dstetr_splitschicht, dstma_land FROM tblDienstplanEintraege, tblDienstMitarb, tblMitarbeiter WHERE dstetr_dstmaId=dstma_id AND mit_id=dstma_mitId AND dstetr_id='" & entryId & "'").Rows(0) TextBox1.Text = row("dstetr_von").ToString TextBox2.Text = row("dstetr_bis").ToString @@ -909,8 +909,8 @@ Public Class frmDienstplanVariabel - Dim tatStd As Double = SQLDienst.getDstStunden(row("dstma_id").ToString, row("dstetr_datum").ToString, row("dstetr_datum").ToString, niederlassung) - Dim schichtStd As Double = SQLDienst.getDstStunden(row("dstma_id").ToString, row("dstetr_datum").ToString, row("dstetr_datum").ToString, niederlassung, True) + Dim tatStd As Double = SQLDienst.getDstStunden(row("dstma_id").ToString, row("dstetr_datum").ToString, row("dstetr_datum").ToString, niederlassung, row("dstma_land").ToString) + Dim schichtStd As Double = SQLDienst.getDstStunden(row("dstma_id").ToString, row("dstetr_datum").ToString, row("dstetr_datum").ToString, niederlassung, row("dstma_land").ToString, True) txtWoStd.Text = tatStd txtSchichtstd.Text = schichtStd @@ -921,7 +921,7 @@ Public Class frmDienstplanVariabel Label32.Text = CDate(row("dstetr_datum")).ToShortDateString - lblMAInfo.Text = row("dstma_kuerzel").ToString + lblMAInfo.Text = row("dstma_kuerzel").ToString & "(" & row("dstma_id").ToString & ")" aktMitarbeiterEintrag = row("dstetr_id").ToString If row("dstetr_art").ToString.Contains("NACHT") Then Button9.Visible = True diff --git a/UID/Dienstplan/frmDiestAddMa.vb b/UID/Dienstplan/frmDiestAddMa.vb index d45cc38..5d04bfa 100644 --- a/UID/Dienstplan/frmDiestAddMa.vb +++ b/UID/Dienstplan/frmDiestAddMa.vb @@ -58,6 +58,7 @@ Public Class frmDiestAddMa cboLand.Items.Clear() cboLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT", "AT")) cboLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE")) + cboLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("GB", "GB")) diff --git a/UID/Dienstplan/usrCntlDienstplan.vb b/UID/Dienstplan/usrCntlDienstplan.vb index b019cd7..38aa4e6 100644 --- a/UID/Dienstplan/usrCntlDienstplan.vb +++ b/UID/Dienstplan/usrCntlDienstplan.vb @@ -437,7 +437,7 @@ Public Class usrCntlDienstplan Dim tatStd As Double = 0 If arbeit Then - tatStd = SQLDienst.getDstStunden(MA_DST.dstma_id, datum, datum, niederlassung) + tatStd = SQLDienst.getDstStunden(MA_DST.dstma_id, datum, datum, niederlassung, MA_DST.dstma_land) tatStdSum += tatStd End If @@ -501,7 +501,7 @@ Public Class usrCntlDienstplan If groupKW Then Dim sollStd As Double = cPF.getWochenstunden(STD_LIST, MA_DST.dstma_wochenStunden, datumMO, SCHICHT, MA_DST.dstma_mitId, MA_DST.dstma_muster, MA_DST.dstma_WEStdRegelAZ, MA_DST.dstma_arbvh, niederlassung, MA_DST.dstma_TzFeiertageStd, MA_DST.dstma_4wo) - Dim tatStd As Double = SQLDienst.getDstStunden(MA_DST.dstma_id, datumMO, datumMO.AddDays(6), niederlassung) + Dim tatStd As Double = SQLDienst.getDstStunden(MA_DST.dstma_id, datumMO, datumMO.AddDays(6), niederlassung, MA_DST.dstma_land) rpt.txtSumWoStunden.Text = CDbl(tatStd).ToString("N2") rpt.txtWoStd.Text = CDbl(sollStd * -1).ToString("N2") diff --git a/UID/Dienstplan/usrcntlDienstplanStunden.vb b/UID/Dienstplan/usrcntlDienstplanStunden.vb index da12415..cd604f3 100644 --- a/UID/Dienstplan/usrcntlDienstplanStunden.vb +++ b/UID/Dienstplan/usrcntlDienstplanStunden.vb @@ -99,7 +99,7 @@ Public Class usrcntlDienstplanStunden Wochenstunden = cPF.getWochenstunden(STD_LIST, Wochenstunden, datum, SCHICHT, r.Cells("dstma_id").Value, ma.dstma_muster, ma.dstma_WEStdRegelAZ, ma.dstma_arbvh, niederlassung, ma.dstma_TzFeiertageStd, ma.dstma_4wo) 'Hier wird berechnet wie viele Std tastächlich gearbeitet wurden: - Dim tatStd As Double = SQLDienst.getDstStunden(r.Cells("dstma_id").Value, datum_montag, datum_montag.AddDays(6), niederlassung) + Dim tatStd As Double = SQLDienst.getDstStunden(r.Cells("dstma_id").Value, datum_montag, datum_montag.AddDays(6), niederlassung, ma.dstma_land) r.Cells("stundenBerechnet").Value = (Wochenstunden) diff --git a/UID/Mitarbeiter/frmMitarbTimas.Designer.vb b/UID/Mitarbeiter/frmMitarbTimas.Designer.vb index 3dc014d..7f6c51d 100644 --- a/UID/Mitarbeiter/frmMitarbTimas.Designer.vb +++ b/UID/Mitarbeiter/frmMitarbTimas.Designer.vb @@ -43,8 +43,6 @@ Partial Class frmMitarbTimas Me.txtInfo = New System.Windows.Forms.TextBox() Me.lblInfo = New System.Windows.Forms.Label() Me.lkl = New System.Windows.Forms.LinkLabel() - Me.Label8 = New System.Windows.Forms.Label() - Me.txtPwd = New System.Windows.Forms.TextBox() Me.Label6 = New System.Windows.Forms.Label() Me.txtTelNr = New System.Windows.Forms.TextBox() Me.cbxEinsteigsDat = New System.Windows.Forms.CheckBox() @@ -80,6 +78,7 @@ Partial Class frmMitarbTimas Me.GroupBox3 = New System.Windows.Forms.GroupBox() Me.dgvData = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.Button1 = New System.Windows.Forms.Button() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.Panel1.SuspendLayout() Me.GroupBox2.SuspendLayout() @@ -175,6 +174,7 @@ Partial Class frmMitarbTimas ' 'GroupBox2 ' + Me.GroupBox2.Controls.Add(Me.Button1) Me.GroupBox2.Controls.Add(Me.txtLohn) Me.GroupBox2.Controls.Add(Me.lblLohnNr) Me.GroupBox2.Controls.Add(Me.cbxAccount) @@ -185,8 +185,6 @@ Partial Class frmMitarbTimas Me.GroupBox2.Controls.Add(Me.txtInfo) Me.GroupBox2.Controls.Add(Me.lblInfo) Me.GroupBox2.Controls.Add(Me.lkl) - Me.GroupBox2.Controls.Add(Me.Label8) - Me.GroupBox2.Controls.Add(Me.txtPwd) Me.GroupBox2.Controls.Add(Me.Label6) Me.GroupBox2.Controls.Add(Me.txtTelNr) Me.GroupBox2.Controls.Add(Me.cbxEinsteigsDat) @@ -295,36 +293,18 @@ Partial Class frmMitarbTimas ' Me.lkl.AutoSize = True Me.lkl.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lkl.Location = New System.Drawing.Point(347, 36) + Me.lkl.Location = New System.Drawing.Point(266, 55) Me.lkl.Name = "lkl" Me.lkl.Size = New System.Drawing.Size(35, 13) Me.lkl.TabIndex = 117 Me.lkl.TabStop = True Me.lkl.Text = "Reset" ' - 'Label8 - ' - Me.Label8.AutoSize = True - Me.Label8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label8.Location = New System.Drawing.Point(206, 55) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(146, 13) - Me.Label8.TabIndex = 114 - Me.Label8.Text = "(erst bei Doppelklick sichtbar)" - ' - 'txtPwd - ' - Me.txtPwd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtPwd.Location = New System.Drawing.Point(204, 52) - Me.txtPwd.Name = "txtPwd" - Me.txtPwd.Size = New System.Drawing.Size(178, 20) - Me.txtPwd.TabIndex = 115 - ' 'Label6 ' Me.Label6.AutoSize = True Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label6.Location = New System.Drawing.Point(202, 36) + Me.Label6.Location = New System.Drawing.Point(202, 55) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(53, 13) Me.Label6.TabIndex = 116 @@ -674,6 +654,18 @@ Partial Class frmMitarbTimas Me.TabControl1.Size = New System.Drawing.Size(546, 242) Me.TabControl1.TabIndex = 123 ' + 'Button1 + ' + Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Button1.BackColor = System.Drawing.Color.White + Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button1.Location = New System.Drawing.Point(418, 15) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(128, 23) + Me.Button1.TabIndex = 88 + Me.Button1.Text = "aus AVISO laden" + Me.Button1.UseVisualStyleBackColor = False + ' 'frmMitarbTimas ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -740,8 +732,6 @@ Partial Class frmMitarbTimas Friend WithEvents txtInfo As TextBox Friend WithEvents lblInfo As Label Friend WithEvents lkl As LinkLabel - Friend WithEvents Label8 As Label - Friend WithEvents txtPwd As TextBox Friend WithEvents Label6 As Label Friend WithEvents txtTelNr As TextBox Friend WithEvents cbxEinsteigsDat As CheckBox @@ -758,4 +748,5 @@ Partial Class frmMitarbTimas Private WithEvents GroupBox3 As GroupBox Friend WithEvents TabControl1 As TabControl Friend WithEvents dgvData As VERAG_PROG_ALLGEMEIN.MyDatagridview + Friend WithEvents Button1 As Button End Class diff --git a/UID/Mitarbeiter/frmMitarbTimas.vb b/UID/Mitarbeiter/frmMitarbTimas.vb index e924d60..41a4ba4 100644 --- a/UID/Mitarbeiter/frmMitarbTimas.vb +++ b/UID/Mitarbeiter/frmMitarbTimas.vb @@ -5,6 +5,7 @@ Imports System.IO Imports System.Net Imports System.Net.Http Imports System.Net.WebRequestMethods +Imports System.Security.Cryptography Imports System.Security.Policy Imports System.Text Imports System.Text.RegularExpressions @@ -20,6 +21,7 @@ Imports VERAG_PROG_ALLGEMEIN Public Class frmMitarbTimas + Private avisoEmp As VERAG_PROG_ALLGEMEIN.cMitarbeiter Public mid As Integer = -1 Public isUpdate As Boolean = False Dim emp As cTimasEmployee @@ -38,11 +40,8 @@ Public Class frmMitarbTimas Private Sub frmMitarbDetails_Load(sender As Object, e As EventArgs) Handles MyBase.Load - txtPwd.Visible = False cbxEinsteigsDat.Checked = False cbxGebDat.Checked = False - - txtGebDat.Format = DateTimePickerFormat.Custom txtGebDat.CustomFormat = "dd.MM.yyyy" datGekuendigtAm.Format = DateTimePickerFormat.Custom @@ -58,9 +57,10 @@ Public Class frmMitarbTimas End If End Sub - Private Sub initMitarbeiter(Optional _isUpdate As Boolean = True) + Private Sub initMitarbeiter(mid As Integer, Optional _isUpdate As Boolean = False) timas = New cTimasAPI emp = timas.getEmployee(mid) + avisoEmp = New VERAG_PROG_ALLGEMEIN.cMitarbeiter(emp.externid) timas.getAllGroups(dtTimas) @@ -71,7 +71,7 @@ Public Class frmMitarbTimas txtUsername.Text = emp.login txtVname.Text = emp.firstname txtNname.Text = emp.lastname - txtPwd.Text = emp.password + 'txtPwd.Text = emp.password If emp.gender = "male" Then rbtnGeschlechtM.Checked = True If emp.gender = "female" Then rbtnGeschlechtW.Checked = True @@ -137,7 +137,7 @@ Public Class frmMitarbTimas Private Sub getMitarbeiter() emp.login = txtUsername.Text - emp.password = txtPwd.Text + 'emp.password = txtPwd.Text If rbtnGeschlechtM.Checked Then emp.gender = "male" If rbtnGeschlechtW.Checked Then emp.gender = "female" emp.firstname = txtVname.Text @@ -161,7 +161,6 @@ Public Class frmMitarbTimas 'mitarbeiter.mit_TESTonly = cbxTestaccount.Checked If checkMandatoryFields() Then timas.updateEmployee(emp, dgvData) - End If @@ -169,10 +168,6 @@ Public Class frmMitarbTimas End Sub - Private Sub Label8_Click_1(sender As Object, e As EventArgs) - txtPwd.Visible = True - Label8.Visible = False - End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) If txtVname.Text = "" And txtNname.Text = "" Then MsgBox("Bitte geben Sie einen Namen ein!") : Exit Sub @@ -208,13 +203,31 @@ Public Class frmMitarbTimas End Sub Private Sub lkl_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lkl.LinkClicked - If vbYes = MsgBox("Möchten Sie das Kennwort wirklich zurücksetzen? " & vbNewLine & "Der Benutzer wird beim nächsten Login zur Eingabe aufgefordert.", vbYesNoCancel) Then - ' txtPwd.Text = "0000" - getMitarbeiter() - emp.password = "null" - If checkMandatoryFields() Then - timas.updateEmployee(emp, Nothing) + If vbYes = MsgBox("Möchten Sie das Kennwort neu setzen?", vbYesNoCancel) Then + If vbYes = MsgBox("Möchten Sie den Kennwort aus AVISO/SQL übernehmen?", vbYesNoCancel) Then + If avisoEmp IsNot Nothing AndAlso avisoEmp.mit_pwd <> "" Then + emp.password = avisoEmp.mit_pwd + If checkMandatoryFields() Then + timas.updateEmployee(emp, Nothing) + Exit Sub + End If + Else + MsgBox("Mitarbeiter-PW konnte konnten nicht aus AVISO geladen werden!") + End If End If + + + Dim input = InputBox("Neues Passwort:", "Passwort anlegen") + If input <> "" Then + getMitarbeiter() + emp.password = input + If checkMandatoryFields() Then + timas.updateEmployee(emp, Nothing) + End If + Else + MsgBox("Passwort wurde nicht neu vergeben!") + End If + End If End Sub @@ -312,7 +325,20 @@ Public Class frmMitarbTimas End If End Sub + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - + If vbYes = MsgBox("Möchten Sie Daten aus AVISO/SQL übernehmen?", vbYesNo) Then + If avisoEmp IsNot Nothing AndAlso avisoEmp.mit_username <> "" Then + txtUsername.Text = avisoEmp.mit_username + If txtInfo.Text = "" Then + txtInfo.Text = avisoEmp.mit_firma & " - " & avisoEmp.mit_abteilung + End If + cbxAccount.Checked = True + getMitarbeiter() + Else + MsgBox("Mitarbeiterdaten konnten nicht aus AVISO geladen werden!") + End If + End If + End Sub End Class diff --git a/UID/cProgramFunctions.vb b/UID/cProgramFunctions.vb index daaf15b..2f73cbf 100644 --- a/UID/cProgramFunctions.vb +++ b/UID/cProgramFunctions.vb @@ -1090,7 +1090,7 @@ Public Class cProgramFunctions ' MsgBox(Wochenstunden) Wochenstunden = cPF.getWochenstunden(STD_LIST, Wochenstunden, datum, SCHICHT, r("dstma_id"), ma.dstma_muster, ma.dstma_WEStdRegelAZ, ma.dstma_arbvh, niederlassung, ma.dstma_TzFeiertageStd, ma.dstma_4wo) - Dim tatStd As Double = SQLDienst.getDstStunden(r("dstma_id"), datum_montag, datum_montag.AddDays(6), niederlassung) + Dim tatStd As Double = SQLDienst.getDstStunden(r("dstma_id"), datum_montag, datum_montag.AddDays(6), niederlassung, ma.dstma_land) ' : ANDERES ERG"""""!!!!!!!!!!!!!!!!!!!! ' Wochenstunden = cPF.getWochenstunden(Wochenstunden, datum, SCHICHT, r.Cells("dstma_id").Value, ma.dstma_muster, ma.dstma_WEStdRegelAZ, ma.dstma_arbvh, niederlassung) diff --git a/UID/cSqlDb.vb b/UID/cSqlDb.vb index ac8e6dc..97a0d85 100644 --- a/UID/cSqlDb.vb +++ b/UID/cSqlDb.vb @@ -4084,7 +4084,7 @@ Public Class cDienstplan Return False End Function - Public Function getDstStunden(maId As Integer, datum_von As Date, datum_bis As Date, niederlassung As String, Optional onlySplitschichten As Boolean = False) As Double + Public Function getDstStunden(maId As Integer, datum_von As Date, datum_bis As Date, niederlassung As String, Optional land As String = "", Optional onlySplitschichten As Boolean = False) As Double Try Dim stunden As Double Dim rgx As New Regex("^\d{2}:\d{2}$") @@ -4137,12 +4137,12 @@ Public Class cDienstplan 'End If If cPF.isValidTime(von) And cPF.isValidTime(bis) Then ' Wenn Format stimmt - s += cPF.getDiff(von, bis, niederlassung, (FT.isFeiertag(datum, cDienstSettings.getLand(niederlassung)) Or woTag = "SO")) + s += cPF.getDiff(von, bis, niederlassung, (FT.isFeiertag(datum, IIf(land <> "", land, cDienstSettings.getLand(niederlassung))) Or woTag = "SO")) If IsNumeric(dr.Item("dstetr_pause")) Then s -= CDbl(dr.Item("dstetr_pause")) 'Wenn Feiertag oder Sonntag, werden die Stunden (von-bis) doppelt gerechent, also müssen die Pausenstunden doppelt abgezoben werden: - If (FT.isFeiertag(datum, cDienstSettings.getLand(niederlassung)) Or woTag = "SO") Then s -= CDbl(dr.Item("dstetr_pause")) + If (FT.isFeiertag(datum, IIf(land <> "", land, cDienstSettings.getLand(niederlassung))) Or woTag = "SO") Then s -= CDbl(dr.Item("dstetr_pause")) End If Else diff --git a/UID/frmERS.vb b/UID/frmERS.vb index a5dbfef..27567e5 100644 --- a/UID/frmERS.vb +++ b/UID/frmERS.vb @@ -16,7 +16,7 @@ Private Sub frmERS_Load(sender As Object, e As EventArgs) Handles MyBase.Load lblProgramm.Text = progId & " - " & progName & IIf(progVersion <> "", " (" & progVersion & ")", "") - lblFirma.Text = firma + lblFirma.Text = IIf(firma IsNot DBNull.Value, firma, "") txtUser.Text = maId & " " & userName txtType.Text = type txtMethode.Text = errMethodName diff --git a/UID/usrCntlAPI.Designer.vb b/UID/usrCntlAPI.Designer.vb index a4476e5..e36853a 100644 --- a/UID/usrCntlAPI.Designer.vb +++ b/UID/usrCntlAPI.Designer.vb @@ -26,6 +26,7 @@ Partial Class usrCntlAPI Me.SplitContainer = New System.Windows.Forms.SplitContainer() Me.pnlSearch = New System.Windows.Forms.Panel() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.Button1 = New System.Windows.Forms.Button() Me.Label11 = New System.Windows.Forms.Label() Me.txtZollBelegNr = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.Label10 = New System.Windows.Forms.Label() @@ -79,7 +80,6 @@ Partial Class usrCntlAPI Me.Panel3 = New System.Windows.Forms.Panel() Me.Button10 = New System.Windows.Forms.Button() Me.Button11 = New System.Windows.Forms.Button() - Me.Button1 = New System.Windows.Forms.Button() CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer.Panel1.SuspendLayout() Me.SplitContainer.Panel2.SuspendLayout() @@ -184,6 +184,18 @@ Partial Class usrCntlAPI Me.SplitContainer1.SplitterDistance = 125 Me.SplitContainer1.TabIndex = 0 ' + 'Button1 + ' + Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button1.Location = New System.Drawing.Point(850, 122) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(162, 52) + Me.Button1.TabIndex = 53 + Me.Button1.Text = "API Verwaltung" + Me.Button1.UseVisualStyleBackColor = True + ' 'Label11 ' Me.Label11.AutoSize = True @@ -945,18 +957,6 @@ Partial Class usrCntlAPI Me.Button11.TabIndex = 4 Me.Button11.UseVisualStyleBackColor = True ' - 'Button1 - ' - Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.Button1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button1.Location = New System.Drawing.Point(850, 122) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(162, 52) - Me.Button1.TabIndex = 53 - Me.Button1.Text = "API Verwaltung" - Me.Button1.UseVisualStyleBackColor = True - ' 'usrCntlAPI ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) diff --git a/UID/usrCntlAPI.vb b/UID/usrCntlAPI.vb index 5cb60c6..92f6e1b 100644 --- a/UID/usrCntlAPI.vb +++ b/UID/usrCntlAPI.vb @@ -267,4 +267,18 @@ Public Class usrCntlAPI Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click End Sub + + Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click + srcTAG = srcTAG.AddDays(-1) + initBtns("Tag") + End Sub + + Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click + srcTAG = srcTAG.AddDays(1) + initBtns("Tag") + End Sub + + Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click + initBtns("Tag") + End Sub End Class diff --git a/UID/usrCntlERS.Designer.vb b/UID/usrCntlERS.Designer.vb index a9eabd4..fa7a7c9 100644 --- a/UID/usrCntlERS.Designer.vb +++ b/UID/usrCntlERS.Designer.vb @@ -26,6 +26,9 @@ Partial Class usrCntlERS Me.SplitContainer = New System.Windows.Forms.SplitContainer() Me.pnlSearch = New System.Windows.Forms.Panel() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.txtFehlersuche = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.cbxTestSys = New System.Windows.Forms.CheckBox() Me.Label9 = New System.Windows.Forms.Label() Me.txtUser = New VERAG_PROG_ALLGEMEIN.KdSearchBox() Me.cboType = New VERAG_PROG_ALLGEMEIN.MyComboBox() @@ -61,7 +64,6 @@ Partial Class usrCntlERS Me.Panel3 = New System.Windows.Forms.Panel() Me.Button10 = New System.Windows.Forms.Button() Me.Button11 = New System.Windows.Forms.Button() - Me.cbxTestSys = New System.Windows.Forms.CheckBox() CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer.Panel1.SuspendLayout() Me.SplitContainer.Panel2.SuspendLayout() @@ -117,6 +119,8 @@ Partial Class usrCntlERS ' 'SplitContainer1.Panel1 ' + Me.SplitContainer1.Panel1.Controls.Add(Me.txtFehlersuche) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label2) Me.SplitContainer1.Panel1.Controls.Add(Me.cbxTestSys) Me.SplitContainer1.Panel1.Controls.Add(Me.Label9) Me.SplitContainer1.Panel1.Controls.Add(Me.txtUser) @@ -148,10 +152,56 @@ Partial Class usrCntlERS Me.SplitContainer1.SplitterDistance = 125 Me.SplitContainer1.TabIndex = 0 ' + 'txtFehlersuche + ' + Me.txtFehlersuche._DateTimeOnly = False + Me.txtFehlersuche._numbersOnly = False + Me.txtFehlersuche._numbersOnlyKommastellen = "" + Me.txtFehlersuche._numbersOnlyTrennzeichen = True + Me.txtFehlersuche._Prozent = False + Me.txtFehlersuche._ShortDateNew = False + Me.txtFehlersuche._ShortDateOnly = False + Me.txtFehlersuche._TimeOnly = False + Me.txtFehlersuche._TimeOnly_Seconds = False + Me.txtFehlersuche._value = "" + Me.txtFehlersuche._Waehrung = False + Me.txtFehlersuche._WaehrungZeichen = True + Me.txtFehlersuche.ForeColor = System.Drawing.Color.Black + Me.txtFehlersuche.Location = New System.Drawing.Point(532, 79) + Me.txtFehlersuche.MaxLineLength = -1 + Me.txtFehlersuche.MaxLines_Warning = "" + Me.txtFehlersuche.MaxLines_Warning_Label = Nothing + Me.txtFehlersuche.Name = "txtFehlersuche" + Me.txtFehlersuche.Size = New System.Drawing.Size(217, 20) + Me.txtFehlersuche.TabIndex = 52 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(449, 83) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(72, 13) + Me.Label2.TabIndex = 51 + Me.Label2.Text = "Fehlersuche*:" + ' + 'cbxTestSys + ' + Me.cbxTestSys.AutoSize = True + Me.cbxTestSys.BackColor = System.Drawing.Color.White + Me.cbxTestSys.Checked = True + Me.cbxTestSys.CheckState = System.Windows.Forms.CheckState.Indeterminate + Me.cbxTestSys.Location = New System.Drawing.Point(487, 3) + Me.cbxTestSys.Name = "cbxTestSys" + Me.cbxTestSys.Size = New System.Drawing.Size(79, 17) + Me.cbxTestSys.TabIndex = 50 + Me.cbxTestSys.Text = "Testsystem" + Me.cbxTestSys.ThreeState = True + Me.cbxTestSys.UseVisualStyleBackColor = False + ' 'Label9 ' Me.Label9.AutoSize = True - Me.Label9.Location = New System.Drawing.Point(330, 62) + Me.Label9.Location = New System.Drawing.Point(449, 39) Me.Label9.Name = "Label9" Me.Label9.Size = New System.Drawing.Size(32, 13) Me.Label9.TabIndex = 47 @@ -176,7 +226,7 @@ Partial Class usrCntlERS Me.txtUser.KdNr = "-1" Me.txtUser.kdNrField = Nothing Me.txtUser.KdNrNullInt = Nothing - Me.txtUser.Location = New System.Drawing.Point(368, 58) + Me.txtUser.Location = New System.Drawing.Point(532, 35) Me.txtUser.Name = "txtUser" Me.txtUser.nurAktive = False Me.txtUser.searchActive = True @@ -193,7 +243,7 @@ Partial Class usrCntlERS Me.cboType.DropDownWidth = 250 Me.cboType.Font = New System.Drawing.Font("Microsoft Tai Le", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.cboType.FormattingEnabled = True - Me.cboType.Location = New System.Drawing.Point(451, 30) + Me.cboType.Location = New System.Drawing.Point(333, 79) Me.cboType.Name = "cboType" Me.cboType.Size = New System.Drawing.Size(105, 22) Me.cboType.TabIndex = 42 @@ -202,7 +252,7 @@ Partial Class usrCntlERS ' Me.Label6.AutoSize = True Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label6.Location = New System.Drawing.Point(448, 12) + Me.Label6.Location = New System.Drawing.Point(330, 61) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(35, 13) Me.Label6.TabIndex = 41 @@ -462,7 +512,7 @@ Partial Class usrCntlERS Me.cboFirma.DropDownWidth = 250 Me.cboFirma.Font = New System.Drawing.Font("Microsoft Tai Le", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.cboFirma.FormattingEnabled = True - Me.cboFirma.Location = New System.Drawing.Point(575, 26) + Me.cboFirma.Location = New System.Drawing.Point(334, 124) Me.cboFirma.Name = "cboFirma" Me.cboFirma.Size = New System.Drawing.Size(104, 22) Me.cboFirma.TabIndex = 20 @@ -471,7 +521,7 @@ Partial Class usrCntlERS ' Me.Label1.AutoSize = True Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.Location = New System.Drawing.Point(572, 8) + Me.Label1.Location = New System.Drawing.Point(331, 106) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(37, 13) Me.Label1.TabIndex = 6 @@ -633,20 +683,6 @@ Partial Class usrCntlERS Me.Button11.TabIndex = 4 Me.Button11.UseVisualStyleBackColor = True ' - 'cbxTestSys - ' - Me.cbxTestSys.AutoSize = True - Me.cbxTestSys.BackColor = System.Drawing.Color.White - Me.cbxTestSys.Checked = True - Me.cbxTestSys.CheckState = System.Windows.Forms.CheckState.Indeterminate - Me.cbxTestSys.Location = New System.Drawing.Point(530, 64) - Me.cbxTestSys.Name = "cbxTestSys" - Me.cbxTestSys.Size = New System.Drawing.Size(79, 17) - Me.cbxTestSys.TabIndex = 50 - Me.cbxTestSys.Text = "Testsystem" - Me.cbxTestSys.ThreeState = True - Me.cbxTestSys.UseVisualStyleBackColor = False - ' 'usrCntlERS ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -711,4 +747,6 @@ Partial Class usrCntlERS Friend WithEvents txtUser As VERAG_PROG_ALLGEMEIN.KdSearchBox Friend WithEvents lblErgebnis As Label Friend WithEvents cbxTestSys As CheckBox + Friend WithEvents Label2 As Label + Friend WithEvents txtFehlersuche As VERAG_PROG_ALLGEMEIN.MyTextBox End Class diff --git a/UID/usrCntlERS.vb b/UID/usrCntlERS.vb index f099d60..5da1b01 100644 --- a/UID/usrCntlERS.vb +++ b/UID/usrCntlERS.vb @@ -23,7 +23,7 @@ Public Class usrCntlERS txtUser.initKdBox(Me.FindForm) ' initKdAbsender() - cboFirma.fillWithSQL("SELECT [Firma_Bez] FROM [tblFirma] ", False, "FMZOLL", True) + cboFirma.fillWithSQL("SELECT distinct(isnull(ers_Firma,'')) FROM [tblERS] ", False, "ADMIN", True) cboDatum.Items.Clear() cboDatum.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Error-Datum", "EDat")) @@ -121,7 +121,7 @@ Public Class usrCntlERS Dim sqlstr As String = "" Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "") - sqlstr &= "SELECT " & TopMax & " [ers_id],[ers_progId],[ers_progName],[ers_progVersion],[ers_datetime],[ers_Testsystem],[ers_Type],[ers_EMail],[ers_maId],[ers_userName],[ers_Firma],[ers_errCode],[ers_errStack],[ers_errMessage],[ers_errMethodName],[ers_infotext] + sqlstr &= "SELECT " & TopMax & " [ers_id],[ers_progId],[ers_progName],[ers_progVersion],[ers_datetime],[ers_errCode],[ers_errStack],[ers_errMessage],[ers_errMethodName],[ers_Testsystem],[ers_Type],[ers_EMail],[ers_maId],[ers_userName],[ers_Firma],[ers_infotext] FROM [tblERS] WHERE 1=1 " With DataGridView @@ -175,13 +175,11 @@ Public Class usrCntlERS '.Columns("RechnungAn").HeaderText = "Rechnung an" '.Columns("RechnungAn").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - ''.Columns("Absender").MinimumWidth = 150 - ''.Columns("Absender").HeaderText = "Absender" - ''.Columns("Absender").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .Columns("ers_errStack").MinimumWidth = 150 + .Columns("ers_errStack").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - '.Columns("Vermittler").MinimumWidth = 150 - '.Columns("Vermittler").HeaderText = "Auftraggeber" - '.Columns("Vermittler").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .Columns("ers_errMessage").MinimumWidth = 150 + .Columns("ers_errMessage").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill ''.Columns("Empfänger").MinimumWidth = 150 ''.Columns("Empfänger").HeaderText = "Empfänger" @@ -226,6 +224,10 @@ Public Class usrCntlERS sqlstr &= " AND [ers_Testsystem] = @ersTestsystem " End If + If txtFehlersuche.Text <> "" Then + sqlstr &= " AND ([ers_errStack] like '" & txtFehlersuche.Text.Replace("*", "%") & "' Or [ers_errMessage] like '" & txtFehlersuche.Text.Replace("*", "%") & "' OR [ers_errMethodName] like '" & txtFehlersuche.Text.Replace("*", "%") & "') " + + End If Return sqlstr End Function @@ -270,4 +272,27 @@ Public Class usrCntlERS sender.RELOAD() Me.Cursor = Cursors.Default End Sub + + Private Sub txtFehlersuche_KeyDown(sender As Object, e As KeyEventArgs) Handles txtFehlersuche.KeyDown + If e.KeyCode = Keys.Enter Then + + Me.btnSuche_Click(sender, e) + e.Handled = True + End If + + End Sub + + Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click + srcTAG = srcTAG.AddDays(-1) + initBtns("Tag") + End Sub + + Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click + srcTAG = srcTAG.AddDays(1) + initBtns("Tag") + End Sub + + Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click + initBtns("Tag") + End Sub End Class diff --git a/initATLASAufschubkonten/cAsfinag.vb b/initATLASAufschubkonten/cAsfinag.vb index faf57b2..b050bce 100644 --- a/initATLASAufschubkonten/cAsfinag.vb +++ b/initATLASAufschubkonten/cAsfinag.vb @@ -1,13 +1,18 @@ Imports System.Data.SqlClient +Imports System.Data.SqlTypes +Imports System.Diagnostics.Eventing Imports System.IO Imports System.Reflection Imports System.Security.Cryptography Imports com.itextpdf.text.pdf Imports DocumentFormat.OpenXml.VariantTypes Imports RoutineManager.cAsfinag +Imports VERAG_PROG_ALLGEMEIN Public Class cAsfinag + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + Public Class CLFHeader Property PKFileName As Object = Nothing @@ -154,6 +159,10 @@ Public Class cAsfinag Property status As Object = Nothing Property contractDate As Object = Nothing Property PKLine As Long + Property engineCharacteristics As Integer + Property CO2EmissionsClass As Integer + Property contractType As Integer + Public hasEntry = False @@ -180,7 +189,9 @@ Public Class cAsfinag list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("emissionCategory", emissionCategory)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("status", status)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("contractDate", contractDate)) - + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("engineCharacteristics", engineCharacteristics)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("CO2EmissionsClass", CO2EmissionsClass)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("contractType", contractType)) Return list End Function @@ -272,6 +283,148 @@ Public Class cAsfinag + End Class + + Public Class CLFArchiv + + Property PKFileName As Object = Nothing + Property RecordType As String + Property fileVersion As Integer + Property fileNumber As Integer + Property cardNumber As String + Property validTo As Integer + Property OBUID As Object = Nothing + Property vehicleLicensePlate As Object = Nothing + Property nationality As Object = Nothing + Property vehicleCategory As Object = Nothing + Property emissionCategory As Object = Nothing + Property status As Object = Nothing + Property contractDate As Object = Nothing + Property PKLine As Long + Property engineCharacteristics As Integer + Property CO2EmissionsClass As Integer + Property contractType As Integer + + + Public hasEntry = False + + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + + Sub New(PKFileName, OBUID) + Me.PKFileName = PKFileName + Me.OBUID = OBUID + LOAD() + End Sub + Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKFileName", PKFileName)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKLine", PKLine)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RecordType", RecordType)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("cardNumber", cardNumber)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("validTo", validTo)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OBUID", OBUID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vehicleLicensePlate", vehicleLicensePlate)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("nationality", nationality)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vehicleCategory", vehicleCategory)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("emissionCategory", emissionCategory)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("status", status)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("contractDate", contractDate)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("engineCharacteristics", engineCharacteristics)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("CO2EmissionsClass", CO2EmissionsClass)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("contractType", contractType)) + + Return list + End Function + + Public Function SAVE() As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM CLFArchiv WHERE PKFileName=@PKFileName AND OBUID = @OBUID) " & + " BEGIN " & getUpdateCmd() & " End " & + " Else " & + " BEGIN " & getInsertCmd() & " End " & + " commit tran " + + Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) + End Function + + Public Sub LOAD() + Try + hasEntry = False + Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() + Using cmd As New SqlCommand("Select * FROM CLFArchiv WHERE PKFileName=@PKFileName AND OBUID = @OBUID ", conn) + cmd.Parameters.AddWithValue("@PKFileName", PKFileName) + cmd.Parameters.AddWithValue("@OBUID", OBUID) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + For Each li In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable) + + If dr.Item(li.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(li.Text)) + End If + + Next + hasEntry = True + End If + dr.Close() + End Using + End Using + Catch ex As Exception + MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + End Sub + + + + Public Function getUpdateCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim str As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + Return (" UPDATE [CLFArchiv] SET " & str & " WHERE PKFileName=@PKFileName AND OBUID = @OBUID ") + + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + + + Public Function getInsertCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Dim str As String = "" + Dim values As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "]," + values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + values = values.Substring(0, values.Length - 1) 'wg. ',' + Return (" INSERT INTO CLFArchiv (" & str & ") VALUES(" & values & ") ") + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + + + + + End Class Public Class CLFTrailer @@ -393,6 +546,7 @@ Public Class cAsfinag Public Class TTRHeader Property PKFileName As Object = Nothing + Property PKHistory As Integer Property recordType As Integer Property fileVersion As Integer Property fileNumber As Integer @@ -408,14 +562,16 @@ Public Class cAsfinag Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL - Sub New(PKFileName, filenummer) + Sub New(PKFileName, filenummer, PKHistory) Me.PKFileName = PKFileName Me.fileNumber = filenummer + Me.PKHistory = PKHistory LOAD() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKFileName", PKFileName)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKHistory", PKHistory)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileNumber", fileNumber)) @@ -433,22 +589,32 @@ Public Class cAsfinag Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM TTRHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM TTRHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber AND PKHistory = @PKHistory) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & - " BEGIN " & getInsertCmd() & " End " & - " commit tran " + " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function + + Public Function UPDATE(OldKHistory As Integer) As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim sqlstr = " BEGIN TRAN" & getUpdateCmd(OldKHistory) & " commit tran " + + Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) + End Function + + Public Sub LOAD() Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() - Using cmd As New SqlCommand("Select * FROM TTRHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber ", conn) + Using cmd As New SqlCommand("Select * FROM TTRHeader WHERE PKFileName=@PKFileName AND fileNumber = @fileNumber AND PKHistory = @PKHistory ", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) cmd.Parameters.AddWithValue("@fileNumber", fileNumber) + cmd.Parameters.AddWithValue("@PKHistory", PKHistory) Dim dr = cmd.ExecuteReader() If dr.Read Then For Each li In getParameterList() @@ -473,7 +639,7 @@ Public Class cAsfinag - Public Function getUpdateCmd() As String + Public Function getUpdateCmd(Optional OldKHistory As Integer = Nothing) As String Try Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() @@ -484,7 +650,12 @@ Public Class cAsfinag End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' - Return (" UPDATE [TTRHeader] SET " & str & " WHERE PKFileName=@PKFileName AND filenumber = @filenumber") + If OldKHistory >= 0 Then + Return " UPDATE [TTRHeader] SET " & str & " WHERE PKFileName=@PKFileName AND filenumber = @filenumber AND PKHistory = " & OldKHistory + Else + Return " UPDATE [TTRHeader] SET " & str & " WHERE PKFileName=@PKFileName AND filenumber = @filenumber" + End If + Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) @@ -519,6 +690,7 @@ Public Class cAsfinag Property PKFileName As Object = Nothing Property recordType As Integer + Property PKHistory As Integer Property fileVersion As Integer Property siteId As String Property fileNumber As Integer @@ -538,6 +710,7 @@ Public Class cAsfinag Property driverId As Integer Property receiptNumber As String Property OBUID As String + Property abrechnungsdatum As Object = Nothing Public hasEntry = False @@ -547,14 +720,16 @@ Public Class cAsfinag End Sub - Sub New(PKFileName, PKLine) + Sub New(PKFileName, PKLine, PKHistory) Me.PKFileName = PKFileName Me.PKLine = PKLine + Me.PKHistory = PKHistory LOAD() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKFileName", PKFileName)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKHistory", PKHistory)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKLine", PKLine)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) @@ -575,6 +750,7 @@ Public Class cAsfinag list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VATamount", VATamount)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("receiptNumber", receiptNumber)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OBUID", OBUID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("abrechnungsdatum", abrechnungsdatum)) Return list End Function @@ -582,11 +758,10 @@ Public Class cAsfinag Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM TTRBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM TTRBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine AND PKHistory = @PKHistory) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & - " BEGIN " & getInsertCmd() & " End " & - " commit tran " + " BEGIN " & getInsertCmd() & " End " & " commit tran " Return SQL.doSQLVarList(sqlstr, "ASFINAG", , list) End Function @@ -595,9 +770,10 @@ Public Class cAsfinag Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() - Using cmd As New SqlCommand("Select * FROM TTRBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine ", conn) + Using cmd As New SqlCommand("Select * FROM TTRBody WHERE PKFileName=@PKFileName AND PKLine = @PKLine AND PKHistory = @PKHistory ", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) cmd.Parameters.AddWithValue("@PKLine", PKLine) + cmd.Parameters.AddWithValue("@PKHistory", PKHistory) Dim dr = cmd.ExecuteReader() If dr.Read Then For Each li In getParameterList() @@ -633,7 +809,7 @@ Public Class cAsfinag End If Next str = str.Substring(0, str.Length - 1) 'wg. ',' - Return (" UPDATE [TTRBody] SET " & str & " WHERE PKFileName=@PKFileName AND PKLine = @PKLine ") + Return (" UPDATE [TTRBody] SET " & str & " WHERE PKFileName=@PKFileName AND PKLine = @PKLine AND PKHistory = @PKHistory") Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) @@ -671,6 +847,7 @@ Public Class cAsfinag Public Class TTRTrailer Property PKFileName As Object = Nothing + Property PKHistory As Integer Property recordType As Integer Property fileVersion As Integer Property recordCount As Integer @@ -681,13 +858,15 @@ Public Class cAsfinag Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL - Sub New(PKFileName) + Sub New(PKFileName, PKHistory) Me.PKFileName = PKFileName + Me.PKHistory = PKHistory LOAD() End Sub Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKFileName", PKFileName)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PKHistory", PKHistory)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordType", recordType)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fileVersion", fileVersion)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("recordCount", recordCount)) @@ -700,7 +879,7 @@ Public Class cAsfinag Public Function SAVE() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM TTRTrailer WHERE PKFileName=@PKFileName) " & + Dim sqlstr = " BEGIN TRAN If EXISTS(Select * FROM TTRTrailer WHERE PKFileName=@PKFileName AND PKHistory = @PKHistory) " & " BEGIN " & getUpdateCmd() & " End " & " Else " & " BEGIN " & getInsertCmd() & " End " & @@ -713,8 +892,9 @@ Public Class cAsfinag Try hasEntry = False Using conn As SqlConnection = SQL.GetNewOpenConnectionAsfinag() - Using cmd As New SqlCommand("Select * FROM TTRTrailer WHERE PKFileName=@PKFileName", conn) + Using cmd As New SqlCommand("Select * FROM TTRTrailer WHERE PKFileName=@PKFileName AND PKHistory = @PKHistory", conn) cmd.Parameters.AddWithValue("@PKFileName", PKFileName) + cmd.Parameters.AddWithValue("@PKHistory", PKHistory) Dim dr = cmd.ExecuteReader() If dr.Read Then For Each li In getParameterList() @@ -855,60 +1035,25 @@ Public Class cAsfinag End Structure - - ' Private Type TWLHeader ' Format Muss von bis Kommentar - ' SortField As String * 3 ' N3 Y 1 3 "000" - ' RecordID As String * 2 ' N2 Y 4 5 "00" - ' FileName As String * 3 ' C3 Y 6 8 "TWL" - ' LiveTestIndicator As String * 1 ' C1 Y 9 9 "L" oder "T" - ' FileCreationDate As String * 8 ' N8 Y 10 17 YYYYMMDD - ' FileCreationTime As String * 4 ' N4 Y 18 21 HHMM (24hr) - ' RunNumber As String * 3 ' N3 Y 22 24 Laufende Nummer pro File-Type - ' SenderID As String * 2 ' C2 Y 25 26 "VG" - ' ReceiverID As String * 2 ' C2 Y 27 28 "EP" - ' Filler As String * 56 ' C56 Y 29 84 Leerzeichen - 'End Type - - 'Private Type TWLBody ' Format Muss von bis Kommentar - ' SortField As String * 3 ' N3 Y 1 3 "000" - ' RecordID As String * 2 ' N2 Y 4 5 "40" - ' ISOCountryCode As String * 3 ' N3 Y 6 8 "040" (Österreich) - ' CardNumber As String * 22 ' N22 Y 9 30 Komplette Tankkartennummer - ' ValidFrom As String * 8 ' N8 Y 31 38 YYYYMMDD - ' ValidTo As String * 8 ' N8 Y 39 46 YYYYMMDD - ' NewCardNumber As String * 22 ' N22 N 47 68 Tankkartennummer der Folge- oder Ersatzkarte - ' NewValidFrom As String * 8 ' N8 N 69 76 YYYYMMDD der Folge- oder Ersatzkarte - ' NewValidTo As String * 8 ' N8 N 77 84 YYYYMMDD der Folge- oder Ersatzkarte - 'End Type - - 'Private Type TWLTrailer ' Format Muss von bis Kommentar - ' SortField As String * 3 ' N3 Y 1 3 "999" - ' RecordID As String * 2 ' N2 Y 4 5 "99" - ' FileName As String * 3 ' C3 Y 6 8 "TWL" - ' RunNumber As String * 3 ' N3 Y 9 11 Gleiche Nr. wie im Header - ' RecordCount As String * 7 ' N7 Y 12 18 Anzahl der Sätze inkl. Header und Trailer - ' Filler As String * 66 ' C66 Y 19 84 Leerzeichen - 'End Type - - - - Dim ASFINAG_PFAD, FTP_PFAD_TEST, FTP_PFAD + Dim VERARBEITUNG_PFAD, ARCHIV_PFAD, BEREITSTELLUNG_PFAD, ERROR_PFAD, FTP_PFAD_TEST, FTP_PFAD Dim sw As StreamWriter Dim Dateiname = "" - Public Function initPFad() + Public Function initExportPfade() - ASFINAG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("BEREITSTELLUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + ERROR_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + BEREITSTELLUNG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("BEREITSTELLUNG_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + ARCHIV_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ARCHIV_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + VERARBEITUNG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("VERARBEITUNG_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) FTP_PFAD_TEST = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_Out_Test", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) FTP_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_Out", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - If Not IO.Directory.Exists(ASFINAG_PFAD) Then IO.Directory.CreateDirectory(ASFINAG_PFAD) + If Not IO.Directory.Exists(VERARBEITUNG_PFAD) Then IO.Directory.CreateDirectory(VERARBEITUNG_PFAD) If Not IO.Directory.Exists(FTP_PFAD_TEST) Then IO.Directory.CreateDirectory(FTP_PFAD_TEST) - - End Function + Public Function exportiereBlackList() As Boolean Dim fileName = "TBL" @@ -948,7 +1093,7 @@ Public Class cAsfinag preFilename = "TVGEP" End If - Dim strFile As String = ASFINAG_PFAD & "\" & preFilename & fileName & "." & currentFileNr + Dim strFile As String = BEREITSTELLUNG_PFAD & "\" & preFilename & fileName & "." & currentFileNr Try @@ -1071,7 +1216,7 @@ Public Class cAsfinag preFilename = "TVGEP" End If - Dim strFile As String = ASFINAG_PFAD & "\" & preFilename & fileName & "." & currentFileNr + Dim strFile As String = BEREITSTELLUNG_PFAD & "\" & preFilename & fileName & "." & currentFileNr Try @@ -1197,13 +1342,13 @@ Public Class cAsfinag If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then - SERVER_Path = Me.FTP_PFAD_TEST + SERVER_Path = FTP_PFAD_TEST Else - SERVER_Path = Me.FTP_PFAD + SERVER_Path = FTP_PFAD End If - For Each f In IO.Directory.GetFiles(ASFINAG_PFAD) + For Each f In IO.Directory.GetFiles(BEREITSTELLUNG_PFAD) Dim fi As New IO.FileInfo(f) If Not fi.Name.StartsWith(".") AndAlso fi.Name.Contains(filename) Then @@ -1211,9 +1356,9 @@ Public Class cAsfinag 'While IO.File.Exists(zielPfad) ' zielPfad = SERVER_Path & "\" & Now.ToString("yyyyMMdd_HHmmss_") & fi.Name 'End While - IO.File.Copy(f, zielPfad & "\" & fi.Name) - If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then - If IO.File.Exists(zielPfad) Then IO.File.Delete(f) + IO.File.Copy(f, zielPfad & "\" & fi.Name, True) + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM And IO.File.Exists(zielPfad & "\" & fi.Name) Then + IO.File.Move(BEREITSTELLUNG_PFAD & "\" & fi.Name, ARCHIV_PFAD & "\" & fi.Name) End If cnt += 1 End If @@ -1232,6 +1377,507 @@ Public Class cAsfinag End Function + + End Class + Public VERARBEITUNG_PFAD + Public ARCHIV_PFAD + Public BEREITSTELLUNG_PFAD + Public ERROR_PFAD + Public FTP_PFAD_TEST + Public FTP_PFAD + Dim Dateiname = "" + + Public Function initImportPfade() + + ERROR_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + BEREITSTELLUNG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("BEREITSTELLUNG_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + ARCHIV_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ARCHIV_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + VERARBEITUNG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("VERARBEITUNG_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + FTP_PFAD_TEST = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_In_Test", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + FTP_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_In", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) + + If Not IO.Directory.Exists(VERARBEITUNG_PFAD) Then IO.Directory.CreateDirectory(VERARBEITUNG_PFAD) + If Not IO.Directory.Exists(FTP_PFAD_TEST) Then IO.Directory.CreateDirectory(FTP_PFAD_TEST) + + End Function + + Function getNachrichtenDatenFromFTP(ByRef filenameList As List(Of String), ByVal fileType As String) As Integer + Dim cnt = 0 + Try + Dim SERVERPath = "" + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + + SERVERPath = Me.FTP_PFAD_TEST + Else + + SERVERPath = Me.FTP_PFAD + End If + + + For Each f In IO.Directory.GetFiles(SERVERPath) + Dim fi As New IO.FileInfo(f) + If fi.Name.ToLower.Contains(fileType) Then + If Not fi.Name.StartsWith(".") Then + Dim zielPfad = VERARBEITUNG_PFAD & "\" & fi.Name + While IO.File.Exists(zielPfad) + zielPfad = VERARBEITUNG_PFAD & "\" & "DOPPELT" & "\" & fi.Name.Replace(fi.Extension, "") & fi.Extension & Now.ToString("_yyyyMMdd_HHmmss") + End While + IO.File.Copy(f, zielPfad) + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + If IO.File.Exists(zielPfad) Then IO.File.Delete(f) + End If + + Dim filename = frmStartOptions.cut_file((New FileInfo(zielPfad)).Name) + If filename.ToLower.Contains(fileType) Then + filenameList.Add(filename) + cnt += 1 + End If + + End If + End If + + Next + + + Return cnt + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + Return cnt + End Function + + Public Function readAndSaveCLF(objFileRead As StreamReader, fi As FileInfo) As Boolean + + + + Dim booHeaderVorhanden = False + Dim booPrüfziffernfehler = False + Dim booInTransaktion = False + Dim booTrailerVorhanden = False + + Dim lngRecordCount As Long + + 'Datei auf Fehler prüfen! + Do While (objFileRead.Peek() > -1) + Dim strZeile = objFileRead.ReadLine() + lngRecordCount = lngRecordCount + 1 + + Select Case Mid(strZeile, 1, 2) + Case "10" + booHeaderVorhanden = True + Case "20" + ' Meldung bei nicht vorhandenen Haeder. + If Not booHeaderVorhanden Then + MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") + objFileRead.Close() + Return False + End If + + 'CardNumber prüfen. + If (Right(Trim(Mid(strZeile, 9, 22)), 1)) <> cAsfinag.fktMod10Prüfziffer(Left(Trim(Mid(strZeile, 9, 22)), Len(Trim(Mid(strZeile, 9, 22))) - 1)) Then + booPrüfziffernfehler = True + End If + + ' Meldung bei Prüfziffernfehler. + If booPrüfziffernfehler Then + MsgBox("Prüfziffernfehler in Zeile " & CStr(lngRecordCount) & vbCrLf & "Datei kann nicht verarbeitet werden. " & vbNewLine & " " & fi.Name.ToString) + booInTransaktion = False + Return False + + End If + Case "90" + ' Meldung bei nicht vorhandenen Haeder. + If Not booHeaderVorhanden Then + MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") + objFileRead.Close() + Return False + End If + + booTrailerVorhanden = True + Dim clfTrailer As New cAsfinag.CLFTrailer(fi.Name) + + ' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer. + If Trim(Mid(strZeile, 9, 7)) <> (lngRecordCount) Then + MsgBox("Fehler: " & vbNewLine & "Prüfsumme in der Datei stimmt nicht mit der Zeilenanzahl der Datei überein! " & vbNewLine & "Record Count: " & Trim(Mid(strZeile, 9, 7)) & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf) + objFileRead.Close() + Return False + End If + + + ' Meldung bei Prüfsummenfehler. + If booPrüfziffernfehler Then + MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.") + objFileRead.Close() + + End If + Case Else + + End Select + + Loop + + + Dim lngPKLine As Long = 0 + lngRecordCount = 0 + + 'gleicher PKFileName wird nun aus CLFHeader gelöscht. CASCADE löscht dann zugehörige CLFBody und CLFTrailer (muss noch eingebaut werden). + SQL.doSQL("delete FROM CLFHeader WHERE (PKHistory = 0) AND (PKFileName = N'" & fi.Name.ToString & "')", "ASFINAG") + + SQL.doSQL("UPDATE CLF SET PKFileName = '" & fi.Name.ToString & "'", "ASFINAG") + objFileRead.DiscardBufferedData() + objFileRead.BaseStream.Seek(0, System.IO.SeekOrigin.Begin) + + Do While (objFileRead.Peek() > -1) + Dim strZeile = objFileRead.ReadLine() + lngRecordCount = lngRecordCount + 1 + + Select Case Mid(strZeile, 1, 2) + Case "10" + booHeaderVorhanden = True + Dim ext = CInt(fi.Extension.Remove(0, 1)) + Dim clfHeader As New cAsfinag.CLFHeader(fi.Name.ToString, ext) + With clfHeader + .PKFileName = fi.Name + .recordType = Mid(strZeile, 1, 2) + .fileVersion = Mid(strZeile, 3, 2) + .indcator = Trim(Mid(strZeile, 9, 1)) + .senderID = Trim(Mid(strZeile, 10, 6)) + .receiverID = Trim(Mid(strZeile, 16, 6)) + .fileCreationDate = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2)) + .fileCreationTime = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2)) & " " & TimeSerial(Mid(strZeile, 30, 2), Mid(strZeile, 32, 2), 0) + '.fileCreationTime = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2)) & " " & TimeSerial(Mid(strZeile, 30, 2), Mid(strZeile, 32, 2), Mid(strZeile, 34, 2)) + .ISOCountryCode = Trim(Mid(strZeile, 62, 3)) + .SAVE() + End With + + Case "20" + + Dim clfBody As New cAsfinag.CLFBody(fi.Name, lngPKLine) + With clfBody + .PKFileName = fi.Name + lngPKLine = lngPKLine + 1 + .RecordType = Trim(Mid(strZeile, 1, 2)) + .fileVersion = Trim(Mid(strZeile, 3, 2)) + .fileNumber = Trim(Mid(strZeile, 5, 3)) + .cardNumber = Trim(Mid(strZeile, 9, 22)) + .validTo = Trim(Mid(strZeile, 31, 4)) + .OBUID = Trim(Mid(strZeile, 35, 18)) + .vehicleLicensePlate = Trim(Mid(strZeile, 53, 10)) + .nationality = Trim(Mid(strZeile, 63, 3)) + .vehicleCategory = Trim(Mid(strZeile, 66, 1)) + .emissionCategory = Trim(Mid(strZeile, 67, 2)) + .status = Trim(Mid(strZeile, 69, 2)) + .contractDate = DateSerial(Mid(strZeile, 71, 4), Mid(strZeile, 75, 2), Mid(strZeile, 77, 2)) + .engineCharacteristics = Trim(Mid(strZeile, 79, 3)) + .CO2EmissionsClass = Trim(Mid(strZeile, 82, 1)) + .contractType = Trim(Mid(strZeile, 83, 1)) + .SAVE() + End With + + + + Dim strSQLASFINAG = "SELECT * FROM CLFArchiv WHERE OBUID = N'" & Trim(Mid(strZeile, 35, 18)) & "'" + + Dim dtAsfinag As DataTable = SQL.loadDgvBySql_Param(strSQLASFINAG, "ASFINAG") + + Dim clfArchiv As New cAsfinag.CLFArchiv(fi.Name, Trim(Mid(strZeile, 35, 18))) + + If dtAsfinag.Rows.Count = 0 Then + With clfArchiv + .PKFileName = fi.Name + .RecordType = Trim(Mid(strZeile, 1, 2)) + .fileVersion = Trim(Mid(strZeile, 3, 2)) + .fileNumber = Trim(Mid(strZeile, 5, 3)) + .cardNumber = Trim(Mid(strZeile, 9, 22)) + .validTo = Trim(Mid(strZeile, 31, 4)) + .OBUID = Trim(Mid(strZeile, 35, 18)) + .vehicleLicensePlate = Trim(Mid(strZeile, 53, 10)) + .nationality = Trim(Mid(strZeile, 63, 3)) + .vehicleCategory = Trim(Mid(strZeile, 66, 1)) + .emissionCategory = Trim(Mid(strZeile, 67, 2)) + .status = Trim(Mid(strZeile, 69, 2)) + .contractDate = DateSerial(Mid(strZeile, 71, 4), Mid(strZeile, 75, 2), Mid(strZeile, 77, 2)) + .engineCharacteristics = Trim(Mid(strZeile, 79, 3)) + .CO2EmissionsClass = Trim(Mid(strZeile, 82, 1)) + .contractType = Trim(Mid(strZeile, 83, 1)) + .SAVE() + End With + End If + + For Each r As DataRow In dtAsfinag.Rows + + clfArchiv = New cAsfinag.CLFArchiv(r.Item("PKFileName"), r.Item("OBUID")) + + With clfArchiv + .PKFileName = fi.Name + .RecordType = Trim(Mid(strZeile, 1, 2)) + .fileVersion = Trim(Mid(strZeile, 3, 2)) + .fileNumber = Trim(Mid(strZeile, 5, 3)) + .cardNumber = Trim(Mid(strZeile, 9, 22)) + .validTo = Trim(Mid(strZeile, 31, 4)) + .OBUID = Trim(Mid(strZeile, 35, 18)) + .vehicleLicensePlate = Trim(Mid(strZeile, 53, 10)) + .nationality = Trim(Mid(strZeile, 63, 3)) + .vehicleCategory = Trim(Mid(strZeile, 66, 1)) + .emissionCategory = Trim(Mid(strZeile, 67, 2)) + .status = Trim(Mid(strZeile, 69, 2)) + .contractDate = DateSerial(Mid(strZeile, 71, 4), Mid(strZeile, 75, 2), Mid(strZeile, 77, 2)) + .engineCharacteristics = Trim(Mid(strZeile, 79, 3)) + .CO2EmissionsClass = Trim(Mid(strZeile, 82, 1)) + .contractType = Trim(Mid(strZeile, 83, 1)) + .SAVE() + End With + Next + + + Case "90" + + Dim clfTrailer As New cAsfinag.CLFTrailer(fi.Name) + + With clfTrailer + .PKFileName = fi.Name + .recordType = Trim(Mid(strZeile, 1, 2)) + .fileVersion = Trim(Mid(strZeile, 3, 2)) + .fileNumber = Trim(Mid(strZeile, 5, 4)) + .recordCount = Trim(Mid(strZeile, 9, 7)) + .SAVE() + End With + + + + Case Else + ' Andere RecordNumber überlesen. + End Select + + Loop + + objFileRead.Close() + + Return True + + End Function + + Public Function readAndSaveTTR(objFileRead As StreamReader, fi As FileInfo) As Boolean + + Dim booHeaderVorhanden = False + Dim booPrüfziffernfehler = False + Dim booInTransaktion = False + Dim booTrailerVorhanden = False + Dim dblCheckSumQuantity As Double + Dim curCheckSumAmount As Double + + Dim lngPKLine As Long = 0 + Dim lngRecordCount As Long + + 'Datei auf Fehler prüfen + Do While (objFileRead.Peek() > -1) + Dim strZeile = objFileRead.ReadLine() + lngRecordCount = lngRecordCount + 1 + + Select Case Mid(strZeile, 1, 2) + Case "10" + booHeaderVorhanden = True + Case "20" + ' Meldung bei nicht vorhandenen Haeder. + If Not booHeaderVorhanden Then + MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") + objFileRead.Close() + Return False + End If + + + ' Bei den Checksummen wird unabhängig vom TransactionType immer der positive Betrag aufsummiert. + dblCheckSumQuantity = dblCheckSumQuantity + Trim(Mid(strZeile, 94, 6)) / 100 + curCheckSumAmount = curCheckSumAmount + Trim(Mid(strZeile, 100, 10)) / 100 + If (Right(Trim(Mid(strZeile, 43, 22)), 1)) <> (fktMod10Prüfziffer(Left(Trim(Mid(strZeile, 43, 22)), Len(Trim(Mid(strZeile, 43, 22))) - 1))) Then + booPrüfziffernfehler = True + End If + + ' Meldung bei Prüfziffernfehler. + If booPrüfziffernfehler Then + MsgBox("Prüfziffernfehler in Zeile " & CStr(lngRecordCount) & vbCrLf & "Datei kann nicht verarbeitet werden. " & vbNewLine & " " & fi.Name.ToString) + booInTransaktion = False + objFileRead.Close() + Return False + End If + + + Case "90" + ' Meldung bei nicht vorhandenen Haeder. + If Not booHeaderVorhanden Then + MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") + objFileRead.Close() + Return False + End If + + booTrailerVorhanden = True + + Dim strPrompt + Dim recordCount = Trim(Mid(strZeile, 5, 9)) + If recordCount <> lngRecordCount Then + strPrompt = strPrompt & "Record Count: " & recordCount & vbCrLf & + "Prüfsumme: " & lngRecordCount & vbCrLf + End If + ' Prüfsumme Menge. + Dim checksumProductQuantity = Trim(Mid(strZeile, 14, 15)) / 100 + If checksumProductQuantity <> dblCheckSumQuantity Then + strPrompt = strPrompt & "Check Sum Quantity: " & checksumProductQuantity & vbCrLf & + "Prüfsumme: " & dblCheckSumQuantity & vbCrLf + End If + ' Prüfsumme Betrag. + Dim checksumAmounntInclVAT = Trim(Mid(strZeile, 29, 15)) / 100 + If checksumAmounntInclVAT <> Math.Round(curCheckSumAmount, 2) Then + strPrompt = strPrompt & "Check Sum Amount: " & checksumAmounntInclVAT & vbCrLf & + "Prüfsumme: " & curCheckSumAmount & vbCrLf + End If + + If strPrompt <> "" Then + MsgBox(strPrompt) + objFileRead.Close() + Return False + End If + + ' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer. + If recordCount <> (lngRecordCount) Then + MsgBox("Record Count: " & recordCount & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf) + objFileRead.Close() + Return False + End If + + + ' Meldung bei Prüfsummenfehler. + If booPrüfziffernfehler Then + MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.") + objFileRead.Close() + Return False + End If + Case Else + ' Andere RecordNumber überlesen. + End Select + + Loop + + + objFileRead.DiscardBufferedData() + objFileRead.BaseStream.Seek(0, System.IO.SeekOrigin.Begin) + + lngPKLine = 0 + lngRecordCount = 0 + + ' ----------------------------------------------------------------------------------- + ' Wenn der FileName schon in der Tabelle TTRHeader existiert, die Einträge in der History verschieben. + ' Die Tabellen TTRBody und TTRTrailer werden über CASCADE aktualisiert. + + Dim SQLTTRHeader = "SELECT PKHistory, PKFileName, fileNumber FROM TTRHeader WHERE (PKHistory = 0) And (PKFileName = N'" & fi.Name.ToString & "') And (fileNumber = " & fi.Extension.Remove(0, 1) & ") " + Dim dtTTRHeader As DataTable = SQL.loadDgvBySql_Param(SQLTTRHeader, "ASFINAG") + + If dtTTRHeader.Rows.Count > 0 Then + Dim hisorty = SQL.getValueTxtBySql("SELECT PKHistory FROM TTRHeader WHERE (PKFileName = N'" & fi.Name.ToString & "') ORDER BY PKHistory DESC", "ASFINAG") + hisorty = hisorty + 1 + For Each row As DataRow In dtTTRHeader.Rows + Dim ttrHeaderArchiv As New cAsfinag.TTRHeader(row.Item("PKFileName"), row.Item("fileNumber"), "0") + ttrHeaderArchiv.PKHistory = hisorty + ttrHeaderArchiv.UPDATE("0") + Next + + End If + + ' ----------------------------------------------------------------------------------- + + Do While (objFileRead.Peek() > -1) + Dim strZeile = objFileRead.ReadLine() + lngRecordCount = lngRecordCount + 1 + + Select Case Mid(strZeile, 1, 2) + Case "10" + Dim ext = CInt(fi.Extension.Remove(0, 1)) + Dim ttrHeader As New cAsfinag.TTRHeader(fi.Name.ToString, ext, "0") + With ttrHeader + .PKFileName = fi.Name + .recordType = Trim(Mid(strZeile, 1, 2)) + .fileVersion = Trim(Mid(strZeile, 3, 2)) + .senderID = Trim(Mid(strZeile, 5, 6)) + .receiverID = Trim(Mid(strZeile, 11, 6)) + .fileCreationDate = DateSerial(Mid(strZeile, 17, 4), Mid(strZeile, 21, 2), Mid(strZeile, 23, 2)) + .fileCreationTime = DateSerial(Mid(strZeile, 17, 4), Mid(strZeile, 21, 2), Mid(strZeile, 23, 2)) & " " & TimeSerial(Mid(strZeile, 25, 2), Mid(strZeile, 27, 2), 0) + .fileNumber = Trim(Mid(strZeile, 29, 4)) + .currencyCode = Trim(Mid(strZeile, 33, 3)) + .description = IIf(Trim(Mid(strZeile, 36, 25)) = "", Nothing, Trim(Mid(strZeile, 36, 25))) + .ISOCountryCode = Trim(Mid(strZeile, 61, 3)) + .SAVE() + End With + + Case "20" + + Dim ttrBody As New cAsfinag.TTRBody(fi.Name, lngPKLine, "0") + With ttrBody + .PKFileName = fi.Name + .recordType = Trim(Mid(strZeile, 1, 2)) + lngPKLine = lngPKLine + 1 + .PKLine = lngPKLine + .fileVersion = Trim(Mid(strZeile, 3, 2)) + .siteId = IIf(Trim(Mid(strZeile, 7, 15)) = "", Nothing, Trim(Mid(strZeile, 7, 15))) + .fileNumber = Trim(Mid(strZeile, 22, 4)) + .fileCreationDate = DateSerial(Mid(strZeile, 26, 4), Mid(strZeile, 30, 2), Mid(strZeile, 32, 2)) + .deliveryNoteNumber = IIf(Trim(Mid(strZeile, 35, 8)) = "", Nothing, Trim(Mid(strZeile, 35, 8))) + .cardNumber = Trim(Mid(strZeile, 43, 22)) + .deliveryDate = DateSerial(Mid(strZeile, 65, 4), Mid(strZeile, 69, 2), Mid(strZeile, 71, 2)) + .deliveryTime = IIf(Trim(Mid(strZeile, 73, 4)) = "", Nothing, DateSerial(Mid(strZeile, 65, 4), Mid(strZeile, 69, 2), Mid(strZeile, 71, 2)) & " " & TimeSerial(Mid(strZeile, 73, 2), Mid(strZeile, 75, 2), 0)) + .transactionType = Trim(Mid(strZeile, 77, 2)) + .productCode = Trim(Mid(strZeile, 79, 4)) + .km = IIf(Trim(Mid(strZeile, 83, 7)) = "", Nothing, Trim(Mid(strZeile, 83, 7))) + .driverId = IIf(Trim(Mid(strZeile, 90, 4)) = "", Nothing, Trim(Mid(strZeile, 90, 4))) + .productQuantity = Trim(Mid(strZeile, 94, 6)) / 100 + .amountInclVAT = Trim(Mid(strZeile, 100, 10)) / 100 + .VATrate = Trim(Mid(strZeile, 155, 4)) / 100 + .VATamount = Trim(Mid(strZeile, 159, 10)) / 100 + .OBUID = Trim(Mid(strZeile, 130, 25)) + .receiptNumber = Trim(Mid(strZeile, 110, 20)) + + + + If ttrBody.transactionType = 3 Then + ' Vorzeichenänderung + ttrBody.km = 0 - ttrBody.km + ttrBody.productQuantity = 0 - ttrBody.productQuantity + ttrBody.amountInclVAT = 0 - ttrBody.amountInclVAT + ttrBody.VATamount = 0 - ttrBody.VATamount + End If + .SAVE() + + End With + + + Case "90" + + Dim ttrTrailer As New cAsfinag.TTRTrailer(fi.Name, "0") + With ttrTrailer + .PKFileName = fi.Name + .recordType = Trim(Mid(strZeile, 1, 2)) + .fileVersion = Trim(Mid(strZeile, 3, 2)) + '.fileNumber = Trim(Mid(strZeile, 5, 4)) + .recordCount = Trim(Mid(strZeile, 5, 9)) + .checksumProductQuantity = Trim(Mid(strZeile, 14, 15)) / 100 + .checksumAmounntInclVAT = Trim(Mid(strZeile, 29, 15)) / 100 + .SAVE() + + End With + + Case Else + ' Andere RecordNumber überlesen. + End Select + + Loop + + objFileRead.Close() + + Return True + + End Function + End Class diff --git a/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.Designer.vb b/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.Designer.vb index 7154f4d..17148e2 100644 --- a/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.Designer.vb +++ b/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.Designer.vb @@ -28,6 +28,8 @@ Partial Class frmAsfinag_NachrichtenVerabeitung Me.pnl = New System.Windows.Forms.Panel() Me.lblDatenCnt = New System.Windows.Forms.Label() Me.dgvEinarbeitung = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.clmnArt = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.Label9 = New System.Windows.Forms.Label() Me.Button2 = New System.Windows.Forms.Button() Me.Label7 = New System.Windows.Forms.Label() @@ -38,8 +40,7 @@ Partial Class frmAsfinag_NachrichtenVerabeitung Me.btnOK = New System.Windows.Forms.Button() Me.Label2 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label() - Me.clmnArt = New System.Windows.Forms.DataGridViewTextBoxColumn() - Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.lblTestsystem = New System.Windows.Forms.Label() Me.pnl.SuspendLayout() CType(Me.dgvEinarbeitung, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -64,6 +65,7 @@ Partial Class frmAsfinag_NachrichtenVerabeitung ' Me.pnl.BackColor = System.Drawing.Color.White Me.pnl.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnl.Controls.Add(Me.lblTestsystem) Me.pnl.Controls.Add(Me.lblDatenCnt) Me.pnl.Controls.Add(Me.dgvEinarbeitung) Me.pnl.Controls.Add(Me.Label9) @@ -111,6 +113,18 @@ Partial Class frmAsfinag_NachrichtenVerabeitung Me.dgvEinarbeitung.Size = New System.Drawing.Size(291, 145) Me.dgvEinarbeitung.TabIndex = 18 ' + 'clmnArt + ' + Me.clmnArt.HeaderText = "Dateiname" + Me.clmnArt.Name = "clmnArt" + Me.clmnArt.Width = 150 + ' + 'Column1 + ' + Me.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill + Me.Column1.HeaderText = "Status" + Me.Column1.Name = "Column1" + ' 'Label9 ' Me.Label9.AutoSize = True @@ -212,17 +226,17 @@ Partial Class frmAsfinag_NachrichtenVerabeitung Me.Label1.TabIndex = 8 Me.Label1.Text = "Einarbeitung:" ' - 'clmnArt + 'lblTestsystem ' - Me.clmnArt.HeaderText = "Dateiname" - Me.clmnArt.Name = "clmnArt" - Me.clmnArt.Width = 150 - ' - 'Column1 - ' - Me.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill - Me.Column1.HeaderText = "Status" - Me.Column1.Name = "Column1" + Me.lblTestsystem.AutoSize = True + Me.lblTestsystem.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTestsystem.ForeColor = System.Drawing.Color.Red + Me.lblTestsystem.Location = New System.Drawing.Point(274, 8) + Me.lblTestsystem.Name = "lblTestsystem" + Me.lblTestsystem.Size = New System.Drawing.Size(89, 13) + Me.lblTestsystem.TabIndex = 20 + Me.lblTestsystem.Text = "TESTSYSTEM" + Me.lblTestsystem.Visible = False ' 'frmAsfinag_NachrichtenVerabeitung ' @@ -257,4 +271,5 @@ Partial Class frmAsfinag_NachrichtenVerabeitung Friend WithEvents lblDatenCnt As Label Friend WithEvents clmnArt As DataGridViewTextBoxColumn Friend WithEvents Column1 As DataGridViewTextBoxColumn + Friend WithEvents lblTestsystem As Label End Class diff --git a/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.vb b/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.vb index 47897b9..4bab09b 100644 --- a/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.vb +++ b/initATLASAufschubkonten/frmAsfinag_NachrichtenVerarbeitung.vb @@ -15,15 +15,9 @@ Public Class frmAsfinag_NachrichtenVerabeitung Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim allowClose = False ' Dim DY_PFAD = "C:\Users\DEVELOPER1\Desktop\test\TEST\" - - Dim ASFINAG_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\" - Dim VERARBEITUNGS_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\" - Dim ZIEL_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Ablage\" - Dim ERROR_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_ERROR\" Dim PARTNERSYSTEM = "ASFINAG" - Dim SERVER_Path = "" - Dim SERVER_Path_TEST = "" Dim FileType As String + Dim asfinag As New cAsfinag() Dim Dateiname = "" @@ -45,39 +39,27 @@ Public Class frmAsfinag_NachrichtenVerabeitung End Sub - Sub initPfade() - Me.SERVER_Path = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_In", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - Me.SERVER_Path_TEST = cAsfinag.Paramter.GET_PARAM_ByName("SERVER_Path_In_Test", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - Me.ASFINAG_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("BEREITSTELLUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - Me.VERARBEITUNGS_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("VERARBEITUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - Me.ZIEL_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ZIEL_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - Me.ERROR_PFAD = cAsfinag.Paramter.GET_PARAM_ByName("ERROR_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - - If Not IO.Directory.Exists(VERARBEITUNGS_PFAD) Then IO.Directory.CreateDirectory(VERARBEITUNGS_PFAD) - If Not IO.Directory.Exists(ZIEL_PFAD) Then IO.Directory.CreateDirectory(ZIEL_PFAD) - If Not IO.Directory.Exists(ERROR_PFAD) Then IO.Directory.CreateDirectory(ERROR_PFAD) - - - - 'Me.BOX_VERSION = NCTSTR_Worker.cDY_Paramter.GET_PARAM_ByName("BOX_VERSION", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM) - - End Sub - - Private Sub frmDYNachrichtenVerarbeitung_Load(sender As Object, e As EventArgs) Handles Me.Load - initPfade() + lblTestsystem.Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM + asfinag.initImportPfade() If FileType <> "" Then Label2.Text &= " " & FileType.ToUpper - For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD) + For Each d In System.IO.Directory.GetFiles(asfinag.VERARBEITUNG_PFAD) Dim filename = frmStartOptions.cut_file(d) If filename.ToLower.Contains(FileType) Then + Dim targetsystem As String = "nicht definiert" + If filename.Substring(0, 1) = "T" Then + targetsystem = "Test" + ElseIf filename.Substring(0, 1) = "L" Then + targetsystem = "Produktiv" + End If ListBox3.Items.Add(filename) End If - Me.Refresh() + Me.Refresh() Next End If @@ -86,8 +68,18 @@ Public Class frmAsfinag_NachrichtenVerabeitung Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.Enabled = False Try + Dim stringLIst As New List(Of String) Label9.Visible = True - Dim cnt = getNachrichtenDatenFromFTP() + Dim cnt = asfinag.getNachrichtenDatenFromFTP(stringLIst, FileType) + For Each s In stringLIst + Dim targetsystem As String = "nicht definiert" + If s.Substring(0, 1) = "T" Then + targetsystem = "Test" + ElseIf s.Substring(0, 1) = "L" Then + targetsystem = "Produktiv" + End If + ListBox3.Items.Add(s) + Next Label9.Text = cnt & " Datensätze empfangen." Catch ex As Exception @@ -117,56 +109,6 @@ Public Class frmAsfinag_NachrichtenVerabeitung End Sub - Function getNachrichtenDatenFromFTP() As Integer - Dim cnt = 0 - Try - Dim SERVERPath = "" - - If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then - - SERVERPath = Me.SERVER_Path '"\\ftps.verag.ag\FTP\MAVI\IN\" - Else - - SERVERPath = Me.SERVER_Path_TEST '"\\ftps.verag.ag\FTP\MAVI\IN\" - End If - - - For Each f In IO.Directory.GetFiles(SERVER_Path) - Dim fi As New IO.FileInfo(f) - If fi.Name.ToLower.Contains(FileType) Then - If Not fi.Name.StartsWith(".") Then - Dim zielPfad = VERARBEITUNGS_PFAD & "\" & fi.Name - While IO.File.Exists(zielPfad) - zielPfad = VERARBEITUNGS_PFAD & "\" & Now.ToString("yyyyMMdd_HHmmss_") & fi.Name - End While - IO.File.Copy(f, zielPfad) - If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then - If IO.File.Exists(zielPfad) Then IO.File.Delete(f) - End If - - Dim filename = frmStartOptions.cut_file((New FileInfo(zielPfad)).Name) - If filename.ToLower.Contains(FileType) Then - ListBox3.Items.Add(filename) - cnt += 1 - End If - - End If - End If - - Next - - - Return cnt - - Catch ex As Exception - VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name) - End Try - - Return cnt - End Function - - - Sub DatenEinlesen() VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL = VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW @@ -178,7 +120,7 @@ Public Class frmAsfinag_NachrichtenVerabeitung End If - For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD) + For Each d In System.IO.Directory.GetFiles(asfinag.VERARBEITUNG_PFAD) Try Dim correctFile As Boolean = False @@ -214,7 +156,7 @@ Public Class frmAsfinag_NachrichtenVerabeitung ElseIf FileType = "clf" Then - If readAndSaveCLF(objFileRead, fi) Then + If asfinag.readAndSaveCLF(objFileRead, fi) Then addDGVEinarbeitung(fi.Name, "OK") found = True Else @@ -224,7 +166,7 @@ Public Class frmAsfinag_NachrichtenVerabeitung ElseIf FileType = "ttr" Then - If readAndSaveTTR(objFileRead, fi) Then + If asfinag.readAndSaveTTR(objFileRead, fi) Then addDGVEinarbeitung(fi.Name, "OK") found = True Else @@ -236,12 +178,14 @@ Public Class frmAsfinag_NachrichtenVerabeitung End If If found Then - If Not IO.Directory.Exists(ZIEL_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") Then IO.Directory.CreateDirectory(ZIEL_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") - frmStartOptions.moveFile(d, ZIEL_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\", VERARBEITUNGS_PFAD) + If Not IO.Directory.Exists(asfinag.ARCHIV_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") Then IO.Directory.CreateDirectory(asfinag.ARCHIV_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") + frmStartOptions.moveFile(d, asfinag.ARCHIV_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\", asfinag.VERARBEITUNG_PFAD) cntDatenEingelesen += 1 Else If Not found Then - frmStartOptions.moveFile(d, ERROR_PFAD, VERARBEITUNGS_PFAD) ' nciht gefunden, oder durch ERROR nicht eingearbt,. + If Not IO.Directory.Exists(asfinag.ERROR_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") Then IO.Directory.CreateDirectory(asfinag.ERROR_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\") + frmStartOptions.moveFile(d, asfinag.ERROR_PFAD & "\" & Now.Year & "\" & Now.ToString("MMdd") & "\", asfinag.VERARBEITUNG_PFAD) + ' nciht gefunden, oder durch ERROR nicht eingearbt,. dsNichtErkannt += 1 End If End If @@ -276,357 +220,6 @@ Public Class frmAsfinag_NachrichtenVerabeitung End Sub - Public Function readAndSaveCLF(objFileRead As StreamReader, fi As FileInfo) As Boolean - - Dim booHeaderVorhanden = False - Dim booPrüfziffernfehler = False - Dim booInTransaktion = False - Dim booTrailerVorhanden = False - - Dim lngPKLine As Long = 0 - Dim lngRecordCount As Long - - Do While (objFileRead.Peek() > -1) - Dim strZeile = objFileRead.ReadLine() - lngRecordCount = lngRecordCount + 1 - - Select Case Mid(strZeile, 1, 2) - Case "10" - booHeaderVorhanden = True - Dim ext = CInt(fi.Extension.Remove(0, 1)) - Dim clfHeader As New cAsfinag.CLFHeader(fi.Name.ToString, ext) - With clfHeader - .PKFileName = fi.Name - .recordType = Mid(strZeile, 1, 2) - .fileVersion = Mid(strZeile, 3, 2) - .indcator = Trim(Mid(strZeile, 9, 1)) - .senderID = Trim(Mid(strZeile, 10, 6)) - .receiverID = Trim(Mid(strZeile, 16, 6)) - .fileCreationDate = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2)) - .fileCreationTime = Now() - '.fileCreationTime = DateSerial(Mid(strZeile, 22, 4), Mid(strZeile, 26, 2), Mid(strZeile, 28, 2)) & " " & TimeSerial(Mid(strZeile, 30, 2), Mid(strZeile, 32, 2), Mid(strZeile, 34, 2)) - .ISOCountryCode = Trim(Mid(strZeile, 62, 3)) - .SAVE() - End With - - Case "20" - ' Meldung bei nicht vorhandenen Haeder. - If Not booHeaderVorhanden Then - MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") - objFileRead.Close() - Return False - End If - - Dim clfBody As New cAsfinag.CLFBody(fi.Name, lngPKLine) - With clfBody - .PKFileName = fi.Name - lngPKLine = lngPKLine + 1 - .RecordType = Trim(Mid(strZeile, 1, 2)) - .fileVersion = Trim(Mid(strZeile, 3, 2)) - .fileNumber = Trim(Mid(strZeile, 5, 3)) - .cardNumber = Trim(Mid(strZeile, 9, 22)) - .validTo = Trim(Mid(strZeile, 31, 4)) - .OBUID = Trim(Mid(strZeile, 35, 18)) - .vehicleLicensePlate = Trim(Mid(strZeile, 53, 10)) - .nationality = Trim(Mid(strZeile, 63, 3)) - .vehicleCategory = Trim(Mid(strZeile, 66, 1)) - .emissionCategory = Trim(Mid(strZeile, 67, 2)) - .status = Trim(Mid(strZeile, 69, 2)) - .contractDate = DateSerial(Mid(strZeile, 71, 4), Mid(strZeile, 75, 2), Mid(strZeile, 77, 2)) - .SAVE() - End With - 'CardNumber prüfen. - If (Right(clfBody.cardNumber, 1)) <> cAsfinag.fktMod10Prüfziffer(Left(clfBody.cardNumber, Len(clfBody.cardNumber) - 1)) Then - booPrüfziffernfehler = True - End If - - - 'strSQL = "SELECT * FROM CLFArchiv WHERE (OBUID = N'" & Trim(Mid(strZeile, 37, 18)) & "')" - 'rstCLFArchiv.Open strSQL, cnnASFINAG, adOpenStatic, adLockOptimistic, adCmdText - - - 'With rstCLFArchiv - ' If .EOF Then - ' .AddNew - ' !OBUID = Trim(Mid(strZeile, 37, 18)) - ' End If - ' !FileName = strPKFileName - ' !RecordType = Trim(Mid(strZeile, 1, 2)) - ' !RunNumber = Trim(Mid(strZeile, 3, 8)) - ' !CardNumber = Trim(Mid(strZeile, 11, 22)) - ' !ValidTo = Trim(Mid(strZeile, 33, 4)) - ' !KfzKennzeichen = Trim(Mid(strZeile, 55, 10)) - ' !Nationalität = Trim(Mid(strZeile, 65, 3)) - ' !Kategorie = Trim(Mid(strZeile, 68, 1)) - ' !Schadstoffklasse = Trim(Mid(strZeile, 69, 2)) - ' !Status = Trim(Mid(strZeile, 71, 2)) - ' !DatumVertragsabschluss = DateSerial(Mid(strZeile, 73, 4), Mid(strZeile, 77, 2), Mid(strZeile, 79, 2)) - ' .Update - ' .Close - 'End With - - ' Meldung bei Prüfziffernfehler. - If booPrüfziffernfehler Then - MsgBox("Prüfziffernfehler in Zeile " & CStr(lngRecordCount) & vbCrLf & "Datei kann nicht verarbeitet werden. " & vbNewLine & " " & fi.Name.ToString) - booInTransaktion = False - Return False - - End If - Case "90" - ' Meldung bei nicht vorhandenen Haeder. - If Not booHeaderVorhanden Then - MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") - objFileRead.Close() - Return False - End If - - booTrailerVorhanden = True - Dim clfTrailer As New cAsfinag.CLFTrailer(fi.Name) - - With clfTrailer - .PKFileName = fi.Name - .recordType = Trim(Mid(strZeile, 1, 2)) - .fileVersion = Trim(Mid(strZeile, 3, 2)) - .fileNumber = Trim(Mid(strZeile, 5, 4)) - .recordCount = Trim(Mid(strZeile, 9, 7)) - .SAVE() - End With - ' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer. - If clfTrailer.recordCount <> (lngRecordCount) Then - MsgBox("Record Count: " & clfTrailer.recordCount & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf) - objFileRead.Close() - Return False - End If - - - ' Meldung bei Prüfsummenfehler. - If booPrüfziffernfehler Then - MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.") - objFileRead.Close() - ' MsgBox strPrompt, , strPKFileName - ' ' Zurücksetzen der Transaktion. - 'cnnASFINAG.RollbackTrans - ' booInTransaktion = False - End If - Case Else - ' Andere RecordNumber überlesen. - End Select - - Loop - - objFileRead.Close() - - Return True - - End Function - - - - - Public Function readAndSaveTTR(objFileRead As StreamReader, fi As FileInfo) As Boolean - - Dim booHeaderVorhanden = False - Dim booPrüfziffernfehler = False - Dim booInTransaktion = False - Dim booTrailerVorhanden = False - Dim dblCheckSumQuantity As Double - Dim curCheckSumAmount As Double - - Dim lngPKLine As Long = 0 - Dim lngRecordCount As Long - - Do While (objFileRead.Peek() > -1) - Dim strZeile = objFileRead.ReadLine() - lngRecordCount = lngRecordCount + 1 - - Select Case Mid(strZeile, 1, 2) - Case "10" - booHeaderVorhanden = True - Dim ext = CInt(fi.Extension.Remove(0, 1)) - Dim ttrHeader As New cAsfinag.TTRHeader(fi.Name.ToString, ext) - With ttrHeader - .PKFileName = fi.Name - .recordType = Trim(Mid(strZeile, 1, 2)) - .fileVersion = Trim(Mid(strZeile, 3, 2)) - .senderID = Trim(Mid(strZeile, 5, 6)) - .receiverID = Trim(Mid(strZeile, 11, 6)) - .fileCreationDate = DateSerial(Mid(strZeile, 17, 4), Mid(strZeile, 21, 2), Mid(strZeile, 23, 2)) - .fileCreationTime = DateSerial(Mid(strZeile, 17, 4), Mid(strZeile, 21, 2), Mid(strZeile, 23, 2)) & " " & TimeSerial(Mid(strZeile, 25, 2), Mid(strZeile, 27, 2), 0) - .fileNumber = Trim(Mid(strZeile, 29, 4)) - .currencyCode = Trim(Mid(strZeile, 33, 3)) - .description = IIf(Trim(Mid(strZeile, 36, 25)) = "", Nothing, Trim(Mid(strZeile, 36, 25))) - .ISOCountryCode = Trim(Mid(strZeile, 61, 3)) - .SAVE() - End With - - Case "20" - ' Meldung bei nicht vorhandenen Haeder. - If Not booHeaderVorhanden Then - MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") - objFileRead.Close() - Return False - End If - - - Dim ttrBody As New cAsfinag.TTRBody(fi.Name, lngPKLine) - - With ttrBody - .PKFileName = fi.Name - .recordType = Trim(Mid(strZeile, 1, 2)) - lngPKLine = lngPKLine + 1 - .PKLine = lngPKLine - .fileVersion = Trim(Mid(strZeile, 3, 2)) - .siteId = IIf(Trim(Mid(strZeile, 7, 15)) = "", Nothing, Trim(Mid(strZeile, 7, 15))) - .fileNumber = Trim(Mid(strZeile, 22, 4)) - .fileCreationDate = DateSerial(Mid(strZeile, 26, 4), Mid(strZeile, 30, 2), Mid(strZeile, 32, 2)) - .deliveryNoteNumber = IIf(Trim(Mid(strZeile, 35, 8)) = "", Nothing, Trim(Mid(strZeile, 35, 8))) - .cardNumber = Trim(Mid(strZeile, 43, 22)) - .deliveryDate = DateSerial(Mid(strZeile, 65, 4), Mid(strZeile, 69, 2), Mid(strZeile, 71, 2)) - .deliveryTime = IIf(Trim(Mid(strZeile, 73, 4)) = "", Nothing, DateSerial(Mid(strZeile, 65, 4), Mid(strZeile, 69, 2), Mid(strZeile, 71, 2)) & " " & TimeSerial(Mid(strZeile, 73, 2), Mid(strZeile, 75, 2), 0)) - .transactionType = Trim(Mid(strZeile, 77, 2)) - .productCode = Trim(Mid(strZeile, 79, 4)) - .km = IIf(Trim(Mid(strZeile, 83, 7)) = "", Nothing, Trim(Mid(strZeile, 83, 7))) - .driverId = IIf(Trim(Mid(strZeile, 90, 4)) = "", Nothing, Trim(Mid(strZeile, 90, 4))) - .productQuantity = Trim(Mid(strZeile, 94, 6)) / 100 - .amountInclVAT = Trim(Mid(strZeile, 100, 10)) / 100 - .VATrate = Trim(Mid(strZeile, 155, 4)) / 100 - .VATamount = Trim(Mid(strZeile, 159, 10)) / 100 - .OBUID = Trim(Mid(strZeile, 130, 25)) - .receiptNumber = Trim(Mid(strZeile, 110, 20)) - - ' Bei den Checksummen wird unabhängig vom TransactionType immer der positive Betrag aufsummiert. - dblCheckSumQuantity = dblCheckSumQuantity + ttrBody.productQuantity - curCheckSumAmount = curCheckSumAmount + ttrBody.amountInclVAT - ' Bei TransactionType 03 .......Credit-Transaktion (negativ) - - If ttrBody.transactionType = 3 Then - ' Vorzeichenänderung - ttrBody.km = 0 - ttrBody.km - ttrBody.productQuantity = 0 - ttrBody.productQuantity - ttrBody.amountInclVAT = 0 - ttrBody.amountInclVAT - ttrBody.VATamount = 0 - ttrBody.VATamount - End If - - ' CardNumber prüfen. - If (Right(ttrBody.cardNumber, 1)) <> (fktMod10Prüfziffer(Left(ttrBody.cardNumber, Len(ttrBody.cardNumber) - 1))) Then - booPrüfziffernfehler = True - End If - .SAVE() - - End With - - 'strSQL = "SELECT * FROM CLFArchiv WHERE (OBUID = N'" & Trim(Mid(strZeile, 37, 18)) & "')" - 'rstCLFArchiv.Open strSQL, cnnASFINAG, adOpenStatic, adLockOptimistic, adCmdText - - - 'With rstCLFArchiv - ' If .EOF Then - ' .AddNew - ' !OBUID = Trim(Mid(strZeile, 37, 18)) - ' End If - ' !FileName = strPKFileName - ' !RecordType = Trim(Mid(strZeile, 1, 2)) - ' !RunNumber = Trim(Mid(strZeile, 3, 8)) - ' !CardNumber = Trim(Mid(strZeile, 11, 22)) - ' !ValidTo = Trim(Mid(strZeile, 33, 4)) - ' !KfzKennzeichen = Trim(Mid(strZeile, 55, 10)) - ' !Nationalität = Trim(Mid(strZeile, 65, 3)) - ' !Kategorie = Trim(Mid(strZeile, 68, 1)) - ' !Schadstoffklasse = Trim(Mid(strZeile, 69, 2)) - ' !Status = Trim(Mid(strZeile, 71, 2)) - ' !DatumVertragsabschluss = DateSerial(Mid(strZeile, 73, 4), Mid(strZeile, 77, 2), Mid(strZeile, 79, 2)) - ' .Update - ' .Close - 'End With - - ' Meldung bei Prüfziffernfehler. - If booPrüfziffernfehler Then - MsgBox("Prüfziffernfehler in Zeile " & CStr(lngRecordCount) & vbCrLf & "Datei kann nicht verarbeitet werden. " & vbNewLine & " " & fi.Name.ToString) - booInTransaktion = False - objFileRead.Close() - Return False - End If - - - Case "90" - ' Meldung bei nicht vorhandenen Haeder. - If Not booHeaderVorhanden Then - MsgBox("Datei kann wegen fehlenden Header nicht verarbeitet werden.") - objFileRead.Close() - Return False - End If - - booTrailerVorhanden = True - - - Dim ttrTrailer As New cAsfinag.TTRTrailer(fi.Name) - With ttrTrailer - .PKFileName = fi.Name - .recordType = Trim(Mid(strZeile, 1, 2)) - .fileVersion = Trim(Mid(strZeile, 3, 2)) - '.fileNumber = Trim(Mid(strZeile, 5, 4)) - .recordCount = Trim(Mid(strZeile, 5, 9)) - .checksumProductQuantity = Trim(Mid(strZeile, 14, 15)) / 100 - .checksumAmounntInclVAT = Trim(Mid(strZeile, 29, 15)) / 100 - .SAVE() - - Dim strPrompt - If ttrTrailer.recordCount <> lngRecordCount Then - strPrompt = strPrompt & "Record Count: " & ttrTrailer.recordCount & vbCrLf & - "Prüfsumme: " & lngRecordCount & vbCrLf - End If - ' Prüfsumme Menge. - If ttrTrailer.checksumProductQuantity <> dblCheckSumQuantity Then - strPrompt = strPrompt & "Check Sum Quantity: " & ttrTrailer.checksumProductQuantity & vbCrLf & - "Prüfsumme: " & dblCheckSumQuantity & vbCrLf - End If - ' Prüfsumme Betrag. - If ttrTrailer.checksumAmounntInclVAT <> Math.Round(curCheckSumAmount, 2) Then - strPrompt = strPrompt & "Check Sum Amount: " & ttrTrailer.checksumAmounntInclVAT & vbCrLf & - "Prüfsumme: " & curCheckSumAmount & vbCrLf - End If - - If strPrompt <> "" Then - MsgBox(strPrompt) - objFileRead.Close() - Return False - End If - - End With - ' Prüfsumme Anzahl der Sätze im File ohne Header und Trailer. - - If ttrTrailer.recordCount <> (lngRecordCount) Then - MsgBox("Record Count: " & ttrTrailer.recordCount & vbCrLf & "Prüfsumme: " & (lngRecordCount) & vbCrLf) - objFileRead.Close() - Return False - End If - - - ' Meldung bei Prüfsummenfehler. - If booPrüfziffernfehler Then - MsgBox("Datei kann wegen Prüfsummenfehler nicht verarbeitet werden.") - objFileRead.Close() - Return False - ' MsgBox strPrompt, , strPKFileName - ' ' Zurücksetzen der Transaktion. - 'cnnASFINAG.RollbackTrans - ' booInTransaktion = False - End If - Case Else - ' Andere RecordNumber überlesen. - End Select - - Loop - - objFileRead.Close() - - Return True - - End Function - - - - Private Sub dgvEinarbeitung_SelectionChanged(sender As Object, e As EventArgs) Handles dgvEinarbeitung.SelectionChanged dgvEinarbeitung.ClearSelection() diff --git a/initATLASAufschubkonten/frmStartOptions.Designer.vb b/initATLASAufschubkonten/frmStartOptions.Designer.vb index 505c861..8cdbf96 100644 --- a/initATLASAufschubkonten/frmStartOptions.Designer.vb +++ b/initATLASAufschubkonten/frmStartOptions.Designer.vb @@ -69,6 +69,7 @@ Partial Class frmStartOptions Me.LinkLabel99 = New System.Windows.Forms.LinkLabel() Me.PictureBox99 = New System.Windows.Forms.PictureBox() Me.Button99 = New System.Windows.Forms.Button() + Me.Button21 = New System.Windows.Forms.Button() Me.Button20 = New System.Windows.Forms.Button() Me.Button19 = New System.Windows.Forms.Button() Me.Label99 = New System.Windows.Forms.Label() @@ -159,6 +160,7 @@ Partial Class frmStartOptions Me.LinkLabel30 = New System.Windows.Forms.LinkLabel() Me.Label11 = New System.Windows.Forms.Label() Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.LinkLabel46 = New System.Windows.Forms.LinkLabel() Me.PictureBox19 = New System.Windows.Forms.PictureBox() Me.PictureBox18 = New System.Windows.Forms.PictureBox() Me.LinkLabel41 = New System.Windows.Forms.LinkLabel() @@ -191,6 +193,8 @@ Partial Class frmStartOptions Me.lklAufschubkontenATLASEZOLL = New System.Windows.Forms.LinkLabel() Me.lblRoutineManager = New System.Windows.Forms.Label() Me.txtGJ_UNISPED = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.LinkLabel47 = New System.Windows.Forms.LinkLabel() + Me.PictureBox21 = New System.Windows.Forms.PictureBox() Me.pnl.SuspendLayout() CType(Me.piceZollAnh, System.ComponentModel.ISupportInitialize).BeginInit() Me.tbcntr.SuspendLayout() @@ -221,6 +225,7 @@ Partial Class frmStartOptions CType(Me.PictureBox11, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox10, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox9, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBox21, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'pnl @@ -881,6 +886,18 @@ Partial Class frmStartOptions Me.Button99.Text = "AAS Sendung 24h" Me.Button99.UseVisualStyleBackColor = True ' + 'Button21 + ' + Me.Button21.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button21.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.Button21.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button21.Location = New System.Drawing.Point(581, 346) + Me.Button21.Name = "Button21" + Me.Button21.Size = New System.Drawing.Size(211, 24) + Me.Button21.TabIndex = 81 + Me.Button21.Text = "AAS Sendung 24h" + Me.Button21.UseVisualStyleBackColor = True + ' 'Button20 ' Me.Button20.Enabled = False @@ -932,7 +949,7 @@ Partial Class frmStartOptions ' Me.PictureBox20.BackgroundImage = CType(resources.GetObject("PictureBox20.BackgroundImage"), System.Drawing.Image) Me.PictureBox20.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox20.Location = New System.Drawing.Point(661, 90) + Me.PictureBox20.Location = New System.Drawing.Point(586, 90) Me.PictureBox20.Name = "PictureBox20" Me.PictureBox20.Size = New System.Drawing.Size(18, 18) Me.PictureBox20.TabIndex = 62 @@ -943,7 +960,7 @@ Partial Class frmStartOptions ' Me.LinkLabel45.AutoSize = True Me.LinkLabel45.LinkColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.LinkLabel45.Location = New System.Drawing.Point(543, 95) + Me.LinkLabel45.Location = New System.Drawing.Point(475, 95) Me.LinkLabel45.Name = "LinkLabel45" Me.LinkLabel45.Size = New System.Drawing.Size(112, 13) Me.LinkLabel45.TabIndex = 61 @@ -1959,6 +1976,9 @@ Partial Class frmStartOptions ' 'TabPage4 ' + Me.TabPage4.Controls.Add(Me.PictureBox21) + Me.TabPage4.Controls.Add(Me.LinkLabel47) + Me.TabPage4.Controls.Add(Me.LinkLabel46) Me.TabPage4.Controls.Add(Me.PictureBox19) Me.TabPage4.Controls.Add(Me.PictureBox18) Me.TabPage4.Controls.Add(Me.LinkLabel41) @@ -1974,11 +1994,22 @@ Partial Class frmStartOptions Me.TabPage4.Text = "Asfinag" Me.TabPage4.UseVisualStyleBackColor = True ' + 'LinkLabel46 + ' + Me.LinkLabel46.AutoSize = True + Me.LinkLabel46.LinkColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.LinkLabel46.Location = New System.Drawing.Point(17, 91) + Me.LinkLabel46.Name = "LinkLabel46" + Me.LinkLabel46.Size = New System.Drawing.Size(120, 13) + Me.LinkLabel46.TabIndex = 38 + Me.LinkLabel46.TabStop = True + Me.LinkLabel46.Text = "Contractdaten anzeigen" + ' 'PictureBox19 ' Me.PictureBox19.BackgroundImage = CType(resources.GetObject("PictureBox19.BackgroundImage"), System.Drawing.Image) Me.PictureBox19.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox19.Location = New System.Drawing.Point(110, 165) + Me.PictureBox19.Location = New System.Drawing.Point(321, 68) Me.PictureBox19.Name = "PictureBox19" Me.PictureBox19.Size = New System.Drawing.Size(18, 18) Me.PictureBox19.TabIndex = 37 @@ -1989,7 +2020,7 @@ Partial Class frmStartOptions ' Me.PictureBox18.BackgroundImage = CType(resources.GetObject("PictureBox18.BackgroundImage"), System.Drawing.Image) Me.PictureBox18.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox18.Location = New System.Drawing.Point(110, 135) + Me.PictureBox18.Location = New System.Drawing.Point(321, 38) Me.PictureBox18.Name = "PictureBox18" Me.PictureBox18.Size = New System.Drawing.Size(18, 18) Me.PictureBox18.TabIndex = 36 @@ -2000,7 +2031,7 @@ Partial Class frmStartOptions ' Me.LinkLabel41.AutoSize = True Me.LinkLabel41.LinkColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.LinkLabel41.Location = New System.Drawing.Point(17, 165) + Me.LinkLabel41.Location = New System.Drawing.Point(228, 68) Me.LinkLabel41.Name = "LinkLabel41" Me.LinkLabel41.Size = New System.Drawing.Size(82, 13) Me.LinkLabel41.TabIndex = 35 @@ -2011,7 +2042,7 @@ Partial Class frmStartOptions ' Me.LinkLabel42.AutoSize = True Me.LinkLabel42.LinkColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) - Me.LinkLabel42.Location = New System.Drawing.Point(17, 140) + Me.LinkLabel42.Location = New System.Drawing.Point(228, 43) Me.LinkLabel42.Name = "LinkLabel42" Me.LinkLabel42.Size = New System.Drawing.Size(87, 13) Me.LinkLabel42.TabIndex = 34 @@ -2021,7 +2052,7 @@ Partial Class frmStartOptions 'Label23 ' Me.Label23.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label23.Location = New System.Drawing.Point(17, 113) + Me.Label23.Location = New System.Drawing.Point(228, 16) Me.Label23.Name = "Label23" Me.Label23.Size = New System.Drawing.Size(296, 16) Me.Label23.TabIndex = 33 @@ -2353,6 +2384,28 @@ Partial Class frmStartOptions Me.txtGJ_UNISPED.Size = New System.Drawing.Size(53, 20) Me.txtGJ_UNISPED.TabIndex = 68 ' + 'LinkLabel47 + ' + Me.LinkLabel47.AutoSize = True + Me.LinkLabel47.LinkColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.LinkLabel47.Location = New System.Drawing.Point(17, 115) + Me.LinkLabel47.Name = "LinkLabel47" + Me.LinkLabel47.Size = New System.Drawing.Size(72, 13) + Me.LinkLabel47.TabIndex = 39 + Me.LinkLabel47.TabStop = True + Me.LinkLabel47.Text = "Import to SDL" + ' + 'PictureBox21 + ' + Me.PictureBox21.BackgroundImage = CType(resources.GetObject("PictureBox21.BackgroundImage"), System.Drawing.Image) + Me.PictureBox21.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox21.Location = New System.Drawing.Point(99, 115) + Me.PictureBox21.Name = "PictureBox21" + Me.PictureBox21.Size = New System.Drawing.Size(18, 18) + Me.PictureBox21.TabIndex = 40 + Me.PictureBox21.TabStop = False + Me.PictureBox21.Visible = False + ' 'frmStartOptions ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -2401,6 +2454,7 @@ Partial Class frmStartOptions CType(Me.PictureBox11, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox10, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox9, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBox21, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub @@ -2571,4 +2625,8 @@ Partial Class frmStartOptions Friend WithEvents Button99 As Button Friend WithEvents LinkLabel99 As LinkLabel Friend WithEvents PictureBox99 As PictureBox + Friend WithEvents Button21 As Button + Friend WithEvents LinkLabel46 As LinkLabel + Friend WithEvents LinkLabel47 As LinkLabel + Friend WithEvents PictureBox21 As PictureBox End Class diff --git a/initATLASAufschubkonten/frmStartOptions.resx b/initATLASAufschubkonten/frmStartOptions.resx index 1056b0a..1c52ea3 100644 --- a/initATLASAufschubkonten/frmStartOptions.resx +++ b/initATLASAufschubkonten/frmStartOptions.resx @@ -527,6 +527,30 @@ WOhxEFgYvLZus64EJhQtqBTtALDEsQ/aHnRf3FTcASpEWwBsbQkBLQW1uqiTUJABFxcXg7y8PJupqSm/ nZ2diL29vSgyBooJm5ub88nKyrIC1VLezgQ2zRk9PT0F6urqVCdNmmQwbdo0Y2Q8efJk3ebmZkVXV1de CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABGdBTUEAALGPC/xhBQAABEhJREFUSEtj + oDZg4WThlrSSdLPOtc53zHaMl5SUZGBnZ4fKUhMwMjCK6IloGhUYZdn32a/wX+Z/0Ge2z0L9eH0rQVVB + QSZ2JqhCKgEBNQFFoyKjnPAj4cdjz8d+jb8U/z/iaMR9z2WeE3XSdByEdYWFGVkYGaHKKQdWTVYF4YfC + j8VdjPsHwiALYezo89HTzWrNHNj42VigyikHDv0OC2POxrwDWYSOgZY+DNoRNMV5urMdVDn5gFOUU0rJ + VynOd7XvBSwW/QHiHx4LPPYDQ6DUpMzEEKqNPMDKw8on5ywXBHT9w+hT0d/QLPsefTr6Rei+0Iuqwaox + XGJcElBt5AMFT4UIYDBtjzkT8zPuQtxfNAuv+G/wn6CdoG3Bp8AnysjMSH78MXMyc0tZSbnZtNksDtsf + 9hJoODiRgC26EPcD6IDbPit9Oo3yjWz4Ffm5gXmTGaqVPMAuwC6il6ZXgx5vsedif4YfDH/kNsdtIlDe + VlRflDo5HpeFkUcj33jM89gqbigux8bNBlVNIeCR4pFX9ldO8F7qfTLyWORHmGUx52N+2/XYrRTRFTFh + 42PjAMYZVAcOwMzBzA2MXHUFDwVLGXsZDS4JLjZ0TeyC7CLghDLVeWvU8ahPyL7z3+u/STNdMwSqFD8A + pSBeOV41rTitYr/1ftNd57jmKnorygKDjpUBqQgU1BA0NKsym4JsESifAfFzyxmWXhKeEqxQpfgBpxin + lEqgSnLI3pBn0Wei30aeiNzlucQzWdxEXBKY1+DJGYeF12IuxBTJe8srsfAQkfKBQckFzJgp7vPdD4KS + d9ylOJAhL4AF73aHCQ5RwKpGjomViZWVl1VAP0u/wXeN70WYZbEXYi/7b/Lv0c3Q1eGR5eGBGokfKLgp + hALjZBuyq0EYaOkHoIErzWvN/cWMxSSAcSoLTO57oXK/gPhp4PbAqUAfO7MLsbMBHUVcTQD2FVLGRbIQ + LA5MfdNdZrnYolkIcswSs0ozL2Aw80KNIg5I20h7ApN5lGWdZQfQoPtAA8F1GZLFD4HVznGQZUD6NUgs + 8kjka5t2m25pW2kzFm4yShFgvuGVMJEwNq0wrXSd6bopeGfwA2RLkTHIUrfZbnvkXOWCQYkNagT5QNZZ + NsCu225Z9MnoD8By8TfQEkQ5eTHuJzDRHAMmnkJ2EXYhqBbKADCIeIGZ29t9nvvSqJNRL4AW/UKy8L7P + ap8Juum6BsBCgHotI25JbgkZBxkHtVC1JGDc7Qa2UX4CE8n3oJ1B64GpMlpYR5ifmZ2Zyq0iKFANUk3x + WOhxEFgYvLZus64EJhQtqBTtALDEsQ/aHnRf3FTcASpEWwBsbQkBLQW1uqiTUJABFxcXg7y8PJupqSm/ + nZ2diL29vSgyBooJm5ub88nKyrIC1VLezgQ2zRk9PT0F6urqVCdNmmQwbdo0Y2Q8efJk3ebmZkVXV1de + CQkJEjM9AwMAOTMC2xlgxuQAAAAASUVORK5CYII= diff --git a/initATLASAufschubkonten/frmStartOptions.vb b/initATLASAufschubkonten/frmStartOptions.vb index 8bffbcf..f37e9d7 100644 --- a/initATLASAufschubkonten/frmStartOptions.vb +++ b/initATLASAufschubkonten/frmStartOptions.vb @@ -4,7 +4,9 @@ Imports System.IO Imports System.Net Imports System.Text Imports System.Xml + Imports DocumentFormat.OpenXml.Drawing.Diagrams + Imports DocumentFormat.OpenXml.Wordprocessing Imports iTextSharp.text.pdf.qrcode.Version Imports Org.BouncyCastle.Asn1.Pkcs @@ -244,6 +246,8 @@ Public Class frmStartOptions Me.Refresh() DAKOSY_Worker.cIMPORT_Codelisten.IMPORT("I6010", True) DAKOSY_Worker.cIMPORT_Codelisten.IMPORT("I6010", False) + importEZOLLWechselkurse(True) + importEZOLLWechselkurse(False) Me.Refresh() DAKOSY_Worker.cIMPORT_Codelisten.IMPORT("C0219", True) DAKOSY_Worker.cIMPORT_Codelisten.IMPORT("C0219", False) @@ -2005,6 +2009,7 @@ Public Class frmStartOptions PictureBox18.Visible = False PictureBox19.Visible = False PictureBox20.Visible = False + PictureBox21.Visible = False End Sub @@ -3108,13 +3113,13 @@ Public Class frmStartOptions ASFINAG_LKW() End Sub - Function ASFINAG_LKW() + Function ASFINAG_LKW(Optional isFMZoll As Boolean = True) As Boolean Try Dim SQl As New VERAG_PROG_ALLGEMEIN.SQL ' CLF-Einträge aus den bestehenden SDL-Datensätzen entfernen, ' damit nach dem Aktualisierungslauf der Istzustand der CLF in der SDL hergestellt wird. - If Not SQl.getValueTxtBySql("UPDATE SDL Set OBUID = NULL, Vertragsabschlussdatum = NULL, Kategorie = NULL, Status = NULL WHERE (SDLNr = 200) AND (NOT Vertragsabschlussdatum IS NULL)", "SDL") Then + If Not SQl.doSQL("UPDATE SDL Set OBUID = NULL, Vertragsabschlussdatum = NULL, Kategorie = NULL, Status = NULL WHERE (SDLNr = 200) AND (NOT Vertragsabschlussdatum IS NULL)", "SDL") Then VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("ERROR", "Fehler beim Reset SDL-Daten.", System.Reflection.MethodBase.GetCurrentMethod.Name) Return False End If @@ -3127,74 +3132,150 @@ Public Class frmStartOptions End If + If isFMZoll Then + ' Verbindung zur ASFINAG Datenbank herstellen + Dim connectionString = "" + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\DEVELOPER\f\FMZoll\Mautmanager.adp" + Else + connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL\f\FMZoll\Mautmanager.adp" + End If + Dim con As New OleDbConnection(connectionString) + Dim cmd As New OleDbCommand + Dim var1 As String + Dim adapter As OleDbDataAdapter = New OleDbDataAdapter() + Dim reader As OleDbDataReader = Nothing - ' Verbindung zur ASFINAG Datenbank herstellen - Dim connectionString = "" - If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then - connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\DEVELOPER\f\FMZoll\Mautmanager.adp" + ' Kfz Kennzeichen einlesen. + Dim SQLQuery = "SELECT CardNumber, ValidTo, OBUID, KfzKennzeichen, Nationalität, DatumVertragsabschluss, Kategorie, Schadstoffklasse, Status FROM vwCLFBody " + Using Command As New OleDbCommand(SQLQuery, con) + Using oRDR As OleDbDataReader = Command.ExecuteReader + While (oRDR.Read) + Dim KartenNr = oRDR.GetValue("CardNumber") + + Dim KfzKennzeichen = fktConvert(oRDR.GetValue("KfzKennzeichen")) + + ' Kundennummer einlesen + Dim KdNr As Integer = SQl.getValueTxtBySql("SELECT AdressenNr FROM Kreditkarten WHERE KartenNr='" & KartenNr & "'", "SDL",,, -1) + + If KdNr > 0 Then + + Call fktKundenSDLVerwalten(KdNr, SDLNr) + Call fktKundenLkwVerwalten(KdNr, oRDR.GetValue("KfzKennzeichen"), oRDR.GetValue("Nationalität")) + + Dim SDL = New VERAG_PROG_ALLGEMEIN.cSDL(KdNr, oRDR.GetValue("KfzKennzeichen"), SDLNr) + If Not SDL.hasentry Then + SDL.KundenNr = KdNr + SDL.KfzKennzeichen = KfzKennzeichen + SDL.SDLNr = SDLNr + SDL.History = 0 'fktLiefereHistorywert(!KundenNr, !SDLNr) + SDL.Erfassungsdatum = Now + Else + SDL.Änderungsdatum = Now + End If + SDL.Sachbearbeiter = "ASFINAG" + + Dim Validto = SQl.checkNullStr(oRDR.GetValue("DatumVertragsabschluss")) + + SDL.KartenNr = SQl.checkNullStr(oRDR.GetValue("CardNumber")) + If Validto <> "" Then + SDL.GültigBis = DateAdd("d", -1, DateAdd("m", 1, DateSerial("20" & Mid(Validto, 1, 2), Mid(Validto, 3, 2), 1))) + End If + + SDL.OBUID = SQl.checkNullStr(oRDR.GetValue("OBUID")) + SDL.Vertragsabschlussdatum = SQl.checkNullStr(oRDR.GetValue("DatumVertragsabschluss")) + SDL.Kategorie = SQl.checkNullStr(oRDR.GetValue("Kategorie")) + SDL.Schadstoffklasse = SQl.checkNullStr(oRDR.GetValue("Schadstoffklasse")) + SDL.Status = SQl.checkNullStr(oRDR.GetValue("Status")) + SDL.SAVE() + End If + + End While + End Using + End Using + con.Close() Else - connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL\f\FMZoll\Mautmanager.adp" - End If - Dim con As New OleDbConnection(connectionString) - Dim cmd As New OleDbCommand - Dim var1 As String - Dim adapter As OleDbDataAdapter = New OleDbDataAdapter() - Dim reader As OleDbDataReader = Nothing - ' Kfz Kennzeichen einlesen. - Dim SQLQuery = "SELECT CardNumber, ValidTo, OBUID, KfzKennzeichen, Nationalität, DatumVertragsabschluss, Kategorie, Schadstoffklasse, Status FROM vwCLFBody " - Using Command As New OleDbCommand(SQLQuery, con) - Using oRDR As OleDbDataReader = Command.ExecuteReader - While (oRDR.Read) - Dim KartenNr = oRDR.GetValue("CardNumber") + ' Kfz Kennzeichen einlesen. - Dim KfzKennzeichen = fktConvert(oRDR.GetValue("KfzKennzeichen")) - ' Kundennummer einlesen - Dim KdNr As Integer = SQl.getValueTxtBySql("SELECT AdressenNr FROM Kreditkarten WHERE KartenNr='" & KartenNr & "'", "SDL",,, -1) + Dim strSQLASFINAG = "SELECT cardNumber, ValidTo, OBUID, vehicleLicensePlate, nationality, contractDate, vehicleCategory, emissionCategory, status FROM vwCLFBody" - If KdNr > 0 Then + Dim dtAsfinag As DataTable = SQl.loadDgvBySql_Param(strSQLASFINAG, "ASFINAG") - Call fktKundenSDLVerwalten(KdNr, SDLNr) - Call fktKundenLkwVerwalten(KdNr, oRDR.GetValue("KfzKennzeichen"), oRDR.GetValue("Nationalität")) + If dtAsfinag.Rows.Count < 1 Then + Return False + End If - Dim SDL = New VERAG_PROG_ALLGEMEIN.cSDL(KdNr, oRDR.GetValue("KfzKennzeichen"), SDLNr) - If Not SDL.hasentry Then - SDL.KundenNr = KdNr - SDL.KfzKennzeichen = KfzKennzeichen - SDL.SDLNr = SDLNr - SDL.History = 0 'fktLiefereHistorywert(!KundenNr, !SDLNr) - SDL.Erfassungsdatum = Now - Else - SDL.Änderungsdatum = Now - End If - SDL.Sachbearbeiter = "ASFINAG" + For Each row As DataRow In dtAsfinag.Rows - Dim Validto = SQL.checkNullStr(oRDR.GetValue("DatumVertragsabschluss")) + Dim KdNr As Integer = SQl.getValueTxtBySql("SELECT Kreditkarten.AdressenNr FROM Kreditkarten WHERE Kreditkarten.KartenNr='" & row.Item("cardNumber") & "'", "FMZOLL",,, -1) - SDL.KartenNr = SQL.checkNullStr(oRDR.GetValue("CardNumber")) - If Validto <> "" Then - SDL.GültigBis = DateAdd("d", -1, DateAdd("m", 1, DateSerial("20" & Mid(Validto, 1, 2), Mid(Validto, 3, 2), 1))) - End If - SDL.OBUID = SQL.checkNullStr(oRDR.GetValue("OBUID")) - SDL.Vertragsabschlussdatum = SQL.checkNullStr(oRDR.GetValue("DatumVertragsabschluss")) - SDL.Kategorie = SQL.checkNullStr(oRDR.GetValue("Kategorie")) - SDL.Schadstoffklasse = SQL.checkNullStr(oRDR.GetValue("Schadstoffklasse")) - SDL.Status = SQL.checkNullStr(oRDR.GetValue("Status")) - SDL.SAVE() + If KdNr > 0 Then + + Call fktKundenSDLVerwalten(KdNr, SDLNr) + Call fktKundenLkwVerwalten(KdNr, row.Item("vehicleLicensePlate"), row.Item("nationality")) + + ' Die MautAT Tabelle aktualisieren. + + Dim SDL = New VERAG_PROG_ALLGEMEIN.cSDL(KdNr, row.Item("vehicleLicensePlate"), SDLNr) + + If Not SDL.hasentry Then + SDL.KundenNr = KdNr + SDL.KfzKennzeichen = row.Item("vehicleLicensePlate") + SDL.SDLNr = SDLNr + SDL.History = 0 'fktLiefereHistorywert(!KundenNr, !SDLNr) + SDL.Erfassungsdatum = Now + Else + SDL.Änderungsdatum = Now + End If + SDL.Sachbearbeiter = "ASFINAG" + + Dim Validto = SQl.checkNullStr(row.Item("contractDate")) + + SDL.KartenNr = SQl.checkNullStr(row.Item("cardNumber")) + If Validto <> "" Then + 'MsgBox(Mid(Validto, 7, 2) & " " & Mid(Validto, 4, 2)) + SDL.GültigBis = DateAdd("d", -1, DateAdd("m", 1, DateSerial("20" & Mid(Validto, 7, 2), Mid(Validto, 4, 2), 1))) 'noch im DETAIL checken! End If - End While - End Using - End Using - con.Close() + SDL.OBUID = SQl.checkNullStr(row.Item("OBUID")) + SDL.Vertragsabschlussdatum = SQl.checkNullStr(row.Item("contractDate")) + SDL.Kategorie = SQl.checkNullStr(row.Item("vehicleCategory")) + SDL.Schadstoffklasse = SQl.checkNullStr(row.Item("emissionCategory")) + SDL.Status = SQl.checkNullStr(row.Item("status")) + SDL.SAVE() + End If + + Dim strOBU = "OBU " & row.Item("OBUID") & " jetzt in " & KdNr & "/" & row.Item("vehicleLicensePlate") & "/" & SDLNr & "/" & 0 & "." + + ' Mehrfachvorkommen der OBU-ID prüfen. + Dim strSQL = "SELECT OBUID, Vermerk FROM vwSDL WHERE (SDLNr = " & SDLNr & ") And (OBUID = '" & row.Item("OBUID") & "') And ((KundenNr <> " & KdNr & ") Or (KfzKennzeichen <> '" & row.Item("vehicleLicensePlate") & "'))" + Dim dtCheckOBUID As DataTable = SQl.loadDgvBySql_Param(strSQL, "SDL") + + If dtCheckOBUID.Rows.Count > 0 Then + + For Each rowCheckOBUID As DataRow In dtCheckOBUID.Rows + Dim SDL = New VERAG_PROG_ALLGEMEIN.cSDL(KdNr, row.Item("vehicleLicensePlate"), SDLNr) + Dim leftString = Trim(strOBU & " " & SDL.Vermerk.Substring(0, 100)) + SDL.Vermerk = Trim(strOBU & " " & SDL.Vermerk.Substring(0, 100)) + SDL.OBUID = DBNull.Value + SDL.SAVE() + + Next + End If + + Next + + + 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) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.SHOW) Return False End Try End Function @@ -3215,7 +3296,6 @@ Public Class frmStartOptions fktConvert = fktConvert & Mid(KfzKennzeichen, I, 1) End Select Next I - End Function Public Function fktKundenLkwVerwalten(ByRef KdNr As Integer, ByRef KfzKennzeichen As String, Nationalitaet As String) @@ -3494,13 +3574,14 @@ Public Class frmStartOptions Dim f As New frmAsfinag_NachrichtenVerabeitung("clf") f.ShowDialog() Me.Visible = True + 'ASFINAG_LKW(False) End Sub Private Sub LinkLabel42_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel42.LinkClicked VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True Me.Cursor = Cursors.WaitCursor Dim blt = New cAsfinag.Exportist - blt.initPFad() + blt.initExportPfade() showPic(blt.exportiereWhiteList, PictureBox18) Me.Cursor = Cursors.Default End Sub @@ -3509,103 +3590,15 @@ Public Class frmStartOptions VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True Me.Cursor = Cursors.WaitCursor Dim blt = New cAsfinag.Exportist - blt.initPFad() + blt.initExportPfade() showPic(blt.exportiereBlackList, PictureBox19) Me.Cursor = Cursors.Default End Sub Private Sub LinkLabel45_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel45.LinkClicked - Dim MyData As String = "" - Dim SQL = New SQL - Dim erg = True + showPic(importEZOLLWechselkurse(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM), PictureBox20) - Dim firstDaycurrentMonth = DateTime.Now.AddMonths(0) - firstDaycurrentMonth = New DateTime(firstDaycurrentMonth.Year, firstDaycurrentMonth.Month, 1) - - Dim lastDaycurrentMonth = DateTime.Now.AddMonths(1) - lastDaycurrentMonth = New DateTime(lastDaycurrentMonth.Year, lastDaycurrentMonth.Month, 1).AddDays(-1) - - Dim kursart = "1" 'notirete Währung - Dim startdatum_tag2 = firstDaycurrentMonth.Day - Dim startdatum_monat2 = firstDaycurrentMonth.Month - Dim startdatum_jahr2 = firstDaycurrentMonth.Year - Dim enddatum_tag2 = lastDaycurrentMonth.Day - Dim enddatum_monat2 = lastDaycurrentMonth.Month - Dim enddatum_jahr2 = lastDaycurrentMonth.Year - - Try - System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 - - Using WC As New System.Net.WebClient() - ' C0008_URL() - WC.Encoding = ASCIIEncoding.UTF8 - Dim URL = "https://www.zoll.de/SiteGlobals/Functions/Kurse/KursExport.xml?view=xmlexportkursesearchresultZOLLWeb&kursart=" & kursart & - "&startdatum_tag2=" & startdatum_tag2 & - "&startdatum_monat2=" & startdatum_monat2 & - "&startdatum_jahr2=" & startdatum_jahr2 & - "&enddatum_tag2=" & enddatum_tag2 & - "&enddatum_monat2=" & enddatum_monat2 & - "&enddatum_jahr2=" & enddatum_jahr2 & - "&sort=asc&spalte=gueltigkeit" - If URL = String.Empty Then Exit Sub - - MyData = WC.DownloadString(URL) - Dim doc As New XmlDocument() - doc.LoadXml(MyData) - If doc.HasChildNodes Then - - If doc.GetElementsByTagName("kurs").Count > 0 Then - Dim endDatum, startDatum - Dim count As Integer = 1 - For Each node As XmlElement In doc.GetElementsByTagName("kurs") - Dim wk As New cFremdwaehrungskurse() - If node.Attributes("id") IsNot Nothing Then wk.fw_id = node.Attributes("id").Value - If node.HasChildNodes Then - For Each element As XmlElement In node.ChildNodes - If element.Name = "land" AndAlso element.InnerText <> "" Then wk.fw_land = element.InnerText - If element.Name = "iso2" AndAlso element.InnerText <> "" Then wk.fw_iso2 = element.InnerText - If element.Name = "iso3" AndAlso element.InnerText <> "" Then wk.fw_iso3 = element.InnerText - If element.Name = "kurswert" AndAlso element.InnerText <> "" Then wk.fw_kurswert = element.InnerText - If element.Name = "startdatum" AndAlso element.InnerText <> "" Then - wk.fw_startdatum = element.InnerText - startDatum = wk.fw_startdatum - End If - If element.Name = "enddatum" AndAlso element.InnerText <> "" Then - wk.fw_enddatum = element.InnerText - endDatum = wk.fw_enddatum - End If - Next - count = count + 1 - wk.SAVE() - End If - Next - Dim wk_euro As New cFremdwaehrungskurse() - wk_euro.fw_id = 0 - wk_euro.fw_land = "Europa" - wk_euro.fw_kurswert = 1 - wk_euro.fw_iso3 = "EUR" - wk_euro.fw_iso2 = "EU" - wk_euro.fw_startdatum = firstDaycurrentMonth.ToShortDateString() - wk_euro.fw_enddatum = lastDaycurrentMonth.ToShortDateString() - wk_euro.SAVE() - - - - Dim sqlCount = SQL.getValueTxtBySqlVarList("SELECT isnull(count(*),0) FROM tblZOLL_Wechselkurse WHERE [fw_startdatum]='" & startDatum & "' AND fw_enddatum='" & endDatum & "'", "FMZOLL") - If count <> sqlCount Then - MsgBox("Anzahl der Importierten Datensätze:" & sqlCount & vbNewLine & "Anzahl Datensätze in Datei: " & count) - erg = False - End If - End If - showPic(erg, PictureBox20) - End If - - End Using - - Catch ex As Exception - MsgBox(ex.Message & ex.StackTrace) - End Try End Sub Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click Dim f As New frmDatenarchivarchiv @@ -3755,6 +3748,136 @@ Public Class frmStartOptions doAASVermerke_Ankunft() End Sub + Private Sub LinkLabel46_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel46.LinkClicked + + Try + + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + Dim frm As New Form + Dim dgv As New DataGridView() + Dim dt As DataTable = SQL.loadDgvBySql("SELECT dbo.CLFBody.* FROM dbo.CLF INNER JOIN dbo.CLFBody ON dbo.CLF.PKHistory = dbo.CLFBody.PKHistory AND dbo.CLF.PKFileName = dbo.CLFBody.PKFileName", "ASFINAG") + + dgv.DataSource = dt + If dgv IsNot Nothing Then + frm.Size = New Size(1400, 1000) + dgv.Size = New Size(frm.Size.Width - 50, frm.Size.Height - 50) + dgv.Dock = DockStyle.Fill + dgv.Anchor = AnchorStyles.Left + dgv.Anchor = AnchorStyles.Top + frm.Controls.Add(dgv) + frm.StartPosition = FormStartPosition.CenterScreen + frm.ShowDialog() + End If + + + Catch ex As Exception + + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Sub + + Private Function importEZOLLWechselkurse(isTestsystem As Boolean) As Boolean + + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = isTestsystem + + Dim MyData As String = "" + Dim SQL = New SQL + Dim erg = True + + Dim firstDaycurrentMonth = DateTime.Now.AddMonths(0) + firstDaycurrentMonth = New DateTime(firstDaycurrentMonth.Year, firstDaycurrentMonth.Month, 1) + + Dim lastDaycurrentMonth = DateTime.Now.AddMonths(1) + lastDaycurrentMonth = New DateTime(lastDaycurrentMonth.Year, lastDaycurrentMonth.Month, 1).AddDays(-1) + + Dim kursart = "1" 'notirete Währung + Dim startdatum_tag2 = firstDaycurrentMonth.Day + Dim startdatum_monat2 = firstDaycurrentMonth.Month + Dim startdatum_jahr2 = firstDaycurrentMonth.Year + Dim enddatum_tag2 = lastDaycurrentMonth.Day + Dim enddatum_monat2 = lastDaycurrentMonth.Month + Dim enddatum_jahr2 = lastDaycurrentMonth.Year + + Try + System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 + + Using WC As New System.Net.WebClient() + ' C0008_URL() + WC.Encoding = ASCIIEncoding.UTF8 + Dim URL = "https://www.zoll.de/SiteGlobals/Functions/Kurse/KursExport.xml?view=xmlexportkursesearchresultZOLLWeb&kursart=" & kursart & + "&startdatum_tag2=" & startdatum_tag2 & + "&startdatum_monat2=" & startdatum_monat2 & + "&startdatum_jahr2=" & startdatum_jahr2 & + "&enddatum_tag2=" & enddatum_tag2 & + "&enddatum_monat2=" & enddatum_monat2 & + "&enddatum_jahr2=" & enddatum_jahr2 & + "&sort=asc&spalte=gueltigkeit" + If URL = String.Empty Then Return False + + MyData = WC.DownloadString(URL) + Dim doc As New XmlDocument() + doc.LoadXml(MyData) + If doc.HasChildNodes Then + + If doc.GetElementsByTagName("kurs").Count > 0 Then + Dim endDatum, startDatum + Dim count As Integer = 1 + For Each node As XmlElement In doc.GetElementsByTagName("kurs") + Dim wk As New cFremdwaehrungskurse() + If node.Attributes("id") IsNot Nothing Then wk.fw_id = node.Attributes("id").Value + If node.HasChildNodes Then + For Each element As XmlElement In node.ChildNodes + If element.Name = "land" AndAlso element.InnerText <> "" Then wk.fw_land = element.InnerText + If element.Name = "iso2" AndAlso element.InnerText <> "" Then wk.fw_iso2 = element.InnerText + If element.Name = "iso3" AndAlso element.InnerText <> "" Then wk.fw_iso3 = element.InnerText + If element.Name = "kurswert" AndAlso element.InnerText <> "" Then wk.fw_kurswert = element.InnerText + If element.Name = "startdatum" AndAlso element.InnerText <> "" Then + wk.fw_startdatum = element.InnerText + startDatum = wk.fw_startdatum + End If + If element.Name = "enddatum" AndAlso element.InnerText <> "" Then + wk.fw_enddatum = element.InnerText + endDatum = wk.fw_enddatum + End If + Next + count = count + 1 + wk.SAVE() + End If + Next + Dim wk_euro As New cFremdwaehrungskurse() + wk_euro.fw_id = 0 + wk_euro.fw_land = "Europa" + wk_euro.fw_kurswert = 1 + wk_euro.fw_iso3 = "EUR" + wk_euro.fw_iso2 = "EU" + wk_euro.fw_startdatum = firstDaycurrentMonth.ToShortDateString() + wk_euro.fw_enddatum = lastDaycurrentMonth.ToShortDateString() + wk_euro.SAVE() + + Dim sqlCount = SQL.getValueTxtBySqlVarList("SELECT isnull(count(*),0) FROM tblZOLL_Wechselkurse WHERE [fw_startdatum]='" & startDatum & "' AND fw_enddatum='" & endDatum & "'", "FMZOLL") + If count <> sqlCount Then + MsgBox("Anzahl der Importierten Datensätze:" & sqlCount & vbNewLine & "Anzahl Datensätze in Datei: " & count) + erg = False + End If + + End If + End If + + End Using + + Return erg + + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + End Function + + Private Sub LinkLabel47_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel47.LinkClicked + VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True + showPic(ASFINAG_LKW(False), PictureBox21) + End Sub + Private Sub LinkLabel46_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel99.LinkClicked Me.Cursor = Cursors.WaitCursor Try