Foros del Web » Programando para Internet » PHP »

Crear calendario en Sistema de Asistencia

Estas en el tema de Crear calendario en Sistema de Asistencia en el foro de PHP en Foros del Web. Buenos dias amigos. tengo una duda y me gustaria saber como resolverla. pues veran estoy haciendo un sistema de asistencia de personal... donde yo registro ...
  #1 (permalink)  
Antiguo 25/11/2011, 08:17
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Crear calendario en Sistema de Asistencia

Buenos dias amigos. tengo una duda y me gustaria saber como resolverla.

pues veran estoy haciendo un sistema de asistencia de personal... donde yo registro la entrada y salida del mismo...

ahora la empresa me pidio un reporte donde yo dibuje una tabla

y salga algo asi:

L M M J V S D L M M J V S D ....
X X X X X X X X X X X X ....

Es decir arriba el dia de la semana y abajo una X siempre y cuando para ese dia la cedula cuente con una hora de entrada...

como puedo hacer eso?? porque no tengo la idea de como empezar :S
  #2 (permalink)  
Antiguo 25/11/2011, 09:37
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

hola Jujogual, create un archivo php con esto y juega con la ultima linea, cuando lo entiendas lo aplicas a tu trabajo:


Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin,$array_asistencia){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->asist = $array_asistencia;
  27.         $this->dif_dias = $f2 - $f1 + 1;
  28.         if($this->dif_dias>0) {
  29.             $this->crearTablaDias($array_asistencia);
  30.         }else{
  31.             print "error datos";
  32.         }
  33.     }
  34.    
  35.     function crearTablaDias(){
  36.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  37.         for($row=0;$row<3;$row++){
  38.             list($d,$m,$a) = fechaNumero($this->fi,1);
  39.             print "<tr>\n";
  40.             for($i==0 ; $i<$this->dif_dias ;$i++){
  41.                 print "<td align=\"center\">";
  42.                 if($row==0)
  43.                 print diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  44.                 elseif($row==1)
  45.                 print date("j",mktime(0,0,0,$m,$d,$a));
  46.                 elseif($row==2){
  47.                     if($this->asist[$i]==1)
  48.                     print "x";
  49.                     else
  50.                     print "&nbsp;";
  51.                 }
  52.                 $d++;
  53.                 print "</td>";
  54.             }
  55.             print "</tr>\n";
  56.             $i=0;
  57.         }
  58.         print "</table>";
  59.     }
  60. }
  61. //Término Clase
  62.  
  63.  
  64.  
  65. //$asistencia es la info como array
  66. $asistencia = array(0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1);
  67. //se crea el constructor
  68. $const = new claseTablaDias;
  69. //se ingresan los datos, fecha de incio, fecha de termino, array de asistencia
  70. $const->validarDatos("20-8-2011","4-9-2011",$asistencia);
  71. ?>

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 25/11/2011, 09:37
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 7 meses
Puntos: 1532
Respuesta: Crear calendario en Sistema de Asistencia

tan simple como usar tablas HTML, no veo el inconveniente
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 25/11/2011, 09:40
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

maycolalvarez Creeme aveces es bastante dificil hacer algo cuando no tienes nocion de donde abordarlo Perr0 Probare tu ejemplo y comentare si me trabo, gracias
  #5 (permalink)  
Antiguo 25/11/2011, 09:46
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Cita:
Iniciado por Perr0 Ver Mensaje
hola Jujogual, create un archivo php con esto y juega con la ultima linea, cuando lo entiendas lo aplicas a tu trabajo:


Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin,$array_asistencia){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->asist = $array_asistencia;
  27.         $this->dif_dias = $f2 - $f1 + 1;
  28.         if($this->dif_dias>0) {
  29.             $this->crearTablaDias($array_asistencia);
  30.         }else{
  31.             print "error datos";
  32.         }
  33.     }
  34.    
  35.     function crearTablaDias(){
  36.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  37.         for($row=0;$row<3;$row++){
  38.             list($d,$m,$a) = fechaNumero($this->fi,1);
  39.             print "<tr>\n";
  40.             for($i==0 ; $i<$this->dif_dias ;$i++){
  41.                 print "<td align=\"center\">";
  42.                 if($row==0)
  43.                 print diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  44.                 elseif($row==1)
  45.                 print date("j",mktime(0,0,0,$m,$d,$a));
  46.                 elseif($row==2){
  47.                     if($this->asist[$i]==1)
  48.                     print "x";
  49.                     else
  50.                     print "&nbsp;";
  51.                 }
  52.                 $d++;
  53.                 print "</td>";
  54.             }
  55.             print "</tr>\n";
  56.             $i=0;
  57.         }
  58.         print "</table>";
  59.     }
  60. }
  61. //Término Clase
  62.  
  63.  
  64.  
  65. //$asistencia es la info como array
  66. $asistencia = array(0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1);
  67. //se crea el constructor
  68. $const = new claseTablaDias;
  69. //se ingresan los datos, fecha de incio, fecha de termino, array de asistencia
  70. $const->validarDatos("20-8-2011","4-9-2011",$asistencia);
  71. ?>

