<?php
//===================================================================================================================
//============================================LIBRERIAS Y VARIABLES==================================================
//===================================================================================================================
session_start();
//VARIABLES----------------------------------------------------------------------------------------------------------
$user = "";
$user = $_SESSION["user"];
$grupo = "";
$grupo = $_SESSION["grupo"];
$id_doc = $_POST['id'];
$doc = "20".$_POST['id'];
$id_doc_raiz  = "20".$_POST['id_raiz'];
//CONEXION-----------------------------------------------------------------------------------------------------------
require_once '../../conexion/conexion.php';
$bd = new connexion();
$bd->query("SET NAMES 'utf8'");
//===================================================================================================================
//============================================ACCIONES===============================================================
//===================================================================================================================
//VALIDAR QUE EL DOCUMENTO ESTE GRAPADO CON ANTERIORIDAD-------------------------------------------------------------
$result = codigoGrapadoDocumento($bd, $id_doc_raiz);
//VARIABLES---------------------------------------------------------------------------
//CODIGO DE GRAPADO DEL DOC RAIZ
$cod_grapado = $result['GRAPADO'];
//DIRECTORIO PADRE DEL DOC RAIZ
$dir_padre = $result['PADRE'];
//UBICACION DEL DOCUMENTO PADRE
$ubic_padre = $result['UBICACION'];
//====================================================================================
//DOCUMENTO GRAPADO ACTUALMENTE=======================================================
if ($cod_grapado != "") {
  //HAGO EL UPDATE SOLO DEL NUEVO DOCUMENTO-------------------------------------------
  updateGrapadoNewDoc($bd, $doc, $cod_grapado, $dir_padre, $ubic_padre);
}
//====================================================================================
//DOCUMENTO SIN GRAPAR===============================================================
if ($cod_grapado == "") {
  //GENERO UNA NUEVA CLAVE DE 18 DIG PARA EL CAMPO DE GRAPADO
  $cvl_grapado = get_id_unico();
  //HAGO UPDATE DEL DOCUMENTOS RAIZ
  updateGrapadoRaiz($bd, $id_doc_raiz, $cvl_grapado);
  //HACER UPDATE DEL NUEVO DOCUMENTO
  updateGrapadoNewDoc($bd, $doc, $cvl_grapado, $dir_padre, $ubic_padre);
}
//==============Registro del historial de traza======================================
//variables para registrar la traza--------------------------------------------------
//$doc
//$user
//DATOS DEL DOCUMENTO
$result_traza = datosDocumento($bd, $doc);
//NOMBRE DEL DOCUMENTO
$nombre_traza = $result_traza['NOMBRE'];
$clv_padre_traza = $result_traza['PADRE'];
$padre_traza = nombrePadre($bd, $clv_padre_traza);
$ambito_traza = $result_traza['AMBITO'];
$ordenador_traza = $_SESSION['host'];
$acceso_traza = $result_traza['ACCESO'].$result_traza['ACCESO_AUTO'];
$tamano_traza = $result_traza['TAMANO'];
$accion_traza = 25; //grapado
$tipo_traza = "D"; //Tipo documento
$awa_traza = 1;
//CREO REGISTRO EN EL HISTORIAL------------------------------------------------------
registroHistorial($bd, $doc, $user, $ordenador_traza, $nombre_traza, $padre_traza, $ambito_traza, $acceso_traza, $tamano_traza, $awa_traza, $accion_traza, $tipo_traza);
//===================================================================================================================
//============================================HTML===================================================================
//===================================================================================================================

