public function listadoAction($aditionalFilter = '') { $pdf = new PDF("P", 'mm', "A4"); $pdf->SetTopMargin(15); $pdf->SetLeftMargin(10); $pdf->AliasNbPages(); $pdf->SetFillColor(210); $per = new Permisos(); $em = new EntityManager($per->getConectionName()); $query = "select t1.IdPerfil,t1.Permisos,t4.Perfil,t2.Titulo as Opcion,t3.Titulo as SubOpcion\n from AgtPermisos as t1,menu as t2, submenu as t3, perfiles as t4\n where t1.IDOpcion=t2.IDOpcion\n and t1.IDOpcion=t3.IDOpcion\n and t3.Id=t1.IDSubOpcion\n and t1.IdPerfil=t4.Id\n order by t1.IdPerfil,t1.IDOpcion,t1.IDSubOpcion;"; $em->query($query); $rows = $em->fetchResult(); $em->desConecta(); unset($per); $perant = ""; $opcant = ""; foreach ($rows as $row) { if ($perant != $row['IDPerfil']) { $pdf->AddPage(); $pdf->Cell(40, 5, $row['Perfil'], 0, 0, "L", 1); } else { $pdf->Cell(40, 5, "", 0, 0, "L", 0); } $pdf->SetFillColor(240); if ($opcant != $row['Opcion']) { $pdf->Cell(30, 5, $row['Opcion'], 0, 0, "L", 1); } else { $pdf->Cell(30, 5, "", 0, 0, "L", 0); } $perant = $row['IDPerfil']; $opcant = $row['Opcion']; $pdf->Cell(40, 5, $row['SubOpcion'], 0, 0, "L", 0); $permisos = array('C' => substr($row['Permisos'], 0, 1), 'I' => substr($row['Permisos'], 1, 1), 'B' => substr($row['Permisos'], 2, 1), 'A' => substr($row['Permisos'], 3, 1), 'L' => substr($row['Permisos'], 4, 1), 'E' => substr($row['Permisos'], 5, 1)); $pdf->Cell(13, 5, $permisos['C'], 0, 0, "C", 0); $pdf->Cell(13, 5, $permisos['I'], 0, 0, "C", 1); $pdf->Cell(13, 5, $permisos['B'], 0, 0, "C", 0); $pdf->Cell(13, 5, $permisos['A'], 0, 0, "C", 1); $pdf->Cell(13, 5, $permisos['L'], 0, 0, "C", 0); $pdf->Cell(13, 5, $permisos['E'], 0, 1, "C", 1); $pdf->SetFillColor(210); } $archivo = "docs/docs" . $_SESSION['emp'] . "/pdfs/" . md5(date('d-m-Y H:i:s')) . ".pdf"; $pdf->Output($archivo, 'F'); $this->values['archivo'] = $archivo; return array('template' => '_global/listadoPdf.html.twig', 'values' => $this->values); }
/** * Subopciones para la opcion de primer rango indicada * Si no se indica el perfil de usuario, se muestran todas las posibles * en caso contrario se muestran sólo las asignadas a dicho perfil */ public function getSubopciones($codigoApp, $idPerfil = '') { $modulos = new Modulos(); $tablaModulos = $modulos->getDataBaseName() . "." . $modulos->getTableName(); unset($modulos); $permisos = new Permisos(); $tablaPermisos = $permisos->getDataBaseName() . "." . $permisos->getTableName(); $conexion = $permisos->getConectionName(); unset($permisos); $em = new EntityManager($conexion); if (is_resource($em->getDbLink())) { if ($idPerfil != '') { $query = "select DISTINCT t1.NombreModulo as Id,t2.Titulo as Value, t1.Funcionalidades \r\n from {$tablaPermisos} as t1, {$tablaModulos} as t2 \r\n where (t1.IDPerfil='{$idPerfil}' and t1.NombreModulo=t2.NombreModulo and Nivel='1' and CodigoApp='{$codigoApp}') \r\n order by t2.SortOrder"; } else { $query = "select NombreModulo as Id, Titulo as Value from {$tablaModulos} where (CodigoApp='{$codigoApp}' and Nivel='1') order by SortOrder;"; } $em->query($query); $rows = $em->fetchResult(); $em->desConecta(); } else { echo $em->getError(); } if ($idPerfil == '') { $rows[] = array_push($rows, array('Id' => '0', 'Value' => ':: Indique una Opción')); } unset($em); return $rows; }