salu2
Disculpa pegue tu codigo en un fichero y mando a mostrar y veo esto:

fi = $fecha_inicio; $this->asist = $array_asistencia; $this->dif_dias = $f2 - $f1 + 1; if($this->dif_dias>0) { $this->crearTablaDias($array_asistencia); }else{ print "error datos"; } } function crearTablaDias(){ print "\n"; for($row=0;$row<3;$row++){ list($d,$m,$a) = fechaNumero($this->fi,1); print "\n"; for($i==0 ; $i<$this->dif_dias ;$i++){ print ""; } print "\n"; $i=0; } print "
"; if($row==0) print diasemana(date("w",mktime(0,0,0,$m,$d,$a))); elseif($row==1) print date("j",mktime(0,0,0,$m,$d,$a)); elseif($row==2){ if($this->asist[$i]==1) print "x"; else print " "; } $d++; print "
"; } } //Término Clase //$asistencia es la info como array $asistencia = array(0,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1); //se crea el constructor $const = new claseTablaDias; //se ingresan los datos, fecha de incio, fecha de termino, array de asistencia $const->validarDatos("20-8-2011","4-9-2011",$asistencia); ?>

porque? :S
  #6 (permalink)  
Antiguo 25/11/2011, 09:47
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Ya ya ya se que ocurria... faltaba el PHP en el "<?" Disculpa... ya lo entendi gracias :)
  #7 (permalink)  
Antiguo 25/11/2011, 09:53
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

Cita:
Iniciado por JuJoGuAl Ver Mensaje
Ya ya ya se que ocurria... faltaba el PHP en el "<?" Disculpa... ya lo entendi gracias :)
jajajajajaajaja

hay veces que el error esta entre "el teclado y la silla"

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #8 (permalink)  
Antiguo 25/11/2011, 10:08
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Cita:
Iniciado por Perr0 Ver Mensaje
jajajajajaajaja

hay veces que el error esta entre "el teclado y la silla"

salu2
jejejeje si :S amigo una pregunta tengo que crear el $array con los datos de la tabla que tengo en mysql..

como hago para que me ponga en 0 los dias DOMINGOS porque esos dias no se trabaja... o como hago con esos dias porque si mando:

de: 25/10/2011 hasta: 31/11/2011 alli caeran domingos, que no son laborables..

como hago con esos dias? :S
  #9 (permalink)  
Antiguo 25/11/2011, 10:52
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

le hice una modificacion para los domingos, trata de ingeniartelas tu

Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin,$array_asistencia){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->asist = $array_asistencia;
  27.         $this->dif_dias = $f2 - $f1 + 1;
  28.         if($this->dif_dias>0) {
  29.             $this->crearTablaDias($array_asistencia);
  30.         }else{
  31.             print "error datos";
  32.         }
  33.     }
  34.    
  35.     function crearTablaDias(){
  36.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  37.         for($row=0;$row<3;$row++){
  38.             list($d,$m,$a) = fechaNumero($this->fi,1);
  39.             print "<tr>\n";
  40.             for($i==0 ; $i<$this->dif_dias ;$i++){
  41.                 print "<td align=\"center\">";
  42.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  43.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  44.                 if($row==0)
  45.                 print $dia;
  46.                 elseif($row==1)
  47.                 print $fechadia;
  48.                 elseif($row==2){
  49.                     if($this->asist[$i]==1 && $dia!="Do")
  50.                     print "x";
  51.                     else
  52.                     print "&nbsp;";
  53.                 }
  54.                 $d++;
  55.                 print "</td>";
  56.             }
  57.             print "</tr>\n";
  58.             $i=0;
  59.         }
  60.         print "</table>";
  61.     }
  62. }
  63. //Término Clase
  64.  
  65.  
  66.  
  67. //$asistencia es la info como array
  68. $asistencia = array(0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,1);
  69. //se crea el constructor
  70. $const = new claseTablaDias;
  71. //se ingresan los datos, fecha de incio, fecha de termino, array de asistencia
  72. $const->validarDatos("20-8-2011","4-9-2011",$asistencia);
  73. ?>


salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #10 (permalink)  
Antiguo 25/11/2011, 10:54
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

que tipo de modificacion? ya voy a probarlo.
  #11 (permalink)  
Antiguo 25/11/2011, 13:35
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Amigo necesito Crear el array para llevarselo al sistema y te explico mi duda:

mi array no es fijo puesto esta compuesto (el largo) por los dias de diferencia que hay de Fecha2 a Fecha1..

yo use mktime y calcule los dias que hay en diferencia..

ahora para cargar el array yo tengo que comprar cada dia de diferencia con los dias registrado en la Bd, es decir:

Si me ponen de fecha= Fecha2=25/11/2011 y Fecha1=10/11/2011, alli hay 15 dias de diferencia.

entonces el array tiene que tener un largo de 15 y para marcar los "1" que compare el dia con el dia de la BD y supongo que es algo asi:

