Ver Mensaje Individual
  #22 (permalink)  
Antiguo 26/11/2011, 09:45
Avatar de JuJoGuAl
JuJoGuAl
 
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 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. ?>