<?php

include('../../path.php');

/*$host_infraestructura= $_SERVER["HTTP_HOST"];

$url_infraestructura = $_SERVER["REQUEST_URI"];

$subtree_infraestructura = substr_count($url_infraestructura, '/');

$context_infraestructura='';

for ($i_infraestructura=2; $i_infraestructura <$subtree_infraestructura ; $i_infraestructura++) { 

        $context_infraestructura=$context_infraestructura.'../';

}

require_once($context_infraestructura.'home/infraestructura/modelo/infraestructura.php');*/

require_once(ROOT_CONTROLLER.'infraestructura.php');

$Obj_infraestructura = new infraestructura();

require_once(ROOT_CHARACTER_FIX);

//require_once($context_infraestructura.'bussines/fix_characters.php');

$Obj_fix_characters = new fix_characters();



$action=!empty($_REQUEST['action'])?$_REQUEST['action']:'';

$_ScrollTo=!empty($_REQUEST['_ScrollTo'])?$_REQUEST['_ScrollTo']:'';

$_Pagina=!empty($_REQUEST['_Pagina'])?$_REQUEST['_Pagina']:'';

// Variables para la relacion con la entidad padre 

$_Clausula_Fk=!empty($_REQUEST['_Clausula_Fk'])?$_REQUEST['_Clausula_Fk']:'';

$_IdFk=!empty($_REQUEST['_IdFk'])?$_REQUEST['_IdFk']:'';

// Variables para la relacion con la entidad abuelo _A

$_A_Clausula_Fk=!empty($_REQUEST['_A_Clausula_Fk'])?$_REQUEST['_A_Clausula_Fk']:'';

$_A_IdFk=!empty($_REQUEST['_A_IdFk'])?$_REQUEST['_A_IdFk']:'';

// Variables para la relacion con la entidad bisabuelo _B 

$_B_Clausula_Fk=!empty($_REQUEST['_B_Clausula_Fk'])?$_REQUEST['_B_Clausula_Fk']:'';

$_B_IdFk=!empty($_REQUEST['_B_IdFk'])?$_REQUEST['_B_IdFk']:'';



if (!empty($_POST))

{

    $Id_Infraestructura=!empty($_REQUEST['Id_Infraestructura'])?$_REQUEST['Id_Infraestructura']:'';
   $Nombre_Recurso=!empty($_REQUEST['Nombre_Recurso'])?$_REQUEST['Nombre_Recurso']:'';
   $Tipo_Infraestructura=!empty($_REQUEST['Tipo_Infraestructura'])?$_REQUEST['Tipo_Infraestructura']:'';
   $Proveedor_Servicio=!empty($_REQUEST['Proveedor_Servicio'])?$_REQUEST['Proveedor_Servicio']:'';
   $Ubicacion=!empty($_REQUEST['Ubicacion'])?$_REQUEST['Ubicacion']:'';
   $Estatus=!empty($_REQUEST['Estatus'])?$_REQUEST['Estatus']:'';
   $Descripcion=!empty($_REQUEST['Descripcion'])?$_REQUEST['Descripcion']:'';
   $Url_Acceso=!empty($_REQUEST['Url_Acceso'])?$_REQUEST['Url_Acceso']:'';
   $Usuario_Acceso=!empty($_REQUEST['Usuario_Acceso'])?$_REQUEST['Usuario_Acceso']:'';
   $Password_Acceso=!empty($_REQUEST['Password_Acceso'])?$_REQUEST['Password_Acceso']:'';
   $Notas=!empty($_REQUEST['Notas'])?$_REQUEST['Notas']:'';
   $Documento_Memoria1=!empty($_REQUEST['Documento_Memoria1'])?$_REQUEST['Documento_Memoria1']:'';
   $Documento_Memoria2=!empty($_REQUEST['Documento_Memoria2'])?$_REQUEST['Documento_Memoria2']:'';
   $Documento_Memoria3=!empty($_REQUEST['Documento_Memoria3'])?$_REQUEST['Documento_Memoria3']:'';
   $Fecha_Registro=!empty($_REQUEST['Fecha_Registro'])?$_REQUEST['Fecha_Registro']:'';
   $Usuario_Registro=!empty($_REQUEST['Usuario_Registro'])?$_REQUEST['Usuario_Registro']:'';
   $Fecha_Modificacion=!empty($_REQUEST['Fecha_Modificacion'])?$_REQUEST['Fecha_Modificacion']:'';
   $Usuario_Modifico=!empty($_REQUEST['Usuario_Modifico'])?$_REQUEST['Usuario_Modifico']:'';
   

    $Field=!empty($_REQUEST['Field'])?$_REQUEST['Field']:''; 

    $Field=$Obj_fix_characters->fix($Field);

    $Value=!empty($_REQUEST['Value'])?$_REQUEST['Value']:''; 

    $Value=$Obj_fix_characters->fix($Value);

    $Value_Hidden=!empty($_REQUEST['Value_Hidden'])?$_REQUEST['Value_Hidden']:''; 

    $Value_Hidden=$Obj_fix_characters->fix($Value_Hidden);

    $Type=!empty($_REQUEST['Type'])?$_REQUEST['Type']:''; 

    $Type=$Obj_fix_characters->fix($Type);



}    