dif(vale 15) y corresponde al dia 25,
list($dia,$mes,$ano)=explode('$row['entrada']);
si $dia = 25
entonces cargo un 1
de lo contrario cargo un 0
dif --...

entonces cuando comienze de nuevo ese bucle que diga 14 corresponde a 24 que es jueves y asi...

Bueno quizas este algo perdido como puedo cargar los 1 que corresponden a la fecha?
  #12 (permalink)  
Antiguo 25/11/2011, 14:31
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

hay varias formas de adaptarlo, puedes consultar tu base

"SELECT fecha FROM tabla WHERE fecha='2011-11-22'"
"SELECT fecha FROM tabla WHERE fecha='2011-11-23'"
"SELECT fecha FROM tabla WHERE fecha='2011-11-24'"


y asi hasta que llegues al ultimo dia. cada vez que la consultes y te arroje un resultado que existe:

$asistencia[]=1;

caso contrario

$asistencia[]=0;

al terminar tendras tu array

-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------


otra forma es quitar $asistencia de la clase y realizar la consulta a la base en la clase

algo asi
"SELECT fecha FROM tabla WHERE fecha='$a-$m-$d'"

te lo dejo, trata de adaptarlo porque nose los nombres de tu tabla y campos

Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->dif_dias = $f2 - $f1 + 1;
  27.         if($this->dif_dias>0) {
  28.             $this->crearTablaDias();
  29.         }else{
  30.             print "error datos";
  31.         }
  32.     }
  33.    
  34.     function crearTablaDias(){
  35.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  36.         for($row=0;$row<3;$row++){
  37.             list($d,$m,$a) = fechaNumero($this->fi,1);
  38.             print "<tr>\n";
  39.             for($i==0 ; $i<$this->dif_dias ;$i++){
  40.                 print "<td align=\"center\">";
  41.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  42.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  43.                 if($row==0)
  44.                 print $dia;
  45.                 elseif($row==1)
  46.                 print $fechadia;
  47.                 elseif($row==2){
  48.                     ##################### CONECTAR BASE DATOS #####################
  49.                     $consulta = "SELECT fecha FROM tabla WHERE fecha='$a-$m-$d'";
  50.                     $query = mysql_query($consulta);
  51.                     if(mysql_num_rows($query))
  52.                     $valor=1;
  53.                     else
  54.                     $valor=0;
  55.                     ##################### DESCONECTAR BASE DATOS #####################
  56.                     if($valor==1 && $dia!="Do")
  57.                     print "x";
  58.                     else
  59.                     print "&nbsp;";
  60.                 }
  61.                 $d++;
  62.                 print "</td>";
  63.             }
  64.             print "</tr>\n";
  65.             $i=0;
  66.         }
  67.         print "</table>";
  68.     }
  69. }
  70. //Término Clase
  71.  
  72.  
  73.  
  74. //se crea el constructor
  75. $const = new claseTablaDias;
  76. //se ingresan los datos, fecha de incio, fecha de termino, array de asistencia
  77. $const->validarDatos("20-8-2011","4-9-2011");
  78. ?>

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #13 (permalink)  
Antiguo 25/11/2011, 14:48
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

Se me paso algo en el anterior código
resetear $valor

asi que lo quite y resumi en 4 ó 5 lineas menos

Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->dif_dias = $f2 - $f1 + 1;
  27.         if($this->dif_dias>0) {
  28.             $this->crearTablaDias();
  29.         }else{
  30.             print "error datos";
  31.         }
  32.     }
  33.    
  34.     function crearTablaDias(){
  35.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  36.         for($row=0;$row<3;$row++){
  37.             list($d,$m,$a) = fechaNumero($this->fi,1);
  38.             print "<tr>\n";
  39.             for($i==0 ; $i<$this->dif_dias ;$i++){
  40.                 print "<td align=\"center\">";
  41.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  42.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  43.                 if($row==0)
  44.                 print $dia;
  45.                 elseif($row==1)
  46.                 print $fechadia;
  47.                 elseif($row==2){
  48.                     ##################### CONECTAR BASE DATOS #####################
  49.                     $consulta = "SELECT fecha FROM tabla WHERE fecha='$a-$m-$d'";
  50.                     $query = mysql_query($consulta);
  51.                     if(mysql_num_rows($query) && $dia!="Do")
  52.                     print "x";
  53.                     else
  54.                     print "&nbsp;";
  55.                     ##################### DESCONECTAR BASE DATOS #####################
  56.                 }
  57.                 $d++;
  58.                 print "</td>";
  59.             }
  60.             print "</tr>\n";
  61.             $i=0;
  62.         }
  63.         print "</table>";
  64.     }
  65. }
  66. //Término Clase
  67.  
  68.  
  69.  
  70. //se crea el constructor
  71. $const = new claseTablaDias;
  72. //se ingresan los datos, fecha de incio, fecha de termino
  73. $const->validarDatos("20-8-2011","4-9-2011");
  74. ?>

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #14 (permalink)  
Antiguo 25/11/2011, 14:56
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Wao amigo demasiado agradecido por tu ayuda... eso era justo lo que queria... ahora me han mandado a resumir la tabla porq como en mi caso es un resumen general me sale:
trabajador
ju/vie/sab...
10/11/12...
0/1/0...

