--- /dev/null
+#!/usr/bin/php4 -qC
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+YATTA! is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: jue abr 15 15:36:32 ART 2004
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-------------------------------------------------------------------------------
+Descripción:
+Prueba con el script de protocolizacion que genera los pdf's.
+-----------------------------------------------------------------------------*/
+
+//{{{Require Once
+require_once './caso_3_protocolizacion/constantes.php';
+require_once 'YATTA/Controlador.php';
+require_once 'DB.php';
+require_once 'PEAR.php';
+//}}}
+
+//{{{Creo una conexion mysql al servidor
+$db =& DB::connect('mysql://intranet:intranet@unix(/var/run/mysqld/mysqld.sock)/yatta', true);
+if (DB::isError($db)) {
+ trigger_error($db->getMessage(), E_USER_ERROR);
+}
+//}}}
+
+//{{{Identificador del sistema al cual pertenecen los procesos.
+$id_sistema = PROTOCOLIZACIóN_PERM;
+//}}}
+
+//{{{Proceso con array de datos obligatorios solamente.
+$datos = array (
+ 'script' =>
+ '/var/www/sistemas/yatta/test/casos/caso_3_protocolizacion/clase.php',
+ 'id_sistema' => $id_sistema,
+ 'descripcion' => 'Script de auditoria para protocolización.',
+ 'owner' => 'mmarre@mecon',
+ 'destinos' => 'msklar@mecon',
+ 'resultado' => 'Informe Auditoria.zip',
+ 'parametros' => array ('base'=>'normas', 'anio'=>'2003')
+ );
+$controlador =& new YATTA_Controlador;
+$res = $controlador->agregarProceso($db, $datos);
+if (PEAR::isError($res)) {
+ trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
+}
+//}}}
+
+var_dump($res);
+?>
--- /dev/null
+#!/usr/bin/php4 -qC
+<?php
+/* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ Protocolizacion
+-------------------------------------------------------------------------------
+This file is part of Protocolizacion.
+
+Protocolizacion is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+Protocolizacion is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: mar nov 18 10:46:28 ART 2003
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+
+//Las posibles bases son:
+// normas (para MECON)
+// normas_miplan (para MIPLAN)
+
+require_once 'DB.php';
+
+require_once 'Console/Getopt.php';
+$con = new Console_Getopt;
+$args = $con->readPHPArgv();
+$options = $con->getopt($args, $so);
+$base = (@$options[1][0]) ? @$options[1][0] : 'normas';
+$periodo = (@$options[1][1]) ? @$options[1][1] : '2003';
+
+$db = DB::connect("mysql://intranet:intranet@intranet-db/".$base,
+ "persistent=true");
+if (DB::isError($db)) {
+ die ($db->getMessage());
+}
+
+//FIXME Hay que cambiar el nombre de la base segun el ministerio
+$sql = 'SELECT DISTINCT id_firmante AS id_firmante '.
+ 'FROM '.$base.'.firmante '.
+ 'ORDER BY id_firmante';
+
+$dbh = $db->prepare($sql);
+$res = $db->execute($dbh);
+
+while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ print "Procesando id_firmante: ".$re['id_firmante']."\n";
+ $txt = './informe_auditoria.php '.$periodo.' '.$re['id_firmante']
+ .' '. $base
+ . ' > '.$re['id_firmante'].'.pdf';
+ system ($txt);
+}
+$res->free();
+
+print "Comprimiendo archivos.\n";
+system ('find . -name "*.pdf" -print | zip '.$base.' -@');
+system ('rm *.pdf -f');
+?>
--- /dev/null
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-----------------------------------------------------------------------------*/
+
+//{{{Require Once
+require_once 'DB.php';
+require_once 'Date.php';
+//{{{YATTA
+require_once 'YATTA/Proceso.php';
+//}}}
+//{{{MECON
+require_once 'MECON/HTML/TablaDB.php';
+require_once 'MECON/PDF/Marco.php';
+require_once 'MECON/PDF/Tabla.php';
+require_once 'MECON/PDF/Texto.php';
+require_once 'MECON/PDF/Separador.php';
+//}}}
+//}}}
+
+//{{{Funcion create_process
+function create_process() {
+ return new Caso_03_Protocolizacion;
+}
+//}}}
+
+//Clase Caso_03_Protocolizacion
+class Caso_03_Protocolizacion extends YATTA_Proceso {
+
+ /**
+ * Conexion a la base de datos.
+ */
+ var $_db = null;
+
+ /**
+ * Obtengo los firmantes que hay en la base.
+ */
+ function _obtenerFirmantes($param) {
+ $sql = "
+ SELECT DISTINCT id_firmante AS id_firmante
+ FROM ". $param['base'] .".firmante
+ ORDER BY id_firmante
+ ";
+ $res = $this->_db->query($sql);
+
+ if (PEAR::isError($res)) {
+ $this->error = $res->getMessage();
+ return;
+ }
+
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $result[] = $re['id_firmante'];
+ }
+
+ return $result;
+ }
+
+ /**
+ * Obtengo el pdf del firmante pasado por parametro
+ */
+ function _obtenerPdfFirmante($param, $id_fimante) {
+ //CONSULTAS
+ $sql_normas = '
+ SELECT n.id_norma as id_norma, n.n_norma AS n_norma, n.bis AS bis,
+ n.fecha_norma AS fecha_norma, n.tema AS tema, n.proesgral AS proesgral,
+ n.expediente AS expediente, n.pasado_a_sge AS pasado_a_sge, n.reserva AS
+ reserva,n.id_firmante AS id_firmante, n.id_usuario_ult_modif AS
+ id_usuario_ult_modif, n.n_norma2 AS n_norma2, n.depende2 AS depende2,
+ n.n_norma3 AS n_norma3, n.depende3 AS depende3, n.id_destino as id_destino,
+ n.comentario AS comentario, n.interinato AS interinato, n.sale_por_exp AS
+ sale_por_exp, n.activo as activo, n.fecha_ult_modif AS fecha_ult_modif,
+ n.destino_nombre_breve AS destino_nombre_breve
+ FROM '. $param['base'] .'.norma AS n
+ WHERE n.activo = 1 AND n.id_firmante = '. $id_firmante .'
+ AND YEAR(n.fecha_norma) = '. $param['anio'] .'
+ ORDER BY YEAR(n.fecha_norma), n.n_norma, n.bis';
+
+ $sql_firmante_activo = '
+ SELECT DISTINCT f.id_firmante AS id_firmante, f.t_doc AS t_doc,
+ f.doc AS doc, f.cargo as cargo, IFNULL(w.nombre,ff.nombre) AS nombre,
+ f.decreto AS decreto, f.fecha AS fecha, IFNULL(w.codep, ff.id_dependencia)
+ as codep, f.fecha_alta AS fecha_alta, f.fecha_baja AS fecha_baja, f.activo
+ AS activo
+ FROM '. $base .'.firmante AS f left join novedades.web003 AS w on
+ (f.doc = w.nrodoc) left join CODEP.Dependencias as d on ( w.codep =
+ d.codigo_actual), '. $base .'.firmante AS f2 left join '. $base .'.funcionario
+ AS ff on (f2.doc = ff.doc) left join CODEP.Dependencias as dd on (
+ ff.id_dependencia = dd.codigo_actual)
+ WHERE f.activo = 1 and f2.activo = 1 and f2.doc = f.doc
+ AND f.id_firmante = '.$id_firmante;
+
+ $sql_firmante_inactivo = '
+ SELECT DISTINCT f.id_firmante AS id_firmante, f.t_doc AS t_doc, f.doc AS
+ doc, f.cargo as cargo, IFNULL(w.nombre,ff.nombre) AS nombre, f.decreto AS
+ decreto, f.fecha AS fecha, IFNULL(w.codep, ff.id_dependencia) as codep,
+ f.fecha_alta AS fecha_alta, f.fecha_baja AS fecha_baja, f.activo AS activo
+ FROM '. $base .'.firmante AS f left join novedades.web003 AS w on (f.doc =
+ w.nrodoc) left join CODEP.Dependencias as d on ( w.codep = d.codigo_actual),
+ '. $base .'.firmante AS f2 left join '. $base .'.funcionario AS ff on (f2.doc =
+ ff.doc) left join CODEP.Dependencias as dd on ( ff.id_dependencia =
+ dd.codigo_actual) WHERE f.activo = 0 and f2.activo = 0 and f2.doc = f.doc
+ AND f.id_firmante = '. $id_firmante;
+
+ //Obtengo los datos del firmante
+ $dbh = $this->_db->prepare($sql_firmante_activo);
+ $res = $this->_db->execute($dbh);
+ if ($res->numRows()) {
+ $t_firmante =& new MECON_HTML_TablaDB ();
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $firmante = $re;
+ }
+ $res->free();
+ }
+ else {
+ $dbh = $this->_db->prepare($sql_firmante_inactivo);
+ $res = $this->_db->execute($dbh);
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $firmante = $re;
+ }
+ $res->free();
+ }
+
+ //Obtengo las normas del firmante y las agrego a la tabla
+ $dbh = $this->_db->prepare($sql_normas);
+ $res = $this->_db->execute($dbh);
+ $t_normas =& new MECON_HTML_TablaDB ();
+ $t_normas->addRow(array('Res', 'Fecha', 'CNJ1', 'DEP1', 'CNJ2', 'DEP2',
+ 'Proyecto', 'Expediente', 'Tema', 'Destino', 'Int.'), 'cabecera');
+
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $n_norma = ($re['bis']) ? $re['n_norma'].' Bis' : $re['n_norma'];
+ $fecha =& new Date ($re['fecha_norma']);
+ $expediente = ucwords(strtolower($re['expediente']));
+ $tema = ucwords(strtolower($re['tema']));
+ $destino = ucwords(strtolower($re['destino_nombre_breve']));
+
+ $t_normas->addRow(array (
+ $n_norma,
+ $fecha->format("%d/%m/%Y"),
+ $re['n_norma2'],
+ $re['depende2'],
+ $re['n_norma3'],
+ $re['depende3'],
+ $re['proesgral'],
+ $expediente,
+ $tema,
+ $destino,
+ $re['interinato']
+ ));
+ }
+ $res->free();
+
+ $t_normas->updateColAttributes(0, 'width=8% align="center"');
+ $t_normas->updateColAttributes(1, 'width=10% align="center"');
+ $t_normas->updateColAttributes(2, 'width=10% align="center"');
+ $t_normas->updateColAttributes(3, 'width=10% align="center"');
+ $t_normas->updateColAttributes(4, 'width=10% align="center"');
+ $t_normas->updateColAttributes(5, 'width=10% align="center"');
+ $t_normas->updateColAttributes(6, 'width=20% align="center"');
+ $t_normas->updateColAttributes(7, 'width=20% align="center"');
+ $t_normas->updateColAttributes(8, 'width=25% align="center"');
+ $t_normas->updateColAttributes(9,'width=25% align="center"');
+ $t_normas->updateColAttributes(10,'width=5% align="center"');
+
+ //Genero el PDF
+ $PDF_MARCO =& new MECON_PDF_Marco ('legal', 'landscape');
+ $PDF_MARCO->seccion = 'Registro de Resoluciones / Disposiciones ME';
+ $PDF_MARCO->subseccion = 'Direccion General de Despacho y Mesa de Entradas';
+ $PDF_MARCO->titulo = $firmante['nombre'];
+ $PDF_MARCO->subtitulo = $firmante['cargo'];
+ $PDF_MARCO->fecha = 'Periodo: '.$param['anio'];
+ $PDF_MARCO->addContent(new MECON_PDF_Tabla ($t_normas, 'landscape'), false);
+ $PDF_TEXTO =& new MECON_PDF_Texto ('landscape');
+ $PDF_TEXTO->addContent('Director de Despacho');
+ $PDF_TEXTO->setEstilo(0, array ('font' => 'Helvetica-Bold', 'height' => 8,
+ 'align' => 'right'));
+ $PDF_MARCO->addContent($PDF_TEXTO, true);
+ $PDF_MARCO->addContent(new MECON_PDF_Separador(9, true), false);
+ return $PDF_MARCO;
+ }
+
+ /**
+ * Ejecución del script.
+ */
+ function run($param) {
+
+ //Creo la conexion a la base de datos.
+ $this->_db = DB::connect(
+ "mysql://intranet:intranet@intranet-db/". $base, "persistent=true");
+ if (PEAR::isError($this->_db)) {
+ $this->error = $this->_db->getMessage();
+ return;
+ }
+
+ //Obtengo cada uno de los expedientes
+ foreach ($this->_obtenerFirmantes as $firmante) {
+ $pdfs[] =& $this->_obtenerPdfFirmante($param, $firmante);
+ }
+
+ //Genero los archivos con los PDF's.
+ $i = 0;
+ foreach ($pdfs as $pdf) {
+ //Aca deberia utilizar nombres aleatorios del sistema.
+ $fh = fopen ('/tmp/PROTOCOLIZACION_'.$i.'.pdf', 'w');
+ fwrite ($fh, $pdf->toPDF());
+ }
+
+ //Comprimo los archivos.
+ system ('find . -name "PROTOCOLIZACION_*.pdf" -print | zip
+ PROTOCOLIZACION_'.$base.' -@');
+ system ('rm *.pdf -f');
+
+ $this->error = null;
+ $this->archivo = '/tmp/PROTOCOLIZACION_'.$base.'.zip';
+ $this->notificar = 1;
+ }
+}
+
+?>
--- /dev/null
+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4 foldmethod=marker:
+// +----------------------------------------------------------------------+
+// | Ministerio De Economia |
+// +----------------------------------------------------------------------+
+// | Archivo generado automaticamente por samurai. |
+// | Definicion de constantes para su uso en los sistemas. |
+// +----------------------------------------------------------------------+
+// $Id$
+
+/** @file
+ * Definicion de Constantes del sistema Protocolización
+ */
+
+/**
+ * Identificador del Sistema
+ */
+define('PROTOCOLIZACIóN_PERM', 72);
+
+/**
+ * Identificacion del permiso admin destinos alta
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_DESTINOS_ALTA', 128);
+
+/**
+ * Identificacion del permiso admin destinos baja
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_DESTINOS_BAJA', 129);
+
+/**
+ * Identificacion del permiso admin destinos listar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_DESTINOS_LISTAR', 127);
+
+/**
+ * Identificacion del permiso admin destinos modificar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_DESTINOS_MODIFICAR', 130);
+
+/**
+ * Identificacion del permiso admin firmantes alta
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_ALTA', 120);
+
+/**
+ * Identificacion del permiso admin firmantes ausentes alta
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_AUSENTES_ALTA', 124);
+
+/**
+ * Identificacion del permiso admin firmantes ausentes baja
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_AUSENTES_BAJA', 125);
+
+/**
+ * Identificacion del permiso admin firmantes ausentes listar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_AUSENTES_LISTAR', 123);
+
+/**
+ * Identificacion del permiso admin firmantes ausentes modificar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_AUSENTES_MODIFICAR', 126);
+
+/**
+ * Identificacion del permiso admin firmantes baja
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_BAJA', 121);
+
+/**
+ * Identificacion del permiso admin firmantes listar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_LISTAR', 119);
+
+/**
+ * Identificacion del permiso admin firmantes modificar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_MODIFICAR', 122);
+
+/**
+ * Identificacion del permiso admin firmantes reactivar
+ */
+define('PROTOCOLIZACIóN_PERM_ADMIN_FIRMANTES_REACTIVAR', 131);
+
+/**
+ * Identificacion del permiso informe auditoria
+ */
+define('PROTOCOLIZACIóN_PERM_INFORME_AUDITORIA', 116);
+
+/**
+ * Identificacion del permiso informe personal
+ */
+define('PROTOCOLIZACIóN_PERM_INFORME_PERSONAL', 117);
+
+/**
+ * Identificacion del permiso log
+ */
+define('PROTOCOLIZACIóN_PERM_LOG', 118);
+
+/**
+ * Identificacion del permiso normas alta
+ */
+define('PROTOCOLIZACIóN_PERM_NORMAS_ALTA', 113);
+
+/**
+ * Identificacion del permiso normas baja
+ */
+define('PROTOCOLIZACIóN_PERM_NORMAS_BAJA', 114);
+
+/**
+ * Identificacion del permiso normas listar
+ */
+define('PROTOCOLIZACIóN_PERM_NORMAS_LISTAR', 112);
+
+/**
+ * Identificacion del permiso normas modificar
+ */
+define('PROTOCOLIZACIóN_PERM_NORMAS_MODIFICAR', 115);
+
+/**
+ * Identificacion del permiso perfil alta
+ */
+define('PROTOCOLIZACIóN_PERM_PERFIL_ALTA', 58);
+
+/**
+ * Identificacion del permiso perfil baja
+ */
+define('PROTOCOLIZACIóN_PERM_PERFIL_BAJA', 59);
+
+/**
+ * Identificacion del permiso perfil modif
+ */
+define('PROTOCOLIZACIóN_PERM_PERFIL_MODIF', 60);
+
+/**
+ * Identificacion del permiso usuario alta
+ */
+define('PROTOCOLIZACIóN_PERM_USUARIO_ALTA', 61);
+
+/**
+ * Identificacion del permiso usuario baja
+ */
+define('PROTOCOLIZACIóN_PERM_USUARIO_BAJA', 62);
+
+/**
+ * Identificacion del permiso usuario modif
+ */
+define('PROTOCOLIZACIóN_PERM_USUARIO_MODIF', 63);
+
+?>
\ No newline at end of file
--- /dev/null
+#!/usr/bin/php4 -qC
+<?php
+/* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+ Ministerio de Economía
+ Protocolizacion
+-------------------------------------------------------------------------------
+This file is part of Protocolizacion.
+
+Protocolizacion is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+Protocolizacion is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA 02111-1307 USA
+-------------------------------------------------------------------------------
+Creado: mar nov 18 10:46:28 ART 2003
+Autor: Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+//require_once 'MECON/general.php';
+//prepend_include_path('/home/mmarrese/public_html/meconlib/lib/');
+
+
+//@TODO Hacer que se pueda elegir el tamanio de la pagina y si hay ganas el
+//ancho de las columnas.
+
+
+//REQUIRE ONCE {{{
+require_once 'DB.php';
+require_once 'Date.php';
+require_once 'MECON/HTML/TablaDB.php';
+require_once 'MECON/PDF/Marco.php';
+require_once 'MECON/PDF/Tabla.php';
+require_once 'MECON/PDF/Texto.php';
+require_once 'MECON/PDF/Separador.php';
+//}}}
+
+//Opcion 1: Obtengo las variables de las consultas del archivo.ini {{{
+//$options = parse_ini_file(dirname(__FILE__) . '/informe_auditoria.ini', true);
+//$filtros[] = intval($options['periodo']);
+//$id_firmante = intval($options['id_firmante']);
+//}}}
+//Opcion 2: Obtengo las variables de las consultas por linea de comando {{{
+require_once 'Console/Getopt.php';
+$con = new Console_Getopt;
+$args = $con->readPHPArgv();
+$options = $con->getopt($args, $so);
+$filtros[] = @$options[1][0];
+$id_firmante = @$options[1][1];
+$base = @$options[1][2];
+//}}}
+//Opcion 3: Si se recibe por web {{{
+//$filtros = @split (',', $_REQUEST['filtros']);
+//$id_firmante = @$_REQUEST['id_firmante'];
+//}}}
+
+//Modifico parametros de configuracion de php {{{
+//setlocale (LC_ALL, 'es_AR');
+ini_set("memory_limit", "64M");
+ini_set('max_execution_time', 0);
+//}}}
+
+//DB {{{
+$db = DB::connect("mysql://intranet:intranet@intranet-db/".$base,
+ "persistent=true");
+if (DB::isError($db)) {
+ die ($db->getMessage());
+}
+//}}}
+
+//CONSULTAS FIXME Hay que cambiar el nombre de la base segun el ministerio {{{
+$sql_normas = 'SELECT n.id_norma as id_norma, n.n_norma AS n_norma, n.bis AS bis,
+ n.fecha_norma AS fecha_norma, n.tema AS tema, n.proesgral AS proesgral,
+ n.expediente AS expediente, n.pasado_a_sge AS pasado_a_sge, n.reserva AS
+ reserva,n.id_firmante AS id_firmante, n.id_usuario_ult_modif AS
+ id_usuario_ult_modif, n.n_norma2 AS n_norma2, n.depende2 AS depende2,
+ n.n_norma3 AS n_norma3, n.depende3 AS depende3, n.id_destino as id_destino,
+ n.comentario AS comentario, n.interinato AS interinato, n.sale_por_exp AS
+ sale_por_exp, n.activo as activo, n.fecha_ult_modif AS fecha_ult_modif,
+ n.destino_nombre_breve AS destino_nombre_breve FROM norma AS n WHERE
+ n.activo = 1 AND n.id_firmante = '.$id_firmante.'
+ AND YEAR(n.fecha_norma) = '.$filtros[0].' ORDER BY YEAR(n.fecha_norma),
+ n.n_norma, n.bis';
+
+$sql_firmante_activo =
+ 'SELECT DISTINCT f.id_firmante AS id_firmante, f.t_doc AS t_doc,
+ f.doc AS doc, f.cargo as cargo, IFNULL(w.nombre,ff.nombre) AS nombre,
+ f.decreto AS decreto, f.fecha AS fecha, IFNULL(w.codep, ff.id_dependencia)
+ as codep, f.fecha_alta AS fecha_alta, f.fecha_baja AS fecha_baja, f.activo
+ AS activo FROM '.$base.'.firmante AS f left join novedades.web003 AS w on
+ (f.doc = w.nrodoc) left join CODEP.Dependencias as d on ( w.codep =
+ d.codigo_actual), '.$base.'.firmante AS f2 left join '.$base.'.funcionario
+ AS ff on (f2.doc = ff.doc) left join CODEP.Dependencias as dd on (
+ ff.id_dependencia = dd.codigo_actual) WHERE f.activo = 1 and f2.activo = 1
+ and f2.doc = f.doc AND f.id_firmante = '.$id_firmante;
+
+$sql_firmante_inactivo =
+ 'SELECT DISTINCT f.id_firmante AS id_firmante, f.t_doc AS t_doc, f.doc AS
+ doc, f.cargo as cargo, IFNULL(w.nombre,ff.nombre) AS nombre, f.decreto AS
+ decreto, f.fecha AS fecha, IFNULL(w.codep, ff.id_dependencia) as codep,
+ f.fecha_alta AS fecha_alta, f.fecha_baja AS fecha_baja, f.activo AS activo
+ FROM '.$base.'.firmante AS f left join novedades.web003 AS w on (f.doc =
+ w.nrodoc) left join CODEP.Dependencias as d on ( w.codep = d.codigo_actual),
+ '.$base.'.firmante AS f2 left join '.$base.'.funcionario AS ff on (f2.doc =
+ ff.doc) left join CODEP.Dependencias as dd on ( ff.id_dependencia =
+ dd.codigo_actual) WHERE f.activo = 0 and f2.activo = 0 and f2.doc = f.doc
+ AND f.id_firmante = '.$id_firmante;
+//}}}
+
+// Obtengo los datos del firmante {{{
+$dbh = $db->prepare($sql_firmante_activo);
+$res = $db->execute($dbh);
+if ($res->numRows()) {
+ $t_firmante =& new MECON_HTML_TablaDB ();
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $firmante = $re;
+ }
+ $res->free();
+}
+else {
+ $dbh = $db->prepare($sql_firmante_inactivo);
+ $res = $db->execute($dbh);
+ while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $firmante = $re;
+ }
+ $res->free();
+}
+//}}}
+
+//Obtengo las normas del firmante y las agrego a la tabla {{{
+$dbh = $db->prepare($sql_normas);
+$res = $db->execute($dbh);
+$t_normas =& new MECON_HTML_TablaDB ();
+$t_normas->addRow(array('Res', 'Fecha', 'CNJ1', 'DEP1', 'CNJ2', 'DEP2',
+ 'Proyecto', 'Expediente', 'Tema', 'Destino', 'Int.'), 'cabecera');
+
+while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $n_norma = ($re['bis']) ? $re['n_norma'].' Bis' : $re['n_norma'];
+ $fecha = new Date ($re['fecha_norma']);
+ $expediente = ucwords(strtolower($re['expediente']));
+ $tema = ucwords(strtolower($re['tema']));
+ $destino = ucwords(strtolower($re['destino_nombre_breve']));
+
+ $t_normas->addRow(array (
+ $n_norma,
+ $fecha->format("%d/%m/%Y"),
+ $re['n_norma2'],
+ $re['depende2'],
+ $re['n_norma3'],
+ $re['depende3'],
+ $re['proesgral'],
+ $expediente,
+ $tema,
+ $destino,
+ $re['interinato']
+ ));
+}
+$res->free();
+
+$t_normas->updateColAttributes(0, 'width=8% align="center"');
+$t_normas->updateColAttributes(1, 'width=10% align="center"');
+$t_normas->updateColAttributes(2, 'width=10% align="center"');
+$t_normas->updateColAttributes(3, 'width=10% align="center"');
+$t_normas->updateColAttributes(4, 'width=10% align="center"');
+$t_normas->updateColAttributes(5, 'width=10% align="center"');
+$t_normas->updateColAttributes(6, 'width=20% align="center"');
+$t_normas->updateColAttributes(7, 'width=20% align="center"');
+$t_normas->updateColAttributes(8, 'width=25% align="center"');
+$t_normas->updateColAttributes(9,'width=25% align="center"');
+$t_normas->updateColAttributes(10,'width=5% align="center"');
+//}}}
+
+//Genero el PDF {{{
+$PDF_MARCO =& new MECON_PDF_Marco ('legal', 'landscape');
+$PDF_MARCO->seccion = 'Registro de Resoluciones / Disposiciones ME';
+$PDF_MARCO->subseccion = 'Direccion General de Despacho y Mesa de Entradas';
+$PDF_MARCO->titulo = $firmante['nombre'];
+$PDF_MARCO->subtitulo = $firmante['cargo'];
+$PDF_MARCO->fecha = 'Periodo: '.$filtros[0];
+$PDF_MARCO->addContent(new MECON_PDF_Tabla ($t_normas, 'landscape'), false);
+$PDF_TEXTO =& new MECON_PDF_Texto ('landscape');
+$PDF_TEXTO->addContent('Director de Despacho');
+$PDF_TEXTO->setEstilo(0, array ('font' => 'Helvetica-Bold', 'height' => 8,
+ 'align' => 'right'));
+$PDF_MARCO->addContent($PDF_TEXTO, true);
+$PDF_MARCO->addContent(new MECON_PDF_Separador(9, true), false);
+$PDF_MARCO->display();
+//}}}
+?>
--- /dev/null
+#!/usr/bin/php4 -qC
+<?php
+require_once 'DB.php';
+$db = DB::connect(
+ "mysql://intranet:intranet@intranet-db/". $base, "persistent=true");
+if (PEAR::isError($db)) {
+ print '<PRE>';var_dump($db);print '</PRE>';
+}
+
+$base = 'normas';
+
+$sql = "
+ SELECT DISTINCT id_firmante AS id_firmante
+ FROM $base.firmante
+ ORDER BY id_firmante
+ ";
+$res = $db->query($sql);
+
+print '<PRE>';var_dump($res);print '</PRE>';
+
+while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
+ $result[]=$re['id_firmante'];
+}
+var_dump($result);
+?>