<?php

/****************************************************************************************
 * DEV: CONTRALORIA DEL ESTADO.
 * MODULO: Denuncias
 * PROGRAMADORES.________________________________________________________________________
 * | # | NOMBRE.              | CORREO.                              | TELEFONO.
 * | 1 | Guidmar Espinoza     | dtecnica.conmumat@gmail.com          | 0414-1913443
 * |
 * |_____________________________________________________________________________________
 *****************************************************************************************/
class solicitudControlador extends Controlador
{
    private $atSolicitudModelo;
    private $atMiscelaneoModelo;
    private $atDependenciaModelo;
    private $atFunGn;
    private $atFPDF;
    private $atMunicipioModelo;
    private $atParroquiaModelo;
    #prueba
    private $atPersonaModelo;


    public function __construct()
    {
        parent::__construct();
        #se carga el Modelo.
        Session::metAcceso();
        #se carga el Modelo.
        $this->atSolicitudModelo = $this->metCargarModelo('solicitud', 'solicitud');
        $this->atFunGn = $this->metCargarModelo('funcionesGeneralesDN');
        $this->atPersonaModelo = $this->metCargarModelo('persona','maestros','modCV');
        $this->atIdUsuario=Session::metObtener('idUsuario');
        $this->metObtenerLibreria('headerGeneral','modDN');
        $this->atFPDF = new pdf('p','mm','Letter');
    }

    public function metIndex()
    {
        $complementosCss = array(
            'DataTables/jquery.dataTables',
            'DataTables/extensions/dataTables.colVis941e',
            'DataTables/extensions/dataTables.tableTools4029',
        );
        $js[] = 'materialSiace/core/demo/DemoTableDynamic';
        $js[] = 'Aplicacion/appFunciones';
        $this->atVista->metCargarCssComplemento($complementosCss);
        $this->atVista->metCargarJs($js);
        $this->atVista->assign('denunciasPost', 1);
        //$this->atVista->assign('listado', $this->atSolicitudModelo->metListarSolicitudes());
        $this->atVista->metRenderizar('listadoSolicitudes');

    }

    /**
     * [metCrearModificar: Creamos y modificamos las Denunancias]
     * @modificado por Jesús Millán 2019-09
     * @return [type] [description]
     */
    public function metCrearModificar()
    {
        $complementosJs = array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-methods.min',
            'wizard/jquery.bootstrap.wizard.min',
            'bootstrap-datepicker/bootstrap-datepicker',
            'select2/select2.min',
        );
        $complementoCss = array(
            'bootstrap-datepicker/datepicker',
            'select2/select201ef',
            'wizard/wizardfa6c'
        );
        $js = array('Aplicacion/appFunciones',
            'modRH/modRHFunciones',
            'materialSiace/core/demo/DemoFormWizard');

        $this->atVista->metCargarCssComplemento($complementoCss);
        $this->atVista->metCargarJsComplemento($complementosJs);
        $this->atVista->metCargarJs($js);

        $estadoContraloria = $this->atFunGn->metParametros('DEFAULTESTADO');
        $valido = $this->metObtenerInt('valido');
        $idSolicitud = $this->metObtenerInt('idSolicitud');
        $ver = $this->metObtenerInt('ver');
        $codSolicitud='';

        # si estamos creando o modificando datos de una solicitud ya cargada
        if ($valido == 1) 
        {

            $annio        = date('Y');
            $cod          = $this->atFunGn->metGeneraCodigo('dn_b001_denuncia', 'cod_solicitud', 4, 'fec_anio', $annio);
            $codSolicitud = $cod.'-'.$annio;
            $Excceccion   = array('tipoActuacionTexto', 'ind_propuesta');
            $ind          = $this->metValidarFormArrayDatos('form', 'int',array('num_sector', 'id_ente', 'id_ente_recursos'));
            $texto        = $this->metValidarFormArrayDatos('form', 'txt', $Excceccion);
            $alphaNum     = $this->metValidarFormArrayDatos('form', 'alphaNum');
            $formula     = $this->metValidarFormArrayDatos('form', 'formula');

            if ($alphaNum != null && $ind == null && $texto == null) 
            {
                $validacion = $alphaNum;
            } 
            elseif($alphaNum == null && $ind != null && $texto == null) 
            {
                $validacion = $ind;
            } 
            elseif ($alphaNum == null && $ind == null && $texto != null) 
            {
                $validacion = $texto;
            } 
            elseif ($alphaNum == null && $ind != null && $texto != null) 
            {
                $validacion = array_merge($texto, $ind);
            } 
            elseif ($alphaNum != null && $ind == null && $texto != null) 
            {
                $validacion = array_merge($texto, $alphaNum);
            } 
            elseif ($alphaNum != null && $ind != null && $texto == null) 
            {
                $validacion = array_merge($ind, $alphaNum);
            } 
            else 
            {
                $validacion = array_merge($alphaNum, $ind, $texto);
            }

            if ($formula != null)
            {
                $validacion = array_merge($validacion,$formula);
            }
            $validacion['msj']=$validacion['ind_especificacion_origen_denuncia'];

            if( $validacion['id_ente_recursos']=='error' ){
                if( ($validacion['tipoActuacion']==799 || $validacion['tipoActuacion']=='error')){

                    //$validacion['msj']      = 'error en ente_recursos';
                    //$validacion['msj']      =', '.$validacion['id_ente_recursos'].', '.$validacion['tipoActuacion'];
                    $validacion['status']   = 'error';
                    echo json_encode($validacion);
                    exit;
                }/*else{
                    //$validacion['msj']              .= ', No se necesita ente';
                    $validacion['id_ente_recursos'] ='';
                }*/
            }

            if (in_array('error', $validacion)) 
            {
                    $validacion['status'] = 'error';
                    echo json_encode($validacion);
                    exit;
            }

            if($validacion['tipoActuacion'] == 799) //denuncia
            {
                if (!isset($validacion['denunciados']))
                {
                    $validacion['status']="errorPer-Den";
                    echo json_encode($validacion);
                    exit;
                }
            }

            if (!isset($validacion['recibido']))
            {
                $validacion['status']="errorRec";
                echo json_encode($validacion);
                exit;
            }

            if (!isset($validacion['denunciantes']))
            {
                $validacion['status']="errorPer";
                echo json_encode($validacion);
                exit;
            }



            if (!isset($validacion['ind_estatus'])) 
            {
                $validacion['ind_estatus'] = 'PE';
            }

            if ($_POST['pk_num_denuncia']=='') 
            {

                $validacion['cod_solicitud']    = $codSolicitud;
                $validacion['t']                = 'nuevo';
                $validacion['codDenuncia']      = $this->metJsonCodigo($validacion['tipoActuacion'],$_POST['pk_num_denuncia'],$validacion['fe_recibido']);
                $id                             = $this->atSolicitudModelo->metCrearSolicitud($validacion);
                $validacion['status']           = 'nuevo';

            } 
            else
            {
                $validacion['idSolicitud']  = $_POST['pk_num_denuncia'];
                $validacion['t']            = 'modificar';
                //$validacion['num_sector']   = $this->metObtenerInt('num_sector');
                $validacion['codDenuncia']  = $this->metJsonCodigo($validacion['tipoActuacion'],$_POST['pk_num_denuncia'],$validacion['fe_recibido']);
                $id                         = $this->atSolicitudModelo->metCrearSolicitud($validacion);
                $validacion['status']       = 'modificar';

            }


            if (is_array($id)) 
            {
                foreach ($validacion as $titulo => $valor) 
                {
                    if (strpos($id[2], $validacion[$titulo])) 
                    {
                        $validacion[$titulo] = 'error';
                    }
                }

                $validacion['status'] = 'errorSQL';
                $validacion['prueba'] = $id;
                
                echo json_encode($validacion);
                exit;
            }

            $validacion['idSolicitud'] = $id;

            echo json_encode($validacion);
            exit;
        }

