diff --git a/MultiTool.Form/frmRowEditor.vb b/MultiTool.Form/frmRowEditor.vb index 45e49aa..809fb66 100644 --- a/MultiTool.Form/frmRowEditor.vb +++ b/MultiTool.Form/frmRowEditor.vb @@ -10,8 +10,13 @@ Imports DigitalData.Modules.Language Imports DevExpress.XtraEditors.Controls Imports System.Globalization Imports DevExpress.XtraEditors +Imports DigitalData.Modules.Logging Public Class frmRowEditor + Private ReadOnly LogConfig As LogConfig + Private ReadOnly Logger As Logger + Private ReadOnly FormHelper As FormHelper + Private ReadOnly _Columns As List(Of String) Private ReadOnly _DataTable As New DataTable Private ReadOnly _Accounts As List(Of Account) @@ -40,10 +45,14 @@ Public Class frmRowEditor End Get End Property - Public Sub New(pColumns As List(Of String), pDocumentRow As DocumentRow, pMandator As Mandator, pWinline As Data) + Public Sub New(pLogConfig As LogConfig, pColumns As List(Of String), pDocumentRow As DocumentRow, pMandator As Mandator, pWinline As Data) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() + LogConfig = pLogConfig + Logger = pLogConfig.GetLogger() + FormHelper = New FormHelper(pLogConfig) + _Columns = pColumns _Accounts = pWinline.Accounts.Where(Function(a) a.Mandator.Id = pMandator.Id).ToList() _Articles = pWinline.Articles.Where(Function(a) a.Mandator.Id = pMandator.Id).ToList() @@ -119,41 +128,47 @@ Public Class frmRowEditor End Sub Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick - GridView1.CloseEditor() + Try + GridView1.CloseEditor() - For Each oRow As DataRow In _DataTable.Rows - Dim oField = _DocumentRow.Fields. - Where(Function(f) f.Key = oRow.Item(COL_KEY)). - SingleOrDefault() + For Each oRow As DataRow In _DataTable.Rows + Dim oField = _DocumentRow.Fields. + Where(Function(f) f.Key = oRow.Item(COL_KEY)). + SingleOrDefault() - If oField.Key Is Nothing Then - oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue()) - End If - - Dim oFieldValue As FieldValue = oField.Value - Dim oGridValue As String = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty) - - If oField.Key = "Datum_Auftrag-Bestellung" And oGridValue.Length > 0 Then - If TryParseDate(oGridValue) Is Nothing Then - MsgBox(String.Format(My.Resources.frmRowEditorExtra.Datumswert_für___0___enthält_einen_ungüligen_Wert, oField.Key), MsgBoxStyle.Exclamation, Text) - Exit Sub + If oField.Key Is Nothing Then + oField = New KeyValuePair(Of String, FieldValue)(oRow.Item(COL_KEY), New FieldValue()) End If - End If - If Not oFieldValue.Final.Equals(oGridValue) Then - oFieldValue.Final = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty) + Dim oFieldValue As FieldValue = oField.Value + Dim oGridValue As String = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty) - If _DocumentRow.Fields.ContainsKey(oField.Key) Then - _DocumentRow.Fields.Item(oField.Key) = oFieldValue - Else - _DocumentRow.Fields.Add(oField.Key, oFieldValue) + If oField.Key = "Datum_Auftrag-Bestellung" And oGridValue.Length > 0 Then + If TryParseDate(oGridValue) Is Nothing Then + MsgBox(String.Format(My.Resources.frmRowEditorExtra.Datumswert_für___0___enthält_einen_ungüligen_Wert, oField.Key), MsgBoxStyle.Exclamation, Text) + Exit Sub + End If End If - End If - Next + If Not oFieldValue.Final.Equals(oGridValue) Then + Dim oValue = Utils.NotNull(oRow.Item(COL_VALUE_FINAL), String.Empty).ToString + oFieldValue.Final = oValue.Trim() - DialogResult = DialogResult.OK - Close() + If _DocumentRow.Fields.ContainsKey(oField.Key) Then + _DocumentRow.Fields.Item(oField.Key) = oFieldValue + Else + _DocumentRow.Fields.Add(oField.Key, oFieldValue) + End If + End If + + Next + + DialogResult = DialogResult.OK + Close() + Catch ex As Exception + MsgBox("") + Logger.Error(ex) + End Try End Sub Private Function TryParseDate(pValue As String)