¿Cómo poner una condición en HTML para coger una línea de script u otra?

me encuentro desarrollando una aplicación híbrida, en JavaScript, HTML y CSS. He utilizado además cordova para lanzar un apk. Básicamente el index de cordova carga el index.html del cliente web, pero este index del cliente web debe cargar unos u otros en función de si se lanza en Android o un escritorio. Adjunto la cabecera del index.html del cliente web y sigo explicando.

<html>  <head>   <meta charset="utf-8" />   <title>Tecnología</title>   <meta name="viewport" content="width=device-width, initial-scale=1">    <script src="cliente/lib/pixi.js"></script>   <script src="cliente/lib/traviso.dev.js"></script>   <script src="cliente/src/main-traviso.js"></script>     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>   <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">    <link href="cliente/lib/jquery.toast.min.css" rel="stylesheet" type="text/css">      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>     <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>   <script src="cliente/lib/jquery.cookie.js"></script>   <script src="cliente/lib/underscore-min.js"></script>   <script src="cliente/lib/pagination.js"></script>    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">    <link rel="stylesheet" href="cliente/src/main.css">   <link rel="stylesheet" href="cliente/src/sidebar-themes.css">     <link rel="stylesheet" href="cliente/src/estilos.css">   <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>   <script src="cliente/src/cliente.js"></script>   <script src="cliente/src/ini.js"></script>    <script src="cliente/src/control.js"></script>    <script src="cliente/src/pantalla-ejer.js"></script>    <script src="cliente/src/com.js"></script>        <!--<script src="cliente/lib/cordova.js"></script>   <script src="cliente/lib/cordova_plugins.js"></script>-->   <!-- Sentencia para conocer si es Android o no -->   <script>    window.mobileAndTabletcheck = function() {    var check = false;    (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);    return check;    };   </script>   <script>    if (!window.mobileAndTabletcheck()){     document.write('<!--')    }   </script>      <script src="cliente/lib/cordova.js"></script>   <script src="cliente/lib/cordova_plugins.js"></script>   <script src="cliente/src/index.js"></script>   <script>    if (!window.mobileAndTabletcheck()){     document.write('-->')    }    </script>  </head> 

Los archivos que debo de cargar en el momento en que se lanza desde un cliente Android son cordova.js, cordova_plugins.js e index.js. La forma en la que está actualmente es controlada con el if (!window.mobileAndTabletcheck()). El problema llega a la hora de recargar varias veces la página (en el escritorio del navegador), carga los archivos del cliente android, cuando sólo debería de hacerlo en ese preciso cliente. Mi pregunta, es si existe otra forma de realizar la carga de <script>de forma condicional en base a si se lanza desde un android o no. Gracias de antemano.

¿Como pintar una celda de acuerdo a una condición en C# epplus?

Tengo 2 consulta y son las siguientes

1.Quiero validar si la celda contiene valores menores a 9.00 que la pinte de amarillo.

2.Cuando se almacenan los valores en las celdas de excel desde c# .net epplus las celdas me dan una advertencia "the number in this cell is formatted as text or preceded by an apostrophe".

El valor de las celdas es un decimal.

Y este es la línea de codigo que llena las celdas en el excel.

ws.Cells[i + 7, j + 1].Value = data.Rows[i][j].ToString(); 