        #para visualizar una solicitud seleccionada
        if ($idSolicitud != 0) 
        {
            $formDB = $this->atSolicitudModelo->metMostrarSolicitud($idSolicitud);
            //$this->atVista->assign('prueba', $formDB['num_municipio']);

            $this->atVista->assign('formDB', $this->atSolicitudModelo->metMostrarSolicitud($idSolicitud));
            $this->atVista->assign('DenunciadosDB', $this->atSolicitudModelo->metMostrarDenunciados($idSolicitud));
            $this->atVista->assign('formTab', $this->atSolicitudModelo->metMostrarReceptores($idSolicitud));
            $this->atVista->assign('formTab2', $this->atSolicitudModelo->metMostrarDenunciantes($idSolicitud));
            $this->atVista->assign('formTab3', $this->atSolicitudModelo->metMostrarPruebas($idSolicitud));
            $this->atVista->assign('listadoParroquia', $this->atSolicitudModelo->atParroquiaModelo->metJsonParroquia($formDB['num_municipio']));

            $this->atVista->assign('idSolicitud', $idSolicitud);
            $this->atVista->assign('ver', $ver);
        }

        #nueva solicitud
        $hora   = date("h:m:s A");
        $sesion = $this->atIdUsuario;  $this->atVista->assign('idUsuario', $this->atIdUsuario);
        #$dependencia lista las dependencias internas que tiene asociadas el usuario
        $dependencia    = $this->atFunGn->metListaDependenciasInt();
        $predeterminado = $this->atFunGn->metBuscarPredeterminado();

        $this->atVista->assign('ci', $predeterminado['ind_cedula_documento']);
        $this->atVista->assign('predeterminado', $predeterminado);
        $this->atVista->assign('nombre',$predeterminado['ind_nombre1'].' '.$predeterminado['ind_apellido1']);
        $this->atVista->assign('dependencia',$predeterminado['ind_dependencia']);
        $this->atVista->assign('origen',$this->atSolicitudModelo->atMiscelaneoModelo->metMostrarSelect('DN-01-02'));
        $this->atVista->assign('tipoActuacion',$this->atSolicitudModelo->atMiscelaneoModelo->metMostrarSelect('TACT'));
        $this->atVista->assign('tipo',$this->atSolicitudModelo->atMiscelaneoModelo->metMostrarSelect('DN-01-03'));
        $this->atVista->assign('listadoMunicipio', $this->atSolicitudModelo->atMunicipioModelo->metJsonMunicipio($estadoContraloria['ind_valor_parametro']));

        $this->atVista->assign('selectEnte', $this->atFunGn->metEnteSujetoControl());
        $this->atVista->assign('selectDependencia', $this->atFunGn->metListaDependenciasInt());
        $this->atVista->assign('selectCentroCosto', $this->atFunGn->metJsonCentroCosto($predeterminado['fk_a004_num_dependencia']));
        //var_dump($this->atFunGn->metJsonCentroCosto($predeterminado['fk_a004_num_dependencia']));exit();
        $this->atVista->assign('listadoContraloria', $this->atFunGn->metContraloria(1));
        $this->atVista->assign('listadoEmpleados', $this->atSolicitudModelo->metListarEmpleados());
        $this->atVista->assign('codSolicitud', $codSolicitud);
        $this->atVista->assign('sesion', $this->atSolicitudModelo->atIdUsuario);
        $this->atVista->assign('fecha_actual', $this->atFunGn->metFormateaFecha(date("Y-m-d")));

