Public Class ucCrearPuesto
    Inherits ucBase

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

    Dim oPuesto As dSAPT_PuestoBusinessObject
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then
            RegisterCustomMessage(cbpPuesto)

            'Si existe un id de plaza, llena el formulario
            If Not Me.idPuesto.Equals("0") Then
                pcPuesto.TabPages.Item(1).ClientEnabled = True
                LlenarFormulario()
            Else
                'Limpia el formulario
                txtPTO_CODIGO.Value = dSAPT_PuestoBusinessObject.ExecutePropuestaIDPuesto(Session("idIns"))
                txtCOD_INSPTO.Text = String.Format("{0}_{1}", Session("idIns"), Convertir(txtPTO_CODIGO.Value))

                txtNombrePuesto.Text = ""
                txtUnidad.Text = ""
                txtMisionPuesto.Text = ""
                txtFuncionPuesto.Text = ""
                txtResultadoPuesto.Text = ""
                txtMarcoPuesto.Text = ""
                txtDescripcionPuesto.Text = ""

                txtNombrePuesto.Focus()
            End If

        End If

    End Sub

    Protected Sub LlenarFormulario()
        oPuesto = New dSAPT_PuestoBusinessObject(Me.idPuesto)

        With oPuesto.Entity

            txtCOD_INSPTO.Text = .COD_INSPTO
            txtPTO_CODIGO.Value = .PTO_CODIGO

            txtNombrePuesto.Text = .nombrePuesto
            txtUnidad.Text = .ORG_NOMBRE
            txtMisionPuesto.Text = .misionPueso
            txtFuncionPuesto.Text = .funcionPuesto
            txtResultadoPuesto.Text = .resultadoPuesto
            txtMarcoPuesto.Text = .marcoPuesto
            txtDescripcionPuesto.Text = .descripcionPuesto
        End With
    End Sub

    Public Shared Function Convertir(numero As Integer) As String
        If numero < 10 Then
            Return "00" & numero
        ElseIf numero < 100 Then
            Return "0" & numero
        Else
            Return numero

        End If
    End Function

    Protected Sub cbpPuesto_Callback(sender As Object, e As DevExpress.Web.CallbackEventArgsBase) Handles cbpPuesto.Callback
        Select Case e.Parameter
            Case "Guardar"
                If Me.idPuesto.Equals("0") Then
                    oPuesto = New dSAPT_PuestoBusinessObject()
                    oPuesto.Entity.idInstitucion = Session("idIns")
                    oPuesto.Entity.COD_INSPTO = txtCOD_INSPTO.Text
                    oPuesto.Entity.PTO_CODIGO = txtPTO_CODIGO.Value

                Else
                    oPuesto = New dSAPT_PuestoBusinessObject(Me.idPuesto)
                End If

                With oPuesto.Entity
                    .nombrePuesto = txtNombrePuesto.Text
                    .ORG_NOMBRE = txtUnidad.Text
                    .misionPueso = txtMisionPuesto.Text
                    .funcionPuesto = txtFuncionPuesto.Text
                    .resultadoPuesto = txtResultadoPuesto.Text
                    .marcoPuesto = txtMarcoPuesto.Text
                    .descripcionPuesto = txtDescripcionPuesto.Text
                End With

                Dim msg As MSG = oPuesto.SaveChanges()
                If msg.EventType = dGen.Library.Entity.MSG.MsgType.Success Then
                    'popupPuesto.ShowOnPageLoad = False
                    'cbpPuesto.JSProperties("cpClosePopup") = True
                    Me.idPuesto = oPuesto.Entity.COD_INSPTO
                    pcPuesto.TabPages.Item(1).ClientEnabled = True
                    CustomMessage(msg, "Guardar Puesto", cbpPuesto)
                End If



            Case Else
                Exit Sub
        End Select
    End Sub


End Class