public JsonResult ExportarResumenHoras()         {             DataTable data = GestionResumenHoras.Instancia.ListaResumenHoras();               ExcelPackage pkg = new ExcelPackage();             ExcelWorksheet ws = pkg.Workbook.Worksheets.Add("Detalle(Semana)");              //Carga las columnas             for (int c = 0; c < data.Columns.Count; c++)             {                 ws.Cells[6,c+1].Value = data.Columns[c];             }               //Carga los valores de acuerdo a la fecha registrada              if (data != null)             {                 for(int i = 0; i < data.Rows.Count; i++)                 {                     for (int j = 0; j < data.Columns.Count; j++)                     {                          ws.Cells[i + 7, j + 1].Value = data.Rows[i][j].ToString();                     }                 }             }              ws.Cells["A:AZ"].AutoFitColumns();                MemoryStream memoryStream = new MemoryStream();             pkg.SaveAs(memoryStream);             memoryStream.Position = 0;              var bytes = memoryStream.ToArray();             Session["archivoResumenHoras"] = bytes;             return Json(new { success = true }, JsonRequestBehavior.AllowGet);         } 

Aquí la imagen del excel con la data generada

introducir la descripción de la imagen aquí

¿Por qué no se evalúa la condición?

Hola estoy intentando implementar una cola, es decir tengo una serie de hilos que obtienen un id, y van a una cola la idea es que si la cola tiene 10 elementos no acepte ningún mas, y la tarea espere 2 segundos antes de volver a intentar introducir el id en la cola.

Para realizar esto tengo el siguiente código:

La clase principal donde creo 100 tareas que se van a introducir en la cola, y el QueueCleaner, que va a quitar un elemento de la cola cada 1 segundos

public class Main {      public static QueueOfTickets queueOfTickets = new QueueOfTickets();      public static void main(String[] args) {          Thread t2 = new Thread(new QueueCleaner());         t2.start();          for(int i = 0; i < 100; i++) {             Thread t1 = new Thread(new Task());             t1.start();         }            }    } 

La cola de tickets

Esta es la condición que no se cumple, por que le indico que solo si la cola es menor de 10 agregue un elemento sin embargo llega a agregar 11 o 12 elementos mas

public class QueueOfTickets {     public static int id = 0;     private Queue<Integer> queue = new LinkedList<Integer>();      public QueueOfTickets() {}      public boolean addToQueue(Integer integer) {         if(queue.size() < 10) {             queue.add(integer);             System.out.println("Int " + integer + " add to queue, size: " + queue.size());             return true;         }else {             return false;         }     }      public void poll() {         System.out.println("Deque: " + queue.poll());     } } 

Task Esta es la clase que va a agregar elementos a la cola

public class Task implements Runnable {     int id = 0;     public void run(){         QueueOfTickets.id++;         id = QueueOfTickets.id;         while(!Main.queueOfTickets.addToQueue(id)) {             try {                 TimeUnit.SECONDS.sleep(2);             } catch (InterruptedException e) {                 e.printStackTrace();             }         }    }  } 

Y esta es la tarea que quita cada segundo un elemento de la cola

public class QueueCleaner implements Runnable {     public void run(){         while(true) {             Main.queueOfTickets.poll();             try {                 TimeUnit.SECONDS.sleep(1);             } catch (InterruptedException e) {                 e.printStackTrace();             }         }    }  } 

Cuando ejecuto esto ni de lejos llego a poder insertar 100 elementos llegado un punto solo retorna null, ademas de que introduce mas de un elementos sobre el total de los permitidos en la condición

Alguna idea?

Gracias.

Como hacer una condicion con ciertas reglas en el archivo .htaccess

Necesito crear algunas reglas en al archivo .htaccess para que se den ciertas condiciones. Por ejemplo, quiero mostrar el archivo 404.shtml (ErrorDocument 404 /404.shtml) sólo en el caso en donde la URL generada tenga la extensión .html o .php (cuando este mal escrita claro o no la encuentre en mi sitio), en los otros casos no (que es cuando la página se comporta como SPA).

Al ser SPA (single-page application), trabaja siempre sobre la misma página y aquí no necesito que se vea el archivo 404.shtml. Entonces tengo lo siguiente y que ya está funcionando:

RewriteCond %{REQUEST_FILENAME} !-s RewriteCond %{REQUEST_FILENAME} !-l Rewritecond %{REQUEST_FILENAME} !-d RewriteRule ^.*$   index.php [NC,L] 

Ahora quiero el caso contrario cuando no está en la página de tipo SPA. Necesitaría alguna regla para que se vea la página 404.shtml, cuando ya son las otras páginas internas y que siempre llevan la extensión .html o .php.

Sólo a modo de ejemplo, sería algo así:

IF (la pagina es SPA){     RewriteCond %{REQUEST_FILENAME} !-s     RewriteCond %{REQUEST_FILENAME} !-l     Rewritecond %{REQUEST_FILENAME} !-d     RewriteRule ^.*$   index.php [NC,L] } else {     ErrorDocument 404 /GloMovil/404.shtml } 

En definitiva, necesito que, si la URL está dentro de las manejadas por el SPA, se redirija a la SPA y en otro caso se redirija a una página 404.shtml

¿Se puede hacer algo parecido a esto desde el archivo .htaccess?

Que condicion o bucle usar

como hago para que si mi condición no cumple me vuelva a preguntar hasta que haya ingresado correctamente

ejemplo: El usuario tenia que ingresar dígitos que estén entre el 1-12, no me da esto

void pedir_num(int num){  int num1; printf("escriba un numero del 1-12"); scanf("%i", num1); int rango; for ( rango=0; rango<=12; rango++)  {      do {                 printf("Introdusca correctamente"); } while (num1 != rango); 

}

int main(){  int num;  pedir_num(&num);  return 0; 

}

Filtrar filas en un Data Frame en R si se cumple condición de una de las variables

Tengo un data frame en el cual se registran datos de atenciones para población en estado de embarazo, pero necesito filtrar los datos de atenciones para las mujeres que únicamente tuvieron partos, como el caso del ID 43631224 o 107165943, se desea identificar sólo las atenciones que incluyeron el diagnóstico PARTO, los códigos para ese diagnóstico están estandarizados.

Gracias por la ayuda

Datos atenciones de Salud mujeres emabarazadas

Se puede usar el ISNULL en una condicion IN

La pregunta en general seria si puedo utilizar un ISNULL después de la condición IN en un WHERE.

Tengo un SP al que mando unos IDs separados por coma (NVARCHAR), los ids son numéricos. Para usarlos en el WHERE utilizo una función la cual me los separa en un select y así utilizo el IN.

El detalle es el siguiente: Los ids son de unos select picker de seleccion multiple, antes no tenia esta opción en mi pagina, pero como fue requerida agregue el select multiple. Cabe mencionar que anteriormente en lugar de los IDS tomaba el texto del select y así filtraba, ahora cambia a los ids, porque seria selección mas de una opción. En mi pagina cuando el usuario no seccionaba nada en el select agarraba todos los registros que había en la tabla con el isnull ejemplo:

  AND Linea = ISNULL(@Linea,Linea)        AND nom_reporto = ISNULL(@Reporto,nom_reporto)        AND nom_asignadoa = ISNULL(@Asignado,nom_asignadoa)    

Pero como ahora los parámetros cambiaron no se como puedo utilizar el isnull y forzó al usuario a llenar todos los campos, sin la opción de dejar algún filtro vació y mostrar todos los registros del select picker donde no se selecciono nada

Ahora esta es la manera como tengo el where:

AND a.Linea in (SELECT Value FROM [fnSplitbigint]( @numLinea )) AND a.Departamento in (SELECT Value FROM [fnSplitbigint]( @numAsignado )) AND a.Causa in (SELECT Value FROM [fnSplitbigint]( @numCausa )) 

¿Problema al realizar una condicion en MYSQL?

hola tengo 3 tablas :

  1. tbl_personal_empleado (USUARIOS ACTIVOS)
  2. backuppersonal_empleado (USUARIOS INACTIVOS)
  3. tbl_login

la tabla tbl_personal_empleado contiene 2 tiggers

  1. backup_empleados
  2. usuario_after_insert

el tigger backup_empleado se encarga de de que cuando se elimine un usuario de la tabla este lo inserte en la tabla backuppersonal_empleado basicamente crea una copia, funciona perfectamente.

el tigger usuario_after_insert se encarga que al momento de que se inserte un nuevo usuario este le va a crear un login en la tabla tbl_login con una contraseña aleatorio de 6 digitos para que pueda iniciar sesión el tigger es asi

introducir la descripción de la imagen aquí

ahora la tabla backuppersonal_empleado contiene otro tigger que se encarga de que cuando sea eliminado el usuario este lo inserte en la table tbl_personal_empleado .

la table tbl_login no contiene tiggers ni relaciones su estrutura es asi

introducir la descripción de la imagen aquí

Mi problema es que cuando se habilita un usuario que ya estaba eliminado(DESHABILITADO),la tbl_personal_empleado ejecuta el disparador para crear un nuevo login al usuario que se esta insertando por lo que al final me queda algo asi

introducir la descripción de la imagen aquí

el mismo usuario pero con contraseña nueva, entonces se me ocurrió hacer que el tigger hiciera una validación antes de que si el usuario ya esta insertado en la tbl_login no lo inserte un nuevo login intente esto introducir la descripción de la imagen aquí

pero me saca el siguiente error

MySQL ha dicho: #1064 – Algo está equivocado en su sintax cerca ‘SELECT idpersonal_E FROM tbl_login; SET id =(NEW.idpersonal_E); SET usua’ en la linea 6

y ya no se que mas pueda hacer

¿Cómo hacer una condición en el controlador con laravel 5.8?

hola amigos quisiera ayuda con problema, tengo una funcion en mi controlador que se encarga de confirmar si el usuario cumple los requisito(puntos) para reclamar premios…mi problema es que si el usuario tiene 100 puntos y el premio cuesta 500 en teoria no deberia de poder reclamar ese premio, pero con el codigo que he hecho no me funciona y el usuario si pasa esa condicion

este es mi codigo en el controlador

public function reclamarpremios(Request $  request) {     $  vago_puntos = request('vago_puntos');     $  premioID = request('id');     $  puntaje = request('puntaje');     $  perfil_users_app_id = request('perfil_users_app_id');     $  us = UserAppPerfil::where('id',$  perfil_users_app_id);     $  reclamo = Premios::where('id',$  premioID)->where('puntos','>=',$  vago_puntos);     if($  reclamo->count()>0)      {         $  us->decrement('vago_puntos',$  puntaje);         $  reclamo->increment('veces_reclamado');         return response()->json([$  us,$  reclamo,'message' => 'Felicidades has reclamado esta promocion, el equipo de vagos estara en contacto con tigo para obtorgarte tu premio'],200);      }else{         return response()->json(['message'=>'No tienes los suficientes vagos puntos'],422);       }  } 

mi tabla premios tabla

Aplicar Required Dependiendo de una Condición en Angular 7

Tengo el siguiente botón

        <button          (click)="info = !info"          type="button"          class="btn btn-info">          Cambiar a: <span *ngIf="info">Telefono</span> <span *ngIf="!info">Correo</span>         </button> 

Donde creo una variable que tomo del componente, pero quiero utilizar la variable info (que se incicializa en true) en el ngOnInit:

ngOnInit() { this.info = false; 

}

…Para pasarla al campo nombre y que el Required se aplique si es true, o no, si es false

<input                      name="primerN"                      [(ngModel)]="product.primerN"                      type="text"                      class="form-control"                     placeholder="Primer Nombre"                       minlength="2"                      [required]="info"                     pattern="[A-Za-zÑñ]+"                     #primerN="ngModel"                     [ngClass]="{'is-invalid':  primerN?.errors?.required  || primerN?.errors?.minlength || primerN?.errors?.pattern  , 'is-valid' : primerN?.value}"                     >                     <div class="invalid-feedback" *ngIf="primerN?.errors?.minlength">                       por lo menos {{ primerN.errors.minlength.requiredLength }} caracteres                     </div>                     <div class="invalid-feedback" *ngIf="primerN?.errors?.pattern">                       Solo letras [Aa-Zz]                     </div>          </div> 

Cuando entra la pagina funciona bien, pero cuando doy click en el boton para que la variable info sea false me sale el siguiete error:

introducir la descripción de la imagen aquí

Estoy utilizando validación por template de Angular