        $this->atVista->assign('hora_actual', $hora);
        $this->atVista->metRenderizar('CrearModificar', 'modales');
    }


    public function metRechazarSolicitud(){
        $idSolicitud = $this->metObtenerInt('idSolicitud');
        $rechazo=$this->atSolicitudModelo->metJsonRechazar($idSolicitud);

        echo json_encode($rechazo);
        exit;
    }

    public function metJsonSector()
    {
        $idParroquia = $this->metObtenerInt('idParroquia');
        $sector = $this->atFunGn->metJsonSector($idParroquia);
        echo json_encode($sector);
        exit;
    }

    public function metJsonCentroCosto()
    {
        $idDependencia = $this->metObtenerInt('id_dependencia');
        $centro = $this->atFunGn->metJsonCentroCosto($idDependencia);
        echo json_encode($centro);
        exit;
    }

    public function metJsonOrigenDenuncia()
    {
        $numDenuncia = $this->metObtenerInt('num_denuncia');
        //$especificacionOrigenDenuncia = $this->atSolicitudModelo->metJsonEspecificacionOrigenDenuncia($numDenuncia);
        echo json_encode($numDenuncia);
        exit;
    }

    /**
     * Levantar la modal con el listado de personas
     */
    public function metPersonas()
    {
        $js[] = 'Aplicacion/appFunciones';
        $this->atVista->metCargarJs($js);

        $idPersona  = $this->metObtenerTexto('idPersona');
        $tipo       = $this->metObtenerTexto('tipo');
        $cant       = $this->metObtenerInt('cargar');
        
        $this->atVista->assign('idPersona',$idPersona);
        $this->atVista->assign('tipo',$tipo);
        $this->atVista->assign('cant',$cant);

        $this->atVista->metRenderizar('listadoPersonas','modales');
    }

    public function metCrearModificarPersona()
    { 
        $complementoJs =array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-methods.min'
        );
        $js[] = 'Aplicacion/appFunciones';

        $this->atVista->metCargarJs($js);
        $this->atVista->metCargarJsComplemento($complementoJs);

        $valido = $this->metObtenerInt('valido');

        if($valido==1)
        {

            $excepcion         = array('num_estatus');
            $excepcionFormula  = array('ind_email');
            $excepcionAlphaNum = array('ind_telefono');

            $alphaNum = $this->metValidarFormArrayDatos('form','alphaNum', $excepcionAlphaNum);
            $ind      = $this->metValidarFormArrayDatos('form','int',$excepcion);
            $formula  = $this->metValidarFormArrayDatos('form','formula', $excepcionFormula);

            if ($alphaNum != null && $ind == null && $formula == null) 
            {
                $validacion = $alphaNum;
            } 
            elseif ($alphaNum == null && $ind != null && $formula == null) 
            {
                $validacion = $ind;
            } 
            elseif ($alphaNum != null && $ind != null && $formula == null) 
            {
                $validacion = array_merge($alphaNum, $ind);
            } 
            elseif ($alphaNum != null && $formula != null && $ind == null) 
            {
                $validacion = array_merge($alphaNum, $formula);
            } 
            elseif ($ind != null && $formula != null && $alphaNum == null) 
            {
                $validacion = array_merge($ind, $formula);
            } 
            else 
            {
                $validacion = array_merge($ind, $formula, $alphaNum);
            }
            
            if (in_array('error', $validacion)) 
            {
                $validacion['status'] = 'error';
                echo json_encode($validacion);
                exit;
            }

            if(!isset($validacion['num_estatus']))
            {
                $validacion['num_estatus']=0;
            }

            $id = $this->atPersonaModelo->metCrearPersona($validacion['ind_cedula_documento'], strtoupper($validacion['ind_nombre1']), '', strtoupper($validacion['ind_apellido1']), '', strtoupper($validacion['ind_direccion']), $validacion['ind_email'], '', $validacion['ind_telefono'], $validacion['num_estatus']);

            $validacion['status'] = 'nuevo';

            if(is_array($id))
            {
                foreach ($validacion as $titulo => $valor)
                {
                    if(strpos($id[2],$validacion[$titulo]))
                    {
                        $validacion[$titulo]='error';
                    }
                }

                $validacion['idPersona']=$id;
                $validacion['status']='errorSQL';
                
                echo json_encode($validacion);
                exit;
            }

            $validacion['idPersona']=$id;

            echo json_encode($validacion);
            exit;
        }

        $this->atVista->metRenderizar('CrearModificarPersona','modales');
    }

    public function metJsonOrigen()
    {
        $origen       = $this->metObtenerInt('origen');
        $valor        = 'DN-01-02';
        $valor2       = ' and pk_num_miscelaneo_detalle='.$origen;
        $idOrigen     = $this->atFunGn->metMiscelaneo($valor, $valor2);
        $tabla        ='a039_ente';
        $cadena_campo =' pk_num_ente, ind_nombre_ente, num_ente_padre ';

        if($idOrigen['cod_detalle']=='001')
        {
            $where="ind_nombre_ente like '%Consejo Comunal%' AND (fk_a038_num_categoria_ente in ( 5,17,18))";
        }
        elseif ($idOrigen['cod_detalle']=='002')
        {
            $where=" fk_a037_num_tipo_ente=
            (SELECT pk_num_tipo_ente FROM `a037_tipo_ente` where ind_tipo_ente like '%public%' or ind_tipo_ente like '%organ%')" ;//*/
            $where = "fk_a038_num_categoria_ente IN (select pk_num_categoria_ente
                                                     from a038_categoria_ente
                                                     where fk_a006_miscdet_tipoente = (select pk_num_miscelaneo_detalle
                                                                                        from a006_miscelaneo_detalle
                                                                                        WHERE cod_detalle='FPPU'))
                    order by ind_nombre_ente";
        }
        else
        {
            $where='';
        }

        if($where!='')
        {
            $origen = $this->atFunGn->metConsultaTabla($tabla, $cadena_campo, $where);
        }else{
            $origen='';
        }

        echo json_encode($origen);
        exit;
    }

    public function metJsonTipoActuacionTexto($tipoActuacion)
    {
        $tipoActuacionTexto = $this->atFunGn->metConsultaDato('a006_miscelaneo_detalle','cod_detalle','pk_num_miscelaneo_detalle='.$tipoActuacion);
        echo json_encode(array("tipoActuacionTexto"=>$tipoActuacionTexto['cod_detalle']));
    }

    public function metImprimirActa()
    {
        $idSolicitud  = $_GET['idSolicitud'];
        $datos        = $this->atSolicitudModelo->metMostrarSolicitud($idSolicitud);
        $receptores   = $this->atSolicitudModelo->metMostrarReceptores($idSolicitud);
        $denunciados  = $this->atSolicitudModelo->metMostrarDenunciados($idSolicitud);
        $denunciantes = $this->atSolicitudModelo->metMostrarDenunciantes($idSolicitud);
        $pruebas      = $this->atSolicitudModelo->metMostrarPruebas($idSolicitud);


        $this->atFPDF->AliasNbPages();
        $this->atFPDF->SetMargins(5, 5, 5);
        $this->atFPDF->SetAutoPageBreak(5, 25);
        $this->atFPDF->AddPage();

        //  Cabecera de página
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->SetXY(15, 5);
        $this->atFPDF->SetFont('Arial', 'B', 15);
        $this->atFPDF->SetY(27);$this->atFPDF->SetX(10);  $this->atFPDF->Cell(200, 16, utf8_decode('RECEPCIÓN DE SOLICITUD'), 0, 1, 'C');
        $this->atFPDF->Ln(6);

        $this->atFPDF->Ln(1);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('C'));
        $this->atFPDF->Row(array(
            'DATOS DE LA SOLICITUD'));

        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(35, 35, 90, 45));
        $this->atFPDF->SetAligns(array('C', 'C','C', 'C'));
        $this->atFPDF->Row(array(utf8_decode('N° SOLICITUD'),
            'TIPO DE SOLICITUD',
            'LUGAR',
            utf8_decode('FECHA DE RECEPCIÓN')));
