/** * Generador de Reportes * * @category Kumbia * @package Report * @copyright Copyright (c) 2005-2007 Andres Felipe Gutierrez (andresfelipe at vagoogle.net) * @license http://www.kumbia.org/license.txt GNU/GPL * */ function htm($result, $sumArray, $title, $weighArray, $headerArray) { $config = Config::read('config'); $active_app = Router::get_application(); $file = md5(uniqid()); $content = "\n<html>\n <head>\n <title>REPORTE DE " . strtoupper($title) . "</title>\n </head>\n <body bgcolor='white'>\n <div style='font-size:20px;font-family:Verdana;color:#000000'>" . strtoupper($config->{$active_app}->name) . "</div>\n\n <div style='font-size:18px;font-family:Verdana;color:#000000'>REPORTE DE " . strtoupper($title) . "</div>\n\n <div style='font-size:18px;font-family:Verdana;color:#000000'>" . date("Y-m-d") . "</div>\n\n <br/>\n <table cellspacing='0' border=1 style='border:1px solid #969696'>\n "; $content .= "<tr bgcolor='#F2F2F2'>\n"; for ($i = 0; $i <= count($headerArray) - 1; $i++) { $content .= "<th style='font-family:Verdana;font-size:12px'>" . $headerArray[$i] . "</th>\n"; } $content .= "</tr>\n"; $l = 5; foreach ($result as $row) { $content .= "<tr bgcolor='white'>\n"; for ($i = 0; $i <= count($row) - 1; $i++) { if (is_numeric($row[$i])) { $content .= "<td style='font-family:Verdana;font-size:12px' align='center'>{$row[$i]}</td>"; } else { $content .= "<td style='font-family:Verdana;font-size:12px'>{$row[$i]} </td>"; } } $content .= "</tr>\n"; $l++; } file_put_contents("public/temp/{$file}.html", $content); if (isset($raw_output)) { print "<script type='text/javascript'> window.open('" . KUMBIA_PATH . "temp/" . $file . ".html', null); </script>"; } else { Generator::forms_print("<script type='text/javascript'> window.open('" . KUMBIA_PATH . "temp/" . $file . ".html', null); </script>"); } }
function Footer() { $config = Config::read('config'); $active_app = Router::get_application(); //Posición: a 1,5 cm del final $this->SetY(-21); //Arial italic 8 $this->SetFont('Arial', '', 7); //Posición: a 1,5 cm del final $this->SetY(-18); //Arial italic 8 $this->SetFont('Arial', '', 7); //Número de página $this->Cell(0, 10, $config->{$active_app}->name, 0, 0, 'C'); //Posición: a 1,5 cm del final $this->SetY(-10); //Arial italic 8 $this->SetFont('Arial', '', 8); //Número de página $this->Cell(0, 10, '-- ' . $this->PageNo() . ' --', 0, 0, 'C'); }
/** * Genera un reporte en Excel * * @param array $result * @param array $sumArray * @param string $title * @param array $weightArray * @param array $headerArray */ function xls($result, $sumArray, $title, $weightArray, $headerArray) { error_reporting(0); $file = md5(uniqid()); $config = Config::read('config'); $active_app = Router::get_application(); $workbook = new Spreadsheet_Excel_Writer("public/temp/{$file}.xls"); $worksheet =& $workbook->addWorksheet(); $titulo_verdana =& $workbook->addFormat(array('fontfamily' => 'Verdana', 'size' => 20)); $titulo_verdana2 =& $workbook->addFormat(array('fontfamily' => 'Verdana', 'size' => 18)); $workbook->setCustomColor(12, 0xf2, 0xf2, 0xf2); $column_title =& $workbook->addFormat(array('fontfamily' => 'Verdana', 'size' => 12, 'fgcolor' => 12, 'border' => 1, 'bordercolor' => 'black', "halign" => 'center')); $column =& $workbook->addFormat(array('fontfamily' => 'Verdana', 'size' => 11, 'border' => 1, 'bordercolor' => 'black')); $column_centered =& $workbook->addFormat(array('fontfamily' => 'Verdana', 'size' => 11, 'border' => 1, 'bordercolor' => 'black', "halign" => 'center')); $worksheet->write(0, 0, strtoupper($config->{$active_app}->name), $titulo_verdana); $worksheet->write(1, 0, "REPORTE DE " . strtoupper($title), $titulo_verdana2); $worksheet->write(2, 0, "FECHA " . date("Y-m-d"), $titulo_verdana2); for ($i = 0; $i <= count($headerArray) - 1; $i++) { $worksheet->setColumn($i, $i, $weightArray[$i]); $worksheet->write(4, $i, $headerArray[$i], $column_title); } $l = 5; foreach ($result as $row) { for ($i = 0; $i <= count($row) - 1; $i++) { if (!is_numeric($row[$i])) { $worksheet->writeString($l, $i, $row[$i], $column); } else { $worksheet->writeString($l, $i, $row[$i], $column_centered); } } $l++; } $workbook->close(); error_reporting(E_ALL ^ E_STRICT); if (isset($raw_output)) { print "<script type='text/javascript'> window.open('" . KUMBIA_PATH . "temp/" . $file . ".xls', null); </script>"; } else { Generator::forms_print("<script type='text/javascript'> window.open('" . KUMBIA_PATH . "temp/" . $file . ".xls', null); </script>"); } }
/** * Calcula la edad * * order: orden de la fecha especificada (YYYY-MM-DD, DD-MM-YYYY, ...) * bithdate: fecha de nacimiento * today: fecha de referencia para calcular la edad (por defecto la de hoy) * year: año de nacimiento * month: mes de nacimiento * day: dia de nacimiento * today_year: año de hoy * today_month: mes de hoy * today_day: dia de hoy * @return integer */ function age() { $params = get_params(func_get_args()); $error = false; $active_app = Router::get_application(); if (!isset($params['order'])) { if ($kumbia_config = Config::read('config')) { if (preg_match('/^DD[^DMY]MM[^DMY]YYYY$/', $kumbia_config->{$active_app}->dbdate)) { $params['order'] = 'd-m-Y'; } elseif (preg_match('/^DD[^DMY]YYYY[^DMY]MM$/', $kumbia_config->{$active_app}->dbdate)) { $params['order'] = 'd-Y-m'; } elseif (preg_match('/^MM[^DMY]DD[^DMY]YYYY$/', $kumbia_config->{$active_app}->dbdate)) { $params['order'] = 'm-d-Y'; } elseif (preg_match('/^MM[^DMY]YYYY[^DMY]DD$/', $kumbia_config->{$active_app}->dbdate)) { $params['order'] = 'm-Y-d'; } elseif (preg_match('/^YYYY[^DMY]DD[^DMY]MM$/', $kumbia_config->{$active_app}->dbdate)) { $params['order'] = 'Y-d-m'; } else { $params['order'] = 'Y-m-d'; } } } if (isset($params['month'], $params['day'], $params['year'])) { $time_nac = mktime(0, 0, 0, $params['month'], $params['day'], $params['year']); } elseif (isset($params['birthdate'])) { if (preg_match('/^([0-9]+)[^0-9]([0-9]+)[^0-9]([0-9]+)$/', $params['birthdate'], $date)) { if ($params['order'] == 'd-m-Y') { if (checkdate($date[2], $date[1], $date[3])) { $time_nac = mktime(0, 0, 0, $date[2], $date[1], $date[3]); } else { $error = true; } } elseif ($params['order'] == 'd-Y-m') { if (checkdate($date[3], $date[1], $date[2])) { $time_nac = mktime(0, 0, 0, $date[3], $date[1], $date[2]); } else { $error = true; } } elseif ($params['order'] == 'm-d-Y') { if (checkdate($date[1], $date[2], $date[3])) { $time_nac = mktime(0, 0, 0, $date[1], $date[2], $date[3]); } else { $error = true; } } elseif ($params['order'] == 'm-Y-d') { if (checkdate($date[1], $date[3], $date[2])) { $time_nac = mktime(0, 0, 0, $date[1], $date[3], $date[2]); } else { $error = true; } } elseif ($params['order'] == 'Y-d-m') { if (checkdate($date[3], $date[2], $date[1])) { $time_nac = mktime(0, 0, 0, $date[3], $date[2], $date[1]); } else { $error = true; } } else { if (checkdate($date[2], $date[3], $date[1])) { $time_nac = mktime(0, 0, 0, $date[2], $date[3], $date[1]); } else { $error = true; } } } else { $error = true; } } else { $time_nac = time(); } if (isset($params['today_month'], $params['today_day'], $params['today_year'])) { $time = mktime(0, 0, 0, $params['today_month'], $params['today_day'], $params['today_year']); } elseif (isset($params['today'])) { if (preg_match('/^([0-9]+)[^0-9]([0-9]+)[^0-9]([0-9]+)$/', $params['today'], $date)) { if ($params['order'] == 'd-m-Y') { if (checkdate($date[2], $date[1], $date[3])) { $time = mktime(0, 0, 0, $date[2], $date[1], $date[3]); } else { $error = true; } } elseif ($params['order'] == 'd-Y-m') { if (checkdate($date[3], $date[1], $date[2])) { $time = mktime(0, 0, 0, $date[3], $date[1], $date[2]); } else { $error = true; } } elseif ($params['order'] == 'm-d-Y') { if (checkdate($date[1], $date[2], $date[3])) { $time = mktime(0, 0, 0, $date[1], $date[2], $date[3]); } else { $error = true; } } elseif ($params['order'] == 'm-Y-d') { if (checkdate($date[1], $date[3], $date[2])) { $time = mktime(0, 0, 0, $date[1], $date[3], $date[2]); } else { $error = true; } } elseif ($params['order'] == 'Y-d-m') { if (checkdate($date[3], $date[2], $date[1])) { $time = mktime(0, 0, 0, $date[3], $date[2], $date[1]); } else { $error = true; } } else { if (checkdate($date[2], $date[3], $date[1])) { $time = mktime(0, 0, 0, $date[2], $date[3], $date[1]); } else { $error = true; } } } else { $error = true; } } else { $time = time(); } if (!$error) { $edad = idate('Y', $time) - idate('Y', $time_nac); } else { $edad = 0; } if ($edad > 0) { if (idate('m', $time) < idate('m', $time_nac)) { $edad--; } else { if (idate('m', $time) == idate('m', $time_nac)) { if (idate('d', $time) < idate('d', $time_nac)) { $edad--; } } } } elseif ($edad < 0) { $edad = 0; } return $edad; }