Esempio n. 1
0
        /// <summary>
        /// Carga en la instacia actual los atributos del Id pasado por parámetro
        /// </summary>
        public List <TareaOrdenCompra> obtenerItemsOrden(string orden)
        {
            //limpiaDatos();
            List <TareaOrdenCompra> retorno = new List <TareaOrdenCompra>();

            MySqlConnection conexion = Database.obtenerConexion(true);

            MySqlCommand comando = new MySqlCommand(
                "SELECT * " +
                "FROM tarea_ordencompra " +
                " WHERE porcentaje > 0 and cen_fecha is null and orden = @orden" +
                " Order by orden "
                , conexion);

            comando.Transaction = Database.obtenerTransaccion();
            comando.Parameters.AddWithValue("@orden", orden);

            try
            {
                if (Database.obtenerTransaccion() == null)
                {
                    conexion.Open();
                }
                MySqlDataReader dr = comando.ExecuteReader();

                while (dr.Read())
                {
                    TareaOrdenCompra tmp = new TareaOrdenCompra();
                    cargarDatos(tmp, dr);
                    retorno.Add(tmp);
                }
                dr.Close();
            }
            catch (Exception ex)
            {
                retorno = null;
                SGECA.LogManager.Mensaje UltimoMensaje = GestionErrores.obtenerError(ex);
                UltimoMensaje.cargar(
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(),
                    System.Reflection.MethodBase.GetCurrentMethod().ToString(),
                    new System.Diagnostics.StackFrame(0, true).GetFileLineNumber());
                UltimoMensaje.EsError    = true;
                UltimoMensaje.StackTrace = ex.StackTrace;
                SGECA.LogManager.Log.log(UltimoMensaje);
            }
            finally
            {
                comando.Parameters.Clear();
                if (Database.obtenerTransaccion() == null)
                {
                    if (conexion.State != ConnectionState.Closed)
                    {
                        conexion.Close();
                    }
                }
            }

            return(retorno);
        }
Esempio n. 2
0
 /// <summary>
 /// Limpio los datos de los atributos de la instancia
 /// </summary>
 private void limpiaDatos()
 {
     Id            = 0;
     Orden         = null;
     Posicion      = null;
     Sitio         = null;
     Porcentaje    = 0;
     Tarea         = null;
     UltimoMensaje = null;
 }
Esempio n. 3
0
        public static SGECA.LogManager.Mensaje obtenerError(Exception excepcion)
        {
            SGECA.LogManager.Mensaje retorno = new SGECA.LogManager.Mensaje();

            if (excepcion is System.Data.SqlClient.SqlException)
            {
                obtenerSqlException((System.Data.SqlClient.SqlException)excepcion, retorno);
            }

            else if (excepcion is Exception)
            {
                obtenerException(excepcion, retorno);
            }

            return(retorno);
        }
Esempio n. 4
0
        private static void obtenerException(Exception excepcion, SGECA.LogManager.Mensaje mensaje)
        {
            mensaje.TextoMensaje = excepcion.GetType().ToString() + " - " + excepcion.Message;
            mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;

            if (excepcion is ArgumentException)
            {
                mensaje.TextoMensaje = "Uno de los argumentos proporcionados no es correcto.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }

            if (excepcion is InvalidCastException)
            {
                mensaje.TextoMensaje = "Conversión de tipos invalida.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }

            if (excepcion is NullReferenceException)
            {
                mensaje.TextoMensaje = "El objeto especificado no puede ser nulo.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }

            if (excepcion is ArgumentNullException)
            {
                mensaje.TextoMensaje = "El argumento especificado no puede ser nulo.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }

            if (excepcion is ArgumentOutOfRangeException)
            {
                mensaje.TextoMensaje = "El argumento especificado está fuera de rango.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }

            if (excepcion is IndexOutOfRangeException)
            {
                mensaje.TextoMensaje = "El indice especificado está fuera de rango.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }

            mensaje.TextoMensajeAmpliado   = excepcion.Message;
            mensaje.TextoMensajeDepuracion = excepcion.StackTrace;
        }
Esempio n. 5
0
        private static void obtenerSqlException(System.Data.SqlClient.SqlException excepcion, SGECA.LogManager.Mensaje mensaje)
        {
            if (excepcion.Number == 547 &&
                excepcion.State == 0 &&
                excepcion.Class == 16)
            {
                mensaje.TextoMensaje = "El registro que intenta eliminar está relacionado a otro registro y no se puede quitar.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Advertencia;
            }
            else if (excepcion.Number == 2601 &&
                     excepcion.State == 1 &&
                     excepcion.Class == 14)
            {
                mensaje.TextoMensaje = "El Código que intenta almacenar ya se encuentra asignado en la base de datos por lo que no puede ser duplicado.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Advertencia;
            }
            else if (excepcion.Number == 2627 &&
                     excepcion.State == 1 &&
                     excepcion.Class == 14)
            {
                mensaje.TextoMensaje = "El Código que intenta almacenar ya se encuentra asignado en la base de datos por lo que no puede ser duplicado.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Advertencia;
            }
            else if (excepcion.Number == 207 &&
                     excepcion.State == 1 &&
                     excepcion.Class == 16)
            {
                mensaje.TextoMensaje = "La tabla donde se intento acceder no tiene la estructura correcta, por favor notifique al área de sistemas.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }
            else if (excepcion.Number == 2 &&
                     excepcion.State == 0 &&
                     excepcion.Class == 20)
            {
                mensaje.TextoMensaje = "No se pudo abrir una conexión con SQL Server.";
                mensaje.TipoMensaje  = SGECA.LogManager.EMensaje.Critico;
            }
            else
            {
                mensaje.TextoMensaje = "Error de SQL Server";
            }

            mensaje.TextoMensajeAmpliado   = excepcion.Message;
            mensaje.TextoMensajeDepuracion = "Number = " + excepcion.Number + "\r\n" +
                                             "State = " + excepcion.State + "\r\n" +
                                             "Class = " + excepcion.Class + "\r\n" +
                                             excepcion.StackTrace;
        }