y eso lo repite por los N trabajadores...

entonces quieren algo asi:
jue/vie/sab...
10/11/12/...
trabajador1 0 / 1 / 0 / ...
trabajador2 0 / 1 / 0 / ...

una pregunta e notado que has usado una clase, porque? no es lo mismo que esa tabla estubiera en una funcion?
  #15 (permalink)  
Antiguo 25/11/2011, 15:29
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

las clases son contenedores de funciones, te permiten trabajar con orden, estoy acostumbrado a trabajar asi, por ejemplo si tengo una gran cantidad de archivos con varias clases, ya se cual tengo que buscar para arreglar algun problema con los horarios.

las dos funciones que deje fuera lo hice apropósito (asi trabajo) porque hay veces en que necesito una operacion mas simple como por ejemplo separar el dia mes y año de una fecha y no es necesario construir un objeto para ello. Pero en este caso podria haber estado contenida y llamarla con el nombre de la funcion

fechaNumero para una funcion dentro de una misma clase es $this->fechaNumero

en fin, es a criterio. Por mi parte es importante para no tener codigo salpicado por todos lados y que sea de mas rapido acceso...de mi punto de vista es como tener el codigo PHP desfragmentado.

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #16 (permalink)  
Antiguo 25/11/2011, 15:32
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

umm, ya voy agarrando eso de las clases... ahora mira para lo que te comente estoy metiendo un DO pero no se donde ponerlo para que solo me repita la fila que contiene los 0 y 1....
  #17 (permalink)  
Antiguo 25/11/2011, 15:50
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

segun entedi quieres otra fila por trabajador

seria algo asi

Código PHP:
Ver original
  1. <?
  2. //Inicio Funciones
  3. function fechaNumero($f,$opc){
  4.     $f = preg_replace("#[,.\/ ]#","-",$f);
  5.     if(!$opc){
  6.         list($d,$m,$a) = explode("-",$f);
  7.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  8.     }else
  9.     $fecha = explode("-",$f);
  10.     return $fecha;
  11. }
  12.  
  13. function diasemana($d) {
  14.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  15.     return $sem[$d];
  16. }
  17. //Término Funciones
  18.  
  19.  
  20. //Inicio Clase
  21. class claseTablaDias {
  22.     function validarDatos($fecha_inicio,$fecha_fin,$trabajadores){
  23.         $f1 = fechaNumero($fecha_inicio,0);
  24.         $f2 = fechaNumero($fecha_fin,0);
  25.         $this->fi = $fecha_inicio;
  26.         $this->dif_dias = $f2 - $f1 + 1;
  27.         if($this->dif_dias>0) {
  28.             $this->crearTablaDias($trabajadores);
  29.         }else{
  30.             print "error datos";
  31.         }
  32.     }
  33.    
  34.     function crearTablaDias($total_trabajadores){
  35.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  36.         for($row=0;$row<count($total_trabajadores) + 2;$row++){
  37.             list($d,$m,$a) = fechaNumero($this->fi,1);
  38.             print "<tr>\n";
  39.             for($i==0 ; $i<$this->dif_dias ;$i++){
  40.                 print "<td align=\"center\">";
  41.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  42.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  43.                 if($row==0)
  44.                 print $dia;
  45.                 elseif($row==1)
  46.                 print $fechadia;
  47.                 elseif($row>=2){
  48.                     ##################### CONECTAR BASE DATOS #####################
  49.                     $consulta = "SELECT fecha FROM tabla WHERE fecha='$a-$m-$d' AND trabajador=\"".$this->workers[$i-2]."\"";
  50.                     $query = mysql_query($consulta);
  51.                     if(mysql_num_rows($query) && $dia!="Do")
  52.                     print "x";
  53.                     else
  54.                     print "&nbsp;";
  55.                     ##################### DESCONECTAR BASE DATOS #####################
  56.                 }
  57.                 $d++;
  58.                 print "</td>";
  59.             }
  60.             print "</tr>\n";
  61.             $i=0;
  62.         }
  63.         print "</table>";
  64.     }
  65. }
  66. //Término Clase
  67.  
  68.  
  69. //Listado trabajadores, use como Id el nombre pero tu debes tener otro Id quizá
  70. $aTrabajadores = array("Juan", "Pedro", "Luis","Mario");
  71. //se crea el constructor
  72. $const = new claseTablaDias;
  73. //se ingresan los datos, fecha de incio, fecha de termino, array de trabajadores
  74. $const->validarDatos("20-8-2011","4-9-2011",$aTrabajadores);
  75. ?>


por mi parte me retiro

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #18 (permalink)  
Antiguo 25/11/2011, 15:58
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

jajajajaja pero vuelves con los array y me enredo porque como armo ese array con los nombres de los trabajadores???

yo me estaba moviendo mas con los do () while...
  #19 (permalink)  
Antiguo 25/11/2011, 16:16
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Obtengo un error:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\jego\reporte_resumen.php on line 120 supongo porque no veo definido esta variable:

$this->workers[$i-2]
  #20 (permalink)  