function upVideo($Value_Hidden, $Value, $Field) {

    $directorio = '../../../repositorio/video/infraestructura/';

    

    // Verifica si el directorio existe, si no, lo crea

    if (!is_dir($directorio)) {

        mkdir($directorio, 0755, true);

    }

    

    // Genera un nombre único para el archivo si $Value_Hidden está vacío

    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

    $cad = ""; 

    for($i = 0; $i < 12; $i++) { 

        $cad .= substr($str, rand(0, 62), 1); 

    }

    

    // Si $Value_Hidden no está vacío, usa su valor como nombre del archivo

    if (!empty($Value_Hidden)) {

        $filename = $Value_Hidden;

        $target_file = $filename;

    } else {

        $extension = pathinfo($Value["name"], PATHINFO_EXTENSION);

        // Nombre final del archivo

        $filename = $cad . '.' . $extension;

        $target_file = $directorio . $filename;

    }

    $uploadOk = 1;

    

    // Verifica el tamaño del archivo (50MB máximo)

    if ($Value["size"] > 50000000) { 

        $uploadOk = 0;

    }

    

    $videoFileType = pathinfo($target_file, PATHINFO_EXTENSION);

    $allowed_types = ['mp4', 'avi', 'mov', '3gp', 'mpeg'];

    if (!in_array($videoFileType, $allowed_types)) {

        $uploadOk = 0;

    }

    

    // Si $uploadOk es 1, intenta mover el archivo subido

    if ($uploadOk == 1) {

        if (move_uploaded_file($Value["tmp_name"], $target_file)) {

            return $target_file; 

        } else {

            return ''; 

        }

    } else {

        return ''; 

    }

}



function upImg($Value_Hidden, $Value, $Field) {

    $directorio = '../../../repositorio/infraestructura_img/';

    

    // Verifica si el directorio existe, si no, lo crea

    if (!is_dir($directorio)) {

        mkdir($directorio, 0755, true);

    }

    

    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

    $cad = ""; 

    for($i = 0; $i < 12; $i++) { 

        $cad .= substr($str, rand(0, 62), 1); 

    }

    

    // Si $Value_Hidden no está vacío, usa su valor como nombre del archivo

    if (!empty($Value_Hidden)) {

        $filename = $Value_Hidden;

        $target_file = $filename;

    } else {

        // Obtiene la extensión del archivo subido

        $extension = pathinfo($Value["name"], PATHINFO_EXTENSION);

        // Nombre final del archivo

        $filename = $cad . '.' . $extension;

        $target_file = $directorio . $filename;

    }



    $uploadOk = 1;

    

    // Verifica el tamaño del archivo

    if ($Value["size"] > 5000000) { // 5MB máximo

        $uploadOk = 0;

    }

    

    // Verifica el tipo de archivo

    $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);

    $allowed_types = ['jpg', 'jpeg', 'png', 'gif'];

    if (!in_array($imageFileType, $allowed_types)) {

        $uploadOk = 0;

    }

    

    // Si $uploadOk es 1, intenta mover el archivo subido

    if ($uploadOk == 1) {

        if (move_uploaded_file($Value["tmp_name"], $target_file)) {

            return $target_file;

        } else {

            return ''; 

        }

    } else {

        return '';

    }

}