//===================================================================================================================
//============================================FUNCIONES==============================================================
//===================================================================================================================
//OBTENGO LOS DATOS DEL DOCUMENTO------------------------------------------------------------------------------------
function codigoGrapadoDocumento($bd, $doc)
{
  $sql =  " SELECT E.GRAPADO, E.PADRE, E.UBICACION
            FROM BIBLIOTECA_ELEMENTOS E
            WHERE E.CLAVE = '$doc'";
  $base = $bd->query($sql);
  $row = mysqli_fetch_array($base);
  return $row;
  $base->close();
}
//HAGO EL UPDATE DEL CAMPO GRAPADO DEL DOCUMENTO RAIZ------------------------------------------------------------------
function updateGrapadoRaiz($bd, $doc, $cod_grapado)
{
  $query = "UPDATE BIBLIOTECA_ELEMENTOS
            SET GRAPADO = '$cod_grapado'
            WHERE CLAVE = '$doc'";
    mysqli_query($bd, $query);
}
//HAGO EL UPDATE DEL CAMPO GRAPADO, PADRE Y UBICACION DEL DOCUMENTO NUEVO----------------------------------------------
function updateGrapadoNewDoc($bd, $doc, $cod_grapado, $dir_padre, $ubic_padre)
{
  $query = "UPDATE BIBLIOTECA_ELEMENTOS
            SET GRAPADO = '$cod_grapado', PADRE = '$dir_padre', UBICACION = '$ubic_padre'
            WHERE CLAVE = '$doc'";
    mysqli_query($bd, $query);
}
//Funcion para obtener la clave unica del registro--------------------------------------------------------------------
function get_id_unico() {
  return date( "YmdHis" ) . sprintf( "%04d", rand( 0, 9999 ) );
}
//===============================================================================================================================
 //=========================================BLOQUE TRAZA HISTORIAL================================================================
 //FUNCION PARA Hacer el Registro en el Historial------------------------------------------------
 function registroHistorial($bd, $doc, $user, $ordenador, $nombre, $padre, $ambito, $acceso, $tamano, $awa, $accion, $tipo)
 {
  $query =" INSERT INTO BIBLIOTECA_HISTORIAL ( CLAVE, USUARIO, FECHA, ACCION, DOCUMENTO, CARPETA, ORDENADOR, AMBITO, ACCESO, TIPO, TAMANO, CREADOR, AWA)
            VALUES ( '$doc', '$user', NOW(), $accion, '$nombre', '$padre', '$ordenador', '$ambito', '$acceso', '$tipo', $tamano, '$user', $awa)";
  mysqli_query($bd, $query);
 }  
 //FUNCION PARA OBTENER EL NOMBRE DEL PADRE DEL DOCUMENTO-------------------------------------
function nombrePadre($bd, $id_padre){
  //EVALUO SI EL PADRE NO PERTECENE A ALGUN DIRECTORIO RAIZ PUBLICO O PRIVADO
  if ($id_padre == "##PUBLICO##" OR $id_padre == "##PRIVADO##" OR $id_padre == "##USUARIOS##") {
      if ($id_padre == "##PUBLICO##") {
          $padre = "##PUBLICO##";
      }
      if ($id_padre == "##PRIVADO##") {
          $padre = "##PRIVADO##";
      } 
      if ($id_padre == "##USUARIOS##") {
          $padre = "##USUARIOS##";
      }  
}else{
      $sql = "  SELECT e.NOMBRE
      FROM BIBLIOTECA_ELEMENTOS e
      WHERE e.CLAVE = '$id_padre'
      AND e.TIPO = 'C' LIMIT 1";
      $base = $bd->query($sql);
      $nomb_padre = mysqli_fetch_assoc($base);
      $padre = $nomb_padre['NOMBRE'];
}
  //REgreso el valor del padre
  return $padre;
} 
//OBTENGO LOS DATOS DEL DOCUMENTO--------------------------------------------------------------------------------------
function datosDocumento($bd, $doc)
{
  $sql =  " SELECT BE.NOMBRE, BE.EXTENSION, BE.CLAVE, BE.NUMNOT, BE.AMBITO, BE.ACCESO, BE.ACCESO_AUTO, BE.TAMANO, BE.PADRE
            FROM BIBLIOTECA_ELEMENTOS BE
            WHERE BE.CLAVE = '$doc'";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  $base->close();
  return $result;
}
//============================================================================================================================
//============================================================================================================================ 
?>