<?php
//===================================================================================================================
//============================================LIBRERIAS Y VARIABLES==================================================
//===================================================================================================================
session_start();
//CONEXION-----------------------------------------------------------------------------------------------------------
require_once '../conexion/conexion.php';
$bd = new connexion();
$bd->query("SET NAMES 'utf8'");
//VARIABLES----------------------------------------------------------------------------------------------------------
//VALOR CAJA PADRE
$valor_padre = $_POST["valor_padre"];
//CLAVE SUB-LISTA
$id_sub_lista = $_POST["id_sub_lista"];
//ID ESQUEMA SUB LISTA
$id_esq_lista = $_POST["id_esq_lista"];
//===================================================================================================================
//============================================ACCIONES===============================================================
//===================================================================================================================
//CONSULTO EL TIPO DE CONTACTO A MOSTRAR-----------------------------------------------------------------------------
$tipo_contacto = tipoContactoConsultar($bd, $id_esq_lista, $id_sub_lista);
//VERIFICO EL TIPO DE CONSULTA A REALIZAR--------------------------------------------------------------------------
switch ( $tipo_contacto ) {
  case -1:
    //SOLO CONTACTOS==============================================================================================
    //AMBOS CONTACTOS Y ORGANIZACIONES============================================================================
    //OBTENGO EL ID DE LA ORGANIZACION O CONTACTO A PARTIR DEL NOMBRE---------------------------------------------
    $codigo_contacto = idContactoOrganizacion($bd, $valor_padre);
    //BUSCO LOS CONTACTOS Y ORGANIZACIONES RELACIONADAS-----------------------------------------------------------
    $base = contacRelacionados($bd, $codigo_contacto);
    //RECORRO EL ARRAY DE RELACIONES PARA CARGAR LOS ID DE ORGANIZACIONES RELACIONADAS----------------------------
    while ($row = $base->fetch_object()){
      //EVALUAR Y CARGAR LA VARIABLE DEPENDIENDO EN QUE CAMPO ESTE EL ID DEL--------------------------------------
      // CONTACTACTO PRINCIPAL Y EL RELACIONADO-------------------------------------------------------------------
      if ($codigo_contacto == $row->CONTACTO) {
        //CAMPO DE CONTACTO ES IGUAL AL  ID DEL RAIZ CARGO LA VARIABLE CON EL ------------------------------------
        //CODIGO DEL CAMPO ORGANIZACION---------------------------------------------------------------------------
        $datos_contac = datosContacRelacionadosContacto($bd, $row->ORGANIZACION);
      }elseif ($codigo_contacto == $row->ORGANIZACION) {
        //HAGO LO VICEVERSA---------------------------------------------------------------------------------------
        $datos_contac = datosContacRelacionadosContacto($bd, $row->CONTACTO);
      }
      //ESCRIBO EL HTML DE LOS ITEM DE LISTADO DE RELACION SACANDO LOS ITEMS VACIOS-------------------------------
      if ($datos_contac['MOSTRAR'] != "") {
        echo "<option>".$datos_contac['MOSTRAR']."</option>";
      }
    }

    break;

  case -2:
    //SOLO ORGANIZACIONES=========================================================================================
    //AMBOS CONTACTOS Y ORGANIZACIONES============================================================================
    //OBTENGO EL ID DE LA ORGANIZACION O CONTACTO A PARTIR DEL NOMBRE---------------------------------------------
    $codigo_contacto = idContactoOrganizacion($bd, $valor_padre);
    //BUSCO LOS CONTACTOS Y ORGANIZACIONES RELACIONADAS-----------------------------------------------------------
    $base = contacRelacionados($bd, $codigo_contacto);
    //RECORRO EL ARRAY DE RELACIONES PARA CARGAR LOS ID DE ORGANIZACIONES RELACIONADAS----------------------------
    while ($row = $base->fetch_object()){
      //EVALUAR Y CARGAR LA VARIABLE DEPENDIENDO EN QUE CAMPO ESTE EL ID DEL--------------------------------------
      // CONTACTACTO PRINCIPAL Y EL RELACIONADO-------------------------------------------------------------------
      if ($codigo_contacto == $row->CONTACTO) {
        //CAMPO DE CONTACTO ES IGUAL AL  ID DEL RAIZ CARGO LA VARIABLE CON EL ------------------------------------
        //CODIGO DEL CAMPO ORGANIZACION---------------------------------------------------------------------------
        $datos_contac = datosContacRelacionadosOrganizacion($bd, $row->ORGANIZACION);
      }elseif ($codigo_contacto == $row->ORGANIZACION) {
        //HAGO LO VICEVERSA---------------------------------------------------------------------------------------
        $datos_contac = datosContacRelacionadosOrganizacion($bd, $row->CONTACTO);
      }
      //ESCRIBO EL HTML DE LOS ITEM DE LISTADO DE RELACION SACANDO LOS ITEMS VACIOS-------------------------------
      if ($datos_contac['MOSTRAR'] != "") {
        echo "<option>".$datos_contac['MOSTRAR']."</option>";
      }
    }

    break;

  case -5:
    //AMBOS CONTACTOS Y ORGANIZACIONES============================================================================
    //EVALUAR Y CARGAR LA VARIABLE DEPENDIENDO EN QUE CAMPO ESTE EL ID DEL----------------------------------------
    //OBTENGO EL ID DE LA ORGANIZACION O CONTACTO A PARTIR DEL NOMBRE---------------------------------------------
    $codigo_contacto = idContactoOrganizacion($bd, $valor_padre);
    //BUSCO LOS CONTACTOS Y ORGANIZACIONES RELACIONADAS-----------------------------------------------------------
    $base = contacRelacionados($bd, $codigo_contacto);
    //RECORRO EL ARRAY DE RELACIONES PARA CARGAR LOS ID DE ORGANIZACIONES RELACIONADAS----------------------------
    while ($row = $base->fetch_object()){
      // CONTACTACTO PRINCIPAL Y EL RELACIONADO-------------------------------------------------------------------
      if ($codigo_contacto == $row->CONTACTO) {
        //CAMPO DE CONTACTO ES IGUAL AL  ID DEL RAIZ CARGO LA VARIABLE CON EL ------------------------------------
        //CODIGO DEL CAMPO ORGANIZACION---------------------------------------------------------------------------
        $datos_contac = datosContacRelacionados($bd, $row->ORGANIZACION);
      }elseif ($codigo_contacto == $row->ORGANIZACION) {
        //HAGO LO VICEVERSA---------------------------------------------------------------------------------------
        $datos_contac = datosContacRelacionados($bd, $row->CONTACTO);
      }
      //ESCRIBO EL HTML DE LOS ITEM DE LISTADO DE RELACION SACANDO LOS ITEMS VACIOS-------------------------------
      if ($datos_contac['MOSTRAR'] != "") {
        echo "<option>".$datos_contac['MOSTRAR']."</option>";
      }
    }

    break;

  default:
  //ES UN GRUPO DE CONTACTOS---------------------------------------------------------------------------------------
  //BUSCAR EN LAS ETIQUETAS LOS DATOS DEL GRUPO--------------------------------------------------------------------
  $cod_grupo_cont = codigoGrupoContactos($bd, $tipo_contacto);
  //OBTENGO EL ID DE LA ORGANIZACION O CONTACTO A PARTIR DEL NOMBRE------------------------------------------------
  $codigo_contacto = idContactoOrganizacion($bd, $valor_padre);
   //BUSCO LOS CONTACTOS Y ORGANIZACIONES RELACIONADAS-------------------------------------------------------------
  $base = contacRelacionadosGrupo($bd, $cod_grupo_cont);
  //RECORRO EL ARRAY DE RELACIONES PARA CARGAR LOS ID DE ORGANIZACIONES RELACIONADAS-------------------------------
  while ($row = $base->fetch_object()){
    //VERIFICO SI EXISTE RELACION DEL CONTACTO DENTRO DEL GRUPO----------------------------------------------------
    $has_relacion = ralacionContactoGrupo($bd, $codigo_contacto, $row->CONTACTO);
    //EVALUO-------------------------------------------------------------------------------------------------------
    if ( $has_relacion == 1  ) {
        echo "<option>".$row->MOSTRAR."</option>";
    }
  }

  break;
}
//===================================================================================================================
//============================================HTML===================================================================
//===================================================================================================================
//===================================================================================================================
//============================================FUNCIONES==============================================================
//===================================================================================================================
//FUNCION PARA OBTENER SI EL CONTACTO POSEE RELACION DENTRO DEL GRUPO------------------------------------------------
 function ralacionContactoGrupo($bd, $codigo_contacto, $codigo_ralacionado)
 {
  $sql =  " SELECT COUNT(CO.CONTACTO) AS TOTAL
            FROM CONTACTOS_ORGANIZACIONES CO
            WHERE ( CO.CONTACTO = $codigo_contacto AND CO.ORGANIZACION = $codigo_ralacionado ) OR ( CO.CONTACTO = $codigo_ralacionado AND CO.ORGANIZACION = $codigo_contacto )";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  return $result['TOTAL'];
  $base->close();
 }
 //FUNCION PARA EL ARRAY DE LOS CONTACTOS RELACIONADOS AL GRUPO------------------------------------------------------