function upDocumento($Value_Hidden, $Value, $Field) {

    $directorio = '../../../repositorio/infraestructura_documento/';

    

    // Verifica si el directorio existe, si no, lo crea

    if (!is_dir($directorio)) {

        mkdir($directorio, 0755, true);

    }

    

    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

    $cad = ""; 

    for ($i = 0; $i < 12; $i++) { 

        $cad .= substr($str, rand(0, 62), 1); 

    }

    

    // Si $Value_Hidden no está vacío, usa su valor como nombre del archivo

    if (!empty($Value_Hidden)) {

        $filename = $Value_Hidden;

        $target_file = $filename;

    } else {

        // Obtiene la extensión del archivo subido

        $extension = pathinfo($Value["name"], PATHINFO_EXTENSION);

        // Nombre final del archivo

        $filename = $cad . '.' . $extension;

        $target_file = $directorio . $filename;

    }



    $uploadOk = 1;

    

    // Verifica el tamaño del archivo (10MB máximo)

    if ($Value["size"] > 10000000) { // 10MB máximo

        $uploadOk = 0;

    }

    

    // Verifica el tipo de archivo

    $documentFileType = pathinfo($target_file, PATHINFO_EXTENSION);

    $allowed_types = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt'];

    if (!in_array($documentFileType, $allowed_types)) {

        $uploadOk = 0;

    }

    

    if ($uploadOk == 1) {

        if (move_uploaded_file($Value["tmp_name"], $target_file)) {

            return $target_file; 

        } else {

            return ''; // Retorna cadena vacía si la carga falla

        }

    } else {

        return ''; 

    }

}



