<?php 
require_once('../../backend/bd/Conexion.php'); 
 if(isset($_POST['add_docu'])){
///////////// Informacion enviada por el formulario /////////////
    $nomfi=$_POST['docdoc'];
    $idpa=$_POST['docidpa'];
    $nompa=$_POST['docnopa'];
   
    $imgFile = $_FILES['foto']['name'];
    $tmp_dir = $_FILES['foto']['tmp_name'];
    $imgSize = $_FILES['foto']['size'];
///////// Fin informacion enviada por el formulario /// 

    $tipo = isset($_POST['doctipo']) ? $_POST['doctipo'] : 'general';

    if($tipo == 'autorizacion') {
        // Para autorización, no requerimos docdoc ni foto obligatoria
        $nomfi = "Autorización Tratamiento de Datos";
        $foto = "check_mark.png"; // Placeholder or logic to handle no file
        
        // Append status immediately if available
        if (isset($_POST['autoriza_status'])) {
            $nomfi .= " - AUTORIZADO: " . $_POST['autoriza_status'];
        }
    } else {
        // Logic for other documents
        if(empty($nomfi)){
            $errMSG = "Please enter your name.";
        }
        else if(empty($nompa)){
            $errMSG = "Please Enter your number.";
        }
    
        $imgFile = $_FILES['foto']['name'];
        $tmp_dir = $_FILES['foto']['tmp_name'];
        $imgSize = $_FILES['foto']['size'];
    
        if(empty($errMSG)) {
            $upload_dir = '../../backend/img/subidas/'; // upload directory
        
            $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
        
            // valid image extensions
            $valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'pdf'); // valid extensions
        
            // rename uploading image
            $foto = rand(1000,1000000).".".$imgExt;
            
            // allow valid image file formats
            if(in_array($imgExt, $valid_extensions)){   
                // Check file size '5MB'
                if($imgSize < 5000000)    {
                    move_uploaded_file($tmp_dir,$upload_dir.$foto);
                }
                else{
                    $errMSG = "Sorry, your file is too large.";
                }
            }
            else{
                $errMSG = "Sorry, only JPG, JPEG, PNG, GIF & PDF files are allowed.";  
            }
        }
    }

////////////// Insertar a la tabla la informacion generada /////////
////////////// Insertar a la tabla la informacion generada /////////
$tipo = isset($_POST['doctipo']) ? $_POST['doctipo'] : 'general';

if ($tipo == 'autorizacion' && isset($_POST['autoriza_status'])) {
    $nomfi .= " - AUTORIZADO: " . $_POST['autoriza_status'];
}

// Check if this is an update for authorization
if (isset($_POST['id_doc_autorizacion']) && !empty($_POST['id_doc_autorizacion'])) {
    $iddoc = $_POST['id_doc_autorizacion'];
    $sql = "UPDATE document SET nomfi = :nomfi WHERE iddoc = :iddoc";
    $sql = $connect->prepare($sql);
    $sql->bindParam(':nomfi', $nomfi, PDO::PARAM_STR, 255);
    $sql->bindParam(':iddoc', $iddoc, PDO::PARAM_INT);
    $sql->execute();
    
     echo '<script type="text/javascript">
swal("¡Actualizado!", "Actualizado correctamente", "success").then(function() {
            window.location.replace(window.location.pathname + window.location.search);
        });
        </script>';

} else {
    // Normal Insert Logic
    $sql="insert into document(nomfi, foto, idpa, nompa, state, tipo) 
    values(:nomfi, :foto, :idpa, :nompa, '1', :tipo)";
        
    $sql = $connect->prepare($sql);
        
    $sql->bindParam(':nomfi',$nomfi,PDO::PARAM_STR, 255);
    $sql->bindParam(':foto',$foto,PDO::PARAM_STR, 255);
    $sql->bindParam(':idpa',$idpa,PDO::PARAM_STR,25);
    $sql->bindParam(':nompa',$nompa,PDO::PARAM_STR,25);
    $sql->bindParam(':tipo',$tipo,PDO::PARAM_STR,25);
        
    $sql->execute();
    
    $lastInsertId = $connect->lastInsertId();
    if($lastInsertId>0){ // Success for insert
    
        echo '<script type="text/javascript">
    swal("¡Registrado!", "Agregado correctamente", "success").then(function() {
                window.location.replace(window.location.pathname + window.location.search);
            });
            </script>';
    }
    else{ // Error for insert
     echo '<script type="text/javascript">
    swal("Error!", "No se pueden agregar datos,  comuníquese con el administrador ", "error").then(function() {
                window.location.replace(window.location.pathname + window.location.search);
            });
            </script>';
    
    print_r($sql->errorInfo()); 
    }
}
}// Cierra envio de guardado
?>