public static PersistenciaUsuarioEmpleado GetInstancia()
        {
            if (_instancia == null)
            {
                _instancia = new PersistenciaUsuarioEmpleado();
            }

            return(_instancia);
        }
        public List <SolicitudEntrega> ListarSolicitudEntregaEmpresaLogueada(UsuarioEmpresa ULogueado)
        {
            SqlConnection oConexion = new SqlConnection(Conexion.Cnn(ULogueado));

            SqlCommand oComando = new SqlCommand("SolicitudesDeEntregaListarPorEmpresa", oConexion);

            oComando.CommandType = CommandType.StoredProcedure;
            SqlParameter _nomUsu = new SqlParameter("@NombreUsuario", ULogueado.NombreUsuario);

            oComando.Parameters.Add(_nomUsu);



            List <SolicitudEntrega> listSolicitud = new List <SolicitudEntrega>();

            try
            {
                oConexion.Open();
                SqlDataReader dr = oComando.ExecuteReader();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        int              numInt       = (int)dr["NumeroInterno"];
                        DateTime         fechaEntr    = (DateTime)dr["FechaDeEntrega"];
                        string           nombreDest   = dr["NombreDestinatario"].ToString();
                        string           dirDesti     = dr["DireccionDestinatario"].ToString();
                        string           estado       = dr["EstadoSolicitud"].ToString();
                        string           usuEmp       = dr["NombreUsuarioEmpleado"].ToString();
                        UsuarioEmpleado  empleado     = PersistenciaUsuarioEmpleado.GetInstancia().BuscarUsuarioEmpleadoTodos(usuEmp, ULogueado);
                        List <Paquete>   listaPaquete = PersistenciaSolicitudPaquete.GetInstancia().ListarPaquetesEnSolicitud(numInt, ULogueado);
                        SolicitudEntrega solicitud    = new SolicitudEntrega(numInt, fechaEntr, nombreDest, dirDesti, estado, empleado, listaPaquete);

                        listSolicitud.Add(solicitud);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                oConexion.Close();
            }

            return(listSolicitud);
        }
        public SolicitudEntrega BuscarSolicitudEntrega(int pNumeroInterno, UsuarioEmpleado ULogueado)
        {
            SqlConnection oConexion = new SqlConnection(Conexion.Cnn(ULogueado));

            SqlCommand oComando = new SqlCommand("SolicitudesDeEntregaBuscar", oConexion);

            oComando.CommandType = CommandType.StoredProcedure;

            SqlParameter _numInt  = new SqlParameter("@NumeroInterno", pNumeroInterno);
            SqlParameter _Retorno = new SqlParameter("@Retorno", SqlDbType.Int);

            _Retorno.Direction = ParameterDirection.ReturnValue;

            oComando.Parameters.Add(_numInt);
            oComando.Parameters.Add(_Retorno);

            SolicitudEntrega solicitud = null;

            try
            {
                oConexion.Open();
                SqlDataReader dr = oComando.ExecuteReader();

                if (dr.HasRows)
                {
                    dr.Read();

                    DateTime        fechaEntr    = (DateTime)dr["FechaDeEntrega"];
                    string          nombreDest   = dr["NombreDestinatario"].ToString();
                    string          dirDesti     = dr["DireccionDestinatario"].ToString();
                    string          estado       = dr["EstadoSolicitud"].ToString();
                    string          usuEmp       = dr["NombreUsuarioEmpleado"].ToString();
                    UsuarioEmpleado empleado     = PersistenciaUsuarioEmpleado.GetInstancia().BuscarUsuarioEmpleadoTodos(usuEmp, ULogueado);
                    List <Paquete>  listaPaquete = PersistenciaSolicitudPaquete.GetInstancia().ListarPaquetesEnSolicitud(pNumeroInterno, ULogueado);
                    solicitud = new SolicitudEntrega(pNumeroInterno, fechaEntr, nombreDest, dirDesti, estado, empleado, listaPaquete);

                    dr.Close();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                oConexion.Close();
            }
            return(solicitud);
        }