File "inspecciones.php"

Full Path: /home/limout/public_html/CablesPireV2-20240827214508/inspecciones.php
File size: 15.42 KB
MIME-type: text/x-php; charset=utf-8
Charset: utf-8

<?php
    //ini_set('display_errors', 1);
    //error_reporting(E_ALL);
    require_once( 'config.php' );
	require_once( 'makeSecure.php' ); 
	require_once( 'includes/smarty.php' );
	
	// INICIO Cargamos las clases que necesitamos
	include_once( 'includes/clases/clase_general.php' );
	include_once( 'includes/clases/clase_empresas.php' );
	include_once( 'includes/clases/clase_categorias.php' );
	include_once( 'includes/clases/clase_productos.php' );
	include_once( 'includes/clases/clase_equiposv2.php' );
	include_once( 'includes/clases/clase_inspecciones.php' );
	// FIN Cargamos las clases que necesitamos	

	// Datos genéricos
	require_once( 'includes/comunesAdmin.php' );
	
	$aMensajes = array(
        '0' => '<i class="fa fa-times"></i> Error al crear la inspección',
	    '1' => '<i class="fa fa-check"></i> Inspección creada correctamente',
	    '2' => '<i class="fa fa-check"></i> Inspección borrada correctamente',
	    '3' => '<i class="fa fa-check"></i> Inspección actualizada correctamente',
	    '4' => '<i class="fa fa-times"></i> No se pudo borrar la inspección',
	    '5' => '<i class="fa fa-times"></i> Equipo borrado de la inspección correctamente',
	    '6' => '<i class="fa fa-times"></i> No se pudo borrar el equipo de la inspección',
	    '7' => '<i class="fa fa-times"></i> No se pudo duplicar la inspección',
	    '8' => '<i class="fa fa-check"></i> Inspección duplicada correctamente',
	    '9' => '<i class="fa fa-check"></i> Equipo actualizado correctamente en la inspección'
	);
	
	switch(@$_GET['accion'])
		{
		    case 'crear':
		        $oEmpresas = new empresas;
		        $oEmpresas->busca_empresas( 1 );
		        
		        $smarty->assign('aEmpresas',  $oEmpresas->aEmpresas );
		        $smarty->assign('sAction', 	  $sUrl . 'inspecciones.php?accion=confirmar_crear');
		        $smarty->display('inspecciones/formulario.tpl');
	        break;
		    case 'confirmar_crear':
		        $oInspeccion = new inspecciones;
		        $oInspeccion->sNombre         = trim( $_POST[ 'nombreInspeccion' ] );
		        $oInspeccion->iEmpresaId      = (int)$_POST[ 'empresaInspeccion' ];
		        $oInspeccion->dFecha          = trim( $_POST[ 'fechaInspeccion' ] );
		        $oInspeccion->bEstado         = ( isset( $_POST[ 'estadoInspeccion' ] ) && $_POST[ 'estadoInspeccion' ] != '' ) ? 1 : 0;
		        $oInspeccion->sObservaciones  = trim( $_POST[ 'observacionesInspeccion' ] );
		        
		        $iNewInspeccionId = $oInspeccion->crea_inspeccion();
		        
		        unset( $oInspeccion );
		        
		        if( $iNewInspeccionId > 0 )
		            header('location: ' . $sUrl . 'inspecciones.php?accion=editar&id_inspeccion=' . $iNewInspeccionId . '&mensaje=1' );
		        else
		            header('location: ' . $sUrl . 'inspecciones.php?accion=listado&mensaje=0' );
	        break;
		    case 'editar':
		        $iInspeccionId = (int)$_GET[ 'id_inspeccion' ];
		        
		        $oInspeccion = new inspecciones;
		        $oInspeccion->iInspeccionId = $iInspeccionId;
		        $oInspeccion->busca_inspecciones();
		        $oInspeccion->busca_equipos_inspeccion( $iInspeccionId );
		        
		        $oEmpresas = new empresas;
		        $oEmpresas->busca_empresas( 1 );

		        $iNumEquipo = filter_var( $oInspeccion->aInspecciones[ $iInspeccionId ][ 'aEquipos' ][ $iEquipoId ][ 'nombre' ], FILTER_SANITIZE_NUMBER_INT);  

		        $smarty->assign( 'iNumEquipo',    $iNumEquipo );

		        $smarty->assign( 'sAction',       $sUrl . 'inspecciones.php?accion=confirmar_editar');
		        $smarty->assign( 'aInspeccion',   $oInspeccion->aInspecciones[ $iInspeccionId ] );
		        $smarty->assign('aEmpresas',      $oEmpresas->aEmpresas );
		        $smarty->assign( 'iMensaje',      ( isset( $_GET[ 'mensaje' ] ) && $_GET[ 'mensaje' ] > 0 ) ? $_GET[ 'mensaje' ] : '' );
		        $smarty->assign( 'sMensaje',      ( isset( $_GET[ 'mensaje' ] ) && $_GET[ 'mensaje' ] > 0 ) ? $aMensajes[ $_GET[ 'mensaje' ] ] : '' );
		        $smarty->display( 'inspecciones/formulario.tpl');
	        break;
		    case 'confirmar_editar':
                $iInspeccionId = (int)$_POST[ 'iInspeccionId' ];
		        
		        $oInspeccion = new inspecciones;
		        $oInspeccion->iInspeccionId   = $iInspeccionId;
		        $oInspeccion->sNombre         = trim( $_POST[ 'nombreInspeccion' ] );
		        $oInspeccion->iEmpresaId      = (int)$_POST[ 'empresaInspeccion' ];
		        $oInspeccion->dFecha          = trim( $_POST[ 'fechaInspeccion' ] );
		        $oInspeccion->bEstado         = ( isset( $_POST[ 'estadoInspeccion' ] ) && $_POST[ 'estadoInspeccion' ] != '' ) ? 1 : 0;
		        $oInspeccion->sObservaciones  = trim( $_POST[ 'observacionesInspeccion' ] );
		        
		        $oInspeccion->actualiza_inspeccion();
		        
		        // Buscamos los equipos para actualizar la info de cada uno
		        $oInspeccion->busca_equipos_inspeccion( $iInspeccionId );
		        
		        if( count( $_POST[ 'aNuevosEquipos' ] ) > 0 )
    		        {
    		            foreach( $_POST[ 'aNuevosEquipos' ] as $iNuevoEquipoId )
    		                if( !array_key_exists( $iNuevoEquipoId, $oInspeccion->aInspecciones[ $iInspeccionId ][ 'aEquipos' ] ) )
                                $oInspeccion->anadir_equipo( $iNuevoEquipoId );
    		        }
    		        
		        $aEquipoCampos = array();
		        
		        foreach( $oInspeccion->aInspecciones[ $iInspeccionId ][ 'aEquipos' ] as $iEquipoId => $aEquipo )
    		        {
    		            foreach( $_POST[ 'aObservaciones'][ $iEquipoId ] as $iProductoId => $sValor )
        		            {
        		                $aEquipoCampos[ $iEquipoId ][ $iProductoId ][ 'bUso']          = ( isset( $_POST[ 'aUso' ][ $iEquipoId ][ $iProductoId ] ) && $_POST[ 'aUso'][ $iEquipoId ][ $iProductoId ] == 'on' ) ? true : false;
        		                $aEquipoCampos[ $iEquipoId ][ $iProductoId ][ 'bReparar']      = ( isset( $_POST[ 'aReparar' ][ $iEquipoId ][ $iProductoId ] ) && $_POST[ 'aReparar'][ $iEquipoId ][ $iProductoId ] == 'on' ) ? true : false;
        		                $aEquipoCampos[ $iEquipoId ][ $iProductoId ][ 'bReponer']      = ( isset( $_POST[ 'aReponer' ][ $iEquipoId ][ $iProductoId ] ) && $_POST[ 'aReponer'][ $iEquipoId ][ $iProductoId ] == 'on' ) ? true : false;
        		                $aEquipoCampos[ $iEquipoId ][ $iProductoId ][ 'bOservaciones'] = $_POST[ 'aObservaciones' ][ $iEquipoId ][ $iProductoId ];
        		                $aEquipoCampos[ $iEquipoId ][ 'bInforme']                      = $_POST[ 'aInforme' ][ $iEquipoId ];
        		                $aEquipoCampos[ $iEquipoId ][ 'bApto']                         = $_POST[ 'aApto' ][ $iEquipoId ];
        		            }
    		        }
    		        
		        foreach( $aEquipoCampos as $iEquipoId => $aCampos)
    		        {
    		            $oInspeccion->actualiza_equipos_campos( $iInspeccionId, $iEquipoId, $aCampos );
    		        }
    		        
		        unset( $oInspeccion );
		        
		        header('location: ' . $sUrl . 'inspecciones.php?accion=editar&id_inspeccion=' . $iInspeccionId . '&mensaje=3' );
		    break;
		    case 'genera-pdf':
		        $iInspeccionId    = (int)$_GET[ 'id_inspeccion' ];
		        $iEquipoId        = (int)$_GET[ 'id_equipo' ];
		        
		        $oInspeccion = new inspecciones;
		        $oInspeccion->iInspeccionId = $iInspeccionId;
		        $oInspeccion->busca_inspecciones();
		        $oInspeccion->busca_equipos_inspeccion( $iInspeccionId );
		        
	        	// calcular ID equipo
	        	//preg_match_all('/\d+/', $sNombre, $matches);
	        	//print_r( $matches[0][0] );

				$iNumEquipo = filter_var( $oInspeccion->aInspecciones[ $iInspeccionId ][ 'aEquipos' ][ $iEquipoId ][ 'nombre' ], FILTER_SANITIZE_NUMBER_INT);  

		        $smarty->assign( 'sAction',       $sUrl . 'inspecciones.php?accion=confirmar_editar');
		        $smarty->assign( 'aInspeccion',   $oInspeccion->aInspecciones[ $iInspeccionId ] );
		        $smarty->assign( 'aEquipo',       $oInspeccion->aInspecciones[ $iInspeccionId ][ 'aEquipos' ][ $iEquipoId ] );
		        $smarty->assign( 'iNumEquipo',    $iNumEquipo );
		        $smarty->assign( 'iMensaje',      ( isset( $_GET[ 'mensaje' ] ) && $_GET[ 'mensaje' ] > 0 ) ? $_GET[ 'mensaje' ] : '' );
		        $smarty->assign( 'sMensaje',      ( isset( $_GET[ 'mensaje' ] ) && $_GET[ 'mensaje' ] > 0 ) ? $aMensajes[ $_GET[ 'mensaje' ] ] : '' );
		        
			/*if( $iInspeccionId == '93' )
		        	{
					$bPintaPdf = true;
					print "<pre>";
					print_r($oInspeccion->aInspecciones[ $iInspeccionId ][ 'aEquipos' ][ $iEquipoId ]);
					print "</pre>";
		        	}
		        else*/
			        $bPintaPdf = false;
		        
		        if( $bPintaPdf != true )
    		        {
        		        $html = $smarty->fetch( 'inspecciones/plantilla-pdf.tpl');
        		        
        		        // Incluímos la configuración básica de domPdf...
        		        include_once( 'includes/clases/dompdf/dompdf_config.inc.php' );
        		        
        		        $filename = 'reports/inspeccion-' . $iInspeccionId . '_' . date( 'd-m-Y' ) . '.pdf';
        		        
        		        # Instanciamos un objeto de la clase DOMPDF.
        		        $pdf_parser = new DOMPDF();
        		        
        		        # Definimos el tamaño y orientación del papel que queremos.
        		        # O por defecto cogerá el que está en el fichero de configuración.
        		        $pdf_parser->set_paper("A4", "portrait");
        		        
        		        # Cargamos el contenido HTML.
        		        $pdf_parser->load_html( $html );
        		        # Renderizamos el documento PDF.
        		        $pdf_parser->render();
        		        
        		        # Enviamos el fichero PDF al navegador.
        		        $pdf_parser->stream( "inspeccion-" . $iInspeccionId . "_" . date( 'd-m-Y' ) . ".pdf", array( "Attachment" => true ) );
        		        
        		        $pdf_parser->__destruct();
        		        
        		        header("Content-Type: application/pdf");
        		        header("Content-disposition: attachment; filename=inspeccion-" . $iInspeccionId . '_' . date( 'd-m-Y' ) . ".pdf" );
    		        }
		        else
                    $smarty->display( 'inspecciones/plantilla-pdf.tpl');
	        break;
		    case 'borrar':
		        if( isset( $_GET[ 'id_inspeccion' ] ) && (int)$_GET[ 'id_inspeccion' ] > 0 )
    		        {
    		            $oInspeccion = new inspecciones;
    		            $oInspeccion->iInspeccionId = (int)$_GET[ 'id_inspeccion' ];
    		            $oInspeccion->borrar_inspeccion();
    		            
    		            unset( $oInspeccion );
    		            
    		            header('location: ' . $sUrl . 'inspecciones.php?accion=listado&mensaje=2' );
    		        }
		        else
		            header('location: ' . $sUrl . 'inspecciones.php?accion=listado&mensaje=4' );
	        break;
		    case 'borrar-equipo':
		        if( isset( $_GET[ 'id_inspeccion' ] ) && (int)$_GET[ 'id_inspeccion' ] > 0 && isset( $_GET[ 'id_equipo' ] ) && (int)$_GET[ 'id_equipo' ] > 0 )
    		        {
    		            $oInspeccion = new inspecciones;
    		            $oInspeccion->iInspeccionId   = (int)$_GET[ 'id_inspeccion' ];
    		            $oInspeccion->iEquipoId       = (int)$_GET[ 'id_equipo' ];
    		            $oInspeccion->borrar_equipo_inspeccion();
    		            
    		            unset( $oInspeccion );
    		            
    		            header('location: ' . $sUrl . 'inspecciones.php?accion=editar&id_inspeccion=' . $_GET[ 'id_inspeccion' ] . '&mensaje=5' );
    		        }
		        else
		            header('location: ' . $sUrl . 'inspecciones.php?accion=listado&mensaje=6' );
            break;
		    case 'buscar':
		        $oInspecciones = new inspecciones;
		        $oInspecciones->sTermBusqueda   = trim( $_POST[ 'nombre' ] );
		        $oInspecciones->dFechaBusqueda  = trim( $_POST[ 'fecha' ] );
		        
		        if( (int)$_POST[ 'empresa' ] > 0 )
		            $oInspecciones->iEmpresaBusqueda  = (int)$_POST[ 'empresa' ];
		        
		        $bAptoBusqueda   = ( isset( $_POST[ 'apto' ] ) && trim( $_POST[ 'apto' ] ) == 'on' ) ? 1 : 0;
		        
		        $oInspecciones->busca_inspecciones( $bAptoBusqueda );
		        
		        $oEmpresas = new empresas;
		        $oEmpresas->busca_empresas( 1 );
		        
		        $smarty->assign('aInspecciones',$oInspecciones->aInspecciones );
		        $smarty->assign('iMensaje', $_GET[ 'mensaje' ] );
		        $smarty->assign('sMensaje', $aMensajes[ $_GET[ 'mensaje' ] ] );
		        $smarty->assign('aEmpresas',  $oEmpresas->aEmpresas );
		        
		        $smarty->assign('sTermBusqueda', $oInspecciones->sTermBusqueda );
		        $smarty->assign('dFechaBusqueda', $oInspecciones->dFechaBusqueda );
		        $smarty->assign('bAptoBusqueda', $bAptoBusqueda );
		        $smarty->assign('iEmpresaBusqueda', (int)$_POST[ 'empresa' ] );
		        
		        $smarty->assign('accion', 	'listado');
		        
		        unset( $oInspecciones );
		        unset( $oEmpresas );
		        
		        $smarty->display('inspecciones/listado.tpl');
	        break;
	        case 'duplicar':
		        if( isset( $_GET[ 'id_inspeccion' ] ) && (int)$_GET[ 'id_inspeccion' ] > 0 )
    		        {
    		            $iInspeccionOriginalId = $_GET[ 'id_inspeccion' ];
    		            
    		            $oInspeccion = new inspecciones;
    		            $oInspeccion->iInspeccionId = $iInspeccionOriginalId;
    		            $oInspeccion->busca_inspecciones();
    		            $oInspeccion->busca_equipos_inspeccion( $iInspeccionOriginalId );
    		            
    		            $oInspeccionDuplicada = new inspecciones;
    		            $oInspeccionDuplicada->sNombre         = $oInspeccion->aInspecciones[ $iInspeccionOriginalId ][ 'nombre' ] . ' COPY';
    		            $oInspeccionDuplicada->iEmpresaId      = $oInspeccion->aInspecciones[ $iInspeccionOriginalId ][ 'empresa_id' ];
    		            $oInspeccionDuplicada->dFecha          = date('Y-m-d');
    		            $oInspeccionDuplicada->bEstado         = 0;
    		            $oInspeccionDuplicada->sObservaciones  = NULL;
    		            
    		            $iInspeccionDuplicadoId = $oInspeccionDuplicada->crea_inspeccion();
    		            
    		            $oInspeccionDuplicada->iInspeccionId = $iInspeccionDuplicadoId;
    		            
    		            // EQUIPOS
    		            foreach( $oInspeccion->aInspecciones[ $iInspeccionOriginalId ][ 'aEquipos' ] as $iEquipoOriginalId => $aEquipoOriginal )
    		                $oInspeccionDuplicada->anadir_equipo( $iEquipoOriginalId );
    		                
		                unset( $oInspeccionDuplicada );
		                unset( $oInspeccion );
		                
		                header('location: ' . $sUrl . 'inspecciones.php?accion=editar&id_inspeccion=' . $iInspeccionDuplicadoId . '&mensaje=8' );
    		        }
		        else
		            header('location: ' . $sUrl . 'inspecciones.php?accion=editar&id_equipo=' . $iInspeccionOriginalId . '&mensaje=7' );
	        break;
			default:
			    $oInspecciones = new inspecciones;
			    $oInspecciones->busca_inspecciones();
				
			    $oEmpresas = new empresas;
			    $oEmpresas->busca_empresas( 1 );
			    
			    $smarty->assign('aInspecciones',$oInspecciones->aInspecciones );
			    $smarty->assign('aEmpresas',  $oEmpresas->aEmpresas );
				$smarty->assign('iMensaje', $_GET[ 'mensaje' ] );
				$smarty->assign('sMensaje', $aMensajes[ $_GET[ 'mensaje' ] ] );
				$smarty->assign('accion', 	'listado');
				
				unset( $oInspecciones );
				unset( $oEmpresas );
				
				$smarty->display('inspecciones/listado.tpl');
			break;
		}
?>