Antiguo 25/11/2011, 21:42
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 9 meses
Puntos: 79
Respuesta: Crear calendario en Sistema de Asistencia

En realidad es error mio en un momento $i es cero y busca un array 0-2 osea -2

trata de cambiar

$this->workers[$i-2]

por

$this->workers[$row-2]


se entiende $i por $row


cuando crees tu array de trabajadores por ejemplo si los buscas por el campo nombre, o un Id por tienen que ser asi

para nombre
$aTrabajadores = array("Juan", "Pedro", "Luis","Mario");

seria entonces asi

"SELECT fecha FROM tabla WHERE fecha='$a-$m-$d' AND nombretrabajador=\"".$this->workers[$i-2]."\"";


-----------------------------------------------

para un ID
$aTrabajadores = array(4,7,22,29);

seria entonces asi

"SELECT fecha FROM tabla WHERE fecha='$a-$m-$d' AND idtrabajador=\"".$this->workers[$i-2]."\"";


salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #21 (permalink)  
Antiguo 26/11/2011, 09:15
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

Bueno lo tengo casi resuelto... pero los dias se me estan corriendo...

cuando coloco las fechas de intervalo: 01/11/2011 - 30/11/2011...

me muestra es que el MIERCOLES es 01 (cuando en realidad es martes) y cuando llega al 30 no muestra 30 si no 0...