switch ($action) {

    case 'campos_front':

        try{

            if($Type=='video'){

                $Value=$_FILES['Value'];

                $Value=upVideo($Value_Hidden,$Value,$Field);

            }else if($Type=='imagen'){

                $Value=$_FILES['Value'];

                $Value=upImg($Value_Hidden,$Value,$Field);

            }else if($Type=='documento'){

                $Value=$_FILES['Value'];

                $Value=upDocumento($Value_Hidden,$Value,$Field);

            }

            $Obj_infraestructura->update_field_front_infraestructura($Field,$Value,$Id_Infraestructura);

        }catch (Exception $e) {

            echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

        }

        break;

    case 'campos_front_fk':

        try{

            $Obj_infraestructura->update_field_infraestructura($Field,$Value,$Id_Infraestructura);

            if (isset($_POST['elementos_asociados_'.$Field]) && !empty($_POST['elementos_asociados_'.$Field])) {

                // Obtener los valores concatenados

                $elementos_asociados = $_POST['elementos_asociados_'.$Field];



                // Convertir la cadena en un array

                $array_elementos_asociados = explode(',', $elementos_asociados);



                // Recorrer los campos asociados y validar que estén presentes en POST

                foreach ($array_elementos_asociados as $campo) {

                    if (isset($_POST[$campo]) && !empty($_POST[$campo])) {

                        $Value_Campo=!empty($_REQUEST[$campo])?$_REQUEST[$campo]:''; 

                        $Value_Campo=$Obj_fix_characters->fix($Value_Campo);

                        $Field=$campo;

                        $Obj_infraestructura->update_field_front_infraestructura($Field,$Value_Campo,$Id_Infraestructura);

                    }

                }

            }

        }catch (Exception $e) {

            echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

        }

        break;



    case 'campos':

        try{

            $Obj_infraestructura->update_field_front_infraestructura($Field,$Value,$Id_Infraestructura);

            //$locations="Location: ./#$Id_Infraestructura";

            //header($locations);

            }   

        catch (Exception $e) {

            echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

        }

        break;



    

    case 'editar':



        try{
 

            if ($Documento_Memoria1!='') {

                    if (!is_dir('../../../repositorio/infraestructura_documento')) {

                        mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                    }

                    $tamano = $_FILES['archivo_Documento_Memoria1']['size'];

                    if ($tamano>0) 

                    {

                        if($_FILES['archivo_Documento_Memoria1']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                   if (file_exists($Documento_Memoria1)) {

                                       If (unlink($Documento_Memoria1)) {

                                            move_uploaded_file ($_FILES['archivo_Documento_Memoria1']['tmp_name'], $Documento_Memoria1);

                                        }

                                  }else{

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria1']['tmp_name'], $Documento_Memoria1);

                                  } // Subimos el archivo 

                            } catch (Exception $e) {

                            }

                        } 

                    }

                }

                else

                {



                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }



                $tamano = $_FILES['archivo_Documento_Memoria1']['size']; // Leemos el tamano del fichero 



                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria1']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano > 0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria1']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria1=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria1="";

                        }

 

                    $Documento_Memoria1=$doc_Documento_Memoria1;    

                }  
 

            if ($Documento_Memoria2!='') {

                    if (!is_dir('../../../repositorio/infraestructura_documento')) {

                        mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                    }

                    $tamano = $_FILES['archivo_Documento_Memoria2']['size'];

                    if ($tamano>0) 

                    {

                        if($_FILES['archivo_Documento_Memoria2']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                   if (file_exists($Documento_Memoria2)) {

                                       If (unlink($Documento_Memoria2)) {

                                            move_uploaded_file ($_FILES['archivo_Documento_Memoria2']['tmp_name'], $Documento_Memoria2);

                                        }

                                  }else{

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria2']['tmp_name'], $Documento_Memoria2);

                                  } // Subimos el archivo 

                            } catch (Exception $e) {

                            }

                        } 

                    }

                }

                else

                {



                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }



                $tamano = $_FILES['archivo_Documento_Memoria2']['size']; // Leemos el tamano del fichero 



                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria2']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano > 0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria2']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria2=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria2="";

                        }

 

                    $Documento_Memoria2=$doc_Documento_Memoria2;    

                }  
 

            if ($Documento_Memoria3!='') {

                    if (!is_dir('../../../repositorio/infraestructura_documento')) {

                        mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                    }

                    $tamano = $_FILES['archivo_Documento_Memoria3']['size'];

                    if ($tamano>0) 

                    {

                        if($_FILES['archivo_Documento_Memoria3']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                   if (file_exists($Documento_Memoria3)) {

                                       If (unlink($Documento_Memoria3)) {

                                            move_uploaded_file ($_FILES['archivo_Documento_Memoria3']['tmp_name'], $Documento_Memoria3);

                                        }

                                  }else{

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria3']['tmp_name'], $Documento_Memoria3);

                                  } // Subimos el archivo 

                            } catch (Exception $e) {

                            }

                        } 

                    }

                }

                else

                {



                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }



                $tamano = $_FILES['archivo_Documento_Memoria3']['size']; // Leemos el tamano del fichero 



                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria3']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano > 0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria3']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria3=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria3="";

                        }

 

                    $Documento_Memoria3=$doc_Documento_Memoria3;    

                }  
 

             $Obj_infraestructura->update_infraestructura($Id_Infraestructura, $Nombre_Recurso, $Tipo_Infraestructura, $Proveedor_Servicio, $Ubicacion, $Estatus, $Descripcion, $Url_Acceso, $Usuario_Acceso, $Password_Acceso, $Notas, $Documento_Memoria1, $Documento_Memoria2, $Documento_Memoria3, $Fecha_Registro, $Usuario_Registro, $Fecha_Modificacion, $Usuario_Modifico);

            /*if($_Clausula_Fk!='' && $_IdFk!=''){

               $locations="Location: ../view/?_Clausula_Fk=$_Clausula_Fk&_IdFk=$_IdFk&_A_Clausula_Fk=$_A_Clausula_Fk&_A_IdFk=$_A_IdFk&_B_Clausula_Fk=$_B_Clausula_Fk&_B_IdFk=$_B_IdFk&pagina=$_Pagina&_Id_Registro=$Id_Infraestructura&_ScrollTo=$_ScrollTo";

            }else{

              $locations="Location: ../view/?pagina=$_Pagina&_Id_Registro=$Id_Infraestructura&_ScrollTo=$_ScrollTo";

            }*/
            $params = [];

            // Parámetros condicionales
            if (!empty($_Clausula_Fk))   $params[] = '_Clausula_Fk=' . urlencode($_Clausula_Fk);
            if (!empty($_IdFk))          $params[] = '_IdFk=' . urlencode($_IdFk);
            if (!empty($_A_Clausula_Fk)) $params[] = '_A_Clausula_Fk=' . urlencode($_A_Clausula_Fk);
            if (!empty($_A_IdFk))        $params[] = '_A_IdFk=' . urlencode($_A_IdFk);
            if (!empty($_B_Clausula_Fk)) $params[] = '_B_Clausula_Fk=' . urlencode($_B_Clausula_Fk);
            if (!empty($_B_IdFk))        $params[] = '_B_IdFk=' . urlencode($_B_IdFk);

            // Parámetros obligatorios (siempre presentes)
            $params[] = 'pagina=' . urlencode($_Pagina);
            $params[] = '_Id_Registro=$' . urlencode($Id_Infraestructura);
            $params[] = '_ScrollTo=' . urlencode($_ScrollTo);

            // Construcción de la URL
            $locations = 'Location: ../view/?' . implode('&', $params);

            header($locations);

            }   

        catch (Exception $e) {

            echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

        }

        break;



        case 'registrar':



        try{
 

            $tamano = $_FILES['archivo_Documento_Memoria1']['size'];

            if ($tamano > 0) 

            { 

                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }

                       // Creamos la cadena aletoria para el archivo Documento creacion.

                $tamano = $_FILES['archivo_Documento_Memoria1']['size']; // Leemos el tamano del fichero 

                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria1']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano>0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria1']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria1=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria1="";

                        }

 

                    $Documento_Memoria1=$doc_Documento_Memoria1;

                } 
 

            $tamano = $_FILES['archivo_Documento_Memoria2']['size'];

            if ($tamano > 0) 

            { 

                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }

                       // Creamos la cadena aletoria para el archivo Documento creacion.

                $tamano = $_FILES['archivo_Documento_Memoria2']['size']; // Leemos el tamano del fichero 

                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria2']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano>0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria2']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria2=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria2="";

                        }

 

                    $Documento_Memoria2=$doc_Documento_Memoria2;

                } 
 

            $tamano = $_FILES['archivo_Documento_Memoria3']['size'];

            if ($tamano > 0) 

            { 

                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }

                       // Creamos la cadena aletoria para el archivo Documento creacion.

                $tamano = $_FILES['archivo_Documento_Memoria3']['size']; // Leemos el tamano del fichero 

                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria3']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano>0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria3']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria3=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria3="";

                        }

 

                    $Documento_Memoria3=$doc_Documento_Memoria3;

                } 
        

         $idtupla=$Obj_infraestructura->insert_infraestructura($Nombre_Recurso, $Tipo_Infraestructura, $Proveedor_Servicio, $Ubicacion, $Estatus, $Descripcion, $Url_Acceso, $Usuario_Acceso, $Password_Acceso, $Notas, $Documento_Memoria1, $Documento_Memoria2, $Documento_Memoria3, $Fecha_Registro, $Usuario_Registro, $Fecha_Modificacion, $Usuario_Modifico);

         /*if($_Clausula_Fk!='' && $_IdFk!=''){

               $locations="Location: ../view/?_Clausula_Fk=$_Clausula_Fk&_IdFk=$_IdFk&_A_Clausula_Fk=$_A_Clausula_Fk&_A_IdFk=$_A_IdFk&_B_Clausula_Fk=$_B_Clausula_Fk&_B_IdFk=$_B_IdFk&pagina=1&_Id_Registro=$idtupla&_ScrollTo=0";

        }else{

            $locations="Location: ../view/?pagina=1&_Id_Registro=$idtupla&_ScrollTo=0";

        }*/
            $params = [];

            // Parámetros condicionales
            if (!empty($_Clausula_Fk))   $params[] = '_Clausula_Fk=' . urlencode($_Clausula_Fk);
            if (!empty($_IdFk))          $params[] = '_IdFk=' . urlencode($_IdFk);
            if (!empty($_A_Clausula_Fk)) $params[] = '_A_Clausula_Fk=' . urlencode($_A_Clausula_Fk);
            if (!empty($_A_IdFk))        $params[] = '_A_IdFk=' . urlencode($_A_IdFk);
            if (!empty($_B_Clausula_Fk)) $params[] = '_B_Clausula_Fk=' . urlencode($_B_Clausula_Fk);
            if (!empty($_B_IdFk))        $params[] = '_B_IdFk=' . urlencode($_B_IdFk);

            // Parámetros obligatorios (siempre presentes)
            $params[] = 'pagina=' . urlencode($_Pagina);
            $params[] = '_Id_Registro=$' . urlencode($idtupla);
            $params[] = '_ScrollTo=' . urlencode($_ScrollTo);

            // Construcción de la URL
            $locations = 'Location: ../view/?' . implode('&', $params);

            header($locations);        

           }    

        catch (Exception $e) {

            echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

        }   



        break;

        case 'duplicar':



        try{
 

            $tamano = $_FILES['archivo_Documento_Memoria1']['size'];

            if ($tamano > 0) 

            {

                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }

                        // Creamos la cadena aletoria para el archivo Documento creacion.

                $tamano = $_FILES['archivo_Documento_Memoria1']['size']; // Leemos el tamano del fichero 

                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria1']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano>0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria1']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria1=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria1="";

                        }

 

                    $Documento_Memoria1=$doc_Documento_Memoria1;

                }else{

                    if (!is_dir('../../../repositorio/infraestructura_documento')) {

                        mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                    }

                    

                    if ($Documento_Memoria1!='') {

                        $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                        $cad = ""; 

                        for($i=0;$i<12;$i++) { 

                            $cad .= substr($str,rand(0,62),1); 

                        }

                        $extension = pathinfo($Documento_Memoria1, PATHINFO_EXTENSION);

                        $Documento_Memoria1Copia = '../../../repositorio/infraestructura_documento/'.$cad . "." . $extension;

                        copy($Documento_Memoria1, $Documento_Memoria1Copia);

                        $Documento_Memoria1=$Documento_Memoria1Copia;

                    }else{

                        $Documento_Memoria1='';

                    }

                } 
 

            $tamano = $_FILES['archivo_Documento_Memoria2']['size'];

            if ($tamano > 0) 

            {

                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }

                        // Creamos la cadena aletoria para el archivo Documento creacion.

                $tamano = $_FILES['archivo_Documento_Memoria2']['size']; // Leemos el tamano del fichero 

                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria2']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano>0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria2']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria2=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria2="";

                        }

 

                    $Documento_Memoria2=$doc_Documento_Memoria2;

                }else{

                    if (!is_dir('../../../repositorio/infraestructura_documento')) {

                        mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                    }

                    

                    if ($Documento_Memoria2!='') {

                        $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                        $cad = ""; 

                        for($i=0;$i<12;$i++) { 

                            $cad .= substr($str,rand(0,62),1); 

                        }

                        $extension = pathinfo($Documento_Memoria2, PATHINFO_EXTENSION);

                        $Documento_Memoria2Copia = '../../../repositorio/infraestructura_documento/'.$cad . "." . $extension;

                        copy($Documento_Memoria2, $Documento_Memoria2Copia);

                        $Documento_Memoria2=$Documento_Memoria2Copia;

                    }else{

                        $Documento_Memoria2='';

                    }

                } 
 

            $tamano = $_FILES['archivo_Documento_Memoria3']['size'];

            if ($tamano > 0) 

            {

                if (!is_dir('../../../repositorio/infraestructura_documento')) {

                    mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                }

                        // Creamos la cadena aletoria para el archivo Documento creacion.

                $tamano = $_FILES['archivo_Documento_Memoria3']['size']; // Leemos el tamano del fichero 

                    // Creamos la cadena aletoria para la imagen.

                    $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                    $cad = ""; 

                    for($i=0;$i<12;$i++) { 

                        $cad .= substr($str,rand(0,62),1); 

                    } 

                    // Fin de la creacion de la cadena aletoria 

                        $destino = '../../../repositorio/infraestructura_documento' ; // Carpeta donde se guarda

                        if($_FILES['archivo_Documento_Memoria3']['type']=='application/pdf') { // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen

                            try {

                                if ($tamano>0){

                                // se comentaron para que le cambie el nombre a la nueva imagen.

                                    move_uploaded_file ($_FILES['archivo_Documento_Memoria3']['tmp_name'], $destino . '/'.$cad.'.pdf');

                                 // Subimos el archivo 



                                $doc_Documento_Memoria3=$destino.'/'.$cad.'.pdf';                         

                                }

                            

                            } catch (Exception $e) {

                            }

                        } else { 

                             $doc_Documento_Memoria3="";

                        }

 

                    $Documento_Memoria3=$doc_Documento_Memoria3;

                }else{

                    if (!is_dir('../../../repositorio/infraestructura_documento')) {

                        mkdir('../../../repositorio/infraestructura_documento' , 0755, true);

                    }

                    

                    if ($Documento_Memoria3!='') {

                        $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                        $cad = ""; 

                        for($i=0;$i<12;$i++) { 

                            $cad .= substr($str,rand(0,62),1); 

                        }

                        $extension = pathinfo($Documento_Memoria3, PATHINFO_EXTENSION);

                        $Documento_Memoria3Copia = '../../../repositorio/infraestructura_documento/'.$cad . "." . $extension;

                        copy($Documento_Memoria3, $Documento_Memoria3Copia);

                        $Documento_Memoria3=$Documento_Memoria3Copia;

                    }else{

                        $Documento_Memoria3='';

                    }

                } 
        

         $idtupla=$Obj_infraestructura->insert_infraestructura($Nombre_Recurso, $Tipo_Infraestructura, $Proveedor_Servicio, $Ubicacion, $Estatus, $Descripcion, $Url_Acceso, $Usuario_Acceso, $Password_Acceso, $Notas, $Documento_Memoria1, $Documento_Memoria2, $Documento_Memoria3, $Fecha_Registro, $Usuario_Registro, $Fecha_Modificacion, $Usuario_Modifico);

         /*if($_Clausula_Fk!='' && $_IdFk!=''){

               $locations="Location: ../view/?_Clausula_Fk=$_Clausula_Fk&_IdFk=$_IdFk&_A_Clausula_Fk=$_A_Clausula_Fk&_A_IdFk=$_A_IdFk&_B_Clausula_Fk=$_B_Clausula_Fk&_B_IdFk=$_B_IdFk&pagina=1&_Id_Registro=$idtupla&_ScrollTo=0";

        }else{

            $locations="Location: ../view/?pagina=1&_Id_Registro=$idtupla&_ScrollTo=0";

        }*/

        $params = [];

            // Parámetros condicionales
            if (!empty($_Clausula_Fk))   $params[] = '_Clausula_Fk=' . urlencode($_Clausula_Fk);
            if (!empty($_IdFk))          $params[] = '_IdFk=' . urlencode($_IdFk);
            if (!empty($_A_Clausula_Fk)) $params[] = '_A_Clausula_Fk=' . urlencode($_A_Clausula_Fk);
            if (!empty($_A_IdFk))        $params[] = '_A_IdFk=' . urlencode($_A_IdFk);
            if (!empty($_B_Clausula_Fk)) $params[] = '_B_Clausula_Fk=' . urlencode($_B_Clausula_Fk);
            if (!empty($_B_IdFk))        $params[] = '_B_IdFk=' . urlencode($_B_IdFk);

            // Parámetros obligatorios (siempre presentes)
            $params[] = 'pagina=' . urlencode($_Pagina);
            $params[] = '_Id_Registro=$' . urlencode($idtupla);
            $params[] = '_ScrollTo=' . urlencode($_ScrollTo);

            // Construcción de la URL
            $locations = 'Location: ../view/?' . implode('&', $params);

            header($locations);        

           }    

        catch (Exception $e) {

            echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

        }   



        break;

    

        case 'eliminar':           

                try{

              $Obj_infraestructura->delete_infraestructura($Id_Infraestructura);

                 $locations ="Location: ../view";

                 header($locations);

                }

        

                catch (Exception $e) {

                    echo 'Excepcion capturada: ',  $e->getMessage(), "\n";

                }   



        break;



    default:

        

        break;

}

?>

