Imports DevExpress.Web


Public Class ucCreacionPlaza
    Inherits ucBase

    Public Property idPlaza() As Integer
        Get
            If String.IsNullOrEmpty(Session("plaza")) Then Session("plaza") = 0
            Return Session("plaza")
        End Get
        Set(ByVal value As Integer)
            Session("plaza") = value
        End Set
    End Property

    Dim oPlaza As PlazaBusinessObject
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        gridPuesto.GridView.Width = gridPuesto.Width
        gridPuestoDotacion.GridView.Width = gridPuestoDotacion.Width

        If (Session("idIns").ToString = "32") Then
            gridPuesto.DataSourceID = "SqlPuestosMINSAL"
        End If

        If Not IsPostBack Then

            If Me.idPlaza <> 0 Then
                pcPlaza.TabPages.Item(1).ClientEnabled = True
                pcPlaza.TabPages.Item(2).ClientEnabled = True
                pcPlaza.TabPages.Item(3).ClientEnabled = True
                LlenarFormulario()
            Else
                'Limpia el formulario
                lblIdentificador.Text = ""
                txtVacantes.Text = "1"
                deInicio.Value = Now.Date
                deFinalizacion.Value = Now.Date.AddDays(1)
            End If
            'Margen del grid del GridLookUp del Puesto SAPT

            RegisterCustomMessage(cbpPuesto)

            'Verifica si el usuario es Administrador
            cmbInstitucion.Enabled = STP.BL.RolBusinessObject.IsInRole(CInt(Page.User.Identity.Name), 1)
            'Set el id de la Institucion en el comboBox
            cmbInstitucion.Value = Session("idIns").ToString
            Dim oIns As New InstitucionBusinessObject(Session("idIns").ToString)

            If oIns.Entity.autonoma Then
                FormSAPT.Visible = False
            Else
                FormDotacion.Visible = False
            End If

        End If
    End Sub

    Protected Sub LlenarFormulario()
        oPlaza = New PlazaBusinessObject(Me.idPlaza())

        If oPlaza.Entity.idEstadoPlaza > 1 Then
            pcPlaza.Visible = False
            'TODO
            'mensaje de usuario que intenta cambiar plaza
        End If
        lblIdentificador.Text = oPlaza.Entity.Identificador
        txtSalario.Text = oPlaza.Entity.salario
        txtVacantes.Text = oPlaza.Entity.vacantes
        cmbContratacion.Value = oPlaza.Entity.idContratacion
        cmbUbicacion.Value = oPlaza.Entity.idMunicipio

        cmbConvocatoria.Value = oPlaza.Entity.idConvocatoria
        deInicio.Value = oPlaza.Entity.fechaInicioInscripcion
        deFinalizacion.Value = oPlaza.Entity.fechaCierreInscripcion

        'txtCorreo.Text = oPlaza.Entity.correoelectronico
        'txtTelefono.Text = oPlaza.Entity.telefono
        'txtDireccion.Text = oPlaza.Entity.direccion
        txtComentario.Text = oPlaza.Entity.comentario

        If oPlaza.Entity.ubicacionPuesto = False Then
            gridPuesto.Value = oPlaza.Entity.COD_INSPTO
        Else
            gridPuestoDotacion.Value = oPlaza.Entity.COD_INSPTO
        End If
    End Sub

    Protected Sub btnPublicar_Click(sender As Object, e As EventArgs) Handles btnPublicar.Click
        oPlaza = New PlazaBusinessObject(Me.idPlaza)
        oPlaza.Entity.idEstadoPlaza = 2

        Dim msg As MSG = oPlaza.SaveChanges

        If msg.EventType = Entity.MSG.MsgType.Success Then

            CustomMessage("LA PLAZA HA SIDO PUBLICADA", "Publicación de Plaza", , "wfListadoPlaza.aspx")
            'Response.Redirect("~/Pages/wfListadoPlaza.aspx")
        Else
            CustomMessage(msg, "ERROR : Validación de Publicación")
            pcPlaza.TabPages.Item(1).ClientEnabled = True
            pcPlaza.TabPages.Item(2).ClientEnabled = True
            pcPlaza.TabPages.Item(3).ClientEnabled = True
        End If


    End Sub


    Protected Sub cbpPuesto_Callback(sender As Object, e As CallbackEventArgsBase) Handles cbpPuesto.Callback
        Select Case e.Parameter.ToString
            Case "1"
                If Me.idPlaza = 0 Then
                    oPlaza = New PlazaBusinessObject()
                Else
                    oPlaza = New PlazaBusinessObject(Me.idPlaza())
                    If oPlaza.Entity.idEstadoPlaza >= 2 Then
                        CustomMessage("El concurso ya ha sido publicado por otro usuario. Se regresará al Historial de concurso.", "Error", cbpPuesto, "wfListadoPlaza.aspx")
                        Exit Sub
                    End If
                End If

                ' Asignar valores a la entidad
                oPlaza.Entity.idConvocatoria = cmbConvocatoria.Value
                oPlaza.Entity.idInstitucion = cmbInstitucion.Value
                oPlaza.Entity.idEstadoPlaza = 1
                oPlaza.Entity.vacantes = txtVacantes.Text
                oPlaza.Entity.idContratacion = cmbContratacion.Value
                oPlaza.Entity.idMunicipio = cmbUbicacion.Value
                oPlaza.Entity.salario = txtSalario.Text
                oPlaza.Entity.fechaInicioInscripcion = deInicio.Value
                oPlaza.Entity.fechaCierreInscripcion = deFinalizacion.Value
                'oPlaza.Entity.correoelectronico = txtCorreo.Text
                'oPlaza.Entity.telefono = txtTelefono.Text
                'oPlaza.Entity.direccion = txtDireccion.Text
                oPlaza.Entity.comentario = txtComentario.Text

                ' Guardar cambios
                Dim msg As MSG = oPlaza.SaveChanges()
                If msg.EventType = msg.MsgType.Success Then
                    Me.idPlaza = oPlaza.Entity.idPlaza
                    pcPlaza.TabPages.Item(1).ClientEnabled = True
                    pcPlaza.TabPages.Item(2).ClientEnabled = True
                    pcPlaza.TabPages.Item(3).ClientEnabled = True

                    ''ucAreasEvaluacion.GetGridEtapa.DataBind()
                    CustomMessage(msg, "Datos guardados", cbpPuesto)

                    If oPlaza.Entity.salario < 300 Then
                        CustomMessage("El salario que esta guardando es menor a $300", "Advertencia", cbpPuesto)
                    End If
                Else
                    CustomMessage(msg, "ERROR", cbpPuesto)
                End If
            Case "2"
                oPlaza = New PlazaBusinessObject(Me.idPlaza())
                oPlaza.Entity.COD_INSPTO = gridPuesto.Value
                oPlaza.Entity.ubicacionPuesto = False
                Dim msg As MSG = oPlaza.SaveChanges()


                If msg.EventType = msg.MsgType.Success Then
                    Me.idPlaza = oPlaza.Entity.idPlaza
                    pcPlaza.TabPages.Item(1).ClientEnabled = True
                    pcPlaza.TabPages.Item(2).ClientEnabled = True
                    pcPlaza.TabPages.Item(3).ClientEnabled = True
                    pcPlaza.ActiveTabIndex = 1
                    ucAreasEvaluacion.GetGridEtapa.DataBind()
                    'ucVistaPlaza.GetForm.DataBind()
                    'CType(FormSAPT.FindItemOrGroupByName("1"), LayoutGroup).BackColor = System.Drawing.Color.Gainsboro
                    'gridPuestoDotacion.Value = ""
                    CustomMessage("La asociación de la Plaza con el Puesto Funcional fue realizada con éxito", "Asociación exitosa", cbpPuesto)
                Else
                    CustomMessage(msg, "ERROR", cbpPuesto)
                End If


            Case "3"
                pcPlaza.TabPages.Item(1).ClientEnabled = True
                pcPlaza.TabPages.Item(2).ClientEnabled = True
                pcPlaza.TabPages.Item(3).ClientEnabled = True
                'pcPlaza.ActiveTabIndex = 3
                ucVistaPlaza.GetForm.DataBind()
            Case "4"
                oPlaza = New PlazaBusinessObject(Me.idPlaza())
                oPlaza.Entity.COD_INSPTO = gridPuestoDotacion.Value
                oPlaza.Entity.ubicacionPuesto = True
                Dim msg As MSG = oPlaza.SaveChanges()

                'Dim template As ucVistaPlaza = pcPlaza.FindControl("ucVistaPlaza")
                'CType(template.FindControl("FormPuesto"), ASPxFormLayout).DataBind()
                If msg.EventType = msg.MsgType.Success Then
                    'CType(FormSAPT.FindItemOrGroupByName("2"), LayoutGroup).BackColor = System.Drawing.Color.Gainsboro
                    'gridPuesto.Value = ""
                    Me.idPlaza = oPlaza.Entity.idPlaza
                    pcPlaza.TabPages.Item(1).ClientEnabled = True
                    pcPlaza.TabPages.Item(2).ClientEnabled = True
                    pcPlaza.TabPages.Item(3).ClientEnabled = True
                    pcPlaza.ActiveTabIndex = 1
                    ucAreasEvaluacion.GetGridEtapa.DataBind()
                    'ucVistaPlaza.GetForm.DataBind()
                    CustomMessage("La asociación de la Plaza con el Puesto Funcional fue realizada con éxito", "Asociación exitosa", cbpPuesto)
                Else
                    CustomMessage(msg, "ERROR", cbpPuesto)

                End If
            Case "5"
                oPlaza = New PlazaBusinessObject(Me.idPlaza())
                oPlaza.Entity.COD_INSPTO = ""
                If oPlaza.Entity.ubicacionPuesto Then
                    gridPuestoDotacion.Text = ""
                Else
                    gridPuesto.Text = ""
                End If
                Dim msg As MSG = oPlaza.SaveChanges()

                'Dim template As ucVistaPlaza = pcPlaza.FindControl("ucVistaPlaza")
                'CType(template.FindControl("FormPuesto"), ASPxFormLayout).DataBind()
                If msg.EventType = msg.MsgType.Success Then
                    'CType(FormSAPT.FindItemOrGroupByName("2"), LayoutGroup).BackColor = System.Drawing.Color.Gainsboro
                    'gridPuesto.Value = ""
                    Me.idPlaza = oPlaza.Entity.idPlaza
                    pcPlaza.TabPages.Item(1).ClientEnabled = True
                    pcPlaza.TabPages.Item(2).ClientEnabled = True
                    pcPlaza.TabPages.Item(3).ClientEnabled = True
                    pcPlaza.ActiveTabIndex = 1
                    ucAreasEvaluacion.GetGridEtapa.DataBind()
                    'ucVistaPlaza.GetForm.DataBind()
                    CustomMessage("Se ha borrado el puesto asociado", "Asociación", cbpPuesto)
                Else
                    CustomMessage(msg, "ERROR", cbpPuesto)

                End If
            Case Else
                Exit Select
        End Select

    End Sub


End Class