te paso el codigo total:
Código PHP:
Ver original
  1. <?PHP
  2. require_once('Connections/Sistema.php');
  3. date_default_timezone_set('America/Caracas');
  4. $hora=date("d/m/Y h:i:s A");
  5. //Inicio Funciones
  6. function fechaNumero($f,$opc){
  7.     $f = preg_replace("#[,.\/ ]#","-",$f);
  8.     if(!$opc){
  9.         list($d,$m,$a) = explode("-",$f);
  10.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  11.     }else
  12.     $fecha = explode("-",$f);
  13.     return $fecha;
  14. }
  15.  
  16. function diasemana($d) {
  17.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  18.     return $sem[$d];
  19. }
  20. //Término Funciones
  21.  
  22.  
  23. //Inicio Clase
  24. class claseTablaDias {
  25.     function validarDatos($fecha_inicio,$fecha_fin,$trabajadores,$trabajadornom){
  26.         $f1 = fechaNumero($fecha_inicio,0);
  27.         $f2 = fechaNumero($fecha_fin,0);
  28.         $this->fi = $fecha_inicio;
  29.         $this->dif_dias = $f2 - $f1 + 1;
  30.         if($this->dif_dias>0) {
  31.             $this->crearTablaDias($trabajadores,$trabajadornom);
  32.         }else{
  33.             print "error datos";
  34.         }
  35.     }
  36.    
  37.     function crearTablaDias($total_trabajadores,$trabajadornom){
  38.         print "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\">\n";
  39.         for($row=0;$row<count($total_trabajadores)+2;$row++){
  40.             list($d,$m,$a) = fechaNumero($this->fi,1);
  41.             print "<tr>\n";
  42.             $celdas=$this->dif_dias+1;
  43.             for($i==0 ; $i<$celdas;$i++){
  44.                 print "<td align=\"center\">";
  45.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  46.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  47.                 if($row==0)
  48.                     if ($i==0)
  49.                     {
  50.                         print "&nbsp;";
  51.                     }
  52.                     else
  53.                     {
  54.                         print $dia;
  55.                     }
  56.                 elseif($row==1)
  57.                 if ($i==0)
  58.                     {
  59.                         print "&nbsp;";
  60.                     }
  61.                     else
  62.                     {
  63.                         print $fechadia-1;// menos 1 por la celda extra que agrege
  64.                     }
  65.                 elseif($row>=2){
  66.                     ##################### CONECTAR BASE DATOS #####################
  67.                         $clave=$row-2;
  68.                         $cone = mysql_connect('localhost', 'root', '') or die ("Error de Conexion: " .mysql_error());
  69.                         $select=mysql_select_db('registros',$cone) or die ("Error del select db: ".mysql_error());
  70.                         $consulta = "SELECT registros.cedula,empleados.nombres as nombres,DATE_FORMAT(registros.entrada1,'%d/%m/%Y, %r') as entrada1,DATE_FORMAT(registros.salida1,'%d/%m/%Y, %r') as salida1,DATE_FORMAT(registros.entrada2,'%d/%m/%Y, %r') as entrada2,DATE_FORMAT(registros.salida2,'%d/%m/%Y, %r') as salida2,empleados.empresa as nomina,registros.empresa FROM registros INNER JOIN empleados ON registros.cedula=empleados.cedula WHERE DATE_FORMAT(registros.entrada1,'%d/%m/%Y') = '$d/$m/$a' AND registros.cedula = $total_trabajadores[$clave]";
  71.                         ##################### DESCONECTAR BASE DATOS #####################
  72.                         $query = mysql_query($consulta);
  73.                         $rowdato = mysql_fetch_assoc($query);
  74.                     if ($i==0)
  75.                     {
  76.                         print $trabajadornom[$clave];
  77.                     }
  78.                     else
  79.                     {
  80.                         if(mysql_num_rows($query) && $dia!="Do")
  81.                         print "1";
  82.                         else
  83.                         print "0";
  84.                     }
  85.                 }
  86.                 $d++;
  87.                 print "</td>";
  88.             }
  89.             print "</tr>\n";
  90.             $i=0;
  91.         }
  92.         print "</table>";
  93.     }
  94. }
  95. //Término Clase
  96. if ($_SESSION['ID'] != 0 && $_SESSION['TIENDA']!="NINGUNO")
  97. {
  98.     if (isset($_GET['entrada']))
  99.     {
  100.       $entrada=escape($_GET['entrada']);
  101.     }
  102.     if (isset($_GET['salida']))
  103.     {
  104.       $salida=escape($_GET['salida']);
  105.     }
  106.     if (isset($_GET['empresa']))
  107.     {
  108.       $empresa=escape($_GET['empresa']);
  109.     }
  110.     //$sql = "SELECT registros.cedula,empleados.nombres,DATE_FORMAT(registros.entrada1,'%d/%m/%Y, %r') as entrada1,DATE_FORMAT(registros.salida1,'%d/%m/%Y, %r') as salida1,DATE_FORMAT(registros.entrada2,'%d/%m/%Y, %r') as entrada2,DATE_FORMAT(registros.salida2,'%d/%m/%Y, %r') as salida2,empleados.empresa as nomina,registros.empresa FROM registros INNER JOIN empleados ON registros.cedula=empleados.cedula WHERE registros.cedula>0";
  111.     $sql="SELECT cedula,nombres FROM empleados WHERE cedula > 0";
  112.     if ( ($entrada!=NULL) )
  113.     {
  114.         //$sql.=" AND DATE_FORMAT (registros.entrada1,'%d/%m/%Y') >= '$entrada'";
  115.        
  116.     }
  117.     if ( ($salida!=NULL) )
  118.     {
  119.         //$sql.=" AND DATE_FORMAT (registros.entrada1,'%d/%m/%Y') <= '$salida'";
  120.        
  121.     }
  122.     if ( ($empresa!="TODOS") )
  123.     {
  124.         //$sql.=" AND empleados.empresa = '$empresa' ";
  125.         $sql.=" AND empresa = '$empresa' ";
  126.        
  127.     }
  128.     //$sql.=" ORDER BY registros.entrada1";
  129.     $sql.=" ORDER BY cedula";
  130.     mysql_select_db($database_Sistema, $Sistema);
  131.     $auditoria = mysql_query($sql, $Sistema) or die(mysql_error());
  132.     $rowauditoria = mysql_fetch_assoc($auditoria);
  133.     $total= mysql_num_rows($auditoria);
  134.     if ($total!=0)
  135.     {      
  136.         //Listado trabajadores con ID
  137.         $aTrabajadores=array();
  138.         $nomTrabajadores=array();
  139.         do
  140.         {
  141.             $ced=$rowauditoria['cedula'];
  142.             $nom=$rowauditoria['nombres'];
  143.             array_push($aTrabajadores,$ced);
  144.             array_push($nomTrabajadores,$nom);
  145.            
  146.         }
  147.         while ($rowauditoria = mysql_fetch_assoc($auditoria));
  148.         //se crea el constructor
  149.         $const = new claseTablaDias;
  150.         //se ingresan los datos, fecha de incio, fecha de termino, array de trabajadores
  151.         $const->validarDatos($entrada,$salida,$aTrabajadores,$nomTrabajadores);
  152.     }
  153.     else
  154.     {
  155.         //No Hay resultados
  156.         ?>
  157.         <table width="100%" border="0">
  158.             <tr>
  159.                 <td align="center"><img src="Imagenes/Banner.gif"></td>
  160.             </tr>
  161.             <tr>
  162.                 <td align="center"><p style="font-family:Arial, Helvetica, sans-serif; color:FF0000; font-size:18px;">
  163.                 No Hay Resultados con este Criterio de Busqueda                
  164.                 </p>
  165.                 </td>
  166.             </tr>
  167.         </table>
  168.         <?PHP
  169.     }
  170. }
  171. else
  172. {
  173.     redir('./control.php?code=001');
  174. }
  175.  
  176. ?>
  #22 (permalink)  
Antiguo 26/11/2011, 09:45
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 7 meses
Puntos: 19
Respuesta: Crear calendario en Sistema de Asistencia

He Resuelto el problema, ahora el resultado final (la tabla que se me arma) debe caer dentro de un pdf... yo ya e creado pdf con el EZPDF, ahora el codigo que arme es el Siguiente:

