Query($sql); if ( $resultado ) { $resultado = $GLOBALS['dbSQL']->getAll(); if ( count($resultado) > 0 ) { if( intval($resultado[0]["TST"]) === 0) { //TURNO NO CONFIRMADO $resultado[0]["st"] = T_READY; } elseif( intval($resultado[0]["TST"]) === 1) { //TURNO CONFIRMADO $resultado[0]["st"] = T_CONF; } else { //TURNO NO CONFIRMADO (campo estado en NULL, anteriores a este feature) $resultado[0]["st"] = T_READY; } return $resultado; } else { //Buscarlo en auditoria $sql = "SELECT e.esp_denom AS Esp , m.med_nombre AS Med , CONVERT(VARCHAR(10),t.tur_fecha,103) AS Fec , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , t.tur_numero AS TurId , o.[obs_denom] as Obs , op.[obsp_denom] as ObsPlan , m.med_webcoment AS MedMsg , m.med_turnos_web AS turnero , (CASE WHEN t.tur_telemed IS NULL THEN 0 ELSE 1 END) AS Telemed ,c.cli_nombre AS Pac ,c.cli_dni AS Doc ,t.tur_numero AS TNum ,t.tur_confirmado as TST FROM turnos_auditoria AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN clientes AS c ON c.cli_codigo = t.cli_codigo INNER JOIN obrasoc as o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan as op ON t.obs_codigo = op.obs_codigo AND t.obsp_cod = op.obsp_cod LEFT JOIN especial AS e ON m.esp_codigo = e.esp_codigo LEFT JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo WHERE t.tur_token = '".addslashes($token)."'"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $resultado = $GLOBALS['dbSQL']->getAll(); if ( count($resultado) > 0 ) { //TURNO CANCELADO/BORRADO $resultado[0]["st"] = T_CANC; return $resultado; } else { //TURNO NO ENCONTRADO $resultado[0]["st"] = T_ERROR; } } else { //TURNO NO ENCONTRADO $resultado[0]["st"] = T_ERROR; } } } return false; } function getComTurnoByID($turnoId) { $sql = "SELECT e.esp_denom AS Esp , m.med_nombre AS Med , CONVERT(VARCHAR(10),t.tur_fecha,103) AS Fec , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , t.tur_numero AS TurId , o.[obs_denom] as Obs , op.[obsp_denom] as ObsPlan , m.med_webcoment AS MedMsg , m.med_turnos_web AS turnero , (CASE WHEN t.tur_telemed IS NULL THEN 0 ELSE 1 END) AS Telemed ,c.cli_nombre AS Pac ,c.cli_dni AS Doc ,t.tur_numero AS TNum ,t.tur_confirmado as TST FROM turnos AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN clientes AS c ON c.cli_codigo = t.cli_codigo INNER JOIN obrasoc as o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan as op ON t.obs_codigo = op.obs_codigo AND t.obsp_cod = op.obsp_cod LEFT JOIN especial AS e ON m.esp_codigo = e.esp_codigo LEFT JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo WHERE t.tur_numero = '".addslashes($turnoId)."'"; //print_r($sql);die("----------"); $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $resultado = $GLOBALS['dbSQL']->getAll(); if ( count($resultado) > 0 ) { if( intval($resultado[0]["TST"]) === 0) { //TURNO NO CONFIRMADO $resultado[0]["st"] = T_READY; } elseif( intval($resultado[0]["TST"]) === 1) { //TURNO CONFIRMADO $resultado[0]["st"] = T_CONF; } else { //TURNO NO CONFIRMADO (campo estado en NULL, anteriores a este feature) $resultado[0]["st"] = T_READY; } return $resultado; } else { //Buscarlo en auditoria $sql = "SELECT e.esp_denom AS Esp , m.med_nombre AS Med , CONVERT(VARCHAR(10),t.tur_fecha,103) AS Fec , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , t.tur_numero AS TurId , o.[obs_denom] as Obs , op.[obsp_denom] as ObsPlan , m.med_webcoment AS MedMsg , m.med_turnos_web AS turnero , (CASE WHEN t.tur_telemed IS NULL THEN 0 ELSE 1 END) AS Telemed ,c.cli_nombre AS Pac ,c.cli_dni AS Doc ,t.tur_numero AS TNum ,t.tur_confirmado as TST FROM turnos_auditoria AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN clientes AS c ON c.cli_codigo = t.cli_codigo INNER JOIN obrasoc as o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan as op ON t.obs_codigo = op.obs_codigo AND t.obsp_cod = op.obsp_cod LEFT JOIN especial AS e ON m.esp_codigo = e.esp_codigo LEFT JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo WHERE t.tur_numero = '".addslashes($turnoId)."'"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $resultado = $GLOBALS['dbSQL']->getAll(); if ( count($resultado) > 0 ) { //TURNO CANCELADO/BORRADO $resultado[0]["st"] = T_CANC; return $resultado; } else { //TURNO NO ENCONTRADO $resultado[0]["st"] = T_ERROR; } } else { //TURNO NO ENCONTRADO $resultado[0]["st"] = T_ERROR; } } } return false; } function getComTurno(&$turnoInfo) { if( isset($_REQUEST["tid"]) && !empty($_REQUEST["tid"]) && !is_null($_REQUEST["tid"]) ) { $token = $_REQUEST["tid"]; $turnoInfo = getComTurnoByToken($token); if( $turnoInfo ) { return true; } } return false; } function getComTurnoInfo(&$resultInfo) { $turnoInfo = false; $resultado = getComTurno($turnoInfo); if( $resultado ) { //Retornar informacion del Turno $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"turno" => $turnoInfo ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar la informción del turno turno"; } return true; } function setComTurnoEstado($turnoId) { //ESTA FUNCION SOLO DEBE SER LLAMADA DESDE LA MINI WEB DE CONFIRMACION //YA QUE EL USUARIO QUE SE GRABA ES EL DEL CLIENTE (EN REALIDAD EL 99-WEB)!!!!!!!!!!! $sql = "UPDATE turnos SET tur_confirmado = 1, tur_fecha_confirmacion = GETDATE(), usu_codigo_confirmado = 99 WHERE tur_numero = '".addslashes($turnoId)."'"; //print_r($sql);print_r("\n");//die; $resultado = $GLOBALS['dbSQL']->Query($sql,true); if ( $resultado ) { return true; } return false; } function setComTurnoConfirmarEstado($flagWhatsapp=false) { //ESTA FUNCION SOLO DEBE SER LLAMADA DESDE LA MINI WEB DE CONFIRMACION //YA QUE EL USUARIO QUE SE GRABA ES EL DEL CLIENTE (EN REALIDAD EL 99-WEB)!!!!!!!!!!! if( isset($_REQUEST["tid"]) && !empty($_REQUEST["tid"]) && !is_null($_REQUEST["tid"])&& isset($_REQUEST["st"]) && !empty($_REQUEST["st"]) && !is_null($_REQUEST["st"]) ) { $token = $_REQUEST["tid"]; if(!$flagWhatsapp) { $turnoInfo = getComTurnoByToken($token); if( $turnoInfo ) { if( intval($_REQUEST["st"])=== AC_CONF ) { if( $turnoInfo[0]["st"] == T_READY ) { $res = setComTurnoEstado($turnoInfo[0]["TurId"]); return ($res?T_CONF:T_ERROR_DB); } else { //Error: Turno ya esta confirmado, no hacer nada return T_CONF; } } elseif( intval($_REQUEST["st"])=== AC_CANC ) { if( $turnoInfo[0]["st"] == T_READY || $turnoInfo[0]["st"] == T_CONF ) { $_REQUEST["idtur"] = $turnoInfo[0]["TurId"]; $_REQUEST["dni"] = $turnoInfo[0]["Doc"]; $res = setCancelarTurno(); return ($res?T_CANC:T_ERROR_DB); } else { //Error: El turno ya esta cancelado Turno, no hacer nada return T_ERROR; } } else { //Error: accion sobre el turno no existe return T_ERROR; } } } else { $turnoInfo = getComTurnoByID($token); //print_r($turnoInfo);die; if( $turnoInfo ) { if( intval($_REQUEST["st"])=== AC_CONF ) { if( $turnoInfo[0]["st"] == T_READY ) { $res = setComTurnoEstado($turnoInfo[0]["TurId"]); return ($res?T_CONF:T_ERROR_DB); } else { //Error: Turno ya esta confirmado, no hacer nada return T_CONF; } } elseif( intval($_REQUEST["st"])=== AC_CANC ) { if( $turnoInfo[0]["st"] == T_READY || $turnoInfo[0]["st"] == T_CONF ) { $_REQUEST["idtur"] = $turnoInfo[0]["TurId"]; $_REQUEST["dni"] = $turnoInfo[0]["Doc"]; $res = setCancelarTurno(); return ($res?T_CANC:T_ERROR_DB); } else { //Error: El turno ya esta cancelado Turno, no hacer nada return T_ERROR; } } else { //Error: accion sobre el turno no existe return T_ERROR; } } } } return T_ERROR; } function setComTurnoConfirmarEstadoMasivo(&$resultInfo) { if( isset($_REQUEST["lsttur"]) && !empty($_REQUEST["lsttur"]) && !is_null($_REQUEST["lsttur"]) && isset($_REQUEST["token"]) && !is_null($_REQUEST["token"]) ) { $tokenInfo = false; $result = false; $userId = false; $continue = Acl::validateToken($_REQUEST["token"],$tokenInfo,$result); if( $result == Acl::TOKEN_VALID ) { $userId = $tokenInfo->uid; $continue = true; } elseif( $result == Acl::TOKEN_EXPIRED ) { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } else { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } //---------------------------------- if( $continue ) { $lstTurnos = $_REQUEST["lsttur"]; // $sql = "UPDATE turnos // SET tur_confirmado = 1 // WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; $sql = "UPDATE turnos SET tur_confirmado = 1, tur_fecha_confirmacion = GETDATE(), usu_codigo_confirmado = ".$userId." WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; //print_r($sql); $resultado = $GLOBALS['dbSQL']->Query($sql,true); if ( $resultado ) { return true; } else { $resultInfo['code'] = -100; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL ACTUALIZAR LOS REGISTROS. INTENTE MAS TARDE."; } } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function setComTurnoConfirmar(&$resultInfo,$flagWhatsapp=false) { //$turnoInfo = false; //$resultado = setComTurnoConfirmarEstado($turnoInfo); $resultado = setComTurnoConfirmarEstado($flagWhatsapp); if( $resultado ) { //Retornar informacion del Turno $resultInfo['code'] = 0; $resultInfo['data'] = array("st" => $resultado); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar la información del turno"; } return true; } function setComTurnoConfirmarMasivo(&$resultInfo) { //$turnoInfo = false; $resultado = setComTurnoConfirmarEstadoMasivo($resultInfo); if( $resultado ) { //Retornar informacion del Turno $resultInfo['code'] = 0; $resultInfo['data'] = array("resultCode" => 0); } /*else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al confirmar los turnos seleccionados"; }*/ return true; } function getAprossCod() { $sql = "SELECT obs_codigo_apross FROM empresa"; $resultado = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$resultado ) { return false; } $resultado = $GLOBALS['dbSQL']->getAll(); if( count($resultado) > 0 ) { return $resultado[0]['obs_codigo_apross']; } return -1; } function getComTurnos() { if( ( isset($_REQUEST["pd"]) && !is_null($_REQUEST["pd"]) && is_numeric($_REQUEST["pd"])&& isset($_REQUEST["ph"]) && !is_null($_REQUEST["ph"]) && is_numeric($_REQUEST["ph"]) ) || ( isset($_REQUEST["sd"]) && !is_null($_REQUEST["sd"]) && is_numeric($_REQUEST["sd"]) && isset($_REQUEST["sh"]) && !is_null($_REQUEST["sh"]) && is_numeric($_REQUEST["sh"]) ) || ( isset($_REQUEST["fd"]) && !empty($_REQUEST["fd"]) && !is_null($_REQUEST["fd"]) && isset($_REQUEST["fh"]) && !empty($_REQUEST["fh"]) && !is_null($_REQUEST["fh"]) ) || ( isset($_REQUEST["frd"]) && !empty($_REQUEST["frd"]) && !is_null($_REQUEST["frd"]) && isset($_REQUEST["frh"]) && !empty($_REQUEST["frh"]) && !is_null($_REQUEST["frh"]) ) || ( isset($_REQUEST["prlst"]) && !empty($_REQUEST["prlst"]) && !is_null($_REQUEST["prlst"]) ) ) { $tablaAs = "t."; //Medico $flagMedico = false; if( isset($_REQUEST["pd"])&&intval($_REQUEST["pd"])!==(-1)) { $flagMedico = true; } //Paciente $flagPaciente = false; if( isset($_REQUEST["pad"])&&intval($_REQUEST["pad"])!==(-1)) { $flagPaciente = true; } //Fecha Turno $flagFechaTurno = false; if(isset($_REQUEST["fd"])&&intval($_REQUEST["fd"])!==(-1)) { $flagFechaTurno = true; } //Fecha Registracion $flagFechaRegTurno = false; if(isset($_REQUEST["frd"])&&intval($_REQUEST["frd"])!==(-1)) { $flagFechaRegTurno = true; } //Seguro Medico $flagSegMedico = false; if(isset($_REQUEST["sd"])&&intval($_REQUEST["sd"])!==(-1)) { $flagSegMedico = true; } $flagFecha = false; if( isset($_REQUEST["fwf"]) && !is_null($_REQUEST["fwf"]) && is_numeric($_REQUEST["fwf"]) && intval($_REQUEST["fwf"])===1 ) { $flagFecha = true; } $flagPracticas = false; if( isset($_REQUEST["prlst"]) && !is_null($_REQUEST["prlst"]) && $_REQUEST["prlst"]!=-1 ) { //print_r($_REQUEST["prlst"]);die; $pralst = ''; $plst = explode(";",$_REQUEST["prlst"]); for($i=0;$iformat('Y-m-d'))); $hasta = date("Y-m-d",strtotime($rango[1]->format('Y-m-d'))); } if($flagFechaRegTurno) { $rango = array(); $rango[0] = DateTime::createFromFormat('d/m/Y', $_REQUEST["frd"]); $rango[1] = DateTime::createFromFormat('d/m/Y', $_REQUEST["frh"]); $desdeFR = date("Y-m-d",strtotime($rango[0]->format('Y-m-d'))); $hastaFR = date("Y-m-d",strtotime($rango[1]->format('Y-m-d'))); } $tablaAs = "t."; $flagApross = false; $flagAprossTipo = APROSS_TIPO_TURNO; $obsaprosscod = -1; if( isset($_REQUEST["ap"]) && !is_null($_REQUEST["ap"]) && is_numeric($_REQUEST["ap"]) && intval($_REQUEST["ap"])===1 ) { $flagApross = true; $obsaprosscod = getAprossCod(); $tablaAs = "t."; if( isset($_REQUEST["tp"]) && !is_null($_REQUEST["tp"]) && is_numeric($_REQUEST["tp"]) && intval($_REQUEST["tp"])>=APROSS_TIPO_TURNO && intval($_REQUEST["tp"])<=APROSS_TIPO_GUARDIA ) { $flagAprossTipo = intval($_REQUEST["tp"]); // if($flagAprossTipo == APROSS_TIPO_PRACTICA) // { // $tablaAs = "p."; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$tablaAs = "t.";}break; case APROSS_TIPO_PRACTICA: {$tablaAs = "p.";}break; case APROSS_TIPO_GUARDIA: {$tablaAs = "g.";}break; case APROSS_TIPO_INTERNACION: {$tablaAs = "oi.";}break; } } } /* $periodo = " ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; $params = " AND ( t.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; $params.= " AND ( t.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; */ $params = ""; if($flagMedico) { if(!$flagApross) { $params = ($params==""?" ":" AND ") . " ( ".$tablaAs."med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; } else { // if($flagAprossTipo == APROSS_TIPO_TURNO) // { // $params = ($params==""?" ":" AND ") . " ( t.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; // } // else // { // $params = ($params==""?" ":" AND ") . " ( p.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$params = ($params==""?" ":" AND ") . " ( t.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; }break; case APROSS_TIPO_PRACTICA: {$params = ($params==""?" ":" AND ") . " ( p.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; }break; case APROSS_TIPO_GUARDIA: {$params = ($params==""?" ":" AND ") . " ( g.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; }break; case APROSS_TIPO_INTERNACION: {$params = ($params==""?" ":" AND ") . " ( oi.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; }break; } } } if($flagPaciente) { if(!$flagApross) { $params.= ($params==""?" ":" AND ") . " ( t.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; } else { // if($flagAprossTipo == APROSS_TIPO_TURNO) // { // $params.= ($params==""?" ":" AND ") . " ( t.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; // } // else // { // $params.= ($params==""?" ":" AND ") . " ( p.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$params.= ($params==""?" ":" AND ") . " ( t.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; }break; case APROSS_TIPO_PRACTICA: {$params.= ($params==""?" ":" AND ") . " ( p.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; }break; case APROSS_TIPO_GUARDIA: {$params.= ($params==""?" ":" AND ") . " ( g.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; }break; case APROSS_TIPO_INTERNACION: {$params.= ($params==""?" ":" AND ") . " ( oi.cli_codigo BETWEEN '".$_REQUEST["pad"]."' AND '".$_REQUEST["pah"]."')"; }break; } } } if($flagFechaTurno) { if(!$flagApross) { $params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; } else { // if($flagAprossTipo == APROSS_TIPO_TURNO) // { // $params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; // } // else // { // $params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,p.pra_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; case APROSS_TIPO_PRACTICA: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,p.pra_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; case APROSS_TIPO_GUARDIA: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,g.gua_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; case APROSS_TIPO_INTERNACION: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,oi.oi_fecdes, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; } } } if($flagFechaRegTurno) { if(!$flagApross) { $params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_registracion, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desdeFR."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hastaFR."', 120), 10) )"; } else { // if($flagAprossTipo == APROSS_TIPO_TURNO) // { // $params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_registracion, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desdeFR."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hastaFR."', 120), 10) )"; // } // else // { // //$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_registracion, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desdeFR."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hastaFR."', 120), 10) )"; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,t.tur_registracion, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desdeFR."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hastaFR."', 120), 10) )";}break; // case APROSS_TIPO_PRACTICA: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,p.pra_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; // case APROSS_TIPO_GUARDIA: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,p.pra_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; // case APROSS_TIPO_INTERNACION: {$params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,p.pra_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )";}break; } } } if($flagSegMedico) { if(!$flagApross) { $params.= ($params==""?" ":" AND ") . " ( t.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; } else { // if($flagAprossTipo == APROSS_TIPO_TURNO) // { // $params.= ($params==""?" ":" AND ") . " ( t.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; // } // else // { // $params.= ($params==""?" ":" AND ") . " ( p.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$params.= ($params==""?" ":" AND ") . " ( t.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; }break; case APROSS_TIPO_PRACTICA: {$params.= ($params==""?" ":" AND ") . " ( p.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; }break; case APROSS_TIPO_GUARDIA: {$params.= ($params==""?" ":" AND ") . " ( g.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; }break; case APROSS_TIPO_INTERNACION: {$params.= ($params==""?" ":" AND ") . " ( oi.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; }break; } } } if($flagPracticas) { if(!$flagApross) { $params.= ($params==""?" ":" AND ") . " ( t.inos_cod IN (".$pralst."))"; } } if($flagApross) { // if($flagAprossTipo == APROSS_TIPO_TURNO) // { // $params.= ($params==""?" ":" AND ") . " ( t.obs_codigo = '".$obsaprosscod."')"; // } // else // { // $params.= ($params==""?" ":" AND ") . " ( p.obs_codigo = '".$obsaprosscod."')"; // } switch($flagAprossTipo) { case APROSS_TIPO_TURNO: {$params.= ($params==""?" ":" AND ") . " ( t.obs_codigo = '".$obsaprosscod."')"; }break; case APROSS_TIPO_PRACTICA: {$params.= ($params==""?" ":" AND ") . " ( p.obs_codigo = '".$obsaprosscod."')"; }break; case APROSS_TIPO_GUARDIA: {$params.= ($params==""?" ":" AND ") . " ( g.obs_codigo = '".$obsaprosscod."')"; }break; case APROSS_TIPO_INTERNACION: {$params.= ($params==""?" ":" AND ") . " ( oi.obs_codigo = '".$obsaprosscod."')"; }break; } } //Insumos $flagInsumos = false; if(isset($_REQUEST["fins"])&&intval($_REQUEST["fins"])!==(-1)) { $flagInsumos = true; } //Reporte Insumos $flagReporteInsumos = false; if(isset($_REQUEST["frins"])&&intval($_REQUEST["frins"])!==(-1)) { $flagReporteInsumos = true; } if(!$flagApross) { if(!$flagReporteInsumos){ $sql = " SELECT TT.* FROM ( SELECT e.esp_denom AS Esp , m.med_nombre AS Med , CONVERT(VARCHAR(10),t.tur_fecha,103) AS Fec , t.tur_fecha AS Fechaorg , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , t.cli_codigo As ID_PACIENTE , c.cli_nombre AS PACIENTE , o.obs_denom AS Obs , op.obsp_denom AS Plan_ , dbo.GetAge(c.cli_fecnto) AS edad , c.cli_tel AS telefono , c.cli_email AS email , t.tur_atendido AS atendido , t.tur_asiste AS asistio , t.tur_visado AS espera , t.tur_asiste_hora AS horallegada ,(CASE WHEN t.tur_telemed IS NULL THEN 0 ELSE ((CASE WHEN t.tur_telemed = 0 THEN 0 ELSE 1 END)) END) AS Telemed ,tur_confirmado as tcnf ,c.cli_dni as DOC ,c.cli_carnet as Afil ,CONCAT(cli_tel_cod_area,' ',cli_tel_numero) AS TelW ,cli_tel_cod_area AS TelW_cod, cli_tel_numero AS TelW_nro ,0 AS itemselected ,0 AS isCancel ,t.tur_token as token ,-1 as cancelby ,(CASE WHEN t.usu_codigo IS NULL THEN '' WHEN t.usu_codigo = 99 THEN 'PACIENTE' ELSE (SELECT eur.emp_nombre FROM empleado AS eur WHERE eur.emp_codigo = t.usu_codigo) END) as ureg ,(CASE WHEN usu_codigo_confirmacion IS NULL THEN '' WHEN usu_codigo_confirmacion = 99 THEN 'PACIENTE' ELSE (SELECT euc.emp_nombre FROM empleado AS euc WHERE euc.emp_codigo = t.usu_codigo_confirmacion) END) as uconf ,(CASE WHEN usu_codigo_borra IS NULL THEN '' WHEN usu_codigo_borra = 99 THEN 'PACIENTE' ELSE (SELECT eub.emp_nombre FROM empleado AS eub WHERE eub.emp_codigo = t.usu_codigo_borra) END) as uelim ,'' as Ub ,'' as BC ,'' as BCod , CONVERT(VARCHAR(20),t.tur_registracion,113) AS FReg , CONVERT(VARCHAR(20),t.tur_fecha_confirmacion,113) AS FConf , '' AS FecB ,t.inos_cod as codino ,t.nom_codigo as nomcod ,t.tur_multiple as tmul ,nm.inos_denom as inoname ,(CASE WHEN m.med_cuit IS NULL THEN '' ELSE m.med_cuit END) as mcuit ,0 as ins ,(CASE WHEN t.turRecoWht IS NULL THEN 0 ELSE t.turRecoWht END) as sendTurRecWh FROM turnos AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo INNER JOIN clientes AS c ON t.cli_codigo = c.cli_codigo INNER JOIN obrasoc AS o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan AS op ON t.obs_codigo = op.obs_codigo AND t.obsp_cod = op.obsp_cod LEFT JOIN nomenclador AS nm ON nm.inos_cod = t.inos_cod AND nm.nom_codigo = t.nom_codigo WHERE ".$params." AND t.cli_codigo <> 1 UNION SELECT e.esp_denom AS Esp , m.med_nombre AS Med , CONVERT(VARCHAR(10),t.tur_fecha,103) AS Fec , t.tur_fecha AS Fechaorg , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , t.cli_codigo As ID_PACIENTE , c.cli_nombre AS PACIENTE , o.obs_denom AS Obs , op.obsp_denom AS Plan_ , dbo.GetAge(c.cli_fecnto) AS edad , c.cli_tel AS telefono , c.cli_email AS email , t.tur_atendido AS atendido , t.tur_asiste AS asistio , t.tur_visado AS espera , t.tur_asiste_hora AS horallegada ,(CASE WHEN t.tur_telemed IS NULL THEN 0 ELSE ((CASE WHEN t.tur_telemed = 0 THEN 0 ELSE 1 END)) END) AS Telemed , t.tur_confirmado as tcnf ,c.cli_dni as DOC ,c.cli_carnet as Afil ,CONCAT(cli_tel_cod_area,' ',cli_tel_numero) AS TelW ,cli_tel_cod_area AS TelW_cod, cli_tel_numero AS TelW_nro ,0 AS itemselected ,1 AS isCancel ,t.tur_token as token ,(CASE WHEN usu_codigo_borra BETWEEN 99 AND 99 THEN 1 ELSE 0 END) as cancelby ,(CASE WHEN t.usu_codigo IS NULL THEN '' WHEN t.usu_codigo = 99 THEN 'PACIENTE' ELSE (SELECT eur.emp_nombre FROM empleado AS eur WHERE eur.emp_codigo = t.usu_codigo) END) as ureg ,(CASE WHEN usu_codigo_confirmacion IS NULL THEN '' WHEN usu_codigo_confirmacion = 99 THEN 'PACIENTE' ELSE (SELECT euc.emp_nombre FROM empleado AS euc WHERE euc.emp_codigo = t.usu_codigo_confirmacion) END) as uconf ,(CASE WHEN usu_codigo_borra IS NULL THEN '' WHEN usu_codigo_borra = 99 THEN 'PACIENTE' ELSE (SELECT eub.emp_nombre FROM empleado AS eub WHERE eub.emp_codigo = t.usu_codigo_borra) END) as uelim , usu_codigo_borra as Ub , tur_eliminado_coment as BC , tur_eliminado_motivo as BCod , CONVERT(VARCHAR(20),t.tur_registracion,113) AS FReg , CONVERT(VARCHAR(20),t.tur_fecha_confirmacion,113) AS FConf , CONVERT(VARCHAR(20),t.tur_tstamp,113) AS FecB ,t.inos_cod as codino ,t.nom_codigo as nomcod ,t.tur_multiple as tmul ,nm.inos_denom as inoname ,(CASE WHEN m.med_cuit IS NULL THEN '' ELSE m.med_cuit END) as mcuit ,0 as ins ,0 as sendTurRecWh FROM turnos_auditoria AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo INNER JOIN clientes AS c ON t.cli_codigo = c.cli_codigo INNER JOIN obrasoc AS o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan As op ON t.obs_codigo = op.obs_codigo AND t.obsp_cod = op.obsp_cod LEFT JOIN nomenclador AS nm ON nm.inos_cod = t.inos_cod AND nm.nom_codigo = t.nom_codigo WHERE ".$params." AND t.cli_codigo <> 1 )AS TT ORDER BY TT.Fec, TT.Hor"; } else { //SETEO LOS PARAMETROS YA QUE NO TODOS LOS FILTROS APLICAN $params = ""; if(isset($_REQUEST["fd"])&&intval($_REQUEST["fd"])!==(-1)) { $rango = array(); $rango[0] = DateTime::createFromFormat('d/m/Y', $_REQUEST["fd"]); $rango[1] = DateTime::createFromFormat('d/m/Y', $_REQUEST["fh"]); $desde = date("Y-m-d",strtotime($rango[0]->format('Y-m-d'))); $hasta = date("Y-m-d",strtotime($rango[1]->format('Y-m-d'))); $params.= ($params==""?" ":" AND ") . " ( LEFT(CONVERT(VARCHAR,p.pre_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; } if( isset($_REQUEST["prlst"]) && !is_null($_REQUEST["prlst"]) && $_REQUEST["prlst"]!="-1" ) { //print_r($_REQUEST["prlst"]);die; $pralst = ''; $plst = explode(";",$_REQUEST["prlst"]); for($i=0;$i 1 )AS TT ORDER BY TT.Fec, TT.Hor"; } break; case APROSS_TIPO_PRACTICA: { $sql = " SELECT TT.* FROM ( SELECT e.esp_denom AS Esp ,m.med_nombre AS Med ,CONVERT(VARCHAR(10),p.pra_fecha,103) AS Fec ,p.pra_fecha AS Fechaorg ,p.pra_numero AS CodP ,p.med_codigo AS idMed ,tp.tit_abrev AS Tit ,p.cli_codigo As ID_PACIENTE ,c.cli_nombre AS PACIENTE ,o.obs_denom AS Obs ,op.obsp_denom AS Plan_ ,dbo.GetAge(c.cli_fecnto) AS edad ,c.cli_tel AS telefono ,c.cli_email AS email ,p.pra_visusu AS asistio ,p.pra_visado AS espera ,c.cli_dni as DOC ,c.cli_carnet as Afil ,CONCAT(cli_tel_cod_area,' ',cli_tel_numero) AS TelW ,cli_tel_cod_area AS TelW_cod, cli_tel_numero AS TelW_nro ,0 AS itemselected ,0 AS isCancel ,-1 as cancelby ,'' as ureg ,'' as uconf ,'' as uelim ,'' as Ub ,'' as BC ,'' as BCod , '' AS FecB ,inos_cod as codino ,(CASE WHEN m.med_cuit IS NULL THEN '' ELSE m.med_cuit END) as mcuit ,ISNULL((SELECT pw.aut_validacion FROM practicas_autorizar_web as pw WHERE pw.pra_numero = p.pra_numero AND pw.aut_resultado = 1 AND pw.aut_excluido_duplicado=0),'') as aprossaut FROM practica AS p INNER JOIN medicos AS m ON p.med_codigo = m.med_codigo INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos tp ON tp.tit_codigo = m.tit_codigo INNER JOIN clientes AS c ON p.cli_codigo = c.cli_codigo INNER JOIN obrasoc AS o ON p.obs_codigo = o.obs_codigo INNER JOIN obsplan As op ON p.obs_codigo = op.obs_codigo AND p.obsp_cod = op.obsp_cod WHERE ".$params." AND p.cli_codigo <> 1 )AS TT ORDER BY TT.Fec"; } break; case APROSS_TIPO_GUARDIA: { $sql = " SELECT TT.* FROM ( SELECT e.esp_denom AS Esp ,m.med_nombre AS Med ,CONVERT(VARCHAR(10),g.gua_fecha,103) AS Fec ,g.gua_fecha AS Fechaorg ,g.gua_numero AS CodG ,g.med_codigo AS idMed ,tp.tit_abrev AS Tit ,g.cli_codigo As ID_PACIENTE ,c.cli_nombre AS PACIENTE ,o.obs_denom AS Obs ,op.obsp_denom AS Plan_ ,dbo.GetAge(c.cli_fecnto) AS edad ,c.cli_tel AS telefono ,c.cli_email AS email ,'' AS asistio ,'' AS espera ,c.cli_dni as DOC ,c.cli_carnet as Afil ,CONCAT(cli_tel_cod_area,' ',cli_tel_numero) AS TelW ,cli_tel_cod_area AS TelW_cod, cli_tel_numero AS TelW_nro ,0 AS itemselected ,0 AS isCancel ,-1 as cancelby ,'' as ureg ,'' as uconf ,'' as uelim ,'' as Ub ,'' as BC ,'' as BCod , '' AS FecB ,pra_codigo as codino ,(CASE WHEN m.med_cuit IS NULL THEN '' ELSE m.med_cuit END) as mcuit ,ISNULL((SELECT gw.aut_validacion FROM guardia_autorizar_web as gw WHERE gw.gua_numero = g.gua_numero AND gw.aut_resultado = 1 AND gw.aut_excluido_duplicado=0),'') as aprossaut FROM guardia_atenciones AS g INNER JOIN medicos AS m ON g.med_codigo = m.med_codigo INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos tp ON tp.tit_codigo = m.tit_codigo INNER JOIN clientes AS c ON g.cli_codigo = c.cli_codigo INNER JOIN obrasoc AS o ON g.obs_codigo = o.obs_codigo INNER JOIN obsplan As op ON g.obs_codigo = op.obs_codigo AND c.obsp_cod = op.obsp_cod WHERE ".$params." AND g.cli_codigo <> 1 )AS TT ORDER BY TT.Fec"; } break; case APROSS_TIPO_INTERNACION: { /* ,ISNULL((SELECT oiw.aut_validacion FROM ointernacion_autorizar_web as oiw WHERE oiw.oi_numero = oi.oi_numero AND oiw.aut_resultado = 1),'') as aprossaut */ $sql = " SELECT TT.* FROM ( SELECT e.esp_denom AS Esp ,m.med_nombre AS Med ,CONVERT(VARCHAR(10),oi.oi_fecdes,103) AS Fec ,FORMAT(oi.oi_tstamp,'yyyy-MM-dd HH:mm:ss') AS FecTsmpsf ,FORMAT(oi.oi_tstamp,'dd/MM/yyyy HH:mm:ss') AS FecTsmp ,oi.oi_fecdes AS Fechaorg ,oi.oi_numero AS CodOI ,oi.med_codigo AS idMed ,tp.tit_abrev AS Tit ,oi.cli_codigo As ID_PACIENTE ,c.cli_nombre AS PACIENTE ,o.obs_denom AS Obs ,op.obsp_denom AS Plan_ ,dbo.GetAge(c.cli_fecnto) AS edad ,c.cli_tel AS telefono ,c.cli_email AS email ,'' AS asistio ,'' AS espera ,c.cli_dni as DOC ,c.cli_carnet as Afil ,CONCAT(cli_tel_cod_area,' ',cli_tel_numero) AS TelW ,cli_tel_cod_area AS TelW_cod, cli_tel_numero AS TelW_nro ,0 AS itemselected ,0 AS isCancel ,-1 as cancelby ,'' as ureg ,'' as uconf ,'' as uelim ,'' as Ub ,'' as BC ,'' as BCod , '' AS FecB ,pra_codigo as codino ,(CASE WHEN m.med_cuit IS NULL THEN '' ELSE m.med_cuit END) as mcuit ,'' as aprossaut FROM orden_internacion AS oi INNER JOIN medicos AS m ON oi.med_codigo = m.med_codigo INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos tp ON tp.tit_codigo = m.tit_codigo INNER JOIN clientes AS c ON oi.cli_codigo = c.cli_codigo INNER JOIN obrasoc AS o ON oi.obs_codigo = o.obs_codigo INNER JOIN obsplan As op ON oi.obs_codigo = op.obs_codigo AND oi.obsp_cod = op.obsp_cod WHERE ".$params." AND oi.cli_codigo <> 1 )AS TT ORDER BY TT.Fec"; } break; } } //if(isset($_REQUEST['debug'])){print_r($sql);die;} //if($flagApross){print_r($sql);die;} $resultado = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$resultado ) { return false; } $resultado = $GLOBALS['dbSQL']->getAll(); if( count($resultado) > 0 ) { $total = count($resultado); $st = false; //setComInfo($resultado,$total,$st,$flagFecha); if($flagApross) { //if(isset($_REQUEST['debug'])){print_r($resultado);} setAprossInfo($resultado,$flagAprossTipo,$total); //if(isset($_REQUEST['debug'])){print_r("-----SPIDER----");} //if(isset($_REQUEST['debug'])){print_r($resultado);die;} } else { if( !$flagReporteInsumos ){ setComInfo($resultado,$total,$st,$flagFecha); } if( $flagInsumos ) { setInsumosInfo($resultado,$total); } if( $flagReporteInsumos ) { //setRepInsumosInfo($resultado,$total); } } $rs['turnos'] = $resultado; $rs['total'] = $total; $rs['st'] = $st; } else { $rs['turnos'] = array(); $rs['total'] = 0; $rs['st'] = false; } return $rs; } return false; } function getWhatsappResponses() { if( isset($_REQUEST["idpac"]) && !is_null($_REQUEST["idpac"]) && !empty($_REQUEST["idpac"]) && is_numeric($_REQUEST["idpac"]) ) { /* $rango = array(); // $rango[0] = DateTime::createFromFormat('d/m/Y', $_REQUEST["rfd"]); // $rango[1] = DateTime::createFromFormat('d/m/Y', $_REQUEST["rfh"]); $rango[0] = DateTime::createFromFormat('d/m/Y', $_REQUEST["fd"]); $rango[1] = DateTime::createFromFormat('d/m/Y', $_REQUEST["fh"]); $desde = date("Y-m-d",strtotime($rango[0]->format('Y-m-d'))); $hasta = date("Y-m-d",strtotime($rango[1]->format('Y-m-d'))); $periodo = " ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; $params = " AND ( t.med_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; $params.= " AND ( t.obs_codigo BETWEEN '".$_REQUEST["sd"]."' AND '".$_REQUEST["sh"]."')"; */ $rango[0] = DateTime::createFromFormat('d/m/Y', $_REQUEST["fi"]); $rango[1] = DateTime::createFromFormat('d/m/Y', $_REQUEST["ff"]); $rango_ = array(); $rango_[0] = date("Y-m-d",strtotime($rango[0]->format('Y-m-d'))); $rango_[1] = date("Y-m-d",strtotime($rango[1]->format('Y-m-d'))); $respuestasWhatsapp = getListadoWhatsappRespuestasPaciente($_REQUEST["idpac"],$rango_); return $respuestasWhatsapp; } return false; } function getComLstProfTurnos(&$resultInfo) { $resultado = getComTurnos(); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => $resultado['total'] ,"lstTurnos" => ($resultado &&isset($resultado['turnos'])?$resultado['turnos']:'') ,"st" => $resultado['st'] ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los turnos"; } } function getComLstwhatsappResponses(&$resultInfo) { $resultado = getWhatsappResponses(); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"respuestas" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "No se encontraron respuestas de whatsapp"; } } function isTurnoPagado($turid) { $sql = "SELECT tcmp_estado FROM dbo.turnos_compras_mp WHERE tur_numero = " . $turid; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $turno = $GLOBALS['dbSQL']->getAll(); if(count($turno)>0) { switch( intval($turno[0]["tcmp_estado"] )) { case ESTADO_TURNOCT_EXITO: {return 1;}break; case ESTADO_TURNOCT_PENDIENTE: {return 2;}break; default: {return 0;}break; } } } return 0; } function getTurnoEmails($turInfo) { $emailInf = "XYZ"; $fechaTmp = DateTime::createFromFormat('d/m/Y', $turInfo["Fec"]); $fecha = date("Y-m-d",strtotime($fechaTmp->format('Y-m-d'))); $turno = " AND LEFT(CONVERT(VARCHAR,men_fecha, 120), 10) = '".$fecha."'"; $turno.= " AND men_hora = '".$turInfo["Hor"]."'"; $turno.= " AND men_paciente = '".$turInfo["PACIENTE"]."'"; $turno.= " AND men_medico = '".$turInfo["Med"]."'"; $sql = "SELECT men_tipo FROM dbo.mensajes_procesados WHERE men_tipo = " . 1 ." " . $turno; $sql.= "\n"; $sql.= " UNION "; $sql.= "\n"; $sql.= "SELECT men_tipo FROM dbo.mensajes_procesados WHERE men_tipo = " . 2 ." " . $turno; $sql.= "\n"; $sql.= " UNION "; $sql.= "\n"; $sql.= "SELECT men_tipo FROM dbo.mensajes_procesados WHERE men_tipo = " . 3 ." " . $turno; $output = $GLOBALS['dbSQL']->Query($sql); if ( $output ) { $mensajes = $GLOBALS['dbSQL']->getAll(); $total = count($mensajes); if( $total > 0 ) {//print_r($mensajes);die;print_r("\n"); for($i=0;$i<$total;$i++) { /*switch( intval($turno[0]["tcmp_estado"]) ) { case ESTADO_TURNOCT_EXITO: {return 1;}break; case ESTADO_TURNOCT_PENDIENTE: {return 2;}break; default: {return 0;}break; }*/ switch( intval($mensajes[$i]["men_tipo"])) { // TYPE_EMAIL_CT //case 1: { $emailInf = str_replace("X",(intval($mensajes[$i]["tcmp_estado"])==1?"1":"0"),$emailInf); }break; case 1: { $emailInf = str_replace("X","1",$emailInf); }break; // TYPE_EMAIL_CCT //case 2: { $emailInf = str_replace("Y",(intval($mensajes[$i]["tcmp_estado"])==1?"1":"0"),$emailInf); }break; case 2: { $emailInf = str_replace("Y","1",$emailInf); }break; // TYPE_EMAIL_RECORDATORIO //case 3: { $emailInf = str_replace("Z",(intval($mensajes[$i]["tcmp_estado"])==1?"1":"0"),$emailInf); }break; case 3: { $emailInf = str_replace("Z","1",$emailInf); }break; } } } } $emailInf = str_replace("X","0",$emailInf); $emailInf = str_replace("Y","0",$emailInf); $emailInf = str_replace("Z","0",$emailInf); return $emailInf; } function setComInfo(&$turnos,$total,&$st=false,$flagFecha=false) { $tconfirmados=0; $tcancelados=0; $tconfirmados=0; $temailconfirmaos=0; $temailcancelados=0; $temailrecordatorio=0; $twhatsapp=0; //Turnos Vigentes for($i=0;$i<$total;$i++) { //Info $turnos[$i]["inf"] = array( "c" =>0 ,"p" =>0 ,"e" =>"000" ,"w" =>0 ,"s" =>0 ,"whtf" =>'' ,"whtm" =>'' ,"whtr" =>0 ,"whne" =>0 ); //Confirmado $turnos[$i]["inf"]["c"] = $turnos[$i]["tcnf"]; $tconfirmados+=(intval($turnos[$i]["tcnf"])===1?1:0); //Cancelado $tcancelados+=(intval($turnos[$i]["isCancel"])===1?1:0); //Pagado $turnos[$i]["inf"]["p"] = isTurnoPagado($turnos[$i]["CodT"]); //Emails // $turnos[$i]["inf"]["e"] = getTurnoEmails($turnos[$i]); // $temailconfirmaos+=(intval(substr($turnos[$i]["inf"]["e"],0,1))===1?1:0); // $temailcancelados+=(intval(substr($turnos[$i]["inf"]["e"],1,1))===1?1:0); // $temailrecordatorio+=(intval(substr($turnos[$i]["inf"]["e"],2,1))===1?1:0); $temailconfirmaos+=0; $temailcancelados+=0; $temailrecordatorio+=0; //Whatsapp list($turnos[$i]["inf"]["w"],$turnos[$i]["inf"]["whne"]) = getTurnoWhatsappRecordatorio($turnos[$i]); $twhatsapp+=(intval($turnos[$i]["inf"]["w"])===1?1:0); //Whatsapp Respuesta (Se trae la ultima asociada al numero) // $rwinf = getTurnoWhatsappResponse($turnos[$i],$flagFecha); // $turnos[$i]["inf"]["whtf"] = ($rwinf[0]?$rwinf[0]:'-1'); // $turnos[$i]["inf"]["whtm"] = ($rwinf[1]?$rwinf[1]:''); // $turnos[$i]["inf"]["whtr"] = ($rwinf[2]?$rwinf[2]:''); $turnos[$i]["inf"]["whtf"] = '-1'; $turnos[$i]["inf"]["whtm"] = ''; $turnos[$i]["inf"]["whtr"] = ''; } if($total>0) { $st = array( "cf" =>array($tconfirmados,number_format(($tconfirmados*100)/$total,2)) ,"cn" =>array($tcancelados,number_format(($tcancelados*100)/$total,2)) ,"wf" =>array($twhatsapp,number_format(($twhatsapp*100)/$total,2)) ,"ecf"=>array($temailconfirmaos,number_format(($temailconfirmaos*100)/$total,2)) ,"ecn"=>array($temailcancelados,number_format(($temailcancelados*100)/$total,2)) ,"erc"=>array($temailrecordatorio,number_format(($temailrecordatorio*100)/$total,2)) ); } else { $st = array( "cf" =>array(0,0) ,"cn" =>array(0,0) ,"wf" =>array(0,0) ,"ecf"=>array(0,0) ,"ecn"=>array(0,0) ,"erc"=>array(0,0) ); } } function setAprossInfo(&$turnos,$flagAprossTipo,$total) { if($flagAprossTipo == APROSS_TIPO_TURNO) { for($i=0;$i<$total;$i++) { if(false&&intval($turnos[$i]["turmultiple"])!==0&&trim($turnos[$i]["turmultiple"])!="") { //FALTA TERMINAR ESTA PARTE!!! //------------------------------------------------------------------ //Turnos multiples //------------------------------------------------------------------ //Es un turno multiple $turnos[$i]["practicas"] = array(); //Turno codigo principal $item = array( "codigo" => $turnos[$i]["codino"] ,"fechaing" => $turnos[$i]["Fec"] ); $x = array_push($turnos[$i]["practicas"],$item); //Turno practicas restantes $aux = explode(';',$turnos[$i]["turmultiple"]); for($k=0;$k $aux[$k] ,"fechaing" => $turnos[$i]["Fec"] ); $x = array_push($turnos[$i]["practicas"],$item) ; } } $turnos[$i]["cie10"] = getTurnoCIE10($turnos[$i]["CodT"]); //FALTA TERMINAR ESTA PARTE!!! //------------------------------------------------------------------ } else { //Es un turno simple $turnos[$i]["practicas"] = array(); //Turno codigo principal $item = array( "codigo" => $turnos[$i]["codino"] ,"fechaing" => $turnos[$i]["Fec"] ); $x = array_push($turnos[$i]["practicas"],$item); $turnos[$i]["cie10"] = getTurnoCIE10($turnos[$i]["CodT"]); $turnos[$i]["cie10reg"] = getTurnoCIE10Registrado($turnos[$i]["CodT"]); //Verificar si se registro la practica if($turnos[$i]["cie10"]) { $totalItemsCie10 = count($turnos[$i]["cie10"]); $flagFoundItemUnregistred = 0; for($k=0;$k<$totalItemsCie10&&$flagFoundItemUnregistred===0;$k++) { if(intval($turnos[$i]["cie10"][$k]["tur_registrado"])===0) { $flagFoundItemUnregistred = 1; } } if($flagFoundItemUnregistred===1) { $turnos[$i]["cie10_fr"] = "1";//AL MENOS UN ITEM SIN REGISTRAR } else { $turnos[$i]["cie10_fr"] = "2";//TODOS LOS ITEMS REGISTRADOS } } else { $turnos[$i]["cie10_fr"] = "0";//SIN ITEMS } } } } elseif($flagAprossTipo == APROSS_TIPO_PRACTICA) { for($i=0;$i<$total;$i++) { //Es un turno simple $turnos[$i]["practicas"] = array(); //Turno codigo principal $item = array( "codigo" => $turnos[$i]["codino"] ,"fechaing" => $turnos[$i]["Fec"] ); $x = array_push($turnos[$i]["practicas"],$item); $turnos[$i]["cie10"] = getPracticaCIE10($turnos[$i]["CodP"]); $turnos[$i]["cie10reg"] = getPracticaCIE10Registrado($turnos[$i]["CodP"]); //Verificar si se registro la practica if($turnos[$i]["cie10"]) { $totalItemsCie10 = count($turnos[$i]["cie10"]); $flagFoundItemUnregistred = 0; for($k=0;$k<$totalItemsCie10&&$flagFoundItemUnregistred===0;$k++) { if(intval($turnos[$i]["cie10"][$k]["pra_registrado"])===0) { $flagFoundItemUnregistred = 1; } } if($flagFoundItemUnregistred===1) { $turnos[$i]["cie10_fr"] = "1";//AL MENOS UN ITEM SIN REGISTRAR } else { $turnos[$i]["cie10_fr"] = "2";//TODOS LOS ITEMS REGISTRADOS } } else { $turnos[$i]["cie10_fr"] = "0";//SIN ITEMS } } } elseif($flagAprossTipo == APROSS_TIPO_GUARDIA) { for($i=0;$i<$total;$i++) { //Es un turno simple $turnos[$i]["practicas"] = array(); //Turno codigo principal $item = array( "codigo" => $turnos[$i]["codino"] ,"fechaing" => $turnos[$i]["Fec"] ); $x = array_push($turnos[$i]["practicas"],$item); $turnos[$i]["cie10"] = getGuardiaCIE10($turnos[$i]["CodG"]); $turnos[$i]["cie10reg"] = getGuardiaCIE10Registrado($turnos[$i]["CodG"]); //Verificar si se registro la practica if($turnos[$i]["cie10"]) { $totalItemsCie10 = count($turnos[$i]["cie10"]); $flagFoundItemUnregistred = 0; for($k=0;$k<$totalItemsCie10&&$flagFoundItemUnregistred===0;$k++) { if(intval($turnos[$i]["cie10"][$k]["gua_registrado"])===0) { $flagFoundItemUnregistred = 1; } } if($flagFoundItemUnregistred===1) { $turnos[$i]["cie10_fr"] = "1";//AL MENOS UN ITEM SIN REGISTRAR } else { $turnos[$i]["cie10_fr"] = "2";//TODOS LOS ITEMS REGISTRADOS } } else { $turnos[$i]["cie10_fr"] = "0";//SIN ITEMS } } } /* elseif($flagAprossTipo == APROSS_TIPO_INTERNACION) { for($i=0;$i<$total;$i++) { //Buscar las Practicas de la Orden $turnos[$i]["prlst"] = getOInternacionPracticas($turnos[$i]["CodOI"]); //BUSCO SI HAY ALMENOS UNA PRACTICA SIN AUTORIZAR $totalPr = (is_array($turnos[$i]["prlst"])?count($turnos[$i]["prlst"]):0); $continue=true; $continuePrCie10=true; $turnos[$i]["cie10_fr"] = '1'; for($j=0;$j<$totalPr&&$continue;$j++) { //Validar si existe al menos una practica sin autorizar if($turnos[$i]["prlst"][$j]["idval"]=='') { $turnos[$i]["aprossaut"] = ''; $continue=false; } //Validar si existe al menos un CIE de alguna practica sin registrar $totalPrCie10lst = count($turnos[$i]["prlst"][$j]["cie10"]); for($k=0;$k<$totalPrCie10lst&&$continuePrCie10;$k++) { if(intval($turnos[$i]["prlst"][$j]["cie10"][$k]["reg"])===0) { $turnos[$i]["cie10_fr"] = '1'; $turnos[$i]["prlst"][$j]["c10reg"]=0; $continuePrCie10=false; } } if($continuePrCie10) { $turnos[$i]["prlst"][$j]["c10reg"]=1; } } if($continue) { if($totalPr>0) { $turnos[$i]["aprossaut"] = '1'; } else { $turnos[$i]["aprossaut"] = ''; } } if($continuePrCie10) { if($totalPr>0) { $turnos[$i]["cie10_fr"] = '2'; } else { $turnos[$i]["cie10_fr"] = '0'; } } // print_r("---------------------");print_r("\n"); // print_r($turnos[$i]["prlst"]);print_r("\n"); // print_r("---------------------");print_r("\n");die; $turnos[$i]["practicas"] = array(); } } */ elseif($flagAprossTipo == APROSS_TIPO_INTERNACION) { for($i=0;$i<$total;$i++) { //-------------------------------------------------------- //CARGAR LA PRACTICA PRINCIPAL DE LA ORDEN DE INTERNACION //-------------------------------------------------------- $turnos[$i]["prlst_p"] = array(); $sql = "SELECT oi.oi_numero as oinro ,0 as item ,ISNULL(oi.nom_codigo,11) as nom ,oi.pra_codigo as ino ,ino.inos_denom as denom ,oi.med_codigo as medcod ,med.med_nombre as meddenom ,CONVERT(varchar, oi_fecingreso, 103) AS fecha ,CONVERT(varchar, oi_fecingreso, 23) AS tfecha ,FORMAT(oi.oi_tstamp,'yyyy-MM-dd HH:mm:ss') AS FecTsmpsf ,FORMAT(oi.oi_tstamp,'dd/MM/yyyy HH:mm:ss') AS FecTsmp ,(CASE WHEN oiaw.aut_validacion IS NULL THEN '' ELSE oiaw.aut_validacion END) as registrado ,ISNULL(oic10reg.oicie10_numero,0) as cie10registrado ,(CASE WHEN oiaw.aut_validacion IS NULL THEN '' ELSE oiaw.aut_validacion END) as idval ,(CASE WHEN oiaw.ant_id IS NULL THEN '' ELSE oiaw.ant_id END) as ant_id ,(CASE WHEN oiaw.ant_id IS NULL THEN '' ELSE (SELECT CONCAT(ant_codigo,'-',ant_denom) FROM tipantecedentes as c10 WHERE c10.ant_id= oiaw.ant_id) END) as cie10denom ,(CASE WHEN oiaw.aut_origen IS NULL THEN '' ELSE oiaw.aut_origen END) as aut_origen ,0 as itemselected ,'' as token ,'' as c10 ,'' as err ,'' as succes ,0 as c10reg ,'I' as prorigen ,'' AS fcirugia ,'' AS tfcirugia ,'' as tven ,'' as tcir FROM orden_internacion AS oi INNER JOIN nomenclador AS ino ON ino.nom_codigo = ISNULL(oi.nom_codigo,11) AND ino.inos_cod = oi.pra_codigo INNER JOIN medicos AS med ON med.med_codigo = oi.med_codigo LEFT JOIN ointernacion_autorizar_web AS oiaw ON oiaw.oi_numero = oi.oi_numero LEFT JOIN ointernacion_cie10_registracion AS oic10reg ON oic10reg.oi_numero = oi.oi_numero WHERE oi.oi_numero = ".$turnos[$i]["CodOI"]." ORDER BY oi_fecingreso DESC"; //if($turnos[$i]["CodOI"]==10){print_r($sql);die;} $rs = $GLOBALS['dbSQL']->Query($sql); //if(isset($_REQUEST['debug'])){print_r($sql);print_r("\n");} //if(isset($_REQUEST['debug'])){print_r("----spider-----");print_r("\n");} if ( $rs ) { $turnos[$i]["prlst_p"] = $GLOBALS['dbSQL']->getAll(); // if(isset($_REQUEST['debug'])){print_r("i[$i]");} // if(isset($_REQUEST['debug'])){print_r($turnos[$i]["prlst_p"]);} } //-------------------------------------------------------- //OBTENER LOS CIE10 DE LA OI $turnos[$i]["cie10"] = getOInternacionCIE10Union($turnos[$i]["CodOI"]); //Buscar las Practicas de la Orden $totalestiempo=false;//LO ENVIO SOLO POR COMPATIBILIDAD $turnos[$i]["prlst"] = getOInternacionPracticas($turnos[$i]["CodOI"],$turnos[$i]["cie10"]); // print_r("-------------------");print_r("\n"); //-->print_r($turnos[$i]["prlst"]);die; //BUSCO SI HAY ALMENOS UNA PRACTICA SIN AUTORIZAR //$totalPr = (is_array($turnos[$i]["prlst"])?count($turnos[$i]["prlst"]):0); //LA PRACTICA DE LA OI ESTA REGISTRADA //$totalPr =(is_array($turnos[$i]["prlst_p"])&&count($turnos[$i]["prlst_p"])>0?(!is_numeric($turnos[$i]["prlst_p"][0]["registrado"])?1:0):0); $totalPr =(is_array($turnos[$i]["prlst"])&&count($turnos[$i]["prlst"])>0?count($turnos[$i]["prlst"]):0); $turnos[$i]["aprossaut"] = ''; if( isset($turnos[$i]["prlst_p"][0]) && isset($turnos[$i]["prlst_p"][0]["idval"]) && $turnos[$i]["prlst_p"][0]["idval"]!='' ) { $turnos[$i]["aprossaut"] = '1'; } /* $continue=true; $continuePrCie10=true; $turnos[$i]["cie10_fr"] = '1'; for($j=0;$j<$totalPr&&$continue;$j++) { //Validar si existe al menos una practica sin autorizar if($turnos[$i]["prlst"][$j]["idval"]=='') { $turnos[$i]["aprossaut"] = ''; $continue=false; } //Validar si existe al menos un CIE de alguna practica sin registrar $totalPrCie10lst = count($turnos[$i]["prlst"][$j]["cie10"]); for($k=0;$k<$totalPrCie10lst&&$continuePrCie10;$k++) { if(intval($turnos[$i]["prlst"][$j]["cie10"][$k]["reg"])===0) { $turnos[$i]["cie10_fr"] = '1'; $turnos[$i]["prlst"][$j]["c10reg"]=0; $continuePrCie10=false; } } if($continuePrCie10) { $turnos[$i]["prlst"][$j]["c10reg"]=1; } } // //if($continue) // //{ // if($totalPr>0&&$turnos[$i]["prlst_p"][0]["idval"]!='') // { // $turnos[$i]["aprossaut"] = '1'; // } // else // { // $turnos[$i]["aprossaut"] = ''; // } // //} if($continuePrCie10) { if($totalPr>0) { $turnos[$i]["cie10_fr"] = '2'; } else { $turnos[$i]["cie10_fr"] = '0'; } } */ $continue=true; $continuePrCie10=true; $turnos[$i]["cie10_fr"] = '1'; $turnos[$i]["pra_fr"] = '2'; //if($turnos[$i]["CodOI"]==14){print_r($turnos[$i]["prlst"]);die("spider");} for($j=0;$j<$totalPr&&$continue;$j++) { //Validar si existe al menos una practica sin autorizar if($turnos[$i]["prlst"][$j]["idval"]=='') { //$turnos[$i]["aprossaut"] = ''; $turnos[$i]["pra_fr"] = '1'; $continue=false; } } //Validar si existe al menos un CIE de alguna practica sin registrar $totalPrCie10lst = count($turnos[$i]["cie10"]); for($k=0;$k<$totalPrCie10lst&&$continuePrCie10;$k++) { if(intval($turnos[$i]["cie10"][$k]["reg"])===0) { $turnos[$i]["cie10_fr"] = '1'; //$turnos[$i]["prlst"][$j]["c10reg"]=0; $continuePrCie10=false; } } // if($continuePrCie10) // { // $turnos[$i]["prlst"][$j]["c10reg"]=1; // } if($continuePrCie10) { $turnos[$i]["cie10_fr"] = '2'; //$turnos[$i]["cie10_fr"] = '0'; } // print_r("---------------------");print_r("\n"); // print_r($turnos[$i]["prlst"]);print_r("\n"); // print_r("---------------------");print_r("\n");die; $turnos[$i]["practicas"] = array(); } } } function getComTurnosCancelados($turInfo) { if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"]) && is_numeric($_REQUEST["idpro"]) ) { $rango = false; if( isset($_REQUEST["rfd"]) && !empty($_REQUEST["rfd"]) && !is_null($_REQUEST["rfd"]) && isset($_REQUEST["rfh"]) && !empty($_REQUEST["rfh"]) && !is_null($_REQUEST["rfh"]) ) { $rango = array(); $rango[0] = str_replace(".","-",$_REQUEST["rfd"]); $rango[1] = str_replace(".","-",$_REQUEST["rfh"]); if( strtotime($rango[0])===false || strtotime($rango[1])===false) { $rango = false; } } $fecha = date("Y-m-d"); $rango[0] = DateTime::createFromFormat('d/m/Y', $_REQUEST["rfd"]); $rango[1] = DateTime::createFromFormat('d/m/Y', $_REQUEST["rfh"]); //$desde = date("Y-m-d",strtotime($rango[0])); //$hasta = date("Y-m-d",strtotime($rango[1])); $desde = date("Y-m-d",strtotime($rango[0]->format('Y-m-d'))); $hasta = date("Y-m-d",strtotime($rango[1]->format('Y-m-d'))); $rs['fecha'] = $desde . ' - ' . $hasta; //$periodo = " AND ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; $periodo = " AND ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN '".$desde."' AND '".$hasta."' )"; //print_r($rango);print_r("\n"); //print_r($periodo);die;//print_r("\n"); $sql = "SELECT e.esp_denom AS Esp , m.med_nombre AS Med , CONVERT(VARCHAR(10),t.tur_fecha,103) AS Fec , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , t.cli_codigo As ID_PACIENTE , c.cli_nombre AS PACIENTE , o.obs_denom AS Obs , op.obsp_denom AS Plan_ , dbo.GetAge(c.cli_fecnto) AS edad , c.cli_tel AS telefono , c.cli_email AS email , t.tur_atendido AS atendido , t.tur_visado AS espera , t.tur_asiste_hora AS horallegada , t.tur_asiste AS asistio ,(CASE WHEN t.tur_telemed IS NULL THEN 0 ELSE ((CASE WHEN t.tur_telemed = 0 THEN 0 ELSE 1 END)) END) AS Telemed , t.tur_confirmado as tcnf ,c.cli_dni as DOC ,c.cli_carnet as Afil ,CONCAT(cli_tel_cod_area,' ',cli_tel_numero) AS TelW ,0 AS itemselected ,1 AS isCancel FROM turnos_auditoria AS t , medicos AS m , especial AS e , tbl_titulos tt , clientes AS c , obrasoc AS o , obsplan As op WHERE t.med_codigo = ".$_REQUEST["idpro"]." ".$periodo." AND t.cli_codigo = c.cli_codigo AND t.med_codigo = m.med_codigo AND m.esp_codigo = e.esp_codigo AND tt.tit_codigo = m.tit_codigo AND t.obs_codigo = o.obs_codigo AND t.obs_codigo = op.obs_codigo AND t.obsp_cod = op.obsp_cod AND t.cli_codigo <> 1 ORDER BY t.tur_fecha, t.tur_hora"; //print_r($sql);die; //print_r($sql);die;//print_r("\n"); $resultado = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$resultado ) { return false; } $turnosCancelados = $GLOBALS['dbSQL']->getAll(); //print_r($turnosCancelados);die; return $turnosCancelados; } else { return false; } } function updateComClienteCampoContacto($clienteId,$campo_valor) { $sql = "UPDATE clientes SET ".$campo_valor." WHERE cli_codigo = '".addslashes($clienteId)."'"; $resultado = $GLOBALS['dbSQL']->Query($sql,true); if ( $resultado ) { return true; } return false; } function setComClienteCampoContacto() { if( isset($_REQUEST["cid"]) && !empty($_REQUEST["cid"]) && !is_null($_REQUEST["cid"]) && isset($_REQUEST["c"]) && !empty($_REQUEST["c"]) && !is_null($_REQUEST["c"]) && isset($_REQUEST["v"]) && !empty($_REQUEST["v"]) && !is_null($_REQUEST["v"]) ) { $clienteId = $_REQUEST["cid"]; $campo = $_REQUEST["c"]; $valor = $_REQUEST["v"]; switch($campo) { case 'e':{$campo_valor = "cli_email = '".addslashes($valor)."'";}break; case 't':{$campo_valor = "cli_tel = '".addslashes($valor)."'";}break; case 'ta': { $tel = explode(';',$_REQUEST["v"]); $campo_valor = " cli_tel_cod_area = '".addslashes($tel[0])."'"; $campo_valor.= ",cli_tel_numero = '".addslashes($tel[1])."'"; } break; } $res = updateComClienteCampoContacto($clienteId,$campo_valor); return $res; } return false; } function changeComClienteCampoContacto(&$resultInfo) { $resultado = setComClienteCampoContacto(); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "res" => 1 ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los turnos"; } } //function cancelarTurnosMasivo($lstTurnos, $emailTipo,$motivoComentario='',$flagBorrarTurnos,&$errorPoint=false) function cancelarTurnosMasivo($lstTurnos, $emailTipo,$motivo,$motivoComentario='',$flagCancelar,$flagEmails,$flagwhatsapp,$userId,&$errorPoint=false) { try { $continue = true; $flagTransactionInit = false; if( setConeccionTransaccion() ) { $flagTransactionInit = true; $GLOBALS['dbSQLTR']->setBeginTransaction(); //Actualizar motivo de la cancelacion $sql = "UPDATE dbo.turnos SET tur_eliminado_coment = '".$motivoComentario."' ,tur_eliminado_motivo = '".$motivo."' ,tur_comen = CONCAT(tur_comen,' - ','".$motivoComentario."') ,usu_codigo_borra = ".$userId." WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al actualizar el Motivo de Cancelación'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } //Encolar los emails if( $continue && $flagEmails ) { $sql = "INSERT INTO mensajes (men_fechaenvio ,men_fecha ,men_hora ,men_destinatario ,men_paciente ,men_medico ,men_obs ,men_texto ,men_procesado ,men_fechaproceso ,men_tipo ,men_asunto ,men_email_remitente ,men_nombre_remitente ,men_token) SELECT GETDATE() ,t.tur_fecha ,t.tur_hora ,c.cli_email ,c.cli_nombre ,m.med_nombre ,o.obs_denom ,(CASE WHEN t.tur_eliminado_motivo IS NULL THEN '' ELSE t.tur_eliminado_motivo END) as eliminadomotivo ,0 ,NULL ,'".$emailTipo."' ,NULL ,NULL ,NULL ,tur_token FROM turnos AS t INNER JOIN clientes as c ON c.cli_codigo = t.cli_codigo INNER JOIN medicos as m ON m.med_codigo = t.med_codigo INNER JOIN obrasoc as o ON o.obs_codigo = t.obs_codigo INNER JOIN especial as e ON e.esp_codigo = m.esp_codigo WHERE t.tur_numero IN (".addslashes($lstTurnos).") AND (c.cli_email IS NOT NULL)"; //die($sql); //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al enviar los emails de Cancelación'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } //Encolar los mensajes de Whatsapp if( $continue && $flagwhatsapp ) { $sql = "INSERT INTO mensajes_whatsapp ( men_fechaenvio ,tur_numero ,men_fecha ,men_hora ,men_destinatario ,men_tel ,men_paciente ,esp_denom ,men_medico ,men_obs ,men_texto ,men_procesado ,men_tipo ,tur_token ) SELECT getdate() ,tur_numero ,tur_fecha ,tur_hora ,ltrim(rtrim(cli_email)) ,cli_tel ,cli_nombre ,esp_denom ,med_nombre ,obs_denom ,(CASE WHEN t.tur_eliminado_motivo IS NULL THEN '' ELSE t.tur_eliminado_motivo END) as eliminadomotivo ,0 ,'".$emailTipo."' ,tur_token FROM turnos t, clientes c, medicos m, obrasoc o, especial e WHERE t.tur_numero IN (".addslashes($lstTurnos).") AND cli_tel IS NOT NULL AND cli_tel <> '' AND c.cli_codigo = t.cli_codigo AND m.med_codigo = t.med_codigo AND o.obs_codigo = t.obs_codigo AND m.esp_codigo = e.esp_codigo"; //die($sql); //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al enviar los mensajes de Whatsapp de Cancelación'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } //Borrar los turnos y reemplazarlos por turnos de tipo 'CANCELADO' //if( $continue && $flagBorrarTurnos ) if( $continue && $flagCancelar ) { $sql = "SELECT tur_numero ,tur_fecha ,CONVERT(varchar, tur_fecha, 23) AS fecha ,tur_hora ,med_codigo FROM turnos WHERE tur_numero IN (".addslashes($lstTurnos).")"; //die($sql); //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al enviar los emails de Cancelación'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } else { $turnoslst = $GLOBALS['dbSQLTR']->getAll(); foreach($turnoslst as $turno) { if( $continue ) { //Obtener numerador $sql = "SELECT [num_ultimo] FROM [codigos] WHERE num_codigo = 4"; //print_r($sql);print_r("\n"); $rsN = $GLOBALS['dbSQLTR']->QueryTR($sql); if ( $rsN ) { $codigoNumerador = $GLOBALS['dbSQLTR']->getAll(); $idTurno = intval($codigoNumerador[0]["num_ultimo"]) + 1; } else { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al procesar los turnos a Cancelar(R.1)'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } if( $continue ) { $fecha = date("Y-m-d.H:i:s",strtotime($turno["fecha"])); $fecha = str_replace(".","T",$fecha).".000"; //Insertar el turno $sql = 'INSERT INTO [turnos] ( [tur_numero] ,[tur_fecha] ,[tur_hora] ,[med_codigo] ,[cli_codigo] ,[cli_dni] ,[obs_codigo] ,[obsp_cod] ,[usu_codigo] ,[tur_asiste] ,[tur_impobs] ,[tur_impart] ,[tur_cupon] ,[inos_cod] ,[nom_codigo] ,[tur_telemed] ,[tur_costo] ) VALUES ( '. $idTurno .' ,'. "'".$fecha."'".' ,'. "'".$turno["tur_hora"] ."'".' ,'. $turno["med_codigo"] .' ,1 ,NULL ,1 ,1 ,'.$userId.' ,0 ,0 ,0 ,'."''".' ,(SELECT [pra_codigo] FROM dbo.[empresa]) ,(SELECT [nom_codigo] FROM dbo.[empresa]) ,NULL ,0 )'; //print_r($sql);print_r("\n"); $rsI = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rsI = true; if ( !$rsI ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al procesar los turnos a Cancelar(R.2)'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } if( $continue ) { //Actualizar numerador $sql = "UPDATE [codigos] SET [num_ultimo] = [num_ultimo] + 1, [num_fecha] = GETDATE() WHERE [num_codigo] = 4"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al procesar los turnos a Cancelar(R.3)'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } } } if( $continue ) { $sql = "UPDATE dbo.turnos SET usu_codigo_borra = ".$userId." WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al actualizar el usuario de borrado los turnos'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } if( $continue ) { $sql = "DELETE FROM dbo.turnos WHERE tur_numero IN (".addslashes($lstTurnos).")"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); //$rs = true; if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al borrar los turnos'; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } } } if( $continue ) { $res = $GLOBALS['dbSQLTR']->setCommitTransaction(); //$GLOBALS['dbSQLTR']->setRollbackTransaction(); //print_r('commit['.$res.']');print_r("\n"); } } else { $continue = false; $errorPoint=4; } return $continue; } catch ( Exception $e ) { if( $flagTransactionInit ) { $GLOBALS['dbSQLTR']->setRollbackTransaction(); } $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error:".($e->__toString()); logTrace(debug_backtrace(),$e->__toString()); return false; } } function cancelarAgenda(&$resultInfo) { if( isset($_REQUEST["emailtype"]) && !empty($_REQUEST["emailtype"]) && !is_null($_REQUEST["emailtype"]) && isset($_REQUEST["lsttur"]) && !empty($_REQUEST["lsttur"]) && !is_null($_REQUEST["lsttur"]) && isset($_REQUEST["flagBorrarTur"]) && !is_null($_REQUEST["flagBorrarTur"]) && is_numeric($_REQUEST["flagBorrarTur"]) && isset($_REQUEST["motivo"]) && !empty($_REQUEST["motivo"]) && !is_null($_REQUEST["motivo"]) && isset($_REQUEST["token"]) && !is_null($_REQUEST["token"]) ) { $continue = true; //Validar el Token $tokenInfo = false; $result = false; $userId = false; $continue = Acl::validateToken($_REQUEST["token"],$tokenInfo,$result); if( $result == Acl::TOKEN_VALID ) { $userId = $tokenInfo->uid; $continue = true; } elseif( $result == Acl::TOKEN_EXPIRED ) { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } else { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } if( $continue ) { $opcion = intval($_REQUEST["flagBorrarTur"]); $motivo = $_REQUEST["motivo"]; $flagwhatsapp=false; if( isset($_REQUEST["flagwhatsapp"]) && !is_null($_REQUEST["flagwhatsapp"]) && is_numeric($_REQUEST["flagwhatsapp"]) && intval($_REQUEST["flagwhatsapp"])===1 ) { $flagwhatsapp = true; } $flagwhatsapp=false; if( isset($_REQUEST["flagwhatsapp"]) && !is_null($_REQUEST["flagwhatsapp"]) && is_numeric($_REQUEST["flagwhatsapp"]) && intval($_REQUEST["flagwhatsapp"])===1 ) { $flagwhatsapp = true; } // 1 Cancelar y enviar emails // 2 Solo enviar emails // 3 Solo Cancelar y no enviar emails $flagCancelar = false; $flagEmails = false; switch( $opcion ) { case 1:{$flagCancelar = true;$flagEmails = true;}break; case 2:{$flagCancelar = false;$flagEmails = true;}break; case 3:{$flagCancelar = true;$flagEmails = false;}break; } switch( $_REQUEST["emailtype"] ) { //Confirmacion de Alta de Turno case TYPE_EMAIL_CT: {$emailTipo=1;}break; //Confirmacion de Cancelacion de Turno case TYPE_EMAIL_CCT: {$emailTipo=2;}break; //Recordatorio de Turno case TYPE_EMAIL_RECORDATORIO:{$emailTipo=3;}break; default: { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Error: Tipo de email desconocido"; $continue = false; } break; } if( $continue ) { $errorPoint = false; $lstTurnos = $_REQUEST["lsttur"]; //$flagBorrarTurnos = (intval($_REQUEST["flagBorrarTur"])===1?true:false); $motivoComentario = (isset($_REQUEST["cmt"])?$_REQUEST["cmt"]:''); //$resultado = cancelarTurnosMasivo($lstTurnos, $emailTipo, $motivoComentario, $flagBorrarTurnos, $errorPoint); $resultado = cancelarTurnosMasivo($lstTurnos, $emailTipo, $motivo, $motivoComentario, $flagCancelar,$flagEmails,$flagwhatsapp, $userId,$errorPoint); if ( !$resultado ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = $errorPoint; } else { $resultInfo['code'] = 0; $resultInfo['data'] = true; } } } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return true; } function enviarEmailTurnosMasivo($lstTurnos, $emailTipo,$motivoComentario='',&$errorPoint=false) { try { $sql = "INSERT INTO mensajes (men_fechaenvio ,men_fecha ,men_hora ,men_destinatario ,men_paciente ,men_medico ,men_obs ,men_texto ,men_procesado ,men_fechaproceso ,men_tipo ,men_asunto ,men_email_remitente ,men_nombre_remitente ,men_token ) SELECT GETDATE() ,t.tur_fecha ,t.tur_hora ,c.cli_email ,c.cli_nombre ,m.med_nombre ,o.obs_denom ,'' ,0 ,NULL ,'".$emailTipo."' ,NULL ,NULL ,NULL ,t.tur_token FROM turnos AS t INNER JOIN clientes as c ON c.cli_codigo = t.cli_codigo INNER JOIN medicos as m ON m.med_codigo = t.med_codigo INNER JOIN obrasoc as o ON o.obs_codigo = t.obs_codigo INNER JOIN especial as e ON e.esp_codigo = m.esp_codigo WHERE t.tur_numero IN (".addslashes($lstTurnos).")"; //die($sql); //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); //$rs = true; if( !$rs ) { $errorPoint = 'Error al enviar los emails'; return false; //print_r('Rollback['.$res.']');print_r("\n"); //print_r('errorPoint['.$errorPoint.']');print_r("\n"); } return true; } catch ( Exception $e ) { $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error:".($e->__toString()); logTrace(debug_backtrace(),$e->__toString()); return false; } } function enviarEmailTurno(&$resultInfo) { if( isset($_REQUEST["emailtype"]) && !empty($_REQUEST["emailtype"]) && !is_null($_REQUEST["emailtype"]) && isset($_REQUEST["lsttur"]) && !empty($_REQUEST["lsttur"]) && !is_null($_REQUEST["lsttur"]) ) { $continue = true; switch( $_REQUEST["emailtype"] ) { //Confirmacion de Alta de Turno // TYPE_EMAIL_CT case 1:{$emailTipo=1;$continue = true;}break; //Recordatorio de Turno // TYPE_EMAIL_RECORDATORIO case 3:{$emailTipo=3;$continue = true;}break; default: { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Error: Tipo de email desconocido"; $continue = false; } break; } if( $continue ) { $errorPoint = false; $lstTurnos = $_REQUEST["lsttur"]; $motivoComentario = (isset($_REQUEST["cmt"])?$_REQUEST["cmt"]:''); $resultado = enviarEmailTurnosMasivo($lstTurnos, $emailTipo, $motivoComentario,$errorPoint); if ( !$resultado ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = $errorPoint; } else { $resultInfo['code'] = 0; $resultInfo['data'] = true; } } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } } //SMS function sendSms($phoneNumber, $messageText) { // $client = new Client(); // $client->setApplicationName('Google Messages API'); // $client->setScopes([AndroidManagement::ANDROIDMANAGEMENT]); // $client->setAuthConfig('path/to/your/credentials.json'); // $service = new AndroidManagement($client); // $message = new AndroidManagement\Message(); // $message->setPhoneNumber($phoneNumber); // $message->setText($messageText); // try { // $service->enterprises()->devices()->messages()->send('enterprises/your-enterprise-id', $message); // echo "SMS enviado exitosamente."; // } catch (Exception $e) { // echo 'Error al enviar SMS: ', $e->getMessage(); // } // URL del endpoint de la API $url = 'https://./apps/api/v1/sms'; $url = 'https://./apps/api/v1/sms'; // Datos del mensaje $data = [ 'to' => '+5493512349009', // Número de teléfono del destinatario 'message' => 'Tu código de verificación es: 123456' ]; // Configuración de la solicitud $options = [ 'http' => [ 'header' => "Content-Type: application/json\r\n" . "Authorization: Bearer AIzaSyAqBc5egVVjSEUzbF_mDFNrce0HLJzn3Oo\r\n", 'method' => 'POST', 'content' => json_encode($data), ], ]; // Crear contexto de la solicitud $context = stream_context_create($options); // Enviar la solicitud $result = file_get_contents($url, false, $context); if ($result === FALSE) { // Manejo de errores die('Error al enviar el SMS'); } // Mostrar resultado echo $result; } // -------------------------------------------- // END COMUNICACION // -------------------------------------------- //VALIDAR BOOT WHATSAPP ESTA FUNCIONANDO function isAliveBootWhatsapp(&$resultInfo=false,&$debug="") { try { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ $url = $GLOBALS['URL_WHATSAPP_CUSTOMER_NODEJS_SERVER']; $datos = array(); $ch = curl_init($url); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($datos)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $return = curl_exec($ch); $err = curl_error($ch); curl_close($ch); if( $err ) { // $response = array( // "code" => 1 // "r" => 0 // ,"e" => print_r($err,true) // ); $resultInfo['code'] = 100; $resultInfo['errorDes'] = "Error:".(print_r($err,true)); //$resinfo = $response; //$this->registrarLog("getAutorizacion_error_".date("Ymd_H_i_s"),$err); // print_r("---------ERROR WP NODEJS-------------");print_r("\n"); // print_r($err);print_r("\n"); // print_r("----------------------------");print_r("\n"); // die; return false; } else { //$this->registrarLog("getAutorizacion_ok_".date("Ymd_H_i_s"),$return); $s = substr($return,strpos($return,"{")); $resultado = json_decode($s,true,512,JSON_INVALID_UTF8_IGNORE); //$resultado = $s; // $response = array( // "r" => 1 // ,"res" => $resultado // ); //$resinfo = $resultado; // print_r("---------RESULTADO WP NODEJS---------------");print_r("\n"); // print_r($resultado);print_r("\n"); // print_r("----------------------------");print_r("\n"); // die; // print_r($resultado);print_r("\n"); // print_r("----------------------------");print_r("\n"); // print_r("---------RESULTADO---------------");print_r("\n"); $resultInfo['code'] = 0; $resultInfo['data'] = array("status" => 0,$response=>json_encode($resultado)); return true; } //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS // print_r(">> !!ERROR AL CONSULTAR EL WEB SERVICE.");print_r("\n"); // print_r(">> DETALLE:");print_r("\n"); // print_r(">> ".$e->__toString());print_r("\n"); // print_r(">> ------------------------------------");print_r("\n"); // $debug.=">> !!ERROR AL CONSULTAR EL WEB SERVICE."."\n"; // $debug.=">> DETALLE:"."\n"; // $debug.=">> ".$e->__toString()."\n"; // $debug.=">> ------------------------------------"."\n"; // die; $resultInfo['code'] = 101; $resultInfo['errorDes'] = "Error Exception:".(print_r($e->__toString(),true)); return false; } } ?>