function contacRelacionadosGrupo($bd, $cod_grupo_cont)
{
  $sql = "SELECT R.CONTACTO, C.MOSTRAR
          FROM CONTACTOS_RELACIONES R
          INNER JOIN CONTACTOS C
          ON C.CODIGO = R.CONTACTO
          WHERE R.GRUPO = $cod_grupo_cont";
    $base = $bd->query($sql);
    return $base;
    $base->close();
}
//FUNCION PARA OBTENER EL CODIGO DEL GRUPO DE CONTACTOS...-----------------------------------------------------------
 function codigoGrupoContactos($bd, $tipo_contacto)
 {
  $sql =  " SELECT G.CODIGOCON
            FROM ETIQUETAS_GRUPOS G
            WHERE G.CODIGO = $tipo_contacto LIMIT 1";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  return $result['CODIGOCON'];
  $base->close();
 } 
//FUNCION PARA OBTENER EL TIPO DE CONTACTO A CONSULTAR---------------------------------------------------------------
 function tipoContactoConsultar($bd, $id_esq_lista, $id_sub_lista)
 {
  $sql =  " SELECT E.LISTA
            FROM ESQUEMAS_ESTRUCTURA E
            WHERE E.ESQUEMA = $id_esq_lista AND E.CODIGO = $id_sub_lista LIMIT 1";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  return $result['LISTA'];
  $base->close();
 } 
 //FUNCION PARA OBTENER EL ID DEL CONTACTO O ORGANIZACION-----------------------------------------------------------
 function idContactoOrganizacion($bd, $valor_padre)
 {
  $sql =  " SELECT C.CODIGO
            FROM CONTACTOS C
            WHERE C.MOSTRAR = '$valor_padre' LIMIT 1";
  $base = $bd->query($sql);
  $result = mysqli_fetch_array($base);
  return $result['CODIGO'];
  $base->close();
 } 
 //FUNCION PARA EL ARRAY DE LOS CONTACTOS RELACIONADOS AL CONTACTO
