public ActionResult ModificarEstadoActivo(Activos infoActivo)
        {
            string                   mensajesActivos = string.Empty;
            MensajesActivos          msjActivos      = new MensajesActivos();
            MensajesHistoricoActivos msjHistActivos  = new MensajesHistoricoActivos();

            try
            {
                ActivosAccDatos objActivosAccDatos = new ActivosAccDatos((string)Session["NickUsuario"]);
                msjActivos = objActivosAccDatos.ActualizarActivo(infoActivo, true);
                if (msjActivos.OperacionExitosa)
                {
                    mensajesActivos = string.Format("El activo con ID: {0} ha sido modificado correctamente.", infoActivo.IdActivo);
                    Logs.Info(mensajesActivos);
                }
                else
                {
                    mensajesActivos = string.Format("No se ha podido actualizar el activo con ID: {0}: {1}", infoActivo.IdActivo, msjActivos.MensajeError);
                    Logs.Error(mensajesActivos);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesActivos, e.Message));
            }
            return(Json(msjActivos, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Método para obtener los nombres de los Activos.
        /// </summary>
        /// <returns></returns>
        public MensajesActivos ObtenerNombresActivos()
        {
            List <Activos>  lstActivos = new List <Activos>();
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand("SELECT nombre_detalleact,id_cqr FROM dcicc_detalleactivo", conn_BD))
                {
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Activos objActivos = new Activos
                            {
                                NombreActivo = (string)dr[0],
                                IdCQR        = (string)dr[1]
                            };
                            lstActivos.Add(objActivos);
                        }
                        conn_BD.Close();
                        msjActivos.ListaObjetoInventarios = lstActivos;
                        msjActivos.OperacionExitosa       = true;
                    }
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Método para actualizar el estado de un Activo en la base de datos.
        /// </summary>
        /// <param name="infoActivo"></param>
        /// <returns></returns>
        public MensajesActivos ActualizacionEstadoActivo(Activos infoActivo)
        {
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE public.dcicc_detalleactivo SET estado_detalleact=@eda WHERE id_detalleact=@ida;", conn_BD))
                {
                    cmd.Parameters.Add("eda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoActivo.EstadoActivo.Trim();
                    cmd.Parameters.Add("ida", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoActivo.IdActivo;
                    cmd.ExecuteNonQuery();
                }
                if (infoActivo.EstadoActivo == "DE BAJA")
                {
                    InsercionesHistoricoActivos objInsercionesHA = new InsercionesHistoricoActivos();
                    HistoricoActivos            infoHistActivo   = new HistoricoActivos
                    {
                        IdActivo = infoActivo.IdActivo,
                        FechaModifHistActivos = DateTime.Now
                    };
                    objInsercionesHA.RegistroHistoricoActivos(infoHistActivo);
                }
                tran.Commit();
                conn_BD.Close();
                msjActivos.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Método para actualizar un Activo en la base de datos.
        /// </summary>
        /// <param name="infoActivo"></param>
        /// <returns></returns>
        public MensajesActivos ActualizacionActivo(Activos infoActivo)
        {
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE public.dcicc_detalleactivo SET id_tipoact=@ita, id_marca=@im, id_laboratorio=@il,responsable_detalleact=@rpa, nombre_detalleact=@nda, modelo_detalleact=@mda, serial_detalleact=@sda, fechaingreso_detalleact=@fida, codigoups_detalleact=@cuda, cantidad_detalleact=@cada, descripcion_detalleact=@dsda, estado_detalleact=@eda, expressservicecode_detalleact=@escda, productname_detalleact=@pnda, capacidad_detalleact=@capda, velocidadtransf_detalleact=@vtda, ct_detalleact=@ctda, hpepartnumber_detalleact=@hpnda, codbarras1_detalleact=@cb1da, codbarras2_detalleact=@cb2da, numpuertos_detalleact=@npda, iosversion_detalleact=@ivda, fechamanufactura_detalleact=@fmda WHERE id_detalleact=@ida;", conn_BD))
                {
                    cmd.Parameters.Add("ita", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoActivo.IdTipoActivo;
                    cmd.Parameters.Add("im", NpgsqlTypes.NpgsqlDbType.Integer).Value   = infoActivo.IdMarca;
                    cmd.Parameters.Add("il", NpgsqlTypes.NpgsqlDbType.Integer).Value   = infoActivo.IdLaboratorio;
                    cmd.Parameters.Add("rpa", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.ResponsableActivo.Trim();
                    cmd.Parameters.Add("nda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.NombreActivo.Trim();
                    cmd.Parameters.Add("mda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.ModeloActivo) ? (object)infoActivo.ModeloActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("sda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.SerialActivo) ? (object)infoActivo.SerialActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("fida", NpgsqlTypes.NpgsqlDbType.Date).Value    = !string.IsNullOrEmpty(infoActivo.FechaIngresoActivo.ToLongDateString()) ? (object)infoActivo.FechaIngresoActivo : DBNull.Value;
                    cmd.Parameters.Add("cuda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodigoUpsActivo) ? (object)infoActivo.CodigoUpsActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("cada", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoActivo.CantidadActivo;
                    cmd.Parameters.Add("dsda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.DescripcionActivo) ? (object)infoActivo.DescripcionActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("eda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.EstadoActivo.Trim();
                    //Especificaciones Adicionales
                    cmd.Parameters.Add("escda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.ExpressServiceCodeActivo) ? (object)infoActivo.ExpressServiceCodeActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("pnda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.ProductNameActivo) ? (object)infoActivo.ProductNameActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("capda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CapacidadActivo) ? (object)infoActivo.CapacidadActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("vtda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.VelocidadTransfActivo) ? (object)infoActivo.VelocidadTransfActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("ctda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.CtActivo) ? (object)infoActivo.CtActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("hpnda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.HpePartNumberActivo) ? (object)infoActivo.HpePartNumberActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("cb1da", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodBarras1Activo) ? (object)infoActivo.CodBarras1Activo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("cb2da", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodBarras2Activo) ? (object)infoActivo.CodBarras2Activo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("npda", NpgsqlTypes.NpgsqlDbType.Integer).Value  = !string.IsNullOrEmpty(infoActivo.NumPuertosActivo.ToString()) ? (object)infoActivo.NumPuertosActivo : DBNull.Value;
                    cmd.Parameters.Add("ivda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.IosVersionActivo) ? (object)infoActivo.IosVersionActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("fmda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.FechaManufacturaActivo) ? (object)infoActivo.FechaManufacturaActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("ida", NpgsqlTypes.NpgsqlDbType.Integer).Value   = infoActivo.IdActivo;
                    cmd.ExecuteNonQuery();
                }
                if (infoActivo.EstadoActivo == "DE BAJA")
                {
                    InsercionesHistoricoActivos objInsercionesHA = new InsercionesHistoricoActivos();
                    HistoricoActivos            infoHistActivo   = new HistoricoActivos
                    {
                        IdActivo = infoActivo.IdActivo,
                        FechaModifHistActivos = DateTime.Now
                    };
                    objInsercionesHA.RegistroHistoricoActivos(infoHistActivo);
                }
                tran.Commit();
                conn_BD.Close();
                msjActivos.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }
Exemplo n.º 5
0
        public MensajesActivos ObtenerActivosVidaUtil()
        {
            MensajesActivos  msjActivos            = new MensajesActivos();
            ConsultasActivos objConsultasActivosBD = new ConsultasActivos();

            msjActivos = objConsultasActivosBD.ObtenerActivos("vidautil");
            if (msjActivos.OperacionExitosa)
            {
                Logs.Info("Consulta de Vida útil de Activos realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjActivos.MensajeError);
            }
            return(msjActivos);
        }
Exemplo n.º 6
0
        public MensajesActivos RegistrarActivo([FromBody] Activos infoActivo)
        {
            MensajesActivos    msjActivos = new MensajesActivos();
            InsercionesActivos objInsercionesActivosBD = new InsercionesActivos();

            msjActivos = objInsercionesActivosBD.RegistroActivo(infoActivo);
            if (msjActivos.OperacionExitosa)
            {
                Logs.Info(string.Format("Registro de Activo \"{0}\"realizado exitosamente.", infoActivo.NombreActivo));
            }
            else
            {
                Logs.Error(msjActivos.MensajeError);
            }
            return(msjActivos);
        }
Exemplo n.º 7
0
        public MensajesActivos ActualizarEstadoActivo([FromBody] Activos infoActivo)
        {
            MensajesActivos        msjActivos = new MensajesActivos();
            ActualizacionesActivos objActualizacionesActivosBD = new ActualizacionesActivos();

            msjActivos = objActualizacionesActivosBD.ActualizacionEstadoActivo(infoActivo);
            if (msjActivos.OperacionExitosa)
            {
                Logs.Info(string.Format("Actualización de estado de Activo con ID: {0} realizada exitosamente.", infoActivo.IdActivo));
            }
            else
            {
                Logs.Error(msjActivos.MensajeError);
            }
            return(msjActivos);
        }
Exemplo n.º 8
0
        public MensajesActivos ObtenerActivosCQR()
        {
            MensajesActivos  msjActivos            = new MensajesActivos();
            ConsultasActivos objConsultasActivosBD = new ConsultasActivos();

            msjActivos = objConsultasActivosBD.ObtenerActivos("activoscqr");
            if (msjActivos.OperacionExitosa)
            {
                Logs.Info("Consulta de Activos CQR realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjActivos.MensajeError);
            }
            return(msjActivos);
        }
Exemplo n.º 9
0
        public MensajesActivos ObtenerActivosEspAdi()
        {
            MensajesActivos  msjActivos            = new MensajesActivos();
            ConsultasActivos objConsultasActivosBD = new ConsultasActivos();

            msjActivos = objConsultasActivosBD.ObtenerActivos("especificacionesactivos");
            if (msjActivos.OperacionExitosa)
            {
                Logs.Info("Consulta de Especificaciones Adicionales de Activos realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjActivos.MensajeError);
            }
            return(msjActivos);
        }
        public ActionResult NuevoActivo(Activos infoActivo)
        {
            Id_CQR        = string.Empty;
            Nombre_Activo = string.Empty;
            Tipo_CQR      = string.Empty;
            string          mensajesActivos    = string.Empty;
            MensajesActivos msjActivos         = new MensajesActivos();
            ActivosAccDatos objActivosAccDatos = new ActivosAccDatos((string)Session["NickUsuario"]);

            try
            {
                if (objActivosAccDatos.ObtenerActivos("Nombres").ListaObjetoInventarios.Find(x => x.NombreActivo.Trim().ToLower() == infoActivo.NombreActivo.Trim().ToLower()) == null)
                {
                    Tipo_CQR = "ACT";
                    MensajesCQR msjCQR = NuevoCQR(Tipo_CQR);
                    if (msjCQR.OperacionExitosa)
                    {
                        infoActivo.IdCQR = msjCQR.ObjetoInventarios.IdCqr;
                        msjActivos       = objActivosAccDatos.RegistrarActivo(infoActivo);
                        if (msjActivos.OperacionExitosa)
                        {
                            SetIdCQR(infoActivo.IdCQR);
                            SetNombreActivo(infoActivo.NombreActivo);
                            mensajesActivos     = string.Format("El activo \"{0}\" ha sido registrado exitosamente.", infoActivo.NombreActivo);
                            TempData["Mensaje"] = mensajesActivos;
                            Logs.Info(mensajesActivos);
                        }
                        else
                        {
                            mensajesActivos          = string.Format("No se ha podido registrar el activo \"{0}\": {1}", infoActivo.NombreActivo, msjActivos.MensajeError);
                            TempData["MensajeError"] = mensajesActivos;
                            Logs.Error(mensajesActivos);
                        }
                    }
                }
                else
                {
                    msjActivos.OperacionExitosa = false;
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesActivos, e.Message));
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
            return(Json(msjActivos, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 11
0
        /// <summary>
        /// Método para actualizar un Activo en la base de datos.
        /// </summary>
        /// <param name="infoActivo"></param>
        /// <returns></returns>
        public MensajesActivos ActualizacionActivoBasico(Activos infoActivo)
        {
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE public.dcicc_detalleactivo SET id_laboratorio=@il,nombre_detalleact=@nda, modelo_detalleact=@mda, serial_detalleact=@sda, fechaingreso_detalleact=@fida, codigoups_detalleact=@cuda, estado_detalleact=@eda WHERE id_detalleact=@ida;", conn_BD))
                {
                    cmd.Parameters.Add("il", NpgsqlTypes.NpgsqlDbType.Integer).Value   = infoActivo.IdLaboratorio;
                    cmd.Parameters.Add("nda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.NombreActivo.Trim();
                    cmd.Parameters.Add("mda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.ModeloActivo) ? (object)infoActivo.ModeloActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("sda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.SerialActivo) ? (object)infoActivo.SerialActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("fida", NpgsqlTypes.NpgsqlDbType.Date).Value    = !string.IsNullOrEmpty(infoActivo.FechaIngresoActivo.ToLongDateString()) ? (object)infoActivo.FechaIngresoActivo : DBNull.Value;
                    cmd.Parameters.Add("cuda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodigoUpsActivo) ? (object)infoActivo.CodigoUpsActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("eda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.EstadoActivo.Trim();
                    cmd.Parameters.Add("ida", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoActivo.IdActivo;
                    cmd.ExecuteNonQuery();
                }
                if (!infoActivo.DeBaja)
                {
                    if (infoActivo.EstadoActivo == "DE BAJA")
                    {
                        InsercionesHistoricoActivos objInsercionesHA = new InsercionesHistoricoActivos();
                        HistoricoActivos            infoHistActivo   = new HistoricoActivos
                        {
                            IdActivo = infoActivo.IdActivo,
                            FechaModifHistActivos = DateTime.Now
                        };
                        objInsercionesHA.RegistroHistoricoActivos(infoHistActivo);
                    }
                }
                tran.Commit();
                conn_BD.Close();
                msjActivos.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Método para actualizar un Activo en la base de datos.
        /// </summary>
        /// <param name="infoActivo"></param>
        /// <param name="actEstado">Boolean para definir si se actualizará solo el estado o todo el registro</param>
        /// <returns></returns>
        public MensajesActivos ActualizarActivo(Activos infoActivo, bool actEstado)
        {
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                var response = client_Service.PostAsJsonAsync(actEstado ? "Activos/ActualizarEstadoActivo" : "Activos/ActualizarActivo", infoActivo).Result;
                if (response.IsSuccessStatusCode)
                {
                    var ActivosJson = response.Content.ReadAsStringAsync().Result;
                    msjActivos = JsonConvert.DeserializeObject <MensajesActivos>(ActivosJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para actualizar un activo: {0}", e.Message));
            }
            return(msjActivos);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Método para obtener una lista con los Activos de la base de datos.
        /// </summary>
        /// <param name="nombreFuncion">Tipo de función: Comp(Todos los registros) o Hab (Los registros habilitados)</param>
        /// <returns></returns>
        public MensajesActivos ObtenerActivos(string nombreFuncion)
        {
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                HttpResponseMessage response = client_Service.GetAsync(string.Format("Activos/ObtenerActivos{0}", nombreFuncion)).Result;
                if (response.IsSuccessStatusCode)
                {
                    var ActivosJson = response.Content.ReadAsStringAsync().Result;
                    msjActivos = JsonConvert.DeserializeObject <MensajesActivos>(ActivosJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para obtener la lista de los activos: {0}", e.Message));
            }
            return(msjActivos);
        }
Exemplo n.º 14
0
        public MensajesActivos ObtenerActivoPorCQR([FromBody] string idCQR)
        {
            MensajesActivos  msjActivos            = new MensajesActivos();
            ConsultasActivos objConsultasActivosBD = new ConsultasActivos();

            msjActivos = objConsultasActivosBD.ObtenerActivoPorIdCQR(idCQR);
            if (msjActivos.OperacionExitosa)
            {
                if (msjActivos.ObjetoInventarios.IdActivo != 0)
                {
                    msjActivos.ObjetoInventarios.BytesCQR = GenerarBytesQR(idCQR);
                }
                else
                {
                    msjActivos.ObjetoInventarios = null;
                }
                Logs.Info("Consulta de Activo según su CQR realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjActivos.MensajeError);
            }
            return(msjActivos);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Método para ingresar un nuevo Activo en la base de datos.
        /// </summary>
        /// <param name="infoActivo"></param>
        /// <returns></returns>
        public MensajesActivos RegistroActivo(Activos infoActivo)
        {
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("INSERT INTO public.dcicc_detalleactivo(id_tipoact, id_cqr, id_marca, id_laboratorio, responsable_detalleact,nombre_detalleact, modelo_detalleact, serial_detalleact, fechaingreso_detalleact, codigoups_detalleact, cantidad_detalleact, descripcion_detalleact, estado_detalleact, expressservicecode_detalleact, productname_detalleact, capacidad_detalleact, velocidadtransf_detalleact, ct_detalleact, hpepartnumber_detalleact, codbarras1_detalleact, codbarras2_detalleact, numpuertos_detalleact, iosversion_detalleact, fechamanufactura_detalleact)VALUES (@ita, @icq,@im, @il,@rpa,@nda,@mda, @sda, @fida, @cuda,@cada, @dsda, @eda,@escda, @pnda, @capda,@vtda, @ctda, @hpnda,@cb1da, @cb2da, @npda,@ivda, @fmda);", conn_BD))
                {
                    cmd.Parameters.Add("ita", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoActivo.IdTipoActivo;
                    cmd.Parameters.Add("icq", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.IdCQR;
                    cmd.Parameters.Add("im", NpgsqlTypes.NpgsqlDbType.Integer).Value   = infoActivo.IdMarca;
                    cmd.Parameters.Add("il", NpgsqlTypes.NpgsqlDbType.Integer).Value   = infoActivo.IdLaboratorio;
                    cmd.Parameters.Add("rpa", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.ResponsableActivo.Trim();
                    cmd.Parameters.Add("nda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.NombreActivo.Trim();
                    cmd.Parameters.Add("mda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.ModeloActivo) ? (object)infoActivo.ModeloActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("sda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.SerialActivo) ? (object)infoActivo.SerialActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("fida", NpgsqlTypes.NpgsqlDbType.Date).Value    = !string.IsNullOrEmpty(infoActivo.FechaIngresoActivo.ToLongDateString()) ? (object)infoActivo.FechaIngresoActivo : DBNull.Value;
                    cmd.Parameters.Add("cuda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodigoUpsActivo) ? (object)infoActivo.CodigoUpsActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("cada", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoActivo.CantidadActivo;
                    cmd.Parameters.Add("dsda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.DescripcionActivo) ? (object)infoActivo.DescripcionActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("eda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoActivo.EstadoActivo.Trim();
                    //Especificaciones Adicionales
                    cmd.Parameters.Add("escda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.ExpressServiceCodeActivo) ? (object)infoActivo.ExpressServiceCodeActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("pnda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.ProductNameActivo) ? (object)infoActivo.ProductNameActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("capda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CapacidadActivo) ? (object)infoActivo.CapacidadActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("vtda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.VelocidadTransfActivo) ? (object)infoActivo.VelocidadTransfActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("ctda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.CtActivo) ? (object)infoActivo.CtActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("hpnda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.HpePartNumberActivo) ? (object)infoActivo.HpePartNumberActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("cb1da", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodBarras1Activo) ? (object)infoActivo.CodBarras1Activo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("cb2da", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoActivo.CodBarras2Activo) ? (object)infoActivo.CodBarras2Activo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("npda", NpgsqlTypes.NpgsqlDbType.Integer).Value  = !string.IsNullOrEmpty(infoActivo.NumPuertosActivo.ToString()) ? (object)infoActivo.NumPuertosActivo : DBNull.Value;
                    cmd.Parameters.Add("ivda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.IosVersionActivo) ? (object)infoActivo.IosVersionActivo.Trim() : DBNull.Value;
                    cmd.Parameters.Add("fmda", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoActivo.FechaManufacturaActivo) ? (object)infoActivo.FechaManufacturaActivo.Trim() : DBNull.Value;
                    cmd.ExecuteNonQuery();
                }
                using (NpgsqlCommand cmd = new NpgsqlCommand("SELECT id_detalleact, id_cqr,nombre_detalleact FROM public.dcicc_detalleactivo WHERE nombre_detalleact=@nda", conn_BD))
                {
                    cmd.Parameters.Add("nda", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoActivo.NombreActivo;
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Activos objActivos = new Activos
                            {
                                IdActivo     = (int)dr[0],
                                IdCQR        = (string)dr[1],
                                NombreActivo = (string)dr[2]
                            };
                            msjActivos.ObjetoInventarios = objActivos;
                        }
                    }
                }
                tran.Commit();
                conn_BD.Close();
                msjActivos.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }
        /// <summary>
        /// Método para obtener los Activos de la base de datos.
        /// </summary>
        /// <param name="nombreFuncion">Tipo de función a llamar: consultaactivos o activoshabilitados</param>
        /// <returns></returns>
        public MensajesActivos ObtenerActivos(string nombreFuncion)
        {
            List <Activos>  lstActivos = new List <Activos>();
            MensajesActivos msjActivos = new MensajesActivos();

            try
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand(nombreFuncion, conn_BD))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    using (var dr = cmd.ExecuteReader())
                    {
                        if (nombreFuncion == "activostotales")
                        {
                            while (dr.Read())
                            {
                                Activos objActivos = new Activos
                                {
                                    IdActivo           = (int)dr[0],
                                    IdTipoActivo       = (int)dr[1],
                                    IdCQR              = (string)dr[2],
                                    IdMarca            = (int)dr[3],
                                    IdLaboratorio      = (int)dr[4],
                                    NombreActivo       = dr[5].ToString().Trim(),
                                    ModeloActivo       = dr[6].ToString().Trim(),
                                    SerialActivo       = dr[7].ToString().Trim(),
                                    FechaIngresoActivo = DateTime.Parse(dr[8].ToString().Trim()),
                                    CodigoUpsActivo    = dr[9].ToString().Trim(),
                                    CantidadActivo     = (int)dr[10],
                                    DescripcionActivo  = dr[11].ToString().Trim(),
                                    ResponsableActivo  = dr[12].ToString().Trim(),
                                    EstadoActivo       = dr[13].ToString().Trim(),
                                    //Especificaciones adicionales
                                    ExpressServiceCodeActivo = dr[14].ToString().Trim(),
                                    ProductNameActivo        = dr[15].ToString().Trim(),
                                    CapacidadActivo          = dr[16].ToString().Trim(),
                                    VelocidadTransfActivo    = dr[17].ToString().Trim(),
                                    CtActivo               = dr[18].ToString().Trim(),
                                    HpePartNumberActivo    = dr[19].ToString().Trim(),
                                    CodBarras1Activo       = dr[20].ToString().Trim(),
                                    CodBarras2Activo       = dr[21].ToString().Trim(),
                                    NumPuertosActivo       = dr[22] != DBNull.Value ? (int)dr[22] : 0,
                                    IosVersionActivo       = dr[23].ToString().Trim(),
                                    FechaManufacturaActivo = dr[24].ToString().Trim(),
                                    NombreTipoActivo       = dr[25].ToString().Trim(),
                                    NombreLaboratorio      = dr[26].ToString().Trim(),
                                    NombreMarca            = dr[27].ToString().Trim()
                                };
                                lstActivos.Add(objActivos);
                            }
                        }
                        else if (nombreFuncion == "activoscqr")
                        {
                            while (dr.Read())
                            {
                                Activos objActivos = new Activos
                                {
                                    IdActivo           = (int)dr[0],
                                    IdTipoActivo       = (int)dr[1],
                                    IdCQR              = (string)dr[2],
                                    IdMarca            = (int)dr[3],
                                    IdLaboratorio      = (int)dr[4],
                                    NombreActivo       = dr[5].ToString().Trim(),
                                    ResponsableActivo  = dr[6].ToString().Trim(),
                                    EstadoActivo       = dr[7].ToString().Trim(),
                                    NombreTipoActivo   = dr[8].ToString().Trim(),
                                    NombreLaboratorio  = dr[9].ToString().Trim(),
                                    NombreMarca        = dr[10].ToString().Trim(),
                                    ImpresoCQR         = (bool)dr[11],
                                    FechaIngresoActivo = DateTime.Parse(dr[12].ToString().Trim())
                                };
                                lstActivos.Add(objActivos);
                            }
                        }
                        else if (nombreFuncion == "especificacionesactivos")
                        {
                            while (dr.Read())
                            {
                                Activos objActivos = new Activos
                                {
                                    IdActivo                 = (int)dr[0],
                                    IdTipoActivo             = (int)dr[1],
                                    NombreActivo             = dr[2].ToString().Trim(),
                                    ExpressServiceCodeActivo = dr[3].ToString().Trim(),
                                    ProductNameActivo        = dr[4].ToString().Trim(),
                                    CapacidadActivo          = dr[5].ToString().Trim(),
                                    VelocidadTransfActivo    = dr[6].ToString().Trim(),
                                    CtActivo                 = dr[7].ToString().Trim(),
                                    HpePartNumberActivo      = dr[8].ToString().Trim(),
                                    CodBarras1Activo         = dr[9].ToString().Trim(),
                                    CodBarras2Activo         = dr[10].ToString().Trim(),
                                    NumPuertosActivo         = dr[11] != DBNull.Value ? (int)dr[11] : 0,
                                    IosVersionActivo         = dr[12].ToString().Trim(),
                                    FechaManufacturaActivo   = dr[13].ToString().Trim(),
                                    NombreTipoActivo         = dr[14].ToString().Trim(),
                                };
                                lstActivos.Add(objActivos);
                            }
                        }
                        else if (nombreFuncion == "vidautil")
                        {
                            while (dr.Read())
                            {
                                Activos objActivos = new Activos
                                {
                                    IdActivo            = (int)dr[0],
                                    IdTipoActivo        = (int)dr[1],
                                    IdLaboratorio       = (int)dr[2],
                                    NombreActivo        = dr[3].ToString().Trim(),
                                    ModeloActivo        = dr[4].ToString().Trim(),
                                    SerialActivo        = dr[5].ToString().Trim(),
                                    FechaIngresoActivo  = DateTime.Parse(dr[6].ToString().Trim()),
                                    ResponsableActivo   = dr[7].ToString().Trim(),
                                    EstadoActivo        = dr[8].ToString().Trim(),
                                    NombreTipoActivo    = dr[9].ToString().Trim(),
                                    NombreLaboratorio   = dr[10].ToString().Trim(),
                                    VidaUtilTipoActivo  = (int)dr[11],
                                    VidaFinalTipoActivo = DateTime.Parse(dr[12].ToString().Trim())
                                };
                                lstActivos.Add(objActivos);
                            }
                        }
                        conn_BD.Close();
                        msjActivos.ListaObjetoInventarios = lstActivos;
                        msjActivos.OperacionExitosa       = true;
                    }
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }
        /// <summary>
        /// Mètodo para obtener un activo según su CQR.
        /// </summary>
        /// <param name="idCQR"></param>
        /// <returns></returns>
        public MensajesActivos ObtenerActivoPorIdCQR(string idCQR)
        {
            MensajesActivos msjActivos = new MensajesActivos();
            Activos         objActivos = new Activos();

            try
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand("select * from activostotales() where id_cqr=@cqr", conn_BD))
                {
                    cmd.Parameters.Add("cqr", NpgsqlTypes.NpgsqlDbType.Varchar).Value = idCQR;
                    using (var dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            objActivos = new Activos
                            {
                                IdActivo           = (int)dr[0],
                                IdTipoActivo       = (int)dr[1],
                                IdCQR              = (string)dr[2],
                                IdMarca            = (int)dr[3],
                                IdLaboratorio      = (int)dr[4],
                                NombreActivo       = dr[5].ToString().Trim(),
                                ModeloActivo       = dr[6].ToString().Trim(),
                                SerialActivo       = dr[7].ToString().Trim(),
                                FechaIngresoActivo = DateTime.Parse(dr[8].ToString().Trim()),
                                CodigoUpsActivo    = dr[9].ToString().Trim(),
                                CantidadActivo     = (int)dr[10],
                                DescripcionActivo  = dr[11].ToString().Trim(),
                                ResponsableActivo  = dr[12].ToString().Trim(),
                                EstadoActivo       = dr[13].ToString().Trim(),
                                //Especificaciones adicionales
                                ExpressServiceCodeActivo = dr[14].ToString().Trim(),
                                ProductNameActivo        = dr[15].ToString().Trim(),
                                CapacidadActivo          = dr[16].ToString().Trim(),
                                VelocidadTransfActivo    = dr[17].ToString().Trim(),
                                CtActivo               = dr[18].ToString().Trim(),
                                HpePartNumberActivo    = dr[19].ToString().Trim(),
                                CodBarras1Activo       = dr[20].ToString().Trim(),
                                CodBarras2Activo       = dr[21].ToString().Trim(),
                                NumPuertosActivo       = dr[22] != DBNull.Value ? (int)dr[22] : 0,
                                IosVersionActivo       = dr[23].ToString().Trim(),
                                FechaManufacturaActivo = dr[24].ToString().Trim(),
                                NombreTipoActivo       = dr[25].ToString().Trim(),
                                NombreLaboratorio      = dr[26].ToString().Trim(),
                                NombreMarca            = dr[27].ToString().Trim()
                            };
                        }
                        conn_BD.Close();
                        msjActivos.ObjetoInventarios = objActivos;
                        msjActivos.OperacionExitosa  = true;
                    }
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjActivos.OperacionExitosa = false;
                msjActivos.MensajeError     = e.Message;
            }
            return(msjActivos);
        }