<?php

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

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

$url_clientes = $_SERVER["REQUEST_URI"];

$subtree_clientes = substr_count($url_clientes, '/');

$context_clientes='';

for ($i_clientes=2; $i_clientes <$subtree_clientes ; $i_clientes++) { 

        $context_clientes=$context_clientes.'../';

}

require_once($context_clientes.'home/clientes/modelo/clientes.php');*/

require_once(ROOT_CONTROLLER.'clientes.php');

$Obj_clientes = new clientes();

require_once(ROOT_CHARACTER_FIX);

//require_once($context_clientes.'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_Clientes=!empty($_REQUEST['Id_Clientes'])?$_REQUEST['Id_Clientes']:'';
   $Imagen=!empty($_REQUEST['Imagen'])?$_REQUEST['Imagen']:'';
   $Id_Fk_Catalogo_Cliente_Pertenece=!empty($_REQUEST['Id_Fk_Catalogo_Cliente_Pertenece'])?$_REQUEST['Id_Fk_Catalogo_Cliente_Pertenece']:'';
   $Promotor=!empty($_REQUEST['Promotor'])?$_REQUEST['Promotor']:'';
   $Id_Fk_Catalogo_Esquema_Crediticio=!empty($_REQUEST['Id_Fk_Catalogo_Esquema_Crediticio'])?$_REQUEST['Id_Fk_Catalogo_Esquema_Crediticio']:'';
   $Esquema_Crediticio=!empty($_REQUEST['Esquema_Crediticio'])?$_REQUEST['Esquema_Crediticio']:'';
   $Id_Fk_Catalogo_Tipo_Persona=!empty($_REQUEST['Id_Fk_Catalogo_Tipo_Persona'])?$_REQUEST['Id_Fk_Catalogo_Tipo_Persona']:'';
   $Tipo_Persona=!empty($_REQUEST['Tipo_Persona'])?$_REQUEST['Tipo_Persona']:'';
   $Id_Fk_Regimen_Fiscal=!empty($_REQUEST['Id_Fk_Regimen_Fiscal'])?$_REQUEST['Id_Fk_Regimen_Fiscal']:'';
   $Regimen=!empty($_REQUEST['Regimen'])?$_REQUEST['Regimen']:'';
   $Nombre_Completo=!empty($_REQUEST['Nombre_Completo'])?$_REQUEST['Nombre_Completo']:'';
   $Apellido_Paterno=!empty($_REQUEST['Apellido_Paterno'])?$_REQUEST['Apellido_Paterno']:'';
   $Apellido_Materno=!empty($_REQUEST['Apellido_Materno'])?$_REQUEST['Apellido_Materno']:'';
   $RFC=!empty($_REQUEST['RFC'])?$_REQUEST['RFC']:'';
   $Razon_Social_Persona_Moral=!empty($_REQUEST['Razon_Social_Persona_Moral'])?$_REQUEST['Razon_Social_Persona_Moral']:'';
   $Fecha_Constitucion_Persona_Moral=!empty($_REQUEST['Fecha_Constitucion_Persona_Moral'])?$_REQUEST['Fecha_Constitucion_Persona_Moral']:'';
   $Nombre_De_Contacto_Persona_Moral=!empty($_REQUEST['Nombre_De_Contacto_Persona_Moral'])?$_REQUEST['Nombre_De_Contacto_Persona_Moral']:'';
   $Puesto_De_Contacto_Persona_Moral=!empty($_REQUEST['Puesto_De_Contacto_Persona_Moral'])?$_REQUEST['Puesto_De_Contacto_Persona_Moral']:'';
   $Id_Fk_Estado_Civil=!empty($_REQUEST['Id_Fk_Estado_Civil'])?$_REQUEST['Id_Fk_Estado_Civil']:'';
   $Estado_Civil=!empty($_REQUEST['Estado_Civil'])?$_REQUEST['Estado_Civil']:'';
   $Calle=!empty($_REQUEST['Calle'])?$_REQUEST['Calle']:'';
   $Numero_Exterior=!empty($_REQUEST['Numero_Exterior'])?$_REQUEST['Numero_Exterior']:'';
   $Numero_Interior=!empty($_REQUEST['Numero_Interior'])?$_REQUEST['Numero_Interior']:'';
   $Colonia=!empty($_REQUEST['Colonia'])?$_REQUEST['Colonia']:'';
   $Delegacion_Municipio=!empty($_REQUEST['Delegacion_Municipio'])?$_REQUEST['Delegacion_Municipio']:'';
   $Codigo_Postal=!empty($_REQUEST['Codigo_Postal'])?$_REQUEST['Codigo_Postal']:'';
   $Coordenadas=!empty($_REQUEST['Coordenadas'])?$_REQUEST['Coordenadas']:'';
   $Telefono_Oficina=!empty($_REQUEST['Telefono_Oficina'])?$_REQUEST['Telefono_Oficina']:'';
   $Extension=!empty($_REQUEST['Extension'])?$_REQUEST['Extension']:'';
   $No_De_Celular=!empty($_REQUEST['No_De_Celular'])?$_REQUEST['No_De_Celular']:'';
   $Correo_1=!empty($_REQUEST['Correo_1'])?$_REQUEST['Correo_1']:'';
   $Correo_2=!empty($_REQUEST['Correo_2'])?$_REQUEST['Correo_2']:'';
   $Correo_3=!empty($_REQUEST['Correo_3'])?$_REQUEST['Correo_3']:'';
   $Observaciones_Y_Notas=!empty($_REQUEST['Observaciones_Y_Notas'])?$_REQUEST['Observaciones_Y_Notas']:'';
   $Fecha_De_Registro=!empty($_REQUEST['Fecha_De_Registro'])?$_REQUEST['Fecha_De_Registro']:'';
   $Usuario_Que_Registra=!empty($_REQUEST['Usuario_Que_Registra'])?$_REQUEST['Usuario_Que_Registra']:'';
   $Fecha_De_Modificacion=!empty($_REQUEST['Fecha_De_Modificacion'])?$_REQUEST['Fecha_De_Modificacion']:'';
   $Usuario_Que_Modifico=!empty($_REQUEST['Usuario_Que_Modifico'])?$_REQUEST['Usuario_Que_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/clientes/';

    

    // 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/clientes_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/clientes_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_clientes->update_field_front_clientes($Field,$Value,$Id_Clientes);

        }catch (Exception $e) {

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

        }

        break;

    case 'campos_front_fk':

        try{

            $Obj_clientes->update_field_clientes($Field,$Value,$Id_Clientes);

            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_clientes->update_field_front_clientes($Field,$Value_Campo,$Id_Clientes);

                    }

                }

            }

        }catch (Exception $e) {

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

        }

        break;



    case 'campos':

        try{

            $Obj_clientes->update_field_front_clientes($Field,$Value,$Id_Clientes);

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

            //header($locations);

            }   

        catch (Exception $e) {

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

        }

        break;



    

    case 'editar':



        try{


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

            if (!is_dir($directorio)) {

                mkdir($directorio, 0755, true);

            }

            if ($Imagen!='') {

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

                    if ($tamano>0) 

                    {

                        if (strpos($_FILES["Imagen_file"]["type"], 'image/') !== false) {

                            $sep=explode('image/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                            $Mec_type='img';

                        }                    

                        $tipo=$sep[1]; // Optenemos el tipo de imagen que es

                        if($tipo == "PNG"|| $tipo == "png" || $tipo == "gif" ||$tipo == "GIF" || $tipo == "jpg"||$tipo == "JPG" || $tipo == "jpeg"||$tipo == "JPEG" || $tipo == "bmp"||$tipo == "BMP"||$tipo != "") {

                            move_uploaded_file ($_FILES['Imagen_file']['tmp_name'], $Imagen);

                        }

                    }

                }

                else

                {   

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

                    if ($tamano>0) 

                    {

                    // 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 

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

                    $tamano_max="50000000000"; // tamano maximo permitido 

                    // echo $tamano;

                    if( $tamano < $tamano_max){ // Comprovamos el tamano  

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

                        $sep="";

                        $Mec_type="";

                        if (strpos($_FILES["Imagen_file"]["type"], 'image/') !== false) {

                            $sep=explode('image/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                            $Mec_type='img';

                        }

                        if (strpos($_FILES["Imagen_file"]["type"], 'audio/') !== false) {

                            $sep=explode('audio/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                            $Mec_type='aud';

                        }

                        if ($tamano>0) {

                        $tipo=$sep[1]; // Optenemos el tipo de imagen que es    

                        }

                        if($tipo == "PNG"|| $tipo == "png" || $tipo == "gif" ||$tipo == "GIF" || $tipo == "jpg"||$tipo == "JPG" || $tipo == "jpeg"||$tipo == "JPEG" || $tipo == "bmp"||$tipo == "BMP"||$tipo != "") { // 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['Imagen_file']['tmp_name'], $destino . '/'.$cad.'.'.$tipo);

                                 // Subimos el archivo                          

                                }

                            

                            } catch (Exception $e) {

                            }

                            $Mec_urla=$cad;

                            $Mec_formato='.'.$tipo;

                        } else { 

                             $Imagen_img="";

                        }

                    } else { 

                        $Imagen_img="";

                    }

                    if (strlen($tipo)==0) {

                        $Imagen_img='';       

                    } else {

                        $Imagen_img=$destino.'/'.$cad.'.'.$tipo;      

                    }

                    //termina algoritmo de carga de imagen.

                    $Imagen=$Imagen_img;  

                    }  

                }
 

             $Obj_clientes->update_clientes($Id_Clientes, $Imagen, $Id_Fk_Catalogo_Cliente_Pertenece, $Promotor, $Id_Fk_Catalogo_Esquema_Crediticio, $Esquema_Crediticio, $Id_Fk_Catalogo_Tipo_Persona, $Tipo_Persona, $Id_Fk_Regimen_Fiscal, $Regimen, $Nombre_Completo, $Apellido_Paterno, $Apellido_Materno, $RFC, $Razon_Social_Persona_Moral, $Fecha_Constitucion_Persona_Moral, $Nombre_De_Contacto_Persona_Moral, $Puesto_De_Contacto_Persona_Moral, $Id_Fk_Estado_Civil, $Estado_Civil, $Calle, $Numero_Exterior, $Numero_Interior, $Colonia, $Delegacion_Municipio, $Codigo_Postal, $Coordenadas, $Telefono_Oficina, $Extension, $No_De_Celular, $Correo_1, $Correo_2, $Correo_3, $Observaciones_Y_Notas, $Fecha_De_Registro, $Usuario_Que_Registra, $Fecha_De_Modificacion, $Usuario_Que_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_Clientes&_ScrollTo=$_ScrollTo";

            }else{

              $locations="Location: ../view/?pagina=$_Pagina&_Id_Registro=$Id_Clientes&_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_Clientes);
            $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['Imagen_file']['size'];

            if ($tamano > 0) 

            {

            $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                $cad = ""; 

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

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

                } 

                // Fin de la creacion de la cadena aletoria 

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

                $tamano_max="50000000000"; // tamano maximo permitido 

                // echo $tamano;

                if( $tamano < $tamano_max){ // Comprovamos el tamano  

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

                    $sep="";

                    $Mec_type="";

                    if (strpos($_FILES["Imagen_file"]["type"], 'image/') !== false) {

                        $sep=explode('image/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                        $Mec_type='img';

                    }

                    if (strpos($_FILES["Imagen_file"]["type"], 'audio/') !== false) {

                        $sep=explode('audio/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                        $Mec_type='aud';

                    }

                    if ($tamano>0) {

                        $tipo=$sep[1]; // Optenemos el tipo de imagen que es    

                    }

                    if($tipo == "PNG"|| $tipo == "png" || $tipo == "gif" ||$tipo == "GIF" || $tipo == "jpg"||$tipo == "JPG" || $tipo == "jpeg"||$tipo == "JPEG" || $tipo == "bmp"||$tipo == "BMP"||$tipo != "") { // 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['Imagen_file']['tmp_name'], $destino . '/'.$cad.'.'.$tipo);

                             // Subimos el archivo                          

                            }

                            

                        } catch (Exception $e) {

                        }

                        $Mec_urla=$cad;

                        $Mec_formato='.'.$tipo;

                    } else { 

                         $Imagen_img="";

                    }

                } else { 

                    $logo="";

                }

                if (strlen($tipo)==0) {

                    $Imagen_img='';       

                } else {

                    $Imagen_img=$destino.'/'.$cad.'.'.$tipo;      

                }

                //termina algoritmo de carga de imagen.

                $Imagen=$Imagen_img; 

                } 
        

         $idtupla=$Obj_clientes->insert_clientes($Imagen, $Id_Fk_Catalogo_Cliente_Pertenece, $Promotor, $Id_Fk_Catalogo_Esquema_Crediticio, $Esquema_Crediticio, $Id_Fk_Catalogo_Tipo_Persona, $Tipo_Persona, $Id_Fk_Regimen_Fiscal, $Regimen, $Nombre_Completo, $Apellido_Paterno, $Apellido_Materno, $RFC, $Razon_Social_Persona_Moral, $Fecha_Constitucion_Persona_Moral, $Nombre_De_Contacto_Persona_Moral, $Puesto_De_Contacto_Persona_Moral, $Id_Fk_Estado_Civil, $Estado_Civil, $Calle, $Numero_Exterior, $Numero_Interior, $Colonia, $Delegacion_Municipio, $Codigo_Postal, $Coordenadas, $Telefono_Oficina, $Extension, $No_De_Celular, $Correo_1, $Correo_2, $Correo_3, $Observaciones_Y_Notas, $Fecha_De_Registro, $Usuario_Que_Registra, $Fecha_De_Modificacion, $Usuario_Que_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['Imagen_file']['size'];

            if ($tamano > 0) 

            {

            $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                $cad = ""; 

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

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

                } 

                // Fin de la creacion de la cadena aletoria 

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

                $tamano_max="50000000000"; // tamano maximo permitido 

                // echo $tamano;

                if( $tamano < $tamano_max){ // Comprovamos el tamano  

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

                    $sep="";

                    $Mec_type="";

                    if (strpos($_FILES["Imagen_file"]["type"], 'image/') !== false) {

                        $sep=explode('image/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                        $Mec_type='img';

                    }

                    if (strpos($_FILES["Imagen_file"]["type"], 'audio/') !== false) {

                        $sep=explode('audio/',$_FILES["Imagen_file"]["type"]); // Separamos image/ 

                        $Mec_type='aud';

                    }

                    if ($tamano>0) {

                        $tipo=$sep[1]; // Optenemos el tipo de imagen que es    

                    }

                    if($tipo == "PNG"|| $tipo == "png" || $tipo == "gif" ||$tipo == "GIF" || $tipo == "jpg"||$tipo == "JPG" || $tipo == "jpeg"||$tipo == "JPEG" || $tipo == "bmp"||$tipo == "BMP"||$tipo != "") { // 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['Imagen_file']['tmp_name'], $destino . '/'.$cad.'.'.$tipo);

                             // Subimos el archivo                          

                            }

                            

                        } catch (Exception $e) {

                        }

                        $Mec_urla=$cad;

                        $Mec_formato='.'.$tipo;

                    } else { 

                         $Imagen_img="";

                    }

                } else { 

                    $logo="";

                }

                if (strlen($tipo)==0) {

                    $Imagen_img='';       

                } else {

                    $Imagen_img=$destino.'/'.$cad.'.'.$tipo;      

                }

                //termina algoritmo de carga de imagen.

                $Imagen=$Imagen_img; 

                }else{

                    if($Imagen!=''){

                        $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; 

                        $cad = ""; 

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

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

                        }

                        $extension = pathinfo($Imagen, PATHINFO_EXTENSION);

                        $ImagenCopia = '../../../repositorio/clientes_img/'.$cad . "." . $extension;

                        copy($Imagen, $ImagenCopia);

                        $Imagen=$ImagenCopia;

                    }else{

                        $Imagen='';

                    }

                } 
        

         $idtupla=$Obj_clientes->insert_clientes($Imagen, $Id_Fk_Catalogo_Cliente_Pertenece, $Promotor, $Id_Fk_Catalogo_Esquema_Crediticio, $Esquema_Crediticio, $Id_Fk_Catalogo_Tipo_Persona, $Tipo_Persona, $Id_Fk_Regimen_Fiscal, $Regimen, $Nombre_Completo, $Apellido_Paterno, $Apellido_Materno, $RFC, $Razon_Social_Persona_Moral, $Fecha_Constitucion_Persona_Moral, $Nombre_De_Contacto_Persona_Moral, $Puesto_De_Contacto_Persona_Moral, $Id_Fk_Estado_Civil, $Estado_Civil, $Calle, $Numero_Exterior, $Numero_Interior, $Colonia, $Delegacion_Municipio, $Codigo_Postal, $Coordenadas, $Telefono_Oficina, $Extension, $No_De_Celular, $Correo_1, $Correo_2, $Correo_3, $Observaciones_Y_Notas, $Fecha_De_Registro, $Usuario_Que_Registra, $Fecha_De_Modificacion, $Usuario_Que_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_clientes->delete_clientes($Id_Clientes);

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

                 header($locations);

                }

        

                catch (Exception $e) {

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

                }   



        break;



    default:

        

        break;

}

?>

