<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
include 'conexion.php';

$atril = 0;
$accion = $_REQUEST["accion"];

date_default_timezone_set('America/Bogota');
$empresa = DevolverUnDato("SELECT emp_id FROM empresa");
$sede = DevolverUnDato("SELECT IdSede FROM sedes");

function validarcita ($idservicio, $IdPersona){
    if($IdPersona != ''){
        $conteo = DevolverUnDato("SELECT COUNT(*) FROM servicio WHERE idServicio = $idservicio AND atencioncita = 1 
        AND IdSede = $sede AND emp_id = $empresa");
        if($conteo > 0){
            $intervaloAtencion = DevolverUnDato("SELECT intervalminutos FROM configturnosperdidos");
            $tienecita = DevolverUnDato("SELECT COUNT(*) FROM cita WHERE IdPersona = $IdPersona AND FechaCita BETWEEN 
            (SELECT NOW() - INTERVAL $intervaloAtencion MINUTE) AND (SELECT DATE_FORMAT((select now()), 
            '%Y-%m-%d 23:59:59')) AND IdSede = '$sede' AND emp_id = '$empresa'");
            return $tienecita;
        }
    }
}

//
if ($accion == "PermisoTerminos"){
    $PermisoTerminos = DevolverUnDato("SELECT PermitirTerminos FROM smsatril WHERE IdSede = '$sede' AND 
    emp_id = '$empresa'");
    $validar = array("respuesta" => $PermisoTerminos);
}else if ($accion == "ValidarSelecTipTurn"){
    $permisosms = DevolverUnDato("SELECT permisosms FROM smsatril WHERE IdSede = '$sede' AND 
    emp_id = '$empresa'");
    $validar = array("respuesta" => $permisosms);
}else if ($accion == "PermisoCedula"){
    $permisoCedula = DevolverUnDato("SELECT PermitirCedula FROM smsatril WHERE IdSede = '$sede' AND 
    emp_id = '$empresa'");
    $validar = array("respuesta" => $permisoCedula);
}else if ($accion == "BuscarPersona") {
    $Cedula = $_REQUEST["Cedula"];
    $DatosPersona = DevolverUnArreglo("SELECT NombreCompleto,IdPersona,Telefono FROM personas WHERE Cedula = '$Cedula' AND 
    IdSede = '$sede' AND emp_id = '$empresa'");
    if($DatosPersona){
        $fechaActual = DevolverUnDato("SELECT CURDATE()");
        $validarEntrega = DevolverUnArreglo("SELECT id_entrega,fecha_entrega FROM entrega WHERE IdSede = '$sede' AND 
        emp_id = '$empresa' AND Cedula = '$Cedula' AND fecha_entrega >= '$fechaActual'");
        if($validarEntrega){
            $validar = array("estado" => $DatosPersona, "entrega" => $validarEntrega);
        }else{
            $validar = array("estado" => $DatosPersona, "entrega" => 0);
        }
       
    }else{
        $validar = array("estado" => "mal");
    }
}else if ($accion == "RegistrarPaciente") {
    $Cedula = $_REQUEST["cedulaR"];
    $NombreCompleto = $_REQUEST["NombreCompletoR"];
    $IdPersona = InsertDevolviendoID("INSERT INTO personas (NombreCompleto,Cedula,Sexo,Direccion,Barrio,Telefono,
    FechaNacimiento,eps,IdSede,emp_id,EstadoNube,Eliminado) VALUES ('$NombreCompleto','$Cedula','','','','','0000-00-00',
    '',$sede,$empresa,0,0)");
    $fechaActual = DevolverUnDato("SELECT CURDATE()");
    $validarEntrega = DevolverUnArreglo("SELECT id_entrega,fecha_entrega FROM entrega WHERE IdSede = '$sede' AND 
    emp_id = '$empresa' AND Cedula = '$Cedula' AND fecha_entrega >= '$fechaActual'");
    $validar = array("respuesta" => $IdPersona, "entrega" => $validarEntrega);
}else if ($accion == "RegistrarTelPaciente") {
    $IdPersona = $_REQUEST["IdPersona"];
    $telefono = $_REQUEST["telefono"];
    ///////////////////////
    hacerConsulta("UPDATE personas SET Telefono = '$telefono', EstadoNube = '0' WHERE IdPersona = '$IdPersona' AND 
    IdSede = '$sede' AND emp_id = '$empresa'");
    $validar = array("respuesta" => "Bien");
}else if ($accion == "CargarServicios") {
    $MostrarSC = $_REQUEST["MostrarSC"];
    $MostrarEntrega = $_REQUEST["MostrarEntrega"];
    //$IdEntrega = $_REQUEST["IdEntrega"];
    $hora = date("H:i:s");
    if($MostrarEntrega == '1' || $MostrarEntrega == 1){
        $respuesta = DevolverUnArreglo("SELECT * FROM servicio WHERE (Eliminado = 0 or Eliminado is null) AND 
        (VisibleDispe = 1) AND (HoraInicio < '$hora' AND HoraFin > '$hora' ) and EstadoSub = 'SERVICIO' AND 
        atencioncita != '1' AND IdSede = '$sede' AND emp_id = '$empresa'");
        $conteo = DevolverUnDato("SELECT COUNT(*) FROM servicio WHERE (Eliminado = 0 or Eliminado is null) AND 
        atencioncita != '1' AND (VisibleDispe = 1) AND (HoraInicio < '$hora' AND HoraFin > '$hora' ) and EstadoSub = 'SERVICIO' AND 
        IdSede = '$sede' AND emp_id = '$empresa'");
    }else if($MostrarSC == '1' || $MostrarSC == 1){

        $respuesta = DevolverUnArreglo("SELECT * FROM servicio WHERE (Eliminado = 0 or Eliminado is null) AND 
        (VisibleDispe = 1) AND (HoraInicio < '$hora' AND HoraFin > '$hora' ) and EstadoSub = 'SERVICIO' AND 
        IdSede = '$sede' AND emp_id = '$empresa' AND entrega != '1'");
        $conteo = DevolverUnDato("SELECT COUNT(*) FROM servicio WHERE (Eliminado = 0 or Eliminado is null) AND 
        (VisibleDispe = 1) AND (HoraInicio < '$hora' AND HoraFin > '$hora' ) and EstadoSub = 'SERVICIO' AND 
        IdSede = '$sede' AND emp_id = '$empresa' AND entrega != '1'");
    }else{
        $respuesta = DevolverUnArreglo("SELECT * FROM servicio WHERE (Eliminado = 0 or Eliminado is null) AND 
        (VisibleDispe = 1) AND  (HoraInicio < '$hora' AND HoraFin > '$hora' ) and EstadoSub = 'SERVICIO' AND 
        atencioncita != '1' AND entrega != '1' AND IdSede = '$sede' AND emp_id = '$empresa'");
        $conteo = DevolverUnDato("SELECT COUNT(*) FROM servicio WHERE (Eliminado = 0 or Eliminado is null) AND 
        (VisibleDispe = 1) AND (HoraInicio < '$hora' AND HoraFin > '$hora' ) and EstadoSub = 'SERVICIO' AND 
        atencioncita != '1' AND entrega != '1' AND IdSede = '$sede' AND emp_id = '$empresa'");
    }
    if($respuesta){
        $url = DevolverUnDato("SELECT ipservidor FROM reiniciar");
        $url = $url."/TurnoMasterV2/imagenes/IDR/";
        for ($i=0; $i <count($respuesta); $i++) { 
            if(!file_exists("../../../TurnoMasterV2/imagenes/IDR/".$respuesta[$i]["IdServicio"].$respuesta[$i]["IdServicio"].".png")){
                $respuesta[$i]["url"] = "";
            }else{
                $respuesta[$i]["url"] = "../../../TurnoMasterV2/imagenes/IDR/".$respuesta[$i]["IdServicio"].$respuesta[$i]["IdServicio"].".png";
            }
        }
    }
    // print_r($respuesta);
    // exit();
    $validar = array("estado" => $respuesta, "conteo" => $conteo);
}else if ($accion == "ClicServicio") {
    $idservicio = $_REQUEST["idservicio"];
    $contarRela = DevolverUnDato("SELECT count(*) FROM relacionservicios WHERE servicio = $idservicio AND 
    subservicio != $idservicio AND (Eliminado = 0 OR Eliminado IS NULL) AND IdSede = '$sede' AND emp_id = '$empresa'");
    $servicio = DevolverUnArreglo("SELECT * FROM servicio WHERE idservicio = $idservicio AND IdSede = '$sede' AND 
    emp_id = '$empresa'");
    $RelacionServicio = DevolverUnArreglo("SELECT * FROM relacionservicios WHERE servicio = $idservicio AND 
    subservicio = $idservicio AND (Eliminado = 0 OR Eliminado is NULL) AND IdSede = '$sede' AND emp_id = '$empresa'");
    $validar = array("ContarSubservicio" => $contarRela, "Servicio" => $servicio, "Relacion" => $RelacionServicio);
}else if ($accion == "CargarSubservicios") {
    $MostrarSC = $_REQUEST["MostrarSC"];
    $idservicio = $_REQUEST["idservicio"];
    $MostrarEntrega = $_REQUEST["MostrarEntrega"];
    $hora = date("H:i:s");
    if($MostrarEntrega == '1' || $MostrarEntrega == 1){
        $respuesta = DevolverUnArreglo("SELECT servicio.idservicio,servicio.Servicio AS servicio,
        relacionservicios.idrelacionservicio FROM relacionservicios JOIN servicio ON (servicio.IdServicio = 
        relacionservicios.subservicio) WHERE relacionservicios.servicio = $idservicio AND 
        servicio.atencioncita != '1' AND relacionservicios.subservicio != $idservicio AND 
        (relacionservicios.Eliminado = 0 OR relacionservicios.Eliminado IS NULL) AND servicio.VisibleDispe AND 
        relacionservicios.IdSede = '$sede' AND relacionservicios.emp_id = '$empresa'");
        //
        $conteo = DevolverUnDato("SELECT count(*) AS conteo FROM relacionservicios JOIN servicio ON 
        (servicio.IdServicio = relacionservicios.subservicio) WHERE relacionservicios.servicio = $idservicio AND 
        servicio.atencioncita != '1' AND relacionservicios.subservicio != $idservicio AND (relacionservicios.Eliminado = 0 OR 
        relacionservicios.Eliminado IS NULL) AND servicio.VisibleDispe AND relacionservicios.IdSede = '$sede' AND 
        relacionservicios.emp_id = '$empresa'");
    }elseif($MostrarSC == '1' || $MostrarSC == 1){
        $respuesta = DevolverUnArreglo("SELECT servicio.idservicio,servicio.Servicio AS servicio,
        relacionservicios.idrelacionservicio FROM relacionservicios JOIN servicio ON (servicio.IdServicio = 
        relacionservicios.subservicio) WHERE relacionservicios.servicio = $idservicio AND 
        relacionservicios.subservicio != $idservicio AND (relacionservicios.Eliminado = 0 OR 
        relacionservicios.Eliminado IS NULL) AND servicio.VisibleDispe AND relacionservicios.IdSede = '$sede' AND 
        relacionservicios.emp_id = '$empresa'");
        //
        $conteo = DevolverUnDato("SELECT count(*) AS conteo FROM relacionservicios JOIN servicio ON 
        (servicio.IdServicio = relacionservicios.subservicio) WHERE relacionservicios.servicio = $idservicio AND 
        relacionservicios.subservicio != $idservicio AND (relacionservicios.Eliminado = 0 OR 
        relacionservicios.Eliminado IS NULL) AND servicio.VisibleDispe AND relacionservicios.IdSede = '$sede' AND 
        relacionservicios.emp_id = '$empresa'");
    }else{
        $respuesta = DevolverUnArreglo("SELECT servicio.idservicio,servicio.Servicio AS servicio,
        relacionservicios.idrelacionservicio FROM relacionservicios JOIN servicio ON (servicio.IdServicio = 
        relacionservicios.subservicio) WHERE relacionservicios.servicio = $idservicio AND 
        relacionservicios.subservicio != $idservicio AND (relacionservicios.Eliminado = 0 OR 
        relacionservicios.Eliminado IS NULL) AND (servicio.HoraInicio < '$hora' AND servicio.HoraFin > '$hora' ) AND 
        servicio.atencioncita != '1' AND servicio.entrega != '1' AND servicio.VisibleDispe = '1' AND 
        relacionservicios.IdSede = '$sede' AND relacionservicios.emp_id = '$empresa'");
        $conteo = DevolverUnDato("SELECT count(*) AS conteo FROM relacionservicios JOIN servicio ON 
        (servicio.IdServicio = relacionservicios.subservicio) WHERE relacionservicios.servicio = $idservicio AND 
        relacionservicios.subservicio != $idservicio AND (relacionservicios.Eliminado = 0 OR 
        relacionservicios.Eliminado IS NULL) AND (servicio.HoraInicio < '$hora' AND servicio.HoraFin > '$hora') AND 
        servicio.atencioncita != '1' AND servicio.entrega != '1' AND servicio.VisibleDispe AND 
        relacionservicios.IdSede = '$sede' AND relacionservicios.emp_id = '$empresa'");
    }
    
    if($respuesta){
        $url = DevolverUnDato("SELECT ipservidor FROM reiniciar");
        $url = $url."/TurnoMasterV2/imagenes/IDR/";
        for ($i=0; $i <count($respuesta); $i++) { 
            if(!file_exists("../../../TurnoMasterV2/imagenes/IDR/".$respuesta[$i]["idservicio"].$respuesta[$i]["idservicio"].".png")){
                $respuesta[$i]["url"] = "";
            }else{
                $respuesta[$i]["url"] = "../../../TurnoMasterV2/imagenes/IDR/".$respuesta[$i]["idservicio"].$respuesta[$i]["idservicio"].".png";
            }
        }
    }
    
    $validar = array("SubServicios" => $respuesta, 'Conteo' => $conteo);
}else if ($accion == "SeleccionarPrioridades") {
    $idservicio = $_REQUEST["idservicio"];
    $Prioridad = DevolverUnDato("SELECT Prioridad FROM servicio WHERE IdServicio = '".$idservicio."' AND 
    IdSede = '$sede' AND emp_id = '$empresa'");
    $validar = array("prioridades" => $Prioridad);
}else if ($accion == "PrevisualTurno"){
    $Prioridad = $_REQUEST["prioridad"];
    $idservicio = $_REQUEST["idservicio"];
    $idrelacionServicio = $_REQUEST["idrelacionServicio"];
    $cedula = $_REQUEST["cedula"];
    $nombrecliente = $_REQUEST["nombrecliente"];
    $IdPersona = $_REQUEST["IdPersona"];
    validarcita ($idservicio, $IdPersona);
    $Servicio = DevolverUnDato("SELECT servicio FROM servicio WHERE idservicio = $idservicio AND IdSede = '$sede' AND 
    emp_id = '$empresa'");
    $idServicioPrioridad = DevolverUnDato("SELECT IdServicio FROM servicio WHERE Servicio = 'PRIORIDAD' AND 
    IdSede = '$sede' AND emp_id = '$empresa'");
    if ($Prioridad != 1)
        $idServicioPrioridad = $idservicio;
        $consecutivo = DevolverUnDato("SELECT Secuencia FROM servicio WHERE idservicio = $idServicioPrioridad AND 
        IdSede = '$sede' AND emp_id = '$empresa'");
        
        $consecutivo += 1;
        $prefijo = DevolverUnDato("SELECT Prefijo from servicio WHERE idservicio = $idServicioPrioridad AND 
        IdSede = '$sede' AND emp_id = '$empresa'");
        $limite = DevolverUnDato("SELECT Cont_max from servicio WHERE idservicio = $idServicioPrioridad AND 
        IdSede = '$sede' AND emp_id = '$empresa'");

    if (!($consecutivo <= $limite)) {
        $Cont_min = DevolverUnDato("SELECT Cont_min from servicio WHERE idservicio = $idServicioPrioridad AND 
        IdSede = '$sede' AND emp_id = '$empresa'");
        $consecutivo = DevolverUnDato("SELECT Secuencia from servicio WHERE idservicio = $idServicioPrioridad AND 
        IdSede = '$sede' AND emp_id = '$empresa'");
        $consecutivo += 1;
    }
 
    if ($consecutivo >= 100) {
        $Turno = $prefijo . "-" . $consecutivo;
    } else if ($consecutivo >= 10) {
        $Turno = $prefijo . "-0" . $consecutivo;
    } else {
        $Turno = $prefijo . "-00" . $consecutivo;
    }

    try {
        $fecha = date("Y-m-d");
        $cantidadTurnosPedidos = DevolverUnArreglo("SELECT count(IdAuditoria) as c FROM auditoria WHERE 
        IdServicio = $idservicio AND FechaLlegada between '$fecha 00:00:00' AND '$fecha 23:59:59' AND IdSede = '$sede' 
        AND emp_id = '$empresa'");
        $cantidadTP = 0;
        if (count($cantidadTurnosPedidos) > 0) { $cantidadTP = (int) $cantidadTurnosPedidos[0]['c'];};
        $fecha = date("Y-m-d H:i:s");
        $intervaloAtencion = DevolverUnDato("SELECT intervalminutos FROM configturnosperdidos AND IdSede = '$sede' 
        AND emp_id = '$empresa'");
        if(empty($IdPersona)){
            $tienecita = DevolverUnDato("SELECT count(*) FROM cita WHERE IdPersona = $IdPersona AND IdSede = '$sede' 
            AND emp_id = '$empresa' AND FechaCita BETWEEN (SELECT NOW() - INTERVAL $intervaloAtencion MINUTE) AND 
            (SELECT DATE_FORMAT((SELECT NOW()), '%Y-%m-%d 23:59:59'))");
            if ($tienecita > 0){
                $tienecita = 1;
            }else{
                $tienecita = 0;
            }
        }else{
            $tienecita = 0;
        }
        $validar = array("estado" => "Listo", "turno" => $Turno, "servicio" => $Servicio);
    } catch (Exception $ex) {
        $validar = array("estado" => "Error");
    }
}else if ($accion == "CancelarTurno") {
    $turno = $_REQUEST["turno"];
    hacerConsulta("DELETE FROM auditoria WHERE Turno = '$turno'");  
    hacerConsulta("DELETE FROM tablatemporal WHERE Turno = '$turno'");
    $validar = array("estado" => "ok");
}else if ($accion == "SacarTurno") {  
    $Prioridad = $_REQUEST["prioridad"];
    $idservicio = $_REQUEST["idservicio"];
    $idrelacionServicio = $_REQUEST["idrelacionServicio"];
    $nivel = $_REQUEST["nivel"];
    if($_REQUEST["nombrecliente"] == ''){$nombrecliente = 'Sin Registro';}else{$nombrecliente = $_REQUEST["nombrecliente"];}
    if($_REQUEST["cedula"] == ''){$cedula = 'Sin Registro';}else{$cedula = $_REQUEST["cedula"];}
    if(empty($_REQUEST["IdPersona"] == '')){$IdPersona = '0';}else{$IdPersona = $_REQUEST["IdPersona"];}
    // VALIDAR SI EL SERVICIO ES DE CITAS
    $citaDato = 0;
    if($IdPersona!='0'){
        $citaDato = validarcita($idservicio, $IdPersona);
    };
    
    
     if($citaDato != 0){
         $validar = array("estado" => "nocita");
     }else{
        $Servicio = DevolverUnDato("SELECT servicio FROM servicio WHERE idservicio = $idservicio AND IdSede = '$sede' AND 
        emp_id = '$empresa'");
        $idServicioPrioridad = DevolverUnDato("SELECT IdServicio FROM servicio WHERE Servicio = 'PRIORIDAD' AND 
        IdSede = '$sede' AND emp_id = '$empresa'");
        if ($Prioridad != 1)
            $idServicioPrioridad = $idservicio;
            $consecutivo = DevolverUnDato("SELECT Secuencia FROM servicio WHERE idservicio = $idServicioPrioridad 
            AND IdSede = '$sede' AND emp_id = '$empresa'");
            
            $Mensaje = DevolverUnDato("SELECT mensaje FROM smsatril");
            $consecutivo += 1;
            $prefijo = DevolverUnDato("SELECT Prefijo FROM servicio WHERE idservicio = $idServicioPrioridad AND 
            IdSede = '$sede' AND emp_id = '$empresa'");
            $limite = DevolverUnDato("SELECT Cont_max FROM servicio WHERE idservicio = $idServicioPrioridad AND 
            IdSede = '$sede' AND emp_id = '$empresa'");
        
        if (!($consecutivo <= $limite)) {
            $Cont_min = DevolverUnDato("SELECT Cont_min FROM servicio WHERE idservicio = $idServicioPrioridad AND 
            IdSede = '$sede' AND emp_id = '$empresa'");
            hacerConsulta("UPDATE servicio SET Secuencia = ".$Cont_min.", VisibleDispe = '0', control_limite = '1' WHERE idservicio = $idServicioPrioridad 
            AND IdSede = '$sede' AND emp_id = '$empresa'");
            $consecutivo = DevolverUnDato("SELECT Secuencia FROM servicio WHERE idservicio = $idServicioPrioridad 
            AND IdSede = '$sede' AND emp_id = '$empresa'");
            $consecutivo += 1;
        }
    
        if ($consecutivo >= 100) {
            $Turno = $prefijo . "-" . $consecutivo;
        } else if ($consecutivo >= 10) {
            $Turno = $prefijo . "-0" . $consecutivo;
        } else {
            $Turno = $prefijo . "-00" . $consecutivo;
        }
        try {
            $fecha = date("Y-m-d");
            $cantidadTurnosPedidos = DevolverUnArreglo("SELECT count(IdAuditoria) AS c FROM auditoria WHERE 
            IdServicio = $idservicio AND FechaLlegada BETWEEN '$fecha 00:00:00' AND '$fecha 23:59:59' AND 
            IdSede = '$sede' AND emp_id = '$empresa'");
            $cantidadTP = 0;
            if (count($cantidadTurnosPedidos) > 0) {
                $cantidadTP = (int) $cantidadTurnosPedidos[0]['c'];
            }
            
            $fecha = date("Y-m-d H:i:s");
            hacerConsulta("UPDATE servicio SET Secuencia = ".$consecutivo." WHERE idservicio = $idServicioPrioridad 
            AND IdSede = '$sede' AND emp_id = '$empresa'");
            $IdAuditoria = InsertDevolviendoID("INSERT INTO auditoria (IdServicio,IdUsuario,Turno,IdPersona,
            IdPersonaAtril,IdEncuesta,Estado,FechaLlegada,FechaLlamado,Fechasalio,NumeroLlamados,Observacion,
            ObservacionAsesor,ObservacionRetraso,EstadoNube,idrelacionservicio,FLlamadoDocGeneral,FSalioDocGeneral,
            ObservacionDoctorGeneral,idDoctorGeneral,IdTurnoAgendado,Eliminado,nivel,IdSede,emp_id,EstadoQR) VALUES 
            ('$idservicio','0','$Turno','$IdPersona','$IdPersona','0','NORMAL','$fecha','0000-00-00 00:00:00',
            '0000-00-00 00:00:00','0','Sin Observacion','Sin Observacion','Sin Observacion','0','$idrelacionServicio',
            '0000-00-00 00:00:00','0000-00-00 00:00:00','Sin Observacion','0','0','0','$nivel','$sede','$empresa','0')");
            $intervaloAtencion = DevolverUnDato("SELECT intervalminutos FROM configturnosperdidos WHERE IdSede = '$sede' AND 
            emp_id = '$empresa'");
            if(!empty($IdPersona) || $IdPersona != ''){
                $tienecita = DevolverUnDato("SELECT COUNT(*) FROM cita WHERE IdPersona = $IdPersona AND IdSede = '$sede' 
                AND emp_id = '$empresa' AND FechaCita BETWEEN (SELECT NOW() - INTERVAL $intervaloAtencion MINUTE) and 
                (SELECT DATE_FORMAT((select now()), '%Y-%m-%d 23:59:59'))");
                if ($tienecita > 0){
                    $tienecita = 1;
                }else{
                    $tienecita = 0;
                }
            }else{
                $tienecita = 0;
            }
            hacerConsulta("INSERT INTO tablatemporal (IdServicio,Turno,Estado,Dato1,Dato2,LlamadoPor,Prioridad,FechaLlegada,
            IdAuditoria,Observacion,FechaLlamado,UltimoLlamado,EstadoLlamado,transferenciaUsuario,IdCita,
            EstadoPrioridadDoctor,NombrePaciente,CedulaPersona,IdPersona,EstadoNube,tienecita,IdTurnoAgendado,IdSede,emp_id) 
            VALUES (".$idservicio.",'".$Turno."','NORMAL','0','0','ASESOR',".$Prioridad.",'".$fecha."',".$IdAuditoria.",
            'Sin Observacion','0000-00-00 00:00:00','0','0','0','0','0','$nombrecliente','$cedula','$IdPersona','0',
            '$tienecita','0','$sede','$empresa')");
            if($IdPersona != '0'){
                //validar si es un servicio de entrega.
                $ServicioEntrega = DevolverUnDato("SELECT entrega FROM servicio WHERE IdSede = '$sede' AND 
                emp_id = '$empresa' AND IdServicio  = '$idservicio'");
                if($ServicioEntrega){
                    hacerConsulta("DELETE FROM entrega WHERE IdSede = '$sede' AND emp_id = '$empresa' AND 
                    Cedula = '$cedula'");
                }
            }
            
            $fechaActual = DevolverUnDato("SELECT DATE(NOW())");
            $turnosfaltan = DevolverUnDato("SELECT COUNT(*) FROM auditoria WHERE IdSede = '".$sede."' and emp_id = '".$empresa."' and FechaLlegada BETWEEN '$fechaActual 00:00:00' AND '$fechaActual 23:59:59' and Estado = 'NORMAL' and IdServicio = '".$idservicio."' and IdAuditoria < '$Turno'");
            $tiempomax = DevolverUnDato("SELECT tiempomax FROM servicio WHERE IdServicio = $idservicio");
            $asesoresatend = DevolverUnDato("SELECT COUNT(*) FROM (SELECT Cedula FROM usuario JOIN relacionususer WHERE usuario.Estado = 'DISPONIBLE' AND relacionususer.IdServicio = '".$idservicio."' GROUP BY usuario.IdUsuario) num;");

            if ($asesoresatend == "0") {
                $tiempofaltante =  ($turnosfaltan * $tiempomax);
            }else{
                $tiempofaltante =  ($turnosfaltan * $tiempomax) / $asesoresatend;
                $tiempofaltante = intval($tiempofaltante);
            }

            $validar = array(
                "estado" => "Listo",
                "turno" => $Turno,
                "servicio" => $Servicio,
                "mensaje" => $Mensaje,
                "idturno" => $IdAuditoria,
                "idservicio" => $idservicio,
                "tiempofaltante" => $tiempofaltante
            );
        } catch (Exception $ex) {
            $validar = array("estado" => "Error");
        }
    }
    
}else if ($accion == "CargaInicial") {
    ReiniciarTurnos($sede);
    $validar = array("estado" => "Hecho Iniciado");
}else if ($accion == "Fecha"){
    $fecha = DevolverUnDato("SELECT NOW()");
    $validar = array("respuesta" => $fecha);
}else if ($accion == "ValidarTercerNivel"){
    $dato = DevolverUnDato("SELECT PermitirNv FROM smsatril");
    if($dato){
        $validar = array("respuesta" => $dato);
    }else{
        $validar = array("respuesta" => "0");
    }
}else if ($accion == "CargarOpciones"){
    $opciones = DevolverUnArreglo("SELECT * FROM opciones_idr ORDER BY oidr_nombre DESC");
    if($opciones){
        $validar = array("respuesta" => $opciones);
    }else{
        $validar = array("respuesta" => "Error");
    }
}else if ($accion == "CargarSubOpciones"){
    $opciones = DevolverUnArreglo("SELECT * FROM opciones_idr ORDER BY oidr_nombre DESC");
    $subOpciones = DevolverUnArreglo("SELECT * FROM sub_opciones_id WHERE oidr_id = '".$opciones[0]["oidr_id"]."' ORDER BY soidr_nombre DESC");
    if($subOpciones){
        $validar = array("respuesta" => $subOpciones, "opcion" => $opciones[0]["oidr_nombre"]);
    }else{
        $validar = array("respuesta" => "Error");
    }
}

function ReiniciarTurnos($sede)
{
    global  $sede;
    global  $empresa;
    $permiso = DevolverUnDato("SELECT permiso FROM reiniciar WHERE IdSede = $sede");
    if ($permiso == 0) {
        return;
    }
    $fechaBD = DevolverUnDato("SELECT fecha FROM reiniciar WHERE IdSede = $sede");
    $fechaActual = DevolverUnDato("SELECT CURDATE()");
    if ($fechaBD < $fechaActual) {
        hacerConsulta("UPDATE reiniciar SET fecha = '$fechaActual' WHERE IdSede = $sede");
        $servicios = DevolverUnArreglo("SELECT * FROM servicio WHERE IdSede = '$sede' AND emp_id = '$empresa'");
        foreach ($servicios as $value) {
            hacerConsulta("UPDATE servicio SET secuencia = " . $value['Cont_min'] . " WHERE IdSede = '$sede' AND 
            emp_id = '$empresa' AND idservicio = " . $value['IdServicio']);
            if($value['control_limite'] == '1'){
                hacerConsulta("UPDATE servicio SET control_limite = '0', VisibleDispe = '1' WHERE IdSede = '$sede' AND 
                    emp_id = '$empresa' AND idservicio = " . $value['IdServicio']);
            }
        }
        hacerConsulta("DELETE FROM tablatemporal WHERE IdSede = '$sede' AND emp_id = '$empresa'");
        hacerConsulta("DELETE FROM tv WHERE IdSede = '$sede'");
    } else {
    }
}

if ($accion == "Reportarusuarios") {
    hacerConsulta("UPDATE usuario SET estado = 'FUERA DE LINEA' WHERE registro < (SELECT NOW() - INTERVAL 1 MINUTE) IdSede = '$sede' AND emp_id = '$empresa'");
    $validar = array("estado" => "Hecho Iniciado");
}

echo json_encode($validar, JSON_FORCE_OBJECT);