Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yoelrodguez

#21
Tengo la siguiente situación: estoy usando dos consultas que responde a una misma relación pero la condición del Where es distinta. El resultado de estas dos consultas lo tengo que mostrar en una sola tabla, por lo que estoy ejecutando las dos consultas dentro de un while y uniendo los dos array con un array_marge().

El problema se me esta presentado cuando muestro los registro, ya que una consulta me devuelve más que la otra y solo se me muestra hasta la cantidad de registros menor y lo que necesito es que siempre se me muestren todos los registros por la consulta que más tenga. A continuación les dejo el código para ver si me pueden ayudar.

Gracias.


$query = $this->db->query("SELECT reporte_nomnia.*,
(SELECT CONCAT(`tipo_asist`.`nombre_cor`,' ',`tipo_asist`.`nombre`) FROM `tipo_asist` WHERE `tipo_asist`.`idempresa` = `reporte_nomnia`.`idempresa`  AND `tipo_asist`.`nombre_cor` = `reporte_nomnia`.`concepto`) AS codigo,
(SELECT COUNT(`asistencia`.`id`)  FROM asistencia INNER JOIN empleado ON asistencia.id_empl = empleado.id_empl INNER JOIN tipo_asist ON asistencia.id_tipoasist = tipo_asist.id WHERE `tipo_asist`.`nombre_cor` = `reporte_nomnia`.`concepto`  AND empleado.id_empl = `reporte_nomnia`.`idempleado` AND fecha_ent >= `periodo`.`fecha_inicio` AND fecha_ent <= `periodo`.`fecha_final`  GROUP bY `empleado`.`id_empl` ) As relojdias,
CONCAT(`empleado`.`nombre`,' ', `empleado`.`apellidos`) AS nomb
FROM reporte_nomnia INNER JOIN `empleado` ON `empleado`.`id_empl` = `reporte_nomnia`.`idempleado` INNER JOIN `periodo` ON `periodo`.`id` = `reporte_nomnia`.`idperiodo` WHERE 1 " . $search . $ordenby . " LIMIT " . $init . "," . $reg . "");
$query2 = $this->db->query("SELECT reporte_nomnia.dh AS dh2,reporte_nomnia.importe AS importe2
FROM reporte_nomnia INNER JOIN `empleado` ON `empleado`.`id_empl` = `reporte_nomnia`.`idempleado` INNER JOIN `periodo` ON `periodo`.`id` = `reporte_nomnia`.`idperiodo` WHERE 1 " . $search2 . $ordenby . " LIMIT " . $init . "," . $reg . "");

while ($list = $query->fetch_assoc() and $list2 = $query2->fetch_assoc()) {
$this->aplicacion[] = array_merge($list, $list2);
}
return $this->aplicacion;
#22
Hola a todos, aquí les dejo la solución a este problema que tenia con la generación del pdf en el google chrome. El problema estaba en la forma que esta generando los locate con este método de php setlocale(LC_ALL, "es_MX")  por alguna extraña razón no me estaba respetando el "es_MX" por lo que tuve que hacer el cambio a "es_ES" quedándome así el método al final  setlocale(LC_ALL, "es_ES")  .

Gracias a todos
#23
PHP / Fichero pdf en blanco en google chrome
4 Julio 2020, 01:38 AM
Tengo la siguiente situación, estoy generando un fichero pdf con ezpdf el fichero en mi servidor local xampp se me genera sin problema pero en mi servidor cpanel no me lo esta generando, es decir sale el fichero pdf en blanco sin contenido. En ambos casos estoy usando el mismo navegador.

Gracias.

Este es el código que estoy usando para guardar el fichero.

$pdfcode = $this->pdfl->ezOutput();
$path = "tmp/" . $nombre;

$fp = fopen($path, 'wb');
fwrite($fp, $pdfcode);
fclose($fp);
#24
Hola a todos, tengo la siguiente situación: Estoy realizando una consulta en mysql, donde necesito traer todos los datos que no tenga definido una fecha de baja y si el rango de fecha, es inferior a la fecha de baja, me muestre los datos de los que estén dado de baja.

Condición 1: para el caso de los datos, que no tenga definidos una mecha de baja, se me deben mostrar y si la tiene definida se tiene que ocultar. En esta condición el rango de fecha siempre va a hacer mayor la fecha de baja.

Ejemplo: si el rango de fecha es 2020-04-30 al 2020-05-13 y la fecha de baja fue el 2020-04-30 me tiene que mostrar todos los demás datos excepto el que tiene la fecha de baja definida.

Condición 2: para este caso, los datos que tengan definido fecha de baja y el rango de fecha sea menor a la misma, se tienen que mostrar todos los datos.

Ejemplo: si el rango de fecha es 2020-01-29 al 2020-02-12 y la fecha de baja fue el 2020-04-30 me tiene que mostrar todos los datos aunque tenga la condición de baja.

A continuación le dejo la consulta hasta donde lo tengo para ver si me pueden ayudar.

Gracias.

SELECT empleado.id_empl, `empleado`.`baja`, empleado.referencia, CONCAT(empleado.apellidos,' ',empleado.nombre) AS nombre,tipo_asist.id, tipo_asist.nombre_cor,
(SELECT COUNT(id_tipoasist) FROM asistencia WHERE asistencia.id_empl = empleado.id_empl AND asistencia.fecha_ent >= '2020-04-30' AND asistencia.fecha_ent <= '2020-05-13' AND asistencia.id_tipoasist = tipo_asist.id ) AS presente
FROM asistencia
INNER JOIN empleado ON asistencia.id_empl = empleado.id_empl
INNER JOIN tipo_asist ON asistencia.id_tipoasist = tipo_asist.id
WHERE`empleado`.`fecha_baja` > '2020-05-13'  AND empleado.id_empresa = '6' AND fecha_ent >= '2020-04-30' AND fecha_ent <= '2020-05-13' GROUP BY empleado.id_empl, tipo_asist.id ORDER BY referencia ASC
#25
Desarrollo Web / Varios radio buttons
24 Abril 2020, 05:58 AM
Hola, tengo la siguente situación: estoy usando varios radio button en una misma página pero me está sucediendo que cuando selecciono un se me borran los demas del mismo nombre. El nombre no se lo puedo cambiar porque quiero capturar el valor de todos al mismo tiempo. Aquí les dejo el código para ver si me pueden ayudar. Gracias


<H5>SPOUSE</H5>
<label class="radio inline">
<input type="radio" name="coveragedep[]" id="optionsRadios3" value="1" <?php echo ($row[0]['coverrage'] == 1)?'checked':''?> ><b>Coverage Yes </b>
</label>
<label class="radio inline">
<input type="radio" name="coveragedep[]" id="optionsRadios4" value="2" <?php echo ($row[0]['coverrage'] == 2)?'checked':''?>><b>Coverage No </b>
</label>
<label class="radio inline">
<input type="radio" name="sexodep[]" id="optionsRadios3" value="1" <?php echo ($row[0]['sexo'] == 1)?'checked':''?>><b>Sex M </b>
</label>
<label class="radio inline">
<input type="radio" name="sexodep[]" id="optionsRadios4" value="2" <?php echo ($row[0]['sexo'] == 2)?'checked':''?>><b>Sex F </b>
</label>

<H5>DEPENDE 1</H5>
<label class="radio inline">
<input type="radio" name="coveragedep[]" id="optionsRadios5" value="1" <?php echo ($row[1]['coverrage'] == 1)?'checked':''?>><b>Coverage Yes </b>
</label>
<label class="radio inline">
<input type="radio" name="coveragedep[]" id="optionsRadios6" value="2" <?php echo ($row[1]['coverrage'] == 2)?'checked':''?>><b>Coverage No </b>
</label>
<label class="radio inline">
<input type="radio" name="sexodep[]" id="optionsRadios7" value="1" <?php echo ($row[1]['sexo'] == 1)?'checked':''?>><b>Sex M </b>
</label>
<label class="radio inline">
<input type="radio" name="sexodep[]" id="optionsRadios8" value="2" <?php echo ($row[1]['sexo'] == 2)?'checked':''?>><b>Sex F </b>
</label>
#26
Muchas gracias con los [] logre resolver el problema y si estoy usando SQLserver.
#27
Hola a todos: tengo la siguiente situación, estoy haciendo una consulta con mysql para obtener todos valores por aseguradora de una mismo id separados por columnas. Para obtener los resultados por columnas, a la hora de ejecutar el Query estoy usando CASE con la siguiente condición de GROUP BY (GROUP BY agent.id,  `client`.`id_insured`)  si me da el resultado esperado en las nuevas columnas que estoy creando, mostrandome una linea por cada aseguradora que tengo pero si quito  id_insured del GROUP BY  para obtener el resultado en una sola línea por cada id las columnas (numclimol, nummenmol, numcliamb, nummenamb, numcliflo, nummenflo, numcliosc, nummenosc, numclicig, nummencig, numclibri, nummenbri) me devuelven valor null . A continuación les dejo el código para ver si me pueden ayudar.

Gracias.

Ejemplo de como me lo está mostrado

Citar
id1 | 5 | 10 |
id1 |    |       | 4 | 6

Ejemplo de como lo necesito
Citar
id1 | 5 | 10 | 4 | 6

Consulta SQL

SELECT CONCAT(agent.agent_name,' ',agent.agent_lastname) AS agent, `agent`.`npn`, SUBSTRING(`client`.`aplication_date`,1,4) AS pyear,GROUP_CONCAT(DISTINCT `client`.agent2 ORDER BY  `client`.agent2 ASC SEPARATOR ' | ') AS agent2,
CASE WHEN `client`.`id_insured` = 1 THEN COUNt(`client`.id) END AS numclimol,
CASE WHEN `client`.`id_insured` = 1 THEN SUM(`client`.`family_menber`) END AS nummenmol,
CASE WHEN `client`.`id_insured` = 2 THEN COUNt(`client`.id) END AS numcliamb,
CASE WHEN `client`.`id_insured` = 2 THEN SUM(`client`.`family_menber`) END AS nummenamb,
CASE WHEN `client`.`id_insured` = 3 THEN COUNt(`client`.id) END AS numcliflo,
CASE WHEN `client`.`id_insured` = 3 THEN SUM(`client`.`family_menber`) END AS nummenflo,
CASE WHEN `client`.`id_insured` = 9 THEN COUNt(`client`.id) END AS numcliosc,
CASE WHEN `client`.`id_insured` = 9 THEN SUM(`client`.`family_menber`) END AS nummenosc,
CASE WHEN `client`.`id_insured` = 11 THEN COUNt(`client`.id) END AS numclicig,
CASE WHEN `client`.`id_insured` = 11 THEN SUM(`client`.`family_menber`) END AS nummencig,
CASE WHEN `client`.`id_insured` = 12 THEN COUNt(`client`.id) END AS numclibri,
CASE WHEN `client`.`id_insured` = 12 THEN SUM(`client`.`family_menber`) END AS nummenbri
FROM agent INNER JOIN `client` ON `client`.id_agent = agent.id WHERE `client`.`borrado` <> 1
AND SUBSTRING(`client`.`aplication_date`,1,4) = '2020' GROUP BY agent.id,  `client`.`id_insured`   ORDER BY agent.id ASc, `client`.`id_insured` ASC

#28
Tengo la siguiente situación: estoy tratando de hacer un movimiento interno dentro de mi Google Drive con php, desde la api y me envía el siguiente error:

CitarAn error occurred: { "error": { "errors": [ { "domain": "global",
"reason": "cannotCopyFile", "message": "This file cannot be copied by
the user." } ], "code": 403, "message": "This file cannot be copied by
the user." } }
Uso otras funciones, que si me trabajan sin problema como es crear un directorio, buscar el directorio así como subir los archivos al directorio. El token y las credenciales que estoy usando es el mismo para todo. A continuación les dejo el código de la función que estoy usando para hacer la copia para ver si me pueden ayudar.

Gracias

Función

       public function renameFile($service, $fileId, $newTitle)
   {
       try {
           $file = new Google_Service_Drive_DriveFile($newTitle);

           $updatedFile = $service->files->copy($fileId, $file, array(
               'fields' => 'title'
           ));
           return $updatedFile;

       } catch (Exception $e) {
           print "An error occurred: " . $e->getMessage();
       }
   }


Array $newTitle

    $newTitle =  array(
          'title' => 'titulo del directorio',
           'parents' => array('folder parents')
);


#29
Tengo la siguiente situación me pidieron hacer un proyecto con una base de datos SQL ya creada pero me encuentro que los nombres de las tablas y los campos de las tablas están escritos con espacios y cuando trato de ejecutar mi consulta me envía un error de sintaxis. Esta base datos se encuentra funcionando con una aplicación hecha en Visual Basic y yo estoy haciendo una aplicación web con php y sql server. A continuación le dejo mi código:


Select Customer.AR Cust Password, Customer.AR Cust User Name FROM AR Customer AS Customer


Error:
Citar19:04:05 Kernel error: [FreeTDS][MSSQL Server] , Server EC2AMAZ-977S99A\APPBSC, Line 1
Incorrect syntax near 'Password'.
#30
Tengo la siguiente situación: tengo una consulta que me debe devolver 200 registro y me está devolviendo 206 por lo que el valor de la suma, que estoy haciendo me varia mucho. He hecho varias pruebas pero no logro que me que de el valor que realmente es. A continuación le dejo la consulta y las pruebas que he realizado para ver si me pueden ayudar.

SELECT DISTINCT `client`.id , COUNT(registro.id) AS nopay, SUM(registro.com_paym) AS monto
FROM registro
INNER JOIN `client` ON client.suscriberid = registro.subcriberid
WHERE client.id_agent = '61' AND registro.procedado > 0 AND SUBSTRING(registro.fecha, 1,4) = '2020' AND SUBSTRING(client.aplication_date, 1,4) = '2020' AND SUBSTRING(registro.fecha, 6,2) = '01' AND client.borrado <> 1 AND client.id_insured = '2' GROUP BY registro.procedado  ORDER BY  registro.procedado ASC


Valor que me está devolviendo:

nopay = 206 de 200
monto = 6153.00 de 6132.00

Prueba que he realizado.

Quite la condición de COUNT y SUM y cambie el GROUP BY y ORDER BY en lugar de registro.procesado por `client`.id y quite el DISTINCT si me devuelve la cantidad correcta de registro y el valor del monto es correcto pero de esta manera no puedo el numero de procesados que es por el que necesito hacer la suma y el conteo.

Gracias