public static bool recuperarUnidadProductoraServicio(clsUnidadProductoraServicio objUnidadProductoraServicio)
        {
            List<SqlParameter> lstParametrosSQL = new List<SqlParameter>();
            SqlParameter sqlParametro;

            lstParametrosSQL = crearLista(objUnidadProductoraServicio);

            sqlParametro = new SqlParameter();
            sqlParametro.ParameterName = "@Accion";
            sqlParametro.Value = 3;
            sqlParametro.Direction = ParameterDirection.Input;

            lstParametrosSQL.Add(sqlParametro);

            sqlParametro = new SqlParameter();
            sqlParametro.ParameterName = "@IdGenerado";
            sqlParametro.Value = 0;
            sqlParametro.Direction = ParameterDirection.Output;

            lstParametrosSQL.Add(sqlParametro);

            int numResultado = clsGestorBD.ejecutarStoredProcedureInt("up_ManUnidadProductoraServicio", lstParametrosSQL);

            if (numResultado != 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        public frmUnidadProductoraServicios()
        {
            InitializeComponent();

            clsUnidadProductoraServicio objUnidadProductoraServicio = new clsUnidadProductoraServicio();
            objUnidadProductoraServicio.Estado = "TODOS";

            dtUnidadesProductorasServicios = ctrUnidadProductoraServicio.seleccionarUnidadesProductorasServicioCriterios(objUnidadProductoraServicio);

            cargarGrilla();
        }
        private void btnActivar_Click(object sender, EventArgs e)
        {
            if (dgvUnidadesProductorasServicio.SelectedRows.Count > 0)
            {
                if (MessageBox.Show("¿Está seguro que desea activar esta unidad productora de servicio?", "Mensaje", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    numAccion = clsComun.RECUPERAR;

                    numIdUnidadProductoraServicio = Int32.Parse(dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[0].Value.ToString());

                    clsUnidadProductoraServicio objUnidadProductoraServicio = new clsUnidadProductoraServicio();
                    objUnidadProductoraServicio.IdUnidadProductoraServicio= numIdUnidadProductoraServicio;

                    if (ctrUnidadProductoraServicio.recuperarUnidadProductoraServicio(objUnidadProductoraServicio))
                    {
                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[3].Value = "ACTIVO";

                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[1].Style.ForeColor = Color.Black;
                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[1].Style.BackColor = Color.White;
                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[2].Style.ForeColor = Color.Black;
                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[2].Style.BackColor = Color.White;
                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[3].Style.ForeColor = Color.Black;
                        dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[3].Style.BackColor = Color.White;

                        btnActivar.Visible = false;
                        btnEliminar.Visible = true;

                        MessageBox.Show("La unidad productora de servicio se activó exitosamente", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        if (MessageBox.Show("Ocurrió un error mientras se intentaba activar la unidad productora de servicio", "Mensaje", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) != DialogResult.Cancel)
                        {
                            btnEliminar_Click(sender, e);
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar una unidad productora de servicio", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
        private static List<SqlParameter> crearLista(clsUnidadProductoraServicio objUnidadProductoraServicio)
        {
            List<SqlParameter> lstParametrosSQL = new List<SqlParameter>();
            SqlParameter sqlParametro;

            foreach (PropertyInfo pi in objUnidadProductoraServicio.GetType().GetProperties())
            {
                if (pi.CanRead)
                {
                    sqlParametro = new SqlParameter();
                    sqlParametro.ParameterName = "@" + pi.Name;
                    sqlParametro.Value = pi.GetValue(objUnidadProductoraServicio, null);
                    sqlParametro.Direction = ParameterDirection.Input;

                    lstParametrosSQL.Add(sqlParametro);
                }
            }

            return lstParametrosSQL;
        }
        public static clsUnidadProductoraServicio seleccionarUnidadProductoraServicio(clsUnidadProductoraServicio objUnidadProductoraServicio)
        {
            List<SqlParameter> lstParametrosSQL = new List<SqlParameter>();
            SqlParameter sqlParametro;

            lstParametrosSQL = crearLista(objUnidadProductoraServicio);

            sqlParametro = new SqlParameter();
            sqlParametro.ParameterName = "@Accion";
            sqlParametro.Value = 4;
            sqlParametro.Direction = ParameterDirection.Input;

            lstParametrosSQL.Add(sqlParametro);

            sqlParametro = new SqlParameter();
            sqlParametro.ParameterName = "@IdGenerado";
            sqlParametro.Value = 0;
            sqlParametro.Direction = ParameterDirection.Output;

            lstParametrosSQL.Add(sqlParametro);

            DataTable dtResultado = clsGestorBD.ejecutarStoredProcedureDataTable("up_ManUnidadProductoraServicio", lstParametrosSQL);

            objUnidadProductoraServicio.Nombre = dtResultado.Rows[0]["Nombre"].ToString();
            objUnidadProductoraServicio.Codigo = dtResultado.Rows[0]["Codigo"].ToString();
            objUnidadProductoraServicio.Descripcion = dtResultado.Rows[0]["Descripcion"].ToString();

            return objUnidadProductoraServicio;
        }
        public static DataTable seleccionarUnidadesProductorasServicioCriterios(clsUnidadProductoraServicio objUnidadProductoraServicio)
        {
            List<SqlParameter> lstParametrosSQL = new List<SqlParameter>();
            SqlParameter sqlParametro;

            lstParametrosSQL = crearLista(objUnidadProductoraServicio);

            sqlParametro = new SqlParameter();
            sqlParametro.ParameterName = "@Accion";
            sqlParametro.Value = 6;
            sqlParametro.Direction = ParameterDirection.Input;

            lstParametrosSQL.Add(sqlParametro);

            sqlParametro = new SqlParameter();
            sqlParametro.ParameterName = "@IdGenerado";
            sqlParametro.Value = 0;
            sqlParametro.Direction = ParameterDirection.Output;

            lstParametrosSQL.Add(sqlParametro);

            return clsGestorBD.ejecutarStoredProcedureDataTable("up_ManUnidadProductoraServicio", lstParametrosSQL);
        }
        private void mostrarInformacion(clsUnidadProductoraServicio objUnidadProductoraServicio, int numAccion)
        {
            if (numAccion != clsComun.INSERTAR)
            {
                txtNombreDetalle.Text = objUnidadProductoraServicio.Nombre;
                txtCodigoDetalle.Text = objUnidadProductoraServicio.Codigo;
                rtxtDescripcionDetalle.Text = objUnidadProductoraServicio.Descripcion;
            }

            if (numAccion == clsComun.VER)
            {
                txtNombreDetalle.Solo_Lectura = SistemaCentroSalud.Controles.cuTextBox.SoloLectura.verdadero;
                txtCodigoDetalle.Solo_Lectura = SistemaCentroSalud.Controles.cuTextBox.SoloLectura.verdadero;
                rtxtDescripcionDetalle.Solo_Lectura = SistemaCentroSalud.Controles.cuRichTextBox.SoloLectura.verdadero;

                btnCancelar.Visible = false;
                btnGuardar.Text = "Volver";
            }
            else
            {
                txtNombreDetalle.Solo_Lectura = SistemaCentroSalud.Controles.cuTextBox.SoloLectura.falso;
                txtCodigoDetalle.Solo_Lectura = SistemaCentroSalud.Controles.cuTextBox.SoloLectura.falso;
                rtxtDescripcionDetalle.Solo_Lectura = SistemaCentroSalud.Controles.cuRichTextBox.SoloLectura.falso;

                btnCancelar.Visible = true;
                btnGuardar.Text = "Guardar";
            }

            clsComun.tabSiguiente(tbcUnidadProductoraServicio, tbpBuscar, tbpDetalle);
        }
        private void buscarCriterios(object sender, EventArgs e)
        {
            try
            {
                clsUnidadProductoraServicio objUnidadProductoraServicio = new clsUnidadProductoraServicio();
                objUnidadProductoraServicio.Nombre = txtNombreBuscar.Text;
                objUnidadProductoraServicio.Codigo = txtCodigoBuscar.Text;
                objUnidadProductoraServicio.Estado = cboEstadoBuscar.SelectedItem.ToString();

                dtUnidadesProductorasServicios = ctrUnidadProductoraServicio.seleccionarUnidadesProductorasServicioCriterios(objUnidadProductoraServicio);
                cargarGrilla();
            }
            catch
            {
            }
        }
        private void btnVer_Click(object sender, EventArgs e)
        {
            if (dgvUnidadesProductorasServicio.SelectedRows.Count > 0)
            {
                numAccion = clsComun.VER;

                numIdUnidadProductoraServicio = Int32.Parse(dgvUnidadesProductorasServicio.Rows[dgvUnidadesProductorasServicio.CurrentRow.Index].Cells[0].Value.ToString());

                limpiarFormulario();

                clsUnidadProductoraServicio objUnidadProductoraServicio = new clsUnidadProductoraServicio();
                objUnidadProductoraServicio.IdUnidadProductoraServicio = numIdUnidadProductoraServicio;

                objUnidadProductoraServicio = ctrUnidadProductoraServicio.seleccionarUnidadProductoraServicio(objUnidadProductoraServicio);

                mostrarInformacion(objUnidadProductoraServicio, numAccion);

                txtNombreDetalle.Focus();
            }
            else
            {
                MessageBox.Show("Debe seleccionar una unidad productora de servicio", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (numAccion == clsComun.VER)
            {
                clsComun.tabAnterior(tbcUnidadProductoraServicio, tbpBuscar, tbpDetalle);

                limpiarFormulario();

                txtNombreBuscar.Focus();
            }
            else
            {
                if (validarFormulario())
                {
                    clsUnidadProductoraServicio objUnidadProductoraServicio = new clsUnidadProductoraServicio();
                    objUnidadProductoraServicio.IdUnidadProductoraServicio = numIdUnidadProductoraServicio;
                    objUnidadProductoraServicio.Codigo = txtCodigoDetalle.Text;
                    objUnidadProductoraServicio.Nombre = txtNombreDetalle.Text;
                    objUnidadProductoraServicio.Descripcion = rtxtDescripcionDetalle.Text;

                    if (numAccion == clsComun.INSERTAR)
                    {
                        if (ctrUnidadProductoraServicio.registrarUnidadProductoraServicio(objUnidadProductoraServicio))
                        {
                            if (MessageBox.Show("La unidad productora de servicio se registró exitosamente\n¿Desea seguir registrando unidades productoras de servicio?", "Mensaje", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                            {
                                limpiarFormulario();

                                txtNombreDetalle.Focus();
                            }
                            else
                            {
                                clsComun.tabAnterior(tbcUnidadProductoraServicio, tbpBuscar, tbpDetalle);

                                limpiarFormulario();

                                txtNombreBuscar.Focus();

                                dtUnidadesProductorasServicios = ctrUnidadProductoraServicio.seleccionarUnidadesProductorasServicio(objUnidadProductoraServicio);
                                cargarGrilla();
                            }
                        }
                        else
                        {
                            if (MessageBox.Show("Ocurrió un error mientras se intentaba registrar la unidad productora de servicio", "Mensaje", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) != DialogResult.Cancel)
                            {
                                btnGuardar_Click(sender, e);
                            }
                        }
                    }
                    else if (numAccion == clsComun.MODIFICAR)
                    {
                        if (ctrUnidadProductoraServicio.modificarUnidadProductoraServicio(objUnidadProductoraServicio))
                        {
                            MessageBox.Show("La unidad productora de servicio se modificó exitosamente", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            clsComun.tabAnterior(tbcUnidadProductoraServicio, tbpBuscar, tbpDetalle);

                            limpiarFormulario();

                            txtNombreBuscar.Focus();

                            dtUnidadesProductorasServicios = ctrUnidadProductoraServicio.seleccionarUnidadesProductorasServicio(objUnidadProductoraServicio);
                            cargarGrilla();
                        }
                        else
                        {
                            if (MessageBox.Show("Ocurrió un error mientras se intentaba modificar la unidad productora de servicio", "Mensaje", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) != DialogResult.Cancel)
                            {
                                btnGuardar_Click(sender, e);
                            }
                        }
                    }
                }
            }
        }