2023-11-06 Neuer Status "Teil-Signiert", "Vollständig Signiert"
Teil-Validierung
This commit is contained in:
parent
f4549c0481
commit
fc100df537
@ -5,8 +5,8 @@
|
||||
Created = 0
|
||||
Saved = 1
|
||||
Sent = 2
|
||||
PartSigned = 3
|
||||
CompleteSigned = 4
|
||||
PartlySigned = 3
|
||||
CompletelySigned = 4
|
||||
End Enum
|
||||
|
||||
Public Enum ElementStatus
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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).
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
|
||||
|
||||
18
EnvelopeGenerator.Common/Strings/Model.Designer.vb
generated
18
EnvelopeGenerator.Common/Strings/Model.Designer.vb
generated
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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()
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user