2023-11-06 Neuer Status "Teil-Signiert", "Vollständig Signiert"

Teil-Validierung
This commit is contained in:
PitzM 2023-11-06 16:23:05 +01:00
parent f4549c0481
commit fc100df537
11 changed files with 86 additions and 31 deletions

View File

@ -5,8 +5,8 @@
Created = 0
Saved = 1
Sent = 2
PartSigned = 3
CompleteSigned = 4
PartlySigned = 3
CompletelySigned = 4
End Enum
Public Enum ElementStatus

View File

@ -55,6 +55,21 @@
Return oErrors
End Function
Public Function ValidateReceiverDocumentData() As List(Of String)
Dim oErrors As New List(Of String)
If Documents.Count = 0 Then
oErrors.Add(My.Resources.Envelope.Missing_Documents)
End If
If Receivers.Count = 0 Then
oErrors.Add(My.Resources.Envelope.Missing_Receivers)
End If
Return oErrors
End Function
Private Function IsValidEmailAddress(pEmailAddress As String) As Boolean
Try
Dim oAddress = New System.Net.Mail.MailAddress(pEmailAddress)

View File

@ -2,7 +2,7 @@
Imports EnvelopeGenerator.Common.Constants
Public Class EnvelopeReceiver
Public Property Id As Integer
Public Property Id As Integer = 0
Public Property UserId As Integer
Public Property Signature As String

View File

@ -59,7 +59,7 @@ Public Class EnvelopeModel
Public Function List() As IEnumerable(Of Envelope)
Try
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId}"
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId} AND STATUS IN (0,1,2,3)"
Dim oTable = Database.GetDatatable(oSql)
Return oTable?.Rows.Cast(Of DataRow).
@ -73,7 +73,7 @@ Public Class EnvelopeModel
Public Function ListCompleted() As IEnumerable(Of Envelope)
Try
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId} AND STATUS = "
Dim oSql = $"SELECT * FROM [dbo].[TBSIG_ENVELOPE] WHERE USER_ID = {State.UserId} AND STATUS = 4"
Dim oTable = Database.GetDatatable(oSql)
Return oTable?.Rows.Cast(Of DataRow).

View File

@ -154,7 +154,7 @@
<value>Empfänger {0} hat keine gültige Email Addresse.</value>
</data>
<data name="Missing Documents" xml:space="preserve">
<value>Missing Documents</value>
<value>Fehlendes Dokument</value>
</data>
<data name="Missing Elements" xml:space="preserve">
<value>Es muss mindestens ein Signaturfeld gesetzt werden</value>
@ -163,13 +163,13 @@
<value>Für den Empfänger {0} gibt es noch kein Signaturfeld</value>
</data>
<data name="Missing Message" xml:space="preserve">
<value>Missing Message</value>
<value>Fehlende Nachricht</value>
</data>
<data name="Missing Receivers" xml:space="preserve">
<value>Missing Receivers</value>
<value>Fehlende Empfänger</value>
</data>
<data name="Missing Subject" xml:space="preserve">
<value>Missing Subject</value>
<value>Fehlender Betreff</value>
</data>
<data name="Only one file is allowed" xml:space="preserve">
<value>Es ist nur eine Datei zulässig!</value>

View File

