3 /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
4 -------------------------------------------------------------------------------
7 -------------------------------------------------------------------------------
8 This file is part of Protocolizacion.
10 Protocolizacion is free software; you can redistribute it and/or modify it under
11 the terms of the GNU General Public License as published by the Free
12 Software Foundation; either version 2 of the License, or (at your option)
15 Protocolizacion is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License; if not,
20 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
21 Boston, MA 02111-1307 USA
22 -------------------------------------------------------------------------------
23 Creado: mar nov 18 10:46:28 ART 2003
24 Autor: Martin Marrese <mmarre@mecon.gov.ar>
25 -------------------------------------------------------------------------------
27 -----------------------------------------------------------------------------*/
28 //require_once 'MECON/general.php';
29 //prepend_include_path('/home/mmarrese/public_html/meconlib/lib/');
32 //@TODO Hacer que se pueda elegir el tamanio de la pagina y si hay ganas el
33 //ancho de las columnas.
37 require_once 'DB.php';
38 require_once 'Date.php';
39 require_once 'MECON/HTML/TablaDB.php';
40 require_once 'MECON/PDF/Marco.php';
41 require_once 'MECON/PDF/Tabla.php';
42 require_once 'MECON/PDF/Texto.php';
43 require_once 'MECON/PDF/Separador.php';
46 //Opcion 1: Obtengo las variables de las consultas del archivo.ini {{{
47 //$options = parse_ini_file(dirname(__FILE__) . '/informe_auditoria.ini', true);
48 //$filtros[] = intval($options['periodo']);
49 //$id_firmante = intval($options['id_firmante']);
51 //Opcion 2: Obtengo las variables de las consultas por linea de comando {{{
52 require_once 'Console/Getopt.php';
53 $con = new Console_Getopt;
54 $args = $con->readPHPArgv();
55 $options = $con->getopt($args, $so);
56 $filtros[] = @$options[1][0];
57 $id_firmante = @$options[1][1];
58 $base = @$options[1][2];
60 //Opcion 3: Si se recibe por web {{{
61 //$filtros = @split (',', $_REQUEST['filtros']);
62 //$id_firmante = @$_REQUEST['id_firmante'];
65 //Modifico parametros de configuracion de php {{{
66 //setlocale (LC_ALL, 'es_AR');
67 ini_set("memory_limit", "64M");
68 ini_set('max_execution_time', 0);
72 $db = DB::connect("mysql://intranet:intranet@intranet-db/".$base,
74 if (DB::isError($db)) {
75 die ($db->getMessage());
79 //CONSULTAS FIXME Hay que cambiar el nombre de la base segun el ministerio {{{
80 $sql_normas = 'SELECT n.id_norma as id_norma, n.n_norma AS n_norma, n.bis AS bis,
81 n.fecha_norma AS fecha_norma, n.tema AS tema, n.proesgral AS proesgral,
82 n.expediente AS expediente, n.pasado_a_sge AS pasado_a_sge, n.reserva AS
83 reserva,n.id_firmante AS id_firmante, n.id_usuario_ult_modif AS
84 id_usuario_ult_modif, n.n_norma2 AS n_norma2, n.depende2 AS depende2,
85 n.n_norma3 AS n_norma3, n.depende3 AS depende3, n.id_destino as id_destino,
86 n.comentario AS comentario, n.interinato AS interinato, n.sale_por_exp AS
87 sale_por_exp, n.activo as activo, n.fecha_ult_modif AS fecha_ult_modif,
88 n.destino_nombre_breve AS destino_nombre_breve FROM norma AS n WHERE
89 n.activo = 1 AND n.id_firmante = '.$id_firmante.'
90 AND YEAR(n.fecha_norma) = '.$filtros[0].' ORDER BY YEAR(n.fecha_norma),
93 $sql_firmante_activo =
94 'SELECT DISTINCT f.id_firmante AS id_firmante, f.t_doc AS t_doc,
95 f.doc AS doc, f.cargo as cargo, IFNULL(w.nombre,ff.nombre) AS nombre,
96 f.decreto AS decreto, f.fecha AS fecha, IFNULL(w.codep, ff.id_dependencia)
97 as codep, f.fecha_alta AS fecha_alta, f.fecha_baja AS fecha_baja, f.activo
98 AS activo FROM '.$base.'.firmante AS f left join novedades.web003 AS w on
99 (f.doc = w.nrodoc) left join CODEP.Dependencias as d on ( w.codep =
100 d.codigo_actual), '.$base.'.firmante AS f2 left join '.$base.'.funcionario
101 AS ff on (f2.doc = ff.doc) left join CODEP.Dependencias as dd on (
102 ff.id_dependencia = dd.codigo_actual) WHERE f.activo = 1 and f2.activo = 1
103 and f2.doc = f.doc AND f.id_firmante = '.$id_firmante;
105 $sql_firmante_inactivo =
106 'SELECT DISTINCT f.id_firmante AS id_firmante, f.t_doc AS t_doc, f.doc AS
107 doc, f.cargo as cargo, IFNULL(w.nombre,ff.nombre) AS nombre, f.decreto AS
108 decreto, f.fecha AS fecha, IFNULL(w.codep, ff.id_dependencia) as codep,
109 f.fecha_alta AS fecha_alta, f.fecha_baja AS fecha_baja, f.activo AS activo
110 FROM '.$base.'.firmante AS f left join novedades.web003 AS w on (f.doc =
111 w.nrodoc) left join CODEP.Dependencias as d on ( w.codep = d.codigo_actual),
112 '.$base.'.firmante AS f2 left join '.$base.'.funcionario AS ff on (f2.doc =
113 ff.doc) left join CODEP.Dependencias as dd on ( ff.id_dependencia =
114 dd.codigo_actual) WHERE f.activo = 0 and f2.activo = 0 and f2.doc = f.doc
115 AND f.id_firmante = '.$id_firmante;
118 // Obtengo los datos del firmante {{{
119 $dbh = $db->prepare($sql_firmante_activo);
120 $res = $db->execute($dbh);
121 if ($res->numRows()) {
122 $t_firmante =& new MECON_HTML_TablaDB ();
123 while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
129 $dbh = $db->prepare($sql_firmante_inactivo);
130 $res = $db->execute($dbh);
131 while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
138 //Obtengo las normas del firmante y las agrego a la tabla {{{
139 $dbh = $db->prepare($sql_normas);
140 $res = $db->execute($dbh);
141 $t_normas =& new MECON_HTML_TablaDB ();
142 $t_normas->addRow(array('Res', 'Fecha', 'CNJ1', 'DEP1', 'CNJ2', 'DEP2',
143 'Proyecto', 'Expediente', 'Tema', 'Destino', 'Int.'), 'cabecera');
145 while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
146 $n_norma = ($re['bis']) ? $re['n_norma'].' Bis' : $re['n_norma'];
147 $fecha = new Date ($re['fecha_norma']);
148 $expediente = ucwords(strtolower($re['expediente']));
149 $tema = ucwords(strtolower($re['tema']));
150 $destino = ucwords(strtolower($re['destino_nombre_breve']));
152 $t_normas->addRow(array (
154 $fecha->format("%d/%m/%Y"),
168 $t_normas->updateColAttributes(0, 'width=8% align="center"');
169 $t_normas->updateColAttributes(1, 'width=10% align="center"');
170 $t_normas->updateColAttributes(2, 'width=10% align="center"');
171 $t_normas->updateColAttributes(3, 'width=10% align="center"');
172 $t_normas->updateColAttributes(4, 'width=10% align="center"');
173 $t_normas->updateColAttributes(5, 'width=10% align="center"');
174 $t_normas->updateColAttributes(6, 'width=20% align="center"');
175 $t_normas->updateColAttributes(7, 'width=20% align="center"');
176 $t_normas->updateColAttributes(8, 'width=25% align="center"');
177 $t_normas->updateColAttributes(9,'width=25% align="center"');
178 $t_normas->updateColAttributes(10,'width=5% align="center"');
182 $PDF_MARCO =& new MECON_PDF_Marco ('legal', 'landscape');
183 $PDF_MARCO->seccion = 'Registro de Resoluciones / Disposiciones ME';
184 $PDF_MARCO->subseccion = 'Direccion General de Despacho y Mesa de Entradas';
185 $PDF_MARCO->titulo = $firmante['nombre'];
186 $PDF_MARCO->subtitulo = $firmante['cargo'];
187 $PDF_MARCO->fecha = 'Periodo: '.$filtros[0];
188 $PDF_MARCO->addContent(new MECON_PDF_Tabla ($t_normas, 'landscape'), false);
189 $PDF_TEXTO =& new MECON_PDF_Texto ('landscape');
190 $PDF_TEXTO->addContent('Director de Despacho');
191 $PDF_TEXTO->setEstilo(0, array ('font' => 'Helvetica-Bold', 'height' => 8,
192 'align' => 'right'));
193 $PDF_MARCO->addContent($PDF_TEXTO, true);
194 $PDF_MARCO->addContent(new MECON_PDF_Separador(9, true), false);
195 $PDF_MARCO->display();