Código PHP:
Ver original
  1. <?PHP
  2. require_once('Connections/Sistema.php');
  3. date_default_timezone_set('America/Caracas');
  4. $hora=date("d/m/Y h:i:s A");
  5. //Inicio Funciones
  6. function fechaNumero($f,$opc){
  7.     $f = preg_replace("#[,.\/ ]#","-",$f);
  8.     if(!$opc){
  9.         list($d,$m,$a) = explode("-",$f);
  10.         $fecha = mktime(0,0,0,$m,$d,$a)/(60 * 60 * 24);
  11.     }else
  12.     $fecha = explode("-",$f);
  13.     return $fecha;
  14. }
  15.  
  16. function diasemana($d) {
  17.     $sem = array("Do","Lu","Ma","Mi","Ju","Vi","Sa");
  18.     return $sem[$d];
  19. }
  20. //Término Funciones
  21.  
  22.  
  23. //Inicio Clase
  24. class claseTablaDias {
  25.     function validarDatos($fecha_inicio,$fecha_fin,$trabajadores,$trabajadornom){
  26.         $f1 = fechaNumero($fecha_inicio,0);
  27.         $f2 = fechaNumero($fecha_fin,0);
  28.         $this->fi = $fecha_inicio;
  29.         $this->dif_dias = $f2 - $f1 + 1;
  30.         if($this->dif_dias>0) {
  31.             $this->crearTablaDias($trabajadores,$trabajadornom);
  32.         }else{
  33.             print "error datos";
  34.         }
  35.     }
  36.    
  37.     function crearTablaDias($total_trabajadores,$trabajadornom){
  38.         print "<table border=\"1\" bordercolor=\"#000000\" cellpadding=\"2\" cellspacing=\"2\">\n";
  39.         for($row=0;$row<count($total_trabajadores)+2;$row++){
  40.             list($d,$m,$a) = fechaNumero($this->fi,1);
  41.             $d=$d-1;
  42.             print "<tr>\n";
  43.             $celdas=$this->dif_dias+2;
  44.             $diasasistidos=0;
  45.             for($i==0 ; $i<$celdas;$i++){
  46.                 print "<td align=\"center\">";
  47.                 $dia = diasemana(date("w",mktime(0,0,0,$m,$d,$a)));
  48.                 $fechadia = date("j",mktime(0,0,0,$m,$d,$a));
  49.                 if($row==0)
  50.                     if ($i==0)
  51.                     {
  52.                         print "&nbsp;";
  53.                     }
  54.                     elseif($i==$celdas-1)
  55.                     {
  56.                         print "Dias";
  57.                     }
  58.                     else
  59.                     {
  60.                         print $dia;
  61.                     }
  62.                 elseif($row==1)
  63.                 if ($i==0)
  64.                     {
  65.                         print "&nbsp;";
  66.                     }
  67.                     elseif($i==$celdas-1)
  68.                     {
  69.                         print "Asistidos";
  70.                     }
  71.                     else
  72.                     {
  73.                         print $fechadia;// menos 1 por la celda extra que agrege
  74.                     }
  75.                 elseif($row>=2){
  76.                     ##################### CONECTAR BASE DATOS #####################
  77.                         $clave=$row-2;
  78.                         $cone = mysql_connect('localhost', 'root', '') or die ("Error de Conexion: " .mysql_error());
  79.                         $select=mysql_select_db('registros',$cone) or die ("Error del select db: ".mysql_error());
  80.                         $consulta = "SELECT registros.cedula,empleados.nombres as nombres,DATE_FORMAT(registros.entrada1,'%d/%m/%Y, %r') as entrada1,DATE_FORMAT(registros.salida1,'%d/%m/%Y, %r') as salida1,DATE_FORMAT(registros.entrada2,'%d/%m/%Y, %r') as entrada2,DATE_FORMAT(registros.salida2,'%d/%m/%Y, %r') as salida2,empleados.empresa as nomina,registros.empresa FROM registros INNER JOIN empleados ON registros.cedula=empleados.cedula WHERE DATE_FORMAT(registros.entrada1,'%d/%m/%Y') = '$d/$m/$a' AND registros.cedula = $total_trabajadores[$clave]";
  81.                         ##################### DESCONECTAR BASE DATOS #####################
  82.                         $query = mysql_query($consulta);
  83.                         $rowdato = mysql_fetch_assoc($query);
  84.                     if ($i==0)
  85.                     {
  86.                         print $trabajadornom[$clave];
  87.                     }
  88.                     elseif($i==$celdas-1)
  89.                     {
  90.                         print $diasasistidos;
  91.                     }
  92.                     else
  93.                     {
  94.                         if(mysql_num_rows($query) && $dia!="Do")
  95.                         {
  96.                             $diasasistidos++;
  97.                             print "X";
  98.                         }
  99.                         else
  100.                         {
  101.                         print "&nbsp;";
  102.                         }
  103.                     }
  104.                 }
  105.                 $d++;
  106.                 print "</td>";
  107.             }
  108.             print "</tr>\n";
  109.             $i=0;
  110.         }
  111.         print "</table>";
  112.     }
  113. }
  114. //Término Clase
  115. if ($_SESSION['ID'] != 0 && $_SESSION['TIENDA']!="NINGUNO")
  116. {
  117.     if (isset($_GET['entrada']))
  118.     {
  119.       $entrada=escape($_GET['entrada']);
  120.     }
  121.     if (isset($_GET['salida']))
  122.     {
  123.       $salida=escape($_GET['salida']);
  124.     }
  125.     if (isset($_GET['empresa']))
  126.     {
  127.       $empresa=escape($_GET['empresa']);
  128.     }
  129.     //$sql = "SELECT registros.cedula,empleados.nombres,DATE_FORMAT(registros.entrada1,'%d/%m/%Y, %r') as entrada1,DATE_FORMAT(registros.salida1,'%d/%m/%Y, %r') as salida1,DATE_FORMAT(registros.entrada2,'%d/%m/%Y, %r') as entrada2,DATE_FORMAT(registros.salida2,'%d/%m/%Y, %r') as salida2,empleados.empresa as nomina,registros.empresa FROM registros INNER JOIN empleados ON registros.cedula=empleados.cedula WHERE registros.cedula>0";
  130.     $sql="SELECT cedula,nombres FROM empleados WHERE cedula > 0";
  131.     if ( ($entrada!=NULL) )
  132.     {
  133.         //$sql.=" AND DATE_FORMAT (registros.entrada1,'%d/%m/%Y') >= '$entrada'";
  134.        
  135.     }
  136.     if ( ($salida!=NULL) )
  137.     {
  138.         //$sql.=" AND DATE_FORMAT (registros.entrada1,'%d/%m/%Y') <= '$salida'";
  139.        
  140.     }
  141.     if ( ($empresa!="TODOS") )
  142.     {
  143.         //$sql.=" AND empleados.empresa = '$empresa' ";
  144.         $sql.=" AND empresa = '$empresa' ";
  145.        
  146.     }
  147.     //$sql.=" ORDER BY registros.entrada1";
  148.     $sql.=" ORDER BY cedula";
  149.     mysql_select_db($database_Sistema, $Sistema);
  150.     $auditoria = mysql_query($sql, $Sistema) or die(mysql_error());
  151.     $rowauditoria = mysql_fetch_assoc($auditoria);
  152.     $total= mysql_num_rows($auditoria);
  153.     if ($total!=0)
  154.     {      
  155.         //Listado trabajadores con ID
  156.         $aTrabajadores=array();
  157.         $nomTrabajadores=array();
  158.         do
  159.         {
  160.             $ced=$rowauditoria['cedula'];
  161.             $nom=$rowauditoria['nombres'];
  162.             array_push($aTrabajadores,$ced);
  163.             array_push($nomTrabajadores,$nom);
  164.            
  165.         }
  166.         while ($rowauditoria = mysql_fetch_assoc($auditoria));
  167.         //se crea el constructor
  168.         $const = new claseTablaDias;
  169.         //se ingresan los datos, fecha de incio, fecha de termino, array de trabajadores
  170.         $const->validarDatos($entrada,$salida,$aTrabajadores,$nomTrabajadores);
  171.        
  172.         ini_set('max_execution_time', 300);
  173.         ini_set('memory_limit','32M');
  174.         require_once('./Scripts/pdfClassesAndFonts_009e/class.ezpdf.php');
  175.         //$pdf =& new Cezpdf('a4');
  176.         $pdf =& new Cezpdf('letter','landscape');
  177.         $pdf->selectFont('./Scripts/pdfClassesAndFonts_009e/fonts/Helvetica.afm');
  178.         $pdf->ezSetCmMargins(2,2,2,2);
  179.         $options = array(
  180.         'shadeCol'=>array(0.9,0.9,0.9),
  181.         'xOrientation'=>'center',
  182.         'fontSize'=>'9',
  183.         'width'=>770
  184.         );
  185.         date_default_timezone_set('America/Caracas');
  186.         $hora=date("d/m/Y h:i:s A");
  187.         $txttit = "<b>Control de Entrada y Salida del Personal</b>\n";
  188.         $reporte = "Resumen de la Nomina: <b>$empresa</b> Desde: <b>$entrada</b> Hasta: <b>$salida</b>\n";
  189.         $pdf->ezImage("./Imagenes/Banner.jpg", -40, 0, 'none', 'none');
  190.         $pdf->ezText($txttit,14,array('justification'=>'center'));
  191.         $pdf->ezText($reporte,12,array('justification'=>'left'));
  192.         $pdf->ezTable($data, $titles, '', $options);
  193.         $pdf->ezText("\n\n<b>Fecha y Hora de Impresion:</b> ".$hora."\n\n", 10);
  194.         ob_end_clean();
  195.         $pdf->ezStream();
  196.     }
  197.     else
  198.     {
  199.         //No Hay resultados
  200.         ?>
  201.         <table width="100%" border="0">
  202.             <tr>
  203.                 <td align="center"><img src="Imagenes/Banner.gif"></td>
  204.             </tr>
  205.             <tr>
  206.                 <td align="center"><p style="font-family:Arial, Helvetica, sans-serif; color:FF0000; font-size:18px;">
  207.                 No Hay Resultados con este Criterio de Busqueda                
  208.                 </p>
  209.                 </td>
  210.             </tr>
  211.         </table>
  212.         <?PHP
  213.     }
  214. }
  215. else
  216. {
  217.     redir('./control.php?code=001');
  218. }
  219.  
  220. ?>

Etiquetas: asistencia, calendario, registro, sistema, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.