@ -173,7 +173,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Missing Documents ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Fehlendes Dokument ähnelt.
'''</summary>
Public Shared ReadOnly Property Missing_Documents() As String
Get
@ -200,7 +200,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Missing Message ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Fehlende Nachricht ähnelt.
'''</summary>
Public Shared ReadOnly Property Missing_Message() As String
Get
@ -209,7 +209,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Missing Receivers ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Fehlende Empfänger ähnelt.
'''</summary>
Public Shared ReadOnly Property Missing_Receivers() As String
Get
@ -218,7 +218,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Missing Subject ähnelt.
''' Sucht eine lokalisierte Zeichenfolge, die Fehlender Betreff ähnelt.
'''</summary>
Public Shared ReadOnly Property Missing_Subject() As String
Get

View File

@ -73,6 +73,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Vollständig Signiert ähnelt.
'''</summary>
Friend Shared ReadOnly Property CompletelySigned() As String
Get
Return ResourceManager.GetString("CompletelySigned", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Vertrag ähnelt.
'''</summary>
@ -100,6 +109,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die Teil-Signiert ähnelt.
'''</summary>
Friend Shared ReadOnly Property PartlySigned() As String
Get
Return ResourceManager.GetString("PartlySigned", resourceCulture)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Zeichenfolge, die ReadAndSign ähnelt.
'''</summary>

View File

@ -120,6 +120,9 @@
<data name="Completed" xml:space="preserve">
<value>Abgeschlossen</value>
</data>
<data name="CompletelySigned" xml:space="preserve">
<value>Vollständig Signiert</value>
</data>
<data name="Contract" xml:space="preserve">
<value>Vertrag</value>
</data>
@ -129,6 +132,9 @@
<data name="Draft" xml:space="preserve">
<value>Entwurf</value>
</data>
<data name="PartlySigned" xml:space="preserve">
<value>Teil-Signiert</value>
</data>
<data name="ReadAndSign" xml:space="preserve">
<value>ReadAndSign</value>
</data>

View File

@ -265,21 +265,20 @@ Public Class EnvelopeEditorController
Dim oExistingReceivers As List(Of EnvelopeReceiver) = ReceiverModel.ListReceivers(pCurrentReceivers)
Dim oExistingAddresses = oExistingReceivers.Select(Function(r) r.Email)
' Neue Empfänger
Dim oNewReceivers = pCurrentReceivers.
Where(Function(r) Not oExistingAddresses.Contains(r.Email)).ToList()
For Each oReceiver In oNewReceivers
oReceiver.Id = 0
Next
' Empfänger, die bereits einmal verwendet wurden
For Each oCurrentReceiver In pCurrentReceivers
If oCurrentReceiver.Id = 0 Then
Dim oExistingReceiver As EnvelopeReceiver = oExistingReceivers.Where(Function(r) r.Email = oCurrentReceiver.Email).First()
oCurrentReceiver.Id = oExistingReceiver.Id
Dim oExistingReceiver As EnvelopeReceiver = oExistingReceivers.Where(Function(r) r.Email.Equals(oCurrentReceiver.Email, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault()
If oExistingReceiver IsNot Nothing Then
oCurrentReceiver.Id = oExistingReceiver.Id
End If
End If
Next
Dim oConnection = Database.GetConnection()
Dim oTransaction = oConnection.BeginTransaction()

View File

@ -1,5 +1,4 @@
Imports System.ComponentModel
Imports System.Runtime.Remoting.Messaging
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Views.Grid
@ -117,12 +116,15 @@ Partial Public Class frmEnvelopeEditor
Dim oHandle = SplashScreenManager.ShowOverlayForm(Me)
Try
If SaveEnvelopeWithReceiverDocumentValidation() = False Then
Return
End If
If ViewDocuments.GetSelectedRows().Count > 0 Then
Dim oDocument As EnvelopeDocument = DirectCast(ViewDocuments.GetFocusedRow(), EnvelopeDocument)
Dim oGDPictureKey As String = "21182889975216572111813147150675976632"
If SaveEnvelopeWithOutValidation() Then
Dim oForm As New frmFieldEditor() With {
Dim oForm As New frmFieldEditor() With {
.Document = Controller.Envelope.Documents.
Where(Function(d) d.Filename = oDocument.Filename).
SingleOrDefault(),
@ -130,8 +132,8 @@ Partial Public Class frmEnvelopeEditor
.Receivers = Receivers.ToList,
.State = State
}
oForm.ShowDialog()
End If
oForm.ShowDialog()
End If
Catch ex As Exception
Logger.Error(ex)
@ -148,6 +150,26 @@ Partial Public Class frmEnvelopeEditor
Return SaveEnvelope(False)
End Function
''' <summary>
''' Speichert den Envelope und prüft
''' ob Receiver und Dokument vorhanden ist.
''' </summary>
Private Function SaveEnvelopeWithReceiverDocumentValidation() As Boolean
If SaveEnvelope(False) = True Then
Dim oEnvelope = Controller.Envelope
Dim oErrors = oEnvelope.ValidateReceiverDocumentData()
If oErrors.Any Then
ShowValidationErrors(Resources.Envelope.Errors_when_saving_the_envelope, oErrors)
Return False
End If
Else
Return False
End If
Return True
End Function
Private Function SaveEnvelope(pWithValidation As Boolean) As Boolean
Dim oSubject = GetEditValueFromTextControl(txtSubject)
Dim oMessage = GetEditValueFromTextControl(txtMessage)

View File

@ -68,12 +68,7 @@ Public Class frmMain
Controller = New EnvelopeListController(State)
LoadEnvelopes()
GridBuilder = New GridBuilder(ViewEnvelopes)
GridBuilder.SetDefaults(ViewEnvelopes)
GridBuilder.SetReadOnlyOptions(ViewEnvelopes)
LoadCompletedEnvelopes()
Catch ex As Exception
Logger.Error(ex)