MSKW43
This commit is contained in:
parent
0addb3a1e8
commit
8a9ce6726a
@ -378,8 +378,8 @@ Public Class ClassControlBuilder
|
||||
Else
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> ctrlvalID is Nothing - Attention.....", False, False)
|
||||
If CURRENT_RECORD_ID <> 0 Then
|
||||
If ClassControlCommandsUI.InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, value, CURRENT_ENTITY_ID) = False Then
|
||||
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.InsertControlValue (1) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, value), False)
|
||||
If ClassControlCommandsUI.CreateControlProcedure(CONTROL_ID, CURRENT_RECORD_ID, value, CURRENT_ENTITY_ID) = 0 Then
|
||||
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.CreateControlProcedure (1) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, value), False)
|
||||
Else
|
||||
ControlsChanged.Remove(CONTROL_ID)
|
||||
End If
|
||||
@ -438,19 +438,14 @@ Public Class ClassControlBuilder
|
||||
End If
|
||||
|
||||
Else
|
||||
If ClassControlCommandsUI.InsertControlValue(dependingControlId, CURRENT_RECORD_ID, dateValue, CURRENT_ENTITY_ID) = True Then
|
||||
If ClassControlCommandsUI.CreateControlProcedure(dependingControlId, CURRENT_RECORD_ID, dateValue, CURRENT_ENTITY_ID) = 1 Then
|
||||
ControlsChanged.Remove(dependingControlId)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue (DateEdit)!", False)
|
||||
Else
|
||||
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.InsertControlValue (DateEdit) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, dateValue), False)
|
||||
|
||||
End If
|
||||
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", dependingControlId, CURRENT_RECORD_ID, dateValue, USER_USERNAME)
|
||||
'If ClassDatabase.Execute_non_Query(ins) = True Then
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
|
||||
'Else
|
||||
' ClassLogger.Add(" >> Check Insert depending control value as it was nothing and Insert was not successful- Insert-Command '" & ins & "'")
|
||||
'End If
|
||||
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
@ -511,18 +506,13 @@ Public Class ClassControlBuilder
|
||||
'End If
|
||||
|
||||
Else
|
||||
If ClassControlCommandsUI.InsertControlValue(dependingControlId, CURRENT_RECORD_ID, value1, CURRENT_ENTITY_ID) = True Then
|
||||
If ClassControlCommandsUI.CreateControlProcedure(dependingControlId, CURRENT_RECORD_ID, value1, CURRENT_ENTITY_ID) = 1 Then
|
||||
ControlsChanged.Remove(dependingControlId)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue (TextBox)!", False)
|
||||
Else
|
||||
ClassLogger.Add(String.Format(" >> ClassControlCommandsUI.InsertControlValue (TextBox) was not successfull - ControlID: {0},RecordID: {1},value: {2}'", CONTROL_ID, CURRENT_RECORD_ID, value1), False)
|
||||
End If
|
||||
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", dependingControlId, CURRENT_RECORD_ID, value1, USER_USERNAME)
|
||||
'If ClassDatabase.Execute_non_Query(ins) = True Then
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
|
||||
'Else
|
||||
' ClassLogger.Add(" >> Check Insert depending control value as it was nothing and Insert was not successful- Insert-Command '" & ins & "'")
|
||||
'End If
|
||||
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Imports DD_Record_Organizer.ClassDatabase
|
||||
Imports DD_Record_Organizer.ClassControlBuilder
|
||||
Imports DD_LIB_Standards
|
||||
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
Public Class ClassControlCommandsUI
|
||||
Private _CtrlBuilder As ClassControlBuilder
|
||||
@ -333,13 +333,17 @@ Public Class ClassControlCommandsUI
|
||||
Try
|
||||
Dim ADDED_WHO As String = USER_USERNAME
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> (SaveRecord) Update RecordID: " & RecordID, False)
|
||||
UpdateAllControls(FormID, RecordID, _CtrlBuilder.AllControls)
|
||||
Return "Datensatz aktualisiert - " & Now
|
||||
If UpdateAllControls(FormID, RecordID, _CtrlBuilder.AllControls) = True Then
|
||||
Return "Datensatz aktualisiert - " & Now
|
||||
Else
|
||||
Return "ERROR"
|
||||
End If
|
||||
|
||||
'End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in SaveRecord: " & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub InsertAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
||||
@ -369,7 +373,7 @@ Public Class ClassControlCommandsUI
|
||||
InsertAllControls(FormID, RecordID, DirectCast(ctrl, GroupBox).Controls)
|
||||
End If
|
||||
Else
|
||||
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
|
||||
CreateControlProcedure(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
@ -481,8 +485,9 @@ Public Class ClassControlCommandsUI
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
||||
Private Function UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
|
||||
Try
|
||||
Dim _error As Boolean = False
|
||||
Dim sw As New SW("UpdateAllControls")
|
||||
Dim del = String.Format("DELETE FROM TBPMO_CONTROL_VALUE_CHANGE_HISTORY WHERE UPPER(ADDED_WHO) = '{0}'", USER_USERNAME.ToUpper)
|
||||
ClassDatabase.Execute_non_Query(del)
|
||||
@ -539,7 +544,9 @@ Public Class ClassControlCommandsUI
|
||||
Continue For
|
||||
End If
|
||||
If CONTROL_VALUE <> "" Then
|
||||
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID)
|
||||
If CreateControlProcedure(CONTROL_ID, RecordID, CONTROL_VALUE, CURRENT_ENTITY_ID) = 0 Then
|
||||
_error = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Else ' Update Control
|
||||
@ -572,13 +579,18 @@ Public Class ClassControlCommandsUI
|
||||
|
||||
|
||||
Next
|
||||
|
||||
sw.Done()
|
||||
If _error = True Then
|
||||
Return False
|
||||
Else
|
||||
Return True
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in UpdateAllControls: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
End Function
|
||||
|
||||
Public Shared Sub UpdateMultipleValues(ControlId As Integer, RecordId As Integer, value As String)
|
||||
Try
|
||||
@ -608,11 +620,8 @@ Public Class ClassControlCommandsUI
|
||||
If Not _addValue = "" Then
|
||||
Dim converted_value = Check_and_Format_Value(ControlId, RecordId, _addValue)
|
||||
If Not IsNothing(converted_value) Then
|
||||
ClassControlCommandsUI.InsertControlValue(ControlId, RecordId, converted_value, CURRENT_ENTITY_ID)
|
||||
ClassControlCommandsUI.CreateControlProcedure(ControlId, RecordId, converted_value, CURRENT_ENTITY_ID)
|
||||
|
||||
'Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID, RECORD_ID, VALUE,ADDED_WHO) VALUES({0}, {1}, '{2}','{3}')", ControlId, RecordId, converted_value, USER_USERNAME)
|
||||
'ClassDatabase.Execute_non_Query(ins)
|
||||
'ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(CURRENT_ENTITY_ID, ControlId, RecordId, converted_value)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
@ -831,6 +840,7 @@ Public Class ClassControlCommandsUI
|
||||
Dim oDate = ClassHelper.Convert_to_Database_Date(Value)
|
||||
Value = oDate.ToString()
|
||||
End Select
|
||||
Value = Value.Replace("'", "´")
|
||||
Return Value
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Check_and_Format_Value: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
@ -838,7 +848,39 @@ Public Class ClassControlCommandsUI
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function InsertControlValue(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
|
||||
Public Shared Function CreateControlProcedure(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
|
||||
Try
|
||||
Dim _result As Integer
|
||||
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
|
||||
If Not IsNothing(converted_value) Then
|
||||
Dim connection As New SqlConnection
|
||||
connection.ConnectionString = MyConnectionString
|
||||
Using cmd As New SqlCommand("PRPMO_CREATE_CONTROL_VALUE", connection)
|
||||
cmd.CommandType = CommandType.StoredProcedure
|
||||
cmd.Parameters.AddWithValue("@pRECORD_ID", RecordID)
|
||||
cmd.Parameters.AddWithValue("@pCONTROL_ID", ControlID)
|
||||
cmd.Parameters.AddWithValue("@pVALUE", converted_value)
|
||||
cmd.Parameters.AddWithValue("@pADDED_WHO", USER_USERNAME)
|
||||
cmd.Parameters.Add("@pRESULT", SqlDbType.Int)
|
||||
cmd.Parameters("@pRESULT").Direction = ParameterDirection.Output
|
||||
connection.Open()
|
||||
cmd.ExecuteNonQuery()
|
||||
connection.Close()
|
||||
_result = cmd.Parameters("@pRESULT").Value
|
||||
If _result = 1 And clsDatabase.DB_PROXY_INITIALIZED = True Then
|
||||
ClassProxy.PRPROXY_CONTROL_VALUE_UPD_INS(ENTITY_ID, ControlID, RecordID, converted_value)
|
||||
End If
|
||||
Return _result
|
||||
End Using
|
||||
Else
|
||||
_result = 0
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Error", "Error in CreateControlProcedure: ", ex.Message)
|
||||
Return 0
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function InsertControlValueOld(ControlID As Integer, RecordID As Integer, Value As String, ENTITY_ID As Integer)
|
||||
Try
|
||||
Dim AddedWho = USER_USERNAME
|
||||
Dim converted_value = Check_and_Format_Value(ControlID, RecordID, Value)
|
||||
|
||||
@ -164,6 +164,24 @@ Public Class ClassProxy
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
Public Shared Function PRPROXY_CONTROL_VALUE_RENEW(RecordID As Integer)
|
||||
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
|
||||
Return False
|
||||
End If
|
||||
Dim sel = String.Format("DECLARE @return_value int" & vbNewLine &
|
||||
"EXEC @return_value = [dbo].[PRPROXY_CONTROL_VALUE_RENEW] {0}" & vbNewLine &
|
||||
"SELECT 'Return Value' = @return_value", RecordID)
|
||||
Dim Result As DataTable = ClassDatabase.Return_Datatable(sel, True)
|
||||
If Not IsNothing(Result) Then
|
||||
If Result.Rows(0).Item(0) = 0 Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
Public Shared Function IS_PROXY_BUSY()
|
||||
If LICENSE_PROXY = False Or clsDatabase.DB_PROXY_INITIALIZED = False Then
|
||||
Return False
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports DD_LIB_Standards
|
||||
|
||||
Public Class ClassRecordCommands
|
||||
Public Shared Function CreateRecordProcedure(formId As Integer)
|
||||
@ -20,7 +21,9 @@ Public Class ClassRecordCommands
|
||||
connection.Close()
|
||||
|
||||
Dim GUID As Integer = cmd.Parameters("@pRESULT").Value
|
||||
|
||||
If GUID > 0 And clsDatabase.DB_PROXY_INITIALIZED = True Then
|
||||
ClassProxy.PRPROXY_CONTROL_VALUE_RENEW(GUID)
|
||||
End If
|
||||
Return GUID
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
|
||||
@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.9.4")>
|
||||
<Assembly: AssemblyVersion("2.4.9.5")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
|
||||
<Assembly: NeutralResourcesLanguageAttribute("")>
|
||||
@ -189,6 +189,7 @@ Public Class frmConstructor_Main
|
||||
Private IW_COMMENT As String
|
||||
Private BACKGROUND_HELPER As ClassBackgroundHelper
|
||||
Private ROW_READ_ONLY As Boolean = False
|
||||
Private ERROR_WHILE_SAVING As Boolean = False
|
||||
|
||||
Public Enum EditState
|
||||
None
|
||||
@ -900,17 +901,7 @@ Public Class frmConstructor_Main
|
||||
End Function
|
||||
|
||||
Private Sub grvwGrid_BeforeLeaveRow(sender As Object, e As RowAllowEventArgs) Handles grvwGrid.BeforeLeaveRow
|
||||
'If RECORD_CHANGED = True Then
|
||||
' Dim ResultMessage As String
|
||||
' Try
|
||||
' ResultMessage = Update_Record_OnChange()
|
||||
' Catch ex As Exception
|
||||
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
|
||||
' Me.Cursor = Cursors.Default
|
||||
' ' Verhindert den Zeilenwechsel
|
||||
' e.Allow = False
|
||||
' End Try
|
||||
'End If
|
||||
|
||||
If TrySave_Automatic() = False Then
|
||||
e.Allow = False
|
||||
Else
|
||||
@ -960,7 +951,7 @@ Public Class frmConstructor_Main
|
||||
Exit Sub
|
||||
End If
|
||||
If NODE_NAVIGATION = True Then
|
||||
Exit Sub
|
||||
' Exit Sub
|
||||
End If
|
||||
' If NODE_NAVIGATION = False Then
|
||||
Dim Grid_RecordID = Get_Focused_Row_Cell_Value("Record-ID")
|
||||
@ -979,7 +970,7 @@ Public Class frmConstructor_Main
|
||||
CURRENT_RECORD_ID = RECID
|
||||
CURRENT_SEARCH_TYPE = "RECORD"
|
||||
|
||||
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False Then
|
||||
If RECID = RECORD_ID And ENTITY_RECORD_COUNT > 1 And _refresh = False And ERROR_WHILE_SAVING = False Then
|
||||
Exit Sub
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> RowHandler: RID: " & RECID.ToString & " - " & Now, False)
|
||||
@ -1696,7 +1687,7 @@ Public Class frmConstructor_Main
|
||||
|
||||
Private Sub tsButtonAdd_Click(sender As Object, e As EventArgs) Handles tsButtonAdd.Click
|
||||
If USER_PERSONIFIED_TEST = True Then
|
||||
ClassHelper.MSGBOX_Handler("INFO", "Attention", "You are using ADDi in personified mode! Adding records is not allowed!")
|
||||
ClassHelper.MSGBOX_Handler("INFO", "Attention", "You are using ADDI in personified mode! Adding records is not allowed!")
|
||||
Exit Sub
|
||||
End If
|
||||
'If ClassProxy.IS_PROXY_BUSY = True Then
|
||||
@ -1749,8 +1740,7 @@ Public Class frmConstructor_Main
|
||||
' Try
|
||||
If TCDetails.SelectedTabPage.Text.StartsWith("Pos") = False Then
|
||||
SELECTED_RECORD_ID = 0
|
||||
Lock_RecordControls(False)
|
||||
tsButtonCancel.Visible = True
|
||||
' Lock_RecordControls(False)
|
||||
|
||||
CURRENT_PARENT_ENTITY_ID = PARENT_ENTITYID
|
||||
' Den Record anlegen, damit wir eine RECORD_ID bekommen
|
||||
@ -1758,6 +1748,8 @@ Public Class frmConstructor_Main
|
||||
Dim recordId = ClassRecordCommands.CreateRecordProcedure(ENTITY_ID)
|
||||
|
||||
If recordId > 0 Then
|
||||
Lock_RecordControls(False)
|
||||
tsButtonCancel.Visible = True
|
||||
' Die RECORD_ID auslesen und setzen
|
||||
NEW_RECORD_ID = recordId
|
||||
CURRENT_RECORD_ID = NEW_RECORD_ID
|
||||
@ -1790,6 +1782,9 @@ Public Class frmConstructor_Main
|
||||
tslblLocked.Visible = False
|
||||
tslblFileslocked.Visible = False
|
||||
tsButtonAdd.Enabled = False
|
||||
Else
|
||||
Me.Cursor = Cursors.Default
|
||||
MsgBox("Could not create a new record. Please check the log for further informations!", MsgBoxStyle.Critical)
|
||||
End If
|
||||
End If
|
||||
' Catch ex As Exception
|
||||
@ -1801,6 +1796,9 @@ Public Class frmConstructor_Main
|
||||
|
||||
Private Sub tsButtonSave_Click(sender As Object, e As EventArgs) Handles tsButtonSave.Click
|
||||
Save_Record()
|
||||
If ERROR_WHILE_SAVING = True Then
|
||||
Column_Row_Handler()
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
@ -2055,16 +2053,7 @@ Public Class frmConstructor_Main
|
||||
If RECORD_ENABLED = False Then
|
||||
EnableEditMode()
|
||||
Else
|
||||
'If RECORD_CHANGED = True Then
|
||||
' Dim ResultMessage As String
|
||||
' Try
|
||||
' ResultMessage = Update_Record_OnChange()
|
||||
' Catch ex As Exception
|
||||
' MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error in saving Record")
|
||||
' Me.Cursor = Cursors.Default
|
||||
' Exit Sub
|
||||
' End Try
|
||||
'End If
|
||||
|
||||
If TrySave_Automatic() = True Then
|
||||
DisableEditMode()
|
||||
End If
|
||||
@ -2845,7 +2834,10 @@ Public Class frmConstructor_Main
|
||||
End If
|
||||
Try
|
||||
Dim ResultMessage = Update_Record_OnChange()
|
||||
Update_Status_Label(True, ResultMessage)
|
||||
If ResultMessage <> "ERROR" Then
|
||||
Update_Status_Label(True, ResultMessage)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in Save Record Changes: " & ex.Message, ex.StackTrace)
|
||||
End Try
|
||||
@ -4810,11 +4802,11 @@ Public Class frmConstructor_Main
|
||||
End If
|
||||
' Wenn cId = 0, existiert noch kein wert für diese controlId/FormId Kombination
|
||||
If cId = 0 Then
|
||||
ClassControlCommandsUI.InsertControlValue(controlid, POS_RECORD_ID, e.Value, POS_ENTITY)
|
||||
Update_Status_Label(True, "Record was added!", EditState.Insert)
|
||||
ClassControlCommandsUI.CreateControlProcedure(controlid, POS_RECORD_ID, e.Value, POS_ENTITY)
|
||||
Update_Status_Label(True, "Value was added!", EditState.Insert)
|
||||
Else
|
||||
ClassControlCommandsUI.UpdateControlValue(controlid, POS_RECORD_ID, e.Value, POS_ENTITY)
|
||||
Update_Status_Label(True, "Record was updated!", EditState.Update)
|
||||
Update_Status_Label(True, "Value was updated!", EditState.Update)
|
||||
End If
|
||||
Else
|
||||
Update_Status_Label(False)
|
||||
@ -5295,10 +5287,15 @@ Public Class frmConstructor_Main
|
||||
End Function
|
||||
|
||||
Public Sub TrySave_DoSave()
|
||||
ERROR_WHILE_SAVING = False
|
||||
' Record Speichern
|
||||
Dim ResultMessage = CtrlCommandUI.SaveRecord(SELECTED_RECORD_ID, ENTITY_ID, PARENT_RECORDID)
|
||||
' Status anzeigen
|
||||
Update_Status_Label(True, ResultMessage)
|
||||
If ResultMessage <> "ERROR" Then
|
||||
' Status anzeigen
|
||||
Update_Status_Label(True, ResultMessage)
|
||||
Else
|
||||
ERROR_WHILE_SAVING = True
|
||||
End If
|
||||
'Jetzt die für die Entität notwendigen Prroceduren ausführen
|
||||
Customer_Run_Procedures()
|
||||
' RECORD_CHANGED zurücksetzen
|
||||
@ -6714,6 +6711,9 @@ Public Class frmConstructor_Main
|
||||
Refresh_Entity_Data()
|
||||
ElseIf e.KeyCode = Keys.Control And e.KeyCode = Keys.S Then
|
||||
Save_Record()
|
||||
If ERROR_WHILE_SAVING = True Then
|
||||
Column_Row_Handler()
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user