Imports DevExpress.Web

Public Class ucUsuExperiencia
    Inherits ucBase

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        RegisterCustomMessage(gridExperiencia)

        If Not IsPostBack Then
            ObjectExperiencia.SelectParameters("idUsuario").DefaultValue = CInt(Page.User.Identity.Name)


        End If
    End Sub


    Private Sub gridExperiencia_RowInserting(sender As Object, e As Data.ASPxDataInsertingEventArgs) Handles gridExperiencia.RowInserting
        e.NewValues("idUsuario") = CInt(Page.User.Identity.Name)
        Dim activo As Boolean = e.NewValues("activo")
        If activo Then
            If USU_ExperienciaBusinessObject.VerificarActivo(CInt(Page.User.Identity.Name)) Then
                CustomMessage("En un registro anterior ya mencionó que tiene un Trabajo Actual, favor corregir primero su Registro y agregar la fecha de finalización. Para posteriormente ingresar su Trabajo Actual", "Solo puede existir un trabajo Actual", gridExperiencia)
                e.Cancel = True
            End If
        End If
    End Sub

    Protected Sub gridExperiencia_RowUpdating(sender As Object, e As DevExpress.Web.Data.ASPxDataUpdatingEventArgs) Handles gridExperiencia.RowUpdating
        'e.NewValues("idUsuario") = CInt(Page.User.Identity.Name)
        e.NewValues("idExperiencia") = (CType(sender, ASPxGridView)).GetRowValuesByKeyValue(e.Keys(0), New String() {"idExperiencia"})
        Dim activo As Boolean = e.NewValues("activo")
        If activo Then
            If USU_ExperienciaBusinessObject.VerificarActivo(CInt(Page.User.Identity.Name)) Then
                CustomMessage("En un registro anterior ya mencionó que tiene un Trabajo Actual, favor corregir primero su Registro y agregar la fecha de finalización. Para posteriormente ingresar su Trabajo Actual", "Solo puede existir un trabajo Actual", gridExperiencia)
                e.Cancel = True
            End If
        End If
    End Sub


    Protected Sub gridExperiencia_CellEditorInitialize(sender As Object, e As ASPxGridViewEditorEventArgs) Handles gridExperiencia.CellEditorInitialize
        If e.Column.FieldName = "inicioAnio" Or e.Column.FieldName = "finAnio" Then
            Dim se As ASPxSpinEdit = CType(e.Editor, ASPxSpinEdit)

            se.MinValue = Now.Date.Year - 100
            se.MaxValue = Now.Date.Year
            If e.Column.FieldName = "finAnio" Then
                se.ClientSideEvents.Validation = "function(s,e) { e.isValid = ValidateEditorValue(); e.errorText = 'El año fin tiene que ser mayor o igual que el año de inicio.';}"
            End If
        End If

        If e.Column.FieldName = "finMes" Then
            Dim se As ASPxComboBox = CType(e.Editor, ASPxComboBox)
            se.ClientSideEvents.Validation = "function(s,e) { e.isValid = ValidateRequerido(); }"
        End If

    End Sub


    Protected Sub gridExperiencia_CustomColumnDisplayText(sender As Object, e As ASPxGridViewColumnDisplayTextEventArgs) Handles gridExperiencia.CustomColumnDisplayText
        If e.Column.FieldName = "finMes" Or e.Column.FieldName = "finAnio" Then
            If CBool(gridExperiencia.GetRowValues(e.VisibleIndex, "activo")) Then
                e.DisplayText = "-"
            End If

        End If
    End Sub

    Protected Sub gridExperiencia_InitNewRow(sender As Object, e As Data.ASPxDataInitNewRowEventArgs) Handles gridExperiencia.InitNewRow
        e.NewValues("idPais") = 65
    End Sub

End Class