function contacRelacionados($bd, $contact)
{
  $sql = "SELECT CO.CONTACTO, CO.ORGANIZACION
          FROM CONTACTOS_ORGANIZACIONES CO
          WHERE  CO.CONTACTO = $contact OR CO.ORGANIZACION = $contact  ";
    $base = $bd->query($sql);
    return $base;
    $base->close();
}
 //FUNCION PARA EL ARRAY DE LOS DATOS DE LOS CONTATOS RELACIONADOS AL CONTACTO
function datosContacRelacionados($bd, $id_contac_rel)
{
  $sql = "SELECT C.MOSTRAR
          FROM CONTACTOS C
          LEFT JOIN CONTACTOS_RELACIONES R
          ON R.CONTACTO = C.CODIGO
          LEFT JOIN CONTACTOS_GRUPOS G
          ON R.GRUPO = G.CODIGO
          WHERE C.CODIGO = $id_contac_rel AND C.ACTIVO = 1 ORDER BY C.MOSTRAR ASC";
    $base = $bd->query($sql);
    $row = mysqli_fetch_array($base);
    return $row;
    $base->close();
}
 //FUNCION PARA EL ARRAY DE LOS DATOS DE LOS CONTATOS RELACIONADOS AL CONTACTO
function datosContacRelacionadosOrganizacion($bd, $id_contac_rel)
{
  $sql = "SELECT C.MOSTRAR
          FROM CONTACTOS C
          LEFT JOIN CONTACTOS_RELACIONES R
          ON R.CONTACTO = C.CODIGO
          LEFT JOIN CONTACTOS_GRUPOS G
          ON R.GRUPO = G.CODIGO
          WHERE C.CODIGO = $id_contac_rel AND C.ORGANIZACION = 1 AND C.ACTIVO = 1 ORDER BY C.MOSTRAR ASC";
    $base = $bd->query($sql);
    $row = mysqli_fetch_array($base);
    return $row;
    $base->close();
}
 //FUNCION PARA EL ARRAY DE LOS DATOS DE LOS CONTATOS RELACIONADOS AL CONTACTO
function datosContacRelacionadosContacto($bd, $id_contac_rel)
{
  $sql = "SELECT C.MOSTRAR
          FROM CONTACTOS C
          LEFT JOIN CONTACTOS_RELACIONES R
          ON R.CONTACTO = C.CODIGO
          LEFT JOIN CONTACTOS_GRUPOS G
          ON R.GRUPO = G.CODIGO
          WHERE C.CODIGO = $id_contac_rel AND C.CONTACTO = 1 AND C.ACTIVO = 1 ORDER BY C.MOSTRAR ASC";
    $base = $bd->query($sql);
    $row = mysqli_fetch_array($base);
    return $row;
    $base->close();
}
?>