// "fecha" => $this->input->post(date("d/m/Y", strtotime('fecha'));
        $datos['fec_recepcion'] = date('d/m/Y', strtotime($datos['fec_recepcion']) );
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->Row(array(utf8_decode($datos['cod_solicitud']),
            utf8_decode($datos['tipoActuacion']),
            utf8_decode(APP_ORGANISMO),
            $datos['fec_recepcion']));


        /**
         * DATOS DE LAS PERSONAS DENUNCIADAS
         */
        if(count($denunciados) > 0)
        {
            $this->atFPDF->Ln(2);
            $this->atFPDF->SetDrawColor(0, 0, 0);
            $this->atFPDF->SetFillColor(200, 200, 200);
            $this->atFPDF->SetTextColor(0, 0, 0);
            $this->atFPDF->SetFont('Arial', 'B', 8);
            $this->atFPDF->SetWidths(array(205));
            $this->atFPDF->SetAligns(array('C'));
            $this->atFPDF->Row(array(
                'PERSONAS INVOLUCRADAS'));

            $this->atFPDF->SetDrawColor(0, 0, 0);
            $this->atFPDF->SetFillColor(200, 200, 200);
            $this->atFPDF->SetTextColor(0, 0, 0);
            $this->atFPDF->SetFont('Arial', 'B', 8);
            $this->atFPDF->SetWidths(array(55, 30, 50, 30, 40));
            $this->atFPDF->SetAligns(array('C', 'C', 'C', 'C', 'C'));
            $this->atFPDF->Row(array(
                'NOMBRES Y APELLIDOS',
                utf8_decode('CÉDULA DE IDENTIDAD'),
                utf8_decode('DIRECCIÓN'),
                utf8_decode('TELÉFONO'),
                utf8_decode('CORREO ELECTRÓNICO')));

            $this->atFPDF->SetDrawColor(0, 0, 0);
            $this->atFPDF->SetFillColor(255, 255, 255);
            $this->atFPDF->SetTextColor(0, 0, 0);
            $this->atFPDF->SetFont('Arial', '', 8);
            $denunciadosActa='';
            $residencia='';
            //var_dump(if( isset($denunciados))$denunciados else '123654' );
            $cedulasDenuActa='';
            foreach ($denunciados as $d) {
                $denunciadosActa = $denunciadosActa.$d['nombre'].', ';
                $cedulasDenuActa = $cedulasDenuActa.$d['cedula'].' / ';
                $this->atFPDF->Row(array(utf8_decode($d['nombre']),
                    utf8_decode($d['cedula']),
                    utf8_decode($d['direccion']),
                    utf8_decode($d['telefono']),
                    utf8_decode($d['ind_email'])));
            }
        }

        /**
         * ENTE INVOLUCRADO EN LA SOLICITUD
         */
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(103, 102));
        $this->atFPDF->SetAligns(array('C', 'C'));
        $this->atFPDF->Row(array(
            utf8_decode('ORGANISMO/ENTE U OBPP INVOLUCRADO'),
            'ORIGEN DE LOS RECURSOS'));
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->SetWidths(array(103, 102));
        $this->atFPDF->SetAligns(array('C', 'C'));
        $this->atFPDF->Row(array(
            utf8_decode($datos['ind_nombre_ente']),
            utf8_decode($datos['origenRecursos'])));

        /**
         * DIRECCION DEL ORGANISMO/ENTE U OBPP INVOLUCRADO
         */
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(60, 75, 70));
        $this->atFPDF->SetAligns(array('C', 'C', 'C'));
        $this->atFPDF->Row(array(
            'MUNICIPIO',
            'PARROQUIA',
            'SECTOR'));
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->Row(array(utf8_decode($datos['ind_municipio']),
            utf8_decode($datos['ind_parroquia']),
            utf8_decode($datos['ind_sector'])));


        /**
         * DATOS DE LOS DENUNCIANTES
         */
        $this->atFPDF->Ln(5);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('C'));
        $this->atFPDF->Row(array(
            'DENUNCIANTES'));

        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(55, 30, 50, 30, 40));
        $this->atFPDF->SetAligns(array('C', 'C', 'C', 'C', 'C'));
        $this->atFPDF->Row(array(
            'NOMBRES Y APELLIDOS',
            utf8_decode('CÉDULA DE IDENTIDAD'),
            utf8_decode('DIRECCIÓN'),
            utf8_decode('TELÉFONO'),
            utf8_decode('CORREO ELECTRÓNICO')));


        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $ciudadanos='';
        $residencia='';
        foreach ($denunciantes as $d) {
            $ciudadanos=$ciudadanos.$d['nombre'].', ';
            $residencia=$residencia.$d['direccion'].' / ';
            $this->atFPDF->Row(array(utf8_decode($d['nombre']),
                utf8_decode($d['cedula']),
                utf8_decode($d['direccion']),
                utf8_decode($d['telefono']),
                utf8_decode($d['ind_email'])));

        }
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('C'));
        $this->atFPDF->Row(array(
            'ORIGEN DE LA SOLICITUD'));
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('C'));
        if($datos['tipoDenuncia']=='OTROS')
        {
            $tipoDenuncia=$datos['ind_especificacion_tipo_denuncia'];
        }else{
            $tipoDenuncia=$datos['tipoDenuncia'].' '.$datos['ind_especificacion_tipo_denuncia'];
        }

        if($datos['origenDenuncia']=='OTROS')
        {
            $origenDenuncia=$datos['ind_especificacion_origen_denuncia'];
        }else{
            $origenDenuncia=$datos['origenDenuncia'].' '.$datos['ind_especificacion_origen_denuncia'];
        }

        $this->atFPDF->Row(array(
            utf8_decode($origenDenuncia)));

        $this->atFPDF->Ln(5);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('C'));
        $this->atFPDF->Row(array(
            'RECAUDOS CONSIGNADOS'));

        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(35, 40, 70, 60));
        $this->atFPDF->SetAligns(array('C', 'C', 'C', 'C'));
        $this->atFPDF->Row(array(
            utf8_decode('N°'),
            utf8_decode('N° DOCUMENTO'),
            utf8_decode('DESCRIPCIÓN'),
            utf8_decode('CANTIDAD')));
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $i=1;
        $pru='';
        foreach ($pruebas as $p) {
            $pru=$pru.utf8_decode($p['ind_descripcion']).' ('.$p['num_cantidad'].'), ';
            $this->atFPDF->Row(array($i,
                utf8_decode($p['ind_numero_documento']),
                utf8_decode($p['ind_descripcion']),
                utf8_decode($p['num_cantidad'])));
            $i=$i+1;
        }
        if($i==1){
            $this->atFPDF->SetWidths(array(205));
            $this->atFPDF->SetAligns(array('C'));
            $this->atFPDF->Row(array(
                utf8_decode('NO HAY PRUEBAS PRESENTADAS')));
            $pru='NO HAY PRUEBAS PRESENTADAS.';
        }

        /**
         * DESCRIPCION
         */
        $this->atFPDF->Ln(5);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('L'));
        $this->atFPDF->Row(array(
            utf8_decode('DESCRIPCIÓN')));
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('L'));
        $this->atFPDF->Row(array(
            utf8_decode($datos['ind_descripcion_denuncia'])));
        /**
         * PROPUESTA
         */
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('L'));
        $this->atFPDF->Row(array(
            utf8_decode('PROPUESTA')));
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 8);
        $this->atFPDF->SetWidths(array(205));
        $this->atFPDF->SetAligns(array('L'));
        $this->atFPDF->Row(array(
            utf8_decode($datos['ind_propuesta'])));

        //  Muestro el contenido del pdf.
        $this->atFPDF->AddPage();
        //  Cabecera de página
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 10);
        //$cod = "OAC-AD-".$datos['cod_solicitud'];

        //$this->atFPDF->SetXY(15,10);
        $this->atFPDF->SetFont('Arial', 'B', 12);
        $this->atFPDF->SetXY(14,35);

        if(strcmp($datos['fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion'],'799')==0){
            $Titulo = "ACTA DE DENUNCIA";
            $cod = "OAC-AD-".$datos['cod_solicitud'];
        }elseif(strcmp($datos['fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion'],'800')==0){
            $Titulo = "ACTA DE RECLAMO";
            $cod = "OAC-AR-".$datos['cod_solicitud'];
        }elseif(strcmp($datos['fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion'],'801')==0){
            $Titulo = "ACTA DE PETICIÓN";
            $cod = "OAC-AP-".$datos['cod_solicitud'];
        }elseif(strcmp($datos['fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion'],'802')==0){
            $Titulo = "ACTA DE SUGERENCIA";
            $cod = "OAC-AS-".$datos['cod_solicitud'];
        }elseif(strcmp($datos['fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion'],'803')==0){
            $Titulo = "ACTA DE QUEJA";
            $cod = "OAC-AQ-".$datos['cod_solicitud'];
        }

        $this->atFPDF->SetXY(10,30); $this->atFPDF->Cell(190,5,utf8_decode($datos['ind_num_denuncia']), 0, 1, 'R');
        $this->atFPDF->SetX(10);
        $this->atFPDF->Cell(200,10, utf8_decode($Titulo), 0, 1, 'C');

        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 10);

        if(strcmp($datos['fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion'],'799')==0){
            $tipoActuacion = "denuncia(mos)";
        }
        else{
            $tipoActuacion = "señala(mos)";
        }

        list($f,$h)=explode(' ',$datos['fec_elaborado']);//
        $h = strtotime($h);
        $h = date("h:i a", $h); //06:23 pm
        list($y,$m,$d)=explode('-',$f);
        $meses=array('ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE');
        $texto= utf8_decode('
En la Ciudad de Cumaná, a los '.$d.' días del mes de '.$meses[$m-1].' del año '.$y.' siendo las '.$h.'.'.' Reunidos en la Oficina de Atención Ciudadano, ubicada en la Avenida Arismendi en el edificio sede de la Contraloría del estado Sucre, el (los) ciudadano(s): '.$ciudadanos.
            ' representante(s) de: '. $origenDenuncia.
            ', residenciado(s) en: '. $residencia.
            '

En virtud de su derecho y Decisión de participar en el control de la gestión pública de manera corresponsable de conformidad con lo establecido en el artículo 62 de la Constitución de la República Bolivariana de Venezuela, Conforme a lo dispuesto en el artículo 6 de la Ley Orgánica de la Contraloría General de la República y del Sistema Nacional de Control Fiscal, y según lo pautado en las Normas Para Fomentar la Participación Ciudadana, publicada en la Gaceta Oficial de la República Bolivariana de Venezuela Nº 38.750 de fecha 20 de Agosto de 2007, emanadas de la Contraloría General de la República, '.$tipoActuacion.' lo siguiente: '.
            $datos['ind_descripcion_denuncia'].
            '

Conforme a los datos suministrados por el(los) denunciante(s) ante la CONTRALORÍA DEL ESTADO SUCRE; y en concordancia con el artículo 15 de las normas antes señaladas, la Oficina de Atención al Ciudadano determinará si la misma será tramitada por este organismo o si se remitirá a otra entidad u Organismo que tenga atribuida la competencia de resolverla.'.
            '

Se levanta la presente acta en original y copia de conformidad con lo previsto en el Artículo 20 de las Normas para Fomentar la Participación Ciudadana, emitidas por la Contraloría General de la República, una de las cuales queda en poder del denunciante y la otra en el expediente de la Denuncia.'.
            '

Documentos consignados por el denunciante que soportan la denuncia: '.$pru.
            '

Se leyo y en prueba de conformidad firman.');
        $this->atFPDF->SetXY(10,50); $this->atFPDF->MultiCell(195, 5, $texto, 0,  'J',false);

        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 10);
        $this->atFPDF->Ln();
        $this->atFPDF->SetX(10);$this->atFPDF->Cell(100, 5, 'Por la '.utf8_decode(APP_ORGANISMO).":", 0, 1, 'L');
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(100, 40, 60));
        $this->atFPDF->SetX(10);
        $this->atFPDF->SetAligns(array('C', 'C', 'C'));
        $this->atFPDF->Row(array(
            'NOMBRES Y APELLIDOS',
            utf8_decode('CÉDULA DE IDENTIDAD'),
            'FIRMA'));

        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 10);
        foreach ($receptores as $d) {

            $this->atFPDF->SetX(10);
            $this->atFPDF->Cell(100,7, utf8_decode($d['nombre']),1, 0 , 'L', false);
            $this->atFPDF->Cell(40,7, utf8_decode($d['cedula']),1, 0 , 'C', false );
            $this->atFPDF->Cell(60,7, '',1, 0 , 'L', false );
            $this->atFPDF->Ln();
        }
        $this->atFPDF->Ln();
        $this->atFPDF->SetX(10);
        $this->atFPDF->Cell(100, 5, 'Denunciante(s):', 0, 1, 'L');
        //$this->atFPDF->Ln();
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 8);
        $this->atFPDF->SetWidths(array(100, 40, 60));
        $this->atFPDF->SetAligns(array('C', 'C', 'C'));
        $this->atFPDF->SetX(10);
        $this->atFPDF->Row(array(
            'NOMBRES Y APELLIDOS',
            utf8_decode('CÉDULA DE IDENTIDAD'),
            'FIRMA'));

        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 10);
        foreach ($denunciantes as $d) {
            $this->atFPDF->SetX(10);
            $this->atFPDF->Cell(100,7, utf8_decode($d['nombre']),1, 0 , 'L', false);
            $this->atFPDF->Cell(40,7, utf8_decode($d['cedula']),1, 0 , 'C', false );
            $this->atFPDF->Cell(60,7, '',1, 0 , 'L', false );
            $this->atFPDF->Ln();
        }

        $this->atFPDF->Output();

    }

    public function metImprimirActaValoracion()
    {
        $idSolicitud  = $_GET['idSolicitud'];

        $datos        = $this->atSolicitudModelo->metMostrarValoracion($idSolicitud);
        $denunciantes = $this->atSolicitudModelo->metMostrarDenunciantes($idSolicitud);

        if(count($denunciantes) > 1){
            $txtdenunciantes='los (a) ciudadanos (a): ';
            foreach ($denunciantes as $d){
                $nombredenunciantes=ucwords(strtolower($d['nombre']));
                $ceduladenunciante=number_format($d['cedula']);
                $condiciondenunciante =strtolower($d['ind_nombre_detalle']);
                $txtdenunciantes = $txtdenunciantes.$nombredenunciantes.', titular de la cédula de identidad  V- '.$ceduladenunciante.', actuando en su condición de '.$condiciondenunciante.', ';
            }
            $txtdenunciantes = $txtdenunciantes.',  denunciaron';
        }else{
            $nombredenunciantes='el (a) ciudadano (a) '. ucwords(strtolower($denunciantes[0]['nombre']));
            $ceduladenunciante=number_format($denunciantes[0]['cedula']);
            $condiciondenunciante =strtolower($denunciantes[0]['ind_nombre_detalle']);

            $txtdenunciantes=$nombredenunciantes.', titular de la cédula de identidad  V- '.$ceduladenunciante.', actuando en su condición de '.$condiciondenunciante.',  denunció';

        }

        //la ciudadana XXXXXXXX  se refieren

        list($f,$h)=explode(' ',$datos['fec_inicio']);//

        list($y,$m,$d)=explode('-',$f);
        $meses=array('ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE');


        $this->atFPDF->AliasNbPages();
        $this->atFPDF->SetMargins(5, 5, 5);
        $this->atFPDF->SetAutoPageBreak(5, 5);

        //  Muestro el contenido del pdf.
        $this->atFPDF->AddPage();
        //  Cabecera de página
        $this->atFPDF->SetFillColor(255, 255, 255);
        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', '', 10);
        $this->atFPDF->SetY(27); $this->atFPDF->Cell(200, 16, utf8_decode('CUMANÁ,'.$d.' de '.$meses[$m-1].' de '.$y.''), 0, 1, 'R');
        $this->atFPDF->Ln(6);





        $this->atFPDF->SetDrawColor(0, 0, 0);
        $this->atFPDF->SetFillColor(200, 200, 200);
        $this->atFPDF->SetTextColor(0, 0, 0);
        $this->atFPDF->SetFont('Arial', 'B', 10);
        $this->atFPDF->SetX(10);
        $this->atFPDF->Cell(100,7, utf8_decode('ASUNTO:'),0, 0 , 'L', false);
        $this->atFPDF->SetFont('Arial', '', 10);
        $texto1= utf8_decode('Valoración del expediente N° '.$datos['ind_num_denuncia'].' relacionado con presuntos hechos irregulares cometidos por '.ucfirst(strtolower($datos['ind_descripcion_denuncia'])));
        $this->atFPDF->SetX(40); $this->atFPDF->MultiCell(155, 5, $texto1, 0,  'J',false);
        $this->atFPDF->Ln(4);

        $posY=$this->atFPDF->GetY();

        $this->atFPDF->SetXY(10,$posY+5);
        $this->atFPDF->SetFont('Arial', 'B', 10);
        $this->atFPDF->SetX(10);
        $this->atFPDF->Cell(100,7, utf8_decode('I.- ANTECEDENTES.'),0, 0 , 'L', false);
        $this->atFPDF->Ln(1);
        $this->atFPDF->SetFont('Arial', '', 10);
        $texto1= utf8_decode('Mediante Acta N° '.$datos['ind_num_denuncia'].' de fecha '.$d.' de '.strtolower($meses[$m-1]).' de '.$y.', levantada en la Oficina de Atención al Ciudadano de la Contraloría del estado Sucre, '.$txtdenunciantes.' ante este Organismo Contralor que existen presuntas irregularidades '.ucfirst(strtolower($datos['ind_antecedente_expediente'])));
        $this->atFPDF->SetXY(10,$posY+15); $this->atFPDF->MultiCell(195, 5, $texto1, 0,  'J',false);
        $this->atFPDF->Ln(4);

        $posY=$this->atFPDF->GetY();

        $this->atFPDF->SetXY(10,$posY+10);

        $this->atFPDF->SetFont('Arial', 'B', 10);
        $this->atFPDF->Cell(100,7, utf8_decode('II.- ANÁLISIS Y VALORACIÓN DE LOS HECHOS.'),0, 0 , 'L', false);
        $this->atFPDF->Ln(1);
        $this->atFPDF->SetFont('Arial', '', 10);
        $posY=$this->atFPDF->GetY();
        $texto1= utf8_decode('Del análisis practicado al Acta en referencia, se desprende que los presuntos hechos relatados por '.$txtdenunciantes.' a que existen  irregularidades en '.ucfirst(strtolower($datos['ind_analisis_hechos_expediente'])));
        $this->atFPDF->SetXY(10,$posY+10); $this->atFPDF->MultiCell(195, 5, $texto1, 0,  'J',false);
        $this->atFPDF->Ln(4);


        $posY=$this->atFPDF->GetY();

        $this->atFPDF->SetXY(10,$posY+10);
        $this->atFPDF->SetFont('Arial', 'B', 10);
        $this->atFPDF->Cell(100,7, utf8_decode('CONCLUSIÓN'),0, 0 , 'L', false);
        $this->atFPDF->Ln(1);
        $this->atFPDF->SetFont('Arial', '', 10);
        $posY=$this->atFPDF->GetY();
        $texto1= utf8_decode('Visto que la denuncia, está referida a '.ucfirst(strtolower($datos['ind_conclusion_valoracion'])));
        $this->atFPDF->SetXY(10,$posY+10); $this->atFPDF->MultiCell(195, 5, $texto1, 0,  'J',false);
        $this->atFPDF->Ln(4);


        $posY=$this->atFPDF->GetY();

        $this->atFPDF->SetXY(10,$posY+10);
        $this->atFPDF->SetFont('Arial', 'B', 10);
        $this->atFPDF->Cell(100,7, utf8_decode('RECOMENDACIÓN'),0, 0 , 'L', false);
        $this->atFPDF->Ln(1);
        $this->atFPDF->SetFont('Arial', '', 10);
        $posY=$this->atFPDF->GetY();
        $texto1= utf8_decode('Por las razones de hecho fundamentada en la anterior conclusión, quien suscribe, Lcda. Diamnel Amaya, en mi carácter de Directora de la Oficina de Atención al Ciudadano, designada mediante Resolución Nº DC-113-2014 de fecha 30 de septiembre de 2014, en aras de garantizar la eficacia y equidad del proceso, recomiendo; previo análisis de la valoración por parte de su despacho, '.ucfirst(strtolower($datos['ind_recomendaciones'])));
        $this->atFPDF->SetXY(10,$posY+10); $this->atFPDF->MultiCell(195, 5, $texto1, 0,  'J',false);
        $this->atFPDF->Ln(4);




        $this->atFPDF->Output();

    }

    /**
     * [Método para cargar con ajax el dataTable con las personas ]
     * @return [type] [description]
     */
    public function metJsonDataTablaPersonas($tipo)
    {   
        #obtengo los rodes de usuario, Nota: esto es obligatorio
        $rol=Session::metObtener('perfil');
        #capturo la busqueda enviada por la datatabla, Nota: esto es obligatorio
        $busqueda = $this->metObtenerFormulas('search'); 
        #construyo el sql, Nota: esto es obligatorio
        
        $sql = '
            SELECT
                pk_num_persona,
                ind_cedula_documento,
                CONCAT_WS( " ", ind_apellido1, ind_apellido2, ind_nombre1, ind_nombre2 ) AS ind_persona,
                a006_miscelaneo_detalle.ind_nombre_detalle AS ind_tipo_persona,
                ind_apellido1,
                ind_apellido2,
                ind_nombre1,
                ind_nombre2,
                a004_dependencia.ind_dependencia
            FROM
                a003_persona
                LEFT JOIN a006_miscelaneo_detalle ON a006_miscelaneo_detalle.pk_num_miscelaneo_detalle = a003_persona.fk_a006_num_miscelaneo_det_tipopersona 
                LEFT JOIN rh_b001_empleado ON rh_b001_empleado.fk_a003_num_persona = a003_persona.pk_num_persona
                LEFT JOIN rh_c076_empleado_organizacion ON rh_c076_empleado_organizacion.fk_rhb001_num_empleado = rh_b001_empleado.pk_num_empleado
                LEFT JOIN a004_dependencia ON a004_dependencia.pk_num_dependencia = rh_c076_empleado_organizacion.fk_a004_num_dependencia
            WHERE
                1 
        ';

        if($tipo === 'EMP' || $tipo === 'AUD')
        {
            $sql .= "
                AND a006_miscelaneo_detalle.cod_detalle = 'EMP'
                AND rh_b001_empleado.num_estatus = 1
            ";
            //if($tipo=== 'AUD')
            //{
                $sql .= "
                    AND rh_c076_empleado_organizacion.fk_a004_num_dependencia = 10
                ";  
            //}
        }

        #busqueda
        if ($busqueda['value']) {
            #concateno la busqueda si existe, Nota: esto es obligatorio
            $sql .="
                AND
                    (
                      a003_persona.ind_nombre1 LIKE '%$busqueda[value]%' OR
                      a003_persona.ind_nombre2 LIKE '%$busqueda[value]%' OR
                      a003_persona.ind_apellido1 LIKE '%$busqueda[value]%' OR
                      a003_persona.ind_apellido2 LIKE '%$busqueda[value]%' OR
                      a003_persona.ind_cedula_documento LIKE '%$busqueda[value]%' OR
                      a006_miscelaneo_detalle.ind_nombre_detalle LIKE '%$busqueda[value]%' OR
                      a004_dependencia.ind_dependencia LIKE '%$busqueda[value]%'
                    )
            ";
        }

        #creo un arreglo de los campos a mostrar, Nota: esto es obligatorio
        $campos = array('pk_num_persona', 'ind_cedula_documento', 'ind_nombre1', 'ind_nombre2', 'ind_apellido1', 'ind_apellido2', 'ind_dependencia', 'ind_tipo_persona');
        #campo primario de la tabla, Nota: esto es obligatorio
        $clavePrimaria = 'pk_num_persona';

        #hago el llamado de la datatabla del controlador principal.
        $this->metDataTablaListadoPersonas($sql, $campos, $clavePrimaria);//*/
    }

    public function metJsonDataTabla()
    {

        #obtengo los rodes de usuario, Nota: esto es obligatorio
        $rol=Session::metObtener('perfil');
        #capturo la busqueda enviada por la datatabla, Nota: esto es obligatorio
        $busqueda = $this->metObtenerFormulas('search');
        #construyo el sql, Nota: esto es obligatorio
        $sql = "
            SELECT
                dn_b001_denuncia.*,
                a039_ente.ind_nombre_ente,
                act.ind_nombre_detalle AS tipoActuacion,
                act.cod_detalle,
                estado.ind_nombre_detalle AS estado,
                dn_b001_denuncia.ind_descripcion_denuncia,
                a011.ind_municipio,
                (SELECT CONCAT_WS(', ',LTRIM(RTRIM(a003_persona.ind_nombre1)), LTRIM(RTRIM(a003_persona.ind_apellido1))) FROM a003_persona, dn_e007_denunciados WHERE a003_persona.pk_num_persona = dn_e007_denunciados.fk_a003_num_persona AND dn_b001_denuncia.pk_num_denuncia = dn_e007_denunciados.fk_dnb001_num_denuncia LIMIT 1 ) AS ind_denunciados,
                DATE_FORMAT(fec_recepcion, '%d-%m-%Y' ) as fec_orden
                -- cod_solicitud AS fec_orden
            FROM
                dn_b001_denuncia
                LEFT JOIN a039_ente ON dn_b001_denuncia.fk_a039_num_ente = a039_ente.pk_num_ente
                LEFT JOIN a006_miscelaneo_detalle AS estado ON estado.fk_a005_num_miscelaneo_maestro = ( SELECT pk_num_miscelaneo_maestro FROM a005_miscelaneo_maestro WHERE cod_maestro = 'DN-EST-SOL' ) AND estado.cod_detalle = dn_b001_denuncia.ind_estatus_solicitud
                LEFT JOIN a006_miscelaneo_detalle AS act ON act.pk_num_miscelaneo_detalle = dn_b001_denuncia.fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion
                LEFT JOIN a011_municipio AS a011 ON a011.pk_num_municipio = dn_b001_denuncia.fk_a011_num_municipio
            WHERE
                1
        ";

        if ($busqueda['value']) {
            #concateno la busqueda si existe, Nota: esto es obligatorio
            $sql .="
                AND
                    (
                      dn_b001_denuncia.cod_solicitud LIKE '%$busqueda[value]%' OR
                      act.ind_nombre_detalle LIKE '%$busqueda[value]%' OR
                      a039_ente.ind_nombre_ente LIKE '%$busqueda[value]%'
                    )
            ";
        }

        #creo un arreglo de los campos a mostrar, Nota: esto es obligatorio
        $campos = array('pk_num_denuncia', 'fec_orden', 'cod_solicitud', 'tipoActuacion', 'ind_denunciados', 'ind_nombre_ente', 'ind_municipio', 'ind_descripcion_denuncia', 'estado');
        #campo primario de la tabla, Nota: esto es obligatorio
        $clavePrimaria = 'pk_num_denuncia';
        #construyo el listado de botones
        $camposExtra = array(
            'cod_solicitud',
            'cod_detalle');
        if (in_array('DN-01-01-02-M',$rol)) {
         /*   $campos['boton']['Modificar'] = array("
                <button accion='modificar' title='Editar'
                   class='modificar logsUsuario btn ink-reaction btn-raised btn-xs btn-primary'
                   descipcion='El Usuario ha Modificado la Solicitud Nro. cod_solicitud'
                   idSolicitud='pk_num_denuncia' titulo='Modificar Solicitud'
                   data-toggle='modal' data-target='#formModal'
                   id='modificar'>
                   <i class='fa fa-edit'></i>
                </button>
                ",
                'if( $i["ind_estatus_solicitud"] =="PE") { $valor2 = "#botonEval"; } else { $valor2 = ""; }'
            );*/
            $campos['boton']['Modificar'] = "
                <button accion='modificar' title='Editar'
                   class='modificar logsUsuario btn ink-reaction btn-raised btn-xs btn-primary'
                   descipcion='El Usuario ha Modificado la Solicitud Nro. cod_solicitud'
                   idSolicitud='pk_num_denuncia' titulo='Modificar Solicitud'
                   data-toggle='modal' data-target='#formModal'
                   id='modificar'>
                   <i class='fa fa-edit'></i>
                </button>
                ";
        } else {
            $campos['boton']['Modificar'] = false;
        }

        if (in_array('DN-01-01-03-V',$rol)) {
            $campos['boton']['Ver'] = '
                <button accion="ver" title="Consultar"
                        class="ver logsUsuario btn ink-reaction btn-raised btn-xs btn-warning"
                        descipcion="El Usuario ha Consultado la Solicitud Nro. cod_solicitud"
                        idSolicitud="pk_num_denuncia" titulo="Consultar Solicitud"
                        data-toggle="modal" data-target="#formModal" id="ver">
                    <i class="icm icm-eye2"></i>
                </button>
            ';
        } else {
            $campos['boton']['Ver'] = false;
        }


        if (in_array('DN-01-01-04-R',$rol)) {
            $campos['boton']['Rechazar'] = array("
                <button accion='rechazar' title='Rechazar'
                        class='rechazar logsUsuario btn ink-reaction btn-raised btn-xs btn-danger'
                        descipcion='El Usuario ha Rechazado la Solicitud Nro. cod_solicitud'
                        idSolicitud='pk_num_denuncia' titulo='Rechazar Solicitud'
                        mensaje='Estas seguro que desea RECHAZAR la Solicitud!!' id='rechazar'>
                    <i class='md md-clear'></i>
                </button>
                ",
                'if( $i["ind_estatus_solicitud"] =="PE" ) { $valor2 = "#botonEval"; } else { $valor2 = ""; }'
            );
        } else {
            $campos['boton']['Rechazar'] = false;
        }

        if (in_array('DN-01-01-05-P',$rol)) {
            $campos['boton']['Planificar'] = array("
                <button accion='planificar' title='Planificar'
                        class='planificar logsUsuario btn ink-reaction btn-raised btn-xs btn-success'
                        descipcion='El Usuario ha Generado la Planificación de la Solicitud Nro. cod_solicitud'
                        idSolicitud='pk_num_denuncia' titulo='Generar Planificación'
                        data-toggle='modal' data-target='#formModal'
                        tipoActuacion='cod_detalle'
                        id='planificar'>
                    <i class='icm icm-clipboard2'></i>
                </button>
            ",
                'if( $i["ind_estatus_solicitud"] =="PE" ) { $valor2 = "#botonEval"; } else { $valor2 = ""; }'
            );
        } else {
            $campos['boton']['Planificar'] = false;
        }

        if (in_array('DN-01-01-06-A',$rol)) {
            $campos['boton']['Aprobar'] = array("
                <button accion='aprobar' title='Aprobar'
                        class='aprobar logsUsuario btn btn-xs ink-reaction btn-primary'
                        descipcion='El Usuario ha Aprobado la Planificación de la Solicitud Nro. cod_solicitud'
                        idDenuncia='pk_num_denuncia' titulo='Aprobar Planificación'
                        data-toggle='modal' data-target='#formModal'
                        tipoActuacion='cod_detalle'
                        id='aprobar'>
                    <i class='icm icm-rating3'></i>
                </button>
            ",
                'if( $i["ind_estatus_tramite"]=="GN") { $valor2 = "#botonEval"; } else { $valor2 = ""; }'
            );
        } else {
            $campos['boton']['Aprobar'] = false;
        }

        if (in_array('DN-01-01-07-I',$rol)) {
            $campos['boton']['Imprimir'] = "
            <button accion='imprimir' title='Imprimir Acta'
                    class='imprimir logsUsuario btn ink-reaction btn-raised btn-xs btn-primary'
                    descipcion='El Usuario ha Impreso el Acta de la Solicitud Nro. cod_solicitud'
                    idDenuncia='pk_num_denuncia' titulo='Imprimir Acta'
                    idSolicitud='pk_num_denuncia'
                    data-toggle='modal' data-target='#formModal'
                    tipoActuacion='cod_detalle'
                    id='acta'
                    >
                <i class='fa fa-print'></i>
            </button>
            ";

            $campos['boton']['Valorar'] =  array("
            <button accion='valorar' title='Imprimir Valoración'
                    class='valorar logsUsuario btn ink-reaction btn-raised btn-xs btn-warning'
                    descipcion='El Usuario ha Impreso el Acta de la Solicitud Nro. cod_solicitud'
                    idDenuncia='pk_num_denuncia' titulo='Imprimir valoracion'
                    idSolicitud='pk_num_denuncia'
                    data-toggle='modal' data-target='#formModal'
                    tipoActuacion='cod_detalle'
                    id='acta'
                    >
                <i class='fa fa-print'></i>
            </button>
            ",
                'if( $i["tipoActuacion"]=="DENUNCIA" && $i["ind_estatus_tramite"]=="TE") { $valor2 = "#botonEval"; } else { $valor2 = ""; }');
        } else {
            $campos['boton']['Imprimir'] = false;
            $campos['boton']['Valorar'] = false;
        }


        #hago el llamado de la datatabla del controlador principal.
        $this->metDataTabla($sql,$campos,$clavePrimaria,$camposExtra);

    }

    function metJsonCodigo($tipoActuacion=NULL,$flagCorreccion=0,$fecha=NULL){
        
       // $annio=date('Y');
        list($d,$m,$annio)=explode('-',$fecha);
        if($tipoActuacion=='')
        {
        
            $tAct = $_POST['tipoActuacion'];
            $f    = 1;

        }
        else
        {
        
            $tAct = $tipoActuacion;
            $f    = 2;
        
        }

        if ($flagCorreccion > 0){


            $datos = $this->atSolicitudModelo->metListarSolicitudesActuacion($annio,$tAct);
            $pos=0;

            foreach ($datos as $item){
                $pos++;
                if ($item['pk_num_denuncia']===$flagCorreccion){
                    $valor=$pos;
                }
            }
        }else{
            $valor              = $this->atFunGn->metConsultaDato('dn_b001_denuncia', 'count(pk_num_denuncia)', 'ind_num_denuncia!="NULL" and ind_num_denuncia!="" and fec_anio='.$annio.' and fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion='.$tAct.' GROUP BY fk_a006_pk_num_miscelaneo_detalle_tipo_actuacion ORDER BY `pk_num_denuncia`' );
            $valor              = $valor['count(pk_num_denuncia)']+1;

        }

        $dig                = $this->atFunGn->metParametros('DIGITOS');
        $tipoActuacionTexto = $this->atFunGn->metConsultaDato('a006_miscelaneo_detalle','cod_detalle','pk_num_miscelaneo_detalle='.$tAct);
        $correlativo        = str_pad($valor, $dig['ind_valor_parametro'], "0", STR_PAD_LEFT);
        $codDenuncia        = $this->atFunGn->metMiscelaneo('DN-COD-01', ' and a006_miscelaneo_detalle.cod_detalle="'.$tipoActuacionTexto['cod_detalle'].'"');



        $codDenuncia        = $codDenuncia['ind_nombre_detalle'] . '-' . $correlativo . '-' . $annio;

        if($f == 1)
        {
            echo json_encode(array("codigo"=>$codDenuncia, "tipoActuacionTexto"=>$tipoActuacionTexto['cod_detalle']));
        }
        else
        {
            return $codDenuncia;
        }

    }

    /**
     * Creamos el dataTable con ajax del listado de personas 
     * @param  [string]  $sql             [consulta sql]
     * @param  [array]  $listado          [campos del tadaTable]
     * @param  [string]  $clavePrimaria   [campo clave]
     * @param  boolean $datosExtraBotones [description]
     * @param  boolean $flagSistema       [description]
     * @return [type]                     [description]
     */
    public function metDataTablaListadoPersonas($sql,$listado,$clavePrimaria,$datosExtraBotones = false,$flagSistema = false)
    {

        #Instancio la clase principal del modelo
        $modelo         = new Modelo();
        #Accedo a la base de datos desde el controlador
        $db             = $modelo->metAccesoControladorDB();
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        #Parametros enviados desde el datatable
        $pagina         = $this->metObtenerFormulas('draw');
        $limiteTabla    = $this->metObtenerFormulas('length');
        $inicio         = $this->metObtenerFormulas('start');
        $columnas       = $this->metObtenerFormulas('columns');
        $orden          = $this->metObtenerFormulas('order');
        $busqueda       = $this->metObtenerFormulas('search');
        $busqueda       = $busqueda['value'];
        $tituloColumna  = $columnas[$orden[0]['column']]['data'];
        $ordenColumna   = $orden[0]['dir'];

        if ($inicio == 0) 
        {
            $inicio = '0';
        }
        if ($pagina > 1) 
        {
            $inicio = ($inicio / $limiteTabla) + 1;
        }
        if ($inicio != 0) 
        {
            $primerResultado = $limiteTabla * ($inicio - 1);
        } 
        else 
        {
            $primerResultado = 0;
        }
        
        #concateno el orden de la columna
        $sql                                .= "ORDER BY $tituloColumna $ordenColumna ";
        $resultado                          = $db->prepare($sql);
        $resultado->execute();
        $numeroTotalRegistros               = $resultado->rowCount();
        $arrayResultado['recordsTotal']     = $numeroTotalRegistros;
        $arrayResultado['recordsFiltered']  = $numeroTotalRegistros;
        $arrayResultado['draw']             = $pagina;
        $arrayResultado['length']           = $limiteTabla;
        
        #concateno el Limite de la consulta
        $sql         .= "LIMIT $primerResultado, $limiteTabla ";
        $resultados2 = $db->prepare($sql);
        $resultados2->execute();
        $detalle     = array();

        foreach ($resultados2->fetchAll(PDO::FETCH_ASSOC) AS $i) 
        {
            if(isset($i['cod']))
            {
                if(strcmp($i['cod'],'EMP')==0)
                {
                    $i['cod'] = 'Empleado';
                }
                elseif(strcmp($i['cod'],'PROV')==0)
                {
                    $i['cod'] = 'Proveedor';
                }
                elseif(strcmp($i['cod'],'PART')==0)
                {
                    $i['cod'] = 'Particular';
                }
            }

            #recorro los datos
            foreach ($listado AS $titulo => $valor)
            {
                if(!is_array($valor))
                {
                    $detalle[$valor]=$i[$valor];
                }
                else
                {
                    $detalle['acciones'] = '';
                    foreach ($listado[$titulo] AS $titulo2 => $valor2)
                    {
                        if($titulo == 'boton')
                        {
                            if(is_array($valor2))
                            {
                                $valorArreglo   = str_replace("$clavePrimaria", $i[$clavePrimaria], $valor2[0]);
                                $valorEval      = str_replace("#botonEval", $valorArreglo, $valor2[1]);

                                eval($valorEval);
                            }
                            else
                            {
                                #sustituyo el parametro del texto de la clave primaria en el boton
                                # por el valor extraido de la base de datos
                                $valor2 = str_replace("$clavePrimaria", $i[$clavePrimaria], $valor2);
                            }
                            if($datosExtraBotones)
                            {
                                foreach ($datosExtraBotones AS $datoExtraBoton)
                                {
                                    $valor2 = str_replace("$datoExtraBoton", $i[$datoExtraBoton], $valor2);
                                }
                            }
                            $detalle['acciones'] .= "$valor2 ";
                        }
                    }
                }
            }
            
            $arrayResultado['data'][] = $detalle;
        }
        
        if (!isset($arrayResultado['data'])) 
        {
            $arrayResultado['data'] = array();
        }
        echo json_encode($arrayResultado);
    }// fun function 
}