require './vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // use PhpOffice\PhpSpreadsheet\IOFactory; //use Neysi\DirectPrint\DirectPrint; // use Mike42\Escpos\PrintConnectors\FilePrintConnector; // use Mike42\Escpos\Printer; use Dompdf\Dompdf; use Spipu\Html2Pdf\Html2Pdf; use Spipu\Html2Pdf\Exception\Html2PdfException; use Spipu\Html2Pdf\Exception\ExceptionFormatter; use Mpdf\Mpdf; //require_once 'dompdf/autoload.inc.php'; function debug($txt='',$fd=false) { if(isset($_REQUEST['debug'])) { print_r($txt);print_r("\n"); if($fd){die(" <<< spider");} } } function corsTmp() { // Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day } // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); exit(0); } } function saveLog($fileprefix,$data) { $fichero = './logsremotos/logs_'.$fileprefix.(date('dmY_His')).'.txt'; // Abre el fichero para obtener el contenido existente //$actual = file_get_contents($fichero); // Añade una nueva persona al fichero $actual = "--DATA--"."\n"; $actual.= print_r($data,true)."\n"; // Escribe el contenido al fichero file_put_contents($fichero, $actual); } function validateTokenOnAction(&$tokenInfo=false,$result=false,&$userId) { if( isset($_REQUEST["token"]) && !is_null($_REQUEST["token"]) ) { //Validar el Token $resultInfo = false; $defaultErrorMsj= false; $result = false; $userId = false; $resultado = validateToken($_REQUEST["token"],$resultInfo,$defaultErrorMsj,$userId,$tokenInfo); //print_r("r[".$resultado."]");die; return $resultado; } return TOKEN_NOT_REQUIRE; } function validateToken($token,&$resultInfo,&$defaultErrorMsj,&$userId,&$tokenInfo=false) { //Validar el Token //$tokenInfo = false; $result = false; $userId = false; $resultado = Acl::validateToken($_REQUEST["token"],$tokenInfo,$result); if( $result == Acl::TOKEN_VALID ) { $userId = $tokenInfo->uid; $resultado = true; } elseif( $result == Acl::TOKEN_EXPIRED ) { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $resultado = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } else { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $resultado = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } return $resultado; } function validarTokenFast(&$resultInfo) { //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'; $resultInfo=array(); $resultInfo['code'] = 401; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } else { $defaultErrorMsj = 'SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE'; $resultInfo=array(); $resultInfo['code'] = 401; $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; } return $userId; } function saveWebComment() { $nombre = substr((isset($_REQUEST['nombre']) ?base64_decode($_REQUEST['nombre']) :''),0,99); $email = substr((isset($_REQUEST['email']) ?base64_decode($_REQUEST['email']) :''),0,99); $telefono = substr((isset($_REQUEST['tel']) ?base64_decode($_REQUEST['tel']) :''),0,99); $comentario = substr((isset($_REQUEST['mensaje']) ?base64_decode($_REQUEST['mensaje']):''),0,3999); $sql = "INSERT INTO web.contactos_recibidos ( con_fecha ,con_nombre ,con_email ,con_tel ,con_coment ,con_visado ) VALUES ( GETDATE() ,'".addslashes($nombre)."' ,'".addslashes($email)."' ,'".addslashes($telefono)."' ,'".addslashes($comentario)."' ,0 )"; //print_r($sql);die; $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { return true; } return false; } function enviarEmailContacto() { $nombre = false; $email = false; $telefono = false; $comentario = false; //print_r($_REQUEST);die; if( !isset($_REQUEST['nombre']) || is_null($_REQUEST['nombre']) || empty($_REQUEST['nombre']) ) { return 1; //Nombre invalido/vacio } else { $nombre = base64_decode($_REQUEST['nombre']); } if( !isset($_REQUEST['email']) || is_null($_REQUEST['email']) || empty($_REQUEST['email']) ) { return 2; //Email invalido/vacio } else { $email = base64_decode($_REQUEST['email']); } if( !isset($_REQUEST['tel']) || is_null($_REQUEST['tel']) || empty($_REQUEST['tel']) ) { return 3; //Telefono invalido/vacio } else { $telefono = base64_decode($_REQUEST['tel']); } if( !isset($_REQUEST['mensaje']) || is_null($_REQUEST['mensaje']) || empty($_REQUEST['mensaje']) ) { return 4; //Comentario invalido/vacio } else { $comentario = base64_decode($_REQUEST['mensaje']); } $subject = "Consulta Web SMI"; $from = $GLOBALS['FROM']; $fromN = $GLOBALS['FROMN']; $body = ""; $body .= '-----------------------------------------------'. "\n"; $body .= 'Fecha: '. date("d/m/Y H:i:s") . "\n"; $body .= '-----------------------------------------------'. "\n"; $body .= 'Nombre: '. $nombre . "\n"; $body .= '-----------------------------------------------'. "\n"; $body .= 'Teléfono:'. $telefono . "\n"; $body .= '-----------------------------------------------'. "\n"; $body .= 'Email: '. $email . "\n"; $body .= '-----------------------------------------------'. "\n"; $body .= 'Mensaje: '. $comentario . "\n"; $uniq_id = md5(uniqid(time())); $Headers = "Date: ".RFCDate()."\r\n"; $Headers .= "Return-Path: ".$from."\r\n"; $Headers .= 'From: "'.$fromN.'" <'.$from.'>'."\r\n"; $Headers .= "Message-ID: <".$uniq_id."@localhost>"."\r\n"; $Headers .= "X-Priority: 3"."\r\n"; $Headers .= "MIME-Version: 1.0"."\r\n"; $Headers .= "Content-type: text/html; charset=iso-8859-1"."\r\n"; $exito = @mail(EMAIL_CONSULTAS, $subject, $body, $Headers); //$exito = @mail(EMAIL_INFOSMI, $subject, $body, $Headers); //$exito = @mail(EMAIL_ROMPEPELOTAS, $subject, $body, $Headers); $intentos=1; $reintentos=2; while ((!frmLoading) && ($intentos < $reintentos)) { sleep(5); $exito = @mail(EMAIL_CONSULTAS, $subject, $body, $Headers); //$exito = @mail(EMAIL_INFOSMI, $subject, $body, $Headers); //$exito = @mail(EMAIL_ROMPEPELOTAS, $subject, $body, $Headers); $intentos++; } print_r("exito[$exito]");die; return 0; } function sendComentario(&$resultInfo) { //$resultado = enviarEmailContacto(); $resultado = enviarEmailContactoSMI(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; } else { switch($resultado) { case 1: { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El nombre esta vacio"; } break; case 2: { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El email esta vacio"; } break; case 3: { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "El teléfono esta vacio"; } break; case 4: { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "El comentario esta vacio"; } break; default: { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Se produjo un error al recibir el comentario"; } break; } } } function getReplaceDataWs($tipo, $body, $datos) { switch($tipo) { //Confirmaicion de Alta de Turno case TYPE_EMAIL_CT: $body = str_replace('{turnoN}', $datos['id'], $body); $body = str_replace('{turnoF}', $datos['info'][0], $body); $body = str_replace('{turnoH}', $datos['info'][1], $body); $body = str_replace('{turnoO}', $datos['info'][2], $body); $body = str_replace('{turnoP}', $datos['info'][3], $body); $body = str_replace('{turnoM}', $datos['info'][4], $body); $body = str_replace('{turnoE}', $datos['info'][5], $body); break; //Cancelacion de Turno case TYPE_EMAIL_CCT: $body = str_replace('{turnoN}', $datos['id'], $body); $body = str_replace('{turnoF}', $datos['info'][0], $body); $body = str_replace('{turnoH}', $datos['info'][1], $body); $body = str_replace('{turnoO}', $datos['info'][2], $body); $body = str_replace('{turnoP}', $datos['info'][3], $body); $body = str_replace('{turnoM}', $datos['info'][4], $body); $body = str_replace('{turnoE}', $datos['info'][5], $body); break; } return $body; } function getEmail_CT_HTMLWs() { //*********************************************************** // HTML //*********************************************************** $msjHTML ='
 

Acuse de Confirmación de Turno

 
Los datos de turno, son los siguientes
 
N° Turno:   {turnoN}
Fecha:   {turnoF}
Hora:   {turnoH}
Obra Social:   {turnoO}
Plan:   {turnoP}
Profesional:   {turnoM}
Especialidad:   {turnoE}
 
[ ATENCIÓN: No responda este email, fue generado Automáticamente por el Sistema ]
 
Generado por: LandaMed Software de gestión integral de centros médicos - Desarrollado por Landaware I+D
'; return $msjHTML; } function getEmail_CCT_HTMLWs() { //*********************************************************** // HTML //*********************************************************** $msjHTML ='
 

Acuse de Cancelación de Turno

 
Los datos del turno Cancelado, son los siguientes
 
N° Turno:   {turnoN}
Fecha:   {turnoF}
Hora:   {turnoH}
Obra Social:   {turnoO}
Plan:   {turnoP}
Médico:   {turnoM}
Especialidad:   {turnoE}
 
[ ATENCIÓN: No responda este email, fue generado Automáticamente por el Sistema ]
 
Generado por: LandaMed Software de gestión integral de centros médicos - Desarrollado por Landaware I+D
'; return $msjHTML; } function getEmail_SI_HTML() { //*********************************************************** // HTML //*********************************************************** $msjHTML ='
 

Solicitud de Interconsulta

 
Profesional Solicitante {SOLICITANTE}
 
Profesional Efector {EFECTOR}
 
Fecha {FECHA}
 
{RESUMEN}
Detalle del Pedido de Interconsulta
 

Ante cualquier consulta, por favor, contactarse con:

consultorio@sanatorioduartequiros.com

Saludos cordiales,

Secretaria de turnos SDQ

 
[ ATENCIÓN: No responda este email, fue generado Automáticamente por el Sistema ]
 
Generado por: LandaMed Software de gestión integral de centros médicos - Desarrollado por Landaware I+D
'; return $msjHTML; } function sendEmailConfirmacionWs($tipo, $idTurno, $finalCall=false) { // Envio de emails de Alertas $body = ''; if( $tipo == TYPE_EMAIL_CT) { $infoTurno = getDataTurnoWs($idTurno); $datos = array(); $datos['id'] = $idTurno; $datos['info'] = array(); $datos['info'][0] = $infoTurno[0]; $datos['info'][1] = $infoTurno[1]; $datos['info'][2] = $infoTurno[2]; $datos['info'][3] = $infoTurno[3]; $datos['info'][4] = $infoTurno[4]; $datos['info'][5] = $infoTurno[5]; $datos['info'][6] = ''; $datos['info'][7] = ''; $datos['info'][8] = $infoTurno[10]; $datos['email'] = $infoTurno[9]; } if( $tipo == TYPE_EMAIL_CCT) { $datos = array(); $datos['id'] = $idTurno['id']; $datos['info'] = $idTurno['data']; $datos['email'] = $idTurno['data'][9]; } if( $tipo == TYPE_EMAIL_RC) { $datos = array(); $datos['dni'] = $idTurno['dni']; $datos['cl'] = $idTurno['cl']; $datos['email'] = $idTurno['email']; } // ---------------------- // VALIDACION DEL EMAIL // ---------------------- if( !(filter_var($datos['email'], FILTER_VALIDATE_EMAIL)) ) { //Email inválido return false; } else { switch($tipo) { //Confirmaicion de Alta de Turno case TYPE_EMAIL_CT: $txtSubject = "Confirmación de Turno"; $body = getEmail_CT_HTMLWs(); break; //Confirmaicion de Cancelacion de Turno case TYPE_EMAIL_CCT: $txtSubject = "Cancelación de Turno"; $body = getEmail_CCT_HTMLWs(); break; //Recuperar Clave case TYPE_EMAIL_RC: $txtSubject = "Recuperar Clave"; $body = '';//getEmail_CCT_HTMLWs(); break; } $body = getReplaceData($tipo, $body, $datos); $subject = $GLOBALS['SUBJECT'] . $txtSubject; $from = $GLOBALS['FROM']; $fromN = $GLOBALS['FROMN']; if( !$finalCall ) { saveEmailOnQueue($from,$subject,$tipo,$datos); } else { $uniq_id = md5(uniqid(time())); $Headers = "Date: ".RFCDate()."\r\n"; $Headers .= "Return-Path: ".$from."\r\n"; $Headers .= 'From: "'.$fromN.'" <'.$from.'>'."\r\n"; $Headers .= "Message-ID: <".$uniq_id."@localhost>"."\r\n"; $Headers .= "X-Priority: 3"."\r\n"; $Headers .= "MIME-Version: 1.0"."\r\n"; $Headers .= "Content-type: text/html; charset=iso-8859-1"."\r\n"; $exito = @mail($datos['email'], $subject, $body, $Headers); $intentos=1; $reintentos=2; while ((!$exito) && ($intentos < $reintentos)) { sleep(5); $exito = @mail($datos['email'], $subject, $body, $Headers); $intentos++; } } } } function getDataTurnoWs($idTurno) { $sql = "SELECT e.esp_denom AS Esp , m.med_nombre AS Med , t.tur_fecha AS Fec , t.tur_hora AS Hor , t.tur_numero AS CodT , t.med_codigo AS idMed , tt.tit_abrev AS Tit , o.obs_denom AS Obs , op.obsp_denom AS Plan_ , t.obs_codigo AS idO , t.obsp_cod AS idP , cl.cli_nombre As Nombre , cl.cli_email As Email , t.tur_token as Token , ( CASE WHEN t.cli_codigo_padre IS NULL THEN '0' ELSE (SELECT cc.cli_email FROM clientes AS cc WHERE cc.cli_codigo = t.cli_codigo_padre ) END ) As EmailClieOrg ,cl.cli_dni as dni FROM turnos AS t , medicos AS m , especial AS e , tbl_titulos AS tt , obrasoc AS o , obsplan As op , clientes As cl WHERE t.tur_numero = ".$idTurno." 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 cl.cli_codigo = t.cli_codigo"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $counter++; $fecha = date("d/m/Y", strtotime(substr($row["Fec"],0,10))); $hora = $row["Hor"]; if(strlen($hora)<4) { $hora = '0'.substr($hora,0,1).':'.substr($hora,1,2); } else { $hora = substr($hora,0,2).':'.substr($hora,2,2); } $outPut[0] = $fecha; $outPut[1] = $hora; $outPut[2] = $row["Obs"]; $outPut[3] = $row["Plan_"]; $outPut[4] = $row["Tit"].' '.$row["Med"]; $outPut[5] = $row["Esp"]; $outPut[6] = $row["idO"]; $outPut[7] = $row["idP"]; $outPut[8] = $row["Nombre"]; $outPut[9] = (intval($row["EmailClieOrg"])!==0?$row["EmailClieOrg"]:$row["Email"]); $outPut[10]= $row["Token"]; $outPut[11]= $row["dni"]; } return $outPut; } function getListObraSociales($allFields=false,$flagAll=false,$flagDashBoard=false,$flagDisp=false,$flagBloq=false,$flagRecCost=false,$flagWhatsapp=false,$flagApp=false) { $fields = ' [obs_codigo] AS obsid ,[obs_denom] AS obsname ,[obs_lock] AS obsst ,[obs_receta_con_costo] AS obsrctct ,[obs_whatsappboot] AS obswtbo ,[obs_app_activo] AS obsappact'; if( $allFields ) { $fields = ' * '; } $order = " ORDER BY [obs_denom]"; // AND [obs_codigo] > 1 if( $flagAll || $flagDashBoard ) { $where = ""; if( $flagDisp && !$flagBloq ){$where = " WHERE obs_lock = 0 ";} if( !$flagDisp && $flagBloq ){$where = " WHERE obs_lock = 1 ";} $sep = ($where==""?" WHERE ":" AND "); if( $flagRecCost ){$where.= $sep . " obs_receta_con_costo = 1 ";} $sep = ($where==""?" WHERE ":" AND "); if( $flagWhatsapp ){$where.= $sep . " obs_whatsappboot = 1 ";} $sep = ($where==""?" WHERE ":" AND "); if( $flagApp ){$where.= $sep . " obs_app_activo = 1 ";} $sql = "SELECT " . $fields . " FROM dbo.[obrasoc] ". $where . $order; } else { $where = ""; if( $flagDisp && !$flagBloq ){$where = " WHERE obs_lock = 0 ";} if( !$flagDisp && $flagBloq ){$where = " WHERE obs_lock = 1 ";} $sql = "SELECT " . $fields . " FROM dbo.[obrasoc] WHERE [obs_lock] = 0 AND [obs_web] = 1 ". $order; } //print_r($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function updateObsFeature($feature,$obsId) { switch( $feature ) { case 'bloq':{ $field = " obs_lock = (CASE WHEN obs_lock = 1 THEN 0 ELSE 1 END)";}break; case 'rec': { $field = " obs_receta_con_costo = (CASE WHEN obs_receta_con_costo = 1 THEN 0 ELSE 1 END)";}break; case 'wt': { $field = " obs_whatsappboot = (CASE WHEN obs_whatsappboot = 1 THEN 0 ELSE 1 END)";}break; case 'app': { $field = " obs_app_activo = (CASE WHEN obs_app_activo = 1 THEN 0 ELSE 1 END)";}break; } //print_r($sql); $sql = " UPDATE dbo.[obrasoc] SET " . $field . " WHERE obs_codigo = '".addslashes($obsId)."'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { return false; } return true; } function getListObraSocialesPlanes($idObs,$allFields=false) { $fields = ' [obsp_cod] AS obsplanid,[obsp_denom] AS obsplanname'; if( $allFields ) { $fields = ' * '; } $order = " ORDER BY [obsp_denom]"; $sql = "SELECT " . $fields . " FROM dbo.[obsplan] WHERE [obs_codigo] = " .$idObs. $order; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} if(isset($_REQUEST['isp'])) { $itemSel = array(); $x = array_push($itemSel,array("obsplanid"=>"0","obsplanname"=>'Seleccione un Plan')); $rs = array_merge($itemSel, $rs); } return $rs; } function getMedicoOtrasEspe($idMed) { $sql = "SELECT m.esp_codigo, e.esp_denom as esp FROM dbo.[med_especialidades] AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo WHERE [med_codigo] = " .$idMed; $sql = "SELECT m.esp_codigo, e.esp_denom as esp FROM dbo.[med_especialidades] AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN medicos as med ON med.med_codigo = m.med_codigo WHERE m.med_codigo = " .$idMed." AND med.esp_codigo <> m.esp_codigo AND e.esp_web = 1"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return 'false';} return $rs; } function getListProfesionales(&$profesionales,$flagRecientes=false,$especialidad=false,$idCliente=false,$soloactivos=false) { /* DECLARE @startOfCurrentMonth DATETIME SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0) SELECT * FROM Member WHERE date_created >= DATEADD(month, -1, @startOfCurrentMonth) -- this was originally misspelled AND date_created < @startOfCurrentMonth */ $sqlFR = array(); $sqlFR[0] = ""; $sqlFR[1] = ""; $sqlSub = ""; /*if( $flagRecientes ) { $sqlFR[0] = ",( SELECT DISTINCT med_codigo FROM dbo.turnos WHERE tur_asiste = 1 AND cli_codigo = ".$idCliente." AND tur_fecha >= DATEADD(month, -6, (DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0))) AND tur_fecha < (DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)) ) mr "; $sqlFR[1] = " AND m.med_codigo = mr.med_codigo "; }*/ if( $soloactivos ) { $soloactivos = ' AND m.med_bloqueado = 0 '; } else { $soloactivos = ''; } if( $flagRecientes ) { $sqlSub = " INNER JOIN ( SELECT DISTINCT med_codigo FROM dbo.turnos WHERE tur_asiste = 1 AND cli_codigo = ".$idCliente." AND tur_fecha >= DATEADD(month, -6, (DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0))) AND tur_fecha < (DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)) ) AS mr ON m.med_codigo = mr.med_codigo "; } if( $especialidad ) { $sqlSub = " SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero ,m.med_rango_dias AS rango FROM medicos AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos as t ON m.tit_codigo = t.tit_codigo WHERE m.med_web IS NOT NULL AND m.med_web = 1 AND m.med_bloqueado = 0 AND e.esp_web = 1 AND m.esp_codigo = ".$especialidad; $sqlSub.= " UNION "; $sqlSub.= " SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero ,m.med_rango_dias AS rango FROM medicos AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos as t ON m.tit_codigo = t.tit_codigo LEFT JOIN med_especialidades AS me ON m.med_codigo = me.med_codigo WHERE m.med_web IS NOT NULL AND m.med_web = 1 AND m.med_bloqueado = 0 AND e.esp_web = 1 AND me.esp_codigo = ".$especialidad; $sql = " SELECT TIN.CodM ,TIN.NomM ,TIN.EspM ,TIN.TitM ,TIN.MedMsg ,TIN.turnero ,TIN.rango FROM (".$sqlSub.") AS TIN ORDER BY TIN.NomM ASC"; } else { $where = ""; if(isset($_REQUEST["ew"])) { $where = " AND med_whatsappboot = 1"; } /* $sql = "SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero FROM medicos AS m INNER JOIN especial AS AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos as t ON m.tit_codigo = t.tit_codigo ".$sqlFR[0]." WHERE m.med_web = 1 AND m.med_bloqueado = 0 ".$sqlFR[1]." ORDER BY m.med_nombre ASC"; */ $sql = "SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero ,m.med_rango_dias AS rango FROM medicos AS m LEFT JOIN especial AS e ON m.esp_codigo = e.esp_codigo LEFT JOIN tbl_titulos AS t ON m.tit_codigo = t.tit_codigo ".$sqlSub." WHERE m.med_web IS NOT NULL AND m.med_web = 1 AND m.med_bloqueado = 0 AND e.esp_web = 1 ".$where." ORDER BY m.med_nombre ASC"; } //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $profesionales = $GLOBALS['dbSQL']->getAll(); for($i=0;$iQuery($sql); if ( !$rs ) { return false; } $profesionales = $GLOBALS['dbSQL']->getAll(); for($i=0;$iQuery($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $dataMedico[0] = $row["med_codigo"]; $dataMedico[1] = $row["med_nombre"]; $dataMedico[2] = $row["esp_denom"]; $dataMedico[3] = $row["tit_abrev"]; $res=true; } } return $dataMedico; } function getNombreObraSocial($idO) { $sql = "SELECT obs_denom FROM dbo.[obrasoc] WHERE obs_codigo = ". $idO; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $obs_denom=''; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $obs_denom = $row["obs_denom"]; $conta++; } if($conta>0) { return $obs_denom; } } return ''; } function getPacienteInfo($idPaciente) { $dataPaciente = array(); $dataPaciente[0]= false; $dataPaciente[1]= false; $dataPaciente[2]= false; $sql = "SELECT * FROM clientes WHERE cli_codigo = ".$idPaciente; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $dataPaciente[0] = $row["cli_dni"]; $dataPaciente[1] = $row["cli_nombre"]; $dataPaciente[2] = $row["cli_email"]; $res=true; } } return $dataPaciente; } function getNombrePlan($idO, $idP) { $sql = "SELECT obsp_denom AS Plan_Name FROM dbo.[obsplan] WHERE obs_codigo = ". $idO." AND obsp_cod = ". $idP; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $Plan_Name=''; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $Plan_Name = $row["Plan_Name"]; $conta++; } if($conta>0) { return $Plan_Name; } } return ''; } function getListProfesionalesNombre() { if( isset($_REQUEST["namep"]) && !empty($_REQUEST["namep"]) && !is_null($_REQUEST["namep"]) ) { $nombre = $_REQUEST["namep"]; if(!$nombre){return "";} $nombre = explode(' ',$nombre); $t = count($nombre); if($t > 0) { $words = ''; for($i=0;$i<$t;$i++) { $words .= '%'.$nombre[$i]; } } elseif($t==1) { $words = '%'.$nombre[0].'%'; } else { return ""; } $sql = " SELECT med_codigo AS CodM ,med_nombre AS NomM ,esp_denom AS EspM ,tit_abrev AS TitM ,med_webcoment AS MedMsg FROM medicos AS m, especial AS e, tbl_titulos t WHERE LOWER(med_nombre) LIKE '".mb_strtolower($words)."%' AND m.med_web = 1 AND m.med_bloqueado = 0 AND m.esp_codigo = e.esp_codigo AND t.tit_codigo = m.tit_codigo ORDER BY med_nombre ASC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } else { return false; //$resultInfo['code'] = 2; //$resultInfo['errorDes'] = "El nombre o parte del nombre del profesional no fue recibido"; } } function getListEspecialidadesNombre() { if( isset($_REQUEST["namep"]) && !empty($_REQUEST["namep"]) && !is_null($_REQUEST["namep"]) ) { $nombre = $_REQUEST["namep"]; if(!$nombre){return "";} $nombre = explode(' ',$nombre); $t = count($nombre); if($t > 0) { $words = ''; for($i=0;$i<$t;$i++) { $words .= '%'.$nombre[$i]; } } elseif($t==1) { $words = '%'.$nombre[0].'%'; } else { return ""; } $sql = "SELECT [esp_codigo] AS Cod ,[esp_denom] AS Esp FROM dbo.[especial] WHERE LOWER(esp_denom) LIKE '".mb_strtolower($words)."%' ORDER BY esp_denom"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } else { return false; //$resultInfo['code'] = 2; //$resultInfo['errorDes'] = "El nombre o parte del nombre del profesional no fue recibido"; } } function updateEspecialidadFeature($feature,$espId) { switch( $feature ) { case 'web': { $field = " esp_web = (CASE WHEN esp_web = 1 THEN 0 ELSE 1 END)";}break; case 'email': { $field = " esp_recordatorio = (CASE WHEN esp_recordatorio = 1 THEN 0 ELSE 1 END)";}break; case 'wt': { $field = " esp_whatsappboot = (CASE WHEN esp_whatsappboot = 1 THEN 0 ELSE 1 END)";}break; } //print_r($sql); $sql = " UPDATE dbo.[especial] SET " . $field . " WHERE esp_codigo = '".addslashes($espId)."'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { return false; } return true; } function getListProfesionalesObs() { if( isset($_REQUEST["idobs"]) && !empty($_REQUEST["idobs"]) && !is_null($_REQUEST["idobs"]) && is_numeric($_REQUEST["idobs"]) ) { $sql = "SELECT m.med_codigo AS CodM ,med_nombre AS NomM ,esp_denom AS EspM ,tit_abrev AS TitM ,med_webcoment AS MedMsg FROM medicos AS m, especial AS e, tbl_titulos AS t, obsmed AS o WHERE m.med_web = 1 AND m.med_bloqueado = 0 AND o.obs_codigo = ".$_REQUEST["idobs"]." AND m.esp_codigo = e.esp_codigo AND t.tit_codigo = m.tit_codigo AND o.med_codigo = m.med_codigo ORDER BY med_nombre ASC"; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } else { //$resultInfo['code'] = 2; //$resultInfo['errorDes'] = "El código de la obra social no fue recibido"; } } function getListProfesionalesEsp() { if( isset($_REQUEST["idesp"]) && !empty($_REQUEST["idesp"]) && !is_null($_REQUEST["idesp"]) && is_numeric($_REQUEST["idesp"]) ) { $sql = "SELECT m.med_codigo AS CodM ,med_nombre AS NomM ,esp_denom AS EspM ,tit_abrev AS TitM ,med_webcoment AS MedMsg FROM medicos AS m, especial AS e, tbl_titulos AS t WHERE m.med_web = 1 AND m.med_bloqueado = 0 AND m.esp_codigo = ".$_REQUEST["idesp"]." AND m.esp_codigo = e.esp_codigo AND t.tit_codigo = m.tit_codigo ORDER BY med_nombre ASC"; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código de la obra social no fue recibido"; } } function getConveniosMedico($idmedico,$flagName=true) { $medName = ($flagName?",m.med_nombre AS MedName":""); $sql = "SELECT m.med_codigo AS MedId ,o.obs_codigo AS ObsC ,o.obs_denom AS ObsN ".$medName." FROM medicos m, obrasoc o, obsmed a WHERE m.med_codigo = ".$idmedico." AND m.med_web = 1 AND m.med_bloqueado = 0 AND a.med_codigo = m.med_codigo AND a.obs_codigo = o.obs_codigo AND o.obs_lock != 1 ORDER BY obs_denom"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} return $rs; } function ValidarUmbralWs($med, $idObraSocial, $fecha) { $sql = "SELECT [obm_maxdia] FROM [obsmed] WHERE [med_codigo] = ". $med ." AND [obs_codigo] = ". $idObraSocial ." AND [obm_maxdia] IS NOT NULL AND [obm_maxdia] > 0 "; //if($fecha=='2022-08-06'){print_r($sql);print_r("\n");} $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $obm_maxdia=0; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $obm_maxdia = intval($row["obm_maxdia"]); $conta++; } if( $conta > 0 ) { //Validar Umbral $sql = "SELECT COUNT([tur_numero]) As TotTur FROM [turnos] WHERE [med_codigo] = " . $med . " AND [obs_codigo] = " . $idObraSocial . " AND LEFT(CONVERT(VARCHAR,tur_fecha, 120), 10) = LEFT(CONVERT(VARCHAR,'".$fecha."', 120), 10)"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $TotTur=0; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $TotTur = intval($row["TotTur"]); $conta++; } if($conta>0) { if($TotTur >= $obm_maxdia) { //Supero el umbral return false; } } } } } return true; } function ValidarConvenioWs($med, $idObraSocial) { $sql = "SELECT count([med_codigo]) As TotO FROM dbo.[obsmed] WHERE [med_codigo] = ".$med." AND [obs_codigo] = ".$idObraSocial; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["TotO"]; } if(intval($res)<=0) { return false; } return true; } function ValidarObraSocialWeb($idObraSocial) { $sql = "SELECT obs_web FROM dbo.[obrasoc] WHERE [obs_codigo] = ".$idObraSocial; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["obs_web"]; } if(intval($res)<=0) { return false; } return true; } function ValidarFeriado($med,$fecha) { $feriados = getDiasFeriadosNew(); $feriadosXMedico = getDiasFeriadosXMedicoNew($med); if( !excluirDia( $fecha, $feriados ) && !excluirDiaFeriadoXMedico( $fecha, $feriadosXMedico ) ) { return true; } return false; } function getObsParticular($idObraSocial) { $sql = "SELECT [par_obsp] FROM dbo.[empresa]"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["par_obsp"]; } if( intval($res) == intval($idObraSocial) ) { return true; } } return false; } function getEmpresaInfo() { $sql = "SELECT par_fanta ,par_dir ,par_tel1 ,dgi_cond ,par_cuit ,par_ingbr FROM dbo.empresa as emp LEFT JOIN dgicond AS dgi ON emp.dgi_codigo = dgi.dgi_codigo"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); return $rs; } return false; } function getEmpresaObsParticular() { $sql = "SELECT [par_obsp] FROM dbo.[empresa]"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["par_obsp"]; } return $res; } return false; } function getEmpresaObsContado() { $sql = "SELECT [par_obs_contado] FROM dbo.[empresa]"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["par_obs_contado"]; } return $res; } return false; } function getEmpresaObsPlanContado() { $sql = "SELECT [par_obsp_contado] FROM dbo.[empresa]"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["par_obsp_contado"]; } return $res; } return false; } function getEmpresaNomencladorContado() { $sql = "SELECT [par_nom_contado] FROM dbo.[empresa]"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $res = $row["par_nom_contado"]; } return $res; } return false; } //function ValidarTurnoWs($medico,$fecha,$hora,&$errorList) function ValidarTurnoWs($medico,$fecha,$hora) { //--------------------------------------------------------------------------------- //Validar Turno libre para el medico //--------------------------------------------------------------------------------- //$sql = "SELECT count([tur_numero]) as totT $sql = "SELECT 1 as totT FROM dbo.[turnos] WHERE [med_codigo] = ". $medico." AND LEFT(CONVERT(VARCHAR,tur_fecha, 120), 10) = LEFT(CONVERT(VARCHAR,'".$fecha."', 120), 10) AND [tur_hora] = ". $hora; $rsT = $GLOBALS['dbSQL']->Query($sql); if ( $rsT ) { //$conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $tur=null; foreach($rs as $row) { $tur = $row["totT"]; //$conta++; } //if( $tur > 0 ) if( !empty($tur) || !is_null($tur) || trim($tur)!="" || $tur > 0) { return false; } } return true; } //function registrarLogTurnosEnArchivo($contenido, &$resMsj) function registrarLogTurnosEnArchivo($contenido) { try { //Preparar el nombre del archivo $fileName = 'log_turnos.log'; $filePath = 'logs/'; $file = $filePath.$fileName; $fileHandler = fopen($file, "a+"); fwrite($fileHandler, cleanContenido($contenido)); fclose($fileHandler); //-->$resMsj = 'Reg. Log[Ok]'; return true; } catch (Exception $e) { //$result = 'No se pudo almacenar el log de turnos: ' . $e->getMessage(); //-->$resMsj = 'Reg. Log: Error ['.$e->getMessage().']'; return false; } } function registrarLogDatosPacEnArchivo($contenido, &$resMsj) { try{ //Preparar el nombre del archivo $fileName = 'log_datos_usuarios.txt'; $filePath = ''; $file = $filePath.$fileName; $fileHandler = fopen($file, "a+"); fwrite($fileHandler, cleanContenido($contenido)); fclose($fileHandler); $resMsj = 'Reg. Log[Ok]'; return true; } catch (Exception $e) { //$result = 'No se pudo almacenar el log de datos: ' . $ex->getMessage(); $resMsj = 'Reg. Log: Error ['.$e->getMessage().']'; return false; } } function registrarLogSpecial($contenido, $functionName, $isError=true, $extraInfo='') { try{ //Preparar el nombre del archivo $fileName = 'log_special.log'; $filePath = 'logs/'; $file = $filePath.$fileName; if(is_array($contenido)) { $contenido = serialize($contenido); } $sep = '---------------------------------------------'."\n"; $sep.= ' FUNCION '."\n"; $sep.= '---------------------------------------------'."\n"; $sep.= 'Nombre: [ '.$functionName.' ] '."\n"; $funcion = $sep; if( $isError ) { $contenido = ' [ERROR] ' . "\n" . $contenido; } else { $contenido = ' [OK] ' . "\n" . $contenido; } if( $extraInfo != '' ) { $sep = '---------------------------------------------'."\n"; $sep.= ' EXTRA INFO '."\n"; $sep.= '---------------------------------------------'."\n"; $contenido = $contenido ."\n". $sep . $extraInfo; } $sep = '---------------------------------------------'."\n"; $contenido = ' Fecha/Hora ['.date('d/m/Y h:i:s').'] ' . "\n" . $funcion . $sep . $contenido ."\n"; $fileHandler = fopen($file, "a+"); fwrite($fileHandler, cleanContenido($contenido,true)); fclose($fileHandler); return true; } catch (Exception $e) { return false; } } function cleanContenido($contenido,$char=false) { $contenido = str_replace('','',$contenido); $contenido = str_replace('','',$contenido); $contenido = str_replace('
','',$contenido); //Agregar un peparador if(!$char) { $sep = '---------------------------------------------'."\n"; } else { $sep = '*********************************************'."\n"; } $contenido = $sep . $contenido; return $contenido; } function registrarTurnoWs(&$dataTurno) { $res = null; $debug=''; $familiar = false; $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = ''; $sexo = false; $facn = false; $fechaOrg = $dataTurno["fecha"]; $horaOrg = $dataTurno["hora"]; $tursql = ''; $tel = false; $carnet = ''; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = false; $validaPass = false; $resultado = getValidarDNIFast($dataTurno["dni"], $password, $name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { if( $obsflag ) { //Error obrasocial bloqueada return 9; } if( !ValidarObraSocialWeb($idObS) ) { //Error obra social no valida vía WEB //if($dataTurno["dni"]=='27249289'){die('222222222222222');} return 10; } //if($dataTurno["dni"]=='27249289'){die('1111111111111');} //Obtener el id del paciente $dataTurno["idPaciente"] = $codP; //Formatear la fecha al formato correcto $dataTurno["fecha"] = $dataTurno["fecha"] ." 00:00:00"; if( isset($dataTurno["familiar"]) && $dataTurno["familiar"] ) { $familiar = true; } if( $familiar ) { $dataTurno["obs"] = $idObS; $dataTurno["plan"] = $idPlanObS; } //Es particular $flagParticular = false; if( $dataTurno["obs"] == -1 && $dataTurno["plan"]==-1 ) { $flagParticular = true; } //Validar convenio if( !$flagParticular && !ValidarConvenioWs($dataTurno["medico"], $dataTurno["obs"] ) ) { //Error medico-obrasocial sin convenio return 8; } else { //Validar Umbral if ( !$flagParticular && !ValidarUmbralWs($dataTurno["medico"], $dataTurno["obs"], $dataTurno["fecha"]) ) { //Error umbral alcanzado return 7; } else { if ( !ValidarTurnoWs($dataTurno["medico"], $dataTurno["fecha"], $dataTurno["hora"]) ) { //Error turno ocupado return 6; } else { //Actualizacion del numerador de Turnos $sql = "UPDATE [codigos] SET [num_ultimo] = [num_ultimo] + 1, [num_fecha] = GETDATE() WHERE [num_codigo] = 4"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $sql = "SELECT [num_ultimo] FROM [codigos] WHERE num_codigo = 4"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $conta=0; $rsN = $GLOBALS['dbSQL']->getAll(); foreach($rsN as $row) { $idTurno = $row["num_ultimo"]; $conta++; } if( $conta > 0 ) { if( $flagParticular ) { $dataTurno["obs"] = '(SELECT [par_obsp] FROM dbo.[empresa])'; $dataTurno["plan"] = '(SELECT [par_obpp] FROM dbo.[empresa])'; } $fecha = date("Y-m-d.H:i:s",strtotime($dataTurno["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] ,[tur_token] ) VALUES ( '. $idTurno .' ,'. "'".$fecha ."'".' ,convert(smallint, '. $dataTurno["hora"] .') ,'. $dataTurno["medico"] .' ,'. $dataTurno["idPaciente"] .' ,'. $dataTurno["dni"] .' ,'. $dataTurno["obs"] .' ,'. $dataTurno["plan"] .' ,99 ,0 ,0 ,0 ,'."''".' ,(SELECT [pra_codigo] FROM dbo.[empresa]) ,(SELECT [nom_codigo] FROM dbo.[empresa]) ,'.($dataTurno["telemed"]?'1':'NULL').' ,'.($dataTurno["turcosto"]?1:0).' ,'."'".getComTurnoToken($idTurno,$dataTurno)."'".' )'; $tursql = $sql; $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { /* if(isset($_SESSION['obsNoCoincide'])) { unset($_SESSION['obsNoCoincide']);} if(isset($_SESSION['obsUmbralAlcanzado'])) { unset($_SESSION['obsUmbralAlcanzado']);} if(isset($_SESSION['obsOBS_Bloqueada'])) { unset($_SESSION['obsOBS_Bloqueada']);} */ //Actualizar el ultimo acceso del cliente $sql = "UPDATE [clientes] SET [cli_utlimoingresoweb] = GETDATE() WHERE [cli_dni] = " . $dataTurno["dni"]; $rsC = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rsC ) { //Warning //Fallo actualizacion de Ultimo Acceso } /* if($GLOBALS['EMAIL_DEBUG']&&false)//spider { $data=array(); $data['paciente']='['.($familiar ? $_SESSION['GF']['codP'] : $_SESSION['codP']).'] '.($familiar ? $_SESSION['GF']['name'] : $_SESSION['name']); $data['dni']=($familiar ? $_SESSION['GF']['dni'] : $_SESSION['dni']); $data['familiar']=($familiar ? 'SI' : 'NO'); $data['email']=(isset($_SESSION['email']) && trim($_SESSION['email'])!='' ? $_SESSION['email'] : ''); $data['turnoId']=$idTurno; $data['medico']='['.$medData[0].']'.$medData[3].' '.$medData[1]; $data['osocial']=$dataTurno[2]; $data['plan']=$dataTurno[3]; $data['fechaT']=str_replace('00:00:00',$dataTurno[1],$fecha); sendDebugEmail($data,CONFIRMAR_TURNO_OK,true); } */ $dataTurno["idTurno"] = $idTurno; $dataTurno["email"] = $email; //Enviar Email de Confirmacion if( $GLOBALS['EMAIL_CUSTOMER'] ) { //if( $dataTurno["dni"]=='27249289' ) //{ sendEmailConfirmacionWs(TYPE_EMAIL_CT, $idTurno); //} } //print_r($dataTurno);die; $res = 0; //return 0; } else { //Error insertar turno [3] $res = 4; //return 4; } } else { //Error recuperar numerador $res = 3; //return 3; } } else { //Error recuperar numerador $res = 2; //return 2; } } else { //Error al actualizar numerador $res = 1; //return 1; } } } } } else { //error dni inexistente $res = -1; //return -1; } if( is_null($res) ) { $res = -1; } //print_r($dataTurno);die(" ------- "); $pacienteData = getPacienteInfo((isset($dataTurno["idPaciente"])?$dataTurno["idPaciente"]:0)); $medData = getMedicoInfo((isset($dataTurno["medico"])?$dataTurno["medico"]:0)); $obsData = getNombreObraSocial((isset($dataTurno["obs"])?$dataTurno["obs"]:0)); $planData = getNombrePlan((isset($dataTurno["obs"])?$dataTurno["obs"]:0),(isset($dataTurno["plan"])?$dataTurno["plan"]:0)); if( $res !== 0 ) { if($GLOBALS['LOG_ERROR']) { $data=array(); $data['paciente'] = '['. $dataTurno["idPaciente"].'] '. $pacienteData[1]; $data['dni'] = $pacienteData[0]; $data['familiar'] = 'NO'; $data['email'] = $pacienteData[2]; $data['turnoId'] = (isset($idTurno) ? $idTurno : ''); $data['medico'] = '['.$medData[0].']'.$medData[3].' '.$medData[1]; $data['osocial'] = '['.$dataTurno["obs"].']'. $obsData; $data['plan'] = '['.$dataTurno["plan"].']'. $planData; $data['fechaT'] = $dataTurno['fecha']; $data['error'] = $res; if($GLOBALS['EMAIL_DEBUG']&&false) { sendDebugEmail($data,CONFIRMAR_TURNO_ERROR,false); }//spider if( $GLOBALS['LOG_SPECIAL'] ) { //Log Especial $resultLogEspecial = registrarLogSpecial($data, __FUNCTION__, true,(isset($tursql) ? $tursql : '')); } } } else { $msj = ''; $msj.= 'TIPO EMAIL:[ '. CONFIRMAR_TURNO_OK . " ]

". "\n"; $msj.= 'Paciente: '. '['. $dataTurno["idPaciente"].'] '. $pacienteData[1] . "

". "\n"; $msj.= 'DNI: '. $pacienteData[0] . "

". "\n"; $msj.= 'Email: '. $pacienteData[2] . "

". "\n"; $msj.= 'Es Familiar:'. ' - ' . "

". "\n"; $msj.= 'Id Turno: '. $idTurno . "

". "\n"; $msj.= 'Medico: '. '['.$medData[0].']'.$medData[3].' '.$medData[1] . "

". "\n"; $msj.= 'O. Social: '. '['.$dataTurno["obs"].']'. $obsData . "

". "\n"; $msj.= 'Plan: '. '['.$dataTurno["plan"].']'. $planData . "

". "\n"; $msj.= 'Fecha Turno:'. $dataTurno['fecha'] . "

". "\n"; $msj.= 'Fecha: '. date('d/m/Y H:i:s') . "

". "\n"; $msj.= 'Resultado:[ OK ]

'. "\n"; $resultLog = registrarLogTurnosEnArchivo($msj); } return $res; //return false; } function getListEspecialidades($flagDasborad=false) { if(!$flagDasborad) { $sql = "SELECT [esp_codigo] AS Cod ,[esp_denom] AS Esp FROM dbo.[especial] ORDER BY esp_denom"; } else { $where = ""; if(isset($_REQUEST["ew"])) { $where = " WHERE esp_whatsappboot = 1"; } $sql = "SELECT esp_codigo AS Cod ,esp_denom AS Esp ,esp_recordatorio AS email ,esp_web AS web ,esp_whatsappboot AS wt ,0 AS itemselected FROM dbo.especial ".$where." ORDER BY esp_denom"; } $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function getListTitulosMed() { $sql = "SELECT [tit_codigo] AS Cod ,[tit_abrev] AS Tit FROM dbo.[tbl_titulos] ORDER BY tit_abrev"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function getListEspecialidadesTotalMedicos() { $sql = "SELECT TT0.Cod ,TT0.Esp ,(TT0.totMed + (CASE WHEN TT0.totMedEspecialidades IS NULL THEN 0 ELSE TT0.totMedEspecialidades END)) AS totMed FROM ( SELECT T0.[esp_codigo] AS Cod ,T0.[esp_denom] AS Esp ,(SELECT COUNT(T1.esp_codigo) FROM dbo.[medicos] AS T1 WHERE T1.esp_codigo = T0.esp_codigo AND T1.med_bloqueado = 0 GROUP BY T1.esp_codigo ) AS totMed ,(SELECT COUNT(T2.esp_codigo) FROM dbo.[med_especialidades] AS T2 INNER JOIN dbo.[medicos] AS T3 ON T2.med_codigo=T3.med_codigo WHERE T2.esp_codigo = T0.esp_codigo AND T3.med_bloqueado = 0 GROUP BY T2.esp_codigo ) AS totMedEspecialidades FROM dbo.[especial] AS T0 ) TT0 INNER JOIN especial as e ON TT0.Cod = e.esp_codigo WHERE TT0.totMed IS NOT NULL AND e.esp_web = 1 ORDER BY TT0.Esp"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function getListProfTurnos() { 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"); if( isset($_REQUEST["fecha"]) && !empty($_REQUEST["fecha"]) && !is_null($_REQUEST["fecha"]) ) { $fecha = $_REQUEST["fecha"]; } if( $rango ) { $desde = date("Y-m-d",strtotime($rango[0])); $hasta = date("Y-m-d",strtotime($rango[1])); $rs['fecha'] = $desde . ' - ' . $hasta; //$periodo = " AND ( t.tur_fecha BETWEEN '". $desde ."' AND '". $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) )"; } else { $rs['fecha'] = $fecha; //$periodo = " AND ( t.tur_fecha BETWEEN '". $fecha ."' AND '". $fecha ."' )"; $periodo = " AND ( LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$fecha."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$fecha."', 120), 10) )"; } $sql = "SELECT RTRIM(LTRIM(e.esp_denom)) AS Esp , RTRIM(LTRIM(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 , RTRIM(LTRIM(c.cli_nombre)) AS PACIENTE , RTRIM(LTRIM(o.obs_denom)) AS Obs , RTRIM(LTRIM(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 FROM turnos 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; $resultado = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$resultado ) { return false; } $resultado = $GLOBALS['dbSQL']->getAll(); $rs['total'] = 0; $rs['fecha'] = date("d/m/Y", strtotime($rs['fecha'])); if( count($resultado) > 0 ) { $rs['turnos'] = $resultado; $rs['total'] = count($resultado); } return $rs; } else { return false; } } function getListMisTurnos(&$turnos,$flagDoc=false) { $continue = false; if( $flagDoc ) { if( isset($_REQUEST["doc"]) && !empty($_REQUEST["doc"]) && !is_null($_REQUEST["doc"]) && is_numeric($_REQUEST["doc"]) ) { $where = " t.cli_dni = ".$_REQUEST["doc"]; //SOLO TURNOS NO CONFIRMADOS (ES PARA EL BOOT DE WHTASPP) //-->$where.= " AND t.tur_confirmado = 0"; SIEMPRE TRAER TURNOS, POR MAS QUE ESTEN CONFIRMADOS $continue = true; } } else { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) && is_numeric($_REQUEST["idcli"]) ) { $where = " t.cli_codigo = ".$_REQUEST["idcli"]; $continue = true; } } if( $continue ) { $sql = "SELECT (CASE WHEN t.esp_codigo IS NULL THEN e.esp_denom ELSE t.tur_subesp END) 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 ,0 as ff FROM turnos AS t , medicos AS m , especial AS e , tbl_titulos tt , obrasoc as o , obsplan as op WHERE ".$where." AND LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) >= LEFT(CONVERT(VARCHAR, GETDATE(), 120), 10) 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.tur_asiste = 0 ORDER BY t.tur_fecha DESC, t.tur_hora ASC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} else{$turnos=$rs;} return $rs; } else { return false; } } function getListMisTurnosFamilares(&$turnos) { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) && is_numeric($_REQUEST["idcli"]) ) { $sql = "SELECT (CASE WHEN t.esp_codigo IS NULL THEN e.esp_denom ELSE t.tur_subesp END) 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 ,1 as ff ,c.cli_nombre as Fname ,c.cli_dni as Fdni FROM turnos AS t , medicos AS m , especial AS e , tbl_titulos tt , obrasoc as o , obsplan as op , clientes as c WHERE t.cli_codigo_padre = ".$_REQUEST["idcli"]." AND LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) >= LEFT(CONVERT(VARCHAR, GETDATE(), 120), 10) 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 = c.cli_codigo AND t.tur_asiste = 0 ORDER BY t.tur_fecha DESC, t.tur_hora ASC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} else{$turnos=$rs;} return $rs; } else { return false; } } function getCountListMisTurnos($idCliente) { $total = 0; $totalTurnos = 0; $sql = "SELECT COUNT(*) AS TotTurnos FROM turnos AS t WHERE t.cli_codigo = ".$idCliente." AND t.tur_asiste = 0 AND LEFT(CONVERT(VARCHAR, t.tur_fecha, 120), 10) >= LEFT(CONVERT(VARCHAR, GETDATE(), 120), 10)"; // $sql = "SELECT COUNT(*) AS TotTurnos // FROM turnos AS t // WHERE t.cli_codigo = ".$idCliente." // AND t.tur_asiste = 0 // AND t.tur_fecha >= GETDATE()"; //if($idCliente=='36372'){print_r($sql);die;} $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { //return 0; } $turnos = $GLOBALS['dbSQL']->getAll(); $totalTurnos = $turnos[0]['TotTurnos']; if( $GLOBALS['FAMILIAR'] ) { $_REQUEST["idcli"] = $idCliente; $turnosF=array(); $resultadoF = getListMisTurnosFamilares($turnosF); $totalTurnosFam = count($turnosF); if(count($turnosF)>0) { $total = $totalTurnos + $totalTurnosFam; } } // $turnos = $GLOBALS['dbSQL']->getOne(); // return $turnos['TotTurnos']; //$turnos = $GLOBALS['dbSQL']->getAll(); //return $turnos[0]['TotTurnos']; return $total; } function getEstadisticasAsistencia($idCliente) { $sql = "SELECT T1.TOTAL AS ASISTENCIAS ,T2.TOTAL AS INASISTENCIAS FROM( SELECT TOP 10 COUNT(*) AS TOTAL FROM turnos AS tur1 WHERE tur1.cli_codigo = ".$idCliente." AND tur1.tur_fecha >= DATEADD(day, -180, GETDATE()) AND tur1.tur_asiste = 1 ) AS T1, ( SELECT TOP 10 COUNT(*) AS TOTAL FROM turnos AS tur2 WHERE tur2.cli_codigo = ".$idCliente." AND tur2.tur_fecha >= DATEADD(day, -180, GETDATE()) AND tur2.tur_asiste = 0 ) AS T2"; $sql = "SELECT T1.TOTAL AS ASISTENCIAS ,T2.TOTAL AS INASISTENCIAS FROM( SELECT COUNT(*) AS TOTAL FROM turnos AS tur1 WHERE tur1.cli_codigo = ".$idCliente." AND tur1.tur_fecha >= DATEADD(day, -180, GETDATE()) AND tur1.tur_asiste = 1 ) AS T1, ( SELECT COUNT(*) AS TOTAL FROM turnos AS tur2 WHERE tur2.cli_codigo = ".$idCliente." AND tur2.tur_fecha >= DATEADD(day, -180, GETDATE()) AND tur2.tur_asiste = 0 ) AS T2"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } // $turnos = $GLOBALS['dbSQL']->getOne(); // return array($turnos['ASISTENCIAS'], $turnos['INASISTENCIAS']); $turnos = $GLOBALS['dbSQL']->getAll(); return array($turnos[0]['ASISTENCIAS'], $turnos[0]['INASISTENCIAS']); } function callWebServiceEstadisticas($type,$params) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['HOST_ANALITIC']; ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->queryUserStaticstics($type, $params); $success = json_decode($resultado ,true); return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service"; return false; } } function getRespondioEncuesta($idCliente) { $result = false; try { } catch ( Exception $e ) { //Error al consultar el WS print_r($e->__toString());print_r("\n"); print_r(" ");die; return false; } return $result; } function getCountListProfTurnos($idMedico) { $sql = "SELECT COUNT(*) AS TotTurnos FROM turnos AS t WHERE t.med_codigo = ".$idMedico." AND t.tur_fecha = LEFT(CONVERT(VARCHAR, GETDATE(), 120), 10)"; //if($idCliente=='36372'){print_r($sql);die;} $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return 0; } // $turnos = $GLOBALS['dbSQL']->getOne(); // return $turnos['TotTurnos']; $turnos = $GLOBALS['dbSQL']->getAll(); return $turnos[0]['TotTurnos']; } function getListMisTurnosHistorial($allFields=false) { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) && is_numeric($_REQUEST["idcli"]) ) { $sql = "SELECT (CASE WHEN t.esp_codigo IS NULL THEN e.esp_denom ELSE t.tur_subesp END) AS Esp , m.med_nombre AS Med , convert(varchar, t.tur_fecha, 103) AS Fec , t.tur_hora AS Hor , t.tur_asiste AS Asis , tt.tit_abrev AS Tit FROM turnos AS t , medicos AS m , especial AS e , tbl_titulos tt WHERE t.cli_codigo = ".$_REQUEST["idcli"]." AND t.tur_fecha < GETDATE() AND t.med_codigo = m.med_codigo AND m.esp_codigo = e.esp_codigo AND tt.tit_codigo = m.tit_codigo ORDER BY t.tur_fecha DESC, t.tur_hora DESC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} return $rs; } else { return false; } } function setCancelarTurno() { if( isset($_REQUEST["idtur"]) && !empty($_REQUEST["idtur"]) && !is_null($_REQUEST["idtur"]) && is_numeric($_REQUEST["idtur"]) && isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && is_numeric($_REQUEST["dni"]) ) { $idTurno = $_REQUEST["idtur"]; $dni = $_REQUEST["dni"]; $flagFamiliar = false; if( isset($_REQUEST["ff"]) ) { $flagFamiliar = true; } $infoTurnoAux = getDataTurnoWs($idTurno); $sql = "UPDATE turnos SET usu_codigo_borra = 99 WHERE tur_numero = '" . addslashes($idTurno) . "'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //$res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al actualizar el usuario de borrado los turnos'; } if(!$flagFamiliar) { $sql = "DELETE FROM [turnos] WHERE [tur_numero] = " . $idTurno . " AND cli_dni = ".$dni." AND tur_asiste = 0"; } else { $sql = "DELETE FROM [turnos] WHERE [tur_numero] = " . $idTurno . " AND cli_dni = ".$infoTurnoAux[11]." AND tur_asiste = 0"; } $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $infoTurno['id'] = $idTurno; $infoTurno['data'] = $infoTurnoAux; //Enviar Email de Confirmacion //if( $dataTurno["dni"]=='27249289' ) //{ sendEmailConfirmacionWs(TYPE_EMAIL_CCT, $infoTurno); //sendEmailConfirmacionWs(TYPE_EMAIL_CCT, $idTurno); //} //Enviar Whatsapp de Confirmacion //TODO /*if($GLOBALS['EMAIL_DEBUG']) { $data=array(); $data['turnoId']=$idTurno; $data['dni']=$dni; sendDebugEmail($data,CANCELAR_TURNO_OK,true); }*/ return true; } else { //Error al borrar [0] if($GLOBALS['LOG_ERROR']) { $data=array(); $data['turnoId']=$idTurno; $data['dni']=$dni; /*if($GLOBALS['EMAIL_DEBUG']) { sendDebugEmail($data,CANCELAR_TURNO_ERROR,false); }*/ if($GLOBALS['LOG_SPECIAL']) //if($GLOBALS['LOG_ERROR']) { //Log Especial $resultLogEspecial = registrarLogSpecial($data, __FUNCTION__, true,(isset($sql) ? $sql : '')); } } return false; } return false; } else { return false; } } function getLstObs(&$resultInfo) { $flagAll = false; if(isset($_REQUEST["all"])){$flagAll = true;} $flagDisp = false; if(isset($_REQUEST["fd"])){$flagDisp = (intval($_REQUEST["fd"])===1?true:false);} $flagBloq = false; if(isset($_REQUEST["fb"])){$flagBloq = (intval($_REQUEST["fb"])===1?true:false);} $flagDashBoard = false; if(isset($_REQUEST["fdh"])){$flagDashBoard = true;} $flagRecCost = false; if(isset($_REQUEST["frc"])){$flagRecCost = (intval($_REQUEST["frc"])===1?true:false);} $flagWhatsapp = false; if(isset($_REQUEST["fwb"])){$flagWhatsapp = (intval($_REQUEST["fwb"])===1?true:false);} $flagApp = false; if(isset($_REQUEST["fap"])){$flagApp = (intval($_REQUEST["fap"])===1?true:false);} $resultado = getListObraSociales(false,$flagAll,$flagDashBoard,$flagDisp,$flagBloq,$flagRecCost,$flagWhatsapp,$flagApp); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listObs" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar las obras sociales"; } } function getListSegMedico($where,$campo) { $order = " ORDER BY " . $campo; $sql = "SELECT obs_codigo as cod, obs_denom AS denom, obs_cuit as cuit, obs_app_activo AS estado FROM obrasoc WHERE " .$where. $order; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return array();} return $rs; } function getLstObsWhitFilter(&$resultInfo,$flagById=false) { if( isset($_REQUEST["campo"]) && !empty($_REQUEST["campo"]) && !is_null($_REQUEST["campo"])&& isset($_REQUEST["valor"]) && !is_null($_REQUEST["valor"]) ) { if(!$flagById) { if(intval($_REQUEST["campo"])==1) { $where = "obs_cuit LIKE '%".addslashes($_REQUEST["valor"])."%'"; $campo = "obs_cuit"; } else if(intval($_REQUEST["campo"])==2) { $where = "UPPER(LTRIM(RTRIM(obs_denom))) LIKE '%".addslashes(strtoupper(trim($_REQUEST["valor"])))."%'"; $campo = "obs_denom"; } else { $where = "obs_denom LIKE '%".addslashes($_REQUEST["valor"])."%'"; $campo = "obs_denom"; } } else { $where = "obs_codigo = '".addslashes($_REQUEST["valor"])."'"; $campo = "obs_codigo"; } $resultado = getListSegMedico($where,$campo); if( $resultado!==false ) { //Listar Seguros medicos $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)?count($resultado):0) ,"listSegMedicos" => (is_array($resultado)&&count($resultado)>0?$resultado:array()) ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de pacientes"; } } } function setObsFeature(&$resultInfo) { if( isset($_REQUEST["ft"]) && !empty($_REQUEST["ft"]) && !is_null($_REQUEST["ft"]) && isset($_REQUEST["o"]) && !empty($_REQUEST["o"]) && !is_null($_REQUEST["o"]) && is_numeric($_REQUEST["o"]) ) { $feature = $_REQUEST["ft"]; $obsId = $_REQUEST["o"]; $resultado = updateObsFeature($feature,$obsId); if( $resultado ) { //Resultado cambio Feature Obra Social $resultInfo['code'] = 0; $resultInfo['data'] = true; } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al configurar la opcion del seguro medico"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parametros faltantes"; } } function setEspFeature(&$resultInfo) { if( isset($_REQUEST["ft"]) && !empty($_REQUEST["ft"]) && !is_null($_REQUEST["ft"]) && isset($_REQUEST["e"]) && !empty($_REQUEST["e"]) && !is_null($_REQUEST["e"]) && is_numeric($_REQUEST["e"]) ) { $feature = $_REQUEST["ft"]; $espId = $_REQUEST["e"]; $resultado = updateEspecialidadFeature($feature,$espId); if( $resultado ) { //Resultado cambio Feature Especialidad $resultInfo['code'] = 0; $resultInfo['data'] = true; } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al configurar la opcion de la especialidad"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parametros faltantes"; } } function getConveioMed(&$resultInfo,$flagName=true) { if( isset($_REQUEST["idm"]) && !empty($_REQUEST["idm"]) && !is_null($_REQUEST["idm"]) && is_numeric($_REQUEST["idm"]) ) { $idMedico = trim($_REQUEST["idm"]); $resultado = getConveniosMedico($idMedico,$flagName); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)&&count($resultado)>0?count($resultado):0) ,"listObsMed" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar las obras sociales"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código del usuario no fue recibido"; } } function getLstProfTurnos(&$resultInfo,$flagTelemedicina=false) { $resultado = getListProfTurnos($flagTelemedicina); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => $resultado['total'] ,"listTurnos" => (isset($resultado['turnos'])?$resultado['turnos']:'') ,"fecha" => $resultado['fecha'] ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los turnos"; } } function getLstClienteTurnos(&$resultInfo,$flagDoc=false) { $turnos=array(); $resultado = getListMisTurnos($turnos,$flagDoc); if( $GLOBALS['FAMILIAR'] ) { $turnosF=array(); $resultadoF = getListMisTurnosFamilares($turnosF); if(count($turnosF)>0) { if(count($turnos)>0) { $turnos = array_merge($turnos,$turnosF); } else {//print_r($turnosF); $turnos = $turnosF; } } } if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($turnos) ,"listTurnos" => $turnos ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los turnos"; } } function isValidDoc() { $continue = false; if( isset($_REQUEST["doc"]) && !empty($_REQUEST["doc"]) && !is_null($_REQUEST["doc"]) && is_numeric($_REQUEST["doc"]) ) { $continue = true; } if( $continue ) { $sql = "SELECT 1 FROM clientes WHERE cli_dni = '".addslashes($_REQUEST["doc"])."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(is_array($rs)&&count($rs)>0) { return true; } } return false; } function getValidateDocExist(&$resultInfo) { $turnos=array(); $resultado = isValidDoc(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"res" => 1 ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el documento"; } } function getCodObsParticular(&$resultInfo) { $turnos=array(); $resultado = getEmpresaObsParticular($turnos); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "op" => $resultado ,"oppl" => getListObraSocialesPlanes($resultado) ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar la obra social particular"; } } function isSeguroMedicoRestrincion($idObs) { $sql = "SELECT 1 FROM obrasoc WHERE obs_codigo = ".$idObs." AND obs_restricion = 1"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)>0){return true;} return false; } function getListTurnosElegibilidad(&$turnos,&$validacion=false) { $turnos = array(); if( isset($_REQUEST["pid"]) && !empty($_REQUEST["pid"]) && !is_null($_REQUEST["pid"]) && is_numeric($_REQUEST["pid"])&& isset($_REQUEST["fd"]) && !empty($_REQUEST["fd"]) && !is_null($_REQUEST["fd"]) && isset($_REQUEST["fh"]) && !empty($_REQUEST["fh"]) && !is_null($_REQUEST["fh"]) ) { $inoCodigo = "'420101'"; //Si la obra social del Paciente tiene elegibilidad $dni = $_REQUEST["pid"]; if(intval($dni)!=(-1)) { $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = ''; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { if( isSeguroMedicoRestrincion($idObS) ) {//print_r("restricion");die; $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'))); $sql = "SELECT esp_codigo, COUNT(esp_codigo) as total FROM turnos WHERE cli_dni = '".$dni."' AND LEFT(CONVERT(VARCHAR,tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND tur_asiste = 1 AND inos_cod IN (".$inoCodigo.") GROUP BY esp_codigo"; // 420101 //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; $total = count($rs); if( $total <=0 ) { $turnos = array(); $validacion = true; } else { for($i=0;$i<$total;$i++) { if( intval($rs[$i]["total"]) >= 1 && intval($rs[$i]["total"]) < 3 ) { $validacion = true; } else { $validacion = false; } } $sql = "SELECT t.tur_subesp AS Esp , t.esp_codigo AS EspCod , 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 FROM turnos AS t , medicos AS m , tbl_titulos tt , obrasoc as o , obsplan as op WHERE t.cli_codigo = ".$codP." AND LEFT(CONVERT(VARCHAR,tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND t.med_codigo = m.med_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.tur_asiste = 1 AND t.inos_cod IN (".$inoCodigo.") ORDER BY t.tur_fecha DESC, t.tur_hora ASC"; $sql = "SELECT (CASE WHEN t.tur_subesp IS NULL THEN sp.esp_denom ELSE t.tur_subesp END) AS Esp , t.esp_codigo AS EspCod , 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 Plan_ , 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 PACIENTE , c.cli_dni AS DOC , c.cli_carnet AS Afil , t.inos_cod as PMO ,0 AS itemselected ,c.cli_codigo AS CID FROM turnos AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo INNER JOIN obrasoc as o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan as op ON t.obsp_cod = op.obsp_cod AND t.obs_codigo = op.obs_codigo INNER JOIN clientes as c ON t.cli_codigo = c.cli_codigo LEFT JOIN especial as sp ON m.esp_codigo = sp.esp_codigo WHERE t.cli_codigo = ".$codP." AND LEFT(CONVERT(VARCHAR,tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND t.tur_asiste = 1 AND t.inos_cod IN (".$inoCodigo.") ORDER BY t.tur_fecha DESC, t.tur_hora ASC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); $turnos = $rs; } return true; } else { return true; } } else { // Paciente no encontrado } } else { $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'))); $sql = "SELECT t.cli_codigo,t.esp_codigo, COUNT(t.esp_codigo) as total FROM turnos as t INNER JOIN obrasoc as ob ON t.obs_codigo = ob.obs_codigo WHERE LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND t.tur_asiste = 1 AND t.inos_cod IN (".$inoCodigo.") AND ob.obs_restricion = 1 GROUP BY t.cli_codigo,t.esp_codigo HAVING COUNT(t.esp_codigo) >= 2"; $sql = "SELECT t.cli_codigo, COUNT(t.cli_codigo) AS total FROM turnos as t INNER JOIN obrasoc as ob ON t.obs_codigo = ob.obs_codigo WHERE t.tur_asiste = 1 AND LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND t.inos_cod IN (".$inoCodigo.") AND ob.obs_restricion = 1 GROUP BY t.cli_codigo HAVING COUNT(t.cli_codigo) >= 3"; $sql.= " UNION ALL "; $sql.= "SELECT t.cli_codigo, COUNT(t.cli_codigo) AS total FROM turnos as t INNER JOIN obrasoc as ob ON t.obs_codigo = ob.obs_codigo WHERE t.tur_asiste = 1 AND LEFT(CONVERT(VARCHAR,t.tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND t.inos_cod IN (".$inoCodigo.") AND ob.obs_codigo = 1 GROUP BY t.cli_codigo HAVING COUNT(t.cli_codigo) >= 3"; // 420101 //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; $total = count($rs); if( $total <=0 ) { $turnos = array(); $validacion = true; } else { $lstclicod = ''; $validacion = true; for($i=0;$i<$total;$i++) { if( intval($rs[$i]["total"]) >= 1 ) { $sep = ','; if($lstclicod==''){$sep='';}; $lstclicod.= $sep.$rs[$i]["cli_codigo"]; } } // AND t.inos_cod IN (".$inoCodigo.") // AND t.obs_codigo = op.obs_codigo $sql = "SELECT (CASE WHEN t.tur_subesp IS NULL THEN sp.esp_denom ELSE t.tur_subesp END) AS Esp , t.esp_codigo AS EspCod , 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 Plan_ , 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 PACIENTE , c.cli_dni AS DOC , c.cli_codigo AS CID , c.cli_carnet AS Afil , t.inos_cod as PMO ,0 AS itemselected FROM turnos AS t INNER JOIN medicos AS m ON t.med_codigo = m.med_codigo INNER JOIN tbl_titulos tt ON tt.tit_codigo = m.tit_codigo INNER JOIN obrasoc as o ON t.obs_codigo = o.obs_codigo INNER JOIN obsplan as op ON t.obsp_cod = op.obsp_cod AND t.obs_codigo = op.obs_codigo INNER JOIN clientes as c ON t.cli_codigo = c.cli_codigo LEFT JOIN especial as sp ON m.esp_codigo = sp.esp_codigo WHERE t.cli_codigo IN (".$lstclicod.") AND LEFT(CONVERT(VARCHAR,tur_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10) AND t.tur_asiste = 1 ORDER BY t.cli_codigo, t.tur_fecha DESC, t.tur_hora ASC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); $turnos = $rs; } return true; } } else { //Parametros incompletos } return false; } function getLstClienteTurnosElegibilidad(&$resultInfo) { $turnos=array(); $validacion=false; $resultado = getListTurnosElegibilidad($turnos,$validacion); if( $resultado ) {//print_r($turnos);die; //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($turnos) ,"listTurnos" => $turnos ,"validacion" => ($validacion?1:2) ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los turnos"; } } function getListadoRecetasPacientes(&$recetas) { $recetas = array(); if( isset($_REQUEST["pid"]) && !empty($_REQUEST["pid"]) && !is_null($_REQUEST["pid"]) && is_numeric($_REQUEST["pid"])&& isset($_REQUEST["fd"]) && !empty($_REQUEST["fd"]) && !is_null($_REQUEST["fd"]) && isset($_REQUEST["fh"]) && !empty($_REQUEST["fh"]) && !is_null($_REQUEST["fh"]) ) { if( intval($_REQUEST["pid"])!=(-1) ) { $clienteWhere = "r.cli_codigo IN (SELECT cli_codigo FROM clientes WHERE cli_dni = '".addslashes($_REQUEST["pid"])."')"; //$clienteWhere = " CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(int_numero,c.cli_dni,r.med_codigo,int_fecha)), 2) = '".addslashes($token)."'"; } else { $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'))); $clienteWhere = "LEFT(CONVERT(VARCHAR,int_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR, '".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$hasta."', 120), 10)"; } $sql = "SELECT int_numero ,FORMAT ( int_fecha, 'dd/MM/yyyy' ) as int_fecha ,c.cli_codigo ,cli_nombre ,cli_dni ,r.obs_codigo ,obs_denom ,int_motivo ,int_medicamento ,int_medicamento_diag ,r.med_codigo ,m.med_nombre ,es.esp_denom ,ti.tit_abrev ,CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(int_numero,c.cli_dni,r.med_codigo,int_fecha)), 2) as t ,c.cli_carnet ,m.med_mp FROM cli_fichainternacion as r, clientes as c, obrasoc as o, medicos as m, especial AS es, tbl_titulos AS ti WHERE ".$clienteWhere." AND c.cli_codigo = r.cli_codigo AND o.obs_codigo = r.obs_codigo AND m.med_codigo = r.med_codigo AND m.esp_codigo = es.esp_codigo AND ti.tit_codigo = m.tit_codigo ORDER BY int_fecha DESC,cli_nombre asc"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $recetas = $GLOBALS['dbSQL']->getAll(); if(count($recetas)>0) { return $recetas; } } return false; } function getLstClienteRecetas(&$resultInfo) { $recetas=array(); $resultado = getListadoRecetasPacientes($recetas); if( $resultado ) {//print_r($turnos);die; //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($recetas) ,"listRecetas" => $recetas ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas"; } } function getRecetaInfo(&$resultInfo) { $resultado = getPacienteRecetaByToken($resultInfo); } function getLstClienteTurnosHistrial(&$resultInfo) { $resultado = getListMisTurnosHistorial(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listTurnos" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el historial de turnos"; } } function setComTurnoEditarProfesionalMasivo() { try { $flagTransactionInit = false; if( isset($_REQUEST["lsttur"]) && !empty($_REQUEST["lsttur"]) && !is_null($_REQUEST["lsttur"]) && isset($_REQUEST["prof"]) && !empty($_REQUEST["prof"]) && !is_null($_REQUEST["prof"]) && isset($_REQUEST["token"]) && !is_null($_REQUEST["token"]) ) { $continue = true; $flagFecha = false; $fechaCambio = ''; if( isset($_REQUEST["ff"]) && !is_null($_REQUEST["ff"]) && isset($_REQUEST["fc"]) && !empty($_REQUEST["fc"]) ) { $flagFecha = ($_REQUEST["ff"]===1?true:false); $fechaCambio = $_REQUEST["fc"]; } //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( setConeccionTransaccion() ) { $flagTransactionInit = true; $GLOBALS['dbSQLTR']->setBeginTransaction(); if( $continue ) { $mediconuevo= $_REQUEST["prof"]; $lstTurnos = $_REQUEST["lsttur"]; $comentario = ''; if( isset($_REQUEST["cmt"]) && !empty($_REQUEST["cmt"]) && !is_null($_REQUEST["cmt"]) ) { $comentario = $_REQUEST["cmt"]; } /*if($flagFecha) { //Para cada turno verificar disponibilidad de la fecha y hora 01/01/2022 0123456789 $fechaNueva = substr($fechaCambio,6,4).substr($fechaCambio,3,2).substr($fechaCambio,0,2); $lst = explode(",", $lstTurnos); $totlst = count($lst); for($z=0;$z<$totlst;$z++) { $continue=true; while( $continue ) { if($lst[$z]!="") { $fechaSql = " AND LEFT(CONVERT(VARCHAR,tm.tur_fecha, 120), 10) >= LEFT(CONVERT(VARCHAR,GETDATE(), 120), 10)"; $fechaSql.= " AND tm.tur_hora = ".$hora; $turnoMedico = " (SELECT tm.med_codigo FROM turnos as tm WHERE tm.tur_numero = '".addslashes($lst[$z])."' ".$fechaSql.") " $sql = "SELECT 1 int_numero ,FORMAT ( int_fecha, 'dd/MM/yyyy' ) as int_fecha ,c.cli_codigo ,cli_nombre ,cli_dni ,r.obs_codigo ,obs_denom ,int_motivo ,int_medicamento ,int_medicamento_diag ,r.med_codigo ,m.med_nombre ,es.esp_denom ,ti.tit_abrev ,CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(int_numero,c.cli_dni,r.med_codigo,int_fecha)), 2) as t ,c.cli_carnet ,m.med_mp FROM turnos WHERE tur_fecha = ".$fechaNueva." AND med_codigo = ".$turnoMedico." AND o.obs_codigo = r.obs_codigo AND m.med_codigo = r.med_codigo AND m.esp_codigo = es.esp_codigo AND ti.tit_codigo = m.tit_codigo ORDER BY int_fecha DESC,cli_nombre asc"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $turnostmp = $GLOBALS['dbSQL']->getAll(); $flagFound = true; if(count($turnostmp)>0) { $flagFound = false; $continue=false; } } else { $continue=false; } } } //tur_fecha_nueva $sql = "UPDATE turnos SET med_codigo_original = med_codigo ,usu_codigo_cambio_med = ".$userId." ,tur_fecha_cambio_med = GETDATE() ,tur_comentario_cambio_med = '".addslashes($comentario)."' ,tur_fecha = tur_fecha_nueva ,tur_hora = tur_hora_nueva WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; } else {*/ $sql = "UPDATE turnos SET med_codigo_original = med_codigo ,usu_codigo_cambio_med = ".$userId." ,tur_fecha_cambio_med = GETDATE() ,tur_comentario_cambio_med = '".addslashes($comentario)."' WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; //} //print_r($sql);print_r("\n");//die; $resultado = $GLOBALS['dbSQLTR']->QueryTR($sql,true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al editar el profesional anterior y comentario de los turnos"; } if( $continue ) { $sql = "UPDATE turnos SET med_codigo = '".addslashes($mediconuevo)."' WHERE tur_numero IN (" . addslashes($lstTurnos) . ")"; //print_r($sql);print_r("\n");//die; //print_r($sql);die; $resultado = $GLOBALS['dbSQLTR']->QueryTR($sql,true); if ( !$resultado ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al editar el profesional de los turnos'; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al editar el profesional de los turnos"; } } if( $continue ) { $res = $GLOBALS['dbSQLTR']->setCommitTransaction(); //$GLOBALS['dbSQLTR']->setRollbackTransaction(); //print_r('commit['.$res.']');print_r("\n"); return true; } } } else { $continue = false; $errorPoint=4; } } return false; } 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 setProfesionalTunos(&$resultInfo) { $resultado = setComTurnoEditarProfesionalMasivo(); if( $resultado ) { //Retornar estado de la operacion $resultInfo['code'] = 0; $resultInfo['data'] = array("result" => $resultado); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al editar el profesional de los turnos seleccionados"; } return true; } function cancelarTurnoWeb(&$resultInfo) { $resultado = setCancelarTurno(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; } else { $resultInfo['code'] = 0; $resultInfo['data'] = array("res"=>"Se produjo un error al cancelar el turnos"); } } function validarEmailExistente_($email) { $sql = "SELECT cli_email FROM dbo.[clientes] WHERE ltrom(rtrim(lower([cli_email]))) = '" . mb_strtolower(trim($email)) ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return false; } function validarEmailExistente($email) { $sql = "SELECT TOP 1 cli_email FROM dbo.[clientes] WHERE ltrim(rtrim(lower([cli_email]))) = '" . mb_strtolower(trim($email)) ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r("c[".count($rs)."]");print_r("\n");die; if(is_array($rs)&&count($rs)>0){return true;} return false; } function getCustomerCodeByEmail($email,&$customerInfo=false) { $sql = "SELECT TOP 1 cli_codigo,cli_nombre FROM dbo.[clientes] WHERE ltrim(rtrim(lower([cli_email]))) = '" . mb_strtolower(trim($email)) ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r("c[".count($rs)."]");print_r("\n");die; if(is_array($rs)&&count($rs)>0){$customerInfo=$rs;return $rs[0]["cli_codigo"];} return false; } function getCustomerById($idCliente,&$customerInfo=false) { $sql = "SELECT * FROM dbo.clientes WHERE cli_codigo = '" . mb_strtolower(trim($idCliente)) ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r("c[".count($rs)."]");print_r("\n");die; if(is_array($rs)&&count($rs)>0){$customerInfo=$rs;return $rs[0]["cli_codigo"];} return false; } function validarDNIExistente($dni) { $sql = "SELECT TOP 1 cli_codigo FROM dbo.[clientes] WHERE ltrim(rtrim(lower([cli_dni]))) = '" . mb_strtolower(trim($dni)) ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0){return true;} return false; } function registrarCliente(&$resultInfo) { if( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && is_numeric($_REQUEST["dni"]) && isset($_REQUEST["nombre"]) && !empty($_REQUEST["nombre"]) && !is_null($_REQUEST["nombre"]) && isset($_REQUEST["apellido"]) && !empty($_REQUEST["apellido"]) && !is_null($_REQUEST["apellido"]) && isset($_REQUEST["email"]) && !empty($_REQUEST["email"]) && !is_null($_REQUEST["email"]) && isset($_REQUEST["tarea"]) && !empty($_REQUEST["tarea"]) && !is_null($_REQUEST["tarea"]) && isset($_REQUEST["tnumero"]) && !empty($_REQUEST["tnumero"]) && !is_null($_REQUEST["tnumero"]) // isset($_REQUEST["tel"]) && // !empty($_REQUEST["tel"]) && // !is_null($_REQUEST["tel"]) ) { $flagFamiliar = false; $cliecod = 'NULL'; $continue = true; if( isset($_REQUEST["ff"]) && isset($_REQUEST["token"]) ) { //Validar el Token $tokenInfo = false; $result = false; $continue = Acl::validateToken($_REQUEST["token"],$tokenInfo,$result); if( $result == Acl::TOKEN_VALID ) { $clienteId = $tokenInfo->uid; $continue = true; } elseif( $result == Acl::TOKEN_EXPIRED ) { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"); $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; $continue = false; } $flagFamiliar = true; $cliecod = $tokenInfo->uid; } if( $continue ) { if( $GLOBALS['LOGIN_USER_PASS'] && !$flagFamiliar ) { $flagPassOk = false; if( isset($_REQUEST["pass"]) && !empty($_REQUEST["pass"]) && !is_null($_REQUEST["pass"]) && isset($_REQUEST["rpass"]) && !empty($_REQUEST["rpass"]) && !is_null($_REQUEST["rpass"]) ) { $flagPassOk = true; } if( $flagPassOk ) { $password = $_REQUEST["pass"]; $rpassword = $_REQUEST["rpass"]; if( $password == $rpassword ) { $continue = true; } else { $resultInfo['code'] = 4; $resultInfo['data'] = array("res"=>"La Repetición de la clave no coincide"); } } else { $resultInfo['code'] = 2; $resultInfo['data'] = array("res"=>"Parametros faltantes"); } } else { $password = ''; $continue = true; } if( $continue ) { if( $flagFamiliar || (!validarEmailExistente($_REQUEST["email"]))) { if( !validarDNIExistente($_REQUEST["dni"])) { $sql = "UPDATE [codigos] SET [num_ultimo] = [num_ultimo] + 1, [num_fecha] = GETDATE() WHERE [num_codigo] = 6"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $sql = "SELECT [num_ultimo] FROM [codigos] WHERE num_codigo = 6"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $conta=0; $rsN = $GLOBALS['dbSQL']->getAll(); foreach($rsN as $row) { $idCliente = $row["num_ultimo"]; $conta++; } if( $conta > 0 ) { if(strlen($_REQUEST["fnm"])<2){$_REQUEST["fnm"]='0'.$_REQUEST["fnm"];} if(strlen($_REQUEST["fnd"])<2){$_REQUEST["fnd"]='0'.$_REQUEST["fnd"];} //,[cli_nombre_] //,'".mb_strtoupper($_REQUEST["apellido"]).' '.mb_strtoupper($_REQUEST["nombre"])."' $sql = "INSERT INTO dbo.[clientes] ( [cli_codigo] ,[cli_dni] ,[cli_nombre] ,[cli_fecnto] ,[cli_sexo] ,[obs_codigo] ,[obsp_cod] ,[cli_email] ,[med_codigo] ,[cli_tel] ,[cli_tel_cod_area] ,[cli_tel_numero] ,[cli_carnet] ,[tid_codigo] ,[dgi_codigo] ,[cli_passw] ,[cli_validapass] ,[cli_origen] ,[cli_codigo_padre] ) VALUES ( ".$idCliente." ,'".$_REQUEST["dni"]."' ,'".mb_convert_encoding(mb_strtoupper($_REQUEST["apellido"]),"iso-8859-1", "UTF-8").' '.mb_convert_encoding(mb_strtoupper($_REQUEST["nombre"]),"iso-8859-1", "UTF-8")."' ,'".$_REQUEST["fna"].'-'.trim($_REQUEST["fnm"]).'-'.trim($_REQUEST["fnd"])."T00:00:00' ,'".($_REQUEST["sexo"]=="H"?"M":"F") ."' ,". $_REQUEST["obs"] .' ,'. $_REQUEST["obsp"] ." ,'".mb_strtolower(trim($_REQUEST["email"])) ."' ,1 ,'".$_REQUEST["tel"]."' ,'".$_REQUEST["tarea"]."' ,'".$_REQUEST["tnumero"]."' ,'".(isset($_REQUEST["afil"])?$_REQUEST["afil"]:'')."' ,1 ,5 ,'".md5(trim($password))."' ,1 ,'WEB' ,".$cliecod." )"; //debug($sql,true); //print_r($sql); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $dni = $_REQUEST["dni"]; $userinfo = loginUserRegistrar($dni); $resultInfo['code'] = 0; //$resultInfo['data'] = array("id"=>$GLOBALS['dbSQL']->getLastId('clientes','cli_codigo')); $resultInfo['data'] = array( "userinfo" => $userinfo ); } else { $resultInfo['code'] = 1; $resultInfo['data'] = array("res"=>"Se produjo un error al registrar el usuario"); } } } } } else { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"El DNI ingresado ya se encuentra registrado"); $resultInfo['errorDes'] = "El DNI ingresado ya se encuentra registrado"; } } else { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"El email ingresado ya se encuentra registrado"); $resultInfo['errorDes'] = "El email ingresado ya se encuentra registrado"; } } elseif($resultInfo['code'] != 4) { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"La clave no puede estar vacía"); $resultInfo['errorDes'] = "La clave no puede estar vacía"; } } } else { $resultInfo['code'] = 2; $resultInfo['data'] = array("res"=>"Parametros faltantes"); } } function validarDNIActualizarCliente($id,$dni) { $sql = "SELECT TOP 1 cli_codigo FROM dbo.[clientes] WHERE ltrim(rtrim(lower([cli_dni]))) = '" . mb_strtolower(trim($dni)) ."' AND [cli_codigo]!= '" . mb_strtolower(trim($id)) ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0){return true;} return false; } function updateCliente(&$resultInfo) { if( isset($_REQUEST["idc"]) && !empty($_REQUEST["idc"]) && !is_null($_REQUEST["idc"]) && is_numeric($_REQUEST["idc"]) ) { $id = trim($_REQUEST["idc"]); $mes = $_REQUEST["fnm"]; if(strlen($mes)<2){$mes='0'.$mes;} $dia = $_REQUEST["fnd"]; if(strlen($dia)<2){$dia='0'.$dia;} if( !validarDNIActualizarCliente($id,$_REQUEST["dni"])) { $sql = " UPDATE dbo.[clientes] SET [cli_dni] = '".$_REQUEST["dni"] ."' ,[cli_nombre] = '".mb_strtoupper($_REQUEST["apellido"]).' '.mb_strtoupper($_REQUEST["nombre"])."' ,[cli_fecnto] = '".$_REQUEST["fna"].'-'.$mes.'-'.$mes."T00:00:00.000' ,[cli_sexo] = '".$_REQUEST["sexo"] ."' ,[obs_codigo] = ".$_REQUEST["obs"] .' ,[obsp_cod] = '.$_REQUEST["obsp"] ." ,[cli_email] = '".mb_strtolower(trim($_REQUEST["email"]))."' ,[cli_tel] = '".$_REQUEST["telefono"]."' ,[cli_tel_cod_area]= '".(isset($_REQUEST["tarea"])?$_REQUEST["tarea"]:'')."' ,[cli_tel_numero] = '".(isset($_REQUEST["tnumero"])?$_REQUEST["tnumero"]:'')."' ,[cli_carnet] = '".$_REQUEST["afil"]."' "; $sql.= " WHERE [cli_codigo] = ".$id; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $userInfo = false; $dni = $_REQUEST["dni"]; if( is_numeric($dni) ) { $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = ''; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['vp'] = $validaPass; $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $userInfo['obstelemed'] = $obstelemed; $userInfo['token'] = getToken('u',$codP,$name,$email); } } //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al actualizar los datos del usuario"; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "El dni ingresado ya existe."; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código del usuario no fue recibido"; } } function updateClaveCliente(&$resultInfo) { if( isset($_REQUEST["idc"]) && !empty($_REQUEST["idc"]) && !is_null($_REQUEST["idc"]) && is_numeric($_REQUEST["idc"])&& isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && is_numeric($_REQUEST["dni"])&& isset($_REQUEST["pass"]) && !empty($_REQUEST["pass"]) && !is_null($_REQUEST["pass"]) ) { $id = trim($_REQUEST["idc"]); $dni = trim($_REQUEST["dni"]); $clave = trim($_REQUEST["pass"]); $sql = " UPDATE dbo.[clientes] SET [cli_passw] = '".md5($clave)."' ,[cli_validapass] = 1 WHERE [cli_codigo] = ".$id." AND [cli_dni] = ".$dni; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $userInfo = false; $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = ''; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['vp'] = $validaPass; $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $userInfo['obstelemed'] = $obstelemed; $userInfo['token'] = getToken('u',$codP,$name,$email); } //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al actualizar el email del usuario"; } } else { $resultInfo['code'] = 2; //$resultInfo['errorDes'] = "Se pro recibido"; $resultInfo['errorDes'] = "Se produjo un error al actualizar el email del usuario"; } } function updateEmailCliente(&$resultInfo) { if( isset($_REQUEST["idc"]) && !empty($_REQUEST["idc"]) && !is_null($_REQUEST["idc"]) && is_numeric($_REQUEST["idc"])&& isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && is_numeric($_REQUEST["dni"])&& isset($_REQUEST["email"]) && !empty($_REQUEST["email"]) && !is_null($_REQUEST["email"]) ) { $id = trim($_REQUEST["idc"]); $dni = trim($_REQUEST["dni"]); $email = trim($_REQUEST["email"]); $sql = " UPDATE dbo.[clientes] SET [cli_email] = '".$email."' ,[cli_revalidaweb] = 1 WHERE [cli_codigo] = ".$id." AND [cli_dni] = ".$dni; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $userInfo = false; $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = ''; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['vp'] = $validaPass; $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $userInfo['obstelemed'] = $obstelemed; $userInfo['token'] = getToken('u',$codP,$name,$email); } //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al actualizar el email del usuario"; } } else { $resultInfo['code'] = 2; //$resultInfo['errorDes'] = "Se pro recibido"; $resultInfo['errorDes'] = "Se produjo un error al actualizar el email del usuario"; } } function updateTelCliente(&$resultInfo) { if( isset($_REQUEST["idc"]) && !empty($_REQUEST["idc"]) && !is_null($_REQUEST["idc"]) && is_numeric($_REQUEST["idc"])&& isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && is_numeric($_REQUEST["dni"])&& isset($_REQUEST["tarea"]) && !empty($_REQUEST["tarea"]) && !is_null($_REQUEST["tarea"])&& isset($_REQUEST["tnumero"]) && !empty($_REQUEST["tnumero"])&& !is_null($_REQUEST["tnumero"]) ) { $id = trim($_REQUEST["idc"]); $dni = trim($_REQUEST["dni"]); $tarea = trim($_REQUEST["tarea"]); $tnumero = trim($_REQUEST["tnumero"]); $sql = " UPDATE dbo.[clientes] SET [cli_tel_cod_area] = '".$tarea."' ,[cli_tel_numero] = '".$tnumero."' ,[cli_revalidawebtel] = 1 WHERE [cli_codigo] = '".addslashes($id)."' AND [cli_dni] = '".addslashes($dni)."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $userInfo = false; $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = -3; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['vp'] = $validaPass; $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $userInfo['obstelemed'] = $obstelemed; $userInfo['token'] = getToken('u',$codP,$name,$email); } //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al actualizar el email del usuario"; } } else { $resultInfo['code'] = 2; //$resultInfo['errorDes'] = "Se pro recibido"; $resultInfo['errorDes'] = "Se produjo un error al actualizar el email del usuario"; } } function updateProfesional(&$resultInfo) { if( isset($_REQUEST["idp"]) && !empty($_REQUEST["idp"]) && !is_null($_REQUEST["idp"]) && is_numeric($_REQUEST["idp"]) ) { $id = trim($_REQUEST["idp"]); $sql = " UPDATE dbo.[medicos] SET [med_nombre] = '".mb_strtoupper($_REQUEST["nombre"])."' ,[med_dni] = " .$_REQUEST["dni"] ." ,[med_mp] = '".$_REQUEST["mat"] ."' ,[esp_codigo] = " .$_REQUEST["esp"] ." ,[med_dir] = '".$_REQUEST["dir"] ."' ,[med_tel] = '".$_REQUEST["tel"] ."' ,[med_email] = '".$_REQUEST["emial"] ."' ,[med_fecnto] = '".($_REQUEST["ea"].'-'.$_REQUEST["em"].'-'.$_REQUEST["ed"].' 00:00:00.000') ."' ,[tit_codigo] = " .$_REQUEST["titulo"] ." ,[med_webcoment]= '".$_REQUEST["comentario"] ."'"; $sql.= " WHERE [med_codigo] = ".$id; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $userInfo = false; $dni = $_REQUEST["dni"]; if( is_numeric($dni) ) { $name = ""; $codP = -1; $mat = false; $nombre = false; $email = ''; $sexo = false; $telefono = false; $alerta = false; $fnac = false; $cesp = false; $tit = false; $resultado = getValidarDNIProfFast($dni, $mat,$codP,$nombre,$email,$sexo,$telefono,$alerta,$fnac,$cesp,$tit); //print_r($resultado);die; if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['mat'] = $mat; $userInfo['cod'] = $codP; $userInfo['name'] = $nombre; $userInfo['email'] = $email; $userInfo['sexo'] = $sexo; $userInfo['tel'] = $telefono; $userInfo['fnacd'] = date("d",strtotime($fnac)); $userInfo['fnacm'] = date("m",strtotime($fnac)); $userInfo['fnaca'] = date("Y",strtotime($fnac)); $userInfo['cweb'] = $alerta; $userInfo['cesp'] = $cesp; $userInfo['tit'] = $tit; } } //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al actualizar los datos del profesional"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código del profesional no fue recibido"; } } function getLstObsPlanes(&$resultInfo) { if( isset($_REQUEST["id"]) && !empty($_REQUEST["id"]) && !is_null($_REQUEST["id"]) ) { $idObraSocial = $_REQUEST["id"]; $resultado = getListObraSocialesPlanes($idObraSocial); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listObsPlanes" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los planes de la obra social"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código de la obra social no fue recibido"; } } function getLstProfesionales(&$resultInfo,$flagRecientes=false) { $cli_id = false; if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) ) { $cli_id = $_REQUEST["idcli"]; } $especialidad = false; if( isset($_REQUEST["espfilter"]) && !empty($_REQUEST["espfilter"]) && !is_null($_REQUEST["espfilter"]) ) { $especialidad = $_REQUEST["espfilter"]; } $soloactivos = false; if( isset($_REQUEST["fma"]) && !is_null($_REQUEST["fma"]) ) { $soloactivos = (intval($_REQUEST["fma"])===0?true:false); } $profesionales=array(); if( isset($_REQUEST["fd"]) && !empty($_REQUEST["fd"]) && !is_null($_REQUEST["fd"]) ) { $resultado = getListProfesionalesDH($profesionales); } else { $resultado = getListProfesionales($profesionales,$flagRecientes,$especialidad,$cli_id,$soloactivos); } if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($profesionales) ,"listProf" => $profesionales ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de profesionales"; } } function getListProfesionalesCmp($where,$campo) { $order = " ORDER BY " . $campo; $sql = "SELECT med.med_codigo as medC, med.med_nombre as nombre, med.med_dni as doc, ISNULL(med.med_bloqueado,0) as bloqueado FROM medicos as med WHERE " .$where. $order; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return array();} return $rs; } function getLstProfesionalesComponente(&$resultInfo,$flagById=false) { if( isset($_REQUEST["campo"]) && !empty($_REQUEST["campo"]) && !is_null($_REQUEST["campo"])&& isset($_REQUEST["valor"]) && !is_null($_REQUEST["valor"]) ) { if(!$flagById) { if(intval($_REQUEST["campo"])==1) { $where = "med_codigo = '".addslashes($_REQUEST["valor"])."'"; $campo = "med_codigo"; } else if(intval($_REQUEST["campo"])==2) { $where = "med_dni LIKE '%".addslashes($_REQUEST["valor"])."%'"; $campo = "med_dni"; } else //if(intval($_REQUEST["campo"])==2) { $where = "UPPER(LTRIM(RTRIM(med_nombre))) LIKE '%".addslashes(strtoupper(trim($_REQUEST["valor"])))."%'"; $campo = "med_nombre"; } /*else { $where = "cli_nombre LIKE '%".addslashes($_REQUEST["valor"])."%'"; $campo = "cli_nombre"; }*/ } else { $where = "med_codigo = '".addslashes($_REQUEST["valor"])."'"; $campo = "med_codigo"; } $resultado = getListProfesionalesCmp($where,$campo); if( $resultado!==false ) { //Listar Profesionales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)?count($resultado):0) ,"listProfesionales" => (is_array($resultado)&&count($resultado)>0?$resultado:array()) ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de profesionales"; } } } function getSaldoCliente($idCliente) { $sql = "SELECT SUM(pre_saldo) as total FROM presupuestos WHERE cli_codigo = ".$idCliente." AND pre_anulado = 0"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return 0; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return 0;} return $rs[0]["total"]; } function getListPacientes($where,$campo) { $order = " ORDER BY " . $campo; $sql = "SELECT c.cli_codigo as codC, c.cli_nombre as nombre, c.cli_dni as doc, c.cli_sexo as sexo, c.cli_email as email, c.cli_tel as tel, c.cli_cuit as cuil, c.cli_bloqueado as estado, c.obs_codigo, c.obsp_cod, o.obs_denom AS obs, op.obsp_denom AS plan_, (SELECT obs_codigo_apross FROM empresa) as obsapross FROM clientes as c INNER JOIN obrasoc AS o ON o.obs_codigo = c.obs_codigo INNER JOIN obsplan As op ON c.obs_codigo = op.obs_codigo AND c.obsp_cod = op.obsp_cod WHERE " .$where. $order; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return array();} return $rs; } function getLstPacientes(&$resultInfo) { if( isset($_REQUEST["campo"]) && !empty($_REQUEST["campo"]) && !is_null($_REQUEST["campo"])&& isset($_REQUEST["valor"]) && !is_null($_REQUEST["valor"]) ) { if(intval($_REQUEST["campo"])==1) { $where = "cli_dni LIKE '%".addslashes($_REQUEST["valor"])."%'"; $campo = "cli_dni"; } else if(intval($_REQUEST["campo"])==2) { $where = "UPPER(LTRIM(RTRIM(cli_nombre))) LIKE '%".addslashes(strtoupper(trim($_REQUEST["valor"])))."%'"; $campo = "cli_nombre"; } else { $where = "cli_nombre LIKE '%".addslashes($_REQUEST["valor"])."%'"; $campo = "cli_nombre"; } $resultado = getListPacientes($where,$campo); if( $resultado!==false ) { if(isset($_REQUEST["gps"])) { //Calcular el saldo del Paciente $resultado[0]["saldo"] = number_format(floatval(getSaldoCliente($resultado[0]["codC"])),2); } //Listar Paciente $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)?count($resultado):0) ,"listPacientes" => (is_array($resultado)&&count($resultado)>0?$resultado:array()) ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de pacientes"; } } } function getPaciente($cliCodigo) { $sql = "SELECT cli_codigo as cod, cli_nombre as nombre, cli_dni as doc, cli_sexo as sexo, cli_email as email, cli_tel as tel, cli_cuit as cuil, cli_bloqueado as estado FROM clientes WHERE cli_codigo = '".addslashes($cliCodigo)."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return array();} return $rs; } function getPacienteByCod(&$resultInfo) { if( isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) ) { $paciente = getPaciente($_REQUEST["cod"]); if( $paciente ) { if(is_array($paciente)&&count($paciente)>0) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "cod" => $paciente[0]["cod"] ,"nombre" => $paciente[0]["nombre"] ,"doc" => $paciente[0]["doc"] ,"sexo" => $paciente[0]["sexo"] ,"tel" => $paciente[0]["tel"] ,"email" => $paciente[0]["email"] ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = ''; } return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el cliente"; } } } function getLstProfesionalesPorNombre(&$resultInfo) { $resultado = getListProfesionalesNombre(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listProf" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de profesionales"; } } function getLstProfesionalesObs(&$resultInfo) { $resultado = getListProfesionalesObs(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listProf" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de profesionales para la obra social solicitada"; } } function getLstProfesionalesEsp(&$resultInfo) { $resultado = getListProfesionalesEsp(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listProf" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de profesionales para la especialidad solicitada"; } } function getLstEspecialidades(&$resultInfo) { $flagDasborad = false; if(isset($_REQUEST["d"])){$flagDasborad = true;} $resultado = getListEspecialidades($flagDasborad); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listEsp" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de especialidades"; } } function getLstTitulos(&$resultInfo) { $resultado = getListTitulosMed(); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listTit" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de títulos"; } } function getLstEspecialidadesTotXMed(&$resultInfo) { $resultado = getListEspecialidadesTotalMedicos(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listEsp" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de especialidades"; } } function getLstEspecialidadesPorNombre(&$resultInfo) { $resultado = getListEspecialidadesNombre(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listEsp" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de especialidades"; } } function getValidarDNIFast($dni, $pass,&$name, &$codP, &$idObS, &$nameObS, &$planObS, &$idPlanObS, &$email, &$sexo, &$facn, &$tel,&$carnet,&$obsflag,&$validaemail,&$validatel,&$telarea,&$telnumero,&$obstelemed,&$validaPass,&$clienteBloqueado=false) { //$passVal = " AND lower(c.cli_passw) = '".mb_strtolower(md5(trim($pass)))."' "; $passVal = " AND c.cli_passw = '".md5($pass)."' "; $emailVal = " AND lower(c.cli_email) = '".mb_strtolower(trim($email))."' "; if( $email === -3 ){ $emailVal = ""; } if( $pass === -3 ){ $passVal = ""; } if( !$GLOBALS['LOGIN_USER_PASS'] ) { $passVal = ""; } if( isset($GLOBALS['LOGIN_USER_MASTER_PASS']) && $GLOBALS['LOGIN_USER_MASTER_PASS'] && $pass == $GLOBALS['LOGIN_USER_MASTER_PASS'] ) { $passVal = ""; } if( !$GLOBALS['LOGIN_USER_EMAIL'] ) { $emailVal = ""; } $validarPrimerAcceso = false; if( $GLOBALS['LOGIN_USER_PASS'] /*&& $pass === -3 */) { //Validar si es el primer acceso $sql = "SELECT TOP 1 cli_validapass FROM clientes WHERE cli_dni = '".addslashes($dni)."' ORDER BY cli_registracion"; //die($sql); //debug($sql); //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $paciente = $GLOBALS['dbSQL']->getAll(); if( count($paciente)>0 ) { $validarPrimerAcceso = ((intval($paciente[0]["cli_validapass"])===1)?false:true); //print_r("r[".$validarPrimerAcceso."]");die; } } } if( $validarPrimerAcceso ) { $passVal = ""; } $sql = "SELECT TOP 1 c.cli_dni AS DNI , cli_codigo , c.cli_nombre AS PACIENTE , o.obs_denom AS OBRA_SOCIAL , p.obsp_denom AS PLAN_ , o.obs_codigo AS ID_OBRA_SOCIAL , c.obsp_cod , c.cli_email AS EMAIL , c.cli_fecnto AS FacN , c.cli_sexo AS Sexo , c.cli_tel AS Telefono , c.cli_carnet AS carnet , o.obs_lock , c.cli_revalidaweb AS ValEmail , c.cli_tel_cod_area AS TelArea , c.cli_tel_numero AS TelNro , c.cli_revalidawebtel AS ValTelefono , c.cli_validapass AS ValPass , (CASE WHEN o.obs_telemed IS NULL THEN 0 ELSE 1 END) AS ObsTelemed , c.cli_bloqueado FROM clientes AS c , obrasoc AS o , obsplan AS p WHERE c.cli_dni = '".$dni."' ".$passVal." ".$emailVal." AND c.obs_codigo = o.obs_codigo AND p.obs_codigo = o.obs_codigo AND p.obsp_cod = c.obsp_cod ORDER BY cli_registracion"; //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $result = $GLOBALS['dbSQL']->getAll(); if( count($result)>0 ) { $codP = $result[0]['cli_codigo']; $name = trim($result[0]['PACIENTE']); //$name = str_replace(" ",", ",$name); $nameObS = $result[0]['OBRA_SOCIAL']; $planObS = $result[0]['PLAN_']; $idObS = $result[0]['ID_OBRA_SOCIAL']; $idPlanObS = $result[0]['obsp_cod']; $email = $result[0]['EMAIL']; $sexo = $result[0]['Sexo']; $facn = $result[0]['FacN']; $tel = $result[0]['Telefono']; $carnet = $result[0]['carnet']; $obsflag = (intval($result[0]['obs_lock'])==1?true:false); $validaemail= (intval($result[0]['ValEmail'])==1?true:false); $telarea = $result[0]['TelArea']; $telnumero = $result[0]['TelNro']; $validatel = (intval($result[0]['ValTelefono'])==1?true:false); $obstelemed = $result[0]['ObsTelemed']; $validaPass = (intval($result[0]['ValPass'])==1?true:false); $clienteBloqueado= (intval($result[0]['cli_bloqueado'])==1?true:false); return $result; } } return false; } function getValidarDNIProfFast($dni, $mat, &$cod, &$name, &$email, &$sexo, &$telefono, &$alerta, &$fnac, &$cesp, &$tit) { $sql = "SELECT med_dni AS DNI , med_codigo AS COD , med_nombre AS NOMBRE , med_mp AS MATRICULA , med_email AS EMAIL , med_tel AS TEL , med_fecnto AS FNAC , med_webcoment AS COMW , esp_codigo as ESP , tit_codigo as TIT FROM medicos WHERE med_dni = '".$dni."' AND med_mp = '".$mat."'"; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $result = $GLOBALS['dbSQL']->getAll(); if( count($result)>0 ) { $cod = $result[0]['COD']; $name = trim($result[0]['NOMBRE']); $email = $result[0]['EMAIL']; $sexo = ''; $telefono = trim($result[0]['TEL']); $alerta = trim($result[0]['COMW']); $fnac = $result[0]['FNAC']; $cesp = $result[0]['ESP']; $tit = $result[0]['TIT']; return $result; } } return false; } function getValidarEmailFast($email, $pass,&$name, &$codP, &$idObS, &$nameObS, &$planObS, &$idPlanObS, &$dni, &$sexo, &$facn, &$tel,&$carnet,&$obsflag,&$validaemail,&$validatel,&$telarea,&$telnumero,&$obstelemed,&$validaPass,&$clienteBloqueado=false) { //$passVal = " AND lower(c.cli_passw) = '".mb_strtolower(md5(trim($pass)))."' "; $passVal = " c.cli_passw = '".md5(trim($pass))."' "; $emailVal = " AND lower(c.cli_email) = '".mb_strtolower(trim($email))."' "; if( $email === -3 ){ $emailVal = ""; } if( $pass === -3 ){ $passVal = ""; } if( !$GLOBALS['LOGIN_USER_PASS'] ) { $passVal = ""; } if( isset($GLOBALS['LOGIN_USER_MASTER_PASS']) && $GLOBALS['LOGIN_USER_MASTER_PASS'] && $pass == $GLOBALS['LOGIN_USER_MASTER_PASS'] ) { $passVal = ""; } if( !$GLOBALS['LOGIN_USER_EMAIL'] ) { $emailVal = ""; } $validarPrimerAcceso = false; if( false&&$GLOBALS['LOGIN_USER_PASS'] /*&& $pass === -3 */) { //Validar si es el primer acceso $sql = "SELECT TOP 1 cli_validapass FROM clientes WHERE cli_dni = '".addslashes($dni)."' ORDER BY cli_registracion"; //die($sql); debug($sql); //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $paciente = $GLOBALS['dbSQL']->getAll(); if( count($paciente)>0 ) { $validarPrimerAcceso = ((intval($paciente[0]["cli_validapass"])===1)?false:true); //print_r("r[".$validarPrimerAcceso."]");die; } } } if( $validarPrimerAcceso ) { $passVal = ""; } $sql = "SELECT TOP 1 c.cli_dni AS DNI , cli_codigo , c.cli_nombre AS PACIENTE , o.obs_denom AS OBRA_SOCIAL , p.obsp_denom AS PLAN_ , o.obs_codigo AS ID_OBRA_SOCIAL , c.obsp_cod , c.cli_email AS EMAIL , c.cli_fecnto AS FacN , c.cli_sexo AS Sexo , c.cli_tel AS Telefono , c.cli_carnet AS carnet , o.obs_lock , c.cli_revalidaweb AS ValEmail , c.cli_tel_cod_area AS TelArea , c.cli_tel_numero AS TelNro , c.cli_revalidawebtel AS ValTelefono , c.cli_validapass AS ValPass , (CASE WHEN o.obs_telemed IS NULL THEN 0 ELSE 1 END) AS ObsTelemed , c.cli_bloqueado FROM clientes AS c , obrasoc AS o , obsplan AS p WHERE ".$passVal." ".$emailVal." AND c.obs_codigo = o.obs_codigo AND p.obs_codigo = o.obs_codigo AND p.obsp_cod = c.obsp_cod ORDER BY cli_registracion"; //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $result = $GLOBALS['dbSQL']->getAll(); if( count($result)>0 ) { $codP = $result[0]['cli_codigo']; $dni = $result[0]['DNI']; $name = trim($result[0]['PACIENTE']); //$name = str_replace(" ",", ",$name); $nameObS = $result[0]['OBRA_SOCIAL']; $planObS = $result[0]['PLAN_']; $idObS = $result[0]['ID_OBRA_SOCIAL']; $idPlanObS = $result[0]['obsp_cod']; $email = $result[0]['EMAIL']; $sexo = $result[0]['Sexo']; $facn = $result[0]['FacN']; $tel = $result[0]['Telefono']; $carnet = $result[0]['carnet']; $obsflag = (intval($result[0]['obs_lock'])==1?true:false); $validaemail= (intval($result[0]['ValEmail'])==1?true:false); $telarea = $result[0]['TelArea']; $telnumero = $result[0]['TelNro']; $validatel = (intval($result[0]['ValTelefono'])==1?true:false); $obstelemed = $result[0]['ObsTelemed']; $validaPass = (intval($result[0]['ValPass'])==1?true:false); $clienteBloqueado= (intval($result[0]['cli_bloqueado'])==1?true:false); return $result; } } return false; } function getToken($type,$codUsuario,$nombre,$email) { $iss = 'login' . $type; $params = array(); $params["iss"] = $iss;//TODO $params["aud"] = $iss;//TODO $params["qsh"] = randomText(5); $params["iat"] = time(); $params["exp"] = $params["iat"] + JWT_EXPIRED_DEFAULT_TIME; $params["user"]["userKey"] = $codUsuario; $params["user"]["userName"] = $nombre; $params["user"]["userEmail"] = $email; $params["user"]["displayName"] = $nombre; $params["user"]["type"] = $type; $params["user"]["iduser"] = $codUsuario; //Obtener un token de sesion $token = Acl::getAccessToken($params); return $token; } function getClienteSaldo($idCliente,&$saldo) { try { $sql = "SELECT (CASE WHEN T1.SALDO IS NULL THEN 0 ELSE T1.SALDO END) AS CliSaldo ,T1.Act as CliActualizado FROM( SELECT pbal_saldo as SALDO, pbal_actualizado AS Act FROM ldoc_paciente_balance AS tur1 WHERE cli_codigo = ".$idCliente." ) AS T1"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //return EMPTY_ACCOUNT; return false; } // $saldo = array( // "saldo" => 0 // ,"signo" => 1 // ,"saldoI" => 0 // ,"saldoD" => '00' // ,"actualizado" => '' // ); $saldo = array( "saldo" => 0 ,"signo" => 1 ,"salint" => 0 ,"saldec" => 0 ,"actualizado" => '' ); $saldoInf = $GLOBALS['dbSQL']->getAll(); if(count($saldoInf)>0) { $signo = 1; $saldoVal = number_format(floatval($saldoInf[0]["CliSaldo"]),2); if( $saldoVal >= 0 ) { $saldoD = intval($saldoVal); $decimales = floatval($saldoVal-$saldoD); //print_r("s[".$saldoVal."] sD[".$saldoD."]de[".$decimales."]");die; $decimalesT = ''; $pos = stripos($decimales, '.'); if($pos!==false) { $aux = substr($decimales, 2); if(strlen($aux)<2) { $decimalesT = $aux . '0'; } else { $decimalesT = $aux; } } else { if(strlen($decimales)<2) { $decimalesT = $decimales . '0'; } else { $decimalesT = $decimales; } } } else { $saldoD = intval($saldoVal); $decimales = floatval($saldoVal-$saldoD); $signo = -1; //print_r("s[".$saldoVal."] sD[".$saldoD."]de[".$decimales."]");die; $decimalesT = ''; $pos = stripos($decimales, '.'); if($pos!==false) { $aux = substr($decimales, 3); if(strlen($aux)<2) { $decimalesT = $aux . '0'; } else { $decimalesT = $aux; } } else { if(strlen($decimales)<2) { $decimalesT = $decimales . '0'; } else { $decimalesT = $decimales; } } } $saldo = array( "saldo" => $saldoVal ,"signo" => $signo ,"salint" => $saldoD ,"saldec" => $decimalesT ,"actualizado" => $saldoInf[0]["CliActualizado"] ); //return (floatval($saldoVal)>0?NOTEMPTY_ACCOUNT:EMPTY_ACCOUNT); return true; } else { return true; } //return EMPTY_ACCOUNT; //return false; } catch ( Exception $e ) { //return EMPTY_ACCOUNT; //print_r($e->__toString()); return false; } } function loginUser(&$resultInfo) { $dni = ''; $email = ''; $password = ''; $continue = true; $resultInfo['code'] = 0; if(!$GLOBALS['LOGIN_USER_EMAIL']) { if( !( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) ) ) { $resultInfo['code'] = 2; //$resultInfo['errorDes'] = "Paciente no registrado"; $resultInfo['errorDes'] = "Paciente no registrado.(Cod. 100)"; $continue = false; } else { $dni = $_REQUEST["dni"]; } } if( $GLOBALS['LOGIN_USER_PASS'] && !( isset($_REQUEST["pass"]) /*&& !empty($_REQUEST["pass"]) && !is_null($_REQUEST["pass"])*/ ) ) { $resultInfo['code'] = 2; //$resultInfo['errorDes'] = "Paciente no registrado"; $resultInfo['errorDes'] = "Paciente no registrado.(Cod. 101)"; $continue = false; } else { $password = (isset($_REQUEST["pass"])?$_REQUEST["pass"]:''); } if( $GLOBALS['LOGIN_USER_EMAIL'] && !( isset($_REQUEST["email"]) && !empty($_REQUEST["email"]) && !is_null($_REQUEST["email"]) ) ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado.(Cod. 102)"; $continue = false; } else//if( $GLOBALS['LOGIN_USER_EMAIL'] ) { $email = (isset($_REQUEST["email"])?$_REQUEST["email"]:''); } if( $continue ) { $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; //$email = ''; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $validaPass = false; if(!$GLOBALS['LOGIN_USER_EMAIL']) { if( is_numeric($dni) ) { $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); //print_r("r[$resultado]");die(" <<<<< "); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['vp'] = $validaPass; $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $userInfo['obstelemed'] = $obstelemed; $turnos = getCountListMisTurnos($codP); $userInfo['turnos'] = $turnos; //Asistencias / Inasistencias $asist=0;$inasist=0; list($asist,$inasist) = getEstadisticasAsistencia($codP); $userInfo['estadisticas'] = $asist.';'.$inasist; $resenc = getRespondioEncuesta($codP); $userInfo['renc'] = $resenc; $saldo = false; $saldoRel = getClienteSaldo($codP,$saldo); $userInfo['ld_csld'] = $saldo; // //$saldoRel = getClienteSaldo($codP,$saldo); // //$userInfo['ld_csld'] = $saldo; // $clieSaldo = false; // $_REQUEST["idclie"] = $codP; // $saldoRel = getLDClieSaldo($clieSaldo); // //print($clieSaldo);//die; // $userInfo['ld_csld']= $clieSaldo["data"]; $userInfo['token'] = getToken('u',$codP,$name,$email); $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); //print_r($resultInfo);die( " <<>> " ); } else { $resultInfo['code'] = 1; //$resultInfo['errorDes'] = "Paciente no registrado"; $resultInfo['errorDes'] = "Paciente no registrado.(Cod. 103)"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado"; } } else { if( ValidarEmail($email) ) { $resultado = getValidarEmailFast($email, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$dni,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['vp'] = $validaPass; $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $userInfo['obstelemed'] = $obstelemed; $turnos = getCountListMisTurnos($codP); $userInfo['turnos'] = $turnos; //Asistencias / Inasistencias $asist=0;$inasist=0; // list($asist,$inasist) = getEstadisticasAsistencia($codP); $userInfo['estadisticas'] = $asist.';'.$inasist; $resenc = getRespondioEncuesta($codP); $userInfo['renc'] = $resenc; $saldo = false; $saldoRel = getClienteSaldo($codP,$saldo); $userInfo['ld_csld'] = $saldo; // //$saldoRel = getClienteSaldo($codP,$saldo); // //$userInfo['ld_csld'] = $saldo; // $clieSaldo = false; // $_REQUEST["idclie"] = $codP; // $saldoRel = getLDClieSaldo($clieSaldo); // //print($clieSaldo);//die; // $userInfo['ld_csld']= $clieSaldo["data"]; $userInfo['token'] = getToken('u',$codP,$name,$email); $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); //print_r($resultInfo);die( " <<>> " ); } else { $resultInfo['code'] = 1; //$resultInfo['errorDes'] = "Paciente no registrado"; $resultInfo['errorDes'] = "Paciente no registrado.(Cod. 103)"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado"; } } } } function recuperarClave(&$resultInfo) { $dni = ''; $email = ''; $password = ''; $continue = true; $resultInfo['code'] = 0; if( !( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) ) ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Debe ingresar un número de documento válido"; $continue = false; } else { $dni = $_REQUEST["dni"]; } //Buscar el dni $sql = "SELECT (CASE WHEN cli_email IS NULL THEN '-1' ELSE cli_email END) as email ,(CASE WHEN cli_tel IS NULL THEN '-1' ELSE cli_tel END) as telefono ,(CASE WHEN cli_tel_cod_area IS NULL THEN '-1' ELSE cli_tel_cod_area END) as telcodarea ,(CASE WHEN cli_tel_numero IS NULL THEN '-1' ELSE cli_tel_numero END) as telnro FROM clientes WHERE cli_dni = '".addslashes($dni)."'"; //die($sql); //debug($sql); //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $paciente = $GLOBALS['dbSQL']->getAll(); if( count($paciente)>0 ) { $email = $paciente[0]["email"]; if(is_numeric($email) && intval($email)===-1) { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "El paciente no tiene registrado una cuenta de email. Contactese con administración."; $continue = false; } elseif(!is_numeric($email) && trim($email)==='') { $resultInfo['code'] = 5; $resultInfo['errorDes'] = "El paciente no tiene registrado una cuenta de email. Contactese con administración."; $continue = false; } else { //Enviar link recuperacion; $passwordTemporal = rand(0,9).rand(0,9).rand(0,9).rand(0,9); $sql = "UPDATE dbo.[clientes] SET [cli_passw] = '".md5($passwordTemporal)."' ,[cli_validapass] = 0 WHERE cli_dni = '".$dni."'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $datos = array(); $datos['cl'] = $passwordTemporal; $datos['dni'] = $dni; $datos['email'] = $email; sendEmailConfirmacionWs(TYPE_EMAIL_RC, $datos); //Enviar clave por whatsapp if( $GLOBALS['SEND_RECOVERPASS_WHATSAPP'] ) { $telefono1 = $paciente[0]["telefono"]; $telefono2_cod = $paciente[0]["telcodarea"]; $telefono2_nro = $paciente[0]["telnro"]; $telefono2 = false; if( is_numeric($telefono1) && intval($telefono1)===-1 ) { $telefono1 = false; } if( is_numeric($telefono2_cod) && intval($telefono2_cod)===-1 || is_numeric($telefono2_nro) && intval($telefono2_nro)===-1 ) { $telefono2 = false; } if( is_numeric($telefono2_cod) && intval($telefono2_cod)!==-1 && is_numeric($telefono2_nro) && intval($telefono2_nro)!==-1 ) { $telefono2 = $telefono2_cod.$telefono2_nro; } $lstTelefonos = ""; if( $telefono1 ) { $lstTelefonos = "(GETDATE(),0,NULL,'".$telefono1."','".$passwordTemporal."')"; } if( $telefono2 ) { if($telefono1 && (getNroWhatsapp($telefono1)<>getNroWhatsapp($telefono2))) { $lstTelefonos.= ($telefono1?',':'') . "(GETDATE(),0,NULL,'".$telefono2."','".$passwordTemporal."')"; } elseif(!$telefono1 && $telefono2) { $lstTelefonos.= "(GETDATE(),0,NULL,'".$telefono2."','".$passwordTemporal."')"; } } if( $lstTelefonos ) { $sql = "INSERT INTO mensajes_whatsapp_recover ( men_fechaenvio ,men_procesado ,men_fechaproceso ,men_telefono ,men_clave ) VALUES " . $lstTelefonos; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); //$rs = true; if( !$rs ) { //$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"); } } } $resultInfo['code'] = 0; $resultInfo['data'] = array( "email" => $email ); } else { $resultInfo['code'] = 6; $resultInfo['errorDes'] = "Se produjo un error en el sistema. Intente mas tarde."; } } //print_r("r[".$validarPrimerAcceso."]");die; } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Paciente no registrado. Seleccione la opcion 'REGISTRASE'."; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado"; } } function loginUserRegistrar($dni) { $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = -3; $sexo = false; $facn = false; $tel = false; $carnet = false; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($dni, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['idClie'] = $codP; $userInfo['name'] = $name; $userInfo['email'] = $email; $userInfo['codPl'] = $idPlanObS; $userInfo['codOb'] = $idObS; $userInfo['nameOb'] = $nameObS; $userInfo['namePl'] = $planObS; $userInfo['sexo'] = $sexo; $userInfo['facn'] = $facn; $userInfo['tel'] = $tel; $userInfo['carnet'] = $carnet; $userInfo['d'] = date("d",strtotime($facn)); $userInfo['m'] = date("m",strtotime($facn)); $userInfo['a'] = date("Y",strtotime($facn)); $userInfo['ve'] = $validaemail; $userInfo['vt'] = $validatel; $userInfo['vp'] = $validaPass; $userInfo['tarea'] = $telarea; $userInfo['tnumero'] = $telnumero; $turnos = getCountListMisTurnos($codP); $userInfo['turnos'] = $turnos; //Asistencias / Inasistencias $asist=0;$inasist=0; list($asist,$inasist) = getEstadisticasAsistencia($codP); $userInfo['estadisticas'] = $asist.';'.$inasist; $resenc = getRespondioEncuesta($codP); $userInfo['renc'] = $resenc; $clieSaldo = false; $_REQUEST["idclie"] = $codP; $saldoRel = 0;//getLDClieSaldo($clieSaldo); //print_r($clieSaldo);//die; $userInfo['ld_csld']= 0;//$clieSaldo["data"]; $userInfo['token'] = getToken('u',$codP,$name,$email); return $userInfo; } else { return false; } } function loginProf(&$resultInfo) { $dni = $_REQUEST["dni"]; $mat = $_REQUEST["matricula"]; $resultInfo['code'] = 0; if( is_numeric($dni) ) { $name = ""; $codP = -1; $nombre = false; $email = ''; $sexo = false; $telefono = false; $alerta = false; $fnac = false; $cesp = false; $tit = false; $resultado = getValidarDNIProfFast($dni, $mat,$codP,$nombre,$email,$sexo,$telefono,$alerta,$fnac,$cesp,$tit); //print_r($resultado);die; if( $resultado ) { $userInfo['dni'] = $dni; $userInfo['mat'] = $mat; $userInfo['cod'] = $codP; $userInfo['name'] = $nombre; $userInfo['email'] = $email; $userInfo['sexo'] = $sexo; $userInfo['tel'] = $telefono; $userInfo['fnacd'] = date("d",strtotime($fnac)); $userInfo['fnacm'] = date("m",strtotime($fnac)); $userInfo['fnaca'] = date("Y",strtotime($fnac)); $userInfo['cweb'] = $alerta; $userInfo['cesp'] = $cesp; $userInfo['tit'] = $tit; $userInfo['hoy'] = date("d/m/Y"); $turnos = getCountListProfTurnos($codP); $userInfo['turnos'] = $turnos; $userInfo['ld'] = getIsProfesionalLDOnline($codP); $userInfo['ldpi'] = getProfesionalLDPicture($codP); $userInfo['token'] = getToken('p',$codP,$nombre,$email); $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); //print_r($resultInfo);die; return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "DNI inválido. No esta registrado."; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "DNI inválido. No es numerico"; } return false; } function getDiaSemanaNum($indexDiaSemana) { switch($indexDiaSemana) { case 1: $diaSemana = 'Domingo'; break; case 2: $diaSemana = 'Lunes'; break; case 3: $diaSemana = 'Martes'; break; case 4: $diaSemana = 'Miercoles'; break; case 5: $diaSemana = 'Jueves'; break; case 6: $diaSemana = 'Viernes'; break; case 7: $diaSemana = 'Sabado'; break; default: $diaSemana = false; break; } return $diaSemana; } function getFechasSemanaSel(&$calendario) { if( isset($_REQUEST["ft"]) && !empty($_REQUEST["ft"]) && !is_null($_REQUEST["ft"]) && isset($_REQUEST["o"]) && !empty($_REQUEST["o"]) && !is_null($_REQUEST["o"]) && is_numeric($_REQUEST["o"]) && isset($_REQUEST["y"]) && !empty($_REQUEST["y"]) && !is_null($_REQUEST["y"]) && is_numeric($_REQUEST["y"]) ) { $fecha = date("Y-m-d"); switch( $_REQUEST["o"] ) { case NEXT_WEEK: { $fecha = date("Y-m-d", strtotime($_REQUEST["ft"]. ' + 1 days')); } break; case PREVIOUS_WEEK: { $fecha = date("Y-m-d", strtotime($_REQUEST["ft"]. ' - 1 days')); } break; case NEXT_MONTH: { $fechaOrg = date("Y-m-d", strtotime($_REQUEST["y"].'-'.$_REQUEST["ft"]."-01")); $fechaOrgLastDay = date("t", strtotime($fechaOrg)); $fecha = date("Y-m-d", strtotime($_REQUEST["y"].'-'.$_REQUEST["ft"]."-" . $fechaOrgLastDay . ' + 1 days')); } break; case PREVIOUS_MONTH: { $fechaOrg = date("Y-m-d", strtotime($_REQUEST["y"].'-'.$_REQUEST["ft"]."-01")); //print_r("f[".$fechaOrg."]");print_r("\n");die; $fechaOrg = date("Y-m-d", strtotime($fechaOrg . ' - 1 days')); //$fechaLastDayPreviousMonth = date("Y-m-d", strtotime($_REQUEST["y"].'-'.$_REQUEST["ft"]."-" . $fechaOrgLastDay . ' - 1 days')); $fechaMonth = date("m", strtotime($fechaOrg)); $fecha = date("Y-m-d", strtotime($_REQUEST["y"].'-'.$fechaMonth."-01")); //print_r("f[".$fecha."]");print_r("\n");die; } break; } //-->$fecha = date("Y-m-d", strtotime($_REQUEST["ft"])); if( $fecha < date("Y-m-d") ) { $fecha = date("Y-m-d"); } } else { $fecha = date("Y-m-d"); if( isset($_REQUEST["ft"]) && !empty($_REQUEST["ft"]) && !is_null($_REQUEST["ft"]) ) { $fecha = date("Y-m-d", strtotime($_REQUEST["ft"])); } if( $fecha < date("Y-m-d") ) { $fecha = date("Y-m-d"); } } //print_r("f[".$fecha."]");print_r("\n"); //die("mmmmm"); $mesActual = date("m",strtotime($fecha)); $anoActual = date("Y",strtotime($fecha)); $diaSemana = date('N',strtotime($fecha)); //print_r("f[".$fecha."]");die("fr"); //print_r("ds[".$diaSemana."]");die(" <<<< "); $dias = array(); $dias[0] = ""; $dias[1] = ""; $dias[2] = ""; $dias[3] = ""; $dias[4] = ""; $dias[5] = ""; $dias[6] = ""; $diasF = array(); $diasF[0] = ""; $diasF[1] = ""; $diasF[2] = ""; $diasF[3] = ""; $diasF[4] = ""; $diasF[5] = ""; $diasF[6] = ""; switch( $diaSemana ) { case LUNES: { $dias[0] = date('d/m/Y', strtotime($fecha. ' - 1 days'));//D $dias[1] = date('d/m/Y', strtotime($fecha)); //L $dias[2] = date('d/m/Y', strtotime($fecha. ' + 1 days'));//M $dias[3] = date('d/m/Y', strtotime($fecha. ' + 2 days'));//M $dias[4] = date('d/m/Y', strtotime($fecha. ' + 3 days'));//J $dias[5] = date('d/m/Y', strtotime($fecha. ' + 4 days'));//V $dias[6] = date('d/m/Y', strtotime($fecha. ' + 5 days'));//S $diasF[0] = date('Y-m-d', strtotime($fecha. ' - 1 days'));//D $diasF[1] = date('Y-m-d', strtotime($fecha)); //L $diasF[2] = date('Y-m-d', strtotime($fecha. ' + 1 days'));//M $diasF[3] = date('Y-m-d', strtotime($fecha. ' + 2 days'));//M $diasF[4] = date('Y-m-d', strtotime($fecha. ' + 3 days'));//J $diasF[5] = date('Y-m-d', strtotime($fecha. ' + 4 days'));//V $diasF[6] = date('Y-m-d', strtotime($fecha. ' + 5 days'));//S } break; case MARTES: { $dias[0] = date('d/m/Y', strtotime($fecha. ' - 2 days'));//D $dias[1] = date('d/m/Y', strtotime($fecha. ' - 1 days')); //L $dias[2] = date('d/m/Y', strtotime($fecha));//M $dias[3] = date('d/m/Y', strtotime($fecha. ' + 1 days'));//M $dias[4] = date('d/m/Y', strtotime($fecha. ' + 2 days'));//J $dias[5] = date('d/m/Y', strtotime($fecha. ' + 3 days'));//V $dias[6] = date('d/m/Y', strtotime($fecha. ' + 4 days'));//S $diasF[0] = date('Y-m-d', strtotime($fecha. ' - 2 days'));//D $diasF[1] = date('Y-m-d', strtotime($fecha. ' - 1 days')); //L $diasF[2] = date('Y-m-d', strtotime($fecha));//M $diasF[3] = date('Y-m-d', strtotime($fecha. ' + 1 days'));//M $diasF[4] = date('Y-m-d', strtotime($fecha. ' + 2 days'));//J $diasF[5] = date('Y-m-d', strtotime($fecha. ' + 3 days'));//V $diasF[6] = date('Y-m-d', strtotime($fecha. ' + 4 days'));//S } break; case MIERCOLES: { $dias[0] = date('d/m/Y', strtotime($fecha. ' - 3 days'));//D $dias[1] = date('d/m/Y', strtotime($fecha. ' - 2 days')); //L $dias[2] = date('d/m/Y', strtotime($fecha. ' - 1 days'));//M $dias[3] = date('d/m/Y', strtotime($fecha));//M $dias[4] = date('d/m/Y', strtotime($fecha. ' + 1 days'));//J $dias[5] = date('d/m/Y', strtotime($fecha. ' + 2 days'));//V $dias[6] = date('d/m/Y', strtotime($fecha. ' + 3 days'));//S $diasF[0] = date('Y-m-d', strtotime($fecha. ' - 3 days'));//D $diasF[1] = date('Y-m-d', strtotime($fecha. ' - 2 days')); //L $diasF[2] = date('Y-m-d', strtotime($fecha. ' - 1 days'));//M $diasF[3] = date('Y-m-d', strtotime($fecha));//M $diasF[4] = date('Y-m-d', strtotime($fecha. ' + 1 days'));//J $diasF[5] = date('Y-m-d', strtotime($fecha. ' + 2 days'));//V $diasF[6] = date('Y-m-d', strtotime($fecha. ' + 3 days'));//S } break; case JUEVES: { $dias[0] = date('d/m/Y', strtotime($fecha. ' - 4 days'));//D $dias[1] = date('d/m/Y', strtotime($fecha. ' - 3 days')); //L $dias[2] = date('d/m/Y', strtotime($fecha. ' - 2 days'));//M $dias[3] = date('d/m/Y', strtotime($fecha. ' - 1 days'));//M $dias[4] = date('d/m/Y', strtotime($fecha));//J $dias[5] = date('d/m/Y', strtotime($fecha. ' + 1 days'));//V $dias[6] = date('d/m/Y', strtotime($fecha. ' + 2 days'));//S $diasF[0] = date('Y-m-d', strtotime($fecha. ' - 4 days'));//D $diasF[1] = date('Y-m-d', strtotime($fecha. ' - 3 days')); //L $diasF[2] = date('Y-m-d', strtotime($fecha. ' - 2 days'));//M $diasF[3] = date('Y-m-d', strtotime($fecha. ' - 1 days'));//M $diasF[4] = date('Y-m-d', strtotime($fecha));//J $diasF[5] = date('Y-m-d', strtotime($fecha. ' + 1 days'));//V $diasF[6] = date('Y-m-d', strtotime($fecha. ' + 2 days'));//S } break; case VIERNES: { $dias[0] = date('d/m/Y', strtotime($fecha. ' - 5 days'));//D $dias[1] = date('d/m/Y', strtotime($fecha. ' - 4 days')); //L $dias[2] = date('d/m/Y', strtotime($fecha. ' - 3 days'));//M $dias[3] = date('d/m/Y', strtotime($fecha. ' - 2 days'));//M $dias[4] = date('d/m/Y', strtotime($fecha. ' - 1 days'));//J $dias[5] = date('d/m/Y', strtotime($fecha));//V $dias[6] = date('d/m/Y', strtotime($fecha. ' + 1 days'));//S $diasF[0] = date('Y-m-d', strtotime($fecha. ' - 5 days'));//D $diasF[1] = date('Y-m-d', strtotime($fecha. ' - 4 days')); //L $diasF[2] = date('Y-m-d', strtotime($fecha. ' - 3 days'));//M $diasF[3] = date('Y-m-d', strtotime($fecha. ' - 2 days'));//M $diasF[4] = date('Y-m-d', strtotime($fecha. ' - 1 days'));//J $diasF[5] = date('Y-m-d', strtotime($fecha));//V $diasF[6] = date('Y-m-d', strtotime($fecha. ' + 1 days'));//S } break; case SABADO: { $dias[0] = date('d/m/Y', strtotime($fecha. ' - 6 days'));//D $dias[1] = date('d/m/Y', strtotime($fecha. ' - 5 days')); //L $dias[2] = date('d/m/Y', strtotime($fecha. ' - 4 days'));//M $dias[3] = date('d/m/Y', strtotime($fecha. ' - 3 days'));//M $dias[4] = date('d/m/Y', strtotime($fecha. ' - 2 days'));//J $dias[5] = date('d/m/Y', strtotime($fecha. ' - 1 days'));//V $dias[6] = date('d/m/Y', strtotime($fecha));//S $diasF[0] = date('Y-m-d', strtotime($fecha. ' - 6 days'));//D $diasF[1] = date('Y-m-d', strtotime($fecha. ' - 5 days')); //L $diasF[2] = date('Y-m-d', strtotime($fecha. ' - 4 days'));//M $diasF[3] = date('Y-m-d', strtotime($fecha. ' - 3 days'));//M $diasF[4] = date('Y-m-d', strtotime($fecha. ' - 2 days'));//J $diasF[5] = date('Y-m-d', strtotime($fecha. ' - 1 days'));//V $diasF[6] = date('Y-m-d', strtotime($fecha));//S } break; case DOMINGO: { $dias[0] = date('d/m/Y', strtotime($fecha));//D $dias[1] = date('d/m/Y', strtotime($fecha. ' + 1 days')); //L $dias[2] = date('d/m/Y', strtotime($fecha. ' + 2 days'));//M $dias[3] = date('d/m/Y', strtotime($fecha. ' + 3 days'));//M $dias[4] = date('d/m/Y', strtotime($fecha. ' + 4 days'));//J $dias[5] = date('d/m/Y', strtotime($fecha. ' + 5 days'));//V $dias[6] = date('d/m/Y', strtotime($fecha. ' + 6 days'));//S $diasF[0] = date('Y-m-d', strtotime($fecha));//D $diasF[1] = date('Y-m-d', strtotime($fecha. ' + 1 days')); //L $diasF[2] = date('Y-m-d', strtotime($fecha. ' + 2 days'));//M $diasF[3] = date('Y-m-d', strtotime($fecha. ' + 3 days'));//M $diasF[4] = date('Y-m-d', strtotime($fecha. ' + 4 days'));//J $diasF[5] = date('Y-m-d', strtotime($fecha. ' + 5 days'));//V $diasF[6] = date('Y-m-d', strtotime($fecha. ' + 6 days'));//S } break; } $calendario['fechasSemana'] = $dias; $calendario['fechasSemanaF'] = $diasF; $calendario['mesActual'] = $mesActual; $calendario['anoActual'] = $anoActual; return true; } function validateMedico($idMed) { //med_web => muestra horarios //med_turnos_web => permite sacar turnos $sql = "SELECT m.* FROM medicos AS m WHERE m.med_codigo = ".$idMed; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { return array($rs[0]['med_web'],$rs[0]['med_turnos_web']); } else { return array(false,false); } /* Array ( [0] => Array ( [med_codigo] => 119 [med_nombre] => ALVAREZ SOLEDAD [med_dni] => 28430716 [med_mp] => 4706 [med_fecnto] => [esp_codigo] => 5 [med_dir] => TEMISRTOCLES CASTELLANOS 1776 [med_tel] => 3513758716 [med_observ] => Particular $200 [pro_codigo] => 2 [loc_codigo] => 1 [med_email] => [mp_codigo] => 2 [med_web] => 1 [tit_codigo] => 3 [med_turnos_web] => 0 [med_retencion] => [MED_MPESP] => [med_cuit] => [dgi_codigo] => 4 [med_ingbr] => ) ) */ //print_r($rs);die; //if(count($rs)==0){return true;} //return $rs; } function validarProfesional($idMed) { $sql = "SELECT m.[med_codigo] ,m.[med_dni] ,m.[med_web] ,m.[med_turnos_web] ,m.[med_bloqueado] ,m.[med_webcoment] FROM medicos AS m WHERE m.med_codigo = ".$idMed; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { if( ( !empty($rs[0]['med_bloqueado']) && !is_null($rs[0]['med_bloqueado']) && ( $rs[0]['med_bloqueado']=="1" || $rs[0]['med_bloqueado']===1 ) ) || ( !empty($rs[0]['med_web']) && !is_null($rs[0]['med_web']) && ( $rs[0]['med_web']=="0" || $rs[0]['med_web']===0 ) ) || ( !empty($rs[0]['med_turnos_web']) && !is_null($rs[0]['med_turnos_web']) && ( $rs[0]['med_turnos_web']=="0" || $rs[0]['med_turnos_web']===0 ) ) ) { return false; } return true; } return false; } function validarExisteHorarioMedico($idMed) { $sql = "SELECT COUNT(*) AS total FROM medhora WHERE med_codigo = ".$idMed; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { if(isset($rs[0]["total"])&&intval(($rs[0]["total"]))>0) { return true; } } return false; } function calcularHoras($intervalo_,$fecha,$hDesde,$hHasta) { $continue=true; $intervalo = intval($intervalo_); $turno = $fecha." ".$hDesde.":00"; $turnoFinalStr = $fecha." ".$hHasta.":00"; $turnoFinal = date("Y-m-d H:i:s",strtotime($turnoFinalStr)); $turnos_=array(); $turnosf_=array(); while( $continue ) { $ii=array_push($turnos_, date("H:i",strtotime($turno))); $rr=array_push($turnosf_, date("Gi",strtotime($turno))); $turno = date('Y-m-d H:i:s', strtotime('+' . $intervalo . ' minutes',strtotime($turno))); if( $turno > $turnoFinal ) { $continue = false; } } return array($turnos_,$turnosf_); } function getObraSocialCliente($idCliente) { //-------------------- //Cliente //-------------------- $sql = "SELECT obs_codigo FROM clientes WHERE cli_codigo = '".addslashes($idCliente)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 2; //return true;//error al leer el cliente return false;//error al leer el cliente } $clienteInfo = $GLOBALS['dbSQL']->getAll(); //if(count($clienteInfo)==0){$error = 2;return true;}//error cliente no existe o esta bloqueado if(count($clienteInfo)==0){$error = 2;return false;}//error cliente no existe o esta bloqueado return $clienteInfo[0]["obs_codigo"]; } function getProfesionalHorariosFrecuentes($med,$rangoMed,&$calendario,&$turnero,$userId=false) { $calendario['turnos'] = false; $calendario['horarios'] = false; $turnero = false; $turnosexistentes = false; if( $rangoMed!==false && $rangoMed > 0 ) { $rango = $rangoMed; } else { $rango = getRangoTurnero(); } $fechaDesde = date("Y-m-d"); $fechaHasta = date("Y-m-d",strtotime('+' . $rango . ' days',strtotime($fechaDesde)));//TODO $fechaIni = date("Y-m-d 00:00:00.000",strtotime($fechaDesde)); $fechaFin = date("Y-m-d 23:59:59.000",strtotime($fechaHasta)); //Consulta de los dias de atencion del medico para los dias habilitados $sql = "SELECT [med_codigo] ,[mh_dia] ,[mh_desde1] ,[mh_hasta1] ,[mh_desde2] ,[mh_hasta2] ,[mh_int1] ,[mh_int2] FROM dbo.[medhora] WHERE [med_codigo] = " . $med ." ORDER BY [mh_dia] ASC, [mh_desde1] ASC, [mh_desde2] ASC"; $rs = $GLOBALS['dbSQL']->Query($sql); $horarioGral = array(); $horarioOrg = array(); $lstIntervalos = array(); if ( $rs ) { $flagPrimeElemento=true; $diaActual=0; $counter=1; $counterT=1; //$uu=0; for($i=1;$i<8;$i++) { $horarioGral[$i] = ""; } $horarioOrg = array(); for($h=0;$h<2;$h++) { $ini[$h] = false; $fin[$h] = false; } $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { //$uu++; $diaSemana = $row["mh_dia"]; $hDesde_m = $row["mh_desde1"]; $hHasta_m = $row["mh_hasta1"]; $hDesde_t = $row["mh_desde2"]; $hHasta_t = $row["mh_hasta2"]; $hDesde_m_ = $row["mh_desde1"]; $hHasta_m_ = $row["mh_hasta1"]; $hDesde_t_ = $row["mh_desde2"]; $hHasta_t_ = $row["mh_hasta2"]; $intervalM = $row["mh_int1"]; $intervalT = $row["mh_int2"]; $indexCalActual = array_push($horarioOrg,$row); $intervaloManana = false; $intervaloTarde = false; $tipo = 0; // Solo Mañana if($hDesde_m!=0 && $hHasta_m!=0 && $intervalM!=0) { $intervaloManana = true; //Parseo los horarios if(strlen($hDesde_m)<4) { $hDesde_m = '0'.substr($hDesde_m,0,1).':'.substr($hDesde_m,1,2); } else { $hDesde_m = substr($hDesde_m,0,2).':'.substr($hDesde_m,2,2); } if(strlen($hHasta_m)<4) { $hHasta_m = '0'.substr($hHasta_m,0,1).':'.substr($hHasta_m,1,2); } else { $hHasta_m = substr($hHasta_m,0,2).':'.substr($hHasta_m,2,2); } $turnos_ = false; $turnosf_= false; list($turnos_,$turnosf_) = calcularHoras($intervalM,$fechaDesde,$hDesde_m,$hHasta_m); $k = array_push($lstIntervalos, array( 0=> $diaSemana, 1=> $hDesde_m, 2=> $hHasta_m, 3=> $intervalM, 4=> $hDesde_m_, 5=> $hHasta_m_, 6=> $turnos_, 7=> $turnosf_ )); } if($hDesde_t!=0 && $hHasta_t!=0 && $intervalT!=0) { $intervaloTarde = true; //Parseo los horarios if(strlen($hDesde_t)<4) { $hDesde_t = '0'.substr($hDesde_t,0,1).':'.substr($hDesde_t,1,2); } else { $hDesde_t = substr($hDesde_t,0,2).':'.substr($hDesde_t,2,2); } if(strlen($hHasta_t)<4) { $hHasta_t = '0'.substr($hHasta_t,0,1).':'.substr($hHasta_t,1,2); } else { $hHasta_t = substr($hHasta_t,0,2).':'.substr($hHasta_t,2,2); } $turnos_ = false; $turnosf_= false; list($turnos_,$turnosf_) = calcularHoras($intervalT,$fechaDesde,$hDesde_t,$hHasta_t); $k = array_push($lstIntervalos, array( 0=> $diaSemana, 1=> $hDesde_t, 2=> $hHasta_t, 3=> $intervalT, 4=> $hDesde_t_, 5=> $hHasta_t_, 6=> $turnos_, 7=> $turnosf_) ); } } //--------------------------------------------- //Buscar turnos existentes del período //--------------------------------------------- // $sql = "SELECT FORMAT( [tur_fecha], 'yyyy-MM-dd' ) as men_fecha $sql = "SELECT LEFT(CONVERT(VARCHAR, [tur_fecha], 120), 10) as men_fecha ,[tur_hora] FROM dbo.[turnos] WHERE [med_codigo] = " . $med ." AND CONVERT(VARCHAR,[tur_fecha],120) BETWEEN LEFT(CONVERT(VARCHAR, '".$fechaIni."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$fechaFin."', 120), 10) ORDER BY 1,2"; //die($sql); $result = $GLOBALS['dbSQL']->Query($sql); if( $result ) { $turnosexistentes = $GLOBALS['dbSQL']->getAll(); if( count($turnosexistentes) <= 0 ) { $turnosexistentes = false; } } //--------------------------------------------- //--------------------------------------------- // Si esta definido que solo se retorna el calendario para: usuarios logueados, umbral validado (ex), // obtener la obra social del cliente //--------------------------------------------- $flagParticular = false; if( $GLOBALS['UMBRALTURPROF'] && $GLOBALS['USERLOGINTURNOS'] //&& //$GLOBALS['UMBRALTURPROFPARTICULAR'] //&& false // <=RETOMAR EL DESARROLLO DE: AGENDA SOLO PARA USUARIOS LOGUEADOS ) { $obscliente = getObraSocialCliente($userId); } //--------------------------------------------- //Armar la agenda //--------------------------------------------- $turnero = array(); $continue = true; $fDesde = $fechaDesde; $feriados = getDiasFeriadosNew(); $feriadosXMedico = getDiasFeriadosXMedicoNew($med); while( $continue ) { $dSTurno = intval(date("N",strtotime($fDesde))); switch( $dSTurno ) { case LUNES: { $dSTurno = F_LUNES; } break; case MARTES: { $dSTurno = F_MARTES; } break; case MIERCOLES: { $dSTurno = F_MIERCOLES; } break; case JUEVES: { $dSTurno = F_JUEVES; } break; case VIERNES: { $dSTurno = F_VIERNES; } break; case SABADO: { $dSTurno = F_SABADO; } break; case DOMINGO: { $dSTurno = F_DOMINGO; } break; } $flagdia=false; //Quito dìa Feriado $flagFeriado = false; //if(isset($_REQUEST['pepe'])){print_r('---------------------');print_r("\n");} //if(isset($_REQUEST['pepe'])){print_r($fDesde);print_r("\n");} if( excluirDia( $fDesde, $feriados ) || excluirDiaFeriadoXMedico( $fDesde, $feriadosXMedico ) ) { $flagFeriado = true; } //------------------------------------------------- //Quitar turnos existentes por umbral si esta definido //------------------------------------------------- //--------------------------------------------- //Si esta definido el filtrado de turnos por umbral, obtener la obra social del cliente y el umbral del profesional //--------------------------------------------- $flagUmbralObsCliente=false; if( $GLOBALS['UMBRALTURPROF'] && $GLOBALS['USERLOGINTURNOS'] ) { //print_r($fDesde);print_r("\n"); if ( !ValidarUmbralWs($med, $obscliente, $fDesde) ) { $flagUmbralObsCliente = true; } } if( !$flagFeriado && !$flagUmbralObsCliente ) { //Busco el dia de la semana para la fecha actual, en el listado de días //for( $i=0; $i 0 ) { if( isset($turnero[$fDesde]) && count($turnero[$fDesde])>0) { //$turnero[$fDesde] = array_merge($turnero[$fDesde], $turtmpaux); if($turnero[$fDesde]===false||$turnero[$fDesde]===0) { $turnero[$fDesde] = $turtmpaux; } else { $turnero[$fDesde] = array_merge($turnero[$fDesde], $turtmpaux); } } else { $turnero[$fDesde] = $turtmpaux; } //$turnero[$fDesde] = $turtmpaux; } else { $turnero[$fDesde] = 0; } $flagdia = true; } } } //Dia sin atencion if( !$flagdia ) { $turnero[$fDesde] = 1; } $fDesde = date("Y-m-d",strtotime('+' . 1 . ' days',strtotime($fDesde))); $flagdia = false; if( $fDesde > $fechaHasta ) { $continue = false; } } if( count($turnero) <= 0 ) { $turnero = false; return false; } return true; } else { //El profesional no tiene definida la agenda de horarios return false; } } function getProfesionalHorariosEventuales($med,$rangoMed,&$calendario,&$turnero) { $calendario['turnos'] = false; $calendario['horarios'] = false; $turnero = false; $turnosexistentes = false; //$rango = getRangoTurnero(); if( $rangoMed!==false && $rangoMed > 0 ) { $rango = $rangoMed; } else { $rango = getRangoTurnero(); } $fechaDesde = date("Y-m-d"); $fechaHasta = date("Y-m-d",strtotime('+' . $rango . ' days',strtotime($fechaDesde)));//TODO $fechaIni = date("Y-m-d 00:00:00.000",strtotime($fechaDesde)); $fechaFin = date("Y-m-d 23:59:59.000",strtotime($fechaHasta)); //Consulta de los dias de atencion del medico para los dias habilitados $sql = "SELECT [med_codigo] ,[mhe_fecha] ,[mhe_desde1] ,[mhe_hasta1] ,[mhe_int1] FROM dbo.[medhora_eventual] WHERE [med_codigo] = " . $med ." AND CONVERT(VARCHAR,[mhe_fecha], 120) >= LEFT(CONVERT(VARCHAR, '".date("Y-m-d 00:00:00.000",strtotime($fechaIni))."', 120), 10) ORDER BY [mhe_fecha] ASC, [mhe_desde1] ASC"; $rs = $GLOBALS['dbSQL']->Query($sql); $horarioGral = array(); $horarioOrg = array(); $lstIntervalos = array(); if ( $rs ) { $flagPrimeElemento=true; $diaActual=0; $counter=1; $counterT=1; for($i=1;$i<8;$i++) { $horarioGral[$i] = ""; } $horarioOrg = array(); for($h=0;$h<2;$h++) { $ini[$h] = false; $fin[$h] = false; } $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $diaSemana = intval(date("w",strtotime($row["mhe_fecha"]))) + 1; $hDesde_m = $row["mhe_desde1"]; $hHasta_m = $row["mhe_hasta1"]; $hDesde_m_ = $row["mhe_desde1"]; $hHasta_m_ = $row["mhe_hasta1"]; $intervalM = $row["mhe_int1"]; $indexCalActual = array_push($horarioOrg,$row); if($hDesde_m!=0 && $hHasta_m!=0 && $intervalM!=0) { //Parseo los horarios if(strlen($hDesde_m)<4) { $hDesde_m = '0'.substr($hDesde_m,0,1).':'.substr($hDesde_m,1,2); } else { $hDesde_m = substr($hDesde_m,0,2).':'.substr($hDesde_m,2,2); } if(strlen($hHasta_m)<4) { $hHasta_m = '0'.substr($hHasta_m,0,1).':'.substr($hHasta_m,1,2); } else { $hHasta_m = substr($hHasta_m,0,2).':'.substr($hHasta_m,2,2); } $turnos_ = false; $turnosf_= false; list($turnos_,$turnosf_) = calcularHoras($intervalM,$fechaDesde,$hDesde_m,$hHasta_m); $k = array_push($lstIntervalos, array( 0=> $diaSemana, 1=> $hDesde_m, 2=> $hHasta_m, 3=> $intervalM, 4=> $hDesde_m_, 5=> $hHasta_m_, 6=> $turnos_, 7=> $turnosf_, 8=> date("Y-m-d",strtotime($row["mhe_fecha"])) )); } } //--------------------------------------------- //Buscar turnos existentes del período //--------------------------------------------- $sql = "SELECT LEFT(CONVERT(VARCHAR, [tur_fecha], 120), 10) as men_fecha ,[tur_hora] FROM dbo.[turnos] WHERE [med_codigo] = " . $med ." AND CONVERT(VARCHAR,[tur_fecha], 120) BETWEEN LEFT(CONVERT(VARCHAR, '".$fechaIni."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$fechaFin."', 120), 10) ORDER BY 1,2"; $result = $GLOBALS['dbSQL']->Query($sql); if( $result ) { $turnosexistentes = $GLOBALS['dbSQL']->getAll(); if( count($turnosexistentes) <= 0 ) { $turnosexistentes = false; } } //--------------------------------------------- //--------------------------------------------- //Armar la agenda //--------------------------------------------- $turnero = array(); //Busco el dia de la semana para la fecha actual, en el listado de días for( $i=0; $i 0 ) { $turnero[$lstIntervalos[$i][8]] = $turtmpaux; } else { $turnero[$lstIntervalos[$i][8]] = 0; } $flagdia = true; } if( count($turnero) <= 0 ) { $turnero = false; return false; } return true; } else { //El profesional no tiene definida la agenda de horarios return false; } } function calendarioProfesional($med,&$calendario,&$turnero,&$calendarios,$userId=false) { $calendario = array(); $calendario['turnos'] = false; $calendario['horarios'] = false; $turneroFrec = false; $turneroEven = false; $turnero = false; $rangoMed = getRangoTurneroMedico($_REQUEST["idMed"]); $resultadoF = getProfesionalHorariosFrecuentes($_REQUEST["idMed"],$rangoMed,$calendario,$turneroFrec,$userId); $resultadoE = getProfesionalHorariosEventuales($_REQUEST["idMed"],$rangoMed,$calendario,$turneroEven); $calendarios = false; if( $rangoMed!==false && $rangoMed > 0 ) { $resultInfo = false; $result = obtenerTurneroCalendarioo($resultInfo,$_REQUEST["idMed"]); $calendarios = $resultInfo['data']['calendarios']; } if( $resultadoF || $resultadoE ) { if( is_array($turneroFrec) && is_array($turneroEven) ) { $turnero = array_merge($turneroFrec, $turneroEven); } elseif( is_array($turneroFrec) && !is_array($turneroEven) ) { $turnero = $turneroFrec; } elseif( !is_array($turneroFrec) && is_array($turneroEven) ) { $turnero = $turneroEven; } } return $turnero; } function prepareOutputByWhatsapp($tipo,$resultado) { //print_r($resultado);die; $output = array(); switch( $tipo ) { case 'agendaMed': { if(isset($_REQUEST["of"])) { foreach($resultado as $key=>$value) { //print_r($value);print_r("\n"); if( !($value===1)&&!($value===0) ) { $fecha = date("Y-m-d",strtotime($key)); $x = array_push($output,date("d/m/Y",strtotime($fecha))); } } } if(isset($_REQUEST["oh"])) { //$fecha = date("d/m/Y",strtotime($_REQUEST["fs"])); $fecha = substr($_REQUEST["fs"],6) ."-".substr($_REQUEST["fs"],3,2) ."-".substr($_REQUEST["fs"],0,2); foreach($resultado as $key=>$value) { if( $key == $fecha ) { $totalHoras = count($value); for($i=0;$i<$totalHoras;$i++) { if( strlen($value[$i])<4 ) { $aux = "0" . substr($value[$i],0, 1) . ":" . substr($value[$i],1); } else { $aux = substr($value[$i],0, 2) . ":" . substr($value[$i],2); } $x = array_push($output,$aux); } } } } } break; } return $output; } function getTurneroMedico(&$resultInfo) { if( isset($_REQUEST["idMed"]) && !empty($_REQUEST["idMed"]) && !is_null($_REQUEST["idMed"]) ) { $continue = true; $userId=false; $flagWHBoot=false; if(isset($_REQUEST["wbinterface"])){$flagWHBoot=true;} if( $GLOBALS['USERLOGINTURNOS'] && !$flagWHBoot ) { if( isset($_REQUEST["token"]) && !is_null($_REQUEST["token"]) ) { //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"; } } else { //Error $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) { if( !validarExisteHorarioMedico($_REQUEST["idMed"]) ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El profesional no esta habilitado para tomar turnos via web."; } else { if( !validarProfesional($_REQUEST["idMed"]) ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El profesional no esta habilitado para tomar turnos via web."; } else { $desde = date("Y-m-d H:i:s"); $hasta = date("Y-m-d H:i:s"); } $turnero = false; $calendario = array(); $calendarios= array(); $resultado = calendarioProfesional($_REQUEST["idMed"], $calendario, $turnero, $calendarios,$userId); if( $turnero ) { if( $flagWHBoot ) { $turnero = prepareOutputByWhatsapp('agendaMed',$turnero); $calendarios='';//NO ME HACE FALTA EN WHATSAPP } $resultInfo['code'] = 0; $resultInfo['data'] = array( "turnero" => $turnero ,"calendarios" => $calendarios ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } function getMedicoCalendarioYTurnos($med,&$calendario,&$turnero) { $calendario = array(); $calendario['turnos'] = false; $calendario['horarios'] = false; $turnero = false; $turnosexistentes = false; $rango = getRangoTurnero(); $fechaDesde = date("Y-m-d"); $fechaHasta = date("Y-m-d",strtotime('+' . $rango . ' days',strtotime($fechaDesde)));//TODO $fechaIni = date("Y-m-d 00:00:00.000",strtotime($fechaDesde)); $fechaFin = date("Y-m-d 23:59:59.000",strtotime($fechaHasta)); //Consulta de los dias de atencion del medico para los dias habilitados $sql = "SELECT [med_codigo] ,[mh_dia] ,[mh_desde1] ,[mh_hasta1] ,[mh_desde2] ,[mh_hasta2] ,[mh_int1] ,[mh_int2] FROM dbo.[medhora] WHERE [med_codigo] = " . $med ." ORDER BY [mh_dia] ASC, [mh_desde1] ASC, [mh_desde2] ASC"; $rs = $GLOBALS['dbSQL']->Query($sql); $horarioGral = array(); $horarioOrg = array(); $lstIntervalos = array(); if ( $rs ) { $flagPrimeElemento=true; $diaActual=0; $counter=1; $counterT=1; //$uu=0; for($i=1;$i<8;$i++) { $horarioGral[$i] = ""; } $horarioOrg = array(); for($h=0;$h<2;$h++) { $ini[$h] = false; $fin[$h] = false; } $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { //$uu++; $diaSemana = $row["mh_dia"]; $hDesde_m = $row["mh_desde1"]; $hHasta_m = $row["mh_hasta1"]; $hDesde_t = $row["mh_desde2"]; $hHasta_t = $row["mh_hasta2"]; $hDesde_m_ = $row["mh_desde1"]; $hHasta_m_ = $row["mh_hasta1"]; $hDesde_t_ = $row["mh_desde2"]; $hHasta_t_ = $row["mh_hasta2"]; $intervalM = $row["mh_int1"]; $intervalT = $row["mh_int2"]; $indexCalActual = array_push($horarioOrg,$row); $intervaloManana = false; $intervaloTarde = false; $tipo = 0; // Solo Mañana if($hDesde_m!=0 && $hHasta_m!=0 && $intervalM!=0) { $intervaloManana = true; //Parseo los horarios if(strlen($hDesde_m)<4) { $hDesde_m = '0'.substr($hDesde_m,0,1).':'.substr($hDesde_m,1,2); } else { $hDesde_m = substr($hDesde_m,0,2).':'.substr($hDesde_m,2,2); } if(strlen($hHasta_m)<4) { $hHasta_m = '0'.substr($hHasta_m,0,1).':'.substr($hHasta_m,1,2); } else { $hHasta_m = substr($hHasta_m,0,2).':'.substr($hHasta_m,2,2); } $turnos_ = false; $turnosf_= false; list($turnos_,$turnosf_) = calcularHoras($intervalM,$fechaDesde,$hDesde_m,$hHasta_m); $k = array_push($lstIntervalos, array( 0=> $diaSemana, 1=> $hDesde_m, 2=> $hHasta_m, 3=> $intervalM, 4=> $hDesde_m_, 5=> $hHasta_m_, 6=> $turnos_, 7=> $turnosf_ )); } if($hDesde_t!=0 && $hHasta_t!=0 && $intervalT!=0) { $intervaloTarde = true; //Parseo los horarios if(strlen($hDesde_t)<4) { $hDesde_t = '0'.substr($hDesde_t,0,1).':'.substr($hDesde_t,1,2); } else { $hDesde_t = substr($hDesde_t,0,2).':'.substr($hDesde_t,2,2); } if(strlen($hHasta_t)<4) { $hHasta_t = '0'.substr($hHasta_t,0,1).':'.substr($hHasta_t,1,2); } else { $hHasta_t = substr($hHasta_t,0,2).':'.substr($hHasta_t,2,2); } $turnos_ = false; $turnosf_= false; list($turnos_,$turnosf_) = calcularHoras($intervalT,$fechaDesde,$hDesde_t,$hHasta_t); $k = array_push($lstIntervalos, array( 0=> $diaSemana, 1=> $hDesde_t, 2=> $hHasta_t, 3=> $intervalT, 4=> $hDesde_t_, 5=> $hHasta_t_, 6=> $turnos_, 7=> $turnosf_) ); } } //--------------------------------------------- //Buscar turnos existentes del período //--------------------------------------------- // $sql = "SELECT FORMAT( [tur_fecha], 'yyyy-MM-dd' ) as men_fecha $sql = "SELECT LEFT(CONVERT(VARCHAR, [tur_fecha], 120), 10) as men_fecha ,[tur_hora] FROM dbo.[turnos] WHERE [med_codigo] = " . $med ." AND [cli_codigo] <> 1 AND [tur_fecha] BETWEEN LEFT(CONVERT(VARCHAR, '".$fechaIni."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$fechaFin."', 120), 10) ORDER BY 1,2"; //die($sql); $result = $GLOBALS['dbSQL']->Query($sql); if( $result ) { $turnosexistentes = $GLOBALS['dbSQL']->getAll(); if( count($turnosexistentes) <= 0 ) { $turnosexistentes = false; } } //--------------------------------------------- // print_r('--------------------');print_r("\n"); // print_r(' INTERVALOS ');print_r("\n"); // print_r('--------------------');print_r("\n"); // print_r($lstIntervalos);print_r("\n"); // print_r('--------------------');print_r("\n"); // print_r(' TURNOS EXISTENTES');print_r("\n"); // print_r('--------------------');print_r("\n"); // print_r($turnosexistentes);print_r("\n"); //--------------------------------------------- //Armar la agenda //--------------------------------------------- $turnero = array(); $continue = true; $fDesde = $fechaDesde; while( $continue ) { $dSTurno = intval(date("N",strtotime($fDesde))); switch( $dSTurno ) { case LUNES: { $dSTurno = F_LUNES; } break; case MARTES: { $dSTurno = F_MARTES; } break; case MIERCOLES: { $dSTurno = F_MIERCOLES; } break; case JUEVES: { $dSTurno = F_JUEVES; } break; case VIERNES: { $dSTurno = F_VIERNES; } break; case SABADO: { $dSTurno = F_SABADO; } break; case DOMINGO: { $dSTurno = F_DOMINGO; } break; } $flagdia=false; //Busco el dia de la semana para la fecha actual, en el listado de días for( $i=0; $i 0 ) { // $turnero[$fDesde] = $turtmpaux; $turnero[$fDesde] = 2;//TIENE TURNOS } else { $turnero[$fDesde] = 0;//NO TIENE TURNOS } // print_r('TURNO AGREGADO');print_r("\n"); // print_r($turnero[$fDesde]);print_r("\n"); $flagdia = true; } } //Dia sin atencion if( !$flagdia ) { $turnero[$fDesde] = 1; }//NO TRABAJA ESE DIA $fDesde = date("Y-m-d",strtotime('+' . 1 . ' days',strtotime($fDesde))); $flagdia = false; if( $fDesde > $fechaHasta ) { $continue = false; } } // print_r('--------------------');print_r("\n"); // print_r(' TURNERO FINAL ');print_r("\n"); // print_r('--------------------');print_r("\n"); // print_r($turnero);print_r("\n");die; if( count($turnero) <= 0 ) { $turnero = false; return false; } return true; } else { //El profesional no tiene definida la agenda de horarios return false; } } function getTurneroProfesional(&$resultInfo) { if( isset($_REQUEST["idMed"]) && !empty($_REQUEST["idMed"]) && !is_null($_REQUEST["idMed"]) ) { if( !validarProfesional($_REQUEST["idMed"]) ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El profesional no esta habilitado para tomar turnos via web."; } else { $desde = date("Y-m-d H:i:s"); $hasta = date("Y-m-d H:i:s"); } $turnero = false; $calendario = array(); $resultado = getMedicoCalendarioYTurnos($_REQUEST["idMed"], $calendario, $turnero); if( $turnero ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "turnero" => $turnero ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } function getEstudios($idPaciente) { // AND est_fecha BETWEEN :frmConsultaEstudios.dfFecDesde AND :frmConsultaEstudios.dfFecHasta // AND e.med_codigo BETWEEN :frmConsultaEstudios.dfMedDesde AND :frmConsultaEstudios.dfMedHasta $sql = "SELECT est_numero, FORMAT ( est_fecha, 'dd/MM/yyyy' ) as est_fecha, c.cli_codigo, cli_nombre, cli_dni, e.obs_codigo, obs_denom, est_motivo, est_texto, est_denom, est_conclusion, e.med_codigo, m.med_nombre, es.esp_denom, ti.tit_abrev, CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(est_numero,c.cli_dni,e.med_codigo,est_fecha)), 2) as t FROM cli_fichaestudios as e, tbl_tipoestudios as t, clientes as c, obrasoc as o, medicos as m, especial AS es, tbl_titulos AS ti WHERE e.cli_codigo = ".$idPaciente." AND t.est_codigo = e.est_codigo AND c.cli_codigo = e.cli_codigo AND o.obs_codigo = e.obs_codigo AND m.med_codigo = e.med_codigo AND m.esp_codigo = es.esp_codigo AND ti.tit_codigo = m.tit_codigo ORDER BY 2 DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $estudios = $GLOBALS['dbSQL']->getAll(); if(count($estudios)>0) { return $estudios; } return -1; } function getEstudiosFiles($idPaciente) { $sql = "SELECT i.img_id as imgpid ,i.cli_codigo as cliid ,i.img_item as item ,CONVERT(VARCHAR,i.img_fecha, 103) AS fecha ,i.med_codigo as mcod ,m.med_nombre as mname ,ti.tit_abrev as mtit ,i.img_titulo as imtit ,i.img_path as imn ,1 as org ,-1 as index_ FROM dbo.cli_imagenes as i LEFT JOIN dbo.medicos as m ON m.med_codigo = i.med_codigo LEFT JOIN tbl_titulos AS ti ON ti.tit_codigo = m.tit_codigo WHERE cli_codigo = ".$idPaciente; // ,esp_codigo // i.cd_observ as imtit for($i=0;$i<26;$i++) { $campos = " i.cli_id as imgpid ,i.cli_codigo as cliid ,0 as item ,CONVERT(VARCHAR,i.cd_fecha, 103) AS fecha ,i.med_codigo as mcod ,m.med_nombre as mname ,ti.tit_abrev as mtit ,'' as imtit ,i.img_".$i." as imn ,2 as org ,".$i." as index_"; $from = " FROM dbo.cli_diagnosticos AS i LEFT JOIN dbo.medicos as m ON m.med_codigo = i.med_codigo LEFT JOIN tbl_titulos AS ti ON ti.tit_codigo = m.tit_codigo WHERE cli_codigo = ".$idPaciente." AND i.img_".$i." IS NOT NULL AND LTRIM(RTRIM(i.img_".$i.")) <> '' "; $sql.= " UNION SELECT ".$campos." ".$from; } $mainsql = "SELECT TT.* FROM ( " . $sql . " ) AS TT ORDER BY TT.fecha DESC "; $rs = $GLOBALS['dbSQL']->Query($mainsql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $estudios = $GLOBALS['dbSQL']->getAll(); if(count($estudios)>0) { return $estudios; } return -1; } function getEstudioFileInfo($idPaciente,$idImagen) { $path = false; $sql = "SELECT par_path_imagenes FROM empresa"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $empresaCnf = $GLOBALS['dbSQL']->getAll(); if(count($empresaCnf)>0) { $path = $empresaCnf[0]["par_path_imagenes"]; } } if( $path ) { $sql = "SELECT img_path, img_titulo FROM dbo.cli_imagenes WHERE cli_codigo = '".addslashes($idPaciente)."' AND img_id = '".addslashes($idImagen)."' ORDER BY img_fecha DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $file = $GLOBALS['dbSQL']->getAll(); if(count($file)>0) { $fileInfo = array( "pathDisc" => $path ,"fileInfo" => $file[0] ); return $fileInfo; } } return false; } function getEstudioFileInfoEspecial($idPaciente,$idImagen,$index) { $path = false; $sql = "SELECT par_path_imagenes FROM empresa"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $empresaCnf = $GLOBALS['dbSQL']->getAll(); if(count($empresaCnf)>0) { $path = $empresaCnf[0]["par_path_imagenes"]; } } if( $path ) { $sql = "SELECT img_".$index." as img_path ,'' as img_titulo FROM dbo.cli_diagnosticos WHERE cli_codigo = '".addslashes($idPaciente)."' AND cli_id = '".addslashes($idImagen)."' ORDER BY cd_fecha DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $file = $GLOBALS['dbSQL']->getAll(); if(count($file)>0) { $fileInfo = array( "pathDisc" => $path ,"fileInfo" => $file[0] ); return $fileInfo; } } return false; } function getPacienteEstudios(&$resultInfo) { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) ) { $estudios = false; $estudios = getEstudios($_REQUEST["idcli"]); $estudiosF = getEstudiosFiles($_REQUEST["idcli"]); if( $estudios || $estudiosF) { $totalE = count($estudios); $totalEF = count($estudiosF); $resultInfo['code'] = 0; $resultInfo['data'] = array( //"total" => ($estudios!=(-1)?count($estudios):0), "total" => ($totalE+$totalEF) ,"estudios" => $estudios ,"estudiosF" => $estudiosF ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los estudios del Paciente"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar los estudios del Paciente"; } } function getEstudioByToken($token) { // AND est_fecha BETWEEN :frmConsultaEstudios.dfFecDesde AND :frmConsultaEstudios.dfFecHasta // AND e.med_codigo BETWEEN :frmConsultaEstudios.dfMedDesde AND :frmConsultaEstudios.dfMedHasta $sql = "SELECT est_numero, FORMAT ( est_fecha, 'dd/MM/yyyy' ) as est_fecha, c.cli_codigo, cli_nombre, cli_dni, e.obs_codigo, obs_denom, est_motivo, est_texto, est_denom, est_conclusion, e.med_codigo, m.med_nombre, es.esp_denom, ti.tit_abrev, CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(est_numero,c.cli_dni,e.med_codigo,est_fecha)), 2) as t, (CASE WHEN c.cli_fecnto IS NOT NULL THEN '' ELSE dbo.GetAge(c.cli_fecnto) END) AS edadc FROM cli_fichaestudios as e, tbl_tipoestudios as t, clientes as c, obrasoc as o, medicos as m, especial AS es, tbl_titulos AS ti WHERE CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(est_numero,c.cli_dni,e.med_codigo,est_fecha)), 2) = '".$token." ' AND t.est_codigo = e.est_codigo AND c.cli_codigo = e.cli_codigo AND o.obs_codigo = e.obs_codigo AND m.med_codigo = e.med_codigo AND m.esp_codigo = es.esp_codigo AND ti.tit_codigo = m.tit_codigo AND est_firmado = 1 ORDER BY 2 DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $estudios = $GLOBALS['dbSQL']->getAll(); if(count($estudios)>0) { return $estudios; } return -1; } function getEstudioById($id) { $sql = "SELECT est_numero, FORMAT ( est_fecha, 'dd/MM/yyyy' ) as est_fecha, c.cli_codigo, cli_nombre, cli_dni, e.obs_codigo, obs_denom, est_motivo, est_texto, est_denom, est_conclusion, e.med_codigo, m.med_nombre, es.esp_denom, ti.tit_abrev, CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(est_numero,c.cli_dni,e.med_codigo,est_fecha)), 2) as t, (CASE WHEN c.cli_fecnto IS NOT NULL THEN '' ELSE dbo.GetAge(c.cli_fecnto) END) AS edadc FROM cli_fichaestudios as e, tbl_tipoestudios as t, clientes as c, obrasoc as o, medicos as m, especial AS es, tbl_titulos AS ti WHERE e.est_numero = '".addslashes($id)." ' AND t.est_codigo = e.est_codigo AND c.cli_codigo = e.cli_codigo AND o.obs_codigo = e.obs_codigo AND m.med_codigo = e.med_codigo AND m.esp_codigo = es.esp_codigo AND ti.tit_codigo = m.tit_codigo AND est_firmado = 1 ORDER BY 2 DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $estudios = $GLOBALS['dbSQL']->getAll(); if(count($estudios)>0) { return $estudios; } return -1; } function getPacienteEstudio(&$resultInfo) { if( (isset($_REQUEST["token"]) && !empty($_REQUEST["token"]) && !is_null($_REQUEST["token"])) || (isset($_REQUEST["t"]) && !empty($_REQUEST["t"]) && !is_null($_REQUEST["t"]) ) ) { $estudios = false; $token = (isset($_REQUEST["token"])?$_REQUEST["token"]:$_REQUEST["t"]); $flagFromDashboard = (isset($_REQUEST["fr"])?$_REQUEST["fr"]:false); if(!$flagFromDashboard) { $estudios = getEstudioByToken($token); } else { $estudios = getEstudioById($_REQUEST["fr"]); } if( $estudios ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => ($estudios!=(-1)?count($estudios):0), "estudios" => $estudios ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los estudios del Paciente"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar los estudios del Paciente"; } } function cleanArchivosTemporalesEstudios() { // Borrar todos los archivos temporales del directorio de estudios copia $files = glob('./tmpf/*'); // get all file names foreach($files as $file) { if(is_file($file)) { unlink($file); } } } function getPacienteLaboratorios(&$resultInfo) { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) ) { $estudios = false; $total = 0; $laboratorios = getLaboratorios($_REQUEST["idcli"],$total); if( $laboratorios ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => ($laboratorios!=(-1)?count($laboratorios):0), "laboratorios" => $laboratorios ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los laboratorios del Paciente"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar los laboratorios del Paciente"; } } function getLaboratorios($idPaciente,$total=0) { // AND est_fecha BETWEEN :frmConsultaEstudios.dfFecDesde AND :frmConsultaEstudios.dfFecHasta // AND e.med_codigo BETWEEN :frmConsultaEstudios.dfMedDesde AND :frmConsultaEstudios.dfMedHasta /* SELECT lab_fecha, lab_titulo, c.obs_codigo, obs_denom, cli_fecnto, ca.cli_codigo, cli_nombre, cli_dni, cli_sexo, lab_denom, cli_edad = dbo.GetAge(cli_fecnto), lab_pie, med_firma FROM cli_laboratorio_analisis ca, clientes c, obrasoc o, lab_analisis a, medicos m WHERE cla_numero = 21147 AND c.cli_codigo = ca.cli_codigo AND ca.obs_codigo = o.obs_codigo AND a.lab_codigo = ca.lab_codigo AND m.med_codigo = ca.med_codigo SELECT d.lad_codigo, CASE WHEN lad_tipo = 'I' THEN ' ' + lad_denom ELSE lad_denom END, lad_metodo, lad_rango, cla_valor, lad_grupo, lad_orden, lad_tipo FROM cli_laboratorio_analisis_detalle d, lab_analisis_detalle ad WHERE cla_numero = 21147 AND d.lab_codigo = ad.lab_codigo AND d.lad_codigo = ad.lad_codigo order by 7,1 */ $laboratorios = array(); $sql = "SELECT cla_numero, FORMAT ( lab_fecha, 'dd/MM/yyyy' ) as lab_fecha, lab_titulo, c.obs_codigo, obs_denom, cli_fecnto, ca.cli_codigo, cli_nombre, cli_dni, cli_sexo, lab_denom, cli_edad = dbo.GetAge(cli_fecnto), lab_pie, med_firma, CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(cla_numero,c.cli_dni,m.med_codigo,lab_fecha)), 2) as t FROM cli_laboratorio_analisis ca, clientes c, obrasoc o, lab_analisis a, medicos m WHERE c.cli_codigo = ca.cli_codigo AND ca.obs_codigo = o.obs_codigo AND a.lab_codigo = ca.lab_codigo AND m.med_codigo = ca.med_codigo AND c.cli_codigo = ".$idPaciente.""; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $laboratorioslst = $GLOBALS['dbSQL']->getAll(); if(is_array($laboratorioslst)&&count($laboratorioslst)>0) { return $laboratorioslst; } return -1; } function getLaboratorioByToken($token) { $sql = "SELECT cla_numero, FORMAT ( lab_fecha, 'dd/MM/yyyy' ) as lab_fecha, lab_titulo, c.obs_codigo, obs_denom, cli_fecnto, ca.cli_codigo, cli_nombre, cli_dni, cli_sexo, lab_denom, cli_edad = dbo.GetAge(cli_fecnto), lab_pie, med_firma, m.med_codigo, CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(cla_numero,c.cli_dni,m.med_codigo,lab_fecha)), 2) as t FROM cli_laboratorio_analisis ca, clientes c, obrasoc o, lab_analisis a, medicos m WHERE c.cli_codigo = ca.cli_codigo AND ca.obs_codigo = o.obs_codigo AND a.lab_codigo = ca.lab_codigo AND m.med_codigo = ca.med_codigo AND CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(cla_numero,c.cli_dni,m.med_codigo,lab_fecha)), 2) = '".$token." '"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $laboratorio = $GLOBALS['dbSQL']->getAll(); if(count($laboratorio)>0) { $sql = "SELECT d.lad_codigo, CASE WHEN lad_tipo = 'I' THEN ' ' + lad_denom ELSE lad_denom END as lad_denom, lad_metodo, lad_rango, cla_valor, lad_grupo, lad_orden, lad_tipo FROM cli_laboratorio_analisis_detalle d, lab_analisis_detalle ad WHERE cla_numero = ".$laboratorio[0]["cla_numero"]." AND d.lab_codigo = ad.lab_codigo AND d.lad_codigo = ad.lad_codigo AND d.lad_codigo = ad.lad_codigo ORDER BY 7,1"; $rsDet = $GLOBALS['dbSQL']->Query($sql); $detalle = array(); if ( !$rsDet ) { //return false; } else { $detalle = $GLOBALS['dbSQL']->getAll(); } return array($laboratorio,$detalle); } return -1; } function getPacienteLaboratorio(&$resultInfo) { if( isset($_REQUEST["token"]) && !empty($_REQUEST["token"]) && !is_null($_REQUEST["token"]) ) { $laboratorio = false; $detalle = false; list($laboratorio,$detalle) = getLaboratorioByToken($_REQUEST["token"]); if( $laboratorio ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"laboratorio" => $laboratorio ,"detalle" => $detalle ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el laboratorio"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar el laboratorio"; } } function getHcPaciente($idcliente) { $result = array( "cliente" => false ,"hc" => array() ); $sql = "SELECT c.cli_codigo as cod ,c.cli_nombre as nombre ,c.cli_sexo as sexo ,c.cli_dni as doc ,o.obs_denom as obs ,(CASE WHEN c.cli_fecnto IS NOT NULL THEN '' ELSE dbo.GetAge(c.cli_fecnto) END) AS edad FROM clientes as c LEFT JOIN obrasoc as o ON o.obs_codigo = c.obs_codigo WHERE cli_codigo = '".addslashes($idcliente)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $result["cliente"] = $GLOBALS['dbSQL']->getAll(); // ----------- $sql = "SELECT cli_id AS id, FORMAT ( cd_fecha, 'dd/MM/yyyy' ) as fecha, FORMAT(cd_fecha,'dd/MM/yyyy HH:mm:ss') AS fechahora, e.cd_observ as evo, m.med_nombre as med, es.esp_denom as esp, (CASE WHEN ti.tit_abrev IS NULL THEN '' ELSE ti.tit_abrev END) as tit FROM cli_diagnosticos as e INNER JOIN clientes as c ON c.cli_codigo = e.cli_codigo INNER JOIN medicos as m ON m.med_codigo = e.med_codigo LEFT JOIN especial AS es ON m.esp_codigo = es.esp_codigo LEFT JOIN tbl_titulos AS ti ON ti.tit_codigo = m.tit_codigo LEFT JOIN obrasoc as o ON o.obs_codigo = c.obs_codigo WHERE c.cli_codigo = '".addslashes($idcliente)."' ORDER BY cd_fecha DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $result["hc"] = $GLOBALS['dbSQL']->getAll(); //print_r($result["hc"]);die; return $result; } function getPacienteRecetaByToken(&$resultInfo) { if( (isset($_REQUEST["token"]) && !empty($_REQUEST["token"]) && !is_null($_REQUEST["token"])) || (isset($_REQUEST["t"]) && !empty($_REQUEST["t"]) && !is_null($_REQUEST["t"]) ) ) { $recetas = false; $token = (isset($_REQUEST["token"])?$_REQUEST["token"]:$_REQUEST["t"]); $recetas = getRecetas(false,$token); if( $recetas ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => ($recetas!=(-1)?count($recetas):0) ,"recetas" => $recetas ,"empresa" => getEmpresaInfo() ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas/prescripciones del Paciente"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas/prescripciones del Paciente"; } } function getRecetas($idPaciente,$token=false,$flagFamiliar=false) { if(!$token) { if(!$flagFamiliar) { $clienteWhere = "r.cli_codigo = '".addslashes($idPaciente)."'"; } else { $clienteWhere = "r.cli_codigo IN (SELECT cli_codigo FROM clientes WHERE cli_codigo_padre = '".addslashes($idPaciente)."')"; } } else { $clienteWhere = " CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(int_numero,c.cli_dni,r.med_codigo,int_fecha)), 2) = '".addslashes($token)."'"; } $sql = "SELECT int_numero ,FORMAT ( int_fecha, 'dd/MM/yyyy' ) as int_fecha ,c.cli_codigo ,cli_nombre ,cli_dni ,r.obs_codigo ,obs_denom ,int_motivo ,int_medicamento ,int_medicamento_diag ,r.med_codigo ,m.med_nombre ,es.esp_denom ,ti.tit_abrev ,CONVERT(VARCHAR(32), HashBytes('MD5', CONCAT(int_numero,c.cli_dni,r.med_codigo,int_fecha)), 2) as t ,c.cli_carnet ,m.med_mp FROM cli_fichainternacion as r, clientes as c, obrasoc as o, medicos as m, especial AS es, tbl_titulos AS ti WHERE ".$clienteWhere." AND c.cli_codigo = r.cli_codigo AND o.obs_codigo = r.obs_codigo AND m.med_codigo = r.med_codigo AND m.esp_codigo = es.esp_codigo AND ti.tit_codigo = m.tit_codigo ORDER BY int_fecha DESC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $estudios = $GLOBALS['dbSQL']->getAll(); if(count($estudios)>0) { return $estudios; } return -1; } function getPacienteRecetas(&$resultInfo) { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) ) { $estudios = false; $recetas = getRecetas($_REQUEST["idcli"]); $recetasF = getRecetas($_REQUEST["idcli"],false,true);//FAMILIAR //if( $estudios || $estudiosF) if( $recetas || $recetasF) { $totalE = (is_array($recetas)?count($recetas):0); $totalEF = (is_array($recetasF)?count($recetasF):0); $resultInfo['code'] = 0; $resultInfo['data'] = array( //"total" => ($estudios!=(-1)?count($estudios):0), "total" => ($totalE+$totalEF) ,"recetas" => (is_array($recetas)?$recetas:array()) ,"recetasF" => (is_array($recetasF)?$recetasF:array()) ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas del Paciente"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas del Paciente"; } } function getNombrePacientesPorDNI($lstPacientes) { $clienteWhere = "cli_dni IN (".addslashes($lstPacientes).")"; $sql = "SELECT DISTINCT cli_codigo ,cli_nombre ,cli_dni FROM clientes WHERE ".$clienteWhere." ORDER BY cli_dni"; //print_r($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $pacientes = $GLOBALS['dbSQL']->getAll(); if(count($pacientes)>0) { return $pacientes; } return -1; } function getInfoPacientesAdjuntoHx($dni) { $sql = "SELECT DISTINCT cli_codigo ,cli_nombre ,cli_dni FROM clientes WHERE cli_dni = '".addslashes($dni)."' ORDER BY cli_dni"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $paciente = $GLOBALS['dbSQL']->getAll(); if(count($paciente)>0) { return $paciente[0]; } return false; } function getInfoArchivoAdjuntoHx($file,$flagEspecial=false) { $sql = "SELECT 1 FROM dbo.cli_imagenes WHERE img_path = '".addslashes($file)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return -1; } $file = $GLOBALS['dbSQL']->getAll(); if(count($file)>0) { return 1; } return 0; } function getProcesarLstArchivos($lstFiles) { $files = json_decode($lstFiles ,true); //print_r($files);die; for($i=0;$i $total ,"archivos"=> (is_array($archivos)?$archivos:array()) ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al procesar los archivos"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al procesar los archivos"; } } /* function getPacientesByDoc(&$resultInfo) { if( isset($_REQUEST["lst"]) && !empty($_REQUEST["lst"]) && !is_null($_REQUEST["lst"]) ) { $estudios = false; $pacientes = getNombrePacientesPorDNI($_REQUEST["lst"]); //if( $estudios || $estudiosF) if( $pacientes ) { $total = (is_array($pacientes)?count($pacientes):0); $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => $total ,"pacientes"=> (is_array($pacientes)?$pacientes:array()) ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas del Paciente"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar las recetas del Paciente"; } } */ function uploadfilesHx() { try { $lstFilestmp = json_decode($_REQUEST["lst"]); $lstFiles = array(); foreach($lstFilestmp as $item) { $x = array_push($lstFiles,array( "d"=>$item->d ,"m"=>$item->m ,"n"=>$item->n ,"tit"=>$item->tit ,"cc"=>$item->cc )); } /*[n] => aaabbb30905308dfsdfsdfsdf.jpg [t] => image/jpeg [s] => 159985 [p] => [d] => 30905308 [st] => 0 [tit] => */ //$lstFiles = json_decode($_REQUEST["lst"]); //----------------------------------------------- // Leer el archivo y crear la lista de afiliados //----------------------------------------------- $inputFileName = $_FILES[0]['tmp_name']; $continue = false; $flagTransactionInit = false; if( setConeccionTransaccion() ) { $continue = true; $flagTransactionInit = true; $GLOBALS['dbSQLTR']->setBeginTransaction(); } if ( $continue ) { $lstFilesQuery = ''; for($i=0,$t=count($lstFiles);$i<$t;$i++) { $sep=","; if($i===0){$sep="";} $values.= $sep . "( '".addslashes($lstFiles[i]["cc"])."' ,'".addslashes($lstFiles[i]["d"])."' , GETDATE() ,'".addslashes($lstFiles[i]["m"])."' ,'".addslashes($lstFiles[i]["n"])."' ,'".addslashes($lstFiles[i]["tit"])."')"; } $query = "INSERT INTO dbo.[cli_imagenes] ([cli_codigo] ,[img_item] ,[img_fecha] ,[med_codigo] ,[img_path] ,[img_titulo]) VALUES " . $lstFilesQuery; $rs = $GLOBALS['dbSQLTR']->QueryTR($sql); if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al insertar los registros de imagenes'; } } if ( $continue ) { //Subir los archivos // // Subimos el archivo // $target_path = "profiles/"; // $fileName = "user_".$userId.'_'.date("YmdHis").'_'.str_replace(' ','_',basename( $_FILES['userPicture']['name'])); // $target_path = $target_path . $fileName; //GUSTAVO // $continue_ = move_uploaded_file($_FILES['userPicture']['tmp_name'], $target_path); } //----------------------------------- //Retornar los listados if ( true||$continue ) { //$res = $GLOBALS['dbSQLTR']->setCommitTransaction(); $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); } return $continue; } catch (Exception $e) { if( $flagTransactionInit ) { $GLOBALS['dbSQLTR']->setRollbackTransaction(); } return false; } } /* function getEstudioFileInfo($idPaciente,$idImagen) { $path = false; $sql = "SELECT par_path_imagenes FROM empresa"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $empresaCnf = $GLOBALS['dbSQL']->getAll(); if(count($empresaCnf)>0) { $path = $empresaCnf[0]["par_path_imagenes"]; } } if( $path ) { $sql = "SELECT img_path, img_titulo FROM dbo.cli_imagenes WHERE cli_codigo = '".addslashes($idPaciente)."' AND img_id = '".addslashes($idImagen)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $outPut = array(); $counter=0; $file = $GLOBALS['dbSQL']->getAll(); if(count($file)>0) { $fileInfo = array( "pathDisc" => $path ,"fileInfo" => $file[0] ); return $fileInfo; } } return false; } */ function adjuntarHxFiles(&$resultInfo) { $resultado = false; //print_r($_FILES);die; //print_r($_REQUEST);die; /*if (array_key_exists('FileCount', $_POST)) { // ... // Iterate through uploaded data and save the original file and thumbnail // ... }*/ $request_body = file_get_contents('php://input'); print_r($request_body);die; if( isset($_FILES) && !empty($_FILES) && !is_null($_FILES) && isset($_REQUEST["lst"]) && !empty($_REQUEST["lst"]) && !is_null($_REQUEST["lst"]) ) { $resultado = uploadfilesHx(); //Resultado procesamiento del padron $resultInfo['code'] = 0; $resultInfo['data'] = array( "result" => $resultado); } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "procesar" => false ,"error" => "Archivo no recibido o inválido" ); } return true; } function getTurnero(&$resultInfo) { if( isset($_REQUEST["idMed"]) && !empty($_REQUEST["idMed"]) && !is_null($_REQUEST["idMed"]) ) { $resultado = getHorarioGral($_REQUEST["idMed"],$calendario); list($showWeb,$showTurnero) = validateMedico($_REQUEST["idMed"]); if( $resultado ) { $resultado = getFechasSemanaSel($calendario); if( $resultado ) { $resultado = getTurnos($calendario); if( $resultado ) { $resultInfo['code'] = 0; $calendario['soloHorario'] = "0"; if( $showTurnero != 1 ) { //$calendario['fechasSemana'] = ""; //$calendario['fechasSemanaF']= ""; $calendario['turnero'] = ""; //$calendario['turDisp'] $calendario['mesActual'] = ""; $calendario['anoActual'] = ""; $calendario['soloHorario'] = "1"; } /*$resultInfo['data'] = array( "listHorarios" => $calendario['horarios'] ,"listHorariosF" => $calendario['horariosOrg'] ,"listTurnos" => $calendario['turnos'] ,"listDias" => $calendario['fechasSemana'] ,"listDiasF" => $calendario['fechasSemanaF'] ,"listTurnero" => $calendario['turnero'] );*/ $resultInfo['data'] = array( //"listHorarios" => $calendario['horarios'] "listDias" => $calendario['fechasSemana'] ,"listDiasF" => $calendario['fechasSemanaF'] ,"listTurnero" => $calendario['turnero'] ,"listTotTurDisp" => $calendario['turDisp'] ,"listMesActual" => $calendario['mesActual'] ,"listAnoActual" => $calendario['anoActual'] ,"tipoturnero" => $calendario['soloHorario'] ,"listHorarios" => $calendario['horarios'] ); } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } function getHorariosAtencion(&$resultInfo) { if( isset($_REQUEST["idMed"]) && !empty($_REQUEST["idMed"]) && !is_null($_REQUEST["idMed"]) ) { $resultado = getHorarioGral($_REQUEST["idMed"],$calendario); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "listHorarios" => $calendario['horarios'] ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Se produjo un error al consultar el turnero del profesional"; } } function confirmarTurnoPaciente(&$resultInfo) { if( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && trim($_REQUEST["dni"])!="" && is_numeric($_REQUEST["dni"]) && isset($_REQUEST["fecha"]) && !empty($_REQUEST["fecha"]) && !is_null($_REQUEST["fecha"]) && trim($_REQUEST["fecha"])!="" && isset($_REQUEST["hora"]) && !empty($_REQUEST["hora"]) && !is_null($_REQUEST["hora"]) && trim($_REQUEST["hora"])!="" && is_numeric($_REQUEST["hora"])&& isset($_REQUEST["idMed"]) && !empty($_REQUEST["idMed"]) && !is_null($_REQUEST["idMed"]) && trim($_REQUEST["idMed"])!="" && is_numeric($_REQUEST["idMed"])&& isset($_REQUEST["idobs"]) && !empty($_REQUEST["idobs"]) && !is_null($_REQUEST["idobs"]) && trim($_REQUEST["idobs"])!="" && is_numeric($_REQUEST["idobs"])&& isset($_REQUEST["idplan"]) && !empty($_REQUEST["idplan"]) && !is_null($_REQUEST["idplan"]) && trim($_REQUEST["idplan"])!="" && is_numeric($_REQUEST["idplan"]) ) { $turnoInfo = array(); $turnoInfo["dni"] = $_REQUEST["dni"]; $turnoInfo["fecha"] = $_REQUEST["fecha"]; $turnoInfo["hora"] = $_REQUEST["hora"]; $turnoInfo["medico"] = $_REQUEST["idMed"]; $turnoInfo["obs"] = $_REQUEST["idobs"]; $turnoInfo["plan"] = $_REQUEST["idplan"]; $turnoInfo["turcosto"] = false; if( isset($_REQUEST["flagtc"]) && !empty($_REQUEST["flagtc"]) && !is_null($_REQUEST["flagtc"]) && is_numeric($_REQUEST["flagtc"]) && $_REQUEST["flagtc"]==1 ) { $turnoInfo["turcosto"] = true; } $turnoInfo["telemed"] = (isset($_REQUEST["tml"])?(intval($_REQUEST["tml"])==1?true:false):false); if(!$turnoInfo["telemed"]){$turnoInfo["telemed"]= (isset($_REQUEST["tlm"])?(intval($_REQUEST["tlm"])==1?true:false):false);} if( isset($_REQUEST["familiar"]) && !empty($_REQUEST["familiar"]) && !is_null($_REQUEST["familiar"]) && trim($_REQUEST["familiar"])!="" ) { $turnoInfo["familiar"] = ($_REQUEST["familiar"]==1||$_REQUEST["familiar"]=="1"?true:false); } $resultado = registrarTurnoWs($turnoInfo); //print_r("r[".$resultado."]");die; if( $resultado!==false ) { if( $resultado === 0 ) { $mpid = ''; $token = ''; $errorMP = false; if( $turnoInfo["turcosto"] ) { list($mpid,$token) = getTurnoInfoMP($turnoInfo['idTurno'],$errorMP); } $resultInfo['code'] = 0; //$resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'] ); $resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'] ,"email" => $turnoInfo['email'] ,"mpp" => $mpid ,"mpperror" => 0 ,"token" => $token ); if( $turnoInfo["turcosto"] ) { if( !$errorMP ) { $error = false; $result = saveTurnoCostoMPInfo($turnoInfo['idTurno'],$mpid,$token,$error); $resultInfo['data']["mpperror"] = ($result?0:$error); } else { // Se produjo un error al obtener el MP PID: // - Boorar el turno // - Actualizar el estado del registro del la compra $resultInfo['code'] = 10; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno, con MercadoPago"; $error = false; $result = updateTurnoCostoMPInfoError($idTurno,ESTADO_TURNOCT_ERROR_OBTENER_MPID,print_r($errorMP,true),$token,$error); $resultInfo['data']["mpperror"] = $errorMP; } } } elseif( $resultado === 10 ) { $resultInfo['code'] = 10; $resultInfo['errorDes'] = "Obra social no disponible para reservar Turnos via Web"; } elseif( $resultado === 9 ) { $resultInfo['code'] = 9; $resultInfo['errorDes'] = "Obra social momentaneamente suspendida"; } elseif( $resultado === 8 ) { $resultInfo['code'] = 8; $resultInfo['errorDes'] = "Profesional sin convenio"; } elseif( $resultado === 7 ) { $resultInfo['code'] = 7; //$resultInfo['errorDes'] = "Umbral alcanzado"; $resultInfo['errorDes'] = "Sin turnos disponibles"; } elseif( $resultado === 6 ) { $resultInfo['code'] = 6; $resultInfo['errorDes'] = "Turno ocupado"; } elseif( $resultado === -1 ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "DNI no registrado"; } elseif( $resultado === 1 || $resultado === 2 || $resultado === 3 || $resultado === 4 ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Error en la aplicación"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno"; } } function getDatosFamiliar($dni) { $faminf = array( "nombre"=> '' ,"dni" => $dni ); $sql = "SELECT TOP 1 c.cli_dni AS DNI , cli_codigo , c.cli_nombre AS PACIENTE , o.obs_denom AS OBRA_SOCIAL , p.obsp_denom AS PLAN_ , o.obs_codigo AS ID_OBRA_SOCIAL , c.obsp_cod , c.cli_email AS EMAIL , c.cli_fecnto AS FacN , c.cli_sexo AS Sexo , c.cli_tel AS Telefono , c.cli_carnet AS carnet , o.obs_lock , c.cli_revalidaweb AS ValEmail , c.cli_tel_cod_area AS TelArea , c.cli_tel_numero AS TelNro , c.cli_revalidawebtel AS ValTelefono , c.cli_validapass AS ValPass , (CASE WHEN o.obs_telemed IS NULL THEN 0 ELSE 1 END) AS ObsTelemed FROM clientes AS c , obrasoc AS o , obsplan AS p WHERE c.cli_dni = '".$dni."' AND c.obs_codigo = o.obs_codigo AND p.obs_codigo = o.obs_codigo AND p.obsp_cod = c.obsp_cod ORDER BY cli_registracion"; //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $result = $GLOBALS['dbSQL']->getAll(); if( count($result)>0 ) { $faminf = array( "nombre" => trim($result[0]['PACIENTE']) ,"dni" => $dni ,"sexo" => $result[0]['Sexo'] ,"facn" => $result[0]['FacN'] ,"carnet" => $result[0]['carnet'] ,"nameObS"=> $result[0]['OBRA_SOCIAL'] ,"planObS"=> $result[0]['PLAN_'] ); } } return $faminf; } function registrarTurno(&$dataTurno) { $res = null; $debug=''; $familiar = false; $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = -3; $sexo = false; $facn = false; $fechaOrg = $dataTurno["fecha"]; $horaOrg = $dataTurno["hora"]; $tursql = ''; $tel = false; $carnet = ''; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $clienteBloqueado = false; $resultado = getValidarDNIFast($dataTurno["dni"], $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass,$clienteBloqueado); if( $resultado ) { if( $obsflag ) { //Error obrasocial bloqueada return 9; } if( !ValidarObraSocialWeb($idObS) ) { //Error obra social no valida vía WEB return 12; } if( $clienteBloqueado ) { //Error Cliente bloqueado return 14; } //Obtener el id del paciente $dataTurno["idPaciente"] = $codP; //Formatear la fecha al formato correcto $dataTurno["fecha"] = $dataTurno["fecha"] ." 00:00:00"; /*if( isset($dataTurno["familiar"]) && $dataTurno["familiar"] ) { $familiar = true; } if( $familiar ) { $dataTurno["obs"] = $idObS; $dataTurno["plan"] = $idPlanObS; }*/ $dataTurno["obs"] = $idObS; $dataTurno["plan"] = $idPlanObS; //Es particular // $flagParticular = false; // $flagParticular = ValidarConvenioWs($dataTurno["medico"], $idObS ); $flagParticular = false; $flagParticular = getObsParticular($idObS ); $flagConvenio = false; $flagConvenio = ValidarConvenioWs($dataTurno["medico"], $idObS ); if( !$flagConvenio ) { // Sin convenio // Guardar como particular $flagParticular = true; //return 8; } if( !ValidarFeriado($dataTurno["medico"], $fechaOrg ) ) { //Dia Feriado return 11; } /*//if( $dataTurno["obs"] == -1 && $dataTurno["plan"]==-1 ) if( !$resultadoParticular ) { $flagParticular = true; }*/ //print_r("f[".$flagParticular."]");die; //Validar convenio /*if( !$flagParticular && !ValidarConvenioWs($dataTurno["medico"], $dataTurno["obs"] ) ) { //Error medico-obrasocial sin convenio return 8; } else {*/ //Validar Umbral if ( !$flagParticular && !ValidarUmbralWs($dataTurno["medico"], $dataTurno["obs"], $dataTurno["fecha"]) ) { //Error umbral alcanzado return 7; } else { if ( !ValidarTurnoWs($dataTurno["medico"], $dataTurno["fecha"], $dataTurno["hora"]) ) { //Error turno ocupado return 6; } else { //Actualizacion del numerador de Turnos $sql = "UPDATE [codigos] SET [num_ultimo] = [num_ultimo] + 1, [num_fecha] = GETDATE() WHERE [num_codigo] = 4"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $sql = "SELECT [num_ultimo] FROM dbo.[codigos] WHERE num_codigo = 4"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $conta=0; $rsN = $GLOBALS['dbSQL']->getAll(); foreach($rsN as $row) { $idTurno = $row["num_ultimo"]; $conta++; } if( $conta > 0 ) { if( $flagParticular ) { $dataTurno["obs"] = '(SELECT [par_obsp] FROM dbo.[empresa])'; $dataTurno["plan"] = '(SELECT [par_obpp] FROM dbo.[empresa])'; } else { $dataTurno["obs"] = $idObS; $dataTurno["plan"] = $idPlanObS; } $fecha = date("Y-m-d.H:i:s",strtotime($dataTurno["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] ,[tur_token] ,[cli_codigo_padre] ) VALUES ( '. $idTurno .' ,'. "'".$fecha ."'".' ,convert(smallint, '. $dataTurno["hora"] .') ,'. $dataTurno["medico"] .' ,'. $dataTurno["idPaciente"] .' ,'. $dataTurno["dni"] .' ,'. $dataTurno["obs"] .' ,'. $dataTurno["plan"] .' ,99 ,0 ,0 ,0 ,'."''".' ,(SELECT [pra_codigo] FROM dbo.[empresa]) ,(SELECT [nom_codigo] FROM dbo.[empresa]) ,'.($dataTurno["telemed"]?'1':'NULL').' ,'.($dataTurno["turcosto"]?1:0).' ,'."'".getComTurnoToken($idTurno,$dataTurno)."'".' ,'.($dataTurno["ff"]?$dataTurno["cliecod"]:'NULL').' )'; $tursql = $sql; //print_r($sql);die(" spider "); $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { /* if(isset($_SESSION['obsNoCoincide'])) { unset($_SESSION['obsNoCoincide']);} if(isset($_SESSION['obsUmbralAlcanzado'])) { unset($_SESSION['obsUmbralAlcanzado']);} if(isset($_SESSION['obsOBS_Bloqueada'])) { unset($_SESSION['obsOBS_Bloqueada']);} */ //Actualizar el ultimo acceso del cliente $sql = "UPDATE [clientes] SET [cli_utlimoingresoweb] = GETDATE() WHERE [cli_dni] = " . $dataTurno["dni"]; $rsC = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rsC ) { //Warning //Fallo actualizacion de Ultimo Acceso } /* if($GLOBALS['EMAIL_DEBUG']&&false)//spider { $data=array(); $data['paciente']='['.($familiar ? $_SESSION['GF']['codP'] : $_SESSION['codP']).'] '.($familiar ? $_SESSION['GF']['name'] : $_SESSION['name']); $data['dni']=($familiar ? $_SESSION['GF']['dni'] : $_SESSION['dni']); $data['familiar']=($familiar ? 'SI' : 'NO'); $data['email']=(isset($_SESSION['email']) && trim($_SESSION['email'])!='' ? $_SESSION['email'] : ''); $data['turnoId']=$idTurno; $data['medico']='['.$medData[0].']'.$medData[3].' '.$medData[1]; $data['osocial']=$dataTurno[2]; $data['plan']=$dataTurno[3]; $data['fechaT']=str_replace('00:00:00',$dataTurno[1],$fecha); sendDebugEmail($data,CONFIRMAR_TURNO_OK,true); } */ $dataTurno["idTurno"] = $idTurno; $dataTurno["email"] = $email; //Enviar Email de Confirmacion if( $GLOBALS['EMAIL_CUSTOMER'] ) { //if( $dataTurno["dni"]=='27249289' ) //{ sendEmailConfirmacionWs(TYPE_EMAIL_CT, $idTurno); //} } //print_r($dataTurno);die; $res = 0; //return 0; } else { //Error insertar turno [3] $res = 4; //return 4; } } else { //Error recuperar numerador $res = 3; //return 3; } } else { //Error recuperar numerador $res = 2; //return 2; } } else { //Error al actualizar numerador $res = 1; //return 1; } } } /*}*/ } else { //error dni inexistente $res = -1; //return -1; } if( is_null($res) ) { $res = -1; } //print_r($dataTurno);die(" ------- "); $pacienteData = getPacienteInfo((isset($dataTurno["idPaciente"])?$dataTurno["idPaciente"]:0)); $medData = getMedicoInfo((isset($dataTurno["medico"])?$dataTurno["medico"]:0)); $obsData = getNombreObraSocial((isset($dataTurno["obs"])?$dataTurno["obs"]:0)); $planData = getNombrePlan((isset($dataTurno["obs"])?$dataTurno["obs"]:0),(isset($dataTurno["plan"])?$dataTurno["plan"]:0)); if( $res !== 0 ) { if($GLOBALS['LOG_ERROR']) { $data=array(); $data['paciente'] = '['. (isset($dataTurno["idPaciente"])?$dataTurno["idPaciente"]:0).'] '. $pacienteData[1]; $data['dni'] = $pacienteData[0]; $data['familiar'] = 'NO'; $data['email'] = $pacienteData[2]; $data['turnoId'] = (isset($idTurno) ? $idTurno : ''); $data['medico'] = '['.$medData[0].']'.$medData[3].' '.$medData[1]; $data['osocial'] = '['.$dataTurno["obs"].']'. $obsData; $data['plan'] = '['.$dataTurno["plan"].']'. $planData; $data['fechaT'] = $dataTurno['fecha']; $data['error'] = $res; if($GLOBALS['EMAIL_DEBUG']&&false) { sendDebugEmail($data,CONFIRMAR_TURNO_ERROR,false); }//spider if( $GLOBALS['LOG_SPECIAL'] ) { //Log Especial $resultLogEspecial = registrarLogSpecial($data, __FUNCTION__, true,(isset($tursql) ? $tursql : '')); } } } else { $msj = ''; $msj.= 'TIPO EMAIL:[ '. CONFIRMAR_TURNO_OK . " ]

". "\n"; $msj.= 'Paciente: '. '['. $dataTurno["idPaciente"].'] '. $pacienteData[1] . "

". "\n"; $msj.= 'DNI: '. $pacienteData[0] . "

". "\n"; $msj.= 'Email: '. $pacienteData[2] . "

". "\n"; $msj.= 'Es Familiar:'. ' - ' . "

". "\n"; $msj.= 'Id Turno: '. $idTurno . "

". "\n"; $msj.= 'Medico: '. '['.$medData[0].']'.$medData[3].' '.$medData[1] . "

". "\n"; $msj.= 'O. Social: '. '['.$dataTurno["obs"].']'. $obsData . "

". "\n"; $msj.= 'Plan: '. '['.$dataTurno["plan"].']'. $planData . "

". "\n"; $msj.= 'Fecha Turno:'. $dataTurno['fecha'] . "

". "\n"; $msj.= 'Fecha: '. date('d/m/Y H:i:s') . "

". "\n"; $msj.= 'Resultado:[ OK ]

'. "\n"; $resultLog = registrarLogTurnosEnArchivo($msj); } return $res; //return false; } function saveTurnoCostoMPInfo($idTurno,$mpid,$token,&$error=false) { //Validar que el MP-PI no exista $sql = " SELECT 1 FROM turnos_compras_mp WHERE tcmp_mpid = '".$mpid."'"; $rsC = $GLOBALS['dbSQL']->Query($sql); if ( !$rsC ) { $error = 1; return false; } else { $registros = $GLOBALS['dbSQL']->getAll(); if( count($registros)<=0 ) { //Grabar el MP Preference Id en el turno $sql = "UPDATE turnos SET tur_mercadopago_preferencia = '".$mpid."' WHERE tur_numero = " . $idTurno; $rsC = $GLOBALS['dbSQL']->Query($sql); if ( !$rsC ) { $error = 3; return false; } //Grabar un registro en la tabala de transacciones de Turnos con Costo-MP $sql = "INSERT INTO turnos_compras_mp ( tur_numero ,tcmp_token ,tcmp_mpid ,tcmp_estado ,tcmp_fecha ,tcmp_fecha_respuesta ,tcmp_respuesta ) VALUES( ".$idTurno." ,'".$token."' ,'".$mpid."' ,".ESTADO_TURNOCT_PENDIENTE." ,GETDATE() ,NULL ,NULL )"; $rsC = $GLOBALS['dbSQL']->Query($sql); if ( !$rsC ) { $error = 4; return false; } } else { $error = 2; return false; } } return true; } function updateTurnoCostoMPInfoSuccess($turnoId,$mppid,$response,$token,&$error=false) { //Actualizar el MP Preference Id en el turno $sql = "UPDATE turnos SET tur_mercadopago_preferencia = '".$mppid."' WHERE tur_numero = ". $turnoId; $rsC = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rsC ) { $error = 1; return false; } //Alctualizar el registro de transacion de MP - TC $sql = "UPDATE turnos_compras_mp SET tcmp_estado = ".ESTADO_TURNOCT_EXITO." ,tcmp_respuesta = '".$response."' ,tcmp_fecha_respuesta = GETDATE() WHERE tur_numero = ". $turnoId." AND tcmp_token = '".$token."'"; $rsC = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rsC ) { $error = 2; return false; } return true; } function updateTurnoCostoMPInfoError($idTurno,$estado,$response,$token,&$error=false) { // Borrar el turno (No enviar email de cancelacion) $sql = "DELETE FROM turnos WHERE tur_numero = " . $idTurno; $rsC = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rsC ) { $error = 1; return false; } else { //Grabar el MP Preference Id en el turno $sql = "UPDATE turnos_compras_mp SET tcmp_estado = ". ESTADO_TURNOCT_ERROR_RETORNO_MP ." ,tcmp_respuesta = '".$response."' ,tcmp_fecha_respuesta = GETDATE() WHERE tur_numero = ". $idTurno." AND tcmp_token = '".$token."'"; $rsC = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rsC ) { $error = 2; return false; } } return true; } function confirmarTurno(&$resultInfo) { if( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && trim($_REQUEST["dni"])!="" && is_numeric($_REQUEST["dni"]) && isset($_REQUEST["fecha"]) && !empty($_REQUEST["fecha"]) && !is_null($_REQUEST["fecha"]) && trim($_REQUEST["fecha"])!="" && isset($_REQUEST["hora"]) && !empty($_REQUEST["hora"]) && !is_null($_REQUEST["hora"]) && trim($_REQUEST["hora"])!="" && isset($_REQUEST["idMed"]) && !empty($_REQUEST["idMed"]) && !is_null($_REQUEST["idMed"]) && trim($_REQUEST["idMed"])!="" && is_numeric($_REQUEST["idMed"]) ) { $turnoInfo = array(); $turnoInfo["dni"] = $_REQUEST["dni"]; $turnoInfo["fecha"] = $_REQUEST["fecha"]; //$turnoInfo["hora"] = $_REQUEST["hora"]; $turnoInfo["hora"] = str_replace(":", "", $_REQUEST["hora"]); if( substr($turnoInfo["hora"], 0, 1) == "0" ) { $turnoInfo["hora"] = substr($turnoInfo["hora"], 1); } $turnoInfo["medico"] = $_REQUEST["idMed"]; $turnoInfo["obs"] = false;//$_REQUEST["idobs"]; $turnoInfo["plan"] = false;//$_REQUEST["idplan"]; $turnoInfo["telemed"] = (isset($_REQUEST["tlm"])?($_REQUEST["tlm"]=="true"?true:false):false); //print_r($turnoInfo);die; // if( // isset($_REQUEST["familiar"]) && // !empty($_REQUEST["familiar"]) && // !is_null($_REQUEST["familiar"]) && // trim($_REQUEST["familiar"])!="" // ) // { // $turnoInfo["familiar"] = ($_REQUEST["familiar"]==1||$_REQUEST["familiar"]=="1"?true:false); // } $turnoInfo["turcosto"] = false; if( isset($_REQUEST["flagtc"]) && !empty($_REQUEST["flagtc"]) && !is_null($_REQUEST["flagtc"]) && is_numeric($_REQUEST["flagtc"]) && $_REQUEST["flagtc"]==1 ) { $turnoInfo["turcosto"] = true; } $turnoInfo["ff"] = false; $turnoInfo["cliecod"]= false; $continue = true; if( isset($_REQUEST["ff"]) && isset($_REQUEST["token"]) ) { //Validar el Token $tokenInfo = false; $result = false; $continue = Acl::validateToken($_REQUEST["token"],$tokenInfo,$result); if( $result == Acl::TOKEN_VALID ) { $clienteId = $tokenInfo->uid; $continue = true; } elseif( $result == Acl::TOKEN_EXPIRED ) { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"); $resultInfo['errorDes'] = "SU SESION HA EXPIRADO. REINGRESE E INTENTE NUEVAMENTE"; $continue = false; } $turnoInfo["ff"] = true; $turnoInfo["cliecod"]= $tokenInfo->uid; } if( $continue ) { $resultado = registrarTurno($turnoInfo); //print_r("r[".$resultado."]");die; if( $resultado!==false ) { if( $resultado === 0 ) { if( isset($_REQUEST['rt']) ) { //Cancelar Turno Reasignado } $mpid = ''; $token = ''; $errorMP = false; if( $turnoInfo["turcosto"] ) { list($mpid,$token) = getTurnoInfoMP($turnoInfo['idTurno'],$errorMP); } $resultInfo['code'] = 0; //$resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'] ); $resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'] ,"email" => $turnoInfo['email'] ,"telemedicina" => ($turnoInfo["telemed"]?'s':'n') ,"mpp" => $mpid ,"mpperror" => 0 ,"token" => $token ,"finf" => ($turnoInfo["ff"]?getDatosFamiliar($_REQUEST["dni"]):'') ); if( $turnoInfo["turcosto"] ) { if( !$errorMP ) { $error = false; $result = saveTurnoCostoMPInfo($turnoInfo['idTurno'],$mpid,$token,$error); $resultInfo['data']["mpperror"] = ($result?0:$error); } else { // Se produjo un error al obtener el MP PID: // - Boorar el turno // - Actualizar el estado del registro del la compra $resultInfo['code'] = 10; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno, con MercadoPago"; $error = false; $result = updateTurnoCostoMPInfoError($idTurno,ESTADO_TURNOCT_ERROR_OBTENER_MPID,print_r($errorMP,true),$token,$error); $resultInfo['data']["mpperror"] = $errorMP; } } } elseif( $resultado === 14 ) { $resultInfo['code'] = 14; $resultInfo['errorDes'] = "El paciente se encuentra inhabilitado para reservar turnos"; } elseif( $resultado === 12 ) { $resultInfo['code'] = 12; $resultInfo['errorDes'] = "Obra social no disponible para reservar Turnos via Web"; } elseif( $resultado === 11 ) { $resultInfo['code'] = 11; $resultInfo['errorDes'] = "La fecha seleccionada se corresponde a un día feriado"; } elseif( $resultado === 9 ) { $resultInfo['code'] = 9; $resultInfo['errorDes'] = "Obra social momentaneamente suspendida"; } elseif( $resultado === 8 ) { $resultInfo['code'] = 8; $resultInfo['errorDes'] = "Profesional sin convenio"; } elseif( $resultado === 7 ) { $resultInfo['code'] = 7; //$resultInfo['errorDes'] = "Umbral alcanzado"; $resultInfo['errorDes'] = "Sin turnos disponibles"; } elseif( $resultado === 6 ) { $resultInfo['code'] = 6; $resultInfo['errorDes'] = "Turno ocupado"; } elseif( $resultado === -1 ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "DNI no registrado"; } elseif( $resultado === 1 || $resultado === 2 || $resultado === 3 || $resultado === 4 ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Error en la aplicación"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al registrar el turno"; } } function confirmarTurnoWhatsappBoot(&$resultInfo) { $fecha = substr($_REQUEST["f"],6) ."-".substr($_REQUEST["f"],3,2) ."-".substr($_REQUEST["f"],0,2) . "T00:00:00.000"; $hora = $_REQUEST["h"]; $medico= $_REQUEST["m"]; $doc = $_REQUEST["d"]; $familiar = false; $name = ""; $codP = -1; $idObS = false; $nameObS = false; $planObS = false; $idPlanObS = false; $email = -3; $sexo = false; $facn = false; $fechaOrg = $_REQUEST["f"]; $horaOrg = $_REQUEST["h"]; $tursql = ''; $tel = false; $carnet = ''; $obsflag = false; $validaemail= false; $telarea = false; $telnumero = false; $validatel = false; $obstelemed = 0; $password = -3; $validaPass = false; $resultado = getValidarDNIFast($doc, $password,$name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail,$validatel,$telarea,$telnumero,$obstelemed,$validaPass); if( intval(substr($hora,0,1))===0 ) { $hora = str_replace(":","",substr($hora,1)); } else { $hora = str_replace(":","",$hora); } //Actualizacion del numerador de Turnos $sql = "UPDATE [codigos] SET [num_ultimo] = [num_ultimo] + 1, [num_fecha] = GETDATE() WHERE [num_codigo] = 4"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $sql = "SELECT [num_ultimo] FROM dbo.[codigos] WHERE num_codigo = 4"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $conta=0; $rsN = $GLOBALS['dbSQL']->getAll(); foreach($rsN as $row) { $idTurno = $row["num_ultimo"]; $conta++; } if( $conta > 0 ) { /*if( $flagParticular ) { $dataTurno["obs"] = '(SELECT [par_obsp] FROM dbo.[empresa])'; $dataTurno["plan"] = '(SELECT [par_obpp] FROM dbo.[empresa])'; } else { $dataTurno["obs"] = $idObS; $dataTurno["plan"] = $idPlanObS; }*/ //$fecha = date("Y-m-d.H:i:s",strtotime($dataTurno["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] ,[tur_token] ,[cli_codigo_padre] ) VALUES ( '. $idTurno .' ,'. "'".$fecha ."'".' ,convert(smallint, '. $hora .') ,'. $medico .' ,'. $codP .' ,'. $doc .' ,'. $idObS .' ,'. $idPlanObS .' ,99 ,0 ,0 ,0 ,'."''".' ,(SELECT [pra_codigo] FROM dbo.[empresa]) ,(SELECT [nom_codigo] FROM dbo.[empresa]) ,NULL ,0 ,'."'".getComTurnoToken($idTurno,false)."'".' ,NULL )'; $tursql = $sql; //print_r($sql);die(" spider "); $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "idtur" => $idTurno ); return true; } } } } $resultInfo['code'] = 3; $resultInfo['data'] = array("idtur"=>"-"); $resultInfo['errorDes'] = "Error al registrar el turno"; } function getHoraMilitar($hora,$formated=false) { $h = $hora/60; $hI = intval($h); //$hD = floatval(($h-$hI)*60); $hD = round ( ($h-$hI)*60, 2, PHP_ROUND_HALF_UP); //if( strlen($hI)<2 ){$hI="0".$hI;} if( strlen($hD)<2 ){$hD="0".$hD;} if( $formated ) { if( strlen($hI)<2 ){$hI="0".$hI;} $hora = $hI .':'. $hD; } else { $hora = $hI . $hD; } return $hora; } function getDiasFeriadosNew() { $feriadosLst = false; try { //Consulta de los dias feriados $sql = "SELECT [fer_fecha] FROM dbo.[feriados] ORDER BY [fer_fecha] ASC"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); $feriadosLst=array(); foreach($rs as $row) { array_push($feriadosLst,$row["fer_fecha"]); } //print_r($feriadosLst);die; } } catch (Exception $e) { return false; } return $feriadosLst; } function getDiasFeriadosXMedicoNew($idMedico) { $feriadosLst = false; try { //Consulta de los dias feriados $sql = "SELECT FORMAT ( fer_fecdesde, 'yyyy-MM-dd' ) as fer_fecdesde ,FORMAT ( fer_fechasta, 'yyyy-MM-dd' ) as fer_fechasta FROM dbo.[feriados_medicos] WHERE [med_codigo] = " . $idMedico; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $feriadosLst = $GLOBALS['dbSQL']->getAll(); //print_r($feriadosLst);die; } } catch (Exception $e) { return false; } return $feriadosLst; } function excluirDia($fechaToValidate,$feriadosLst=false) { $f = date("Y-m-d", strtotime($fechaToValidate)); if( $f < date("Y-m-d") ) { return true; } try { if( is_array($feriadosLst) && count($feriadosLst) > 0 ) { for($i=0,$t=count($feriadosLst);$i<$t;$i++) { //print_r('ff['.date("Y-m-d", strtotime($fecha)).'] - f['.date("Y-m-d", strtotime($feriadosLst[$i])).']');print_r("\n"); if( $f == date("Y-m-d", strtotime($feriadosLst[$i])) ) { return true; } } } } catch (Exception $e) { return true; } return false; } function excluirDiaFeriadoXMedico($fechaToValidate,$feriadosLst=false) { //return false; $f = date("Y-m-d", strtotime($fechaToValidate)); if( $f < date("Y-m-d") ) { return true; } try { if( is_array($feriadosLst) && count($feriadosLst) > 0 ) { for($i=0,$t=count($feriadosLst);$i<$t;$i++) { $desde = date("Y-m-d", strtotime($feriadosLst[$i]['fer_fecdesde'])); $hasta = date("Y-m-d", strtotime($feriadosLst[$i]['fer_fechasta'])); //if(isset($_REQUEST['pepe'])){print_r('f['.$f.']-d['.$desde.']-h['.$hasta.']');print_r("\n"); if( ($f >= $desde) && ($f <= $hasta) ) { //if(isset($_REQUEST['pepe'])){print_r('excluir f['.$f.']');print_r("\n");} return true; } } } } catch (Exception $e) { return true; } return false; } function getTurnos(&$calendario) { $feriados = getDiasFeriadosNew(); $feriadosXMedico = getDiasFeriadosXMedicoNew($_REQUEST["idMed"]); $horaDia = array(); for($i=0;$i$j, 1=>getHoraMilitar($j), 2=>$intervalo, 3=>$dia, 4=>'m', 5=>true, 6=>getHoraMilitar($j,true), 7=>$calendario['fechasSemanaF'][$diaF], 8=>$medico )); $j=$j+$intervalo; } } } //Tarde if( $calendario['horariosOrg'][$i]['mh_desde2'] !=0 && $calendario['horariosOrg'][$i]['mh_hasta2'] !=0 && $calendario['horariosOrg'][$i]['mh_int2'] !=0 ) { if( strlen($calendario['horariosOrg'][$i]['mh_desde2']) < 4 ) { $desdeH = substr($calendario['horariosOrg'][$i]['mh_desde2'],0,1); $desdeM = substr($calendario['horariosOrg'][$i]['mh_desde2'],1,2); } else { $desdeH = substr($calendario['horariosOrg'][$i]['mh_desde2'],0,2); $desdeM = substr($calendario['horariosOrg'][$i]['mh_desde2'],2,2); } if( strlen($calendario['horariosOrg'][$i]['mh_hasta2']) < 4 ) { $hastaH = substr($calendario['horariosOrg'][$i]['mh_hasta2'],0,1); $hastaM = substr($calendario['horariosOrg'][$i]['mh_hasta2'],1,2); } else { $hastaH = substr($calendario['horariosOrg'][$i]['mh_hasta2'],0,2); $hastaM = substr($calendario['horariosOrg'][$i]['mh_hasta2'],2,2); } $desde = (intval($desdeH) * 60) + intval($desdeM); $hasta = (intval($hastaH) * 60) + intval($hastaM); $intervalo = $calendario['horariosOrg'][$i]['mh_int2']; $dia = $calendario['horariosOrg'][$i]['mh_dia']; $diaF = intval($dia)-1; $medico = $calendario['horariosOrg'][$i]['med_codigo']; if( !excluirDia($calendario['fechasSemanaF'][$diaF], $feriados) && !excluirDiaFeriadoXMedico( $calendario['fechasSemanaF'][$diaF], $feriadosXMedico ) ) { for($j=$desde;$j<=$hasta;) { array_push($horaDia, array( 0=>$j, 1=>getHoraMilitar($j), 2=>$intervalo, 3=>$dia, 4=>'t', 5=>true, 6=>getHoraMilitar($j,true), 7=>$calendario['fechasSemanaF'][$diaF], 8=>$medico )); $j=$j+$intervalo; } } } } $calendario['turnero'] = $horaDia; $calendario['turDisp'] = count($horaDia); $sql = "SELECT [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] FROM dbo.[v_turnosvigentes] WHERE [med_codigo] = " . $_REQUEST["idMed"] . " AND CONVERT(VARCHAR,[tur_fecha], 120) BETWEEN LEFT(CONVERT(VARCHAR, '".$calendario['fechasSemanaF'][0]."', 120), 10) AND LEFT(CONVERT(VARCHAR, '".$calendario['fechasSemanaF'][6]."', 120), 10)"; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $falgFound = false; $rs = $GLOBALS['dbSQL']->getAll(); if( count($rs) > 0 ) { for($k=0;$kQuery($sql); $horarioGral = array(); $horarioOrg = array(); if ( $rs ) { $flagPrimeElemento=true; $diaActual=0; $counter=1; $counterT=1; //$uu=0; /*for($i=1;$i<8;$i++) { $horarioGral[$i] = array( //"dia" => "", "horario".$i => "" ); }*/ for($i=1;$i<8;$i++) { $horarioGral[$i] = ""; } $horarioOrg = array(); for($h=0;$h<2;$h++) { $ini[$h] = false; $fin[$h] = false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; foreach($rs as $row) { //$uu++; $diaSemana = $row["mh_dia"]; $hDesde_m = $row["mh_desde1"]; $hHasta_m = $row["mh_hasta1"]; $hDesde_t = $row["mh_desde2"]; $hHasta_t = $row["mh_hasta2"]; $intervalM = $row["mh_int1"]; $intervalT = $row["mh_int2"]; $indexCalActual = array_push($horarioOrg,$row); $intervaloManana = false; $intervaloTarde = false; $tipo = 0; // Solo Mañana if($hDesde_m!=0 && $hHasta_m!=0 && $intervalM!=0) { $intervaloManana = true; //Parseo los horarios if(strlen($hDesde_m)<4) { $hDesde_m = '0'.substr($hDesde_m,0,1).':'.substr($hDesde_m,1,2); } else { $hDesde_m = substr($hDesde_m,0,2).':'.substr($hDesde_m,2,2); } if(strlen($hHasta_m)<4) { $hHasta_m = '0'.substr($hHasta_m,0,1).':'.substr($hHasta_m,1,2); } else { $hHasta_m = substr($hHasta_m,0,2).':'.substr($hHasta_m,2,2); } } if($hDesde_t!=0 && $hHasta_t!=0 && $intervalT!=0) { $intervaloTarde = true; //Parseo los horarios if(strlen($hDesde_t)<4) { $hDesde_t = '0'.substr($hDesde_t,0,1).':'.substr($hDesde_t,1,2); } else { $hDesde_t = substr($hDesde_t,0,2).':'.substr($hDesde_t,2,2); } if(strlen($hHasta_t)<4) { $hHasta_t = '0'.substr($hHasta_t,0,1).':'.substr($hHasta_t,1,2); } else { $hHasta_t = substr($hHasta_t,0,2).':'.substr($hHasta_t,2,2); } } if( $intervaloManana ) { //Solo Mañana $ini[0] = $hDesde_m; $fin[0] = $hHasta_m; } if( $intervaloTarde ) { $ini[1] = $hDesde_t; $fin[1] = $hHasta_t; } if( (!$intervaloManana && $intervaloTarde) || ( $intervaloManana && !$intervaloTarde) ) { $indice = 0; if( $intervaloTarde ) { $indice = 1; } //$horarioGral[$diaSemana]["dia"] = getDiaSemanaNum($diaSemana); //$horarioGral[$diaSemana]["horario"+$diaSemana] = $ini[$indice]." - ".$fin[$indice]; //-->spider//$horarioGral["horario".$diaSemana] = $ini[$indice]." - ".$fin[$indice]; $horarioGral[$diaSemana] = $ini[$indice]." - ".$fin[$indice]; } elseif( $intervaloManana && $intervaloTarde ) { //$horarioGral[$diaSemana]["dia"] = getDiaSemanaNum($diaSemana); //$horarioGral[$diaSemana]["horario".$diaSemana] = $ini[0]." - ".$fin[0]."
"; //$horarioGral[$diaSemana]["horario".$diaSemana].= $ini[1]." - ".$fin[1]; //-->spider//$horarioGral["horario".$diaSemana] = $ini[0]." - ".$fin[0]."
"; //-->spider//$horarioGral["horario".$diaSemana].= $ini[1]." - ".$fin[1]; $horarioGral[$diaSemana] = $ini[0]." - ".$fin[0]." | "; $horarioGral[$diaSemana].= $ini[1]." - ".$fin[1]; } /* $horarioGral[$diaSemana]["dia"] = getDiaSemanaNum($diaSemana); $horarioGral[$diaSemana]["horaIniM"] = $ini[$indice]; $horarioGral[$diaSemana]["horaFinM"] = $fin[$indice]; } elseif( $intervaloManana && $intervaloTarde ) { $horarioGral[$diaSemana]["dia"] = getDiaSemanaNum($diaSemana); $horarioGral[$diaSemana]["horaIniM"] = $ini[0]; $horarioGral[$diaSemana]["horaFinM"] = $fin[0]; $horarioGral[$diaSemana]["horaIniT"] = $ini[1]; $horarioGral[$diaSemana]["horaFinT"] = $fin[1]; */ } $calendario['horarios'] = $horarioGral; $calendario['horariosOrg'] = $horarioOrg; //print_r($calendario);die; return true; } else { //El profesional no tiene definida la agenda de horarios return false; } } function imprimirNumero($numero, $servicio,&$letra='') { $nextNumero = $numero; $r = getServiciosNombre($servicio); $letra=$r[0]['letra']; $nextServicio = $r[0]['servicio']; include("wsPrintNumero.php"); if(isset($tiket2)) { return $tiket2; } return 0; } function getNumeroServicio() { if( isset($_REQUEST["serviceId"]) && !empty($_REQUEST["serviceId"]) && !is_null($_REQUEST["serviceId"]) && is_numeric($_REQUEST["serviceId"]) ) { $letra = ''; //Llamar al SP que crea el cedulon $params = array(); $param = array( 'name' =>'SerCodigo', 'value' =>$_REQUEST["serviceId"], 'isstr' => false, 'in' => true); array_push($params, $param); $param = array( 'name' =>'DniNro', 'value' =>(isset($_REQUEST["doc"])?$_REQUEST["doc"]:0), 'isstr' => false, 'in' => true); array_push($params, $param); $param = array( 'name' =>'UltimoNroGenerado', 'value' =>0, 'isstr' => false, 'in' => false); array_push($params, $param); //$resultado = $GLOBALS['dbSQL']->QuerySP("dbo.[PP_GetLlamadorUltimoTS]",$params); //-->$resultado = $GLOBALS['dbSQL']->executeSP("dbo.[PP_GetLlamadorUltimoTS]",$_REQUEST["serviceId"]); $resultado = $GLOBALS['dbSQL']->executeSP("dbo.[PP_GetLlamadorUltimoTS_N]",$_REQUEST["serviceId"],(isset($_REQUEST["doc"])?$_REQUEST["doc"]:0)); try { $tiket = imprimirNumero($resultado,$_REQUEST["serviceId"],$letra); } catch ( Exception $e ) { //print_r($e->__toString()); // // return false; } return array($resultado,$tiket,$letra); } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código de la obra social no fue recibido"; return array(0,0,''); } } function getNumeroServiciotest() { if( isset($_REQUEST["serviceId"]) && !empty($_REQUEST["serviceId"]) && !is_null($_REQUEST["serviceId"]) && is_numeric($_REQUEST["serviceId"]) ) { //Llamar al SP que crea el cedulon $resultado = $GLOBALS['dbSQL']->executeSP("dbo.[PP_test]",$_REQUEST["serviceId"]); $tiket = $resultado; return array($resultado,$tiket); } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El código de la obra social no fue recibido"; return array(0,0); } } function obtenerNumeroServicio(&$resultInfo) { $resultado = 0; $tiket = ""; $letra = ""; list($resultado,$tiket,$letra) = getNumeroServicio(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"nvonro" => $resultado ,"tiket" => $tiket ,"letra" => $letra ,"fems" => date("d/m/Y H:i:s") ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los pacientes en espera"; } } function obtenerNumeroServiciotest(&$resultInfo) { $resultado = 0; $tiket = ""; list($resultado,$tiket) = getNumeroServiciotest(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"nvonro" => $resultado ,"tiket" => $tiket ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los pacientes en espera"; } } function setPacienteEspera() { $sql = " UPDATE dbo.turnos SET tur_llam_procesado = getdate() WHERE tur_numero = " . $_REQUEST["turid"]; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function actualizarColaEspera(&$resultInfo) { $resultado = 0; $resultado = setPacienteEspera(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"turnoid" => $_REQUEST["turid"] ,"resultado" => resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los pacientes en espera"; } } function procesarPool($pantalla,$servicio,$tipo,&$listado,$dinit=false) { $listado = array( "turnos" => array() ,"numeros"=> array() ); // Total de Pantallas del Servicio $totalPantallas = 0; if($servicio) { $sql = "SELECT ser_pantallas FROM llamador_servicios WHERE ser_codigo = " . $servicio; //print_r($sql);print_r("\n");//die; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $servicioInfo = $GLOBALS['dbSQL']->getAll(); if( count($servicioInfo)>0 ) { $totalPantallas = $servicioInfo[0]["ser_pantallas"]; } } } else { $totalPantallas = 1; //print_r("pantallas 1");print_r("\n");//die; } if( $totalPantallas > 0 ) { if( $tipo == POOL_LLAMADOR_TURNO) { // --------------------- // Turnos // --------------------- //AND CONVERT(VARCHAR,tt.tur_med_llama, 120) >= CONVERT(VARCHAR,'".$dinit."', 120) $sql = "SELECT TOP 10 tc.cli_nombre as nombre ,tc.cli_dni as dni ,tt.tur_numero as turid ,tcon.con_denom as destino_ ,tcon.con_abrev as destino ,'turno' as tipo ,tcon.ser_codigo FROM dbo.[turnos] as tt, dbo.[clientes] as tc, dbo.[consultorios] as tcon WHERE tt.cli_codigo = tc.cli_codigo AND tt.con_codigo = tcon.con_codigo AND tt.tur_med_llama IS NOT NULL AND tt.tur_llam_procesado IS NULL AND LEFT(CONVERT(VARCHAR,tt.tur_med_llama, 120), 10) = LEFT(CONVERT(VARCHAR,'".$dinit."', 120), 10) ORDER BY tt.tur_med_llama ASC"; //print_r($sql);die; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $rs["turnos"] = $GLOBALS['dbSQL']->getAll(); if( is_array($rs["turnos"])&&count($rs["turnos"])>0 ) {//print_r("[".count($rs["turnos"])."]");die; for($i=0;$iQuery($sql); if ( $res ) { $llamadasPantalla = $GLOBALS['dbSQL']->getAll(); if( is_array($llamadasPantalla)&&count($llamadasPantalla) > 0) { $contine_ = false; } } if( $contine_ ) { //Buscar registros del turno en el pool // $sql = "SELECT llamp_numero // ,ser_codigo // ,tur_numero // ,llam_id // ,llamp_estado // ,llamp_pantalla // ,con_codigo // ,pue_codigo // FROM llamador_pool // WHERE ser_codigo = ". $rs["turnos"][$i]["ser_codigo"]." // AND tur_numero = ". $rs["turnos"][$i]["turid"]." // AND llamp_pantalla != '". $pantalla."' // AND llamp_estado = 0 // ORDER BY tur_numero ASC, llamp_numero ASC"; //SE QUITO EL SERVICIO, REVISAR EN EL FUTURO SI SE NECESITA QUE SALGA EN UNA/S PANTALLA/S ESPECIFICA/S $sql = "SELECT llamp_numero ,ser_codigo ,tur_numero ,llam_id ,llamp_estado ,llamp_pantalla ,con_codigo ,pue_codigo FROM llamador_pool WHERE tur_numero = ". $rs["turnos"][$i]["turid"]." AND llamp_pantalla != '". $pantalla."' AND llamp_estado = 0 ORDER BY tur_numero ASC, llamp_numero ASC"; //print_r($sql);die; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $poolLlamadas = $GLOBALS['dbSQL']->getAll(); //if(isset($_REQUEST["debug"])){print_r("--ok11");die;} if(is_array($poolLlamadas)&&count($poolLlamadas)) {//if(isset($_REQUEST["debug"])){print_r("--ok111111");die;} $totalLlamados = count($poolLlamadas); $flagFoundPantalla = false; $totalPantallasTurno = 0; if( $totalLlamados > 0 ) { $continue = true; for( $k=0; $k<$totalLlamados&&$continue; $k++ ) { if( $poolLlamadas[$k]["llamp_pantalla"] == $pantalla ) { // Pantalla encontrada $flagFoundPantalla = true; $totalPantallasTurno++; $continue = false; } else { // Pantalla NO encontrada, asignar y actualizar estado $sql = "UPDATE llamador_pool SET llamp_estado = 1, llamp_pantalla = '". $pantalla."' WHERE llamp_numero = " . $poolLlamadas[$k]["llamp_numero"]; $res = $GLOBALS['dbSQL']->Query($sql,true); $totalPantallasTurno++; $continue = false; } } } if( !$flagFoundPantalla ) { $x = array_push($listado["turnos"],$rs["turnos"][$i]); } } } } else { // Verificar si ya no quedan pantallas para procesar, eliminar // $sql = "SELECT tur_numero // FROM llamador_pool // WHERE ser_codigo = ". $rs["turnos"][$i]["ser_codigo"]." // AND tur_numero = ". $rs["turnos"][$i]["turid"]." // AND llamp_pantalla = ''"; //SE QUITO EL SERVICIO, REVISAR EN EL FUTURO SI SE NECESITA QUE SALGA EN UNA/S PANTALLA/S ESPECIFICA/S $sql = "SELECT tur_numero FROM llamador_pool WHERE tur_numero = ". $rs["turnos"][$i]["turid"]." AND llamp_pantalla = ''"; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $llamadasTurnoPantalla = $GLOBALS['dbSQL']->getAll(); if( is_array($llamadasTurnoPantalla)&&count($llamadasTurnoPantalla) <= 0) { // Todas las pantallas, mostraron el turno, actualizar // borrar el pool del turno $sql = "DELETE FROM llamador_pool WHERE tur_numero = ".$rs["turnos"][$i]["turid"]; $res = $GLOBALS['dbSQL']->Query($sql,true); // Actualizar tabla turno, ya que todas las pantallas $sql = "UPDATE dbo.[turnos] SET tur_llam_procesado = GETDATE() WHERE tur_numero = ".$rs["turnos"][$i]["turid"]; $res = $GLOBALS['dbSQL']->Query($sql,true); } } } } } } } else { // --------------------- // Numeros // --------------------- $sql = "SELECT t.llam_id as llam_id , t.llam_numero as numero , t.pue_codigo as puestoid , p.pue_denom as destino , s.ser_denom as servicio , s.ser_letra as serletra , t.ser_codigo as idservicio ,'numero' as tipo ,t.llam_pantalla FROM dbo.[llamador_turno] as t, dbo.[tbl_puestos] as p, dbo.[llamador_servicios] as s WHERE t.pue_codigo = p.pue_codigo AND p.pue_codigo = t.pue_codigo AND s.ser_codigo = t.ser_codigo AND ISNULL(llam_informado,0) = 0 AND CAST(t.llam_tstamp AS DATE) = CAST(getdate() AS DATE) AND t.ser_codigo = " . $servicio ." ORDER BY llam_tstamp ASC"; //print_r($sql);die; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $rs["numeros"] = $GLOBALS['dbSQL']->getAll(); if( is_array($rs["numeros"])&&count($rs["numeros"])>0 ) { for($i=0;$iQuery($sql); if ( $res ) { $llamadasPantalla = $GLOBALS['dbSQL']->getAll(); if( count($llamadasPantalla) > 0) { $contine_ = false; } } } if( $contine_ ) { // Pantalla encontrada, asignar y actualizar estado $sql = "UPDATE llamador_turno SET llam_informado = 1, llam_pantalla = '". $pantalla."' WHERE llam_id = " . $rs["numeros"][$i]["llam_id"]; $res = $GLOBALS['dbSQL']->Query($sql,true); $x = array_push($listado["numeros"],$rs["numeros"][$i]); // Verificar si ya no quedan pantallas para procesar, eliminar $sql = "SELECT llam_numero,ser_codigo FROM llamador_turno WHERE ser_codigo = ". $rs["numeros"][$i]["idservicio"]." AND llam_numero = ". $rs["numeros"][$i]["numero"]." AND llam_pantalla = ''"; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $llamadasTurnoPantalla = $GLOBALS['dbSQL']->getAll(); if( count($llamadasTurnoPantalla) <= 0) { // Todas las pantallas, mostraron el turno, actualizar // borrar el pool del turno $sql = "DELETE FROM llamador_turno WHERE ser_codigo = ".$rs["numeros"][$i]["idservicio"]." AND llam_numero = ". $rs["numeros"][$i]["numero"].""; $res = $GLOBALS['dbSQL']->Query($sql,true); } } } else { // Verificar si ya no quedan pantallas para procesar, eliminar $sql = "SELECT llam_numero,ser_codigo FROM llamador_turno WHERE ser_codigo = ". $rs["numeros"][$i]["idservicio"]." AND llam_numero = ". $rs["numeros"][$i]["numero"]." AND llam_pantalla = ''"; $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $llamadasTurnoPantalla = $GLOBALS['dbSQL']->getAll(); if( count($llamadasTurnoPantalla) <= 0) { // Todas las pantallas, mostraron el turno, actualizar // borrar el pool del turno $sql = "DELETE FROM llamador_turno WHERE ser_codigo = ".$rs["numeros"][$i]["idservicio"]." AND llam_numero = ". $rs["numeros"][$i]["numero"].""; $res = $GLOBALS['dbSQL']->Query($sql,true); } } } } } } } } } function getPacientesEspera() { $rs = array( "turnos" => false ,"numeros"=> false ); $sql1 = false; $sql2 = false; //Turnos if( isset($_REQUEST["serviceId"]) && isset($_REQUEST["idpantalla"]) ) { $pantalla = $_REQUEST["idpantalla"]; $servicio = $_REQUEST["serviceId"]; $tipo = POOL_LLAMADOR_TURNO; $listadoTurnos = false; procesarPool($pantalla,$servicio,$tipo,$listadoTurnos); $rs["turnos"] = $listadoTurnos["turnos"]; $tipo = POOL_LLAMADOR_NUMERO; $listadoNumeros = false; procesarPool($pantalla,$servicio,$tipo,$listadoNumeros); $rs["numeros"] = $listadoNumeros["numeros"]; } return $rs; } function getPacientesEspera_OLD() { $rs = array( "turnos" => false ,"numeros"=> false ); $sql1 = false; $sql2 = false; //Turnos if(isset($_REQUEST["serviceId"])) { $sql = "SELECT TOP 10 tc.cli_nombre as nombre ,tc.cli_dni as dni ,tt.tur_numero as turid ,tcon.con_denom as destino ,'turno' as tipo FROM dbo.[turnos] as tt, dbo.[clientes] as tc, dbo.[consultorios] as tcon dbo.[tbl_puestos] AS mp WHERE tt.cli_codigo = tc.cli_codigo AND tt.con_codigo = tcon.con_codigo AND mp.pue_codigo = tt.con_codigo AND tt.tur_med_llama IS NOT NULL AND tt.tur_llam_procesado IS NULL AND mp.ser_codigo = " . $_REQUEST["serviceId"]." ORDER BY tt.tur_med_llama ASC"; } else { $sql = "SELECT TOP 10 tc.cli_nombre as nombre ,tc.cli_dni as dni ,tt.tur_numero as turid ,tcon.con_denom as destino ,'turno' as tipo FROM dbo.[turnos] as tt, dbo.[clientes] as tc, dbo.[consultorios] as tcon WHERE tt.cli_codigo = tc.cli_codigo AND tt.con_codigo = tcon.con_codigo AND tt.tur_med_llama IS NOT NULL AND tt.tur_llam_procesado IS NULL ORDER BY tt.tur_med_llama ASC"; } $res = $GLOBALS['dbSQL']->Query($sql); if ( $res ) { $rs["turnos"] = $GLOBALS['dbSQL']->getAll(); if( count($rs["turnos"])>0 ) { $turlist=""; for($i=0;$iQuery($sql); if ( $rs["numeros"] ) { $rs["numeros"] = $GLOBALS['dbSQL']->getAll(); if( count($rs["numeros"])>0 ) { $llamlist=""; for($i=0;$iQuery($sql1,true);} if($sql2){$resultado2 = $GLOBALS['dbSQL']->Query($sql2,true);} return $rs; } function obtenerColaEspera(&$resultInfo) { $resultado = 0; $tiket = ""; $resultado = getPacientesEspera(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listEspera" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los pacientes en espera"; } } function getPacientesEsperaMultiple() { $rs = array( "turnos" => false ,"numeros"=> false ); $sql1 = false; $sql2 = false; //Turnos | Numeros /*if( isset($_REQUEST["serviceId"]) && isset($_REQUEST["idpantalla"]) )*/ if( isset($_REQUEST["idpantalla"]) ) { $pantalla = $_REQUEST["idpantalla"]; $dinit = date("Y-m-d H:i:s"); if( isset($_REQUEST["dinit"]) ) { $dinit = $_REQUEST["dinit"]; } //$servicio = $_REQUEST["serviceId"]; $listadoTurnos = false; $listadoNumeros = false; if( isset($_REQUEST["flt"]) ) { $tipo = POOL_LLAMADOR_TURNO; //procesarPool($pantalla,$servicio,$tipo,$listadoTurnos); //-->print_r("pantalla[$pantalla]tipo[$tipo]listadoTurnos[$listadoTurnos]dinit[$dinit]");die; procesarPool($pantalla,false,$tipo,$listadoTurnos,$dinit); $rs["turnos"] = $listadoTurnos["turnos"]; } if( isset($_REQUEST["fls"]) ) { $tipo = POOL_LLAMADOR_NUMERO; $serviciosLst = getListServicios(); if(is_array($serviciosLst)&&count($serviciosLst)>0) { $rs["numeros"] = array(); /* serid servicio fp ----- ------------------------------ --- 4 EXTRACCIONES LABORATORIO 0 8 OTROS;(EMMAC - REHABILITACIÓN) 0 6 RETIRO;ESTUDIOS O RECETAS 0 7 SOLICITAR NUEVO TURNO 1 3 TURNO CON;ESPECIALISTA 0 5 TURNO CON;MÉDICO CABECERA 0 a: llpm idpantalla: 19e95bbeed5802ee6108b0faf870ce9e fls: 1 fls: 1 */ for($i=0;$i count($resultado) ,"listEspera" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los pacientes en espera"; } } function getListServicios() { $sql = "SELECT ser_codigo AS serid ,LTRIM(RTRIM([ser_denom])) AS servicio ,ser_flag_pac_no_reg as fp FROM dbo.[llamador_servicios] WHERE ser_activo = 1 ORDER BY ser_denom"; $sql = "SELECT ser_codigo AS serid ,LTRIM(RTRIM(ser_denom)) AS servicio ,ser_pacdni as fp ,ser_letra as l ,ser_fontawe as ic FROM dbo.llamador_servicios WHERE ser_activo = 1 ORDER BY ser_orden"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function getServiciosNombre($idServicio) { $sql = "SELECT [ser_codigo] AS serid ,[ser_denom] AS servicio ,(CASE WHEN ser_letra IS NULL THEN '' ELSE ser_letra END) AS letra FROM dbo.[llamador_servicios] WHERE [ser_codigo] = " . $idServicio; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function consultarServicios(&$resultInfo) { $resultado = getListServicios(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listaServicios" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar los servicios"; } } function limpiarPantallas() { $sql1 = " TRUNCATE TABLE llamador_pool "; $sql2 = " TRUNCATE TABLE llamador_turno "; $sql3 = " UPDATE TURNOS SET tur_llam_procesado = GETDATE() "; $rs1 = $GLOBALS['dbSQL']->Query($sql1); $rs2 = $GLOBALS['dbSQL']->Query($sql2); $rs3 = $GLOBALS['dbSQL']->Query($sql3); if( $rs1&&$rs2&&$rs3 ) { return true; } return false; } function getValidarDUFast(&$existe=0,&$nombre='') { $sql = "SELECT TOP 1 cli_dni,cli_nombre FROM clientes WHERE cli_dni = '".addslashes($_REQUEST["du"])."'"; //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $cliente = $GLOBALS['dbSQL']->getAll(); if( is_array($cliente)&&count($cliente)>0 ) { $existe=1; $nombre=$cliente[0]["cli_nombre"]; } return true; } return false; } function validarDUExisteNumeros(&$resultInfo) { $existe=''; $nombre=''; $resultado = getValidarDUFast($existe,$nombre); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array("dures" => $existe,"np"=>$nombre); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el Documento"; } } //-------------------------------------- function saveEmailOnQueue($from,$subject,$type,$datos) { if( isset($datos['email']) && !empty($datos['email']) && !is_null($datos['email']) && trim($datos['email'])!='' ) { $emailInfo = array(); $emailInfo['type'] = $type; $emailInfo['data'] = $datos; $output = encodeDataB64($emailInfo); $sql = " INSERT INTO dbo.[email] ([ema_fecha],[ema_smtp],[ema_from],[ema_to],[ema_cc],[ema_bcc],[ema_subjec],[ema_messag],[ema_attach],[ema_succes],[ema_send]) "; $sql.= " VALUES( getdate(),' ','".$from."','".trim($datos['email'])."',NULL,NULL,'".$subject."','".$output."',NULL,0,NULL )"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } } return false; } function isEmailInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[emails_in_process] WHERE [emprc_estado] IS NULL"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de emails } } return false; //No hay un preoceso activo de envio de emails } function openEmailProgress() { $sql = " INSERT INTO dbo.[emails_in_process] (emprc_estado,emprc_tstamp_init) VALUES (NULL,GETDATE())"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeEmailProgress() { $sql = " UPDATE dbo.[emails_in_process] SET emprc_estado = 1, emprc_tstamp = GETDATE() WHERE emprc_estado IS NULL"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function processEmailQueue() { if(!isEmailInProgress()) { //Set in progress try { openEmailProgress(); $top = " TOP " . $GLOBALS['EMAIL_SEND_TOP']; $sql = " SELECT ".$top." * FROM dbo.[email] WHERE [ema_succes] = 0 AND ema_to LIKE '%@%.%'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; $lstEmailsQueue = array(); //------------------------------------- $continue = false; $servidores = false; $totalEmails = count($rs); $totalServidores = 0; if( $totalEmails > 0 ) { $servidores = getSMTPEmailServer($totalEmails); } if(!$servidores) { // print_r("Error al obtener los servidores...");print_r("\n"); $continue = true;// <== quitar es para test $emailInfo["data"]["smtp"]=array( // <== quitar es para test "user"=>'u' ,"pass"=>'p' ,"smtp"=>'s' ,"port"=>'0' ); $servidores["result"][0]["umbraltmp"] = 1;// <== quitar es para test } else { // print_r("-----------ok---------");print_r("\n"); // print_r($servidores);print_r("\n"); $totalServidores = count($servidores); if($totalServidores>0) { $continue = true; } } //print_r("<<<<<<<<<<<<<<<<<<<<<<<<<");die; //------------------------------------- // print_r("--------SERVIDORES ANTES-----------");print_r("\n"); // print_r($servidores);print_r("\n"); // print_r("-----------------------------------");print_r("\n"); if($continue) { /* foreach($rs as $row) { $emailId = $row["ema_numero"]; $emailInfo = decodeDataB64($row["ema_messag"]); //$emailInfo["data"]["email"] = 'juarezgustavoa@gmail.com'; setEmailServer($emailInfo,$servidores,$totalServidores); array_push($lstEmailsQueue, array(0=>$emailId, 1=>$emailInfo)); $conta++; } */ // print_r("--------SERVIDORES DESPUES-----------");print_r("\n"); // print_r($servidores);print_r("\n"); // print_r("--------LISTADO DE EMAILS-----------");print_r("\n"); //print_r($lstEmailsQueue);print_r("\n");die; //--------------------------------- // Grabar grupo de envio //--------------------------------- //saveGrupoEnvio(GRUPO_ENVIO_TIPO_EMAIL,$lstEmailsQueue) //--------------------------------- if($conta>0) { for($i=0;$iQuery($sql,true); if ( $rs ) { return true; } } return false; } function isMessagesInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[mensajes_in_process] WHERE [msgprc_estado] IS NULL AND msgprc_type = 'EMAIL'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de mensajes } } return false; //No hay un preoceso activo de envio de mensajes } function openMessagesProgress() { $sql = " INSERT INTO dbo.[mensajes_in_process] (msgprc_estado,msgprc_tstamp_init,msgprc_type) VALUES (NULL,GETDATE(),'EMAIL')"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeMessagesProgress() { $sql = " UPDATE dbo.[mensajes_in_process] SET msgprc_estado = 1, msgprc_tstamp = GETDATE() WHERE msgprc_estado IS NULL AND msgprc_type = 'EMAIL'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function createSesionMessages($totalMensajes,$usuario) { $p = '1234567890ADSFFSDFQAMDEPESFDGFDGDFG0985SFFSD'; $sesion = md5(randomText(6,$p).date("Y-m-d").time()); $sql = "INSERT INTO dbo.[mensajes_envio_grupo] ([menenvgr_fechaenvio] ,[menenvgr_tipo] ,[menenvgr_estado] ,[menenvgr_total] ,[menenvgr_sesion] ,[usu_codigo]) VALUES (GETDATE() ,'E' ,0 ,".$totalMensajes." ,'".$sesion."' ,".$usuario.")"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $idGrupo = $GLOBALS['dbSQL']->getLastId('mensajes_envio_grupo','menenvgr_id'); return array($idGrupo,$sesion); } return array(false,false); } function closeSesionMessages($idSesion,$totalFinal) { $sql = " UPDATE mensajes_envio_grupo SET menenvgr_estado = 1, menenvgr_total_enviados = ".$totalFinal." WHERE menenvgr_id = ".$idSesion; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function saveLogJobError() { $sql = " INSERT INTO jobs (job_nombre,job_fecha,job_total,job_fecha_param) VALUES ('CUOTA EMAIL EXEDIDA',GETDATE(),0,NULL)"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } } function updateEmailCuotaDiaria($total) { //Si no existe una cuota diaria, crear $sql = "SELECT mencuo_numero as cuotaid FROM mensajes_cuota WHERE LEFT(CONVERT(VARCHAR,mencuo_fecha, 120), 10) = LEFT(CONVERT(VARCHAR,GETDATE(), 120), 10)"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $cuotaInfo = $GLOBALS['dbSQL']->getAll(); if(count($cuotaInfo)<=0) { $sql = " INSERT INTO mensajes_cuota (mencuo_fecha,mencuo_contador) VALUES (GETDATE(),0)"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { return false; } } $sql = " UPDATE mensajes_cuota SET mencuo_contador = mencuo_contador + ".$total." WHERE LEFT(CONVERT(VARCHAR,mencuo_fecha, 120), 10) = LEFT(CONVERT(VARCHAR,GETDATE(), 120), 10)"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function validarEmailCuota($total,&$resto=0) { updateEmailCuotaDiaria(0);//CREO LA CUOTA DIARIA SI NO EXISTE //CALCULAR EL RANGO DE FECHA DEL PERIODO ACTUAL $fecha = date("Y-m-d"); $fechaIni = substr($fecha,0,4)."-".substr($fecha,5,5)."-01"; $fechaFin = false; $sql = " SELECT EOMONTH('".$fecha."') as final"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $fechaInfo = $GLOBALS['dbSQL']->getAll(); if(count($fechaInfo)>0) { $fechaFin = substr($fechaInfo[0]["final"],0,4)."-".substr($fechaInfo[0]["final"],5,5)."-".substr($fechaInfo[0]["final"],8,2); } } if(!$fechaFin) { return EMAIL_ERROR_CALCULAR_FECHAS; } //CONTAR LA CANTIDAD DE MENSAJES ENVIADOS OK $sql = "SELECT SUM(mencuo_contador) as total FROM mensajes_cuota WHERE LEFT(CONVERT(VARCHAR,mencuo_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$fechaIni."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$fechaFin."', 120), 10)"; //print_r($sql);print_r("\n");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return EMAIL_ERROR_CALCULAR_ENVIADOS; } $cuotaInfo = $GLOBALS['dbSQL']->getAll(); if(count($cuotaInfo)>0) { $totalEnviado=$cuotaInfo[0]["total"]; } else { $totalEnviado=0; } //print_r("totalEnviado[$totalEnviado]cta[".$GLOBALS['EMAIL_CUOTA_DIARIA']."]");print_r("\n"); if($totalEnviado<=intval($GLOBALS['EMAIL_CUOTA_DIARIA'])) { if(($totalEnviado+$total)<=intval($GLOBALS['EMAIL_CUOTA_DIARIA'])) { return EMAIL_CUOTA_PERMITIDA; } else { $resto = intval($GLOBALS['EMAIL_CUOTA_DIARIA']) - intval($totalEnviado); } } return EMAIL_ERROR_CUOTA_AGOTADA; } function processEmailMessagesQueue() { //testMs(); if(!isMessagesInProgress()) { //Set in progress try { openMessagesProgress(); // ,(CASE WHEN men_token is not null AND men_tipo BETWEEN 1 AND 3 THEN (SELECT tnro.tur_numero FROM turnos as tnro WHERE tnro.tur_token = men.men_token ) ELSE '' END) as turnro // ,(CASE WHEN men_token is not null AND men_tipo BETWEEN 1 AND 3 THEN (SELECT obsp.obsp_denom FROM turnos as tpl INNER JOIN obsplan as obsp ON tpl.obsp_cod = obsp.obsp_cod AND tpl.obs_codigo = obsp.obs_codigo WHERE tur_token = men.men_token ) ELSE '' END) as turpl // ,(CASE WHEN men_token is not null AND men_tipo BETWEEN 1 AND 3 THEN (SELECT esp.esp_denom FROM turnos as tesp INNER JOIN especial as esp ON tesp.esp_codigo = esp.esp_codigo WHERE tesp.tur_token = men.men_token ) ELSE '' END) as turesp // ,'' as turnro // ,'' as turpl // ,'' as turesp //$sql = " SELECT * FROM dbo.[mensajes] WHERE [men_procesado] = 0"; $top = " TOP " . $GLOBALS['EMAIL_SEND_TOP']; $sql = " SELECT ".$top." men.men_id ,men.men_fechaenvio ,FORMAT ( men_fecha, 'dd/MM/yyyy' ) as men_fecha ,men.men_hora ,men.men_destinatario ,men.men_paciente ,men.men_medico ,men.men_obs ,men.men_texto ,men.men_procesado ,men.men_fechaproceso ,men.men_tstamp ,men.men_tipo ,men.men_asunto ,men.men_email_remitente ,men.men_nombre_remitente ,men.men_token ,'' as turnro ,'' as turpl ,'' as turesp ,mtmpl.mencust_codigo AS template FROM dbo.[mensajes] as men INNER JOIN mensajes_templates as mtmpl ON mtmpl.mencust_tipo = men.men_tipo WHERE men.men_procesado = 0"; //print_r($sql);print_r("\n");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); //------------------------------------- $continue = true; $servidores = false; $totalEmails = count($rs); $totalServidores = 0; $resCuota = false; $restoCuota = 0; $restoCuotaContador = 0; $flagCuotaLimitada = false; if( $totalEmails > 0 ) { $resCuota = validarEmailCuota($totalEmails,$restoCuota); //-->$servidores = getSMTPEmailServer($totalEmails); } // print_r("----validarEmailCuota---------");print_r("\n"); // print_r("resCuota[".$resCuota."]");print_r("\n"); // print_r("restoCuota[".$restoCuota."]");print_r("\n"); // print_r("--------------------------");print_r("\n"); if($resCuota!==EMAIL_CUOTA_PERMITIDA) { if($restoCuota<=0) { //Grabar log del job: especificar el error saveLogJobError(); $continue=false; } else { //Quitar Sobrantes $flagCuotaLimitada=true; $restoCuotaContador=$restoCuota; $continue=true; } } else { $continue=true; } if( $continue ) { $idsesion=''; $sesion =''; list($idsesion,$sesion) = createSesionMessages($totalEmails,$GLOBALS['USER_BOOT_SEND_MESSAGES']); foreach($rs as $row) { if( !(filter_var($row['men_destinatario'], FILTER_VALIDATE_EMAIL)) ) { //Email inválido $r = updateEmailMessagesState($row['men_id'],$idsesion,true); //TODO: Mejorar la captura de error } elseif($flagCuotaLimitada&&$restoCuotaContador<=0) { //Email sin cuota disponible $r = updateEmailMessagesState($row['men_id'],$idsesion,false,true); } else { $params = array(); $params['id'] = $row['men_id']; $params['sesion'] = $idsesion; $params['tipo'] = $row['men_tipo']; $params['email'] = $row['men_destinatario']; $params['nombre'] = encodeDataB64(htmlentities($row['men_paciente'])); $params["customer"]= $GLOBALS['WS_WHATSAPP_CUSTOMER']; $params['template']= $row['template']; switch( intval($row['men_tipo']) ) { //Turno //Cancelación Turno //Recordatotio Turno case 1: case 2: case 3: { $params['fecha'] = $row['men_fecha']; $params['hora'] = $row['men_hora']; $params['obs'] = encodeDataB64(htmlentities($row['men_obs'])); $params['med'] = encodeDataB64(htmlentities($row['men_medico'])); $params['token'] = $row['men_token']; $params['turnro'] = $row['turnro']; $params['plan'] = $row['turpl']; $params['esp'] = $row['turesp']; } break; //Resumen de turno case 4: { $hoy = Date("Y-m-d"); $datos['info'][0] = $row['men_fecha']; // date("d/m/Y",strtotime($hoy. ' + 1 days')); $datos['info'][1] = encodeDataB64($row['men_texto']); $datos['info'][2] = htmlentities($row['men_medico']); } break; //Copia Aviso a email case 5: { $datos['info'][0] = htmlentities($row['men_asunto']); $datos['info'][1] = htmlentities($row['men_texto']); $datos['info'][2] = htmlentities($row['men_nombre_remitente']); $datos['info'][3] = $row['men_fecha']; $datos['info'][4] = htmlentities($row['men_email_remitente']); } break; //Pedido de Interconsulta case 6: { $datos['info'][0] = htmlentities($row['men_nombre_remitente']); $datos['info'][1] = htmlentities($row['men_medico']); $datos['info'][2] = date("d/m/Y H:i",strtotime(str_replace(".000","",$row['men_fecha']))); $datos['info'][3] = encodeDataB64($row['men_texto']); } break; //Reclamo de estudio case 11: { /*$datos['info'][0] = htmlentities($row['men_paciente']); $datos['info'][1] = $row['men_hora']; $datos['info'][2] = encodeDataB64($row['men_texto']); $datos['info'][3] = $row['men_token']; $datos['info'][4] = $row['men_fecha'];*/ $params['nro'] = $row['men_hora']; $params['detalle'] = encodeDataB64($row['men_texto']); $params['archivo'] = $row['men_token']; $params['fecha'] = $row['men_fecha']; } break; } if( intval($params['template'])>0 ) { $conta++; //array_push($lstEmailsQueue, $datos); array_push($lstEmailsQueue, $params); } } if($flagCuotaLimitada) { $restoCuotaContador--; } } if($conta>0) { //print_r($lstEmailsQueue);print_r("\n");die; for($i=0;$iQuery($sql,true); if ( $rs ) { $sql = "DELETE FROM dbo.[email] WHERE [ema_send] IS NOT NULL AND [ema_succes] = 1"; $rsN = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsN ) { return true; } } return false; } function cleanEmailMessagesSendedQueue() { $sql = " INSERT INTO dbo.[mensajes_procesados] (men_id,men_fechaenvio,men_fecha,men_hora,men_destinatario,men_paciente,men_medico,men_obs,men_texto,men_procesado,men_fechaproceso,men_tstamp,men_tipo,men_asunto,men_email_remitente,men_nombre_remitente,men_token,men_server_response,men_reprocesar,men_invalido,men_sendingblue_id,men_resultado,men_cuota) "; $sql.= " SELECT men_id,men_fechaenvio,men_fecha,men_hora,men_destinatario,men_paciente,men_medico,men_obs,men_texto,men_procesado,men_fechaproceso,men_tstamp,men_tipo,men_asunto,men_email_remitente,men_nombre_remitente,men_token,men_server_response,men_reprocesar,men_invalido,men_sendingblue_id,men_resultado,men_cuota"; $sql.= " FROM dbo.[mensajes] "; $sql.= " WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1 "; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $sql = "DELETE FROM dbo.[mensajes] WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1"; $rsN = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsN ) { return true; } } return false; } function updateEmailState($result, $id, $resInfo=false) { /* if( $result!==false && $result!==0 ) { $sql = " UPDATE dbo.[email] SET [ema_succes] = 1, [ema_send] = getdate() "; $sql.= " WHERE [ema_numero] = ".$id; } else { $sql = " UPDATE dbo.[email] SET [ema_succes] = 0, [ema_send] = NULL "; $sql.= " WHERE [ema_numero] = ".$id; } $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; */ $flagReprocesar = '0'; if(!$resInfo) { $flagReprocesar = '1'; $sql = " INSERT INTO dbo.[email_reprocesar] SELECT * FROM dbo.[email] WHERE [ema_numero] = ".$id; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { //Error, seguir adelante, se pierde el envio y reprocesamiento } } $sql = " UPDATE dbo.[email] SET [ema_succes] = 1, [ema_send] = getdate() [ema_server_response] = '".print_r($resInfo,true)."' [ema_reprocesar] = ".$flagReprocesar." WHERE [ema_numero] = ".$id; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function updateEmailMessagesState($id,$idsesion,$flagInvalido=false,$flagCuota=false,$resInfo=false) { try { $flagReprocesar = '0'; //if(!$flagInvalido && !$resInfo) if($flagCuota) { $flagReprocesar = '1'; $sql = " INSERT INTO dbo.[mensajes_reprocesar] SELECT * FROM dbo.[mensajes] WHERE [men_id] = ".$id; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Error, seguir adelante, se pierde el envio y reprocesamiento } } $sendingblueid = false; if(isset($resInfo["i"]["messageId"])) { $sendingblueid = str_replace("<","",$resInfo["i"]["messageId"]); $sendingblueid = str_replace(">","",$sendingblueid); } $sql = " UPDATE dbo.[mensajes] SET [men_procesado] = 1, [men_fechaproceso] = getdate(), [men_server_response] = '".print_r($resInfo,true)."' , [men_reprocesar] = ".$flagReprocesar.", [men_invalido] = ".($flagInvalido?'1':'0').", [men_sendingblue_id] = ".($sendingblueid?"'".$sendingblueid."'":'NULL').", [menenvgr_id] = '".$idsesion."', [men_resultado] = ".intval($resInfo["r"])." [men_cuota] = ".($flagCuota?'1':'0').", WHERE [men_id] = ".$id; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } catch (Exception $e) { //print_r("updateEmailMessagesState >>>>>> Error:".($e->__toString())); return false; } } function updateEmailAlertaState($id,$resInfo=false) { try { $sendingblueid = false; if(isset($resInfo["i"]["messageId"])) { $sendingblueid = str_replace("<","",$resInfo["i"]["messageId"]); $sendingblueid = str_replace(">","",$sendingblueid); } $sql = " UPDATE dbo.[mensajes_alerta] SET [menal_procesado] = 1, [menal_fechaproceso] = getdate(), [menal_server_response] = '".print_r($resInfo,true)."' , [menal_sendingblue_id] = ".($sendingblueid?"'".$sendingblueid."'":'NULL').", [menal_resultado] = ".intval($resInfo["r"])." WHERE [menal_numero] = ".$id; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } catch (Exception $e) { //print_r("updateEmailMessagesState >>>>>> Error:".($e->__toString())); return false; } } function isEmailAlertaInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[mensajes_in_process] WHERE [msgprc_estado] IS NULL AND msgprc_type = 'EMAILALERT'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de mensajes } } return false; //No hay un preoceso activo de envio de mensajes } function openEmailAlertaProgress() { $sql = " INSERT INTO dbo.[mensajes_in_process] (msgprc_estado,msgprc_tstamp_init,msgprc_type) VALUES (NULL,GETDATE(),'EMAILALERT')"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeEmailAlertaProgress() { $sql = " UPDATE dbo.[mensajes_in_process] SET msgprc_estado = 1, msgprc_tstamp = GETDATE() WHERE msgprc_estado IS NULL AND msgprc_type = 'EMAILALERT'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function testEmailAlertaMs() { closeEmailAlertaProgress(); $res=false; // $r=callWebServiceSendingBlueAccess($res); // print_r("------////----");print_r("\n"); // print_r(json_decode($res));die; $sql = " update dbo.[mensajes_alerta] set [menal_procesado] = 0, [menal_fechaproceso]=null, menal_server_response = '' WHERE menal_numero = 3"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function processEmailAlertaQueue() { //testEmailAlertaMs(); if(!isEmailAlertaInProgress()) { //Set in progress try { openEmailAlertaProgress(); $top = " TOP " . $GLOBALS['EMAIL_ALERTA_SEND_TOP']; $sql = " SELECT ".$top." menal_numero AS id ,t.tur_numero as turnonro ,FORMAT ( t.tur_fecha, 'dd/MM/yyyy' ) as fechaTurno ,t.tur_hora as hora ,c.cli_nombre as paciente ,c.cli_dni as documento ,m.med_nombre as medico ,e.emp_nombre as usuario ,o.obs_denom AS obs ,p.obsp_denom AS plan_ ,tur_registracion as fechaRegistracion ,men.menal_fecha as fechaRegistracionAlerta FROM mensajes_alerta as men INNER JOIN tbl_mensaje_alerta as ma ON ma.menal_codigo = men.menal_codigo INNER JOIN turnos as t ON t.tur_numero = men.menal_turno INNER JOIN clientes as c ON t.cli_codigo = c.cli_codigo INNER JOIN medicos as m ON t.med_codigo = m.med_codigo INNER JOIN empleado as e ON e.emp_codigo = t.usu_codigo INNER JOIN obrasoc as o ON o.obs_codigo = t.obs_codigo INNER JOIN obsplan as p ON p.obs_codigo = t.obs_codigo AND p.obsp_cod = t.obsp_cod WHERE men.menal_procesado = 0"; //print_r($sql);print_r("\n");die; // print_r("----------------");print_r("\n"); // print_r($params); // print_r("----------------");print_r("\n"); // die(" <<<<<"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); //------------------------------------- $continue = true; $totalEmails = count($rs); if( $continue ) { foreach($rs as $row) { $params = array(); $params['id'] = $row['id']; $params['sesion'] = ''; $params['tipo'] = 30; //$row['men_tipo']; $params['email'] = $GLOBALS['EMAIL_ALERTA_DESTINATARIOS']; $params['paciente']= encodeDataB64(htmlentities($row['paciente'])); $params['doc'] = $row['documento']; $params['medico'] = encodeDataB64(htmlentities($row['medico'])); $params['usuario'] = encodeDataB64(htmlentities($row['usuario'])); $params['obs'] = encodeDataB64(htmlentities($row['obs'])); $params['plan'] = encodeDataB64(htmlentities($row['plan_'])); $params['alnro'] = $row['turnonro']; $params['tnro'] = $row['turnonro']; $params['fecha'] = $row['fechaTurno']; $params['hora'] = $row['hora']; $params['fturreg'] = $row['fechaRegistracion']; $params['falerta'] = $row['fechaRegistracionAlerta']; $params["customer"]= $GLOBALS['WS_WHATSAPP_CUSTOMER']; $params['template']= 9;//$row['template']; $conta++; array_push($lstEmailsQueue, $params); } if($conta>0) { //print_r($lstEmailsQueue);print_r("\n");die; for($i=0;$i","",$sendingblueid); // } $sql = " UPDATE web.cliente_alertas_tratamientos SET [cat_estado] = 1, [cat_fecha] = getdate(), [cat_resultado] = ".$resInfo." WHERE [cat_numero] = ".$id; // print_r("-----------------------");print_r("\n"); // print_r($sql);print_r("\n"); // print_r("-----------------------");print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } catch (Exception $e) { //print_r("updateEmailMessagesState >>>>>> Error:".($e->__toString())); return false; } } function isEmailAlertaTratamientoInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[mensajes_in_process] WHERE [msgprc_estado] IS NULL AND msgprc_type = 'EMAILALERTTRATAMIENTO'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de mensajes } } return false; //No hay un preoceso activo de envio de mensajes } function openEmailAlertaTratamientoProgress() { $sql = " INSERT INTO dbo.[mensajes_in_process] (msgprc_estado,msgprc_tstamp_init,msgprc_type) VALUES (NULL,GETDATE(),'EMAILALERTTRATAMIENTO')"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeEmailAlertaTratamientoProgress() { $sql = " UPDATE dbo.[mensajes_in_process] SET msgprc_estado = 1, msgprc_tstamp = GETDATE() WHERE msgprc_estado IS NULL AND msgprc_type = 'EMAILALERTTRATAMIENTO'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function processEmailAlertaTratamientoQueue($flagReprocesar=true) { //testEmailAlertaMs(); if(!isEmailAlertaTratamientoInProgress()) { //Set in progress try { openEmailAlertaTratamientoProgress(); $continue=true; //------------------------------------------------------ //BUSCAR LISTADO DE ITEMS QUE TIENEN DEFINIDA UNA ALERTA //------------------------------------------------------ if($flagReprocesar) { $sql = "SELECT nom_alerta, nom_alerta_mensaje, nom_codigo, inos_cod FROM nomenclador WHERE nom_alerta IS NOT NULL AND nom_alerta_mensaje IS NOT NULL "; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $nomenclador = $GLOBALS['dbSQL']->getAll(); if(is_array($nomenclador)&&count($nomenclador)>0) { for($i=0,$t=count($nomenclador);$i<$t;$i++) { if( trim($nomenclador[$i]["nom_alerta"])!="" && trim($nomenclador[$i]["nom_alerta_mensaje"])!="" ) { $alertaInfo = explode(";",$nomenclador[$i]["nom_alerta"]); $nombrePractica= $nomenclador[$i]["nom_alerta_mensaje"]; //DEBER TENER DEFINIDO AL MENOS LOS DIAS DE VENCIMIENTO Y AL MENOS UNA CANTIDAD DE DIAS DE ALERTA if( isset($alertaInfo[0])&&is_numeric($alertaInfo[0]) && isset($alertaInfo[1])&&is_numeric($alertaInfo[1]) ) { $vto = $alertaInfo[0]; for($k=1,$tk=(count($alertaInfo)-1);$k<$tk;$k++) //RECORRO TODOS LOS DIAS DEFINIDOS { $diasAlerta = $alertaInfo[$k]; //----------------------------------------------------------------- //BUSCAR LOS TURNOS CONFIRMADOS/NO CANCELADOS QUE TENGAN UNA ALERTA // >> DESCARTAR SI YA SE ENVIADO LA ALERTA AL CLIENTE PARA LA CANTIDAD DE DIAS //----------------------------------------------------------------- $sql = "SELECT t.tur_numero, t.nom_codigo, t.inos_cod, t.cli_codigo, c.cli_nombre, c.cli_email, t.tur_fecha FROM turnos AS t INNER JOIN clientes as c ON c.cli_codigo = t.cli_codigo WHERE t.tur_asiste = 1 AND t.nom_codigo = ".$nomenclador[$i]["nom_codigo"]." AND t.inos_cod = '".$nomenclador[$i]["inos_cod"]."' AND (DATEDIFF(day, t.tur_fecha, GETDATE())=(".($vto-$diasAlerta).")) AND NOT EXISTS ( SELECT 1 FROM web.cliente_alertas_tratamientos as tn WHERE tn.tur_numero = t.tur_numero AND tn.cat_diaalert = ".$diasAlerta." )"; // print_r("-----------------------");print_r("\n"); // print_r($sql);print_r("\n"); // print_r("-----------------------");print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $turnos = $GLOBALS['dbSQL']->getAll(); if(is_array($turnos)&&count($turnos)>0) { $items = ''; for($j=0,$tj=count($turnos);$j<$tj;$j++) { //----------------------------------------------------------------- //PREPARAR MENSAJE //----------------------------------------------------------------- $template = "({CLIID},{TURNOID},'{NOMBRE}','{EMAIL}',{MESES},{DIASALERTA},'{TRATAMIENTO}',{VALEMAIL},0,NULL,0,'{TFECHA}',GETDATE())"; $item = str_replace("{CLIID}",$turnos[$j]["cli_codigo"],$template); $item = str_replace("{TURNOID}",$turnos[$j]["tur_numero"],$item); $item = str_replace("{NOMBRE}",$turnos[$j]["cli_nombre"],$item); $item = str_replace("{EMAIL}",$turnos[$j]["cli_email"],$item); $item = str_replace("{MESES}",$vto,$item); $item = str_replace("{DIASALERTA}",$diasAlerta,$item); $item = str_replace("{TRATAMIENTO}",$nombrePractica,$item); $item = str_replace("{TFECHA}",$turnos[$j]["tur_fecha"],$item); if( !is_null($turnos[$j]["cli_email"]) && !empty($turnos[$j]["cli_email"]) && trim($turnos[$j]["cli_email"])!="" ) { $emailvalido = validarEmail($turnos[$j]["cli_email"]); } else { $emailvalido = false; } $item = str_replace("{VALEMAIL}",($emailvalido?1:0),$item); $sep=","; if($items==''){$sep='';} $items.=$sep.$item; } //----------------------------------------------------------------- //ENCOLAR MENSAJES //----------------------------------------------------------------- $sql = "INSERT INTO web.cliente_alertas_tratamientos ( cli_codigo ,tur_numero ,cli_nombre ,cli_email ,cat_meses ,cat_diaalert ,cat_praalert ,cat_validemail ,cat_estado ,cat_fecha ,cat_resultado ,cat_turfecha ,cat_fechainsert ) VALUES ".$items; // print_r("-----------------------");print_r("\n"); // print_r($sql);print_r("\n"); // print_r("-----------------------");print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $continue=true; } else { $continue=false; } } } } } } } } } } //------------------------------------------------------ //ENVIAR COLA DE MENSAJES DE ALERTA DE TRATAMIENTO //------------------------------------------------------ if($continue) { $top = " TOP " . $GLOBALS['EMAIL_ALERTA_SEND_TOP']; //$sql = " SELECT ".$top." cat_numero AS id $sql = " SELECT cat_numero AS id ,cli_codigo ,cli_nombre ,cli_email ,tur_numero ,CONCAT(cat_meses,' días') AS cat_meses ,cat_diaalert ,cat_praalert ,cat_estado ,cat_resultado ,cat_validemail ,cat_fecha ,cat_turfecha ,cat_fechainsert FROM web.cliente_alertas_tratamientos as men WHERE men.cat_estado = 0 AND cat_validemail = 1"; // print_r($sql);print_r("\n");die; // print_r("----------------");print_r("\n"); // print_r($params); // print_r("----------------");print_r("\n"); // die(" <<<<<"); print_r("-----------------------");print_r("\n"); print_r($sql);print_r("\n"); print_r("-----------------------");print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); //------------------------------------- $continue = true; $totalEmails = count($rs); if( $continue ) { foreach($rs as $row) { $paramsEmail = array(); $paramsEmail["email"] = $row['cli_email']; $paramsEmail["cliN"] = encodeDataB64($row['cli_nombre']); $paramsEmail["praM"] = encodeDataB64($row['cat_meses']); $paramsEmail["praN"] = encodeDataB64($row['cat_praalert']); $paramsEmail["nombre"] = encodeDataB64($row['cli_nombre']); $paramsEmail["subject"] = "Recordatorio Must Estética Médica"; $paramsEmail['customer']= $GLOBALS['WS_WHATSAPP_CUSTOMER'];; $paramsEmail['template']= 19; //OBTENER DE LA BASE $paramsEmail['tipo'] = 29; //CAMBIAR A CONSTANTE $paramsEmail["fromn"] = $GLOBALS['FROMN']; $paramsEmail["from"] = $GLOBALS['FROM']; //print_r($paramsEmail);die(" <<<<<<<<< "); $result = false; $res = callWebServiceSendEmail($paramsEmail,$result); //$res=true; ($res?'1':'0'); $r = updateEmailAlertaTratamientoState($row['id'],$res); } } } } closeEmailAlertaTratamientoProgress(); } catch (Exception $e) { closeEmailAlertaTratamientoProgress(); } } else { print_r("Envio en progreso. Se cancela hilo de ejecucion"); } } //******************************************** // DASHBOARD //******************************************** function getUsuarioInfo($userid) { $sql = "SELECT [emp_codigo] ,[emp_nombre] ,[emp_login] ,[emp_alta] ,[emp_baja] ,[emp_activo] ,[emp_observ] ,[emp_passw] FROM empleado WHERE emp_codigo = ".mb_strtolower($userid); //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { // $userInfo = $GLOBALS['dbSQL']->getOne(); // return $userInfo; $userInfo = $GLOBALS['dbSQL']->getAll(); return $userInfo[0]; } return false; } function getMedicoCodigo($userid) { $medico=''; $sql = "SELECT med_codigo FROM medicos WHERE usu_mapeo = " . $userid; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $resultado = $GLOBALS['dbSQL']->getAll(); if(is_array($resultado)&&count($resultado)>0) { $medico=$resultado[0]["med_codigo"]; } } return $medico; } function getValidarUsuario($user,$pass,$userid=false,&$flagEmailRepetido=false,&$userInf=false) { // $sql = "SELECT emp_codigo // FROM empleado // WHERE LOWER(emp_login) = '".mb_strtolower($user)."' // AND emp_passw = '".md5($pass)."'"; // AND emp_passw = '".strtoupper(md5($pass))."'"; if( !$userid ) { $sql = "SELECT * FROM empleado WHERE LOWER(emp_login) = '".mb_strtolower($user)."'"; $sql.= " UNION "; $sql.= "SELECT * FROM empleado WHERE LOWER(emp_email) = '".mb_strtolower($user)."'"; } else { $sql = "SELECT * FROM empleado WHERE emp_codigo = ".mb_strtolower($user); } //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { //$userInfo = $GLOBALS['dbSQL']->getOne(); $userInfo = $GLOBALS['dbSQL']->getAll(); if( !$userid ) { if(is_array($userInfo)&&count($userInfo)==1) { $userInf = array( "cod" =>$userInfo[0]["emp_codigo"] ,"name" =>$userInfo[0]["emp_nombre"] ,"email" =>$userInfo[0]["emp_email"] ); //--------------------------------------------- // Columna creada por compatibilidad PHP-LandaMed //--------------------------------------------- /* if( $userInfo[0]['emp_passw_panel'] == "-1" || $userInfo[0]['emp_passw_panel'] == -1 ) { //Actualizar password $sql = 'UPDATE dbo.[empleado] set [emp_passw_panel] = \''.md5($pass).'\' WHERE [emp_codigo] = '.$userInfo[0]['emp_codigo']; $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { // dummy //TODO:Verificar si en necesario realizar alguna acción si falla el update } return $userInfo[0]['emp_codigo']; } //----------------------------------------------- elseif( ( $userInfo[0]['emp_passw_panel'] != "0" || $userInfo[0]['emp_passw_panel'] !== 0 ) && $userInfo[0]['emp_passw_panel'] == md5($pass) ) { return $userInfo[0]['emp_codigo']; } */ if( $userInfo[0]['emp_passw_panel'] == "-1" || $userInfo[0]['emp_passw_panel'] == -1 ) { //Actualizar password $sql = 'UPDATE dbo.[empleado] set [emp_passw_panel] = \''.md5($pass).'\' WHERE [emp_codigo] = '.$userInfo[0]['emp_codigo']; $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { // dummy //TODO:Verificar si en necesario realizar alguna acción si falla el update } return $userInfo[0]['emp_codigo']; } //----------------------------------------------- elseif( ( $userInfo[0]['emp_passw_panel'] != "0" || $userInfo[0]['emp_passw_panel'] !== 0 ) && $userInfo[0]['emp_passw_panel'] == md5($pass) ) { return $userInfo[0]['emp_codigo']; } elseif( ( $userInfo[0]['emp_passw'] != "0" || $userInfo[0]['emp_passw'] !== 0 ) && strtoupper($userInfo[0]['emp_passw']) == strtoupper(md5($pass)) ) { return $userInfo[0]['emp_codigo']; } } else { //Existe mas de un empleado con el mismo email $flagEmailRepetido = true; return false; } } else { if( $userInfo[0]['emp_passw_panel'] == md5($pass) ) { return true; } } // print_r(md5('admin'));print_r("\n"); // //print_r(md5($pass));print_r("\n"); // $userInfo = $GLOBALS['dbSQL']->getOne(); // print_r($userInfo);die; } return false; } function loginUsuario(&$resultInfo) { if( isset($_REQUEST["user"]) && !empty($_REQUEST["user"]) && !is_null($_REQUEST["user"]) && isset($_REQUEST["pass"]) && !empty($_REQUEST["pass"]) && !is_null($_REQUEST["pass"]) ) { $user = $_REQUEST["user"]; $pass = $_REQUEST["pass"]; $resultInfo['code'] = 0; $flagEmailRepetido=false; $userInf=false; $idEmpleado = getValidarUsuario($user, $pass,false,$flagEmailRepetido,$userInf); //print_r('r['.$resultado.']');die; if( $idEmpleado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "userid" => $idEmpleado ,"userinfo" => $userInf ,"token" => getToken('a',$idEmpleado,'','') ); //print_r($resultInfo);die; } elseif( $flagEmailRepetido ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El email ingresado esta asociado a mas de un colaborador. Contactar al administrador"; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Usuario/Clave inválido."; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Acción desconocida. El Usuario/Clave no estan definidos."; } } function changePassUser($user,$pass, $passnew, $passnewrep) { if( $passnew != $passnewrep ) { return 3; } $dummy=false; $dummyuser=false; if( !getValidarUsuario($user, $pass, true,$dummy,$dummyuser) ) { return 2; } //Actualizar password $sql = 'UPDATE dbo.[empleado] set [emp_passw_panel] = \''.md5($passnew).'\' WHERE [emp_codigo] = '.$user; $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { return true; } return false; //202cb962ac59075b964b07152d234b70 //c4ca4238a0b923820dcc509a6f75849b //202cb962ac59075b964b07152d234b70 // UPDATE dbo.[empleado] set [emp_passw_panel] = 'c4ca4238a0b923820dcc509a6f75849b' WHERE [emp_codigo] = 98 } function updatePassUsuario(&$resultInfo) { if( isset($_REQUEST["user"]) && !empty($_REQUEST["user"]) && !is_null($_REQUEST["user"]) && isset($_REQUEST["pass"]) && !empty($_REQUEST["pass"]) && !is_null($_REQUEST["pass"]) && isset($_REQUEST["passnew"]) && !empty($_REQUEST["passnew"]) && !is_null($_REQUEST["passnew"]) && isset($_REQUEST["passnewrep"]) && !empty($_REQUEST["passnewrep"]) && !is_null($_REQUEST["passnewrep"]) ) { $user = $_REQUEST["user"]; $pass = $_REQUEST["pass"]; $passnew = $_REQUEST["passnew"]; $passnewrep = $_REQUEST["passnewrep"]; $resultInfo['code'] = 0; $resultado = changePassUser($user, $pass, $passnew, $passnewrep); //print_r($resultado);die; if( $resultado === true ) { $resultInfo['code'] = 0; $resultInfo['data'] = array("userid" => $resultado ); //print_r($resultInfo);die; } elseif( $resultado == 2 ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Clave inválida."; } elseif( $resultado == 3 ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "La nueva clave y su repetición no coinciden."; } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Se produjo un error al actualizar la clave"; } } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "Acción desconocida. El Usuario/Clave no estan definidos."; } } function getFechaFormateada($d) { $date = date('d/m/Y',strtotime($d)); $date = date($GLOBALS['FORMATDATE'],strtotime($date)); return $date; } function isCargoPanelWeb($rolCod) { $procesos = ""; $sql = "SELECT ISNULL(cgo_panel_web,0) AS panelweb FROM cargos WHERE cgo_codigo = '".$rolCod."'"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $rol = $GLOBALS['dbSQL']->getAll(); if($rol && is_array($rol)&& count($rol)>0) { return ($rol[0]["panelweb"]==1?true:false); } } return false; } function getRolProcesos($rolCod) { $procesoslst = ""; $sql = "SELECT pc_proceso FROM pro_cgo WHERE pc_cargo = '".$rolCod."'"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $procesos = $GLOBALS['dbSQL']->getAll(); if($procesos && is_array($procesos)&& count($procesos)>0) { //print_r($procesos);die; for($i=0,$t=count($procesos);$i<$t;$i++) { $sep=","; if($procesoslst==""){$sep="";} $procesoslst.=$sep.$procesos[$i]["pc_proceso"]; } } } return $procesoslst; } function getUsurioPermisos($userCod,$flagPanelWeb=true,$flagLanda=false) { $procesos = ""; //$panelwebfilter = ($flagPanelWeb ? " AND ecg_panel_web = 1":""); //$panellandafilter = ($flagLanda ?"and pro_panel_web = 1":""); $sql = "SELECT ecg_id ,emp_codigo ,cgo_codigo FROM empcargo WHERE emp_codigo = '".$userCod."'"; //print_r($sql);die; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $roles = $GLOBALS['dbSQL']->getAll(); if($roles && is_array($roles)&& count($roles)>0) { for($i=0,$t=count($roles);$i<$t;$i++) { if(isCargoPanelWeb($roles[$i]["cgo_codigo"])) { $sep=","; if($procesos==""){$sep="";} $procesos.= $sep.getRolProcesos($roles[$i]["cgo_codigo"]); } } } } return $procesos; } function getCensoXTurno($idServicio,$altas=false) { $internados_m_result = false; $internados_t_result = false; $internados_n_result = false; $internados_m_d_result = false; $internados_t_d_result = false; $internados_n_d_result = false; $turno_m = " AND (CONVERT (SMALLINT, RIGHT(100 + DATEPART(HOUR, i.int_fecing) , 2) + RIGHT(100 + DATEPART(MINUTE, i.int_fecing) , 2) ) ) BETWEEN 600 AND 1400 "; $turno_t = " AND (CONVERT (SMALLINT, RIGHT(100 + DATEPART(HOUR, i.int_fecing) , 2) + RIGHT(100 + DATEPART(MINUTE, i.int_fecing) , 2) ) ) BETWEEN 1401 AND 2000 "; $turno_n = " AND (CONVERT (SMALLINT, RIGHT(100 + DATEPART(HOUR, i.int_fecing) , 2) + RIGHT(100 + DATEPART(MINUTE, i.int_fecing) , 2) ) ) BETWEEN 2001 AND 559 "; if(!$altas) { /* //Camas ocupadas x obs social y x servicios $sql = "SELECT h.ser_codigo as cod_servicio, s.ser_denom, ob.obs_denom, count(*) as totalCamasOcupadas FROM internacion i, orden_internacion o, clientes c, habitaciones h, tbl_internado_servicio s, obrasoc ob WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo AND cast(i.int_fecing as date) = cast(getdate() as date) AND s.ser_codigo = ".$idServicio." {TURNO} group by h.ser_codigo,s.ser_denom,ob.obs_denom order by 4 desc"; $internados_m = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_m, $sql) ); if ( $internados_m ){ $internados_m_result = $GLOBALS['dbSQL']->getAll(); } $internados_t = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_t, $sql) ); if ( $internados_t ){ $internados_t_result = $GLOBALS['dbSQL']->getAll(); } $internados_n = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_n, $sql) ); if ( $internados_n ){ $internados_n_result = $GLOBALS['dbSQL']->getAll(); } */ $sql = "SELECT i.oi_numero ,FORMAT ( i.int_fecing, 'dd/MM/yyyy HH:mm' ) as int_fecing ,(cast(datediff(dd,c.cli_fecnto,GETDATE()) / 365.25 as int)) as edad ,i.hab_codigo ,s.ser_denom ,h.hab_denom ,i.hbc_codigo ,ca.hbc_denom ,o.cli_codigo ,o.obs_codigo ,ob.obs_denom ,o.obsp_cod ,p.obsp_denom ,o.med_codigo ,m.med_nombre ,c.cli_dni ,c.cli_nombre ,c.cli_sexo ,c.cli_carnet ,o.oi_diagnos ,o.oi_respnom ,o.oi_resptel FROM internacion i, orden_internacion o, clientes c, habitaciones h, hab_camas ca, tbl_internado_servicio s, obrasoc ob, obsplan p, medicos m WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo AND o.obs_codigo = p.obs_codigo AND o.obsp_cod = p.obsp_cod AND o.med_codigo = m.med_codigo AND i.hab_codigo = ca.hab_codigo AND i.hbc_codigo = ca.hbc_codigo AND cast(i.int_fecing as date) = cast(getdate() as date) AND s.ser_codigo = ".$idServicio." {TURNO} order by 2 desc"; $internados_m_d = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_m, $sql) ); if ( $internados_m_d ){ $internados_m_d_result = $GLOBALS['dbSQL']->getAll(); } $internados_t_d = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_t, $sql) ); if ( $internados_t_d ){ $internados_t_d_result = $GLOBALS['dbSQL']->getAll(); } $internados_n_d = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_n, $sql) ); if ( $internados_n_d ){ $internados_n_d_result = $GLOBALS['dbSQL']->getAll(); } $resultado = array( "m" => array("total"=>(count($internados_m_d_result)>0?count($internados_m_d_result):0), "detalle"=> $internados_m_d_result) ,"t" => array("total"=>(count($internados_t_d_result)>0?count($internados_m_d_result):0), "detalle"=> $internados_t_d_result) ,"n" => array("total"=>(count($internados_n_d_result)>0?count($internados_m_d_result):0), "detalle"=> $internados_n_d_result) ); } else { $sql = "SELECT * FROM internacion i, orden_internacion o, clientes c, habitaciones h, hab_camas ca WHERE CAST (int_feceg AS DATE)= CAST(getdate() AS DATE) AND i.oi_numero = o.oi_numero AND c.cli_codigo = o.cli_codigo AND ca.hab_codigo = i.hab_codigo AND ca.hbc_codigo = i.hbc_codigo AND h.hab_codigo = ca.hab_codigo"; $sql = "SELECT i.oi_numero ,FORMAT ( i.int_fecing, 'dd/MM/yyyy HH:mm' ) as int_fecing ,(cast(datediff(dd,c.cli_fecnto,GETDATE()) / 365.25 as int)) as edad ,i.hab_codigo ,s.ser_denom ,h.hab_denom ,i.hbc_codigo ,ca.hbc_denom ,o.cli_codigo ,o.obs_codigo ,ob.obs_denom ,o.obsp_cod ,p.obsp_denom ,o.med_codigo ,m.med_nombre ,c.cli_dni ,c.cli_nombre ,c.cli_sexo ,c.cli_carnet ,o.oi_diagnos ,o.oi_respnom ,o.oi_resptel FROM internacion i, orden_internacion o, clientes c, habitaciones h, hab_camas ca, tbl_internado_servicio s, obrasoc ob, obsplan p, medicos m WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo AND o.obs_codigo = p.obs_codigo AND o.obsp_cod = p.obsp_cod AND o.med_codigo = m.med_codigo AND i.hab_codigo = ca.hab_codigo AND i.hbc_codigo = ca.hbc_codigo AND CAST(i.int_feceg as date) = CAST(getdate() as date) AND s.ser_codigo = ".$idServicio." {TURNO} order by 2 desc"; $internados_m_d = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_m, $sql) ); if ( $internados_m_d ){ $internados_m_d_result = $GLOBALS['dbSQL']->getAll(); } $internados_t_d = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_t, $sql) ); if ( $internados_t_d ){ $internados_t_d_result = $GLOBALS['dbSQL']->getAll(); } $internados_n_d = $GLOBALS['dbSQL']->Query( str_replace("{TURNO}", $turno_n, $sql) ); if ( $internados_n_d ){ $internados_n_d_result = $GLOBALS['dbSQL']->getAll(); } $resultado = array( "m" => array("total"=>(count($internados_m_d_result)>0?count($internados_m_d_result):0), "detalle"=> $internados_m_d_result) ,"t" => array("total"=>(count($internados_t_d_result)>0?count($internados_m_d_result):0), "detalle"=> $internados_t_d_result) ,"n" => array("total"=>(count($internados_n_d_result)>0?count($internados_m_d_result):0), "detalle"=> $internados_n_d_result) ); } return $resultado; } function getEstadisticasTurnos() { $turnos = array( "asistencia" => false ,"borrados" => false ,"anulados" => false ,"especialidad" => false ,"turusuarios" => false ,"fecha" => false ); $rango = false; if( isset($_REQUEST["rf"]) ) { $rango = explode(";",$_REQUEST['rf']); //print_r($rango);die; // $rango[0] = date("d/m/Y",strtotime($rango[0])); // $rango[1] = date("d/m/Y",strtotime($rango[1])); $rango[0] = date("Y-m-d",strtotime(substr($rango[0],6,4)."-".substr($rango[0],3,2)."-".substr($rango[0],0,2))); $rango[1] = date("Y-m-d",strtotime(substr($rango[1],6,4)."-".substr($rango[1],3,2)."-".substr($rango[1],0,2))); //print_r($rango);die; // $dateini = date("Y-m-d",strtotime($rango[0])); // $dateend = date("Y-m-d",strtotime($rango[1])); $dateini = $rango[0]; $dateend = $rango[1]; $fecha = "CAST(t.tur_fecha as date) BETWEEN CAST('".$dateini."' as date) AND CAST('".$dateend."' as date)"; $fechaAsis = "CAST(tasis.tur_fecha as date) BETWEEN CAST('".$dateini."' as date) AND CAST('".$dateend."' as date)"; $fechaAuse = "CAST(tause.tur_fecha as date) BETWEEN CAST('".$dateini."' as date) AND CAST('".$dateend."' as date)"; $fechaCancel = "CAST(tcance.tur_fecha as date) BETWEEN CAST('".$dateini."' as date) AND CAST('".$dateend."' as date)"; } else { $fecha = 'CAST(t.tur_fecha as date) = CAST(getdate() as date)'; $fechaAsis = "CAST(tasis.tur_fecha as date) = CAST(getdate() as date)"; $fechaAuse = "CAST(tause.tur_fecha as date) = CAST(getdate() as date)"; $fechaCancel = "CAST(tcance.tur_fecha as date) = CAST(getdate() as date)"; } //------------------------------------------ // Los turnos de hoy segun asistencia //------------------------------------------ /*$sql = "SELECT t.med_codigo, md.med_nombre, SUM(CASE WHEN ISNULL(tur_asiste,0) = 0 THEN 1 ELSE 0 END) AS ausente, SUM(CASE WHEN ISNULL(tur_asiste,0) = 1 THEN 1 ELSE 0 END) AS presente FROM v_turnosvigentes t , obrasoc o, medicos md, clientes c WHERE CAST(t.tur_fecha as date) = CAST(getdate() as date) AND t.obs_codigo = o.obs_Codigo AND t.med_codigo = md.med_codigo AND t.cli_codigo = c.cli_codigo AND ISNULL(c.cli_admin,0) != 1 GROUP BY t.med_codigo, md.med_nombre";*/ $sql = "SELECT t.med_codigo, md.med_nombre, SUM(CASE WHEN ISNULL(tur_asiste,0) = 0 THEN 1 ELSE 0 END) AS ausente, SUM(CASE WHEN ISNULL(tur_asiste,0) = 1 THEN 1 ELSE 0 END) AS presente FROM v_turnosvigentes t , obrasoc o, medicos md, clientes c WHERE ".$fecha." AND t.obs_codigo = o.obs_Codigo AND t.med_codigo = md.med_codigo AND t.cli_codigo = c.cli_codigo AND ISNULL(c.cli_admin,0) != 1 GROUP BY t.med_codigo, md.med_nombre"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $turnos["asistencia"] = $GLOBALS['dbSQL']->getAll(); for($i=0;$iQuery($sql); if ( $resultado ) { $turnos["borrados"] = $GLOBALS['dbSQL']->getAll(); } //------------------------------------------ // Turnos anulados hoy //------------------------------------------ $sql = "SELECT t.med_codigo, md.med_nombre, COUNT(1) as tanulados FROM turnos t, obrasoc o, medicos md, clientes c WHERE ".$fecha." AND t.cli_codigo = 1 AND t.obs_codigo = o.obs_Codigo AND t.med_codigo = md.med_codigo AND t.cli_codigo = c.cli_codigo GROUP BY t.med_codigo, md.med_nombre"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $turnos["anulados"] = $GLOBALS['dbSQL']->getAll(); } //------------------------------------------ // Turnos hoy por especialidad //------------------------------------------ $sql = "SELECT esp_denom, COUNT(tur_numero) as tespecialidad FROM turnos t, medicos m, especial e WHERE ".$fecha." AND t.med_codigo = m.med_codigo AND e.esp_codigo = m.esp_codigo GROUP BY esp_denom"; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $turnos["especialidad"] = $GLOBALS['dbSQL']->getAll(); $total=0; for($i=0;$iQuery($sql); if ( $resultado ) { $turnos["turusuarios"] = $GLOBALS['dbSQL']->getAll(); $total=0; for($i=0;$iQuery($sql); if ( $resultado ) { $turnos["asisturusuarios"] = $GLOBALS['dbSQL']->getAll(); /*$total=0; for($i=0;$iQuery($sql); if ( $servicios ) { //return false; $servicios = $GLOBALS['dbSQL']->getAll(); //print_r($servicios);die; /*$sql = "SELECT h.ser_codigo as cod_servicio, s.ser_denom, ob.obs_denom, count(*) as totalCamasOcupadas FROM internacion i, orden_internacion o, clientes c, habitaciones h, tbl_internado_servicio s, obrasoc ob WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo ".($rango_flag_w?' AND int_feceg IS NULL ':'')." ". $turno_w ." group by h.ser_codigo,s.ser_denom,ob.obs_denom order by 2";*/ if( !$flagDetalle ) { //Camas ocupadas x obs social y x servicios $sql = "SELECT h.ser_codigo as cod_servicio, s.ser_denom, ob.obs_denom, count(*) as totalCamasOcupadas FROM internacion i, orden_internacion o, clientes c, habitaciones h, tbl_internado_servicio s, obrasoc ob WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo AND int_feceg IS NULL ". $turno_w ." group by h.ser_codigo,s.ser_denom,ob.obs_denom order by 4 desc"; //print_r($sql);die; $internados = $GLOBALS['dbSQL']->Query($sql); if ( $internados ) { $internados = $GLOBALS['dbSQL']->getAll(); } //print_r($internados);die; //Preparar el resultado /* ser_codigo ser_denom TotalCamas ---------- -------------- ---------- 1 GUARDIA 2 2 SHOCK ROOM 1 3 UTI 8 4 UCO 8 5 PISO 101 A 111 30 6 PISO 100 A 111 2 ------------ -------------- ------------------------------------ ------------------ cod_servicio ser_denom obs_denom totalCamasOcupadas ------------ -------------- ------------------------------------ ------------------ 3 UTI PAMI 3 4 UCO APROSS 2 4 UCO PAMI 5 5 PISO 101 A 111 APROSS 3 5 PISO 101 A 111 PAMI 3 5 PISO 101 A 111 PAMI- MODULO MENSUAL REHABILITACION 18 */ $sql = "SELECT TT.cod_servicio, SUM(totalCamasOcupadas) as totalOcupadas FROM ( SELECT h.ser_codigo as cod_servicio, s.ser_denom, ob.obs_denom, count(*) as totalCamasOcupadas FROM internacion i, orden_internacion o, clientes c, habitaciones h, tbl_internado_servicio s, obrasoc ob WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo AND int_feceg IS NULL GROUP BY h.ser_codigo,s.ser_denom,ob.obs_denom )AS TT GROUP BY TT.cod_servicio ORDER BY 2 DESC"; //print_r($sql);die; $camasSort = $GLOBALS['dbSQL']->Query($sql); if ( $camasSort ) { //Ordenar $camasSort = $GLOBALS['dbSQL']->getAll(); /* Array ( [0] => Array ( [cod_servicio] => 6 [totalOcupadas] => 1 ) [1] => Array ( [cod_servicio] => 3 [totalOcupadas] => 7 ) [2] => Array ( [cod_servicio] => 4 [totalOcupadas] => 7 ) [3] => Array ( [cod_servicio] => 5 [totalOcupadas] => 23 ) ) */ } //print_r($camasSort);die; //print_r($servicios);die; /* Array ( [0] => Array ( [ser_codigo] => 1 [ser_denom] => GUARDIA [TotalCamas] => 2 ) [1] => Array ( [ser_codigo] => 2 [ser_denom] => SHOCK ROOM [TotalCamas] => 1 ) [2] => Array ( [ser_codigo] => 3 [ser_denom] => UTI [TotalCamas] => 8 ) [3] => Array ( [ser_codigo] => 4 [ser_denom] => UCO [TotalCamas] => 8 ) [4] => Array ( [ser_codigo] => 5 [ser_denom] => PISO 101 A 111 [TotalCamas] => 30 ) [5] => Array ( [ser_codigo] => 6 [ser_denom] => PISO 100 A 111 [TotalCamas] => 2 ) ) ------------ ------------- cod_servicio totalOcupadas ------------ ------------- 5 23 3 7 4 7 6 1 */ /* $serviciosOrd = array(); for($k=0;$k Array ( [ser_codigo] => 1 [ser_denom] => GUARDIA [TotalCamas] => 2 ) [1] => Array ( [ser_codigo] => 2 [ser_denom] => SHOCK ROOM [TotalCamas] => 1 ) [2] => Array ( [ser_codigo] => 3 [ser_denom] => UTI [TotalCamas] => 8 ) [3] => Array ( [ser_codigo] => 4 [ser_denom] => UCO [TotalCamas] => 8 ) [4] => Array ( [ser_codigo] => 5 [ser_denom] => PISO 101 A 111 [TotalCamas] => 30 ) [5] => Array ( [ser_codigo] => 6 [ser_denom] => PISO 100 A 111 [TotalCamas] => 2 ) ) ----------Array ( [0] => Array ( [ser_codigo] => 5 [ser_denom] => PISO 101 A 111 [TotalCamas] => 30 ) [1] => Array ( [ser_codigo] => 3 [ser_denom] => UTI [TotalCamas] => 8 ) [2] => Array ( [ser_codigo] => 4 [ser_denom] => UCO [TotalCamas] => 8 ) [3] => Array ( [ser_codigo] => 6 [ser_denom] => PISO 100 A 111 [TotalCamas] => 2 ) ) */ $ocupacion = array(); $servicios_ = array(); for($i=0;$i trim($internados[$j]['obs_denom']) ,'total' => $internados[$j]['totalCamasOcupadas'])); } } $porcentajeOcupacion = (($totalocupadas*100)/$servicios[$i]['TotalCamas']); $ocupacion[$servicios[$i]['ser_denom']] = array( 'total' => $servicios[$i]['TotalCamas'] ,'ocupadas' => $totalocupadas ,'detallexobs' => $detallexobs ,'avgocupacion' => round($porcentajeOcupacion,2) ,'idservicio' => $servicios[$i]['ser_codigo'] ,'internadoshoy'=> getCensoXTurno($servicios[$i]['ser_codigo']) ,'altashoy' => getCensoXTurno($servicios[$i]['ser_codigo'],true) ); $index = array_push($servicios_,$servicios[$i]['ser_denom']); } //print_r($ocupacion);die; /* Array ( [GUARDIA] => Array ( [total] => 2 [ocupadas] => 0 [detallexobs] => Array ( ) [avgocupacion] => 0 [idservicio] => 1 ) [SHOCK ROOM] => Array ( [total] => 1 [ocupadas] => 0 [detallexobs] => Array ( ) [avgocupacion] => 0 [idservicio] => 2 ) [UTI] => Array ( [total] => 8 [ocupadas] => 7 [detallexobs] => Array ( [0] => Array ( [obs] => PAMI [total] => 7 ) ) [avgocupacion] => 87.5 [idservicio] => 3 ) [UCO] => Array ( [total] => 8 [ocupadas] => 7 [detallexobs] => Array ( [0] => Array ( [obs] => PAMI [total] => 6 ) [1] => Array ( [obs] => PAMI- MODULO MENSUAL REHABILITACION [total] => 1 ) ) [avgocupacion] => 87.5 [idservicio] => 4 ) [PISO 101 A 111] => Array ( [total] => 30 [ocupadas] => 23 [detallexobs] => Array ( [0] => Array ( [obs] => PAMI- MODULO MENSUAL REHABILITACION [total] => 15 ) [1] => Array ( [obs] => PAMI [total] => 4 ) [2] => Array ( [obs] => APROSS [total] => 4 ) ) [avgocupacion] => 76.666666666667 [idservicio] => 5 ) [PISO 100 A 111] => Array ( [total] => 2 [ocupadas] => 1 [detallexobs] => Array ( [0] => Array ( [obs] => PAMI [total] => 1 ) ) [avgocupacion] => 50 [idservicio] => 6 ) ) */ $reporte = array( 'servicios' => $servicios ,'censo' => $ocupacion ,'fecha' => date("d/m/Y H:i:s") ); //print_r($reporte);die; } else { $servicio = ''; if( $idServicio ) { $servicio = ' AND s.ser_codigo = ' . $idServicio; } //,CONVERT(varchar, i.int_fecing,103) as int_fecing $sql = "SELECT i.oi_numero ,FORMAT ( i.int_fecing, 'dd/MM/yyyy HH:mm' ) as int_fecing ,(cast(datediff(dd,c.cli_fecnto,GETDATE()) / 365.25 as int)) as edad ,i.hab_codigo ,s.ser_denom ,h.hab_denom ,i.hbc_codigo ,ca.hbc_denom ,o.cli_codigo ,o.obs_codigo ,ob.obs_denom ,o.obsp_cod ,p.obsp_denom ,o.med_codigo ,m.med_nombre ,c.cli_dni ,c.cli_nombre ,c.cli_sexo ,c.cli_carnet ,o.oi_diagnos ,o.oi_respnom ,o.oi_resptel FROM internacion i, orden_internacion o, clientes c, habitaciones h, hab_camas ca, tbl_internado_servicio s, obrasoc ob, obsplan p, medicos m WHERE o.oi_numero = i.oi_numero AND c.cli_codigo = o.cli_codigo AND h.hab_codigo = i.hab_codigo AND s.ser_codigo = h.ser_codigo AND ob.obs_codigo = o.obs_codigo AND o.obs_codigo = p.obs_codigo AND o.obsp_cod = p.obsp_cod AND o.med_codigo = m.med_codigo AND i.hab_codigo = ca.hab_codigo AND i.hbc_codigo = ca.hbc_codigo AND int_feceg IS NULL ". $turno_w ." ". $servicio ." order by h.hab_denom, ca.hbc_denom"; //print_r($sql);die; $internados = $GLOBALS['dbSQL']->Query($sql); if ( $internados ) { $internados = $GLOBALS['dbSQL']->getAll(); } $reporte = array( 'detalle' => $internados ); } if(count($reporte)==0){return true;} return $reporte; } return false; } function getCensoTurno(&$resultInfo) { $turno = 1; if( isset($_REQUEST["turno"]) && !empty($_REQUEST["turno"]) && !is_null($_REQUEST["turno"]) && ( $_REQUEST["turno"]=='m' || $_REQUEST["turno"]=='t' || $_REQUEST["turno"]=='n' ) ) { switch($_REQUEST["turno"]) { case 'm':{$turno = 2;} break; case 't':{$turno = 3;} break; case 'n':{$turno = 4;} break; } } $rango = false; if( isset($_REQUEST["desde"]) && !empty($_REQUEST["desde"]) && !is_null($_REQUEST["desde"]) && isset($_REQUEST["hasta"]) && !empty($_REQUEST["hasta"]) && !is_null($_REQUEST["hasta"]) ) { $rango = array($_REQUEST["desde"],$_REQUEST["hasta"]); } $detalle = false; if( isset($_REQUEST["detalle"]) && !empty($_REQUEST["detalle"]) && !is_null($_REQUEST["detalle"]) ) { $detalle = true; } $servicio = false; if( isset($_REQUEST["serv"]) && !empty($_REQUEST["serv"]) && !is_null($_REQUEST["serv"]) ) { $servicio = $_REQUEST["serv"]; } $resultado = getCenso($turno,$rango,$detalle,$servicio); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"info" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el censo del turno mañana"; } } function getEstadisticas(&$resultInfo) { $resultado = getEstadisticasTurnos(); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"info" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar las estadisticas"; } } //Retorna el listado de Usuarios: Nombre, Foto (si tuviese) function getUserList() { //Usuarios activos /* $sql = "SELECT [emp_codigo] ,[emp_nombre] ,[emp_cargo] ,[emp_email] FROM empleado WHERE emp_activo = 1 order by 2";*/ /* ,t1.[emp_email] ,t1.[emp_cargo] ,t2.[emp_foto] (CASE WHEN t2.[emp_foto] IS NULL THEN '' ELSE t2.[emp_foto] END) AS emp_foto] */ /* $sql = "SELECT t1.[emp_codigo] ,t1.[emp_nombre] ,t1.[emp_email] ,t1.[emp_cargo] FROM dbo.[empleado] as t1 LEFT JOIN dbo.[empleado_foto] as t2 ON t1.[emp_codigo] = t2.[emp_codigo] WHERE t1.[emp_activo] = 1 ORDER BY t1.[emp_nombre]";*/ $usuarios_lts = false; $sql = "SELECT t1.[emp_codigo] ,rtrim(ltrim(t1.[emp_nombre])) as emp_nombre ,t1.[emp_email] ,t1.[emp_cargo] FROM dbo.[empleado] as t1 WHERE t1.[emp_activo] = 1 ORDER BY 2"; //print_r($sql);die; $usuarios = $GLOBALS['dbSQL']->Query($sql); if ( $usuarios ) { $usuarios_lts = $GLOBALS['dbSQL']->getAll(); //print_r($usuarios);die(" <<<<< "); //print_r($usuarios_lts);print_r("\n");print_r("--------------------");print_r("\n"); if( $usuarios_lts && count($usuarios_lts) > 0 ) { for($j=0;$jQuery($sql); if ( $usrfotos ) { $usrfotos = $GLOBALS['dbSQL']->getAll(); //print_r($usrfotos);die(" <<<<< "); //die("kkkkkkkk"); for($i=0;$i count($resultado) ,"users" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de usuarios"; } } //Retorna el listado de Grupos: Nombre function getGroupsList($flagActivos=false) { $where = ""; if( $flagActivos ) { $where = " WHERE avigru_estado = 1 "; } //Grupos $sql = "SELECT [avigru_id] ,rtrim(ltrim([avigru_nombre])) as avigru_nombre ,[avigru_estado] FROM avisos_grupos ".$where." order by 2"; //print_r($sql);die; $grupos = $GLOBALS['dbSQL']->Query($sql); if ( $grupos ) { $grupos = $GLOBALS['dbSQL']->getAll(); } return $grupos; } //Retorna el listado de grupos function getListadoGrupos(&$resultInfo) { $flagSoloActivos = false; if( isset($_REQUEST["gsa"]) && !empty($_REQUEST["gsa"]) && !is_null($_REQUEST["gsa"]) ) { $flagSoloActivos = true; } $resultado = getGroupsList($flagSoloActivos); if( $resultado ) { //Listar de Usuarios $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"groups" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de grupos"; } } //Retorna el listado de usuarios de un Grupo function getUsersByGroup($idGrupo) { $where = " WHERE t0.avigru_id = " . $idGrupo; //Ususarios del GRupo $sql = "SELECT t0.[avigrupar_id] ,t0.[avigru_id] ,t0.[usu_codigo] ,t1.[emp_nombre] ,t1.[emp_email] ,t1.[emp_cargo] ,t2.[emp_foto] FROM dbo.[avisos_grupos_participantes] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_codigo] = t1.[emp_codigo] LEFT JOIN dbo.[empleado_foto] as t2 ON t2.[emp_codigo] = t1.[emp_codigo] ".$where." order by 4"; //print_r($sql);die; $usuarios = $GLOBALS['dbSQL']->Query($sql); if ( $usuarios ) { $usuarios = $GLOBALS['dbSQL']->getAll(); } return $usuarios; } //Retorna informacion de un grupo function getGroupInfo(&$grupoInfo) { $id = $grupoInfo['idGrupo']; $where = " WHERE [avigru_id] = " . $grupoInfo['idGrupo']; //Grupos $sql = "SELECT [avigru_id] ,[avigru_nombre] ,[avigru_estado] FROM avisos_grupos ".$where; //print_r($sql);die; $grupo = $GLOBALS['dbSQL']->Query($sql); //$grupoInfo = false; if ( $grupo ) { // $grupoInfo = $GLOBALS['dbSQL']->getOne(); // $grupoInfo['idGrupo'] = $id; // //obtener los usuarios // $grupoInfo['ulst'] = getUsersByGroup( $grupoInfo['idGrupo'] ); // return $grupoInfo; $grupoInfo = $GLOBALS['dbSQL']->getAll(); $grupoInfo[0]['idGrupo'] = $id; //obtener los usuarios $grupoInfo[0]['ulst'] = getUsersByGroup( $grupoInfo[0]['idGrupo'] ); return $grupoInfo[0]; } else { return false; } } //Retorna informacion de un grupo selecionado function getInfoGrupo(&$resultInfo) { if( isset($_REQUEST["gid"]) && !empty($_REQUEST["gid"]) && !is_null($_REQUEST["gid"]) && trim($_REQUEST["gid"])!="" ) { $grupoInfo['idGrupo'] = $_REQUEST["gid"]; $resultado = getGroupInfo( $grupoInfo ); if( $resultado ) { //Info del grupo $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"group" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al consultar el grupo"; } } //Asociar usuarios a un grupo function insertUsersToGroup($grupoInfo,$flagRemove=false) { //Eliminar participantes del grupo if( $flagRemove ) { $sql = 'DELETE FROM [avisos_grupos_participantes] WHERE [avigru_id] = ' . $grupoInfo['idGrupo']; $rsD = $GLOBALS['dbSQL']->Query($sql,true); } else { $rsD = true; } if ( $rsD ) { $values = ''; for($i=0;$iQuery($sql,true); if ( $rsI ) { return true; } } return false; } //Crea un grupo function insertGroup(&$grupoInfo) { //Insertar nuevo grupo $sql = 'INSERT INTO [avisos_grupos] ( [avigru_nombre] ,[avigru_estado] ) VALUES ( '. "'".$grupoInfo["gn"] ."'".' ,'. $grupoInfo["gs"].' )'; $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { $idGrupo = $GLOBALS['dbSQL']->getLastId('avisos_grupos','avigru_id'); if( $idGrupo ) { $grupoInfo['idGrupo'] = $idGrupo; if( $grupoInfo['ulst'] ) { $result = insertUsersToGroup( $grupoInfo ); if( !$result ) { return 2; } } } return true; } return false; } function crearGrupoMensaje(&$resultInfo) { if( isset($_REQUEST["gn"]) && !empty($_REQUEST["gn"]) && !is_null($_REQUEST["gn"]) && trim($_REQUEST["gn"])!="" ) { $grupoInfo = array(); $grupoInfo["gn"] = $_REQUEST["gn"]; $grupoInfo["gs"] = '1'; $grupoInfo["ulst"] = false; $grupoInfo['idGrupo'] = false; if( isset($_REQUEST["gs"]) && !empty($_REQUEST["gs"]) && !is_null($_REQUEST["gs"]) && trim($_REQUEST["gs"]) !="" ) { $grupoInfo["gs"] = ($_REQUEST["gs"]==='0'?'0':'1'); } if( isset($_REQUEST["ulst"]) && !empty($_REQUEST["ulst"]) && !is_null($_REQUEST["ulst"]) && trim($_REQUEST["ulst"]) !="" ) { $pos = strpos($_REQUEST["ulst"],";"); if( $pos!==false ) { $grupoInfo["ulst"] = explode(";",$_REQUEST["ulst"]); } else { $grupoInfo["ulst"] = array($_REQUEST["ulst"]); } } $resultado = insertGroup($grupoInfo); if( $resultado!==false ) { if( $resultado === true ) { $resultInfo['code'] = 0; $resultInfo['data'] = $grupoInfo['idGrupo']; } elseif( $resultado === 1 ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El nombre de Grupo ya existe"; } elseif( $resultado === 2 ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Error al registrar los usuarios del grupo"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al registrar el Grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al registrar el grupo"; } } //Gestionar AB de Participantes del Grupo function updateGrupo($grupoInfo) { //Editar un grupo $sql = 'UPDATE dbo.[avisos_grupos] set [avigru_nombre] = \''.$grupoInfo['gn'].'\' ,[avigru_estado] = '.$grupoInfo['gs'].' WHERE [avigru_id] = '.$grupoInfo['idGrupo']; //print_r($sql);die(' <<<<< '); $rsI = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsI ) { if( $grupoInfo['ulst'] ) { $result = insertUsersToGroup( $grupoInfo, true ); if( !$result ) { return 2; } } return true; } return false; } //Gestionar AB de Participantes del Grupo function gestionarGrupo(&$resultInfo) { // Cod/Id grupo => gid // Estado: Activo/Inactivo => gs // Listado de usuarios (U1;U2;..;Un) => ulst if( isset($_REQUEST["gid"]) && !empty($_REQUEST["gid"]) && !is_null($_REQUEST["gid"]) && trim($_REQUEST["gid"])!="" && isset($_REQUEST["gs"]) && !empty($_REQUEST["gs"]) && !is_null($_REQUEST["gs"]) && trim($_REQUEST["gs"])!="" && isset($_REQUEST["gs"]) && !empty($_REQUEST["gs"]) && !is_null($_REQUEST["gs"]) && trim($_REQUEST["gs"])!="" ) { $grupoInfo = array(); $grupoInfo['idGrupo'] = $_REQUEST["gid"]; $grupoInfo["gn"] = $_REQUEST["gn"]; $grupoInfo["gs"] = ($_REQUEST["gs"]==='0'?'0':'1'); $grupoInfo["ulst"] = false; if( isset($_REQUEST["ulst"]) && !empty($_REQUEST["ulst"]) && !is_null($_REQUEST["ulst"]) && trim($_REQUEST["ulst"]) !="" ) { $pos = strpos($_REQUEST["ulst"],";"); if( $pos!==false ) { $grupoInfo["ulst"] = explode(";",$_REQUEST["ulst"]); } else { $grupoInfo["ulst"] = array($_REQUEST["ulst"]); } } $resultado = updateGrupo($grupoInfo); if( $resultado!==false ) { if( $resultado === true ) { $resultInfo['code'] = 0; $resultInfo['data'] = $grupoInfo['idGrupo']; } elseif( $resultado === 1 ) { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El nombre de Grupo ya existe"; } elseif( $resultado === 2 ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Error al modificar los usuarios del grupo"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al modificar el Grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al modificar el grupo"; } } //Retorna informacion de un grupo function deleteGroup($grupoInfo) { $where = " WHERE [avigru_id] = " . $grupoInfo['idGrupo']; //Grupos $sql1 = "DELETE FROM dbo.[avisos_grupos_participantes] ".$where; $sql2 = "DELETE FROM dbo.[avisos_grupos] ".$where; $r1 = $GLOBALS['dbSQL']->Query($sql1,true); $r2 = $GLOBALS['dbSQL']->Query($sql2,true); //$grupoInfo = false; if ( $r1 && $r2 ) { return true; } else { return false; } } //Eliminar un grupo function eliminarGrupo(&$resultInfo) { if( isset($_REQUEST["gid"]) && !empty($_REQUEST["gid"]) && !is_null($_REQUEST["gid"]) && trim($_REQUEST["gid"])!="" ) { $grupoInfo['idGrupo'] = $_REQUEST["gid"]; $resultado = deleteGroup( $grupoInfo ); if( $resultado ) { //Info del grupo $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"group" => $grupoInfo['idGrupo'] ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al eliminar el grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al eliminar el grupo"; } } function getUsersByNodo($idMensaje) { $nodo = false; $usuariosLst = false; //Buscar mensaje padre, para obtener el nodo $sql = "SELECT * FROM dbo.avisos WHERE avi_numero = " . $idMensaje; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $aviso = $GLOBALS['dbSQL']->getOne(); if( !is_null($aviso['avi_nodo']) && trim($aviso['avi_nodo'])!="" ) { $nodo = $aviso['avi_nodo']; $sql = "SELECT usu_remite FROM dbo.avisos_auditoria WHERE avi_nodo = '" . $aviso['avi_nodo'] . "'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { // $remitente = $GLOBALS['dbSQL']->getOne(); // //El Remitente original, ahora destinatario // $usuariosLst = $remitente['usu_remite']; $remitente = $GLOBALS['dbSQL']->getAll(); //El Remitente original, ahora destinatario $usuariosLst = $remitente[0]['usu_remite']; } } } return array($usuariosLst, $nodo); } function getUsersByNodo_old($idMensaje) { $nodo = false; $usuariosLst = array(); //Buscar mensaje padre, para obtener el nodo $sql = "SELECT * FROM dbo.avisos WHERE avi_numero = " . $idMensaje; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $aviso = $GLOBALS['dbSQL']->getOne(); if( !is_null($aviso['avi_nodo']) && trim($aviso['avi_nodo'])!="" ) { $nodo = $aviso['avi_nodo']; $sql = "SELECT DISTINCT usu_codigo FROM dbo.avisos WHERE avi_numero!= " . $idMensaje . " AND avi_nodo = '" . $aviso['avi_nodo'] . "'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $usuarios = $GLOBALS['dbSQL']->getAll(); for($i=0;$i false ,'avigru_id' => false ,'usu_codigo' => $usuarios[$i] ,'emp_nombre' => false ); } } } //El Remitente original, ahora destinatario $usuariosLst[count($usuariosLst)] = array( 'avigrupar_id' => false ,'avigru_id' => false ,'usu_codigo' => $aviso['usu_remite'] ,'emp_nombre' => false ); } return array($usuariosLst, $nodo); } //Actualizar flag de Email Respondido function actualizarEmailRespondido( $idMsg ) { $sql = "UPDATE dbo.avisos SET avi_repondido = 1 WHERE avi_numero = " . $idMsg; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function guardarAuditoria($remitente,$nodo,$lstGrupos,$lstUsuarios,$titulo,$msg) { //Insertar auditoria de avisos $sql = 'INSERT INTO dbo.[avisos_auditoria] ( [avi_nodo] ,[usu_remite] ,[aviau_lst_grupos] ,[aviau_usuarios] ,[aviau_titulo] ,[aviau_mensaje] ) VALUES ( \'' . $nodo .'\' , ' . $remitente.' ,\'' . $lstGrupos.'\' ,\'' . $lstUsuarios.'\' ,\'' . $titulo.'\' ,\'' . $msg.'\' )'; $resultado = $GLOBALS['dbSQL']->Query($sql,true); if ( $resultado ) { return true; } return false; } //Enviar Mensaje a los participantes del Grupo function sendAviso( $avisoInfo ) { $continue = true; $nodo = mb_strtoupper(randomText(10)); $nodopadre = ''; // 1. Obtener el id nuevo de avisos $sql = "SELECT (MAX(ISNULL(avi_numero,0)) + 1) as AvisoId FROM avisos"; $idAvisos = 0; $flagIsAviso = 0; //Aviso=1 (Mensaje Grupal) / Mensaje=0 (Mensaje Individual) $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; // $idAviso = $GLOBALS['dbSQL']->getOne(); // $idAvisos = doubleval($idAviso['AvisoId']); $idAviso = $GLOBALS['dbSQL']->getAll(); $idAvisos = doubleval($idAviso[0]['AvisoId']); } else { //Error: no se pudo obtener el numerador de los avisos $continue = false; } // 2. Obtener el listado de participantes if( $continue ) { $users = array(); if( !isset($avisoInfo['idmsg']) ) { if( !isset($avisoInfo["lstGrupos"]) ) { if( $avisoInfo['idGrupo'] )//<==TODO: ACA JAMAS VA A ENTRAR!!! { $users = getUsersByGroup($avisoInfo['idGrupo']); } } else { for($i=0;$i false ,'avigru_id' => false ,'usu_codigo' => $avisoInfo["lstUsuarios"][$i] ,'emp_nombre' => false ); } } } else { //Buscar los integrantes //list($users,$nodopadre) = getUsersByNodo($avisoInfo['idmsg']); list($destinatario,$nodopadre) = getUsersByNodo($avisoInfo['idmsg']); if( !$nodopadre ){ $nodopadre = '';} else { $nodopadre = mb_strtoupper($nodopadre);} // if( !$users || // count($users)<=0 // ) if( !$destinatario ) { //Error: No se encontraron otros usuarios $continue = false; } else { // $u = ''; // for($z=0;$z<(count($users)-1);$z++) // { // if($u == '') // { // $u=$users[$z]['usu_codigo']['usu_codigo']; // } // else // { // $u.=','.$users[$z]['usu_codigo']['usu_codigo']; // } // } // $avisoInfo['auditoria']['u'] = $u; $avisoInfo['auditoria']['u'] = $destinatario; } } if( $continue ) { if( $avisoInfo['idGrupo'] ) { $flagIsAviso = 1; //Es un mensaje personalizado } if( !isset($avisoInfo['idmsg']) ) { // 3. Para cada participante del grupo insertar el aviso $values = ''; $userlst= array(); $userlstEmail=''; //print_r($users);die(' <<<<<< '); for($i=0;$i 0 && array_key_exists($users[$i]['usu_codigo'], $userlst) ) { $flagSend = false; } else { $userlst[$users[$i]['usu_codigo']] = 0; } if( $flagSend ) { $sep = ','; if( $values == '' ) { $sep = ''; } if( $userlstEmail=='' ) { $userlstEmail.=$users[$i]['usu_codigo']; } else { $userlstEmail.=','.$users[$i]['usu_codigo']; } $item = '( ' . $idAvisos .' ,\'' . $avisoInfo['tit'] .'\' ,\'' . $avisoInfo['msg'].'\' ,' . $users[$i]['usu_codigo'].' , GETDATE() ,0 ,' . $avisoInfo['idUsuario'].' ,NULL ,'. $flagIsAviso.' ,\'' . $nodo .'\' ,\'' . $nodopadre .'\' )'; $values.= ' ' . $sep . $item; $idAvisos++; } } } else { // 3. Insertar el aviso $values = ''; $userlst= array(); $userlstEmail=''; //print_r($users);die(' <<<<<< '); $userlstEmail = $destinatario; $item = '( ' . $idAvisos .' ,\'' . $avisoInfo['tit'] .'\' ,\'' . $avisoInfo['msg'].'\' ,' . $destinatario.' , GETDATE() ,0 ,' . $avisoInfo['idUsuario'].' ,NULL ,'. $flagIsAviso.' ,\'' . $nodo .'\' ,\'' . $nodopadre .'\' )'; $values = $item; $idAvisos++; } //print_r($values);die(' <<<<<< '); //Insertar los nuevos avisos en estado NO LEIDO $sql = 'INSERT INTO dbo.[avisos] ( [avi_numero] ,[avi_titulo] ,[avi_denom] ,[usu_codigo] ,[avi_fecha] ,[avi_leido] ,[usu_remite] ,[avi_prior] ,[avi_es_grupal] ,[avi_nodo] ,[avi_nodo_padre] ) VALUES ' . $values; $resultado = $GLOBALS['dbSQL']->Query($sql,true); if ( $resultado ) { //Guardar Tabla de auditoria $r = guardarAuditoria( $avisoInfo['idUsuario'], $nodo, $avisoInfo['auditoria']['g'], $avisoInfo['auditoria']['u'], $avisoInfo['tit'], $avisoInfo['msg'] ); //Actualizar Respuesta si corresponde if( isset($avisoInfo['idmsg']) ) { $r = actualizarEmailRespondido( $avisoInfo['idmsg'] ); } //Copia Email // if( false ) if( $avisoInfo['email'] ) { // $r = enviarAvisoEmail( $userlst ); $r = enviarAvisoEmail( $userlstEmail, $avisoInfo ); } return true; } } } return false; } function getEmail_Aviso_HTMLWs() { //*********************************************************** // HTML //*********************************************************** $msjHTML ='

Aviso Recibido

Remitente: {REMITENTE}

Fecha: {FECHA}

{TITULO}

Email: {EMAILREM}
  {MENSAJE}
 
[ ATENCIÓN: Este email fue generado Automáticamente por el Sistema ]
 
Generado por: LandaMed Software de Gestión Médica - Desarrollado por Landaware I+D
'; return $msjHTML; } function enviarAvisoEmail( $userlst, $avisoInfo ) { //$body = getEmail_Aviso_HTMLWs(); //Datos del remitente $sql = "SELECT emp_codigo, emp_nombre, emp_email FROM dbo.empleado WHERE emp_codigo = ". $avisoInfo['idUsuario']; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { //$remitente = $GLOBALS['dbSQL']->getOne(); $remitente = $GLOBALS['dbSQL']->getAll(); $datos = array(); $datos['info'] = array(); $datos['info'][0] = $avisoInfo['tit']; $datos['info'][1] = $avisoInfo['msg']; $datos['info'][2] = $remitente[0]['emp_nombre']; $datos['info'][3] = date("d/m/Y H:i:s"); $datos['info'][4] = $remitente[0]['emp_email']; // $body = getReplaceData( TYPE_EMAIL_AVISO, $body, $datos); $subject = "Aviso LandaMed - " . $avisoInfo['tit']; $from = "turnerolog@landaware.com.ar"; $fromN = "[Sanatorio Duarte Quirós]"; //Datos del destinatario $sql = "SELECT emp_codigo, emp_nombre, emp_email FROM dbo.empleado WHERE emp_codigo IN(".$userlst.")"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $usuarios = $GLOBALS['dbSQL']->getAll(); for($i=0;$i 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al enviar aviso al grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo"; } } //Enviar Mensaje a una o mas personas especificas function sendMensajeParticipente(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && // isset($_REQUEST["tit"]) && // !empty($_REQUEST["tit"]) && // !is_null($_REQUEST["tit"]) && // trim($_REQUEST["tit"])!="" && isset($_REQUEST["msg"]) && !empty($_REQUEST["msg"]) && !is_null($_REQUEST["msg"]) && trim($_REQUEST["msg"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idUsuarios']= false; $avisoInfo['idGrupo'] = false; $avisoInfo['tit'] = $_REQUEST["tit"]; $avisoInfo['msg'] = $_REQUEST["msg"]; $avisoInfo['sub'] = ''; $avisoInfo['auditoria'] = array('g'=>false,'u'=>false); $avisoInfo['email'] = false; if( isset($_REQUEST["glst"]) && !empty($_REQUEST["glst"]) && !is_null($_REQUEST["glst"]) && trim($_REQUEST["glst"])!="" ) { $avisoInfo['idGrupo'] = $_REQUEST["glst"]; $avisoInfo['auditoria']['g'] = $_REQUEST["glst"]; $pos = strpos($_REQUEST["glst"],";"); if( $pos!==false ) { $avisoInfo["lstGrupos"] = explode(";",$_REQUEST["glst"]); } else { $avisoInfo['lstGrupos'] = array($_REQUEST["glst"]); } } if( isset($_REQUEST["ulst"]) && !empty($_REQUEST["ulst"]) && !is_null($_REQUEST["ulst"]) && trim($_REQUEST["ulst"])!="" ) { $avisoInfo['idUsuarios'] = $_REQUEST["ulst"]; $avisoInfo['auditoria']['u'] = $_REQUEST["ulst"]; $pos = strpos($_REQUEST["ulst"],";"); if( $pos!==false ) { $avisoInfo["lstUsuarios"] = explode(";",$_REQUEST["ulst"]); } else { $avisoInfo['lstUsuarios'] = array($_REQUEST["ulst"]); } } if( isset($_REQUEST["em"]) && !empty($_REQUEST["em"]) && !is_null($_REQUEST["em"]) && trim($_REQUEST["em"])!="" && $_REQUEST["em"] === 'true' ) { $avisoInfo['email'] = true; } if( $avisoInfo['idUsuarios'] || $avisoInfo['idGrupo'] ) { $resultado = sendAviso( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al enviar aviso al grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo - Destinatario/s faltantes"; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo"; } } //Enviar Respuesta al Mensaje a una o mas personas especificas function sendRespMensajeParticipente(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && isset($_REQUEST["mid"]) && !empty($_REQUEST["mid"]) && !is_null($_REQUEST["mid"]) && trim($_REQUEST["mid"])!="" && isset($_REQUEST["tit"]) && !empty($_REQUEST["tit"]) && !is_null($_REQUEST["tit"]) && trim($_REQUEST["tit"])!="" && isset($_REQUEST["msg"]) && !empty($_REQUEST["msg"]) && !is_null($_REQUEST["msg"]) && trim($_REQUEST["msg"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idUsuarios']= false; $avisoInfo['idGrupo'] = false; $avisoInfo['idmsg'] = $_REQUEST["mid"]; $avisoInfo['tit'] = $_REQUEST["tit"]; $avisoInfo['msg'] = $_REQUEST["msg"]; $avisoInfo['sub'] = ''; $avisoInfo['auditoria'] = array('g'=>false,'u'=>false); $avisoInfo['email'] = false; if( isset($_REQUEST["em"]) && !empty($_REQUEST["em"]) && !is_null($_REQUEST["em"]) && trim($_REQUEST["em"])!="" && $_REQUEST["em"] === 'true' ) { $avisoInfo['email'] = true; } if( $avisoInfo['idmsg'] ) { $resultado = sendAviso( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al enviar aviso al grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo - Destinatario/s faltantes"; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo"; } } //Retorna el listado de avisos recibidos de un usuario function getAvisos($avisoInfo) { /* $avisoInfo['top'] = false; $avisoInfo['pagina'] = false; $avisoInfo['limit'] = false; */ $avisos = false; $estado = ''; if( $avisoInfo['estado'] ) { switch($avisoInfo['estado']) { case 1: { $estado = ' AND t0.avi_leido = 0'; } break; case 2: { $estado = ' AND t0.avi_leido = 1'; } break; } } //$flagIsAviso = 0; //Aviso=1 (Mensaje Grupal) / Mensaje=0 (Mensaje Individual) //// Tipo => t [1: Avisos | 2: Mensajes | vacio: Todos] [OPCIONAL] $tipo = ''; if( $avisoInfo['tipo'] ) { switch($avisoInfo['tipo']) { case 1: { $tipo = ' AND t0.avi_es_grupal = 1'; } break; case 2: { $tipo = ' AND t0.avi_es_grupal = 0'; } break; } } $where = " WHERE t0.usu_codigo = " . $avisoInfo['idUsuario']; if( !$avisoInfo['bandeja'] ) { $where = " WHERE t0.usu_codigo = " . $avisoInfo['idUsuario']; $where.= $estado; } else { $where = " WHERE t0.usu_remitente = " . $avisoInfo['idUsuario']; } $where.= $tipo; $top = false; if( $avisoInfo['top'] ) { $top = ' TOP '.$avisoInfo['top']; } $pagina = false; if( $avisoInfo['pagina'] ) { $pagina = intval($avisoInfo['pagina']); } $limit = false; if( $avisoInfo['limit'] ) { $limit = intval($avisoInfo['pagina']); } //-------------------------------------------------- $flagSSE = false; $timeago_fields = ""; if( isset($avisoInfo['sse'])&&$avisoInfo['sse'] ) { $filters = " avi_leido = 0"; $flagSSE = true; $timeago_fields = ",DATEDIFF(SECOND,avi_fecha, GETDATE()) AS timeago"; } //-------------------------------------------------- // if( $top ) { //Los N-ultimos avisos $sql = "SELECT ".$top." t0.avi_numero ,t0.avi_titulo ,t0.avi_denom ,t0.usu_codigo ,t1.emp_nombre as Usuario ,t0.avi_fecha ,t0.avi_leido ,t0.usu_remite ,t0.avi_prior ,t0.avi_es_grupal ,t2.emp_nombre as Remitente ,t0.avi_nodo ,t0.avi_nodo_padre ,t0.avi_repondido ".$timeago_fields." FROM dbo.[avisos] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_codigo] = t1.[emp_codigo] INNER JOIN dbo.[empleado] as t2 ON t0.[usu_remite] = t2.[emp_codigo] ".$where." ORDER BY avi_fecha DESC "; } elseif( $pagina || $limit ) { if( $pagina ) { //N-ésima página $rdesde = 1; $rhasta = 20; if($pagina > 1) { //Calular las páginas $sql = "SELECT COUNT(avi_numero) AS TOTAL FROM dbo.[avisos] ".$where; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { //$r = $GLOBALS['dbSQL']->getOne(); $r = $GLOBALS['dbSQL']->getAll(); $total = intval($r[0]['TOTAL']); $tp = $total % 20; $p = $pagina-1; $rdesde = (20*$p)+$p; $rhasta = $rdesde + 20; } else { //Si falla el calculo de limites, retorna la primer página } } } else { $rdesde = $limit[0]; $rhasta = $limit[1]; } //order by avi_fecha DESC $sql = "SELECT RowConstrainedResult.* FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY avi_fecha DESC ) AS RowNum ,t0.* , t1.emp_nombre as Usuario , t2.emp_nombre as Remitente ,".str_replace("avi_fecha","t0.avi_fecha",$timeago_fields)." FROM dbo.[avisos] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_codigo] = t1.[emp_codigo] INNER JOIN dbo.[empleado] as t2 ON t0.[usu_remite] = t2.[emp_codigo] ".$where." ) AS RowConstrainedResult WHERE RowNum >= ".$rdesde." AND RowNum < ".$rhasta." ORDER BY RowNum"; } else { //Todos los avisos sin limite $sql = "SELECT t0.avi_numero ,t0.avi_titulo ,t0.avi_denom ,t0.usu_codigo ,t1.emp_nombre as Usuario ,t0.avi_fecha ,t0.avi_leido ,t0.usu_remite ,t0.avi_prior ,t0.avi_es_grupal ,t2.emp_nombre as Remitente ,t0.avi_nodo ,t0.avi_nodo_padre ,t0.avi_repondido ".$timeago_fields." FROM dbo.[avisos] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_codigo] = t1.[emp_codigo] INNER JOIN dbo.[empleado] as t2 ON t0.[usu_remite] = t2.[emp_codigo] ".$where." ORDER BY avi_fecha DESC "; } //print_r($sql);die; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $avisos = $GLOBALS['dbSQL']->getAll(); //------------------------------------------ //Calcular timeago //------------------------------------------ if( $flagSSE ) { $lstId= ''; for($i=0;$iQuery($sql); if ( $rs ) { //$aviso = $GLOBALS['dbSQL']->getOne(); $aviso = $GLOBALS['dbSQL']->getAll(); if( !is_null($aviso[0]['aviau_lst_grupos']) && trim($aviso[0]['aviau_lst_grupos'])!="" ) { $lstGrupos = str_replace(";", ",", trim($aviso[0]['aviau_lst_grupos'])); $sql = "SELECT [avigru_id] ,[avigru_nombre] ,[avigru_estado] FROM dbo.[avisos_grupos] WHERE [avigru_id] IN ( " . $lstGrupos ." )"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $gruposlst = $GLOBALS['dbSQL']->getAll(); $grupos = array(); for($i=0;$i $gruposlst[$i]["avigru_id"] ,'grupo' => $gruposlst[$i]["avigru_nombre"] ,'usuarios' => $grupoUsuarios ); } $avisos[$k]['grupos'] = $grupos; } } if( !is_null($aviso[0]['aviau_usuarios']) && trim($aviso[0]['aviau_usuarios'])!="" ) { $lstUsuarios = str_replace(";", ",", trim($aviso[0]['aviau_usuarios'])); $sql = "SELECT [emp_codigo] ,[emp_nombre] FROM dbo.[empleado] WHERE [emp_codigo] IN ( " . $lstUsuarios ." )"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $usuarioslst = $GLOBALS['dbSQL']->getAll(); $usuarios = array(); for($i=0;$i $usuarioslst[$i]["emp_codigo"] ,'usuario' => $usuarioslst[$i]["emp_nombre"] ); } $avisos[$k]['usuarios'] = $usuarios; } } } } return true; } //Retorna el listado de avisos enviados de un usuario function getAvisosEnviados($avisoInfo) { $avisos = false; // $tipo = ''; // if( $avisoInfo['tipo'] ) // { // switch($avisoInfo['tipo']) // { // case 1: { $tipo = ' AND t0.avi_es_grupal = 1'; } break; // case 2: { $tipo = ' AND t0.avi_es_grupal = 0'; } break; // } // } $where = " WHERE t0.usu_remite = " . $avisoInfo['idUsuario']; $top = false; if( $avisoInfo['top'] ) { $top = ' TOP '.$avisoInfo['top']; } $pagina = false; if( $avisoInfo['pagina'] ) { $pagina = intval($avisoInfo['pagina']); } $limit = false; if( $avisoInfo['limit'] ) { $limit = intval($avisoInfo['pagina']); } // if( $top ) { //Los N-ultimos avisos $sql = "SELECT ".$top." t0.aviau_codigo ,t0.aviau_titulo ,t0.aviau_mensaje ,t0.usu_remite ,t1.emp_nombre as Usuario ,t0.aviau_tstamp ,t0.avi_nodo ,t0.aviau_lst_grupos ,t0.aviau_usuarios FROM dbo.[avisos_auditoria] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_remite] = t1.[emp_codigo] ".$where." ORDER BY aviau_tstamp DESC "; } elseif( $pagina || $limit ) { if( $pagina ) { //N-ésima página $rdesde = 1; $rhasta = 20; if($pagina > 1) { //Calular las páginas $sql = "SELECT COUNT(aviau_codigo) AS TOTAL FROM dbo.[avisos_auditoria] ".$where; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { //$r = $GLOBALS['dbSQL']->getOne(); $r = $GLOBALS['dbSQL']->getAll(); $total = intval($r[0]['TOTAL']); $tp = $total % 20; $p = $pagina-1; $rdesde = (20*$p)+$p; $rhasta = $rdesde + 20; } else { //Si falla el calculo de limites, retorna la primer página } } } else { $rdesde = $limit[0]; $rhasta = $limit[1]; } //order by avi_fecha DESC $sql = "SELECT RowConstrainedResult.* FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY aviau_tstamp DESC ) AS RowNum ,t0.* , t1.emp_nombre as Remitente FROM dbo.[avisos_auditoria] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_remite] = t1.[emp_codigo] ".$where." ) AS RowConstrainedResult WHERE RowNum >= ".$rdesde." AND RowNum < ".$rhasta." ORDER BY RowNum"; } else { //Todos los avisos sin limite $sql = "SELECT t0.aviau_codigo ,t0.aviau_titulo ,t0.aviau_mensaje ,t0.usu_remite ,t1.emp_nombre as Usuario ,t0.aviau_tstamp ,t0.avi_nodo ,t0.aviau_lst_grupos ,t0.aviau_usuarios FROM dbo.[avisos_auditoria] as t0 INNER JOIN dbo.[empleado] as t1 ON t0.[usu_remite] = t1.[emp_codigo] ".$where." ORDER BY aviau_tstamp DESC "; } //print_r($sql);die; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $avisoslst = $GLOBALS['dbSQL']->getAll(); //print_r($avisoslst);die; $r = getUsuariosYGrupos( $avisoslst ); //print_r($avisoslst);die; /* Array ( [0] => Array ( [RowNum] => 1 [aviau_codigo] => 1 [usu_remite] => 98 [avi_nodo] => JCV0TL80KZ [aviau_lst_grupos] => 1;2 [aviau_usuarios] => 2;3;5;8 [aviau_tstamp] => 2018-05-04 12:06:47.163 [aviau_titulo] => prueba auditoria [aviau_mensaje] => prueba prueba prueba prueba prueba [Remitente] => LANDAWARE IT [grupos] => Array ( [0] => Array ( [id] => 1 [grupo] => ADMINISTRACION ) [1] => Array ( [id] => 2 [grupo] => ENFERMERIA ) ) [usuarios] => Array ( [0] => Array ( [id] => 2 [usuario] => KEMBER TOMAS ) [1] => Array ( [id] => 3 [usuario] => CAVAGNI ANDREA ) [2] => Array ( [id] => 5 [usuario] => REBAQUE GABRIELA ) [3] => Array ( [id] => 8 [usuario] => KEMBER LUCRECIA ) ) ) ) */ } return $avisoslst; } //Obtener los mensajes del usuario function getAvisosUsuario(&$resultInfo) {//print_r($_REQUEST);die; if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['estado'] = false; $avisoInfo['top'] = false; $avisoInfo['pagina'] = false; $avisoInfo['limit'] = false; $avisoInfo['tipo'] = false; $avisoInfo['bandeja'] = false; $flagSalida = false; if( isset($_REQUEST["es"]) && !empty($_REQUEST["es"]) && !is_null($_REQUEST["es"]) && trim($_REQUEST["es"])!="" && is_numeric($_REQUEST["es"]) ) { $avisoInfo['estado'] = intval($_REQUEST["es"]); } if( isset($_REQUEST["n"]) && !empty($_REQUEST["n"]) && !is_null($_REQUEST["n"]) && trim($_REQUEST["n"])!="" && is_numeric($_REQUEST["n"]) ) { $avisoInfo['top'] = intval($_REQUEST["n"]); } if( isset($_REQUEST["p"]) && !empty($_REQUEST["p"]) && !is_null($_REQUEST["p"]) && trim($_REQUEST["p"])!="" && is_numeric($_REQUEST["p"]) ) { $avisoInfo['pagina'] = intval($_REQUEST["p"]); } if( isset($_REQUEST["d"]) && !empty($_REQUEST["d"]) && !is_null($_REQUEST["d"]) && trim($_REQUEST["d"])!="" && is_numeric($_REQUEST["d"]) && isset($_REQUEST["h"]) && !empty($_REQUEST["h"]) && !is_null($_REQUEST["h"]) && trim($_REQUEST["h"])!="" && is_numeric($_REQUEST["h"]) ) { $avisoInfo['limit'] = array(intval($_REQUEST["d"]),intval($_REQUEST["h"])); } if( isset($_REQUEST["t"]) && !empty($_REQUEST["t"]) && !is_null($_REQUEST["t"]) && trim($_REQUEST["t"])!="" && is_numeric($_REQUEST["t"]) ) { $avisoInfo['tipo'] = intval($_REQUEST["t"]); } if( isset($_REQUEST["ban"]) && !empty($_REQUEST["ban"]) && !is_null($_REQUEST["ban"]) && trim($_REQUEST["ban"])!="" ) { $avisoInfo['bandeja'] = $_REQUEST["ban"]; if( mb_strtolower($_REQUEST['ban']) === 's' ) { $flagSalida = true; } } if( !$flagSalida ) { $resultado = getAvisos( $avisoInfo ); } else { $resultado = getAvisosEnviados( $avisoInfo ); } if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"avisos" => array() ); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al consultar los avisos del usuario"; } } //Cambiar el estado de un mensaje de un usuario especifio function updateAvisoEstado($avisoInfo) { $avisos = false; $where = " WHERE avi_numero = " . $avisoInfo['idMensaje']; $where.= " AND usu_codigo = " . $avisoInfo['idUsuario']; $sql = "UPDATE dbo.[avisos] SET avi_leido = ".$avisoInfo['estado']." ".$where; $resultado = $GLOBALS['dbSQL']->Query($sql,true); if ( $resultado ) { $avisos = $GLOBALS['dbSQL']->getAll(); } return $avisos; } //Cambiar el estado de un mensaje function changeMensajeEstado(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && isset($_REQUEST["idm"]) && !empty($_REQUEST["idm"]) && !is_null($_REQUEST["idm"]) && trim($_REQUEST["idm"])!="" && isset($_REQUEST["es"]) && //!empty($_REQUEST["es"]) && !is_null($_REQUEST["es"]) && trim($_REQUEST["es"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idMensaje'] = $_REQUEST["idm"]; $avisoInfo['estado'] = ($_REQUEST["es"]=="1"?'1':'0'); $resultado = updateAvisoEstado( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"avisos" => array() ); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al cambiar estado del mensaje"; } } //Obtener el mensaje seleccionado asociado a un usuario function getMensaje($avisoInfo) { $avisos = false; $where = " WHERE avi_numero = " . $avisoInfo['idMensaje']; $where.= " AND usu_codigo = " . $avisoInfo['idUsuario']; $sql = "SELECT * FROM dbo.[avisos] ".$where; //print_r($sql);die; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { //$avisos = $GLOBALS['dbSQL']->getOne(); $avisos = $GLOBALS['dbSQL']->getAll(); } //return $avisos; return $avisos[0]; } //Obtener un mensaje seleccionado function obtenerMensaje(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && isset($_REQUEST["idm"]) && !empty($_REQUEST["idm"]) && !is_null($_REQUEST["idm"]) && trim($_REQUEST["idm"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idMensaje'] = $_REQUEST["idm"]; $resultado = getMensaje( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"avisos" => array() ); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al consultar el mensaje[1]"; } } //Obtener el mensaje seleccionado asociado a un usuario function getMensajeEnviado($avisoInfo) { $sql = "SELECT * FROM dbo.[avisos_auditoria] as t0 WHERE t0.usu_remite = " . $avisoInfo['idUsuario']." AND t0.avi_nodo = '" . $avisoInfo['nodo'] . "'"; //print_r($sql);die; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { //$avisos = $GLOBALS['dbSQL']->getOne(); $avisos = $GLOBALS['dbSQL']->getAll(); } //return $avisos; return $avisos[0]; } //Obtener un mensaje enviado seleccionado function obtenerMensajeEnviado(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && isset($_REQUEST["idm"]) && !empty($_REQUEST["idm"]) && !is_null($_REQUEST["idm"]) && trim($_REQUEST["idm"])!="" && isset($_REQUEST["n"]) && !empty($_REQUEST["n"]) && !is_null($_REQUEST["n"]) && trim($_REQUEST["n"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idMensaje'] = $_REQUEST["idm"]; $avisoInfo['nodo'] = $_REQUEST["n"]; $resultado = getMensajeEnviado( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"avisos" => array() ); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al consultar el mensaje"; } } function vendedorSMIInfo(&$userInfo) { //print_r($userInfo);die; $userInfo[0]["flSMI"] = 0; $userInfo[0]["flSMIVen"] = 0; $userInfo[0]["flSMIVenAd"] = 0; $userInfo[0]["flSMIDual"] = intval($userInfo[0]["emp_dual"]); if(is_array($userInfo)&&count($userInfo)>0) { $sql = "SELECT ven_codigo FROM empleado_vendedor WHERE emp_codigo = '".$userInfo[0]["emp_codigo"]."'"; //print_r($sql);print_r("\n");die; $rsV = $GLOBALS['dbSQL']->Query($sql); if ( $rsV ) { $vendedorInfo = $GLOBALS['dbSQL']->getAll(); if(is_array($vendedorInfo)&&count($vendedorInfo)>0) { $sql = "SELECT ven_activo ,ISNULL(ven_codigo_padre,0) AS ven_codigo_padre ,ISNULL(ven_admin,0) AS ven_admin FROM vendedores WHERE ven_codigo = '".$vendedorInfo[0]["ven_codigo"]."'"; //print_r($sql);print_r("\n");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $vendedorInfo = $GLOBALS['dbSQL']->getAll(); if(is_array($vendedorInfo)&&count($vendedorInfo)>0) { $userInfo[0]["flSMI"] = 1; $userInfo[0]["flSMIVen"] = 1; $userInfo[0]["flSMIVenAd"] = ($vendedorInfo[0]["ven_admin"]==1?1:0); } } } } } } function getUserInfo($user) { $sql = "SELECT TT0.* FROM (SELECT t0.[emp_codigo] as emp_codigo ,t0.[emp_nombre] as emp_nombre ,t0.[emp_login] as emp_login ,t0.[emp_cargo] as emp_cargo ,t0.[emp_email] as emp_email ,t0.[emp_twitter] as emp_twitter ,t0.[emp_facebook] as emp_facebook ,t0.[emp_instagram] as emp_instagram ,t1.[emp_foto] as emp_foto ,t0.[emp_telefono] as emp_telefono ,t0.[emp_observ] as emp_observ ,ISNULL(t0.[emp_dual],0) as emp_dual FROM empleado as t0 LEFT JOIN empleado_foto as t1 ON t0.[emp_codigo] = t1.[emp_codigo] WHERE t0.emp_codigo = ".$user.' ) AS TT0'; $sql_ = "SELECT t0.[emp_codigo] ,t0.[emp_nombre] ,t0.[emp_login] ,t0.[emp_cargo] ,t0.[emp_email] ,t0.[emp_twitter] ,t0.[emp_facebook] ,t0.[emp_instagram] FROM empleado as t0 WHERE t0.emp_codigo = ".$user; //print_r($sql);print_r("\n");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { // $userInfo = $GLOBALS['dbSQL']->getOne(); // return $userInfo; $userInfo = $GLOBALS['dbSQL']->getAll(); //--------------------------------------------- // Permisos del Panel web //--------------------------------------------- $userInfo[0]["procesos"] = getUsurioPermisos($userInfo[0]["emp_codigo"]); $userInfo[0]["medcod"] = getMedicoCodigo($userInfo[0]["emp_codigo"]); //SI EL USUARIO ES UN MEDICO RETORNAR EL COD DEL MEDICO //--------------------------------------------- //die("xxxxxxxxxxxxxxxx"); vendedorSMIInfo($userInfo); return $userInfo[0]; } return false; } //Obtener info del usuario function getUsuarioInfoWs(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" ) { $resultado = getUserInfo( $_REQUEST["uid"] ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"user" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"user" => array() ); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al consultar el mensaje"; } } function saveUserInfo($userInfo) { $sql = "UPDATE empleado SET [emp_nombre] = '".$userInfo['nombre']."' ,[emp_cargo] = '".$userInfo['cargo']."' ,[emp_email] = '".$userInfo['email']."' ,[emp_telefono] = '".$userInfo['tel']."' ,[emp_twitter] = '".$userInfo['twitter']."' ,[emp_facebook] = '".$userInfo['facebook']."' ,[emp_instagram]= '".$userInfo['instagram']."' ,[emp_observ] = '".$userInfo['obs']."' WHERE emp_codigo = ".$userInfo['id']; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } //Guardar los datos de perfil del usuario function saveUserProfile(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && isset($_REQUEST["na"]) && !empty($_REQUEST["na"]) && !is_null($_REQUEST["na"]) && trim($_REQUEST["na"])!="" && isset($_REQUEST["email"]) && !empty($_REQUEST["email"]) && !is_null($_REQUEST["email"]) && trim($_REQUEST["email"])!="" ) { $userInfo = array( "id" => $_REQUEST["uid"] ,"nombre" => $_REQUEST["na"] ,"email" => $_REQUEST["email"] ,"cargo" => ((isset($_REQUEST["ca"])&&!is_null($_REQUEST["ca"])&&!empty($_REQUEST["ca"])&&trim($_REQUEST["ca"])!="")?$_REQUEST["ca"]:'') ,"tel" => ((isset($_REQUEST["tel"])&&!is_null($_REQUEST["tel"])&&!empty($_REQUEST["tel"])&&trim($_REQUEST["tel"])!="")?$_REQUEST["tel"]:'') ,"facebook" => ((isset($_REQUEST["fac"])&&!is_null($_REQUEST["fac"])&&!empty($_REQUEST["fac"])&&trim($_REQUEST["fac"])!="")?$_REQUEST["fac"]:'') ,"twitter" => ((isset($_REQUEST["twt"])&&!is_null($_REQUEST["twt"])&&!empty($_REQUEST["twt"])&&trim($_REQUEST["twt"])!="")?$_REQUEST["twt"]:'') ,"instagram"=> ((isset($_REQUEST["inst"])&&!is_null($_REQUEST["inst"])&&!empty($_REQUEST["inst"])&&trim($_REQUEST["inst"])!="")?$_REQUEST["inst"]:'') ,"obs" => ((isset($_REQUEST["obs"])&&!is_null($_REQUEST["obs"])&&!empty($_REQUEST["obs"])&&trim($_REQUEST["obs"])!="")?$_REQUEST["obs"]:'') ); $resultado = saveUserInfo( $userInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"user" => $_REQUEST["uid"] ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 0 ,"user" => array() ); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al guardar el perfil del usuario"; } } function getRangoTurnero() { $sql = '(SELECT [tur_dias] FROM dbo.[empresa])'; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $empresa = $GLOBALS['dbSQL']->getAll(); return $empresa[0]["tur_dias"]; } return false; } function getRangoTurneroMedico($idMed) { // DESHABILITE EL RANGO POR MEDICO, YA QUE ME RETORNABA UNA FILA PERO VACIA Y LA INTERPRETABA COMO UNA FILA MAS /*$sql = 'SELECT med_rango_dias FROM dbo.[medicos] WHERE med_codigo = ' . $idMed; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $medico = $GLOBALS['dbSQL']->getAll(); //print_r($medico);die; //if(isset($_REQUEST["idMed"])&&intval($_REQUEST["idMed"])==563){print_r($medico);die;} if(count($medico)>0) { return intval($medico[0]["med_rango_dias"]); } else {*/ return getRangoTurnero(); /*} } return false;*/ } function obtenerTurneroCalendarioo(&$resultInfo) { date_default_timezone_set('America/Argentina/Buenos_Aires'); $mes = date("j:n:Y:D:t:d:m"); //if(isset($_REQUEST["idMed"])&&intval($_REQUEST["idMed"])==563)print_r($mes);die; // j Día del mes sin ceros iniciales 1 a 31 // n Representación numérica de un mes, sin ceros iniciales 1 hasta 12 // Y Una representación numérica completa de un año, 4 dígitos Ejemplos: 1999 o 2003 // D Una representación textual de un día, tres letras Mon hasta Sun // t Número de días del mes dado 28 hasta 31 // d Día del mes, 2 dígitos con ceros iniciales 01 a 31 // m Representación numérica de una mes, con ceros iniciales 01 hasta 12 // $fechasInfo[0] j Día del mes sin ceros // $fechasInfo[1] n Representación numérica de un mes // $fechasInfo[2] Y Una representación numérica completa de un año // $fechasInfo[3] D Una representación textual de un día, tres letras // $fechasInfo[4] t Número de días del mes dado // $fechasInfo[5] d Día del mes, 2 dígitos con ceros // $fechasInfo[6] m Representación numérica de una mes, con ceros iniciales /* [code] => 0 [data] => Array ( [primerdia] => Mon [ultimodiames] => 31 [hoyNumero] => 25 [diasemanaPD] => 5 [fechaHoy] => 2019-03-25 [mesNumero] => 3 [fechaTope] => 2019-05-24 [mesSiguienteNumero]=> 4 [diastope] => 60 [mesano] => 2019-03- [ano] => 2019 [mes] => Marzo [calendarios] => Array ( [0] => Array ( [primerdia] => Mon [ultimodiames] => 30 [hoyNumero] => 1 [fechaHoy] => 01:04:2019 [mesNumero] => 4 ) [1] => Array ( [primerdia] => Wed [ultimodiames] => 31 [hoyNumero] => 1 [fechaHoy] => 01:05:2019 [mesNumero] => 5 ) ) ) */ $fechasInfo = explode(':',$mes); $rango = getRangoTurnero(); if( $rango ) { $hoy = $fechasInfo[2]."-".$fechasInfo[6]."-".$fechasInfo[5]; $tope = explode(':',date("j:n:Y:D:t:d:m", strtotime($hoy. ' + '.$rango.' days'))); $topeF = date("Ymd", strtotime($hoy. ' + '.$rango.' days')); $calendarios = array(); $infonext = array( "primerdia" => $fechasInfo[3] ,"ultimodiames" => intval($fechasInfo[4]) ,"hoy" => intval($fechasInfo[0]) ,"fechaHoy" => $fechasInfo[2]."-". $fechasInfo[6]."-". $fechasInfo[5] ,"mesNumero" => intval($fechasInfo[1]) ,"diasemanaprimerdiames"=> intval(date("N", strtotime($fechasInfo[2]."-". $fechasInfo[6]."-01"))) ,"fechaTope" => date("Y-m-d", strtotime($hoy. ' + '.$rango.' days')) ,"mesSiguienteNumero" => (($fechasInfo[1]==12)?(1):($fechasInfo[1]+1)) ,"diastope" => $rango ,"mesano" => date("Y-m-", strtotime($hoy)) ,"ano" => date("Y", strtotime($hoy)) ,"mes" => getMesNombre(date("n", strtotime($hoy))) ); $index = array_push($calendarios,$infonext); $nextday = $hoy; $meses = array(); for($i=1;$i<=$rango;$i++) { $nextday = explode(':',date("j:n:Y:D:t:d:m", strtotime($hoy. ' + '.$i.' days'))); $nextdayF = $nextday[2]."-".$nextday[6]."-".$nextday[5]; if( date("Ymd",strtotime($nextdayF)) <= date("Ymd",strtotime($topeF)) ) { if( intval($nextday[1])!= intval($fechasInfo[1]) || ( intval($nextday[1])== intval($fechasInfo[1]) && intval($nextday[2])!= intval($fechasInfo[2]) ) ) { if(array_search($nextday[1], $meses)===false) { $x = array_push($meses,$nextday[1]); $mesnextInfo = explode(':',date("j:n:Y:D:t:d:m", strtotime($nextdayF))); $infonext = array( "primerdia" => $mesnextInfo[3] ,"ultimodiames" => intval($mesnextInfo[4]) ,"hoy" => intval($mesnextInfo[0]) ,"fechaHoy" => $mesnextInfo[2]."-".$mesnextInfo[6]."-".$mesnextInfo[5] ,"mesNumero" => intval($mesnextInfo[1]) ,"diasemanaprimerdiames"=> intval(date("N", strtotime($mesnextInfo[2]."-". $mesnextInfo[6]."-01"))) ,"fechaTope" => date("Y-m-d", strtotime($hoy. ' + '.$rango.' days')) ,"mesSiguienteNumero" => (($mesnextInfo[1]==12)?(1):($mesnextInfo[1]+1)) ,"diastope" => $rango ,"mesano" => $mesnextInfo[2]."-".$mesnextInfo[6]."-" ,"ano" => $mesnextInfo[2] ,"mes" => getMesNombre($mesnextInfo[1]) ); $index = array_push($calendarios,$infonext); } } } } $resultInfo['code'] = 0; $resultInfo['data'] = array( "calendarios" => $calendarios ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Sistema no disponible"; } } function obtenerTurneroCalendario(&$resultInfo,$med=false) { date_default_timezone_set('America/Argentina/Buenos_Aires'); $mes = date("j:n:Y:D:t:d:m"); // j Día del mes sin ceros iniciales 1 a 31 // n Representación numérica de un mes, sin ceros iniciales 1 hasta 12 // Y Una representación numérica completa de un año, 4 dígitos Ejemplos: 1999 o 2003 // D Una representación textual de un día, tres letras Mon hasta Sun // t Número de días del mes dado 28 hasta 31 // d Día del mes, 2 dígitos con ceros iniciales 01 a 31 // m Representación numérica de una mes, con ceros iniciales 01 hasta 12 // $fechasInfo[0] j Día del mes sin ceros // $fechasInfo[1] n Representación numérica de un mes // $fechasInfo[2] Y Una representación numérica completa de un año // $fechasInfo[3] D Una representación textual de un día, tres letras // $fechasInfo[4] t Número de días del mes dado // $fechasInfo[5] d Día del mes, 2 dígitos con ceros // $fechasInfo[6] m Representación numérica de una mes, con ceros iniciales /* [code] => 0 [data] => Array ( [primerdia] => Mon [ultimodiames] => 31 [hoyNumero] => 25 [diasemanaPD] => 5 [fechaHoy] => 2019-03-25 [mesNumero] => 3 [fechaTope] => 2019-05-24 [mesSiguienteNumero]=> 4 [diastope] => 60 [mesano] => 2019-03- [ano] => 2019 [mes] => Marzo [calendarios] => Array ( [0] => Array ( [primerdia] => Mon [ultimodiames] => 30 [hoyNumero] => 1 [fechaHoy] => 01:04:2019 [mesNumero] => 4 ) [1] => Array ( [primerdia] => Wed [ultimodiames] => 31 [hoyNumero] => 1 [fechaHoy] => 01:05:2019 [mesNumero] => 5 ) ) ) */ $fechasInfo = explode(':',$mes); //$rango = getRangoTurnero(); if( $med ) { $rango = getRangoTurneroMedico($med); } else { $rango = getRangoTurnero(false); } if( $rango ) { $hoy = $fechasInfo[2]."-".$fechasInfo[6]."-".$fechasInfo[5]; $tope = explode(':',date("j:n:Y:D:t:d:m", strtotime($hoy. ' + '.$rango.' days'))); $calendarios = array(); $infonext = array( "primerdia" => $fechasInfo[3] ,"ultimodiames" => intval($fechasInfo[4]) ,"hoy" => intval($fechasInfo[0]) ,"fechaHoy" => $fechasInfo[2]."-". $fechasInfo[6]."-". $fechasInfo[5] ,"mesNumero" => intval($fechasInfo[1]) ,"diasemanaprimerdiames"=> intval(date("N", strtotime($fechasInfo[2]."-". $fechasInfo[6]."-01"))) ,"fechaTope" => date("Y-m-d", strtotime($hoy. ' + '.$rango.' days')) ,"mesSiguienteNumero" => (($fechasInfo[1]==12)?(1):($fechasInfo[1]+1)) ,"diastope" => $rango ,"mesano" => date("Y-m-", strtotime($hoy)) ,"ano" => date("Y", strtotime($hoy)) ,"mes" => getMesNombre(date("n", strtotime($hoy))) ); $index = array_push($calendarios,$infonext); if( $tope[1] > $fechasInfo[1] ) { $total = $tope[1] - $fechasInfo[1]; $conta = 1; $hoyBase = $fechasInfo[2]."-".$fechasInfo[6]."-01"; for($i=0;$i<$total;$i++) { //$mesnext = date("Y-m-d", strtotime($hoyBase. ' + '.$conta.' month')); //print_r("m n[".$mesnext."]");print_r("\n"); $mesnextInfo = explode(':',date("j:n:Y:D:t:d:m", strtotime($hoyBase. ' + '.$conta.' month'))); $conta++; $infonext = array( "primerdia" => $mesnextInfo[3] ,"ultimodiames" => intval($mesnextInfo[4]) ,"hoy" => intval($mesnextInfo[0]) ,"fechaHoy" => $mesnextInfo[2]."-".$mesnextInfo[6]."-".$mesnextInfo[5] ,"mesNumero" => intval($mesnextInfo[1]) ,"diasemanaprimerdiames"=> intval(date("N", strtotime($mesnextInfo[2]."-". $mesnextInfo[6]."-01"))) ,"fechaTope" => date("Y-m-d", strtotime($hoy. ' + '.$rango.' days')) ,"mesSiguienteNumero" => (($mesnextInfo[1]==12)?(1):($mesnextInfo[1]+1)) ,"diastope" => $rango ,"mesano" => $mesnextInfo[2]."-".$mesnextInfo[6]."-" ,"ano" => $mesnextInfo[2] ,"mes" => getMesNombre($mesnextInfo[1]) ); $index = array_push($calendarios,$infonext); } } $resultInfo['code'] = 0; $resultInfo['data'] = array( "calendarios" => $calendarios ); } else { $resultInfo = responseGerenicError(); } } //Notificaciones - Mensajes function isNotificacionMensajesInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[mensajes_in_process] WHERE [msgprc_estado] IS NULL AND msgprc_type = 'NOT_MEN'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de notificaciones } } return false; //No hay un preoceso activo de envio de notificaciones } function openNotificacionMensajesProgress() { $sql = " INSERT INTO dbo.[mensajes_in_process] (msgprc_estado,msgprc_tstamp_init,msgprc_type) VALUES (NULL,GETDATE(),'NOT_MEN')"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeNotificacionMensajesProgress() { $sql = " UPDATE dbo.[mensajes_in_process] SET msgprc_estado = 1, msgprc_tstamp = GETDATE() WHERE msgprc_estado IS NULL AND msgprc_type = 'NOT_MEN'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function sse_getMensajesLst(&$resultInfo,$flagName=true) { if(!isNotificacionMensajesInProgress()) { //Set in progress try { openNotificacionMensajesProgress(); if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['estado'] = false; $avisoInfo['top'] = false; $avisoInfo['pagina'] = false; $avisoInfo['limit'] = false; $avisoInfo['tipo'] = false; $avisoInfo['bandeja'] = false; $avisoInfo['sse'] = true; $flagSalida = false; $resultado = getAvisos( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ,"user" => -1 ); } else { $resultInfo['code'] = 0; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros faltantes al consultar los avisos del usuario"; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } /* $params = array("sse" => 1); $resultado = getDesvios($params); if( $resultado ) { //print_r("r[".is_array($resultado)."]");die; //Listar Desvios sin notificar $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (!is_array($resultado)?0:count($resultado)) ,"items" => (!is_array($resultado)?array():$resultado) ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los nuevos desvios"; $resultInfo['data'] = array("total"=> 0,"items"=> false); } */ closeNotificacionMensajesProgress(); } catch (Exception $e) { closeNotificacionMensajesProgress(); $resultInfo['code'] = 0; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } } else { //print_r("Envio en progreso. Se cancela hilo de ejecucion"); $resultInfo['code'] = 0; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } } //--------------------------- //RECLAMOS //--------------------------- function registrarReclamo($idCliente,$idEstudio,&$nroRef=0,$tipo,$comentario='') { //Validar si ya existe un registro para este estudio sin resolver $continue = true; $queryMs = "SELECT COUNT(*) as total FROM estudios_reclamos WHERE img_id '".addcslashes($idEstudio)."' AND estrec_resuelto = 0"; $resultado = $GLOBALS['dbSQL']->Query($queryMs); if( $resultado ) { $reclamos = $GLOBALS['dbSQL']->getAll(); $totalReclamos = count($reclamos); if($totalReclamos>=0) { if(intval($reclamos[0][""])>0) { $continue = false; return -2; } } } //Gravar el reclamo if( $continue ) { $sql = "INSERT INTO estudios_reclamos ( cli_codigo ,img_id ,estrec_tstamp ,estrec_resuelto ,usu_codigo ,estrec_tipo ,estrec_registracion ,estrec_comentario ) VALUES ( ". addslashes($idCliente) ." ,". addslashes($idEstudio) ." ,GETDATE() ,0 ,NULL ,". addslashes($tipo) ." ,GETDATE() ,'". addslashes($comentario) ."' )"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( $rs ) { $nroRef = $GLOBALS['dbSQL']->getLastId('estudios_reclamos','estrec_numero'); if( $nroRef ) { if( $GLOBALS['SEND_EMAIL_RECLAMO_RECIBIDO'] ) { sendEmailReclamoRecibido($nroRef); } if( $GLOBALS['SEND_WHATSAPP_RECLAMO_RECIBIDO'] ) { sendWhatsappReclamoRecibido($nroRef); } return true; } } } return -1; } function saveReclamo(&$resultInfo) { if( isset($_REQUEST["u"]) && !empty($_REQUEST["u"]) && !is_null($_REQUEST["u"]) && isset($_REQUEST["est"]) && !empty($_REQUEST["est"]) && !is_null($_REQUEST["est"]) && isset($_REQUEST["t"]) && !is_null($_REQUEST["t"]) ) { $tipo=0; if($_REQUEST["t"]==="true"){$tipo=1;} $comentario=''; if(isset($_REQUEST["cm"])){$comentario=substr($_REQUEST["cm"],0,500);} $resultado = registrarReclamo($_REQUEST["u"],$_REQUEST["est"],$nroref,$tipo,$comentario); if ( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "res" => $resultado ,"nroref" => $nroref ); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL REGISTRAR EL RECLAMO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function getComReclamos() { //Paciente $flagPaciente = false; if( isset($_REQUEST["pd"])&&intval($_REQUEST["pd"])!==(-1)) { $flagPaciente = true; } //Estado $flagEstado = false; if(isset($_REQUEST["st"])&&intval($_REQUEST["st"])!==(-1)) { $flagEstado = true; } $flagFecha = false; if( isset($_REQUEST["fd"]) && !is_null($_REQUEST["fd"]) && intval($_REQUEST["fd"])!==(-1) && isset($_REQUEST["fh"]) && !is_null($_REQUEST["fh"]) && intval($_REQUEST["fh"])!==(-1) ) { $flagFecha = true; $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 = ""; if($flagEstado) { $params = " AND ( er.estrec_resuelto = '".(intval($_REQUEST["st"])==1?0:1)."')"; } if($flagPaciente) { $params.= " AND ( er.cli_codigo BETWEEN '".$_REQUEST["pd"]."' AND '".$_REQUEST["ph"]."')"; } if($flagFecha) { $params.= " AND ( LEFT(CONVERT(VARCHAR,er.estrec_registracion, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$desde."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$hasta."', 120), 10) )"; } //print_r($sql);die; $sql = " SELECT TT.* FROM ( SELECT er.estrec_numero ,er.cli_codigo ,er.img_id ,er.estrec_tstamp ,er.estrec_resuelto ,cimg.usu_codigo ,emp.emp_nombre ,c.cli_nombre ,CONVERT(VARCHAR(20),er.estrec_tstamp,120) AS fechatmsp ,CONVERT(VARCHAR(20),er.estrec_registracion,103) AS fechareg ,CONVERT(VARCHAR(20),er.estrec_resolucion,113) AS fechasol ,CONVERT(varchar, er.estrec_registracion, 8) as horareg ,'' AS tipo ,'' AS imgname ,'' AS archivo ,med.med_nombre as medname FROM estudios_reclamos as er INNER JOIN clientes AS c ON er.cli_codigo = c.cli_codigo INNER JOIN cli_fichaestudios AS cimg ON cimg.est_numero = er.img_id LEFT JOIN empleado AS emp ON emp.emp_codigo = cimg.usu_codigo INNER JOIN medicos as med ON med.med_codigo = cimg.med_codigo WHERE er.estrec_tipo = 0 ".$params." UNION SELECT er.estrec_numero ,er.cli_codigo ,er.img_id ,er.estrec_tstamp ,er.estrec_resuelto ,er.usu_codigo ,emp.emp_nombre ,c.cli_nombre ,CONVERT(VARCHAR(20),er.estrec_tstamp,113) AS fechatmsp ,CONVERT(VARCHAR(20),er.estrec_registracion,103) AS fechareg ,CONVERT(VARCHAR(20),er.estrec_resolucion,113) AS fechasol ,CONVERT(varchar, er.estrec_registracion, 8) as horareg ,'' AS tipo ,img_titulo AS imgname ,img_path AS archivo ,med.med_nombre as medname FROM estudios_reclamos as er INNER JOIN clientes AS c ON er.cli_codigo = c.cli_codigo LEFT JOIN empleado AS emp ON emp.emp_codigo = er.usu_codigo INNER JOIN cli_imagenes AS dimg ON dimg.img_id = er.img_id INNER JOIN medicos as med ON med.med_codigo = dimg.med_codigo WHERE er.estrec_tipo = 1 ".$params." )AS TT ORDER BY TT.fechareg"; //print_r($sql);die; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( !$resultado ) { return false; } $resultado = $GLOBALS['dbSQL']->getAll(); if( count($resultado) > 0 ) { $total = count($resultado); $rs['reclamos'] = $resultado; $rs['total'] = $total; } else { $rs['reclamos'] = array(); $rs['total'] = 0; } return $rs; } function getComLstReclamos(&$resultInfo) { $resultado = getComReclamos(); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => $resultado['total'] ,"lstReclamos" => ($resultado&&isset($resultado['reclamos'])?$resultado['reclamos']:'') ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los turnos"; } } function getComentarioReclamo($id) { $sql = "SELECT estrec_comentario FROM estudios_reclamos WHERE estrec_numero = '".addslashes($id)."'"; $resultado = $GLOBALS['dbSQL']->Query($sql); //print_r($rs);die; if ( !$resultado ) { return false; } $reclamo = $GLOBALS['dbSQL']->getAll(); if( count($resultado) > 0 ) { return $reclamo[0]["estrec_comentario"]; } return ''; } function getReclamoComentario(&$resultInfo) { if( isset($_REQUEST["idit"]) && !empty($_REQUEST["idit"]) && !is_null($_REQUEST["idit"]) ) { $resultado = getComentarioReclamo($_REQUEST["idit"]); if ( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array("comentario" => $resultado); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR EL COMENTARIO DEL RECLAMO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function resolverReclamo($id) { $sql = "UPDATE estudios_reclamos SET estrec_resuelto = (CASE WHEN estrec_resuelto = 1 THEN 0 ELSE 1 END) WHERE estrec_numero = '". addslashes($id) ."'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( $rs ) { return true; } return false; } function updateReclamoEstado(&$resultInfo) { if( isset($_REQUEST["idit"]) && !empty($_REQUEST["idit"]) && !is_null($_REQUEST["idit"]) ) { $resultado = resolverReclamo($_REQUEST["idit"]); if ( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array("res" => ($resultado?1:0)); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL RESOLVER EL RECLAMO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function sendEmailReclamoRecibido($idReclamo) { try { $continue=false; $sql = "SELECT c.cli_dni AS DNI , rec.cli_codigo AS cod , c.cli_nombre AS PACIENTE , c.cli_email AS EMAIL , (CASE WHEN c.cli_tel IS NULL THEN '' ELSE c.cli_tel END) AS Telefono , (CASE WHEN c.cli_tel_cod_area IS NULL THEN '' ELSE c.cli_tel_cod_area END) AS TelArea , (CASE WHEN c.cli_tel_numero IS NULL THEN '' ELSE c.cli_tel_numero END) AS TelNro , c.cli_bloqueado as bloqueado ,CONCAT('ESTUDIO:', (CASE WHEN rec.estrec_tipo = 0 THEN CONCAT(CONVERT(VARCHAR(20),cimg.est_fecha,103),'-',t_e.tit_abrev,'. ',med_e.med_nombre) ELSE CONCAT(CONVERT(VARCHAR(20),dimg.img_fecha,103),'-',t_i.tit_abrev,'. ',med_i.med_nombre) END) ) AS ESTUDIO ,(CASE WHEN rec.estrec_tipo = 1 THEN dimg.img_path ELSE '' END) AS FILENAME FROM clientes AS c INNER JOIN estudios_reclamos AS rec ON rec.cli_codigo = c.cli_codigo LEFT JOIN cli_fichaestudios AS cimg ON cimg.est_numero = rec.img_id LEFT JOIN medicos as med_e ON med_e.med_codigo = cimg.med_codigo LEFT JOIN tbl_titulos as t_e ON med_e.tit_codigo = t_e.tit_codigo LEFT JOIN cli_imagenes AS dimg ON dimg.img_id = rec.img_id LEFT JOIN medicos as med_i ON med_i.med_codigo = dimg.med_codigo LEFT JOIN tbl_titulos as t_i ON med_i.tit_codigo = t_i.tit_codigo WHERE rec.estrec_numero = '".$idReclamo."'"; //print_r($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $clienteInfo = $GLOBALS['dbSQL']->getAll(); if( count($clienteInfo)>0 ) { $nombre = strtoupper($clienteInfo[0]["PACIENTE"]); $email = strtolower($clienteInfo[0]["EMAIL"]); $estudio= strtoupper($clienteInfo[0]["ESTUDIO"]); $file = strtoupper($clienteInfo[0]["FILENAME"]); if( intval($clienteInfo[0]["bloqueado"])!=1 && ( $clienteInfo[0]["Telefono"]!='' || ($clienteInfo[0]["TelArea"]!=''&& $clienteInfo[0]["TelNro"]!='') ) ) { if( trim($clienteInfo[0]["Telefono"])!='' ) { $telefono = $clienteInfo[0]["Telefono"]; } else { $telefono = $clienteInfo[0]["TelArea"].$clienteInfo[0]["TelNro"]; } $continue=true; } } } if($continue) { $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_token ) VALUES ( GETDATE() ,GETDATE() ,'".$idReclamo."' ,'".$email."' ,'".$nombre."' ,'' ,'' ,'".$estudio."' ,0 ,NULL ,11 ,'".$file."' )"; //die($sql); //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); } return true; } catch ( Exception $e ) { $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error:".($e->__toString()); logTrace(debug_backtrace(),$e->__toString()); return false; } } function sendWhatsappReclamoRecibido($idReclamo) { try { $continue=false; $sql = "SELECT c.cli_dni AS DNI , rec.cli_codigo AS cod , c.cli_nombre AS PACIENTE , c.cli_email AS EMAIL , (CASE WHEN c.cli_tel IS NULL THEN '' ELSE c.cli_tel END) AS Telefono , (CASE WHEN c.cli_tel_cod_area IS NULL THEN '' ELSE c.cli_tel_cod_area END) AS TelArea , (CASE WHEN c.cli_tel_numero IS NULL THEN '' ELSE c.cli_tel_numero END) AS TelNro , c.cli_bloqueado as bloqueado ,CONCAT('ESTUDIO:', (CASE WHEN rec.estrec_tipo = 0 THEN CONCAT(CONVERT(VARCHAR(20),cimg.est_fecha,103),'-',t_e.tit_abrev,'. ',med_e.med_nombre) ELSE CONCAT(CONVERT(VARCHAR(20),dimg.img_fecha,103),'-',t_i.tit_abrev,'. ',med_i.med_nombre) END) ) AS ESTUDIO ,(CASE WHEN rec.estrec_tipo = 1 THEN dimg.img_path ELSE '' END) AS FILENAME FROM clientes AS c INNER JOIN estudios_reclamos AS rec ON rec.cli_codigo = c.cli_codigo LEFT JOIN cli_fichaestudios AS cimg ON cimg.est_numero = rec.img_id LEFT JOIN medicos as med_e ON med_e.med_codigo = cimg.med_codigo LEFT JOIN tbl_titulos as t_e ON med_e.tit_codigo = t_e.tit_codigo LEFT JOIN cli_imagenes AS dimg ON dimg.img_id = rec.img_id LEFT JOIN medicos as med_i ON med_i.med_codigo = dimg.med_codigo LEFT JOIN tbl_titulos as t_i ON med_i.tit_codigo = t_i.tit_codigo WHERE rec.estrec_numero = '".$idReclamo."'"; //print_r($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $clienteInfo = $GLOBALS['dbSQL']->getAll(); if( count($clienteInfo)>0 ) { $nombre = strtoupper($clienteInfo[0]["PACIENTE"]); $email = strtolower($clienteInfo[0]["EMAIL"]); $estudio= strtoupper($clienteInfo[0]["ESTUDIO"]); $file = strtoupper($clienteInfo[0]["FILENAME"]); if( intval($clienteInfo[0]["bloqueado"])!=1 && ( $clienteInfo[0]["Telefono"]!='' || ($clienteInfo[0]["TelArea"]!=''&& $clienteInfo[0]["TelNro"]!='') ) ) { if( trim($clienteInfo[0]["Telefono"])!='' ) { $telefono = $clienteInfo[0]["Telefono"]; } else { $telefono = $clienteInfo[0]["TelArea"].$clienteInfo[0]["TelNro"]; } $continue=true; } } } if($continue) { $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 ) VALUES ( GETDATE() ,'".$idReclamo."' ,GETDATE() ,0 ,'".$email."' ,'".$telefono."' ,'".$nombre."' ,'' ,'' ,'' ,'".$estudio."' ,0 ,11 ,'".$file."' )"; //die($sql); //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); } return true; } catch ( Exception $e ) { $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error:".($e->__toString()); logTrace(debug_backtrace(),$e->__toString()); return false; } } //---------------------------- // EFECTORES EXPORTACION //---------------------------- function getAmbulatorio($loteInfo) { // if( $GLOBALS['PAMI']['FORMATO_FECHA_I'] ) // { // $d_desde = substr(trim($loteInfo['fdesde']),0,2); // $m_desde = substr(trim($loteInfo['fdesde']),3,2); // $y_desde = substr(trim($loteInfo['fdesde']),6); // $desde = $y_desde."-".$m_desde."-".$d_desde; // $d_hasta = substr(trim($loteInfo['fhasta']),0,2); // $m_hasta = substr(trim($loteInfo['fhasta']),3,2); // $y_hasta = substr(trim($loteInfo['fhasta']),6); // $hasta = $y_hasta."-".$m_hasta."-".$d_hasta; // } // else // { // $desde = date("d/m/Y", strtotime(trim($loteInfo['fdesde']))); // $hasta = date("d/m/Y", strtotime(trim($loteInfo['fhasta']))); // $desde = date("Y-m-d", strtotime($desde)); // $hasta = date('Y-m-d', strtotime($hasta)); // } $desde = date("d-m-Y", strtotime(str_replace("/","-",trim($loteInfo['fdesde'])))); $hasta = date("d-m-Y", strtotime(str_replace("/","-",trim($loteInfo['fhasta'])))); $desde = date("Y-m-d", strtotime($desde)); $hasta = date('Y-m-d', strtotime($hasta)); // $desde = date("d/m/Y", strtotime(trim($loteInfo['fdesde']))); // $hasta = date("d/m/Y", strtotime(trim($loteInfo['fhasta']))); // print_r('>>>>DESPUES 1<<<<');print_r("\n"); // print_r('DESDE['.$desde.'] HASTA['.$hasta.']');print_r("\n"); // print_r('DESDE');print_r("\n");print_r($desde);print_r("\n"); // print_r('HASTA');print_r("\n");print_r($hasta);print_r("\n"); // $desde = date("Y-m-d", strtotime($desde)); // $hasta = date('Y-m-d', strtotime($hasta)); // print_r('>>>>DESPUES 2<<<<');print_r("\n"); //print_r('DESDE['.$desde.'] HASTA['.$hasta.']');print_r("\n");die; $queryMs = "SELECT * ,FORMAT ( fecha, 'dd/MM/yyyy' ) as fpraform FROM v_practicas_consolidadas WHERE fecha BETWEEN '".$desde."' AND '".$hasta."' AND tipo <> 'I' AND obs_codigo = ".$GLOBALS['PAMI']['OBS_COD']; if( $GLOBALS['PAMI']['DEBUG'] ) { print_r($queryMs);print_r("\n"); } $resultadoMs = $GLOBALS['dbSQL']->Query($queryMs); if( $resultadoMs ) { $resultadoMs_c = $GLOBALS['dbSQL']->getAll(); $totalPracticas = count($resultadoMs_c); if( $GLOBALS['PAMI']['DEBUG'] ) { print_r('total practicas['.$totalPracticas.']');print_r("\n"); print_r($queryMs);print_r("\n"); } if( $totalPracticas > 0 ) { $reporte = array( 'total' => $totalPracticas ,'data' => $resultadoMs_c ); } else { //No se encontraron prácticas ambulatorias para el período seleccionado $reporte = array( 'total' => 0 ,'data' => false ); } return $reporte; } return false; } function getPracticasAmbulatorio(&$resultInfo) { $resultado = false; if( isset($_REQUEST["desde"]) && !empty($_REQUEST["desde"]) && !is_null($_REQUEST["desde"]) && trim($_REQUEST["desde"])!="" && isset($_REQUEST["hasta"]) && !empty($_REQUEST["hasta"]) && !is_null($_REQUEST["hasta"]) && trim($_REQUEST["hasta"])!="" ) { $loteInfo = array( "fdesde" => $_REQUEST["desde"] ,"fhasta" => $_REQUEST["hasta"] ); $resultado = getAmbulatorio( $loteInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => $resultado['total'] ,"lst" => $resultado['data'] ); } else { $resultInfo['code'] = 2; $resultInfo['data'] = array( "total" => 0 ,"error" => "Error al consultar las prácticas ambulatorias" ); } } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "total" => 0 ,"error" => "Parámetros faltantes" ); } } function procesarPamiPadron() { try { $sesion = ''; $p = '1234567890'; $sesion = randomText(6,$p); $resultado = array( "sesion" => $sesion ,"nuevos" => false ,"diferencia" => false ,"iguales" => false ); $templateIntStep2 = "(".$sesion.",{ROWID},'{TDOC}',{DOC},'{DOCS}','{CAR}','{NOM}','{PAR}','{FN}','{MOD}')"; $lstinsertStep2 = array(); $lstinsertStep2[0] = ''; $contador = 1; $indice = 0; $rowid = 1; $lstorignal = array(); //----------------------------------------------- // Leer el archivo y crear la lista de afiliados //----------------------------------------------- $inputFileName = $_FILES[0]['tmp_name']; $spreadsheet = IOFactory::load($inputFileName); $padron = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); for($i=2;$i<=count($padron);$i++) { //Excluimos la primer fila que contiene los encabezados $d = date("d-m-Y",strtotime(str_replace("/","-",trim($padron[$i]["F"])))); $f = date("Y-m-d",strtotime($d))." 00:00:00.000"; $item = array( "afiliado" => trim($padron[$i]["A"]) ,"parentesco" => trim($padron[$i]["B"]) ,"nombre" => trim($padron[$i]["C"]) ,"tipodoc" => trim($padron[$i]["D"]) ,"nrodoc" => trim($padron[$i]["E"]) ,"nrodocS" => trim($padron[$i]["E"]) ,"fechanac" => trim($padron[$i]["F"]) ,"modulos" => trim($padron[$i]["G"]) ); $index=array_push($lstorignal,$item); $item = $templateIntStep2; $item = str_replace("{TDOC}", trim($padron[$i]["D"]),$item); $item = str_replace("{ROWID}", $rowid ,$item); $item = str_replace("{DOC}", trim($padron[$i]["E"]),$item); $item = str_replace("{DOCS}", trim($padron[$i]["E"]),$item); $item = str_replace("{CAR}", trim($padron[$i]["A"]),$item); $item = str_replace("{NOM}", trim($padron[$i]["C"]),$item); $item = str_replace("{PAR}", trim($padron[$i]["B"]),$item); $item = str_replace("{FN}", $f, $item); $item = str_replace("{MOD}", trim($padron[$i]["G"]),$item); $sep=','; if($lstinsertStep2[$indice]==''){$sep='';} $lstinsertStep2[$indice].=$sep.$item; $rowid++; if( $contador >= 999 ) { $contador=1; $indice++; $lstinsertStep2[$indice] = ''; } $contador++; } //----------------------------------------------- //----------------------------------------------- // Insertamos en las tablas temporales con un id de sesion //----------------------------------------------- $continue = true; // 1° Insertamos el maestro de detalle $query = "INSERT INTO dbo.[clientes_importaciones] ([cim_sesion],[cim_confirmada]) VALUES ($sesion,0)"; $rs = $GLOBALS['dbSQL']->Query($query,true); if ( !$rs ) { $continue = false; $resultado = 1; } if ( $continue ) { for($i=0,$t=count($lstinsertStep2);$i<$t;$i++) { $query = "INSERT INTO dbo.[clientes_importacion_padron] ([cip_sesion] ,[cip_id] ,[cip_tipodoc] ,[cip_dni] ,[cip_dniS] ,[cip_carnet] ,[cip_nombre] ,[cip_parentesco] ,[cip_fecnto] ,[cip_modulos]) VALUES " . $lstinsertStep2[$i]; $rs = $GLOBALS['dbSQL']->Query($query); if ( !$rs ) { $continue = false; $resultado = 2; } } } if ( $continue ) { // 1ra iteracion - Insertamos los que tienen similitud $query = "INSERT INTO dbo.[clientes_importacion_padron_diferentes] ([cipd_sesion] ,[cipd_id] ,[cipd_tipodoc] ,[cipd_dni] ,[cipd_dniS] ,[cipd_carnet] ,[cipd_nombre] ,[cipd_parentesco] ,[cipd_fecnto] ,[cipd_modulos]) SELECT [cip_sesion] ,[cip_id] ,[cip_tipodoc] ,[cip_dni] ,[cip_dniS] ,[cip_carnet] ,[cip_nombre] ,[cip_parentesco] ,[cip_fecnto] ,[cip_modulos] FROM clientes_importacion_padron p WHERE cip_sesion = ".$sesion." AND EXISTS( SELECT 1 FROM dbo.[clientes] c WHERE c.cli_dni = p.cip_dni )"; $rs = $GLOBALS['dbSQL']->Query($query); if ( !$rs ) { $continue = false; $resultado = 3; } // 2ra iteracion - Comparo la similitud y elimino iguales if ( $continue ) { $query = "SELECT * FROM dbo.[clientes_importacion_padron_diferentes] WHERE cipd_sesion = " . $sesion; $rs = $GLOBALS['dbSQL']->Query($query); if ( $rs ) { $diferentes = $GLOBALS['dbSQL']->getAll(); $query = "SELECT c.*, t.tid_denom as tdoc FROM dbo.[clientes] as c LEFT JOIN dbo.[tbl_tipoid] t ON c.tid_codigo = t.tid_codigo WHERE EXISTS(SELECT 1 FROM dbo.[clientes_importacion_padron_diferentes] id WHERE id.cipd_sesion = " . $sesion." AND id.cipd_dni = c.cli_dni)"; $rs = $GLOBALS['dbSQL']->Query($query); if ( $rs ) { $clientes = $GLOBALS['dbSQL']->getAll(); //print_r($lote);die; $tD = count($diferentes); $tC = count($clientes); if( $tD > 0 && $tC > 0 ) { $lstItesDelete = ''; for($i=0;$i<$tD;$i++) { $contiunue=true; for($j=0;$j<$tC&&$contiunue;$j++) { if( $diferentes[$i]['cipd_dni'] == $clientes[$j]['cli_dni'] ) { $flagDelete = true; $flagName = false; $flagAfiliado = false; $flagTipoDoc = false; $afiliado = $diferentes[$i]['cipd_carnet']; if( mb_strtolower(trim($diferentes[$i]['cipd_nombre'])) == mb_strtolower(trim($clientes[$j]['cli_nombre']))) { $flagName = true; } if( mb_strtolower(trim($diferentes[$i]['cipd_carnet'])) == mb_strtolower(trim($clientes[$j]['cli_carnet']))) { $flagAfiliado = true; } if( mb_strtolower(trim($diferentes[$i]['cipd_tipodoc'])) == mb_strtolower(trim($clientes[$j]['tdoc']))) { $flagTipoDoc = true; } $flagDelete = $flagName && $flagAfiliado && $flagTipoDoc; if( $flagDelete ) { $sep=','; if($lstItesDelete == ''){$sep='';} $lstItesDelete.= $sep."'".$afiliado."'"; } $contiunue=false; } } } } } } $query = "DELETE FROM dbo.[clientes_importacion_padron_diferentes] WHERE cipd_sesion = " . $sesion." AND cipd_carnet IN (".$lstItesDelete.") "; $rs = $GLOBALS['dbSQL']->Query($query); if ( !$rs ) { $continue = false; $resultado = 4; } } } //----------------------------------- if ( $continue ) { // Insertamos los nuevos $query = "INSERT INTO dbo.[clientes_importacion_padron_nuevos] ([cipn_sesion] ,[cipn_id] ,[cipn_tipodoc] ,[cipn_dni] ,[cipn_dniS] ,[cipn_carnet] ,[cipn_nombre] ,[cipn_parentesco] ,[cipn_fecnto] ,[cipn_modulos]) SELECT [cip_sesion] ,[cip_id] ,[cip_tipodoc] ,[cip_dni] ,[cip_dniS] ,[cip_carnet] ,[cip_nombre] ,[cip_parentesco] ,[cip_fecnto] ,[cip_modulos] FROM clientes_importacion_padron p WHERE cip_sesion = ".$sesion." AND NOT EXISTS( SELECT 1 FROM dbo.[clientes] c, dbo.[tbl_tipoid] t WHERE c.tid_codigo = t.tid_codigo AND c.cli_dni = p.cip_dni AND t.tid_denom = p.cip_tipodoc ) AND NOT EXISTS( SELECT 1 FROM dbo.[clientes_importacion_padron_diferentes] pd WHERE pd.cipd_dni = p.cip_dni AND pd.cipd_tipodoc= p.cip_tipodoc AND pd.cipd_sesion = ".$sesion." ) "; $rs = $GLOBALS['dbSQL']->Query($query); if ( !$rs ) { $continue = false; $resultado = 5; } } //----------------------------------- if ( $continue ) { // Insertamos los iguales $query = "INSERT INTO dbo.[clientes_importacion_padron_iguales] ([cipi_sesion] ,[cipi_id] ,[cipi_tipodoc] ,[cipi_dni] ,[cipi_dniS] ,[cipi_carnet] ,[cipi_nombre] ,[cipi_parentesco] ,[cipi_fecnto] ,[cipi_modulos]) SELECT [cip_sesion] ,[cip_id] ,[cip_tipodoc] ,[cip_dni] ,[cip_dniS] ,[cip_carnet] ,[cip_nombre] ,[cip_parentesco] ,[cip_fecnto] ,[cip_modulos] FROM clientes_importacion_padron p WHERE cip_sesion = ".$sesion." AND NOT EXISTS( SELECT 1 FROM dbo.[clientes_importacion_padron_diferentes] pd WHERE pd.cipd_dni = p.cip_dni AND pd.cipd_tipodoc= p.cip_tipodoc AND pd.cipd_sesion = ".$sesion." ) AND NOT EXISTS( SELECT 1 FROM dbo.[clientes_importacion_padron_nuevos] pn WHERE pn.cipn_dni = p.cip_dni AND pn.cipn_tipodoc= p.cip_tipodoc AND pn.cipn_sesion = ".$sesion." ) "; $rs = $GLOBALS['dbSQL']->Query($query); if ( !$rs ) { $continue = false; $resultado = 6; } } //----------------------------------- //Retornar los listados if ( $continue ) { $resultado["sesion"] = $sesion; //------------------------------------------------------------------ // C/DIFERENCIA $query = "SELECT cipd_sesion as sesion ,cipd_id as rowid ,cipd_tipodoc as tipodni ,cipd_dniS as doc ,cipd_carnet as carnet ,cipd_nombre as nombre ,cipd_parentesco as parentesco ,FORMAT ( cipd_fecnto, 'dd/MM/yyyy' ) as fnto ,cipd_modulos as modulos ,cli_codigo as codigo ,tid_denom as tdoc ,cli_dni as docactual ,cli_nombre as nombreactual ,FORMAT ( cli_fecnto, 'dd/MM/yyyy' ) as fntoactual ,cli_sexo as sexo ,cli_carnet as carnetactual ,'' as sexo ,'false' as itsel FROM dbo.[clientes_importacion_padron_diferentes] as tp LEFT JOIN dbo.[clientes] as c ON tp.cipd_dni = c.cli_dni INNER JOIN dbo.[tbl_tipoid] as td ON c.tid_codigo = td.tid_codigo WHERE cipd_sesion = " . $sesion; $rs = $GLOBALS['dbSQL']->Query($query); if ( $rs ) { $resultado["diferencia"]= $GLOBALS['dbSQL']->getAll(); } //------------------------------------------------------------------ //NUEVOS $query = "SELECT cipn_sesion as sesion ,cipn_id as rowid ,cipn_tipodoc as tipodni ,cipn_dniS as doc ,cipn_carnet as carnet ,cipn_nombre as nombre ,cipn_parentesco as parentesco ,FORMAT ( cipn_fecnto, 'dd/MM/yyyy' ) as fnto ,cipn_modulos as modulos ,'' as sexo ,'false' as itsel FROM dbo.[clientes_importacion_padron_nuevos] WHERE cipn_sesion = " . $sesion; $rs = $GLOBALS['dbSQL']->Query($query); if ( $rs ) { $resultado["nuevos"]= $GLOBALS['dbSQL']->getAll(); } //------------------------------------------------------------------ //IGUALES $query = "SELECT cipi_sesion as sesion ,cipi_id as rowid ,cipi_tipodoc as tipodni ,cipi_dniS as doc ,cipi_carnet as carnet ,cipi_nombre as nombre ,cipi_parentesco as parentesco ,FORMAT ( cipi_fecnto, 'dd/MM/yyyy' ) as fnto ,cipi_modulos as modulos ,'' as sexo ,'false' as itsel FROM dbo.[clientes_importacion_padron_iguales] WHERE cipi_sesion = " . $sesion; $rs = $GLOBALS['dbSQL']->Query($query); if ( $rs ) { $resultado["iguales"]= $GLOBALS['dbSQL']->getAll(); } //------------------------------------------------------------------ } return $resultado; } catch (Exception $e) { return 0; } } function procesarPadron(&$resultInfo) { // print_r($_REQUEST); // print_r($_FILES); // die; $resultado = false; /* loadingLoteImpPadronResult */ if( isset($_FILES) && !empty($_FILES) && !is_null($_FILES) && isset($_FILES[0]["name"]) && !empty($_FILES[0]["name"]) && !is_null($_FILES[0]["name"]) && trim($_FILES[0]["name"])!="" && isset($_FILES[0]["type"]) && !empty($_FILES[0]["type"]) && !is_null($_FILES[0]["type"]) && trim($_FILES[0]["type"])!="" && isset($_FILES[0]["tmp_name"]) && !empty($_FILES[0]["tmp_name"]) && !is_null($_FILES[0]["tmp_name"]) && trim($_FILES[0]["tmp_name"])!="" ) { $resultado = procesarPamiPadron(); //Resultado procesamiento del padron $resultInfo['code'] = 0; $resultInfo['data'] = array( "procesar" => false ,"error" => "Error al procesar el padron" ); switch( $resultado ) { case 0: { $resultInfo['data']["error"] = "Error al procesar el padron."; } break; case 1: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 1 - Sesion"; } break; case 2: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 2 - Padron"; } break; case 3: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 3.1 - c/diferencia 1ra iteracion"; } break; case 4: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 3.2 - c/diferencia 2da iteracion"; } break; case 5: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 4 - Nuevos"; } break; case 6: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 5 - Iguales"; } break; default: { //Resultado procesamiento del padron $resultInfo['code'] = 0; $resultInfo['data'] = array( "sesion" => $resultado['sesion'] ,"lstnuevos" => $resultado['nuevos'] ,"lstexistentes" => $resultado['diferencia'] ,"lstiguales" => $resultado['iguales'] ); } } } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "procesar" => false ,"error" => "Archivo no recibido o inválido" ); } return true; } function importarPamiPadron($impInfo) { try { $impInfo['all'] = false; $impInfo['lst'] = false; $impInfo['tipo'] = $_REQUEST["tipo"]; $impInfo['sesion'] = $_REQUEST["sesion"]; if( $impInfo['tipo'] == 'N' ) { //Nuevos $sql = "UPDATE [codigos] SET [num_ultimo] = [num_ultimo] + 1, [num_fecha] = GETDATE() WHERE [num_codigo] = 6"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $sql = "SELECT [num_ultimo] FROM [codigos] WHERE num_codigo = 6"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $conta=0; $rsN = $GLOBALS['dbSQL']->getAll(); foreach($rsN as $row) { $idCliente = $row["num_ultimo"]; $conta++; } if( $conta > 0 ) { //actualizar los ID de la tabla temporal //cli_codigo //insertar los registros $sql = "INSERT INTO dbo.[clientes] ( [cli_codigo] ,[cli_dni] ,[cli_nombre] ,[cli_fecnto] ,[cli_sexo] ,[obs_codigo] ,[obsp_cod] ,[cli_email] ,[med_codigo] ,[cli_tel] ,[cli_carnet] ) SELECT t1.cipn_cli_codigo ,SELECT t0.tid_denom FROM dbo.[tbl_tipoid] as t0 WHERE t0.tid_codigo = t1.cipn_tipodoc ,t1.cipn_dni ,t1.cipn_nombre ,t1.cipn_fecnto ,'F' ,".$GLOBALS['PAMI']['OBS_COD']." ,".$GLOBALS['PAMI']['OBS_PLAN_COD']." ,'' ,".$GLOBALS['PAMI']['MED_COD']." ,'' ,t1.cipn_carnet ,t1.cipn_modulos ,t1.cipn_parentesco FROM clientes_importacion_padron_nuevos t1 WHERE cipn_sesion = ".$sesion." AND cipn_id IN ()"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { //Listar Obras Sociales $resultInfo['code'] = 0; } else { $resultInfo['code'] = 1; $resultInfo['data'] = array("res"=>"Se produjo un error al registrar los datos del usuario"); } $idCliente++; } } } } return $resultado; } catch (Exception $e) { return 0; } } function importarPadron(&$resultInfo) { // print_r($_REQUEST); // print_r($_FILES); // die; $resultado = false; if( isset($_REQUEST["sesion"]) && !empty($_REQUEST["sesion"]) && !is_null($_REQUEST["sesion"]) && trim($_REQUEST["sesion"])!="" && isset($_REQUEST["tipo"]) && !empty($_REQUEST["tipo"]) && !is_null($_REQUEST["tipo"]) && trim($_REQUEST["tipo"])!="" ) { $impInfo = array(); $impInfo['all'] = false; $impInfo['lst'] = false; $impInfo['tipo'] = $_REQUEST["tipo"]; $impInfo['sesion'] = $_REQUEST["sesion"]; if( isset($_REQUEST["fall"]) && !empty($_REQUEST["fall"]) && !is_null($_REQUEST["fall"]) && trim($_REQUEST["fall"])!="" ) { $impInfo['all'] = true; } elseif( isset($_REQUEST["lst"]) && isset($_REQUEST["lst"]) && !empty($_REQUEST["lst"]) && !is_null($_REQUEST["lst"]) && trim($_REQUEST["lst"])!="" ) { $impInfo['lst'] = explode(';;',$_REQUEST["lst"]); } else { //Error } $resultado = importarPamiPadron($impInfo); //Resultado procesamiento del padron $resultInfo['code'] = 0; $resultInfo['data'] = array( "procesar" => false ,"error" => "Error al procesar el padron" ); switch( $resultado ) { case 0: { $resultInfo['data']["error"] = "Error al procesar el padron."; } break; case 1: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 1 - Sesion"; } break; case 2: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 2 - Padron"; } break; case 3: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 3.1 - c/diferencia 1ra iteracion"; } break; case 4: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 3.2 - c/diferencia 2da iteracion"; } break; case 5: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 4 - Nuevos"; } break; case 6: { $resultInfo['data']["error"] = "Error al procesar el padron: Paso 5 - Iguales"; } break; default: { //Resultado procesamiento del padron $resultInfo['code'] = 0; $resultInfo['data'] = array( "result" => $resultado ,"sesion" => $impInfo['sesion'] ,"tipo" => $impInfo['tipo'] ); } } } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "procesar" => false ,"error" => "Archivo no recibido o inválido" ); } return true; } function exportarAmbulatorio($loteInfo,&$resultado) { $continue = false; $error = 1;//Error de conexion $output = ''; $fini = date("d/m/Y",strtotime($loteInfo['fini'])); $ffin = date("d/m/Y",strtotime($loteInfo['ffin'])); $fini_copy = $fini; $ffin_copy = $ffin; $fini = date("Y-m-d",strtotime($fini)); $ffin = date("Y-m-d",strtotime($ffin)); $lst = str_replace(";",",",$loteInfo['lstpra']); $lotedetalle = ''; $lotearchivo = ''; //-------------------------------------------------------------- // (1) Obtener el listado de prácticas ambulatorias //-------------------------------------------------------------- $queryMs = "SELECT * FROM v_practicas_consolidadas_efectores WHERE tipo <> 'I' AND obs_codigo = ".$GLOBALS['PAMI']['OBS_COD'].' AND numero IN ('.$lst.')'. "AND fecha BETWEEN '".$fini."' AND '".$ffin."'"; //print_r($queryMs);die; $resultadoMs = $GLOBALS['dbSQL']->Query($queryMs); if( $resultadoMs ) { $lote = $GLOBALS['dbSQL']->getAll(); //print_r($lote);die; $totalPracticas = count($lote); if( $totalPracticas > 0 ) { $continue = true; } else { //Nada que exportar $error = 2; $continue = false; } } //-------------------------------------------------------------- //-------------------------------------------------------------- // (2) Procesar las filas y generar ésta en el formato de salida //-------------------------------------------------------------- if( $continue ) { //------------------------------------ // CABECERA //------------------------------------ /* CABECERA 30-70795910-6;10040;29/07/2008;04-08;CIRCULO MEDICO;1;UP3057459695101;xvpu5 Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Cuit Prestador Alfanum CABECERA NO Corresponde al CUIT del prestador Ejemplo: 30-70795910-6 2 Nro.de Emulacion Num CABECERA SI Corresponde al N° de veces que emulo un período determinado. El sistema lo genera automaticamente. 3 Fecha de Emulación Alfanum CABECERA SI Refiere al día en que se emula el archivo. En formato dd/mm/aaaa. Lo genera el sistema automaticamente en relacion a la fecha establecida en su pc. Ejemplo: 01/01/2011 4 Mes y año de datos prestacionales Alfanum CABECERA NO Refiere al mes y año del período que se está emulando. Formato mm/aa Ejemplo: 08-09 5 Nombre del Prestador Alfab. CABECERA NO Corresponde al nombre/denominación del prestador. Ejemplo: Colegio Medico de Buenos Aires 6 Tipo de Prestador Num CABECERA NO Define el tipo de prestador. Requiere Equivalencia, la misma es detallada en el campo ejemplo. "Ejemplo: 1=Medico de cabecera; 2= Clinica; 3= Circulo Médico" 7 Nombre de Usuario Alfanum CABECERA 16 NO Es el usuario con el que accede al Sistema Interactivo de Información en la web Ejemplo: UP3070795910601 8 Nro. de Instalacion de Efectores Alfanum CABECERA 20 NO Corresponde al equipamiento informatico que se obtiene a traves de Sistema Interactivo de Informacion. Ejemplo: dh2je */ $lotearchivo = 'CABECERA'."\n"; $lotearchivo.= $GLOBALS['PAMI']['CUIT'].';;'.date("d/m/Y").';'.date("m",strtotime($fini_copy)).'-'.substr(date("Y",strtotime($fini_copy)),2,2).';'.$GLOBALS['PAMI']['NOMBRE'].';'.$GLOBALS['PAMI']['TIPOPRESTADOR'].';'.$GLOBALS['PAMI']['PRESTADOR'].';'.$GLOBALS['PAMI']['CODINSTALACION'].''."\n"; //------------------------------------ // RED //------------------------------------ /* RED 30-70795910-6;;;0;CM;CIRCULO MEDICO;0;AV. PAVON 670;0;;;;6345-5500 Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Cuit de la Red Alfanum RED NO CUIT de la red. Obligatorio. En caso de ser prestador individual o Institucion Cuit del prestador. Ejemplo: 30-60804510-6 2 vacío RED Campo Interno del sistema, por lo cual no debe ingresarse 3 vacio RED Campo Interno del sistema, por lo cual no debe ingresarse 4 ID_RED Integer RED 10 NO Identificacion de la red. Completar con el numero 0 (cero). 5 Abreviatura Varchar RED 20 NO Abreviatura de la descripción de la Red. En caso de ser prestador Individual o Institucion Abreviacion del nombre. "Ejemplos: ""CMT"": Circulo Médico de Trenque Lauquen, ""AMT"": Agremiación Médica de Las Totoras""." 6 descripcion Varchar RED 60 NO Descripción de la Red. En caso de ser prestador Individual o Institucion descripcion del nombre. "Ejemplos: ""CIRCULO MEDICO DE TRENQUE LAUQUEN"", ""AGREMIACION MEDICA DE LAS TOTORAS""" 7 c_cuit Integer RED 8 NO Campo necesario para el sistema a completa con el numero 0 (cero) 8 calle Varchar RED 30 NO Calle del Domicilio de la Red. En caso de ser Individual o Institucion completar con el del prestador 9 puerta Varchar RED 5 NO Numero de la puerta del domicilio de la Red. En caso de ser Individual o Institucion completar con el correspondiente al prestador. 10 Piso Varchar RED 2 SI Pïso del domicilio de la Red. En caso de ser Individual o Institucion completar con el correspondiente al prestador. 11 Departamento Varchar RED 5 SI Numero o letra del domicilio de la Red. En caso de ser Individual o Institucion completar con el correspondiente al prestador. 12 npostal varchar RED 9 SI Se refiere al CUGEO. Requiere equivalencias. Pero dado que admite NULL recomendamos no completarlo. 13 telefono Varchar RED 20 SI Numero de telefono de la Red. En caso de ser Individual o Institucion completar con el correspondiente al prestador. */ $lotearchivo.='RED'."\n"; $lotearchivo.=$GLOBALS['PAMI']['CUIT'].';;;0;'.$GLOBALS['PAMI']['NOMBREABREVIADO'].';'.$GLOBALS['PAMI']['NOMBRE'].';0;'.$GLOBALS['PAMI']['DIRECCION'].';'.$GLOBALS['PAMI']['DIRECCIONNUMERO'].';;;;'.$GLOBALS['PAMI']['TELEFONO']."\n"; $lotearchivo.='PROFESIONAL'."\n"; $lotearchivo.='{PROFESIONAL}'; // $lotearchivo.=';;;0;VALLE MARIA;31;99593; ;DNI;0;;SIN SUMUNISTRAR;0;;;;'; // $lotearchivo.=';;;0;CERES MANUEL;45;99424; ;DNI;0;;SIN SUMUNISTRAR;0;;;;'; //------------------------------------ // PRESTADOR //------------------------------------ /* PRESTADOR ;30-70795910-6;;;0;;;3;;0;cm@cmmail.com.ar;01/01/2007;;;;0;0;0;CIRCULO MEDICO;AV. PAVON 670;0;;;;; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 vacío PRESTADOR Campo Interno del sistema, por lo cual no debe ingresarse 2 Cuit del Prestador Alfanum PRESTADOR NO CUIT del prestador. Obligatorio 3 Matricula Nacional del Profesional PRESTADOR SI Campo necesario solo para prestadores individuales. En los demas casos debera dejarse NULL. 4 Vacío PRESTADOR Campo Interno del sistema, por lo cual no debe ingresarse 5 C_PRESTADOR Bigint PRESTADOR 10 NO Campo necesario para el sistema a completar con el numero 0 (cero) 6 n_nro_prestador varchar PRESTADOR 16 SI Nombre de Usuario. Se asigna al Prestador para las Exportaciones y Upload de archivos 7 n_nro_sap Integer PRESTADOR 5 SI Código de Prestador o Sap para Facturación Ejemplo: 75624 8 n_tipo_prestador Integer PRESTADOR 1 NO Define el tipo de prestador. Requiere Equivalencia, la misma es detallada en el campo ejemplo. "Ejemplo: 1=Medico de cabecera; 2= Clinica Norte; 3= Circulo Médico" 9 c_iva varchar PRESTADOR 2 SI Identificador único de un Tipo de IVA - Relacionado con tabla Tipo Iva. Requiere Equivalencia mencionada en ejemplos. Ejemplo : 1 = IVA INSCRIPTO, 2 = MONOTRIBUTISTA 10 m_medico_cabecera Integer PRESTADOR 1 NO Indica si el Prestador es Médico de Cabecera o no. Requiere equivalencia mencionada en ejemplos. Ejemplo: 1 -Medico de Cabecera 0 - No es Médico de Cabecera. 11 d_mail varchar PRESTADOR 50 NO Email del Prestador 12 f_fecha_alta Date PRESTADOR 8 NO Fecha a partir de la cual el prestador está habilitado, en formato dd/mm/aaaa. 13 f_fecha_baja Date PRESTADOR 8 SI Fecha a partir de la cual el prestador deja de estar habilitado, en formato dd/mm/aaaa. 14 d_motivo_baja varchar PRESTADOR 60 SI Descripción del motivo por el cual el prestador se encuentra dado de baja. "Ejemplos: ""NO RENOVACION DE CONTRATO"", ""SIN LICENCIA PARA EJERCER""." 15 f_actualizac Date PRESTADOR 8 SI Fecha de actualización del registro de prestador, en formato dd/mm/aaaa. 16 c_cuit Integer PRESTADOR 8 NO Campo necesario para el sistema a completa con el numero 0 (cero) 17 C_Profesional Integer PRESTADOR 8 NO Campo necesario para el sistema a completa con el numero 0 (cero) 18 Id_Red Integer PRESTADOR 10 NO Campo necesario para el sistema a completa con el numero 0 (cero) 19 D_denominacion Varchar PRESTADOR 30 NO Nombre del Prestador Institucion. De ser un prestador individual deberá colocar su nombre y apellido. Ejemplo: POLICLINICO REGIONAL AVELLANEDA o JUAN PEREZ 20 d_calle Varchar PRESTADOR 30 NO Nombre de la calle del domicilio del Prestador Institucion. En el caso de un prestador individual deberá colocar la calle del lugar de atención. 21 d_puerta Varchar PRESTADOR 5 NO Puerta del Domicilio del Prestador Institucion. En el caso de un prestador individual deberá colocar el N° de puerta del lugar de atención. 22 d_piso Varchar PRESTADOR 2 SI Piso del Domicilio del Prestador Institucion. En el caso de un prestador individual deberá colocar el N° de piso del lugar de atención. 23 d_departamento Varchar PRESTADOR 5 SI Letra o Número del departamento del Prestador Institucion. En el caso de un prestador individual deberá colocar el departamento del lugar de atención. 24 npostal Varchar PRESTADOR 9 SI CUGEO. Poner en Null (Requiere Equivalencia, pero no es obligatorio) 25 d_telefono Varchar PRESTADOR 20 SI Número/s de Teléfono del Prestador Institucion. En el caso de un prestador individual deberá colocar el telefono del lugar de atención. 26 c_instalacion Varchar PRESTADOR 20 SI Identificador único de Instalación de BD para el Prestador. */ $lotearchivo.='PRESTADOR'."\n"; $lotearchivo.=';'.$GLOBALS['PAMI']['CUIT'].';;;0;;'.$GLOBALS['PAMI']['COD_SAP'].';'.$GLOBALS['PAMI']['TIPOPRESTADOR'].';;0;'.$GLOBALS['PAMI']['EMAIL'].';'.$GLOBALS['PAMI']['FECHAALTA'].';;;;0;0;0;'.$GLOBALS['PAMI']['NOMBRE'].';'.$GLOBALS['PAMI']['DIRECCION'].';'.$GLOBALS['PAMI']['DIRECCIONNUMERO'].';;;;;'."\n"; $lotearchivo.='REL_PROFESIONALESXPRESTADOR'."\n"; $lotearchivo.='{REL_PROFESIONALESXPRESTADOR}'; // $lotearchivo.=';'.$GLOBALS['PAMI']['CUIT'].';99593;0;0;'; // $lotearchivo.=';'.$GLOBALS['PAMI']['CUIT'].';99424;0;0;'; //------------------------------------ // BOCA_ATENCION //------------------------------------ /* BOCA_ATENCION ;30-70795910-6;;0;1;10;AV. PAVON 670;0;;;; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio BOCA_ATENCION Campo Interno del sistema, por lo cual no debe ingresarse 2 Cuit del Prestador BOCA_ATENCION NO Corresponde al CUIT del prestador Ejemplo: 30-70795910-6 3 Vacío BOCA_ATENCION Campo Interno del sistema, por lo cual no debe ingresarse 4 C_PRESTADOR Bigint BOCA_ATENCION 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 C_boca_atencion Integer BOCA_ATENCION 5 NO Identif. único de una Boca de Atencion. 6 id_sucursal Integer BOCA_ATENCION 2 NO Identif. único una Sucursal del Pami. Requiere Equivalencia a la cual puede acceder a traves de consultas parametricas - Afialidos varios - sucursales. Ejemplo :1 - Tucuman, 6 - Capital Federal 7 d_calle Varchar BOCA_ATENCION 30 NO Nombre de la calle del domicilio de la Boca de Atención del Prestador. 8 d_puerta Varchar BOCA_ATENCION 5 NO Puerta del Domicilio de la Boca de Atención del Prestador 9 d_piso Varchar BOCA_ATENCION 2 SI Piso del Domicilio de la Boca de Atención del Prestador. 10 d_departamento Varchar BOCA_ATENCION 5 SI Letra o Número del departamento de la Boca de Atención del Prestador. 11 npostal Varchar BOCA_ATENCION 9 SI CUGEO. Poner en Null. (Requiere Equivalencia, pero no es obligatorio) 12 d_telefono Varchar BOCA_ATENCION 20 SI Número/s de Teléfono de la Boca de Atención del Prestador. */ $lotearchivo.='BOCA_ATENCION'."\n"; $lotearchivo.=';'.$GLOBALS['PAMI']['CUIT'].';;0;1;3;'.$GLOBALS['PAMI']['DIRECCION'].';'.$GLOBALS['PAMI']['DIRECCIONNUMERO'].';;;;'."\n"; //------------------------------------ // REL_MODULOSXPRESTADOR //------------------------------------ /* REL_MODULOSXPRESTADOR ;30-70795910-6;;0;1; ;30-70795910-6;;0;2; ;30-70795910-6;;0;3; ;30-70795910-6;;0;4; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 vacio REL_MODULOSXPRESTADOR Campo Interno del sistema, por lo cual no debe ingresarse 2 Cuit del Prestador REL_MODULOSXPRESTADOR NO Corresponde al CUIT del prestador Ejemplo: 30-70795910-6 3 Vacío REL_MODULOSXPRESTADOR Campo Interno del sistema, por lo cual no debe ingresarse 4 C_PRESTADOR Bigint REL_MODULOSXPRESTADOR 10 NO Campo necesario para el sistema a completar con el numero 0 (cero) 5 id_modulo_nomen Integer REL_MODULOSXPRESTADOR 2 NO Identif.único del Módulo de prácticas. Requiere Equivalencia a la cual puede acceder a traves de consultas parametricas - prestador - Modulo Nomenclador Ejemplo: 1 - medico de cabecera, 6 - Consulta especialista. 6 f_fecha_inicio date REL_MODULOSXPRESTADOR SI Fecha de alta de la relacion entre Modulo y Prestador, en formato dd/mm/aaaa. */ $lotearchivo.='REL_MODULOSXPRESTADOR'."\n"; for($i=0;$i$lote) { $valor['ambulatorio'] = ''; $valor['rel_diag_amb'] = ''; $valor['rel_pra_real_amb'] = ''; $valor['rel_pra_sol_amb'] = ''; $itemAmbulatorio = $templateAmbulatorio; for($i=0;$i>> med['.trim($lote[$i]['med_nombre']).'] mat['.$mat.'] <<< ');print_r("\n"); } $valor['profesionales'].= ';;;0;'.str_replace(",","",trim($lote[$i]['med_nombre'])).';'.trim($lote[$i]['esp_analog']).';'.$mat.'; ;DNI;'.$lote[$i]['med_dni'].';;SIN SUMUNISTRAR;0;;;;'."\n"; $proflst[trim($lote[$i]['med_dni'])] = true; /* $lotearchivo.='{REL_PROFESIONALESXPRESTADOR}'; $lotearchivo.=';'.$GLOBALS['PAMI']['CUIT'].';99593;0;0;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_PROFESIONALESXPRESTADOR Campo Interno del sistema, por lo cual no debe ingresarse 2 Cuit del Prestador REL_PROFESIONALESXPRESTADOR NO Corresponde al CUIT del prestador Ejemplo: 30-70795910-6 3 Matricula Nacional del Profesional REL_PROFESIONALESXPRESTADOR NO Matricula Nacional del Profesional 4 C_PRESTADOR Bigint REL_PROFESIONALESXPRESTADOR 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 C_Profesional Integer REL_PROFESIONALESXPRESTADOR 8 NO campo necesario para el sistema a completa con el numero 0 (cero) 6 f_fecha_inicio Date REL_PROFESIONALESXPRESTADOR 8 SI Fecha de inicio de la relación del Profesional con el Prestador, en formato dd/mm/aaaa. Ejemplo: 16/01/2011 */ $valor['rel_profesionales'].= ';'.$GLOBALS['PAMI']['CUIT'].';'.$mat.';0;0;'."\n"; } //------------------------------------------------------------- //------------------------------------------------------------- // BENEFICIO //------------------------------------------------------------- if( !array_key_exists(trim($lote[$i]['cli_carnet']), $beneflst) ) { /* $lotearchivo.='{BENEFICIO}'; //$lotearchivo.=';;;150167448706;;;1;29/07/2008'; Id Entidad Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 95 1 Vacio BENEFICIO Campo Interno del sistema, por lo cual no debe ingresarse 96 2 Vacio BENEFICIO Campo Interno del sistema, por lo cual no debe ingresarse 97 3 Vacio BENEFICIO Campo Interno del sistema, por lo cual no debe ingresarse 98 4 id_beneficio Varchar BENEFICIO 12 NO Identificación de un Beneficio o Grupo familiar.Aquí se cargan solo los dados de alta por el Prestador 99 5 id_tipo_beneficio Integer BENEFICIO 2 SI Identif. único del Tipo de Beneficio. Relacionado con tabla Tipo de Beneficio. Requiere Equivalencia a la cual accede a traves de consultas parametricas - Afialidos - Tipo de Beneficio. Ejemplo: 10 - Jubilacion. 100 6 denominacion_beneficio varchar BENEFICIO 30 SI Denominación del Beneficio. Podría ser una referencia a la persona que genera el Beneficio 101 7 ni_alta_por_presta Integer BENEFICIO 1 NO Debera completarse siempre con Valor 1 102 8 fecha_alta date BENEFICIO 8 NO Fecha en la cual se ingresaron los datos del Beneficio, en formato dd/mm/aaaa. */ $valor['beneficio'].= ';;;'.trim($lote[$i]['cli_carnet']).';;;1;'.$lote[$i]['fecha']."\n"; $beneflst[trim($lote[$i]['cli_carnet'])] = true; } //------------------------------------------------------------- //------------------------------------------------------------- // AFILIADO //------------------------------------------------------------- if( !array_key_exists(trim($lote[$i]['cli_dni']), $afilialst) ) { /* $lotearchivo.='{AFILIADO}'; //$lotearchivo.='GUILLET BEATRIZ;DNI;3782856;;;;HEROES DE MALVINAS;1414;;;;;18/08/1938;F;;;150167448706;00;;;;;;;;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 apellido_nombre Varchar AFILIADO 60 NO Nombre y Apellido de la Persona 2 id_tipo_documento varchar AFILIADO 3 NO Identificador del Tipo de Documento. Requiere Equivalencia. Puede observar La misma a traves de Consultas Parametricas - Afiliados Varios - Tipo de Documento DNI - Documento Nacional de Identidad, LE - Libreta de Enrolamiento. 3 nro_documento Bigint AFILIADO 15 NO Nro de Documento de la Persona 4 id_estado_civil Varchar AFILIADO 2 SI Identif. única del estado civil de una persona. Relacionado con tabla Estado Civil. Requiere Equivalencia. Puede observar la misma a traves de Consultas Parametricas - Afiliados Varios - Estado Civil 5 id_nacionalidad Integer AFILIADO 3 SI Identif. Único de la Nacionalidad.Relacionado con tabla de Nacionalidad. Requiere Equivalencia. Puede observar la misma a traves de Consultas Parametricas - Afiliados Varios - Nacionalidad 6 id_pais Integer AFILIADO 3 SI Identif. Único del País.Relacionado con tabla de Paises. Requiere Equivalencia Ejemplo: 1 = Argentina 7 calle Varchar AFILIADO 30 SI Nombre de la calle del domicilio del afiliado. 8 puerta Varchar AFILIADO 5 SI Numero del domicilio del afiliado. 9 piso Varchar AFILIADO 2 SI Piso del domicilio del afiliado. 10 departamento Varchar AFILIADO 5 SI Letra o numero del departamento del domicilio del afiliado. 11 npostal Varchar AFILIADO 9 SI Se refiere al CUGEO. Requiere equivalencias. Pero dado que admite NULL recomendamos no completarlo. 12 telefono Varchar AFILIADO 20 SI Numero/s de Teléfono del afiliado 13 fecha_nacimiento Date AFILIADO 8 NO Fecha de Nacimiento del afiliado, en formato dd/mm/aaaa. 14 sexo Char AFILIADO 1 NO Sexo del afiliado (F) Femenino (M) Masculino 15 cuit Varchar AFILIADO 15 SI Número de Cuit del afiliado 16 cuil Varchar AFILIADO 15 SI Número de Cuil del afiliado 17 id_beneficio Varchar AFILIADO 12 NO Identificación de un Beneficio o Grupo familiar.Aquí se cargan solo los dados de alta por el Prestador 18 id_parentesco Varchar AFILIADO 4 NO Identif. Único de un Parentesco. Relacionado con tabla Parentescos. Requiere Equivalencia, La misma se pueden obtener a traves de Consultas Parametricas - Afiliados Varios - Parentesco "Ejemplo: 00 - Titular; 01 - Hijo, 02 - Hijo" 19 id_sucursal Integer AFILIADO 2 SI Identif. único una Sucursal de la Obra Social. Relacionado con tabla Corresponsalia. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - Corresponsalias Ejemplo: 0 - Tucuman 20 id_agencia Integer AFILIADO 2 SI Identif. único una Agencia de la Obra Social. Relacionado con tabla Corresponsalia. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - Corresponsalias Ejemplo: 1- Agencia Concepcion 21 id_corresponsalia Integer AFILIADO 2 SI Identif. único una Corresponsalia de la Obra Social. Relacionado con tabla Corresponsalia. Requiere Equivalencia, La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - Corresponsalias Ejemplo: 53 - Corresponsalia Villa Elisa 22 id_afjp Integer AFILIADO 2 SI Identif.único una AFJP-Relacionado con tabla AFJP. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - AFJP Ejemplo: 1 - Arauca BIT 23 vto_afiliacion Date AFILIADO SI Fecha de vencimiento para la afiliación (acceso a los beneficios). Si es NULL indica que no hay vencimiento, en formato dd/mm/aaaa. 24 t_formulario Integer AFILIADO 11 SI Tipo de formulario es una codificación por la forma en que ingresaron los datos del beneficiario. "Ejemplos: “0” Indefinido, ""1"": Ingreso manual en corresponsalía, ""2"": automático por importación de datos desde el ANSES" 25 fecha_baja Date AFILIADO SI Fecha en la cual el beneficiario fue dado de baja. NULL para los beneficiarios activos, en formato dd/mm/aaaa. 26 Codigo_baja Varchar AFILIADO 10 SI Indicador del motivo de la baja. "Ejemplos: ""FALLE"": Fallecimiento, ""CAMBIO"": Cambio hacia una obra social" */ $valor['afiliado'].= $lote[$i]['cli_nombre'].';'.$lote[$i]['tid_abrev'].';'.$lote[$i]['cli_dni'].';;;;;;;;;;'.$lote[$i]['cli_fecnto'].';'.$lote[$i]['cli_sexo'].';;;'.trim($lote[$i]['cli_carnet']).';00;;;;;;;;'."\n"; $afilialst[trim($lote[$i]['cli_dni'])] = true; } //------------------------------------------------------------- //------------------------------------------------------------- // AMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{AMBULATORIO}'; //$lotearchivo.=$GLOBALS['PAMI']['CUIT'].';;99593;0;0;0;1;0;23/04/2008;;;1;;;150167448706;00'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Cuit Red AMBULATORIO SI Si no hay Red, no se pone nada. 2 Vacío AMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Matrícula Nacional del Profesional Integer AMBULATORIO NO Matricula Nacional del Profesional 4 c_ambulatorio Bigint AMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ID_RED Integer AMBULATORIO 9 SI campo necesario para el sistema a completa con el numero 0 (cero) 6 C_prestador Bigint AMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 7 c_boca_atencion Integer AMBULATORIO 5 NO identif.único de la Boca de Atencion del Prestador 8 c_profesional Integer AMBULATORIO 8 NO campo necesario para el sistema a completa con el numero 0 (cero) 9 f_fecha_atencion date AMBULATORIO NO Fecha de la atención ambulatoria, en formato dd/mm/aaaa. 10 d_estado Varchar AMBULATORIO 12 SI Estado de la atención ambulatoria. 11 d_motivo_rechazo Varchar AMBULATORIO 60 SI Motivo de Rechazo de la atención ambulatoria. 12 id_modalidad_presta Integer AMBULATORIO 2 NO Identif.único de la Modalidad de Prestación. Relacionado con la tabla Modalidad_Prestacion. Requiere Equivalencia, La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - Modalidad de prestacion "Ejemplo: 1=Afiliados de su cápita; 2= Afiliados respaldados bajo el formulario 156 (Orden de Prestación)" 13 n_nro_orden Bigint AMBULATORIO 10 SI Número de orden para Rechazos conformados 14 id_tipo_atencion Integer AMBULATORIO 2 SI Identif.único del tipo de Atención Ambulatorio. Relacionado con tabla de Tipos de Atención. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - Varios - Tipo de Atencion Ejemplo: 1 - Atencion programada a domicilio 15 id_beneficio Varchar AMBULATORIO 12 NO Identificación de un Beneficio o Grupo familiar.Aquí se cargan solo los dados de alta por el Prestador. Relacionado con la tabla de Afiliados. 16 id_parentesco Varchar AMBULATORIO 4 NO "Identif. Único de un Parentesco. En conjunto con el campo ""id_beneficio"", identifican a un Beneficiario. Relacionado con la Tabla de Afiliados. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados Varios - Parentesco" "Ejemplo: 00 - Titular; 01 - Hijo, 02 - Hijo" */ $valor['ambulatorio'].= $GLOBALS['PAMI']['CUIT'].';;'.$lote[$i]['med_mp'].';0;0;0;1;0;'.$lote[$i]['fecha'].';;;1;;;'.trim($lote[$i]['cli_carnet']).';00'."\n"; //------------------------------------------------------------- // REL_DIAGNOSTICOSXAMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{REL_DIAGNOSTICOSXAMBULATORIO}'; //$lotearchivo.=';;;0;1;A01;2'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_DIAGNOSTICOSXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 2 Vacio REL_DIAGNOSTICOSXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacío REL_DIAGNOSTICOSXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 4 c_ambulatorio Bigint REL_DIAGNOSTICOSXAMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ni_coddiagno Integer REL_DIAGNOSTICOSXAMBULATORIO 2 NO "Código Tipo de Clasificación de Diagnósticos.Relacionado con tabla ""diagnóstico"". Requiere Equivalencia" 6 vch_coddiagnostico Varchar REL_DIAGNOSTICOSXAMBULATORIO 10 NO "Código de Diagnósticos.Relacionado con tabla ""Diagnosticos"". Requiere Equivalencia. La misma se puede obtener desde Consultas Parametricas - Prestaciones - Diagnosticos." Ejemplo: I10 - Hipertension Esencial Primaria. 7 m_tipo_diagnostico Tinyint REL_DIAGNOSTICOSXAMBULATORIO 1 NO Indica si el diagnóstico es Principal o secundario. Ejemplo: 1 - Principal, 2 - Secundario */ $valor['rel_diag_amb'].= ';;;0;1;Z71.9;1'."\n"; //------------------------------------------------------------- //------------------------------------------------------------- // REL_PRACTICASREALIZADASXAMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{REL_PRACTICASREALIZADASXAMBULATORIO}'; //$lotearchivo.=';;;0;1;420101;23/04/2008 00:00;1;1;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_PRACTICASREALIZADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 2 Vacio REL_PRACTICASREALIZADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacío REL_PRACTICASREALIZADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 4 c_ambulatorio Bigint REL_PRACTICASREALIZADASXAMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ni_codpresta Integer REL_PRACTICASREALIZADASXAMBULATORIO 2 NO "Código de Tipo de clasificación de prácticas. Relacionado con tabla ""Practica"". Requiere Equivalencia" 6 vch_codprestacion Varchar REL_PRACTICASREALIZADASXAMBULATORIO 10 NO "Código de práctica. Relacionado con tabla ""práctica"". Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - practicas." Ejemplo: 427101 - Consulta medica 7 f_fecha_practica DateTime REL_PRACTICASREALIZADASXAMBULATORIO NO Fecha y Hora en que se realizó la práctica, en formato dd/mm/aaaa. 8 q_cantidad Integer REL_PRACTICASREALIZADASXAMBULATORIO 3 NO Cantidad de Prácticas Realizadas con el Código de Práctica indicado. 9 id_modalidad_presta Integer REL_PRACTICASREALIZADASXAMBULATORIO 2 NO Identif.único de la Modalidad de Prestación. Relacionado con la tabla Modalidad_Prestacion. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - modalidad de atencion. "Ejemplo: 1=Afiliados de su capita; 2= Afiliados respaldados bajo el formulario 156 (Orden de Prestación)" 10 n_nro_orden Bigint REL_PRACTICASREALIZADASXAMBULATORIO 10 SI Número de orden para Rechazos conformados */ $valor['rel_pra_real_amb'].= ';;;0;1;'.$lote[$i]['inos_cod'].';'.$lote[$i]['fecha'].' 00:00;1;1;'."\n"; //------------------------------------------------------------- //------------------------------------------------------------- // REL_PRACTICASSOLICITADASXAMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{REL_PRACTICASSOLICITADASXAMBULATORIO}'; // $lotearchivo.=';;;0;1;420101;23/04/2008 00:00;1;0;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_PRACTICASSOLICITADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 2 Vacio REL_PRACTICASSOLICITADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacío REL_PRACTICASSOLICITADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 4 c_ambulatorio Bigint REL_PRACTICASSOLICITADASXAMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ni_codpresta Integer REL_PRACTICASSOLICITADASXAMBULATORIO 2 NO "Código de Tipo de clasificación de prácticas. Relacionado con la tabla ""Practica"". Requiere Equivalencia" 6 vch_codprestacion Varchar REL_PRACTICASSOLICITADASXAMBULATORIO 10 NO "Código de práctica. Relacionado con tabla ""práctica"". Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - practicas." Ejemplo: 427101 - Consulta medica 7 f_fecha_practica Date REL_PRACTICASSOLICITADASXAMBULATORIO NO Fecha en que se realizó la práctica. en formato dd/mm/aaaa. 8 q_cantidad Integer REL_PRACTICASSOLICITADASXAMBULATORIO 3 NO Cantidad de Practicas Realizadas con el Código de Práctica indicado. 9 c_prestador_aderivar Bigint REL_PRACTICASSOLICITADASXAMBULATORIO 10 SI campo necesario para el sistema a completa con el numero 0 (cero) 10 id_modulo_nomen Integer REL_PRACTICASSOLICITADASXAMBULATORIO 2 SI "Identif.único del Módulo Módulo de prácticas. Relacionado con tabla ""Modulo_nomenclador"". Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestador - Modulo nomenclador." */ $valor['rel_pra_sol_amb'].= ';;;0;1;'.$lote[$i]['inos_cod'].';'.$lote[$i]['fecha'].' 00:00;1;0;'."\n"; //------------------------------------------------------------- //Detalle del lote $sep=','; if($lotedetalle==''){$sep='';} $lotedetalle.= $sep.'({ID},'. $lote[$i]['inos_cod'].')'; } $itemAmbulatorio = str_replace("{AMB}", $valor['ambulatorio'], $itemAmbulatorio); $itemAmbulatorio = str_replace("{REL_DIAG}", $valor['rel_diag_amb'], $itemAmbulatorio); $itemAmbulatorio = str_replace("{REL_PRAC}", $valor['rel_pra_real_amb'], $itemAmbulatorio); $itemAmbulatorio = str_replace("{REL_PRACSOL}", $valor['rel_pra_sol_amb'], $itemAmbulatorio); $itemsAmbulatorio.= $itemAmbulatorio."\n"; } //OBTENER LOS ITEMS DE PRACTICAS if(false) //version anterior { for($i=0;$i<$totalPracticas;$i++) { $excluir = true; if( !empty($lote[$i]['med_mp']) && !is_null($lote[$i]['med_mp']) && trim($lote[$i]['med_mp'])!="" && !empty($lote[$i]['cli_carnet']) && !is_null($lote[$i]['cli_carnet']) && trim($lote[$i]['cli_carnet'])!="" && !empty($lote[$i]['cli_fecnto']) && !is_null($lote[$i]['cli_fecnto']) && trim($lote[$i]['cli_fecnto'])!="" && !empty($lote[$i]['cli_sexo']) && !is_null($lote[$i]['cli_sexo']) && trim($lote[$i]['cli_sexo'])!="" ) { $excluir = false; } else { $index=array_push($excluidoslst,$lote[$i]); } //print_r("excluir[".($excluir?'SI':'NO')."] carnet[".trim($lote[$i]['cli_carnet'])."] matricula[".trim($lote[$i]['med_mp'])."] ");print_r("\n"); if( !$excluir ) { $lote[$i]['fecha'] = date("Y-m-d H:i:s",strtotime($lote[$i]['fecha'])); $lote[$i]['fecha'] = date("d/m/Y",strtotime($lote[$i]['fecha'])); $lote[$i]['cli_fecnto'] = date("Y-m-d H:i:s",strtotime($lote[$i]['cli_fecnto'])); $lote[$i]['cli_fecnto'] = date("d/m/Y",strtotime($lote[$i]['cli_fecnto'])); //------------------------------------------------------------- // PROFESIONALES //------------------------------------------------------------- /* $lotearchivo.='{PROFESIONAL}'; // $lotearchivo.=';;;0;VALLE MARIA;31;99593; ;DNI;0;;SIN SUMUNISTRAR;0;;;;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 vacio PROFESIONAL 2 Vacio PROFESIONAL Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacio PROFESIONAL Campo Interno del sistema, por lo cual no debe ingresarse 4 C_Profesional Integer PROFESIONAL 8 NO Campo necesario para el sistema a completa con el numero 0 (cero) 5 d_apellidoynombre varchar PROFESIONAL 60 NO Apellido y Nombre del Profesional 6 id_especialidad varchar PROFESIONAL 4 NO Identificador de la Especialidad.Requiere Equivalencia, la misma puede visualizarla a traves de la opcion Consultas Parametricas - Prestador - Especialidades Ejemplo: 1 - Clinica Medica, 10 - Cardiologia. 7 n_matricula_nac Integer PROFESIONAL 6 NO Matricula Nacional del Profesional Ejemplo: 25436 . En caso de no poseer, ingrese 00. 8 n_matricula_prov Integer PROFESIONAL 6 SI Matrícula Provincial del Profesional 9 id_tipo_documento varchar PROFESIONAL 3 NO Identificador del Tipo de Documento. Requiere Equivalencia. Puede observar La misma a traves de Consultas Parametricas - Afiliados Varios - Tipo de Documento Ejemplo: DNI - Documento Nacional de Identidad, LE - Libreta de Enrolamiento. 10 n_documento Bigint PROFESIONAL 15 NO Número de Documento del Profesional 11 cuil Varchar PROFESIONAL 15 SI Número de Cuil del Profesional 12 d_calle Varchar PROFESIONAL 30 NO Calle del Domicilio del Profesional 13 d_puerta varchar PROFESIONAL 5 NO Número de Puerta del Domicilio del Profesional 14 d_piso varchar PROFESIONAL 2 SI Número de Piso del Domicilio del profesional 15 d_departamento varchar PROFESIONAL 5 SI Letra o Número del departamento del profesional 16 npostal varchar PROFESIONAL 9 SI Se refiere al CUGEO. Requiere equivalencias. Pero dado que admite NULL recomendamos no completarlo. 17 d_telefono varchar PROFESIONAL 20 SI Numero/s de telefono del Profesional */ if( !array_key_exists(trim($lote[$i]['med_dni']), $proflst) ) { $mat = $lote[$i]['med_mp']; //print_r('med['.trim($lote[$i]['med_nombre']).'] mat['.$mat.']');print_r("\n"); /* med[NESA, LUCAS ANDRES] mat[25720] med[ALMADA, LUIS MARCELO] mat[22672] med[COLOMBO, HUGO RAUL] mat[14302] med[RIVAROLA DI PIETRO CRISTIAN LIONEL] mat[] med[OTTONELLI, FABIAN ESTEBAN] mat[31431] med[PEREZ TIRANTI, DANTE EUGENIO] mat[31619] med[AGUILERA, ANGEL SEBASTIAN] mat[31072] med[VENICIO, MANUEL RICARDO] mat[18630] */ if( is_null($lote[$i]['med_mp'])|| empty($lote[$i]['med_mp']) || $lote[$i]['med_mp'] === "0" || $lote[$i]['med_mp'] === 0 || trim($lote[$i]['med_mp']) === "" ) { $mat = "{SM}"; //print_r(' >>> med['.trim($lote[$i]['med_nombre']).'] mat['.$mat.'] <<< ');print_r("\n"); } $valor['profesionales'].= ';;;0;'.str_replace(",","",trim($lote[$i]['med_nombre'])).';'.trim($lote[$i]['esp_analog']).';'.$mat.'; ;DNI;'.$lote[$i]['med_dni'].';;SIN SUMUNISTRAR;0;;;;'."\n"; $proflst[trim($lote[$i]['med_dni'])] = true; /* $lotearchivo.='{REL_PROFESIONALESXPRESTADOR}'; $lotearchivo.=';'.$GLOBALS['PAMI']['CUIT'].';99593;0;0;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_PROFESIONALESXPRESTADOR Campo Interno del sistema, por lo cual no debe ingresarse 2 Cuit del Prestador REL_PROFESIONALESXPRESTADOR NO Corresponde al CUIT del prestador Ejemplo: 30-70795910-6 3 Matricula Nacional del Profesional REL_PROFESIONALESXPRESTADOR NO Matricula Nacional del Profesional 4 C_PRESTADOR Bigint REL_PROFESIONALESXPRESTADOR 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 C_Profesional Integer REL_PROFESIONALESXPRESTADOR 8 NO campo necesario para el sistema a completa con el numero 0 (cero) 6 f_fecha_inicio Date REL_PROFESIONALESXPRESTADOR 8 SI Fecha de inicio de la relación del Profesional con el Prestador, en formato dd/mm/aaaa. Ejemplo: 16/01/2011 */ $valor['rel_profesionales'].= ';'.$GLOBALS['PAMI']['CUIT'].';'.$mat.';0;0;'."\n"; } //------------------------------------------------------------- //------------------------------------------------------------- // BENEFICIO //------------------------------------------------------------- if( !array_key_exists(trim($lote[$i]['cli_carnet']), $beneflst) ) { /* $lotearchivo.='{BENEFICIO}'; //$lotearchivo.=';;;150167448706;;;1;29/07/2008'; Id Entidad Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 95 1 Vacio BENEFICIO Campo Interno del sistema, por lo cual no debe ingresarse 96 2 Vacio BENEFICIO Campo Interno del sistema, por lo cual no debe ingresarse 97 3 Vacio BENEFICIO Campo Interno del sistema, por lo cual no debe ingresarse 98 4 id_beneficio Varchar BENEFICIO 12 NO Identificación de un Beneficio o Grupo familiar.Aquí se cargan solo los dados de alta por el Prestador 99 5 id_tipo_beneficio Integer BENEFICIO 2 SI Identif. único del Tipo de Beneficio. Relacionado con tabla Tipo de Beneficio. Requiere Equivalencia a la cual accede a traves de consultas parametricas - Afialidos - Tipo de Beneficio. Ejemplo: 10 - Jubilacion. 100 6 denominacion_beneficio varchar BENEFICIO 30 SI Denominación del Beneficio. Podría ser una referencia a la persona que genera el Beneficio 101 7 ni_alta_por_presta Integer BENEFICIO 1 NO Debera completarse siempre con Valor 1 102 8 fecha_alta date BENEFICIO 8 NO Fecha en la cual se ingresaron los datos del Beneficio, en formato dd/mm/aaaa. */ $valor['beneficio'].= ';;;'.trim($lote[$i]['cli_carnet']).';;;1;'.$lote[$i]['fecha']."\n"; $beneflst[trim($lote[$i]['cli_carnet'])] = true; } //------------------------------------------------------------- //------------------------------------------------------------- // AFILIADO //------------------------------------------------------------- if( !array_key_exists(trim($lote[$i]['cli_dni']), $afilialst) ) { /* $lotearchivo.='{AFILIADO}'; //$lotearchivo.='GUILLET BEATRIZ;DNI;3782856;;;;HEROES DE MALVINAS;1414;;;;;18/08/1938;F;;;150167448706;00;;;;;;;;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 apellido_nombre Varchar AFILIADO 60 NO Nombre y Apellido de la Persona 2 id_tipo_documento varchar AFILIADO 3 NO Identificador del Tipo de Documento. Requiere Equivalencia. Puede observar La misma a traves de Consultas Parametricas - Afiliados Varios - Tipo de Documento DNI - Documento Nacional de Identidad, LE - Libreta de Enrolamiento. 3 nro_documento Bigint AFILIADO 15 NO Nro de Documento de la Persona 4 id_estado_civil Varchar AFILIADO 2 SI Identif. única del estado civil de una persona. Relacionado con tabla Estado Civil. Requiere Equivalencia. Puede observar la misma a traves de Consultas Parametricas - Afiliados Varios - Estado Civil 5 id_nacionalidad Integer AFILIADO 3 SI Identif. Único de la Nacionalidad.Relacionado con tabla de Nacionalidad. Requiere Equivalencia. Puede observar la misma a traves de Consultas Parametricas - Afiliados Varios - Nacionalidad 6 id_pais Integer AFILIADO 3 SI Identif. Único del País.Relacionado con tabla de Paises. Requiere Equivalencia Ejemplo: 1 = Argentina 7 calle Varchar AFILIADO 30 SI Nombre de la calle del domicilio del afiliado. 8 puerta Varchar AFILIADO 5 SI Numero del domicilio del afiliado. 9 piso Varchar AFILIADO 2 SI Piso del domicilio del afiliado. 10 departamento Varchar AFILIADO 5 SI Letra o numero del departamento del domicilio del afiliado. 11 npostal Varchar AFILIADO 9 SI Se refiere al CUGEO. Requiere equivalencias. Pero dado que admite NULL recomendamos no completarlo. 12 telefono Varchar AFILIADO 20 SI Numero/s de Teléfono del afiliado 13 fecha_nacimiento Date AFILIADO 8 NO Fecha de Nacimiento del afiliado, en formato dd/mm/aaaa. 14 sexo Char AFILIADO 1 NO Sexo del afiliado (F) Femenino (M) Masculino 15 cuit Varchar AFILIADO 15 SI Número de Cuit del afiliado 16 cuil Varchar AFILIADO 15 SI Número de Cuil del afiliado 17 id_beneficio Varchar AFILIADO 12 NO Identificación de un Beneficio o Grupo familiar.Aquí se cargan solo los dados de alta por el Prestador 18 id_parentesco Varchar AFILIADO 4 NO Identif. Único de un Parentesco. Relacionado con tabla Parentescos. Requiere Equivalencia, La misma se pueden obtener a traves de Consultas Parametricas - Afiliados Varios - Parentesco "Ejemplo: 00 - Titular; 01 - Hijo, 02 - Hijo" 19 id_sucursal Integer AFILIADO 2 SI Identif. único una Sucursal de la Obra Social. Relacionado con tabla Corresponsalia. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - Corresponsalias Ejemplo: 0 - Tucuman 20 id_agencia Integer AFILIADO 2 SI Identif. único una Agencia de la Obra Social. Relacionado con tabla Corresponsalia. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - Corresponsalias Ejemplo: 1- Agencia Concepcion 21 id_corresponsalia Integer AFILIADO 2 SI Identif. único una Corresponsalia de la Obra Social. Relacionado con tabla Corresponsalia. Requiere Equivalencia, La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - Corresponsalias Ejemplo: 53 - Corresponsalia Villa Elisa 22 id_afjp Integer AFILIADO 2 SI Identif.único una AFJP-Relacionado con tabla AFJP. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados - AFJP Ejemplo: 1 - Arauca BIT 23 vto_afiliacion Date AFILIADO SI Fecha de vencimiento para la afiliación (acceso a los beneficios). Si es NULL indica que no hay vencimiento, en formato dd/mm/aaaa. 24 t_formulario Integer AFILIADO 11 SI Tipo de formulario es una codificación por la forma en que ingresaron los datos del beneficiario. "Ejemplos: “0” Indefinido, ""1"": Ingreso manual en corresponsalía, ""2"": automático por importación de datos desde el ANSES" 25 fecha_baja Date AFILIADO SI Fecha en la cual el beneficiario fue dado de baja. NULL para los beneficiarios activos, en formato dd/mm/aaaa. 26 Codigo_baja Varchar AFILIADO 10 SI Indicador del motivo de la baja. "Ejemplos: ""FALLE"": Fallecimiento, ""CAMBIO"": Cambio hacia una obra social" */ $valor['afiliado'].= $lote[$i]['cli_nombre'].';'.$lote[$i]['tid_abrev'].';'.$lote[$i]['cli_dni'].';;;;;;;;;;'.$lote[$i]['cli_fecnto'].';'.$lote[$i]['cli_sexo'].';;;'.trim($lote[$i]['cli_carnet']).';00;;;;;;;;'."\n"; $afilialst[trim($lote[$i]['cli_dni'])] = true; } //------------------------------------------------------------- //------------------------------------------------------------- // AMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{AMBULATORIO}'; //$lotearchivo.=$GLOBALS['PAMI']['CUIT'].';;99593;0;0;0;1;0;23/04/2008;;;1;;;150167448706;00'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Cuit Red AMBULATORIO SI Si no hay Red, no se pone nada. 2 Vacío AMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Matrícula Nacional del Profesional Integer AMBULATORIO NO Matricula Nacional del Profesional 4 c_ambulatorio Bigint AMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ID_RED Integer AMBULATORIO 9 SI campo necesario para el sistema a completa con el numero 0 (cero) 6 C_prestador Bigint AMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 7 c_boca_atencion Integer AMBULATORIO 5 NO identif.único de la Boca de Atencion del Prestador 8 c_profesional Integer AMBULATORIO 8 NO campo necesario para el sistema a completa con el numero 0 (cero) 9 f_fecha_atencion date AMBULATORIO NO Fecha de la atención ambulatoria, en formato dd/mm/aaaa. 10 d_estado Varchar AMBULATORIO 12 SI Estado de la atención ambulatoria. 11 d_motivo_rechazo Varchar AMBULATORIO 60 SI Motivo de Rechazo de la atención ambulatoria. 12 id_modalidad_presta Integer AMBULATORIO 2 NO Identif.único de la Modalidad de Prestación. Relacionado con la tabla Modalidad_Prestacion. Requiere Equivalencia, La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - Modalidad de prestacion "Ejemplo: 1=Afiliados de su cápita; 2= Afiliados respaldados bajo el formulario 156 (Orden de Prestación)" 13 n_nro_orden Bigint AMBULATORIO 10 SI Número de orden para Rechazos conformados 14 id_tipo_atencion Integer AMBULATORIO 2 SI Identif.único del tipo de Atención Ambulatorio. Relacionado con tabla de Tipos de Atención. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - Varios - Tipo de Atencion Ejemplo: 1 - Atencion programada a domicilio 15 id_beneficio Varchar AMBULATORIO 12 NO Identificación de un Beneficio o Grupo familiar.Aquí se cargan solo los dados de alta por el Prestador. Relacionado con la tabla de Afiliados. 16 id_parentesco Varchar AMBULATORIO 4 NO "Identif. Único de un Parentesco. En conjunto con el campo ""id_beneficio"", identifican a un Beneficiario. Relacionado con la Tabla de Afiliados. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Afiliados Varios - Parentesco" "Ejemplo: 00 - Titular; 01 - Hijo, 02 - Hijo" */ $valor['ambulatorio'].= $GLOBALS['PAMI']['CUIT'].';;'.$lote[$i]['med_mp'].';0;0;0;1;0;'.$lote[$i]['fecha'].';;;1;;;'.trim($lote[$i]['cli_carnet']).';00'."\n"; //------------------------------------------------------------- // REL_DIAGNOSTICOSXAMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{REL_DIAGNOSTICOSXAMBULATORIO}'; //$lotearchivo.=';;;0;1;A01;2'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_DIAGNOSTICOSXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 2 Vacio REL_DIAGNOSTICOSXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacío REL_DIAGNOSTICOSXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 4 c_ambulatorio Bigint REL_DIAGNOSTICOSXAMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ni_coddiagno Integer REL_DIAGNOSTICOSXAMBULATORIO 2 NO "Código Tipo de Clasificación de Diagnósticos.Relacionado con tabla ""diagnóstico"". Requiere Equivalencia" 6 vch_coddiagnostico Varchar REL_DIAGNOSTICOSXAMBULATORIO 10 NO "Código de Diagnósticos.Relacionado con tabla ""Diagnosticos"". Requiere Equivalencia. La misma se puede obtener desde Consultas Parametricas - Prestaciones - Diagnosticos." Ejemplo: I10 - Hipertension Esencial Primaria. 7 m_tipo_diagnostico Tinyint REL_DIAGNOSTICOSXAMBULATORIO 1 NO Indica si el diagnóstico es Principal o secundario. Ejemplo: 1 - Principal, 2 - Secundario */ $valor['rel_diag_amb'].= ';;;0;1;Z71.9;1'."\n"; //------------------------------------------------------------- //------------------------------------------------------------- // REL_PRACTICASREALIZADASXAMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{REL_PRACTICASREALIZADASXAMBULATORIO}'; //$lotearchivo.=';;;0;1;420101;23/04/2008 00:00;1;1;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_PRACTICASREALIZADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 2 Vacio REL_PRACTICASREALIZADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacío REL_PRACTICASREALIZADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 4 c_ambulatorio Bigint REL_PRACTICASREALIZADASXAMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ni_codpresta Integer REL_PRACTICASREALIZADASXAMBULATORIO 2 NO "Código de Tipo de clasificación de prácticas. Relacionado con tabla ""Practica"". Requiere Equivalencia" 6 vch_codprestacion Varchar REL_PRACTICASREALIZADASXAMBULATORIO 10 NO "Código de práctica. Relacionado con tabla ""práctica"". Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - practicas." Ejemplo: 427101 - Consulta medica 7 f_fecha_practica DateTime REL_PRACTICASREALIZADASXAMBULATORIO NO Fecha y Hora en que se realizó la práctica, en formato dd/mm/aaaa. 8 q_cantidad Integer REL_PRACTICASREALIZADASXAMBULATORIO 3 NO Cantidad de Prácticas Realizadas con el Código de Práctica indicado. 9 id_modalidad_presta Integer REL_PRACTICASREALIZADASXAMBULATORIO 2 NO Identif.único de la Modalidad de Prestación. Relacionado con la tabla Modalidad_Prestacion. Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - modalidad de atencion. "Ejemplo: 1=Afiliados de su capita; 2= Afiliados respaldados bajo el formulario 156 (Orden de Prestación)" 10 n_nro_orden Bigint REL_PRACTICASREALIZADASXAMBULATORIO 10 SI Número de orden para Rechazos conformados */ $valor['rel_pra_real_amb'].= ';;;0;1;'.$lote[$i]['inos_cod'].';'.$lote[$i]['fecha'].' 00:00;1;1;'."\n"; //------------------------------------------------------------- //------------------------------------------------------------- // REL_PRACTICASSOLICITADASXAMBULATORIO //------------------------------------------------------------- /* $lotearchivo.='{REL_PRACTICASSOLICITADASXAMBULATORIO}'; // $lotearchivo.=';;;0;1;420101;23/04/2008 00:00;1;0;'; Id Nombre Campo Tipo de Dato Nombre Entidad Longitud Admite Nulos Descripción Ejemplo 1 Vacio REL_PRACTICASSOLICITADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 2 Vacio REL_PRACTICASSOLICITADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 3 Vacío REL_PRACTICASSOLICITADASXAMBULATORIO Campo Interno del sistema, por lo cual no debe ingresarse 4 c_ambulatorio Bigint REL_PRACTICASSOLICITADASXAMBULATORIO 10 NO campo necesario para el sistema a completa con el numero 0 (cero) 5 ni_codpresta Integer REL_PRACTICASSOLICITADASXAMBULATORIO 2 NO "Código de Tipo de clasificación de prácticas. Relacionado con la tabla ""Practica"". Requiere Equivalencia" 6 vch_codprestacion Varchar REL_PRACTICASSOLICITADASXAMBULATORIO 10 NO "Código de práctica. Relacionado con tabla ""práctica"". Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestaciones - practicas." Ejemplo: 427101 - Consulta medica 7 f_fecha_practica Date REL_PRACTICASSOLICITADASXAMBULATORIO NO Fecha en que se realizó la práctica. en formato dd/mm/aaaa. 8 q_cantidad Integer REL_PRACTICASSOLICITADASXAMBULATORIO 3 NO Cantidad de Practicas Realizadas con el Código de Práctica indicado. 9 c_prestador_aderivar Bigint REL_PRACTICASSOLICITADASXAMBULATORIO 10 SI campo necesario para el sistema a completa con el numero 0 (cero) 10 id_modulo_nomen Integer REL_PRACTICASSOLICITADASXAMBULATORIO 2 SI "Identif.único del Módulo Módulo de prácticas. Relacionado con tabla ""Modulo_nomenclador"". Requiere Equivalencia. La misma se pueden obtener a traves de Consultas Parametricas - Prestador - Modulo nomenclador." */ $valor['rel_pra_sol_amb'].= ';;;0;1;'.$lote[$i]['inos_cod'].';'.$lote[$i]['fecha'].' 00:00;1;0;'."\n"; //------------------------------------------------------------- //Detalle del lote $sep=','; if($lotedetalle==''){$sep='';} $lotedetalle.= $sep.'({ID},'. $lote[$i]['inos_cod'].')'; } } } $lotearchivo = str_replace("{PROFESIONAL}", $valor['profesionales'], $lotearchivo); $lotearchivo = str_replace("{REL_PROFESIONALESXPRESTADOR}", $valor['rel_profesionales'], $lotearchivo); $lotearchivo = str_replace("{BENEFICIO}", $valor['beneficio'], $lotearchivo); $lotearchivo = str_replace("{AFILIADO}", $valor['afiliado'], $lotearchivo); $lotearchivo = str_replace("{AMBULATORIOS}", $itemsAmbulatorio, $lotearchivo); // $lotearchivo = str_replace("{AMBULATORIO}", $valor['ambulatorio'], $lotearchivo); // $lotearchivo = str_replace("{REL_DIAGNOSTICOSXAMBULATORIO}", $valor['rel_diag_amb'], $lotearchivo); // $lotearchivo = str_replace("{REL_PRACTICASREALIZADASXAMBULATORIO}", $valor['rel_pra_real_amb'], $lotearchivo); // $lotearchivo = str_replace("{REL_PRACTICASSOLICITADASXAMBULATORIO}",$valor['rel_pra_sol_amb'], $lotearchivo); //MEDICOS SIN MATRICULA $lotearchivo = str_replace("{SM}","00", $lotearchivo); //$excluidos = $excluidoslst; $resultado['excluidos'] = $excluidoslst; $resultado['total'] = count($loteOrdenado); } //-------------------------------------------------------------- //-------------------------------------------------------------- // (3) Generar el archivo de exportación //-------------------------------------------------------------- if( $continue ) { $fileName = $loteInfo["file"]; $filePath = ''; $file = $filePath.$fileName; $fileHandler = fopen($file, "a+"); fwrite($fileHandler, $lotearchivo); fclose($fileHandler); } //-------------------------------------------------------------- //-------------------------------------------------------------- // (4) /Guardar el lote //-------------------------------------------------------------- if( $continue ) { /* Array ( [lote] => lote_pami_d_01_01_2018_h_01_02_2018_g_10_09_2018_2313 [file] => C:\lote_pami_d_01_01_2018_h_01_02_2018_g_10_09_2018_2313.txt [lstpra] => 644631;645317;644823;645316;645314;645110;645126;645401;645421;645295;645290;645827;645828;645829;645836;645289;645287;645443;645437;644136;644141;639791;645409;644582;644602;645400;645106;645296;639993;644917;645115;645397;644229;645396;644654;644932;645395;645394;645392;645218;645171;644959;644821;644915;645055;645814;638973;639820;639857;644133;640107;644216;644868;644722;645321;645270;645528;645529;645530;645532;645536;645541;646953;645534;646960;646961;646962 [fini] => 01/01/2018 [ffin] => 01/02/2018 ) */ $comentario = 'Rango: '. $loteInfo["fini"] . '-' . $loteInfo["ffin"]; $comentario.= ' | lote nombre: '. $loteInfo["lote"]; $comentario.= ' | archivo nombre: '. $loteInfo["file"]; //Guardar el lote $sql = 'INSERT INTO [pami_presentacion] ( [pam_fecha] ,[pam_comentarios] ,[pan_cantreg] ,[usu_codigo] ) VALUES ( \''. date("Y-m-d H:i:s") .'\' ,\''. $comentario .'\' ,'. $totalPracticas .' ,'. $loteInfo["userid"] .' )'; $rsI = $GLOBALS['dbSQL']->Query($sql); if ( $rsI ) { $idlote = $GLOBALS['dbSQL']->getLastId('pami_presentacion','pam_numero'); if( $idlote ) { $lotedetalle = str_replace("{ID}", $idlote, $lotedetalle); //Guardar el detalle del lote $sql = 'INSERT INTO [pami_presentacion_detalle] ( [pam_numero] ,[pra_numero] ) VALUES '. $lotedetalle; $rsI = $GLOBALS['dbSQL']->Query($sql); if ( $rsI ) { //Se guardo el lote con su detalle return true; //<== EXITO } else { //Error al guardar el detalle del lote $error = 5; $continue = false; } } else { //Error al guardar la cebecera del lote, sin id $error = 4; $continue = false; } } else { //Error al guardar la cebecera del lote $error = 3; $continue = false; } } //-------------------------------------------------------------- return $error; } function exportarLoteAmbulatorio(&$resultInfo) { $resultado = false; if( isset($_REQUEST["desde"]) && !empty($_REQUEST["desde"]) && !is_null($_REQUEST["desde"]) && trim($_REQUEST["desde"])!="" && isset($_REQUEST["hasta"]) && !empty($_REQUEST["hasta"]) && !is_null($_REQUEST["hasta"]) && trim($_REQUEST["hasta"])!="" && isset($_REQUEST["lstpra"]) && !empty($_REQUEST["lstpra"]) && !is_null($_REQUEST["lstpra"]) && trim($_REQUEST["lstpra"])!="" && isset($_REQUEST["lotename"]) && !empty($_REQUEST["lotename"]) && !is_null($_REQUEST["lotename"]) && trim($_REQUEST["lotename"])!="" && isset($_REQUEST["filename"]) && !empty($_REQUEST["filename"]) && !is_null($_REQUEST["filename"]) && trim($_REQUEST["filename"])!="" && isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" ) { $loteInfo = array( "lote" => $_REQUEST["lotename"] ,"file" => $_REQUEST["filename"] ,"lstpra" => $_REQUEST["lstpra"] ,"fini" => $_REQUEST["desde"] ,"ffin" => $_REQUEST["hasta"] ,"userid" => $_REQUEST["uid"] ); $resultado = exportarAmbulatorio( $loteInfo,$resultados ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => $resultados['total'] ,"lote" => $loteInfo['lote'] ,'excl' => $resultados['excluidos'] ); } else { $resultInfo['code'] = resultado; $resultInfo['data'] = array( "total" => 0 ,"error" => "Error al generar la exportación de prácticas ambulatorias" ); } } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "total" => 0 ,"error" => "Parámetros faltantes" ); } } function validarAmbulatorio($loteInfo,&$excluidos) { $continue = false; $error = 1;//Error de conexion $output = ''; $fini = date("d/m/Y",strtotime($loteInfo['fini'])); $ffin = date("d/m/Y",strtotime($loteInfo['ffin'])); $fini_copy = $fini; $ffin_copy = $ffin; $fini = date("Y-m-d",strtotime($fini)); $ffin = date("Y-m-d",strtotime($ffin)); //-------------------------------------------------------------- // (1) Obtener el listado de prácticas ambulatorias //-------------------------------------------------------------- $queryMs = "SELECT * ,FORMAT ( fecha, 'dd/MM/yyyy' ) as fpraform FROM v_practicas_consolidadas_efectores WHERE tipo <> 'I' AND obs_codigo = ".$GLOBALS['PAMI']['OBS_COD']. "AND fecha BETWEEN '".$fini."' AND '".$ffin."'"; //print_r($queryMs);die; $resultadoMs = $GLOBALS['dbSQL']->Query($queryMs); if( $resultadoMs ) { $lote = $GLOBALS['dbSQL']->getAll(); //print_r($lote);die; $totalPracticas = count($lote); if( $totalPracticas > 0 ) { $continue = true; } else { //Nada que exportar $error = 2; $continue = false; } } //-------------------------------------------------------------- $excluidoslst = array(); $loteOrdenado = array(); for($i=0;$i<$totalPracticas;$i++) { $excluir = true; if( !empty($lote[$i]['med_mp']) && !is_null($lote[$i]['med_mp']) && trim($lote[$i]['med_mp'])!="" && !empty($lote[$i]['cli_carnet']) && !is_null($lote[$i]['cli_carnet']) && trim($lote[$i]['cli_carnet'])!="" && !empty($lote[$i]['cli_fecnto']) && !is_null($lote[$i]['cli_fecnto']) && trim($lote[$i]['cli_fecnto'])!="" && !empty($lote[$i]['cli_sexo']) && !is_null($lote[$i]['cli_sexo']) && trim($lote[$i]['cli_sexo'])!="" ) { $excluir = false; } if( $excluir ) { $index=array_push($excluidoslst,$lote[$i]); } } $excluidos = $excluidoslst; //-------------------------------------------------------------- return $error; } function validarExportarLoteAmbulatorio(&$resultInfo) { $resultado = false; if( isset($_REQUEST["desde"]) && !empty($_REQUEST["desde"]) && !is_null($_REQUEST["desde"]) && trim($_REQUEST["desde"])!="" && isset($_REQUEST["hasta"]) && !empty($_REQUEST["hasta"]) && !is_null($_REQUEST["hasta"]) && trim($_REQUEST["hasta"])!="" ) { $loteInfo = array( "fini" => $_REQUEST["desde"] ,"ffin" => $_REQUEST["hasta"] ); $resultado = validarAmbulatorio( $loteInfo,$excluidos ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($excluidos) ,'excl' => $excluidos ); } else { $resultInfo['code'] = resultado; $resultInfo['data'] = array( "total" => 0 ,"error" => "Error al validar el lote de prácticas ambulatorias" ); } } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "total" => 0 ,"error" => "Parámetros faltantes" ); } } //Retorna el listado de Grupos: Nombre function getCmpAutoList($flagActivos=false) { $where = ""; if( $flagActivos ) { $where = " WHERE caut_estado = 1 "; } //Grupos $sql = "SELECT [caut_codigo] ,rtrim(ltrim([caut_nombre])) as caut_nombre ,[caut_estado] ,[caut_destino] ,[caut_tipo] ,[caut_frecuencia] ,[caut_hora] ,(CASE WHEN caut_destino = 0 THEN 'Interno' WHEN caut_destino = 1 THEN 'Externo' END) as destino ,(CASE WHEN caut_frecuencia = 1 THEN 'Diario' WHEN caut_frecuencia = 2 THEN 'Semanal' WHEN caut_frecuencia = 3 THEN 'Mensual' END) as frecuencia FROM campanas_automaticas ".$where." order by 2"; //print_r($sql);die; $grupos = $GLOBALS['dbSQL']->Query($sql); if ( $grupos ) { $grupos = $GLOBALS['dbSQL']->getAll(); } return $grupos; } //Retorna el listado de campañas function getListadoCmpAuto(&$resultInfo) { $flagSoloActivos = false; if( isset($_REQUEST["gsa"]) && !empty($_REQUEST["gsa"]) && !is_null($_REQUEST["gsa"]) ) { $flagSoloActivos = true; } $resultado = getCmpAutoList($flagSoloActivos); if( $resultado ) { //Listar de Usuarios $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"cmps" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de grupos"; } } //-- ESTADISTICAS function registrarEstadistica(&$resultInfo) { $resultado = false; if( isset($_REQUEST["desde"]) && !empty($_REQUEST["desde"]) && !is_null($_REQUEST["desde"]) && trim($_REQUEST["desde"])!="" ) { $loteInfo = array( "fini" => $_REQUEST["desde"] ,"ffin" => $_REQUEST["hasta"] ); $resultado = validarAmbulatorio( $loteInfo,$excluidos ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($excluidos) ,'excl' => $excluidos ); } else { $resultInfo['code'] = resultado; $resultInfo['data'] = array( "total" => 0 ,"error" => "Error al registrar de prácticas ambulatorias" ); } } else { $resultInfo['code'] = 1; $resultInfo['data'] = array( "total" => 0 ,"error" => "Parámetros faltantes" ); } } //--- LD function getIsProfesionalLDOnline($profesional) { $resultado = false; $sql = "SELECT m.med_codigo FROM medicos AS m WHERE m.med_codigo = '".addslashes($profesional)."' AND m.med_web = 1 AND m.med_bloqueado = 0 AND EXISTS ( SELECT 1 FROM dbo.[ldoc_medico_atencion] AS TT2 WHERE TT2.med_codigo = m.med_codigo AND TT2.matn_disponible = 1 AND TT2.matn_fechafin IS NULL )"; //die($sql); //debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { $resultado = true; } } return $resultado; } function getLDListEspecialidadesTotalMedicos() { //AND TT2.matn_fechainicio >= GETDATE() //AND TT3.matn_fechainicio >= GETDATE() $sql = "SELECT TT0.Cod ,TT0.Esp ,(TT0.totMed + (CASE WHEN TT0.totMedEspecialidades IS NULL THEN 0 ELSE TT0.totMedEspecialidades END)) AS totMed FROM ( SELECT T0.[esp_codigo] AS Cod ,T0.[esp_denom] AS Esp ,(SELECT COUNT(T1.esp_codigo) FROM dbo.[medicos] AS T1 WHERE T1.esp_codigo = T0.esp_codigo AND T1.med_bloqueado = 0 AND EXISTS ( SELECT 1 FROM dbo.[ldoc_medico_atencion] AS TT2 WHERE TT2.med_codigo = T1.med_codigo AND TT2.matn_disponible = 1 AND TT2.matn_fechafin IS NULL ) GROUP BY T1.esp_codigo ) AS totMed ,(SELECT COUNT(T2.esp_codigo) FROM dbo.[med_especialidades] AS T2 INNER JOIN dbo.[medicos] AS T3 ON T2.med_codigo=T3.med_codigo WHERE T2.esp_codigo = T0.esp_codigo AND T3.med_bloqueado = 0 AND EXISTS ( SELECT 1 FROM dbo.[ldoc_medico_atencion] AS TT3 WHERE TT3.med_codigo = T3.med_codigo AND TT3.matn_disponible = 1 AND TT3.matn_fechafin IS NULL ) GROUP BY T2.esp_codigo ) AS totMedEspecialidades FROM dbo.[especial] AS T0 ) TT0 WHERE TT0.totMed IS NOT NULL ORDER BY TT0.Esp"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function getLDLstEspecialidadesTotXMed(&$resultInfo) { $resultado = getLDListEspecialidadesTotalMedicos(); if( $resultado ) { //Listar Medicos Disponibles x Especialidad $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listEsp" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de especialidades"; } } function getLD_ListProfesionales(&$profesionales,$flagRecientes=false,$especialidad=false,$idCliente=false) { $sqlFR = array(); $sqlFR[0] = ""; $sqlFR[1] = ""; $sqlSub = ""; if( $flagRecientes ) { $sqlSub = " INNER JOIN ( SELECT DISTINCT med_codigo FROM dbo.turnos WHERE tur_asiste = 1 AND cli_codigo = ".$idCliente." AND tur_fecha >= DATEADD(month, -6, (DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0))) AND tur_fecha < (DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)) ) AS mr ON m.med_codigo = mr.med_codigo "; } if( $especialidad ) { $sqlSub = " SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero ,m.med_rango_dias AS rango ,m.med_mp AS Mat FROM medicos AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos as t ON m.tit_codigo = t.tit_codigo WHERE m.med_web = 1 AND m.med_bloqueado = 0 AND m.esp_codigo = ".$especialidad; $sqlSub.= " UNION "; $sqlSub.= " SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero ,m.med_rango_dias AS rango ,m.med_mp AS Mat FROM medicos AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos as t ON m.tit_codigo = t.tit_codigo LEFT JOIN med_especialidades AS me ON m.med_codigo = me.med_codigo WHERE m.med_web = 1 AND m.med_bloqueado = 0 AND me.esp_codigo = ".$especialidad; $sql = " SELECT TIN.CodM ,TIN.NomM ,TIN.EspM ,TIN.TitM ,TIN.MedMsg ,TIN.turnero ,TIN.rango ,TIN.Mat ,(SELECT (COUNT(*) * 10) FROM ldoc_paciente_tokens as tld WHERE tld.med_codigo = TIN.CodM AND ptock_finalizado = 0) AS TotME ,(CASE WHEN PI.medf_src IS NULL THEN '' ELSE PI.medf_src END) AS Fot ,(SELECT TMP.mpre_precio FROM dbo.ldoc_medico_precios AS TMP WHERE TMP.med_codigo = TIN.CodM AND TMP.mpre_vigente = 1 AND TMP.mpre_fechafin IS NULL) As MTar FROM (".$sqlSub.") AS TIN LEFT JOIN medico_foto AS PI ON TIN.CodM = PI.med_codigo WHERE EXISTS ( SELECT 1 FROM dbo.[ldoc_medico_atencion] AS TT2 WHERE TT2.med_codigo = TIN.CodM AND TT2.matn_disponible = 1 AND TT2.matn_fechafin IS NULL ) ORDER BY TIN.NomM ASC"; } else { $sql = "SELECT m.med_codigo AS CodM ,m.med_nombre AS NomM ,e.esp_denom AS EspM ,t.tit_abrev AS TitM ,m.med_webcoment AS MedMsg ,m.med_turnos_web AS turnero ,m.med_rango_dias AS rango ,m.med_mp AS Mat ,(SELECT (COUNT(*) * 10) FROM ldoc_paciente_tokens as tld WHERE tld.med_codigo = m.med_codigo AND ptock_finalizado = 0) AS TotME ,(CASE WHEN PI.medf_src IS NULL THEN '' ELSE PI.medf_src END) AS Fot ,(SELECT TMP.mpre_precio FROM dbo.ldoc_medico_precios AS TMP WHERE TMP.med_codigo = m.med_codigo AND TMP.mpre_vigente = 1 AND TMP.mpre_fechafin IS NULL) As MTar FROM medicos AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo INNER JOIN tbl_titulos AS t ON m.tit_codigo = t.tit_codigo LEFT JOIN medico_foto AS PI ON PI.med_codigo = m.med_codigo ".$sqlSub." WHERE m.med_web = 1 AND m.med_bloqueado = 0 AND EXISTS ( SELECT 1 FROM dbo.[ldoc_medico_atencion] AS TT2 WHERE TT2.med_codigo = m.med_codigo AND TT2.matn_disponible = 1 AND TT2.matn_fechafin IS NULL ) ORDER BY m.med_nombre ASC"; } //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $profesionales = $GLOBALS['dbSQL']->getAll(); for($i=0;$i count($profesionales) ,"listProf" => $profesionales ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de profesionales"; } } function getLD_SalaVirtualProfesional($profesional,&$pacientes,&$pacientesRC,&$estado) { $pacientes = array(); $estado = false; //estado $sql = "SELECT * FROM dbo.ldoc_medico_atencion WHERE med_codigo = '".addslashes($profesional)."' AND matn_disponible = 1 AND matn_fechafin IS NULL"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) > 0) { $estado = true; } // $cortesia = "(CASE // WHEN datepart(hour, GETDATE()) BETWEEN 5 and 12 // THEN 'Buenos días' // WHEN datepart(hour, GETDATE()) BETWEEN 13 and 20 // THEN 'Buenas tardes' // WHEN datepart(hour, GETDATE()) > 21 // THEN 'Buenas noches' // END)"; $cortesia = "(datepart(hour, GETDATE()))"; //pacientes $sql = "SELECT tld.ptock_numero AS REF ,tld.med_codigo AS MCOD ,tld.cli_codigo AS CCOD ,tld.ptock_token AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,tld.ptock_fecha_vto AS FVTO ,tld.ptock_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,CONCAT(cl.cli_tel_cod_area,cl.cli_tel_numero) AS TEL ,cl.cli_tel2 AS TEL2 ,(DATEDIFF(hour, ptock_fecha, GETDATE())) AS MEspH ,(DATEDIFF(minute, ptock_fecha, GETDATE())) AS MEspM ,'m' as TE ,'0' as TEV ,".$cortesia." AS MCor ,ptock_triaje AS Triaje FROM ldoc_paciente_tokens as tld INNER JOIN clientes as cl ON cl.cli_codigo = tld.cli_codigo WHERE tld.med_codigo = '".addslashes($profesional)."' AND tld.ptock_finalizado = 0"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $pacientes = false; } else { $pacientes = $GLOBALS['dbSQL']->getAll(); } //pacientes reconsulta $sql = "SELECT tld.ptock_numero AS REF ,tld.med_codigo AS MCOD ,tld.cli_codigo AS CCOD ,tld.ptock_token AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,tld.ptock_fecha_vto AS FVTO ,tld.ptock_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,CONCAT(cl.cli_tel_cod_area,cl.cli_tel_numero) AS TEL ,cl.cli_tel2 AS TEL2 ,(DATEDIFF(hour, ptock_fecha, GETDATE())) AS MEspH ,(DATEDIFF(minute, ptock_fecha, GETDATE())) AS MEspM ,'m' as TE ,'0' as TEV ,".$cortesia." AS MCor ,t2.ptockrc_numero AS REFRC ,'' AS Triaje FROM ldoc_paciente_tokens as tld INNER JOIN clientes as cl ON cl.cli_codigo = tld.cli_codigo INNER JOIN ldoc_paciente_token_reconsulta as t2 ON tld.ptock_numero = t2.ptock_numero WHERE tld.med_codigo = '".addslashes($profesional)."' AND ptockrc_fecha_uso IS NULL"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $pacientesRC = false; } else { $pacientesRC = $GLOBALS['dbSQL']->getAll(); } return true; } function getLDSalaVirtual(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"]) ) { $profesional = $_REQUEST["idpro"]; $resultado = getLD_SalaVirtualProfesional($profesional,$pacientes,$pacientesRC,$estado); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "listPacientes" => $pacientes ,"listPacientesRC" => $pacientesRC ,"estadoSala" => $estado ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function validarLDPacienteConvenioUmbral($profesional,$paciente,&$estado,&$flagSG,&$error) { $error = 0; $estado = LD_CONSULTA_INVALIDA; //-------------------- //Medico //-------------------- $sql = "SELECT med_codigo ,med_nombre ,med_dni FROM medicos m WHERE m.med_codigo = '".addslashes($profesional)."' AND m.med_web = 1 AND m.med_bloqueado = 0"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 1;return true;//error al leer el medico } $medicoInfo = $GLOBALS['dbSQL']->getAll(); if(count($medicoInfo)==0){$error = 1;return true;}//error medico no existe o esta bloqueado //-------------------- //Cliente //-------------------- $sql = "SELECT cli_codigo ,tid_codigo ,cli_dni ,obs_codigo ,obsp_cod FROM clientes WHERE cli_codigo = '".addslashes($paciente)."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 2; return true;//error al leer el cliente } $clienteInfo = $GLOBALS['dbSQL']->getAll(); if(count($clienteInfo)==0){$error = 2;return true;}//error cliente no existe o esta bloqueado //-------------------- if( $GLOBALS['LD_TELEMEDICINA_COBERTURA_SEGUROMEDICO'] ) { //-------------------- //Obra Social //-------------------- // $sql = "SELECT obs_lock // FROM obrasoc // WHERE obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."'"; $sql = "SELECT ldsmtel_vigente FROM ldoc_seguro_medico_telemedicina WHERE obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 3;return true;//error al leer la obra social } $obrasocialInfo = $GLOBALS['dbSQL']->getAll(); if(count($obrasocialInfo)==0){$error = 3;return true;}//error Obra Social no existe if( intval($obrasocialInfo[0]["ldsmtel_vigente"]) !== 1 ) { $error = 4; $estado = LD_CONSULTA_C_COSTO; return true;//error obra social bloqueada } else { $flagSG = array("sg"=>$clienteInfo[0]["obs_codigo"],"st"=>true); } //-------------------- //-------------------- //Obra Social - Plan //-------------------- $sql = "SELECT obs_codigo, obsp_cod FROM obsplan WHERE obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."' AND obsp_cod = '".addslashes($clienteInfo[0]["obsp_cod"])."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 5;return true;//error al leer el plan de la obra social } $obrasocialPlanInfo = $GLOBALS['dbSQL']->getAll(); if(count($obrasocialPlanInfo)==0) { $error = 5; $estado = LD_CONSULTA_C_COSTO; return true; }//error Plan de la Obra Social no existe //-------------------- //-------------------- //medico convenio //-------------------- $sql = "SELECT med_codigo ,obs_codigo ,(CASE WHEN obm_maxdia IS NULL THEN 0 ELSE obm_maxdia END) as umbral FROM obsmed WHERE med_codigo = '".addslashes($profesional)."' AND obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 6; $estado = LD_CONSULTA_C_COSTO; return true;//error al leer el convenio del profesional } $medicoConvenioInfo = $GLOBALS['dbSQL']->getAll(); if(count($medicoConvenioInfo)==0) { $error = 6; $estado = LD_CONSULTA_C_COSTO; return true; }//error profesinal no tiene convenio con la OS del cliente else { $umbral = intval($medicoConvenioInfo[0]["umbral"]); if( $umbral > 0 ) { //Validar Umbral $sql = "SELECT COUNT([tur_numero]) As TotTur FROM [turnos] WHERE [med_codigo] = '".addslashes($profesional)."' AND [obs_codigo] = '".addslashes($clienteInfo[0]["obs_codigo"])."' AND [tur_fecha] = '". date("Y-m-d")." 00:00:00.000"."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $TotTur=0; $rs = $GLOBALS['dbSQL']->getAll(); $totalTurnosObs = count($rs); if($totalTurnosObs > 0) { if( $totalTurnosObs >= $umbral) { //El medico si tiene convenio pero supero el umbral $estado = LD_CONSULTA_C_COSTO; $error = 8; $estado = LD_CONSULTA_C_COSTO; return true; } else { //El medico si tiene convenio y no supero el umbral $estado = LD_CONSULTA_S_COSTO; } } else { //El medico si tiene convenio y no supero el umbral $estado = LD_CONSULTA_S_COSTO; } } } else { //El medico si tiene convenio $estado = LD_CONSULTA_S_COSTO; } } //-------------------- //paciente primer consulta //-------------------- if( $GLOBALS['LD_PRIMER_CONSULTA_CON_COSTO'] ) { $sql = "SELECT SUM(TF.TOTAL) AS TOTALF FROM (SELECT COUNT(tur_numero) AS TOTAL FROM turnos WHERE cli_codigo = '".addslashes($paciente)."' AND tur_asiste = 1 UNION SELECT COUNT(pra_numero) AS TOTAL FROM practica WHERE cli_codigo = '".addslashes($paciente)."' )AS TF"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 7; $estado = LD_CONSULTA_C_COSTO; return true;//error al leer la cantidad de turnos/praciticas previas del paciente } $turnosInfo = $GLOBALS['dbSQL']->getAll(); if(count($turnosInfo)==0) { $error = 7; $estado = LD_CONSULTA_C_COSTO; return true; }//El paciente no tiene turnos/praciticas previas, es la primera else { if( intval($turnosInfo[0]["TOTALF"]) <= 0 ) { $error = 7; $estado = LD_CONSULTA_C_COSTO; } else { //El paciente tiene turnos/praciticas previas $estado = LD_CONSULTA_S_COSTO; } } } } else { if( $error === 0) { $estado = LD_CONSULTA_C_COSTO; } } return true; } function validarLDPacienteConvenioUmbral_old($profesional,$paciente,&$estado,&$error) { $error = 0; $estado = LD_CONSULTA_INVALIDA; //-------------------- //Medico //-------------------- $sql = "SELECT med_codigo ,med_nombre ,med_dni FROM medicos m WHERE m.med_codigo = '".addslashes($profesional)."' AND m.med_web = 1 AND m.med_bloqueado = 0"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 1;return true;//error al leer el medico } $medicoInfo = $GLOBALS['dbSQL']->getAll(); if(count($medicoInfo)==0){$error = 1;return true;}//error medico no existe o esta bloqueado //-------------------- //Cliente //-------------------- $sql = "SELECT cli_codigo ,tid_codigo ,cli_dni ,obs_codigo ,obsp_cod FROM clientes WHERE cli_codigo = '".addslashes($paciente)."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 2; return true;//error al leer el cliente } $clienteInfo = $GLOBALS['dbSQL']->getAll(); if(count($clienteInfo)==0){$error = 2;return true;}//error cliente no existe o esta bloqueado //-------------------- //-------------------- //Obra Social //-------------------- $sql = "SELECT obs_lock FROM obrasoc WHERE obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 3;return true;//error al leer la obra social } $obrasocialInfo = $GLOBALS['dbSQL']->getAll(); if(count($obrasocialInfo)==0){$error = 3;return true;}//error Obra Social no existe if( intval($obrasocialInfo[0]["obs_lock"]) === 1 ) { $error = 4; $estado = LD_CONSULTA_C_COSTO; return true;//error obra social bloqueada } //-------------------- //-------------------- //Obra Social - Plan //-------------------- $sql = "SELECT obs_codigo, obsp_cod FROM obsplan WHERE obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."' AND obsp_cod = '".addslashes($clienteInfo[0]["obsp_cod"])."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 5;return true;//error al leer el plan de la obra social } $obrasocialPlanInfo = $GLOBALS['dbSQL']->getAll(); if(count($obrasocialPlanInfo)==0) { $error = 5; $estado = LD_CONSULTA_C_COSTO; return true; }//error Plan de la Obra Social no existe //-------------------- //-------------------- //medico convenio //-------------------- if( $GLOBALS['LD_TELEMEDICINA_COBERTURA_SEGUROMEDICO'] ) { $sql = "SELECT med_codigo ,obs_codigo ,(CASE WHEN obm_maxdia IS NULL THEN 0 ELSE obm_maxdia END) as umbral FROM obsmed WHERE med_codigo = '".addslashes($profesional)."' AND obs_codigo = '".addslashes($clienteInfo[0]["obs_codigo"])."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 6; $estado = LD_CONSULTA_C_COSTO; return true;//error al leer el convenio del profesional } $medicoConvenioInfo = $GLOBALS['dbSQL']->getAll(); if(count($medicoConvenioInfo)==0) { $error = 6; $estado = LD_CONSULTA_C_COSTO; return true; }//error profesinal no tiene convenio con la OS del cliente else { $umbral = intval($medicoConvenioInfo[0]["umbral"]); if( $umbral > 0 ) { //Validar Umbral $sql = "SELECT COUNT([tur_numero]) As TotTur FROM [turnos] WHERE [med_codigo] = '".addslashes($profesional)."' AND [obs_codigo] = '".addslashes($clienteInfo[0]["obs_codigo"])."' AND [tur_fecha] = '". date("Y-m-d")." 00:00:00.000"."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $TotTur=0; $rs = $GLOBALS['dbSQL']->getAll(); $totalTurnosObs = count($rs); if($totalTurnosObs > 0) { if( $totalTurnosObs >= $umbral) { //El medico si tiene convenio pero supero el umbral $estado = LD_CONSULTA_C_COSTO; $error = 8; $estado = LD_CONSULTA_C_COSTO; return true; } else { //El medico si tiene convenio y no supero el umbral $estado = LD_CONSULTA_S_COSTO; } } else { //El medico si tiene convenio y no supero el umbral $estado = LD_CONSULTA_S_COSTO; } } } else { //El medico si tiene convenio $estado = LD_CONSULTA_S_COSTO; } } } //-------------------- //paciente primer consulta //-------------------- if( $GLOBALS['LD_PRIMER_CONSULTA_CON_COSTO'] ) { $sql = "SELECT SUM(TF.TOTAL) AS TOTALF FROM (SELECT COUNT(tur_numero) AS TOTAL FROM turnos WHERE cli_codigo = '".addslashes($paciente)."' AND tur_asiste = 1 UNION SELECT COUNT(pra_numero) AS TOTAL FROM practica WHERE cli_codigo = '".addslashes($paciente)."' )AS TF"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 7; $estado = LD_CONSULTA_C_COSTO; return true;//error al leer la cantidad de turnos/praciticas previas del paciente } $turnosInfo = $GLOBALS['dbSQL']->getAll(); if(count($turnosInfo)==0) { $error = 7; $estado = LD_CONSULTA_C_COSTO; return true; }//El paciente no tiene turnos/praciticas previas, es la primera else { if( intval($turnosInfo[0]["TOTALF"]) <= 0 ) { $error = 7; $estado = LD_CONSULTA_C_COSTO; } else { //El paciente tiene turnos/praciticas previas $estado = LD_CONSULTA_S_COSTO; } } } return true; } function getLDValidarPaciente(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"])&& isset($_REQUEST["idpac"]) && !empty($_REQUEST["idpac"]) && !is_null($_REQUEST["idpac"]) ) { $paciente = $_REQUEST["idpac"]; $profesional = $_REQUEST["idpro"]; $flagSG = false; $estado = false; $error = false; $resultado = validarLDPacienteConvenioUmbral($profesional,$paciente,$estado,$flagSG,$error); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "estado" => $estado ,"resSG" => $flagSG ,"error" => $error ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function saveAuditoria($parametros,$type) { $sql = "INSERT INTO ldoc_auditoria ( tpau_codigo, aud_values, aud_fecha ) VALUES ( (SELECT tpau_codigo FROM dbo.ldoc_tipoauditoria WHERE tpau_abrev = '$type') ,'$parametros' , GETDATE() )"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la insercion return false; } return true; } function umbralHorasCierreSesion($fechaRecord) { $date1 = new DateTime($fechaRecord); $date2 = new DateTime("now"); $diff = $date1->diff($date2); $mins = $diff->y * ((24*60) *365); $mins+= $diff->m * ((24*60) *30); $mins+= $diff->d * (24*60); $mins+= $diff->h * 60; $mins+= $diff->i; // DateInterval Object // ( // [y] => 0 // [m] => 0 // [d] => 1 // [h] => 4 // [i] => 15 // [s] => 9 // [weekday] => 0 // [weekday_behavior] => 0 // [first_last_day_of] => 0 // [invert] => 0 // [days] => 1 // [special_type] => 0 // [special_amount] => 0 // [have_weekday_relative] => 0 // [have_special_relative] => 0 // ) if($mins >= UMBRAL_MAX_SESION_LD_OPEN) { return true; } return false; } function sv_action_prof_status($profesional,$flagStatus) { $disponible = 0; if( $flagStatus ){ $disponible = 1; } if( $disponible === 1 ) { //buscar si existe un registro abierto $sql = "SELECT * FROM dbo.ldoc_medico_atencion WHERE med_codigo = '".addslashes($profesional)."' AND matn_disponible = 1 AND matn_fechafin IS NULL"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda return ERROR_SEARCH_OPENRECORD_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) > 0) { $auditValores = http_build_query($rs[0]); saveAuditoria($auditValores, SASCP); /* Array ( [0] => Array ( [matn_numero] => 1 [med_codigo] => 925 [matn_disponible] => 1 [matn_fechainicio] => 2020-03-24 12:13:51.177 [matn_fechafin] => ) ) */ //Cierro el registro abierto $sql = "UPDATE dbo.ldoc_medico_atencion SET matn_disponible = 0, matn_fechafin = GETDATE() WHERE matn_numero = '".addslashes($rs[0]['matn_numero'])."' AND matn_disponible = 1 AND matn_fechafin IS NULL"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_UPDATE_OPENRECORD_LD; } } //Inserto un nuevo registro abierto $sql = "INSERT INTO dbo.ldoc_medico_atencion ( med_codigo ,matn_disponible ,matn_fechainicio ,matn_fechafin ) VALUES ( '".addslashes($profesional)."' ,1 ,GETDATE() ,NULL )"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_UPDATE_OPENRECORD_LD; } } else { //buscar si existe un registro abierto $sql = "SELECT * FROM dbo.ldoc_medico_atencion WHERE med_codigo = '".addslashes($profesional)."' AND matn_disponible = 1 AND matn_fechafin IS NULL"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda return ERROR_SEARCH_OPENRECORD_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) <= 0) { $auditValores = 'med_codigo='.$profesional.'&fecha='.date("Y-m-d H:i:s"); saveAuditoria($auditValores, CSSSAP); } elseif(count($rs) > 0) { $fechaRecord = substr($rs[0]['matn_fechainicio'], 0, 19); if( umbralHorasCierreSesion($fechaRecord) ) { $auditValores = http_build_query($rs[0]); saveAuditoria($auditValores, SCLE); } //Cierro el registro abierto $sql = "UPDATE dbo.ldoc_medico_atencion SET matn_disponible = 0, matn_fechafin = GETDATE() WHERE matn_numero = '".addslashes($rs[0]['matn_numero'])."'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_UPDATE_OPENRECORD_LD; } } } return true; } function handleSVAccion($accion,$accionParametro,$profesional) { $res = false; switch($accion) { case SV_ACTION_PROF_ONLINE: { $res = sv_action_prof_status($profesional,true); } break; case SV_ACTION_PROF_OFFLINE: { $res = sv_action_prof_status($profesional,false); } break; } return $res; } function getLDSalaVirtualAccion(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"])&& isset($_REQUEST["tac"]) && !empty($_REQUEST["tac"]) && !is_null($_REQUEST["tac"]) ) { $accion = $_REQUEST["tac"]; $accionParametro = false; $profesional = $_REQUEST["idpro"]; if( isset($_REQUEST["tacp"]) && !empty($_REQUEST["tacp"]) && !is_null($_REQUEST["tacp"]) ) { $accionParametro = $_REQUEST["tacp"]; } $accionRes = handleSVAccion($accion,$accionParametro,$profesional); $resultado = getLD_SalaVirtualProfesional($profesional,$pacientes,$pacientesRC,$estado); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "acres" => $accionRes ,"listPacientes" => $pacientes ,"listPacientesRC" => $pacientesRC ,"estadoSala" => $estado ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function getLD_GuardarReconsulta($profesional,$referencia) { //buscar si existe un registro $sql = "SELECT 1 FROM dbo.ldoc_paciente_tokens WHERE med_codigo = '".addslashes($profesional)."' AND ptock_numero = '".addslashes($referencia)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda return ERROR_SEARCH_OPENRECORDRC_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) <= 0) { $auditValores = 'med_codigo='.$profesional.'&referencia='.$referencia; saveAuditoria($auditValores, RSCO); } else { //Inserto un nuevo por posible reconsulta $sql = "INSERT INTO dbo.ldoc_paciente_token_reconsulta ( ptock_numero ,ptockrc_fecha ,ptockrc_fecha_uso ,ptockrc_satisfaccion ) VALUES ( '".addslashes($referencia)."' ,GETDATE() ,NULL ,NULL )"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_INSERT_OPENRECORDRC_LD; } return true; } return false; } function getLDGuardarReconsulta(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"])&& isset($_REQUEST["ref"]) && !empty($_REQUEST["ref"]) && !is_null($_REQUEST["ref"]) ) { $referencia = $_REQUEST["ref"]; $profesional = $_REQUEST["idpro"]; $resultadoRC = getLD_GuardarReconsulta($profesional,$referencia); if( $resultadoRC ) { $resultado = getLD_SalaVirtualProfesional($profesional,$pacientes,$pacientesRC,$estado); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultadoRC ,"listPacientes" => $pacientes ,"listPacientesRC" => $pacientesRC ,"estadoSala" => $estado ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function getLD_FinalizarReconsulta($profesional,$referencia,$idreconsulta) { //buscar si existe un registro $sql = "SELECT 1 FROM dbo.ldoc_paciente_tokens as t1 INNER JOIN dbo.ldoc_paciente_token_reconsulta as t2 ON t1.ptock_numero = t2.ptock_numero WHERE t1.med_codigo = '".addslashes($profesional)."' AND t1.ptock_numero = '".addslashes($referencia)."' AND t2.ptockrc_numero = '".addslashes($idreconsulta)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda return ERROR_SEARCH_OPENRECORDRCF_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) <= 0) { $auditValores = 'med_codigo='.$profesional.'&referencia='.$referencia.'&idreconsulta='.$idreconsulta; saveAuditoria($auditValores, RSCO); } else { //Cierro la reconsulta $sql = "UPDATE dbo.ldoc_paciente_token_reconsulta SET ptockrc_fecha_uso = GETDATE() WHERE ptockrc_numero '".addslashes($idreconsulta)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_UPDATE_OPENRECORDRC_LD; } return true; } return false; } //No implementada function getLDFinalizarReconsulta(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"])&& isset($_REQUEST["ref"]) && !empty($_REQUEST["ref"]) && !is_null($_REQUEST["ref"]) && isset($_REQUEST["idrec"]) && !empty($_REQUEST["idrec"]) && !is_null($_REQUEST["idrec"]) ) { $referencia = $_REQUEST["ref"]; $profesional = $_REQUEST["idpro"]; $idreconsulta = $_REQUEST["idrec"]; $resultadoRC = getLD_FinalizarReconsulta($profesional,$referencia,$idreconsulta); if( $resultadoRC ) { $resultado = getLD_SalaVirtualProfesional($profesional,$pacientes,$pacientesRC,$estado); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultadoRC ,"listPacientes" => $pacientes ,"listPacientesRC" => $pacientesRC ,"estadoSala" => $estado ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function setLD_FinalizarConsulta($referencia,$comentario,$comentariop,$profesional) { //buscar si existe un registro $sql = "SELECT t1.med_codigo as MED, t1.cli_codigo as CLI FROM dbo.ldoc_paciente_tokens as t1 WHERE t1.ptock_numero = '".addslashes($referencia)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda return ERROR_SEARCH_OPENRECORD_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) <= 0) { $auditValores = 'referencia='.$referencia; saveAuditoria($auditValores, CACNE); } else { $profesional = $rs[0]['MED']; $cliente = $rs[0]['CLI']; //Cierro la consulta $sql = "UPDATE dbo.ldoc_paciente_tokens SET ptock_finalizado = 1, ptock_fecha_confirmacion = GETDATE(), ptock_observacion = '".addslashes($comentario)."' WHERE ptock_numero = '".addslashes($referencia)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_UPDATE_OPENRECORD_LD; } //Grabar Hx Resumida $sql = " INSERT INTO dbo.[cli_diagnosticos] ( [cli_codigo] ,[cd_item] ,[cd_fecha] ,[cd_observ] ,[cd_tratam] ,[med_codigo] ,[cd_motivo] ) VALUES ( '".addslashes($cliente)."' ,(SELECT (CASE WHEN TT1.ITEM IS NULL THEN 1 ELSE TT1.ITEM + 1 END) FROM (SELECT MAX(cd_item) AS ITEM FROM cli_diagnosticos WHERE cli_codigo = '".addslashes($cliente)."') AS TT1) ,GETDATE() ,'".addslashes($comentario)."' ,NULL ,'".addslashes($profesional)."' ,NULL )"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_INSERT_COMENTMEDHX_LD; } //Grabar Comentario para el paciente $sql = " INSERT INTO dbo.[ldoc_comentario_medico_paciente_token] ( [ptock_numero] ,[cmpt_fecha] ,[cmpt_observacion] ) VALUES ( '".addslashes($referencia)."' ,GETDATE() ,'".addslashes($comentariop)."' )"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización return ERROR_INSERT_COMENTMEDPAC_LD; } return true; } return false; } function setLDConfirmarConsulta(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["ref"]) && !empty($_REQUEST["ref"]) && !is_null($_REQUEST["ref"]) ) { $referencia = $_REQUEST["ref"]; $comentario = ""; $comentariop = ""; if( isset($_REQUEST["obs"]) && !empty($_REQUEST["obs"]) && !is_null($_REQUEST["obs"]) ) { $comentario = $_REQUEST["obs"]; } if( isset($_REQUEST["obsp"]) && !empty($_REQUEST["obsp"]) && !is_null($_REQUEST["obsp"]) ) { $comentariop = $_REQUEST["obsp"]; } $resultadoRC = setLD_FinalizarConsulta($referencia,$comentario,$comentariop,$profesional); if( $resultadoRC ) { $resultado = getLD_SalaVirtualProfesional($profesional,$pacientes,$pacientesRC,$estado); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultadoRC ,"listPacientes" => $pacientes ,"listPacientesRC" => $pacientesRC ,"estadoSala" => $estado ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function getLD_ProfPacientesAtendidos($profesional,&$pacientes,$rango=false) { $pacientes = array(); if(!$rango) { //Por defecto las ultimas 24hrs $rango = " AND DATEDIFF(minute, ptock_fecha_confirmacion, GETDATE()) <= " . LAST_N_HOURS; } else if(is_array($rango)) { $rango = " AND ptock_fecha_confirmacion BETWEEN ".$rango["desde"]." AND ". $rango["hasta"]; } else { // define ('LAST_24_HOURS', 1440); // 24 HORAS // define ('LAST_36_HOURS', 2160); // 36 HORAS // define ('LAST_48_HOURS', 2880); // 48 HORAS // define ('LAST_72_HOURS', 4320); // 72 HORAS $r = LAST_N_HOURS; switch($rango) { case LAST_24_HOURS: case LAST_36_HOURS: case LAST_48_HOURS: case LAST_72_HOURS: {$r = $rango;}break; } $rango = " AND DATEDIFF(minute, ptock_fecha_confirmacion, GETDATE()) <= " . $r; } //pacientes $sql = "SELECT tld.ptock_numero AS REF ,tld.med_codigo AS MCOD ,tld.cli_codigo AS CCOD ,tld.ptock_token AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,CONVERT(VARCHAR(10),tld.ptock_fecha_confirmacion,103) AS FCONF ,CONVERT(VARCHAR(10),tld.ptock_fecha_confirmacion,108) AS HCONF ,tld.ptock_fecha_vto AS FVTO ,tld.ptock_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,CONCAT(cl.cli_tel_cod_area,cl.cli_tel_numero) AS TEL ,cl.cli_tel2 AS TEL2 FROM ldoc_paciente_tokens as tld INNER JOIN clientes as cl ON cl.cli_codigo = tld.cli_codigo WHERE tld.med_codigo = '".addslashes($profesional)."' AND tld.ptock_finalizado = 1" . $rango; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $pacientes = false; } else { $pacientes = $GLOBALS['dbSQL']->getAll(); } return true; } function getLDAntendidos(&$resultInfo) { $profesional = false; $pacientes = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"]) ) { $profesional = $_REQUEST["idpro"]; $rango = false; if( isset($_REQUEST["rdes"]) && !empty($_REQUEST["rdes"]) && !is_null($_REQUEST["rdes"]) && isset($_REQUEST["rhasta"]) && !empty($_REQUEST["rhasta"]) && !is_null($_REQUEST["rhasta"]) ) { $rango = array( "desde" => $_REQUEST["rdes"] ,"hasta" => $_REQUEST["rhasta"] ); } if( isset($_REQUEST["fpre"]) && !empty($_REQUEST["fpre"]) && !is_null($_REQUEST["fpre"]) ) { $rango = $_REQUEST["fpre"]; } $resultado = getLD_ProfPacientesAtendidos($profesional,$pacientes,$rango); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"listPacientes" => $pacientes ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function getLD_Hx($cliente,&$diagnosticos,&$diagnosticosFL) { $pacientes = array(); //diagnosticos $sql = "SELECT cd.cli_id AS HXID ,cd.cli_codigo AS CLIID ,cd.cd_item AS ITEM ,CONVERT(VARCHAR(10),cd.cd_fecha,103) AS FCONF ,CONVERT(VARCHAR(10),cd.cd_fecha,108) AS HCONF ,cd.cd_observ AS CMT ,cd.cd_tratam AS TRAT ,cd.med_codigo AS MEDID ,cd.cd_motivo AS MOTIV ,m.med_nombre as MED ,t.tit_abrev AS TitM ,ISNULL(cd_encode,0) as flagencode ,ISNULL(cd_derivacion,0) as flagderivacion FROM cli_diagnosticos as cd INNER JOIN medicos as m ON m.med_codigo = cd.med_codigo INNER JOIN tbl_titulos as t ON m.tit_codigo = t.tit_codigo WHERE cd.cli_codigo = '".addslashes($cliente)."' ORDER BY cd.cd_fecha DESC, cd_item DESC"; /* $sql = "SELECT tld.ptock_numero AS REF ,tld.med_codigo AS MCOD ,me.med_nombre AS MNOMBRE ,tld.cli_codigo AS CCOD ,tld.ptock_token AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,tld.ptock_fecha_vto AS FVTO ,tld.ptock_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,CONCAT(cl.cli_tel_cod_area,cl.cli_tel_numero) AS TEL ,cl.cli_tel2 AS TEL2 ,(DATEDIFF(hour, ptock_fecha, GETDATE())) AS MEspH ,(DATEDIFF(minute, ptock_fecha, GETDATE())) AS MEspM ,'m' as TE ,'0' as TEV ,t.tit_abrev AS TitM ,me.med_mp AS Mat ,e.esp_denom AS EspM ,(CASE WHEN tld.ptock_finalizado = 0 THEN 'PENDIENTE' ELSE 'FINALIZADO' END) AS Estadon ,tld.ptock_finalizado AS Estado FROM ldoc_paciente_tokens as tld INNER JOIN clientes as cl ON cl.cli_codigo = tld.cli_codigo INNER JOIN medicos as me ON me.med_codigo = tld.med_codigo INNER JOIN tbl_titulos as t ON me.tit_codigo = t.tit_codigo INNER JOIN especial AS e ON me.esp_codigo = e.esp_codigo WHERE tld.cli_codigo = '".addslashes($paciente)."' */ //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $diagnosticos = false; } else { $diagnosticos = $GLOBALS['dbSQL']->getAll(); } //diagnosticos $sql = "SELECT cli_id AS HXID ,CONVERT(VARCHAR(10),cd_fecha,103) AS FCONF FROM cli_diagnosticos WHERE cli_codigo = '".addslashes($cliente)."' ORDER BY cd_fecha DESC, cd_item DESC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $diagnosticosFL = false; } else { $diagnosticosFL = $GLOBALS['dbSQL']->getAll(); } return true; } function gethX(&$resultInfo) { $cliente = false; $diagnosticos = array(); $diagnosticosFL = array(); if( isset($_REQUEST["cli"]) && !empty($_REQUEST["cli"]) && !is_null($_REQUEST["cli"]) ) { $cliente = $_REQUEST["cli"]; $rango = false; $resultado = getLD_Hx($cliente,$diagnosticos,$diagnosticosFL); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"listDiagnosticos" => $diagnosticos ,"listDiagFL" => $diagnosticosFL ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la Hx del paciente"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function save_Hx($cliente,$profesional,$hx) { $pacientes = array(); //diagnosticos $sql = "INSERT INTO cli_diagnosticos ( cli_codigo ,med_codigo ,cd_item ,cd_fecha ,cd_observ ) VALUES ( '".addslashes($cliente)."' ,'".addslashes($profesional)."' ,(SELECT (CASE WHEN TT1.ITEM IS NULL THEN 1 ELSE TT1.ITEM + 1 END) FROM (SELECT MAX(cd_item) AS ITEM FROM cli_diagnosticos WHERE cli_codigo = '".addslashes($cliente)."') AS TT1) ,GETDATE() ,'".addslashes($hx)."' )"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { return false; } return true; } function savehX(&$resultInfo) { $cliente = false; $diagnosticos = array(); $diagnosticosFL = array(); if( isset($_REQUEST["cli"]) && !empty($_REQUEST["cli"]) && !is_null($_REQUEST["cli"])&& isset($_REQUEST["med"]) && !empty($_REQUEST["med"]) && !is_null($_REQUEST["med"])&& isset($_REQUEST["hx"]) && !empty($_REQUEST["hx"]) && !is_null($_REQUEST["hx"]) ) { $cliente = $_REQUEST["cli"]; $profesional = $_REQUEST["med"]; $hx = $_REQUEST["hx"]; $resultado = save_Hx($cliente,$profesional,$hx); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al grabar la Hx del paciente"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function getLD_ProfPerfil($profesional,$profesionalInfo) { /* $datastring = file_get_contents("someimage.JPG"); $data = unpack("H*hex", $datastring); mssql_query("insert into sometable values ('someimage.JPG', 0x".$data['hex'].")"); */ //buscar si existe un registro $sql = "SELECT 1 FROM dbo.ldoc_paciente_tokens as t1 WHERE t1.med_codigo = '".addslashes($profesional)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda return ERROR_SEARCH_OPENRECORDRCF_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) <= 0) { //$auditValores = 'med_codigo='.$profesional.'&referencia='.$referencia.'&idreconsulta='.$idreconsulta; //saveAuditoria($auditValores, RSCO); } else { return $rs[0]; } return false; } function getLDProfPerfil(&$resultInfo) { $profesional = false; $profesionalInfo = array(); if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"]) ) { $profesional = $_REQUEST["idpro"]; $rango = false; $resultado = getLD_ProfPerfil($profesional,$profesionalInfo); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"profPerfil" => $profesionalInfo ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar el perfil del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function mssql_escape($data) { if(is_numeric($data)) return $data; $unpacked = unpack('H*hex', $data); return '0x' . $unpacked['hex']; } function saveLD_ProfFoto($profesional,&$imgsrc) { try { $resultado = false; $update = false; $sql = "SELECT 1 FROM medico_foto WHERE med_codigo = '".addslashes($profesional)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { $update = true; } } $imgsrc = md5( $_FILES["file"]["name"] . date("YmdHis") . md5(date("YmdHis")) ); $imgSize = getimagesize($_FILES["file"]["tmp_name"]); $width = $imgSize[0]; $height = $imgSize[1]; //Usamos el sistema de archivos para gaurdar la fot , hasta q se resuelva leerlo de la base // // Subimos el archivo $target_path = "../images/profiles/"; $fileName = "prof_".$profesional.'_'.date("YmdHis").'_'.str_replace(' ','_',basename( $_FILES['file']['name'])); $target_path = $target_path . $fileName; $continue_ = move_uploaded_file($_FILES['file']['tmp_name'], $target_path); $imStr = file_get_contents($_FILES["file"]["tmp_name"]); $imOutput = unpack("H*hex", $imStr); //,'".addslashes($_FILES["file"]["tmp_name"])."' //,'".addslashes($imgsrc)."' // ,0x".$imOutput['hex']." if( !$update ) { $sql = "INSERT INTO medico_foto ( med_codigo ,medf_tipo ,medf_size_w ,medf_size_h ,medf_tamano ,medf_file_name ,medf_src ,medf_fecha ,medf_foto ) VALUES ( '".addslashes($profesional)."' ,'".addslashes($_FILES["file"]["type"])."' ,'".addslashes($width)."' ,'".addslashes($height)."' ,'".addslashes($_FILES["file"]["size"])."' ,'".addslashes($_FILES["file"]["name"])."' ,'".addslashes($fileName)."' , GETDATE() ,CAST ((".mssql_escape(file_get_contents($_FILES["file"]["tmp_name"])).") AS varbinary(max)) )"; //,'".addslashes(file_get_contents($_FILES["file"]["tmp_name"]))."' // ,'".addslashes(file_get_contents($_FILES["file"]["tmp_name"]))."' } else { $sql = "UPDATE medico_foto SET medf_foto = CAST ((".mssql_escape(file_get_contents($_FILES["file"]["tmp_name"])).") AS varbinary(max)) ,medf_tipo = '".addslashes($_FILES["file"]["type"])."' ,medf_size_w = '".addslashes($width)."' ,medf_size_h = '".addslashes($height)."' ,medf_tamano = '".addslashes($_FILES["file"]["size"])."' ,medf_file_name = '".addslashes($_FILES["file"]["tmp_name"])."' ,medf_src = '".addslashes($fileName)."' ,medf_fecha = GETDATE() WHERE med_codigo = '".addslashes($profesional)."'"; } $imgsrc = $fileName; //,'".addslashes(file_get_contents($_FILES["file"]["tmp_name"]))."' // $fp = fopen('im2.sql', 'w'); // fwrite($fp, $sql); // fclose($fp); //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la insercion print_r("<<>>"); return false; } return true; } catch (Exception $e) { print_r($e->__toString()); return false; } } function setLDProfFoto(&$resultInfo) { //print_r($_FILES);die; /* Array ( [file] => Array ( [name] => orcarroldan.jpg [type] => image/jpeg [tmp_name] => D:\xampp\tmp\phpEEE.tmp [error] => 0 [size] => 53514 ) ) */ $profesional = false; if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"])&& isset($_FILES) && !empty($_FILES) && !is_null($_FILES) && count($_FILES)>0 ) { $profesional = $_REQUEST["idpro"]; $error = false; //validation $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png"); $name = $_FILES["file"]["name"]; $type = $_FILES["file"]["type"]; $tmp_name = $_FILES["file"]["tmp_name"]; $size = $_FILES["file"]["size"]; if( ($size/1024) > SIZE_MAX_PROF_IMG ) { $error = 'La imagen no debe superar los '.(SIZE_MAX_PROF_IMG/1024).'MB'; } if( !in_array($type, $mimetypes)) { $error = 'El archivo que intenta subir no es una imagen válida'; } if(!$error) { $resultado = saveLD_ProfFoto($profesional,$imgsrc); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"imgsrc" => $imgsrc ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar el perfil del profesional"; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = $error; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function defaultImg() { try { $resultado = false; $update = false; $sql = "SELECT foto FROM medico_foto WHERE medf_src = '0"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { return $rs[0]["foto"]; } } return false; } catch (Exception $e) { return false; } } function getProfesionalLDPicture($profesional) { try { $resultado = false; $update = false; $sql = "SELECT medf_src FROM medico_foto WHERE med_codigo = '".addslashes($profesional)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { return $rs[0]["medf_src"]; } else { return defaultImg(); } } } catch (Exception $e) { return false; } } function getLDProfFoto_ProfFoto($src) { try { $resultado = false; $update = false; $sql = "SELECT medf_foto, medf_src,medf_tipo FROM medico_foto WHERE medf_src = '".addslashes($src)."'"; // if(isset($_GET['d']) && is_numeric($_GET['d'])) { // $sth = $medi_conn->prepare("SELECT Symbol FROM Dienstart WHERE DienstartID = :id") or die("Invalid query: " . $sth->errorInfo()); // $sth->bindParam(':id', $_GET['d']); // $sth->execute(); // $sth->bindColumn(1, $image, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY); // $sth->fetch(PDO::FETCH_ASSOC); // echo ''; // $sth = $GLOBALS['dbSQL']->conn->prepare("SELECT medf_foto FROM medico_foto WHERE medf_src = :id") or die("Invalid query: " . $sth->errorInfo()); // $GLOBALS['dbSQL']->conn->bindParam(':id', $src); // $GLOBALS['dbSQL']->conn->execute(); // $GLOBALS['dbSQL']->conn->bindColumn(1, $image, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY); // $GLOBALS['dbSQL']->conn->fetch(PDO::FETCH_ASSOC); // //echo ''; // print_r('---spider---'); // print_r("\n"); // print_r($image); // print_r("\n"); // print_r('---spider end---');die; // return $image; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { //print_r($rs);die; //return $rs[0]["medf_foto"]; return $rs[0]; } else { return defaultImg(); } } } catch (Exception $e) { return false; } } function getLDProfFoto(&$resultInfo) { ///ESTE FUNCION NO ESTA LISTA $src = false; if( isset($_REQUEST["src"]) && !empty($_REQUEST["src"]) && !is_null($_REQUEST["src"]) ) { $src = $_REQUEST["src"]; $resultado = getLDProfFoto_ProfFoto($src); if( $resultado ) { // $resultado = str_replace('\0', "\0", $resultado); // $resultado = str_replace('\'\'', "'", (str_replace('\0', "\0", $resultado))); //header("Content-type: image/jpeg;"); //echo utf8_decode($resultado); //echo $resultado; // echo (str_replace('\'\'', "'", (str_replace('\0', "\0", $resultado)))); //$resultado["medf_foto"] //$resultado["medf_src"] //print_r($resultado);die; //header('Content-Type: image/png'); switch(strtolower($resultado["medf_tipo"])) { case 'image/png': { header('Content-Type: image/png'); $im = imagecreatefrompng('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagepng($im); } } break; case 'image/gif': { header('Content-Type: image/gif'); $im = imagecreatefromgif('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagegif($im); } } break; case 'image/bmp': { header('Content-Type: image/bmp'); $im = imagecreatefrombmp('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagebmp($im); } } break; case 'image/jpg': case 'image/jpeg': { header('Content-Type: image/jpeg'); $im = imagecreatefromjpeg('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagejpeg($im); } } break; } if ($im !== false) { imagedestroy($im); } // echo ''; die; /*$im = imagecreatefromjpeg($resultado); if ($im !== false) { imagejpeg($im); imagedestroy($im); } die;*/ } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la fotografía"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } header( "Content-Type: text/xml; charset=\"iso-8859-15\""); echo $resultInfo['errorDes']; die; //return false; } function getMPInitPoint() { try { // SDK de Mercado Pago ///-->require __DIR__ . './vendor/autoload.php'; // Agrega credenciales MercadoPago\SDK::setAccessToken('TEST-2942853184477126-112607-8b5ac0ebcd5ec36b006e4923d42d0772-114804544'); // Crea un objeto de preferencia $preference = new MercadoPago\Preference(); // Crea un ítem en la preferencia $item = new MercadoPago\Item(); $item->title = 'Consulta Telemedicina'; $item->quantity = 1; $item->unit_price = 500; $preference->items = array($item); $preference->save(); $preference->id; require_once ('externalLibs/vendor/mercadopago/sdk/lib/mercadopago.php'); //$mp = new MP($GLOBALS['ECOMMERCE']['MP']['ID'], $GLOBALS['ECOMMERCE']['MP']['SECRET']); // sandbox // SHORT_NAME: mp-app-279824574 // CLIENT_ID: 1909033396902417 // CLIENT_SECRET: NsLtS7CrD3VdLsuDuXg7dJkCgaPTU742 $mp = new MP("1909033396902417", "NsLtS7CrD3VdLsuDuXg7dJkCgaPTU742"); //------------------------------------ //ITEMS //------------------------------------ $itemTemplate = array( "id" => '' //"item-ID-1234", ,"title" => '' //"Title of what you are paying for. It will be displayed in the payment process.", ,"currency_id" => 'ARS' //"ARS", ,"picture_url" => '' //"https://www.mercadopago.com/org-img/MP3/home/logomp3.gif", ,"description" => '' //"Item description", ,"category_id" => 'fashion'//"art", // Available categories at https://api.mercadopago.com/item_categories ,"quantity" => '' //1, ,"unit_price" => '' //100 ); $totalItems = count( $_SESSION['carrito']['items'] ); //sp($_SESSION['carrito']['items']); $items=array(); for($i=0;$i<$totalItems;$i++) { $item = $itemTemplate; $item["id"] = $_SESSION['carrito']['items'][$i]['id_producto']; $item["title"] = $_SESSION['carrito']['items'][$i]['nombre']; $item["picture_url"] = $_SESSION['carrito']['items'][$i]['imgurl']; $item["description"] = $_SESSION['carrito']['items'][$i]['descripcion']; $item["quantity"] = intval($_SESSION['carrito']['items'][$i]['cantidad']); $item["unit_price"] = floatval($_SESSION['carrito']['items'][$i]['precio']); $index = array_push($items,$item); } //------------------------------------ //------------------------------------ // Payer //------------------------------------ $CUSTOMER = new User($GLOBALS['db'], $GLOBALS['USUARIOS_WEB']); $customerinfo = $CUSTOMER->getRecordInfo($_SESSION['carrito']['info_cliente']['customerid']); $payerInfo = array( "name" => $_SESSION['carrito']['info_cliente']['nombre'] // "user-name", ,"surname" => $_SESSION['carrito']['info_cliente']['apellido'] // "user-surname", ,"email" => $_SESSION['carrito']['info_cliente']['email'] // "user@email.com", ,"date_created" => date("Y-m-dTH:i:s.000-04:00",strtotime($customerinfo['fecha_alta']))// "2015-06-02T12:58:41.425-04:00", ,"phone" => array( "area_code" => $_SESSION['carrito']['info_cliente']['areatel'] //"11", ,"number" => $_SESSION['carrito']['info_cliente']['tel'] //"4444-4444" ) ,"identification" => array( "type" => 'DNI' // Available ID types at https://api.mercadopago.com/v1/identification_types ,"number" => $_SESSION['carrito']['info_cliente']['dni'] //"12345678" ) ); //------------------------------------ //------------------------------------ // Back //------------------------------------ $backUrl = array( "success"=> 'http://www.carthago.com.ar/site_carthago/site/front/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_SUCCESS.'&t='.$_SESSION['carrito']['info_token']//"https://www.success.com" ,"failure"=> 'http://www.carthago.com.ar/site_carthago/site/front/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_FAIL.'&t='.$_SESSION['carrito']['info_token']//"http://www.failure.com" ,"pending"=> 'http://www.carthago.com.ar/site_carthago/site/front/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_PENDING.'&t='.$_SESSION['carrito']['info_token']//"http://www.pending.com" ); //------------------------------------ //------------------------------------ // Ship c/ME //------------------------------------ $flagME = $this->useME(); // <== Verifica si se selecciono MercadoEnvio if( $flagME ) { $shipments = $this->getShipArray(false,true); // $shipments = array( // "receiver_address" => array( // "zip_code" => $_SESSION['carrito']['info_ship']['zip'] // "5700", // ,"street_number" => $_SESSION['carrito']['info_ship']['dirnumber'] // 123, // ,"street_name" => $_SESSION['carrito']['info_ship']['address'] // "Street", // ,"floor" => $_SESSION['carrito']['info_ship']['dirfloor'] // 4, // ,"apartment" => $_SESSION['carrito']['info_ship']['dirdpto'] // "C" // ) // ); //Agrego al 'payer' la informacion de domicilio, cuando tengo el dato $payerInfo["address"] = array( "street_name" => $_SESSION['carrito']['info_ship']['address'] //"Street", ,"street_number" => $_SESSION['carrito']['info_ship']['dirnumber'] //123, ,"zip_code" => $_SESSION['carrito']['info_ship']['zip'] //"5700" ); } //------------------------------------ //------------------------------------ // Ship c/Encomeinda //------------------------------------ $flagEncomienda = $this->useEncomienda(); // <== Verifica si se selecciono MercadoEnvio if( $flagEncomienda ) { //Agrego al 'payer' la informacion de domicilio, cuando tengo el dato $payerInfo["address"] = array( "street_name" => $_SESSION['carrito']['info_ship']['address'] //"Street", ,"street_number" => $_SESSION['carrito']['info_ship']['dirnumber'] //123, ,"zip_code" => $_SESSION['carrito']['info_ship']['zip'] //"5700" ); } //------------------------------------ // $paymentmethods = array() // "excluded_payment_methods"=> // array( // 0=>array("id"=> "master") // ), // "excluded_payment_types": // [ // { // "id": "ticket" // } // ], // "installments": 12, // "default_payment_method_id": null, // "default_installments": null // ); //------------------------------------ // INIT-POINT //------------------------------------ if( $flagME ) { $mpinfo = array( "items" => $items ,"payer" => $payerInfo ,"back_urls" => $backUrl //,"auto_return" => "approved" ,"shipments" => $shipments //,"notification_url" => "https://www.your-site.com/ipn" ,"notification_url" => "http://www.carthago.com.ar/site_carthago/ipn/" ,"external_reference" => $_SESSION['carrito']['info_token'] //,"payment_methods" => $paymentmethods //,"expires" => true //,"expiration_date_from" => date("Y-m-dT00:00:00.000-04:00") //"2016-02-01T12:00:00.000-04:00" //,"expiration_date_to" => date("Y-m-dT23:59:59.000-04:00") //"2016-02-28T12:00:00.000-04:00" ); } else { $mpinfo = array( "items" => $items ,"payer" => $payerInfo ,"back_urls" => $backUrl //,"auto_return" => "approved" //,"notification_url" => "https://www.your-site.com/ipn" ,"notification_url" => "http://www.carthago.com.ar/site_carthago/ipn/" ,"external_reference" => $_SESSION['carrito']['info_token'] //,"payment_methods" => $paymentmethods //,"expires" => true //,"expiration_date_from" => date("Y-m-dT00:00:00.000-04:00") //"2016-02-01T12:00:00.000-04:00" //,"expiration_date_to" => date("Y-m-dT23:59:59.000-04:00") //"2016-02-28T12:00:00.000-04:00" ); } // $preference_data = array( // "items" => array( // array( // "title" => "Multicolor kite", // "quantity" => 1, // "currency_id" => "ARS", // Available currencies at: https://api.mercadopago.com/currencies // "unit_price" => 10.00 // ) // ) // ); //$preference = $mp->create_preference($preference_data); $preference = $mp->create_preference($mpinfo); return $preference['response']['init_point']; //return $preference['response']['sandbox_init_point']; } catch ( Exception $e ) { //Error: al ejecutar el metodo print_r($e->__toString()); } } function getNombreCliente($nombre,$flag) { $pos = strpos($nombre,' '); $n = $nombre; if($pos!==false) { if( $flag ) { $n = substr($nombre,0,$pos-1); } else { $n = substr($nombre,$pos+1); } } return $n; } function getTurnoInfoMP($idTurno,&$error=false) { try { $sql = "SELECT CONVERT(VARCHAR(10),t.tur_fecha,120) AS fecha_alta , cl.cli_nombre as clinombre , cl.cli_email as email , cl.cli_tel_cod_area as areatel , cl.cli_tel_numero as tel , cl.cli_dni as dni FROM turnos AS t INNER JOIN clientes as cl ON cl.cli_codigo = t.cli_codigo WHERE t.tur_numero = ".$idTurno; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error=array("cod"=>1,"d"=>"Error al buscar informacion del turno"); return array(false,false); } $res = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; $tunoInfo = array ( "name" => getNombreCliente($res[0]['clinombre'],false) ,"surname" => getNombreCliente($res[0]['clinombre'],true) ,"email" => $res[0]['email'] ,"date_created" => date("Y-m-dTH:i:s.000-04:00",strtotime($res[0]['fecha_alta'].' 00:00:00')) ,"area_code" => $res[0]['areatel'] ,"tel" => $res[0]['tel'] ,"number" => $res[0]['dni'] ,"trid" => $idTurno ); $mpid = ''; $token = ''; list($mpid,$token) = getMPInitPointTurnoCosto($tunoInfo,$error); return array($mpid,$token); } catch ( Exception $e ) { //Error: al ejecutar el metodo //print_r($e->__toString());die; $error=array("cod"=>2,"f"=>"getTurnoInfoMP","d"=>$e->__toString()); return array(false,false); } } function getMPInitPointTurnoCosto($tunoInfo,&$error=false) { try { $url = $GLOBALS['WS_MPTC_PREFERENCEID'] . "/index.php?importe=1&trid=".$tunoInfo["trid"]; $fichero = 'test_curl_getmpid_parmas_'.date("YmdHis").'.log'; $myfile = fopen($fichero, "w") or die("Unable to open file!"); fwrite($myfile, print_r(json_encode($tunoInfo),true)); fclose($myfile); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode($tunoInfo), CURLOPT_HTTPHEADER => array( "accept: application/json", "content-type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if( $err ) { $fichero = 'test_curl_getmpid_error_'.date("YmdHis").'.log'; $myfile = fopen($fichero, "w") or die("Unable to open file!"); fwrite($myfile, print_r($tunoInfo,true)); fwrite($myfile, print_r($err,true)); fclose($myfile); $error=array("cod"=>1,"f"=>"getMPInitPointTurnoCosto","d"=>$err); return array(false,false); } else { $resultado = json_decode($response); $fichero = 'test_curl_getmpid_ok_'.date("YmdHis").'.log'; $myfile = fopen($fichero, "w") or die("Unable to open file!"); fwrite($myfile, print_r($resultado->data->preference,true)); fwrite($myfile, print_r($resultado->data->token,true)); fclose($myfile); return array($resultado->data->preference,$resultado->data->token); } } catch ( Exception $e ) { //Error: al ejecutar el metodo //print_r($e->__toString()); $error=array("cod"=>2,"f"=>"getMPInitPointTurnoCosto","d"=>$e->__toString()); return array(false,false); } } function getMPInitPointTurnoCosto_($tunoInfo) { try { // SDK de Mercado Pago //-->require './vendor/autoload.php'; // Agrega credenciales MercadoPago\SDK::setAccessToken(MP_TEST_ACCESS_TOKEN); // Crea un objeto de preferencia $preference = new MercadoPago\Preference(); // Crea un ítem en la preferencia $item = new MercadoPago\Item(); $item->title = 'Consulta Medica'; $item->quantity = 1; $item->unit_price = $GLOBALS['TUR_COSTO']; //500; $preference->items = array($item); $preference->save(); $preference->id; //-->require_once ('externalLibs/vendor/mercadopago/sdk/lib/mercadopago.php'); //$mp = new MP($GLOBALS['ECOMMERCE']['MP']['ID'], $GLOBALS['ECOMMERCE']['MP']['SECRET']); // sandbox // SHORT_NAME: mp-app-279824574 // CLIENT_ID: 1909033396902417 // CLIENT_SECRET: NsLtS7CrD3VdLsuDuXg7dJkCgaPTU742 //-->$mp = new MP("1909033396902417", "NsLtS7CrD3VdLsuDuXg7dJkCgaPTU742"); $mp = new MP(CLIENT_ID, CLIENT_SECRET); //------------------------------------ //ITEMS //------------------------------------ $itemTemplate = array( "id" => '' //"item-ID-1234", ,"title" => '' //"Title of what you are paying for. It will be displayed in the payment process.", ,"currency_id" => 'ARS' //"ARS", ,"picture_url" => '' //"https://www.mercadopago.com/org-img/MP3/home/logomp3.gif", ,"description" => '' //"Item description", ,"category_id" => 'fashion'//"art", // Available categories at https://api.mercadopago.com/item_categories ,"quantity" => '' //1, ,"unit_price" => '' //100 ); $items=array(); $item = $itemTemplate; $item["id"] = '99'; $item["title"] = 'RESERVA_CONSULTA_MEDICINA'; $item["picture_url"] = ''; $item["description"] = 'RESERVA DE TURNO DE MEDICINA'; $item["quantity"] = 1; $item["unit_price"] = floatval($GLOBALS['TUR_COSTO']); $index = array_push($items,$item); //------------------------------------ //------------------------------------ // Payer //------------------------------------ $payerInfo = array( "name" => $tunoInfo['nombre'] // "user-name", ,"surname" => $tunoInfo['apellido'] // "user-surname", ,"email" => $tunoInfo['email'] // "user@email.com", ,"date_created" => date("Y-m-dTH:i:s.000-04:00",strtotime($tunoInfo['fecha_alta']))// "2015-06-02T12:58:41.425-04:00", ,"phone" => array( "area_code" => $tunoInfo['areatel'] //"11", ,"number" => $tunoInfo['tel'] //"4444-4444" ) ,"identification" => array( "type" => 'DNI' // Available ID types at https://api.mercadopago.com/v1/identification_types ,"number" => $tunoInfo['dni'] //"12345678" ) ); //------------------------------------ //------------------------------------ // Back //------------------------------------ /*$backUrl = array( "success"=> 'http://www.carthago.com.ar/site_carthago/site/front/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_SUCCESS.'&t='.$_SESSION['carrito']['info_token']//"https://www.success.com" ,"failure"=> 'http://www.carthago.com.ar/site_carthago/site/front/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_FAIL.'&t='.$_SESSION['carrito']['info_token']//"http://www.failure.com" ,"pending"=> 'http://www.carthago.com.ar/site_carthago/site/front/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_PENDING.'&t='.$_SESSION['carrito']['info_token']//"http://www.pending.com" );*/ $backUrl = array( "success"=> 'http://centromedicocer.ddns.net/mobile/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_SUCCESS.'&t='.$tunoInfo['idturno'] ,"failure"=> 'http://centromedicocer.ddns.net/mobile/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_FAIL.'&t='.$tunoInfo['idturno'] ,"pending"=> 'http://centromedicocer.ddns.net/mobile/processmp.php?bkmp=3&s='.Ecommerce::BACK_MP_PENDING.'&t='.$tunoInfo['idturno'] ); //------------------------------------ //------------------------------------ // INIT-POINT //------------------------------------ $mpinfo = array( "items" => $items ,"payer" => $payerInfo ,"back_urls" => $backUrl //,"auto_return" => "approved" //,"notification_url" => "http://www.carthago.com.ar/site_carthago/ipn/" ,"notification_url" => "http://centromedicocer.ddns.net/server/ipn/" ,"external_reference" => $tunoInfo['idturno'] //,"payment_methods" => $paymentmethods //,"expires" => true //,"expiration_date_from" => date("Y-m-dT00:00:00.000-04:00") //"2016-02-01T12:00:00.000-04:00" //,"expiration_date_to" => date("Y-m-dT23:59:59.000-04:00") //"2016-02-28T12:00:00.000-04:00" ); $preference = $mp->create_preference($mpinfo); return $preference['response']['init_point']; //return $preference['response']['sandbox_init_point']; } catch ( Exception $e ) { //Error: al ejecutar el metodo print_r($e->__toString()); } } function getMPInitPoint_new() { require './LandaDocMP.php'; $output = array(); $output['resultCode'] = LandaDocMP::RESULT_ERROR_GENERIC; $output["errorDes"] = ""; $ldMP = new LandaDocMP(); $ldMP->cors(); if( $ldMP->init ) { if( isset($_REQUEST["importe"]) && !empty($_REQUEST["importe"]) && !is_null($_REQUEST["importe"]) && is_numeric($_REQUEST["importe"]) && floatval($_REQUEST["importe"]) > 0 && floatval($_REQUEST["importe"]) < 2000 && isset($_REQUEST["echo"]) && !empty($_REQUEST["echo"]) && !is_null($_REQUEST["echo"]) ) { $importe = $_REQUEST["importe"]; $items = 1; if( isset($_REQUEST["items"]) && !empty($_REQUEST["items"]) && !is_null($_REQUEST["items"]) && is_numeric($_REQUEST["items"]) && intval($_REQUEST["items"]) > 0 && intval($_REQUEST["items"]) < 4 ) { $items = $_REQUEST["items"]; } $sessionToken = $ldMP->getTokenSesion(); $resultado = $ldMP->getMPInitPoint($_REQUEST["echo"],$importe,$items,$sessionToken,$url); if( $resultado ) { if( $ldMP->preference->id ) { $resultadoSMPP = $ldMP->saveMPInitPoint($importe,$items,$ldMP->preference->id,$_REQUEST["echo"],$sessionToken); $output['resultCode'] = LandaDocMP::RESULT_SUCCESS; $output['data'] = array( "resultado" => $resultado ,"preference" => $ldMP->preference->id ,"echo" => $_REQUEST["echo"] ,'token' => $sessionToken ,'urlmp' => $url ,'rsmmpp' => $resultadoSMPP ); $formatOutput = $ldMP->getOutputFormetd($output); } else { $formatOutput = $ldMP->responseGeneric(LandaDocMP::RESULT_ERROR_ON_GET_MP_PREF); } } else { $formatOutput = $ldMP->responseGeneric(LandaDocMP::RESULT_ERROR_ON_CREATE_MP_P,$ldMP->error); } } else { $formatOutput = $ldMP->responseGeneric(LandaDocMP::RESULT_ERROR_ON_PARAMS_MISSING); } } else { $formatOutput = $ldMP->responseGeneric(LandaDocMP::RESULT_ERROR_ON_INIT_OBJ); } echo $formatOutput; die; } function saveMPPoint($data) { $sql = "INSERT INTO ldoc_mp_points ( med_codigo ,cli_codigo ,mpp_point ,mpp_token ,mpp_items ,mpp_importe ,mpp_status ,mpp_date_insert ) VALUES ( '".addslashes($data["prof"])."' ,'".addslashes($data["clie"])."' ,'".addslashes($data["point"])."' ,'".addslashes($data["token"])."' ,'".addslashes($data["items"])."' ,'".addslashes($data["importe"])."' ,0 ,GETDATE() )"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la insercion return false; } return true; } function saveLDMPPoint(&$resultInfo) { $cliente = false; $profesionalInfo = array(); if( isset($_REQUEST["data"]) && !empty($_REQUEST["data"]) && !is_null($_REQUEST["data"]) ) { $mpInfo = json_decode($_REQUEST["data"],true); $resultado = saveMPPoint($mpInfo); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al registra el Point de MP"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function saveLDMPPointCurl(&$resultInfo) { $cliente = false; $profesionalInfo = array(); $request = json_decode(file_get_contents('php://input'), true); if( isset($request["data"]) && !empty($request["data"]) && !is_null($request["data"]) ) { $mpInfo = $request["data"]; $resultado = saveMPPoint($mpInfo); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al registra el Point de MP"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function updateStatusMPPoint($mpInfo) { $mpInfo = array( "token" => $_REQUEST["token"] ,"tokenG" => $_REQUEST["tokenG"] ,"status" => $_REQUEST["st"] ,"resultado" => $_REQUEST["rmp"] ); if ( $mpInfo["token"] != $mpInfo["tokenG"] ) { //El token almacenado en la app es diferente al recibido desde MP $auditValores = 'token='.$mpInfo["token"].'&tokenG='.$mpInfo["tokenG"].'&status='.$mpInfo["status"]; saveAuditoria($auditValores, TNMTAPP); return ERROR_MP_POINT_NOT_MATCH; } //Obtener mp point //buscar si existe un registro $sql = "SELECT mpp_numero ,med_codigo ,cli_codigo ,mpp_items ,mpp_importe ,mpp_point ,mpp_token ,mpp_status ,mpp_date_insert ,mpp_date_update ,mpp_tstamp FROM dbo.ldoc_mp_points WHERE mpp_token = '".addslashes($mpInfo["token"])."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la actualizacion del MP POINT $auditValores = 'token='.$mpInfo["token"].'&tokenG='.$mpInfo["tokenG"].'&status='.$mpInfo["status"]; saveAuditoria($auditValores, EBMPP); return ERROR_DB_SEARCH_MP_POINT_LD; } $tokenInfo = $GLOBALS['dbSQL']->getAll(); if(count($tokenInfo) <= 0) { $auditValores = 'token='.$mpInfo["token"].'&tokenG='.$mpInfo["tokenG"].'&status='.$mpInfo["status"]; saveAuditoria($auditValores, BMPPNE); return ERROR_SEARCH_MP_POINT_LD; } else { if( $tokenInfo[0]["mpp_status"]=="1" || intval($tokenInfo[0]["mpp_status"])==1 ) { $auditValores = 'token='.$mpInfo["token"].'&tokenG='.$mpInfo["tokenG"].'&status='.$mpInfo["status"]; saveAuditoria($auditValores, MPAC); return ERROR_MP_POINT_ALREADY_UP_LD; } else { $sql = "UPDATE ldoc_mp_points SET mpp_date_update = GETDATE(), mpp_status = '".addslashes($mpInfo["status"])."', mpp_result = '".addslashes($result)."' WHERE mpp_token = '".addslashes($token)."'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la actualización $auditValores = 'token='.$mpInfo["token"].'&tokenG='.$mpInfo["tokenG"].'&status='.$mpInfo["status"]; saveAuditoria($auditValores, BMPPNE); return ERROR_UPDATE_MP_POINT_LD; } else { //Insertar el token // function insertLDConfirmarConsula($profesional,$paciente,$tipoPago) $resultado = insertLDConfirmarConsula( $tokenInfo[0]["med_codigo"] ,$tokenInfo[0]["cli_codigo"] ,LD_CONSULTA_C_COSTO ,$tokenInfo[0]["mpp_token"] ,$tokenInfo[0]["mpp_importe"] ); if( $resultado!==true ) { $auditValores = 'token='.$mpInfo["token"].'&tokenG='.$mpInfo["tokenG"].'&status='.$mpInfo["status"]; saveAuditoria($auditValores, EITAMPPUP); return ERROR_INSERT_TOKEN_AFTER_MPP_UP_LD; } } } } return true; } function updateStatusMPPoint_old($token,$status,$result) { //Obtener mp point //buscar si existe un registro $sql = "SELECT mpp_numero ,med_codigo ,cli_codigo ,mpp_items ,mpp_importe ,mpp_point ,mpp_token ,mpp_status ,mpp_date_insert ,mpp_date_update ,mpp_tstamp FROM dbo.ldoc_mp_points WHERE mpp_token = '".addslashes($token)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la actualizacion del MP POIN $auditValores = 'token='.$token.'&status='.$status; saveAuditoria($auditValores, EBMPP); return ERROR_DB_SEARCH_MP_POINT_LD; } $tokenInfo = $GLOBALS['dbSQL']->getAll(); if(count($tokenInfo) <= 0) { $auditValores = 'token='.$token.'&status='.$status; saveAuditoria($auditValores, BMPPNE); return ERROR_SEARCH_MP_POINT_LD; } else { if( $tokenInfo[0]["mpp_status"]=="1" || intval($tokenInfo[0]["mpp_status"])==1 ) { $auditValores = 'token='.$token.'&status='.$status; saveAuditoria($auditValores, MPAC); return ERROR_MP_POINT_ALREADY_UP_LD; } else { $sql = "UPDATE ldoc_mp_points SET mpp_date_update = GETDATE(), mpp_status = '".addslashes($status)."', mpp_result = '".addslashes($result)."' WHERE mpp_token = '".addslashes($token)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la actualización $auditValores = 'token='.$token.'&status='.$status; saveAuditoria($auditValores, BMPPNE); return ERROR_UPDATE_MP_POINT_LD; } else { //Insertar el token // function insertLDConfirmarConsula($profesional,$paciente,$tipoPago) $resultado = insertLDConfirmarConsula( $tokenInfo[0]["med_codigo"] ,$tokenInfo[0]["cli_codigo"] ,LD_CONSULTA_C_COSTO ,$tokenInfo[0]["mpp_token"] ,$tokenInfo[0]["mpp_importe"] ); if( $resultado!==true ) { $auditValores = 'token='.$token.'&status='.$status; saveAuditoria($auditValores, EITAMPPUP); return ERROR_INSERT_TOKEN_AFTER_MPP_UP_LD; } } } } return true; } function updateLDMPPoint(&$resultInfo) { $cliente = false; $profesionalInfo = array(); /* token: $scope.mp.token ,tokenG: MP_TOKEN ,st: 1 ,rmp: mptype ,request: 'MP_REQUEST' ,collection_id: MP_COLLECTION_ID ,collection_status: MP_COLLECTION_STATUS ,external_reference: MP_EXTERNAL_REFERENCE ,payment_type: MP_PAYMENT_TYPE ,merchant_order_id: MP_MERCHANT_ORDER_ID ,preference_id: MP_PREFERENCE_ID ,site_id: MP_SITE_ID ,processing_mode: MP_PROCESSING_MODE ,merchant_account_id: MP_MERCHANT_ACCOUNT_ID */ if( isset($_REQUEST["token"]) && !empty($_REQUEST["token"]) && !is_null($_REQUEST["token"]) && isset($_REQUEST["tokenG"]) && !empty($_REQUEST["tokenG"]) && !is_null($_REQUEST["tokenG"]) && isset($_REQUEST["st"]) && !empty($_REQUEST["st"]) && !is_null($_REQUEST["st"]) && isset($_REQUEST["rmp"]) && !empty($_REQUEST["rmp"]) && !is_null($_REQUEST["rmp"]) ) { $token = $_REQUEST["token"]; $status = $_REQUEST["st"]; $resultado = $_REQUEST["rmp"]; $mpInfo = array( "token" => $_REQUEST["token"] ,"tokenG" => $_REQUEST["tokenG"] ,"status" => $_REQUEST["st"] ,"resultado" => $_REQUEST["rmp"] ); $saldo = false; //-->$resultado = updateStatusMPPoint($token,$status,$resultado); $resultado = updateStatusMPPoint($mpInfo); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al actualizar el estado del pago"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function getLD_ProfSaldo($profesional,&$saldo) { //buscar si existe un registro $sql = "SELECT mbal_saldo as saldo ,mbal_actualizado as actualizado FROM dbo.ldoc_medico_balance WHERE med_codigo = '".addslashes($profesional)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la busqueda saveAuditoria("prof=".$profesional, CSPNE); return ERROR_SEARCH_PROF_SALDO_LD; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs) > 0) { $signo = 1; $saldo = number_format(floatval($rs[0]["saldo"]),2); if( $saldo >= 0 ) { $saldoD = intval($saldo); $decimales = floatval($saldo-$saldoD); //print_r("s[".$saldo."] sD[".$saldoD."]de[".$decimales."]");die; $decimalesT = ''; $pos = stripos($decimales, '.'); if($pos!==false) { $aux = substr($decimales, 2); if(strlen($aux)<2) { $decimalesT = $aux . '0'; } else { $decimalesT = $aux; } } else { if(strlen($decimales)<2) { $decimalesT = $decimales . '0'; } else { $decimalesT = $decimales; } } } else { $saldoD = intval($saldo); $decimales = floatval($saldo-$saldoD); $signo = -1; //print_r("s[".$saldo."] sD[".$saldoD."]de[".$decimales."]");die; $decimalesT = ''; $pos = stripos($decimales, '.'); if($pos!==false) { $aux = substr($decimales, 3); if(strlen($aux)<2) { $decimalesT = $aux . '0'; } else { $decimalesT = $aux; } } else { if(strlen($decimales)<2) { $decimalesT = $decimales . '0'; } else { $decimalesT = $decimales; } } } $saldo = array( "saldo" => $saldo ,"signo" => $signo ,"saldoI" => $saldoD ,"saldoD" => $decimalesT ,"actualizado" => $rs[0]["actualizado"] ); } else { $saldo = array( "saldo" => 0 ,"signo" => 1 ,"saldoI" => 0 ,"saldoD" => '00' ,"actualizado" => '' ); } return true; } function getLDProfSaldo(&$resultInfo) { $profesional = false; $profesionalInfo = array(); if( isset($_REQUEST["idpro"]) && !empty($_REQUEST["idpro"]) && !is_null($_REQUEST["idpro"]) ) { $profesional = $_REQUEST["idpro"]; $saldo = 0; $resultado = getLD_ProfSaldo($profesional,$saldo); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"saldo" => $saldo["saldo"] ,"signo" => $saldo["signo"] ,"salint" => $saldo["saldoI"] ,"saldec" => $saldo["saldoD"] ,"actualizado" => $saldo["actualizado"] ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar el saldo del profesional"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function getLDClieSaldo(&$resultInfo) { $cliente = false; $profesionalInfo = array(); if( isset($_REQUEST["idclie"]) && !empty($_REQUEST["idclie"]) && !is_null($_REQUEST["idclie"]) ) { $cliente = $_REQUEST["idclie"]; $saldo = false; $resultado = getClienteSaldo($cliente,$saldo); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"saldo" => $saldo["saldo"] ,"signo" => $saldo["signo"] ,"salint" => $saldo["salint"] ,"saldec" => $saldo["saldec"] ,"actualizado" => $saldo["actualizado"] ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar el saldo del paciente"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function prepararTriaje($triaje) { /* Array ( [fiebre] => 1 [fiebreg] => 36 [tos] => 1 [nausea] => 1 [dolorca] => 1 [diarrea] => 1 [edad] => 45 [comentario] => laslasdla asld aalsd lasd alsd alsdasd ) */ $triajeTxt = "Edad: ". $triaje["edad"] ." años". "\n"; $triajeTxt.= "Fiebre: ". (intval($triaje["fiebre"])==1?'SI':'NO') . "\n"; $triajeTxt.= "Tos: ". (intval($triaje["tos"])==1?'SI':'NO'). "\n"; $triajeTxt.= "Nausea/Vómitos: ". (intval($triaje["nausea"])==1?'SI':'NO'). "\n"; $triajeTxt.= "Dolor Cabeza: ". (intval($triaje["dolorca"])==1?'SI':'NO'). "\n"; $triajeTxt.= "Diarrea: ". (intval($triaje["diarrea"])==1?'SI':'NO'). "\n"; $triajeTxt.= "Comentario: ". "\n"; $triajeTxt.= $triaje["comentario"]. "\n"; return $triajeTxt; } function insertLDConfirmarConsula($profesional,$paciente,$tipoPago,$token_=false,$importe_=false,$triaje_=false) { $sql = "SELECT cli_codigo ,tid_codigo ,cli_dni ,obs_codigo ,obsp_cod FROM clientes WHERE cli_codigo = '".addslashes($paciente)."'"; //print_r("$sql");die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $error = 100; return true;//error al leer el cliente } $clienteInfo = $GLOBALS['dbSQL']->getAll(); if(count($clienteInfo)==0){$error = 101;return false;}//error cliente no existe o esta bloqueado //print_r("tp-$tipoPago");die; if( intval($tipoPago) === LD_CONSULTA_S_COSTO ) { //COBERTURA OBRA SOCIAL $fecha = date("Y-m-d.H:i:s"); $fecha = str_replace(".","T",$fecha).".000"; $token = MD5(MD5($fecha.$profesional.$paciente)); if($token_){$token =$token_;} $triaje = ''; //print_r($triaje_["fiebre"]);die; if( $triaje_ ){$triaje = prepararTriaje($triaje_);} $sql = "INSERT INTO dbo.[ldoc_paciente_tokens] ([med_codigo] ,[cli_codigo] ,[ptock_token] ,[ptock_finalizado] ,[ptock_importe] ,[ptock_fecha] ,[ptock_fecha_confirmacion] ,[ptock_fecha_vto] ,[ptock_satisfaccion] ,[ptock_observacion] ,[obs_codigo] ,[obsp_cod] ,[ptock_triaje] ) VALUES ('".addslashes($profesional)."' ,'".addslashes($paciente)."' ,'".addslashes($token)."' ,0 ,0 ,'".$fecha."' ,NULL ,NULL ,NULL ,NULL ,".$clienteInfo[0]["obs_codigo"]." ,".$clienteInfo[0]["obsp_cod"]." ,'".addslashes($triaje)."' )"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la insercion $auditValores = 'med_codigo='.$profesional.'&paciente='.$paciente.'&fecha='.$fecha.'&referencia='.$token; saveAuditoria($auditValores, EITLDSC); return ERROR_INSERT_TURNO_LD; } else { return true; } } else { //PARTICULAR $fecha = date("Y-m-d.H:i:s"); $fecha = str_replace(".","T",$fecha).".000"; $token = MD5(MD5($fecha.$profesional.$paciente)); if($token_){$token =$token_;} $importe = 0; if($importe_){$importe =$importe_;} $triaje = ''; if( $triaje_ ){$triaje = prepararTriaje($triaje_);} $sql = "INSERT INTO dbo.[ldoc_paciente_tokens] ( [med_codigo] ,[cli_codigo] ,[ptock_token] ,[ptock_finalizado] ,[ptock_importe] ,[ptock_fecha] ,[ptock_fecha_confirmacion] ,[ptock_fecha_vto] ,[ptock_satisfaccion] ,[ptock_observacion] ,[ptock_triaje] ) VALUES ( '".addslashes($profesional)."' ,'".addslashes($paciente)."' ,'".addslashes($token)."' ,0 ,'".addslashes($importe)."' ,'".$fecha."' ,NULL ,NULL ,NULL ,NULL ,'".addslashes($triaje)."' )"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //print_r($GLOBALS['dbSQL']->GetLastError());die; //Fallo la insercion $auditValores = 'med_codigo='.$profesional.'&paciente='.$paciente.'&fecha='.$fecha.'&referencia='.$token; saveAuditoria($auditValores, EITLDCC); return ERROR_INSERT_TURNO_LD; } else { return true; } } } function validarTurnoLDBefore($profesional,$paciente,$tipoPago,&$res) { $estado = false; $error = false; $flagSG = false; $resultado = validarLDPacienteConvenioUmbral($profesional,$paciente,$estado,$flagSG,$error); //print_r("es[$estado]er[$error]");die; if($error===0) { //Validar si ya tiene un turno virtual para la misma fecha $res = true; } else { $res = $error; } return true; } function confirmarTurnoLD(&$resultInfo) { $cliente = false; $profesionalInfo = array(); if( isset($_REQUEST["idprof"]) && !empty($_REQUEST["idprof"]) && !is_null($_REQUEST["idprof"])&& isset($_REQUEST["idclie"]) && !empty($_REQUEST["idclie"]) && !is_null($_REQUEST["idclie"])&& isset($_REQUEST["ptp"]) && !empty($_REQUEST["ptp"]) && !is_null($_REQUEST["ptp"]) ) { $paciente = $_REQUEST["idclie"]; $profesional = $_REQUEST["idprof"]; $tipoPago = $_REQUEST["ptp"]; $id = false; $triaje = (isset($_REQUEST["triaje"])?$_REQUEST["triaje"]:false); //print_r($triaje);die; $resultado = true; $resultadoVal = validarTurnoLDBefore($profesional,$paciente,$tipoPago,$res); if( $resultadoVal ) { $resultado = insertLDConfirmarConsula($profesional,$paciente,$tipoPago,$id,false,$triaje); } else { $resultado = $res; } if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado"=> $resultado ,"id" => $id ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar el saldo del paciente"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } function getLD_SalaVirtualPacienteComentarios($turnos,&$comentarios) { $comentarios = array(); $lst = ''; for($i=0;$iQuery($sql); if ( !$rs ) { $comentarios = false; return false; } else { $comentarios = $GLOBALS['dbSQL']->getAll(); } return true; } function getLD_SalaVirtualPaciente($paciente,$flagAtendidos=true,&$turnos) { $pacientes = array(); $estado = false; //LEFT JOIN med_especialidades AS mes ON me.med_codigo = mes.med_codigo //turnos $sql = "SELECT tld.ptock_numero AS REF ,tld.med_codigo AS MCOD ,me.med_nombre AS MNOMBRE ,tld.cli_codigo AS CCOD ,tld.ptock_token AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,tld.ptock_fecha_vto AS FVTO ,tld.ptock_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,CONCAT(cl.cli_tel_cod_area,cl.cli_tel_numero) AS TEL ,cl.cli_tel2 AS TEL2 ,(DATEDIFF(hour, ptock_fecha, GETDATE())) AS MEspH ,(DATEDIFF(minute, ptock_fecha, GETDATE())) AS MEspM ,'m' as TE ,'0' as TEV ,t.tit_abrev AS TitM ,me.med_mp AS Mat ,e.esp_denom AS EspM ,(CASE WHEN tld.ptock_finalizado = 0 THEN 'PENDIENTE' ELSE 'FINALIZADO' END) AS Estadon ,tld.ptock_finalizado AS Estado FROM ldoc_paciente_tokens as tld INNER JOIN clientes as cl ON cl.cli_codigo = tld.cli_codigo INNER JOIN medicos as me ON me.med_codigo = tld.med_codigo INNER JOIN tbl_titulos as t ON me.tit_codigo = t.tit_codigo INNER JOIN especial AS e ON me.esp_codigo = e.esp_codigo WHERE tld.cli_codigo = '".addslashes($paciente)."' ".($flagAtendidos?' AND tld.ptock_finalizado = 0':''); //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { $turnos = false; } else { $turnos = $GLOBALS['dbSQL']->getAll(); } return true; } function getLDSalaVirtualPaciente(&$resultInfo) { $paciente = false; $turnos = array(); $pacientesRC = array(); $estado = false; if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) ) { $paciente = $_REQUEST["idcli"]; $resultado = getLD_SalaVirtualPaciente($paciente,false,$turnos); if( $resultado ) { $comentarios = false; $res=false; if(count($turnos)>0) { $res = getLD_SalaVirtualPacienteComentarios($turnos,$comentarios); } //Listar Turnos $resultInfo['code'] = 0; $resultInfo['data'] = array( "listTurnos" => $turnos ,"listComentarios" => ($res?$comentarios:array()) ); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la sala virtual del paciente"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } return false; } function getTunoIdMPTCByToken($token) { // Obtener el id del turno $sql = "SELECT tur_numero FROM turnos_compras_mp WHERE tcmp_token = '" . $token."'"; //print_r($sql);die; $rsC = $GLOBALS['dbSQL']->Query($sql); if ( $rsC ) { $turnoInfo = $GLOBALS['dbSQL']->getAll(); if( count($turnoInfo)>0 ) { return $turnoInfo[0]["tur_numero"]; } } return false; } //Turno con costo. Actualizar la respuesta function saveMPRespuesta() { /* Array ( [a] => svmpctc [st] => mpsuccess [mpid] => 449616676-68121e2a-156f-476e-a0cf-34dd05e65fbb [tk] => 3f2395c2709b589d60fdd4418350f657 [rp] => WVRveE5EcDdjem8wT2lKaWEyMXdJanR6T2pFNklqTWlPM002TVRvaWN5STdjem81T2lKdGNITjFZMk5sYzNNaU8zTTZNVG9pZENJN2N6b3dPaUlpTzNNNk1UTTZJbU52Ykd4bFkzUnBiMjVmYVdRaU8zTTZNVEE2SWpFeU5ERTJOekEzTlRZaU8zTTZNVGM2SW1OdmJHeGxZM1JwYjI1ZmMzUmhkSFZ6SWp0ek9qZzZJbUZ3Y0hKdmRtVmtJanR6T2pFd09pSndZWGx0Wlc1MFgybGtJanR6T2pFd09pSXhNalF4Tmpjd056VTJJanR6T2pZNkluTjBZWFIxY3lJN2N6bzRPaUpoY0hCeWIzWmxaQ0k3Y3pveE9Eb2laWGgwWlhKdVlXeGZjbVZtWlhKbGJtTmxJanR6T2pNeU9pSXpaakl6T1RWak1qY3dPV0kxT0Rsa05qQm1aR1EwTkRFNE16VXdaalkxTnlJN2N6b3hNam9pY0dGNWJXVnVkRjkwZVhCbElqdHpPakV4T2lKamNtVmthWFJmWTJGeVpDSTdjem94TnpvaWJXVnlZMmhoYm5SZmIzSmtaWEpmYVdRaU8zTTZNVEE2SWpNek1UZ3lPREUwTVRNaU8zTTZNVE02SW5CeVpXWmxjbVZ1WTJWZmFXUWlPM002TkRZNklqUTBPVFl4TmpZM05pMDJPREV5TVdVeVlTMHhOVFptTFRRM05tVXRZVEJqWmkwek5HUmtNRFZsTmpWbVltSWlPM002TnpvaWMybDBaVjlwWkNJN2N6b3pPaUpOVEVFaU8zTTZNVFU2SW5CeWIyTmxjM05wYm1kZmJXOWtaU0k3Y3pveE1Eb2lZV2RuY21WbllYUnZjaUk3Y3pveE9Ub2liV1Z5WTJoaGJuUmZZV05qYjNWdWRGOXBaQ0k3Y3pvME9pSnVkV3hzSWp0OQ== ) */ $turnoId = getTunoIdMPTCByToken($_REQUEST["tk"]); if( $turnoId ) { //Si el resultado es ok if( $_REQUEST["st"] == BACK_MP_SUCCESS ) { //Actualizar el turno y tabla de transacciones de MP $error = false; $result = updateTurnoCostoMPInfoSuccess($turnoId,$_REQUEST["mpid"],$_REQUEST["rp"],$_REQUEST["tk"],$error); if( $result ) { //Enviar Email de confirmacion if( $GLOBALS['EMAIL_CUSTOMER'] ) { //-->sendEmailConfirmacionWs(TYPE_EMAIL_CT, $turnoId); //Enviar Email de transación ok } } } else { //Borrar el turno y actualizar la tabla de transacciones de MP $error = false; //$result = updateTurnoCostoMPInfoError($turnoId,$_REQUEST["mpid"],$_REQUEST["rp"],$_REQUEST["tk"],$error); $result = updateTurnoCostoMPInfoError($turnoId,ESTADO_TURNOCT_ERROR_RETORNO_MP,$_REQUEST["rp"],$_REQUEST["tk"],$error); if( $result ) { //Enviar Email de confirmacion if( $GLOBALS['EMAIL_CUSTOMER'] ) { sendEmailConfirmacionWs(TYPE_EMAIL_CT, $turnoId); //Enviar Email de fallo de transaccion } } } } else { //Error no se encontro el turno } return true; } function updateTurnoCostoMPRespuesta(&$resultInfo) { $cliente = false; $profesionalInfo= array(); /* Array ( [a] => svmpctc [st] => mpsuccess [mpid] => 449616676-68121e2a-156f-476e-a0cf-34dd05e65fbb [tk] => 3f2395c2709b589d60fdd4418350f657 [rp] => WVRveE5EcDdjem8wT2lKaWEyMXdJanR6T2pFNklqTWlPM002TVRvaWN5STdjem81T2lKdGNITjFZMk5sYzNNaU8zTTZNVG9pZENJN2N6b3dPaUlpTzNNNk1UTTZJbU52Ykd4bFkzUnBiMjVmYVdRaU8zTTZNVEE2SWpFeU5ERTJOekEzTlRZaU8zTTZNVGM2SW1OdmJHeGxZM1JwYjI1ZmMzUmhkSFZ6SWp0ek9qZzZJbUZ3Y0hKdmRtVmtJanR6T2pFd09pSndZWGx0Wlc1MFgybGtJanR6T2pFd09pSXhNalF4Tmpjd056VTJJanR6T2pZNkluTjBZWFIxY3lJN2N6bzRPaUpoY0hCeWIzWmxaQ0k3Y3pveE9Eb2laWGgwWlhKdVlXeGZjbVZtWlhKbGJtTmxJanR6T2pNeU9pSXpaakl6T1RWak1qY3dPV0kxT0Rsa05qQm1aR1EwTkRFNE16VXdaalkxTnlJN2N6b3hNam9pY0dGNWJXVnVkRjkwZVhCbElqdHpPakV4T2lKamNtVmthWFJmWTJGeVpDSTdjem94TnpvaWJXVnlZMmhoYm5SZmIzSmtaWEpmYVdRaU8zTTZNVEE2SWpNek1UZ3lPREUwTVRNaU8zTTZNVE02SW5CeVpXWmxjbVZ1WTJWZmFXUWlPM002TkRZNklqUTBPVFl4TmpZM05pMDJPREV5TVdVeVlTMHhOVFptTFRRM05tVXRZVEJqWmkwek5HUmtNRFZsTmpWbVltSWlPM002TnpvaWMybDBaVjlwWkNJN2N6b3pPaUpOVEVFaU8zTTZNVFU2SW5CeWIyTmxjM05wYm1kZmJXOWtaU0k3Y3pveE1Eb2lZV2RuY21WbllYUnZjaUk3Y3pveE9Ub2liV1Z5WTJoaGJuUmZZV05qYjNWdWRGOXBaQ0k3Y3pvME9pSnVkV3hzSWp0OQ== ) */ if( isset($_REQUEST["st"]) && !empty($_REQUEST["st"]) && !is_null($_REQUEST["st"])&& isset($_REQUEST["mpid"]) && !empty($_REQUEST["mpid"]) && !is_null($_REQUEST["mpid"])&& isset($_REQUEST["tk"]) && !empty($_REQUEST["tk"]) && !is_null($_REQUEST["tk"]) ) { $resultado = saveMPRespuesta(); if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado); return true; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al registrar la respuesta de MP - Turnos Costos"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } //--WHATASAPP--- function sendWhatsappConfirmacion($datos,&$resinfo=false) { try { //return callWebServiceWhatsapp($datos,$resinfo); //print_r($datos);die; return callWebServiceWhatsappAPI($datos,$resinfo); } catch ( Exception $e ) { //Error al consultar el WS return false; } } function callWebServiceWhatsapp($params,&$resinfo=false) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { //$url = $GLOBALS['WS_WHATSAPP_SENDER']; $url = $GLOBALS['WS_WHATSAPP_SENDER_ALTERNATIVO']; //print_r($url);print_r("\n");die; ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->sendWhatsappConfirmacion($params); $success = json_decode($resultado ,true); $resinfo = $success; if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs/whatsapp_'.$params['destiny'].'_'.$params['tid'].'_'.(date('dmY_His')).'.txt'; // Abre el fichero para obtener el contenido existente //$actual = file_get_contents($fichero); // Añade una nueva persona al fichero $actual = "TURNO ID [".trim($params['tid'])."]\n"; $actual.= "DESTINATARIO [".trim($params['destiny'])."]\n"; $actual.= "RESULTADO "."\n"; $actual.= print_r($resultado,true)."\n"; // Escribe el contenido al fichero file_put_contents($fichero, $actual); } return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service"; return false; } } function callWebServiceWhatsappAPI($params,&$resinfo=false) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { //print_r($params);die; $url = $GLOBALS['WS_BROKER_API']; //print_r($url);print_r("\n");die; ini_set("default_socket_timeout", 4000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->sendWhatsappMessage($params); $success = json_decode($resultado ,true); $resinfo = $success; //if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) if(true) { //Log $fichero = './logs/whatsapp_'.$params['destiny'].'_'.$params['tid'].'_'.(date('dmY_His')).'.txt'; // Abre el fichero para obtener el contenido existente //$actual = file_get_contents($fichero); // Añade una nueva persona al fichero $actual = "TURNO ID [".trim($params['tid'])."]\n"; $actual.= "DESTINATARIO [".trim($params['destiny'])."]\n"; $actual.= "RESULTADO "."\n"; $actual.= print_r($resultado,true)."\n"; // Escribe el contenido al fichero file_put_contents($fichero, $actual); } return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service:[".$e->__toString()."]"; return false; } } function getMensajeTextoWhatsapp($item) { $mensaje = 'Hola me comunico de Consultorios Entre Ríos para confirmar su turno del día {FF} con {EE}. Esperamos confirmación dentro de 24 hs, en caso contrario será dado de baja. Por motivos de pandemia NO SE PERMITEN ACOMPAÑANTES salvó en en los siguientes casos.. Menores de 16 años, personas con movilidad reducida y pacientes con discapacidad. Gracias CER'; $mensaje = str_replace('{FF}',$item["men_fecha"],$mensaje); $mensaje = str_replace('{EE}',$item["esp_denom"],$mensaje); return $mensaje; } function getNroWhatsapp($item) { $prefix = substr($item["men_tel"],0,2); if( $prefix == "15" ) { $numero = "11".substr($item["men_tel"],3); } else { $numero = $item["men_tel"]; } return $numero; } function updateMensajeWhatsappState($result, $id,$resinfo=false) { if( $result!==false && $result!==0 ) { $sql = " UPDATE dbo.[mensajes_whatsapp] SET [men_procesado] = 1, [men_fechaproceso] = getdate() "; if($resinfo) { if(isset($resinfo["st"])) { $sql.= ",[men_res_estado] = '".$resinfo["st"]."'"; } if(isset($resinfo["id"])) { $sql.= ",[men_res_id] = '".$resinfo["id"]."'"; } } $sql.= " WHERE [men_id] = ".$id; } else { $sql = " UPDATE dbo.[mensajes_whatsapp] SET [men_procesado] = 0, [men_fechaproceso] = NULL "; if($resinfo) { if(isset($resinfo["st"])) { $sql.= ",[men_res_estado] = '".$resinfo["st"]."'"; } if(isset($resinfo["id"])) { $sql.= ",[men_res_id] = '".$resinfo["id"]."'"; } } $sql.= " WHERE [men_id] = ".$id; } $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function getFormatoHora($hora) { if( strlen($hora)<4 ) { $hora = "0" . $hora; } $horaf = substr($hora,0,2).':'.substr($hora,2); return $horaf; } function isMessagesWpInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[mensajes_in_process] WHERE [msgprc_estado] IS NULL AND msgprc_type = 'WP'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de mensajes } } return false; //No hay un preoceso activo de envio de mensajes } function openMessagesWpProgress() { $sql = " INSERT INTO dbo.[mensajes_in_process] (msgprc_estado,msgprc_tstamp_init,msgprc_type) VALUES (NULL,GETDATE(),'WP')"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeMessagesWpProgress() { $sql = " UPDATE dbo.[mensajes_in_process] SET msgprc_estado = 1, msgprc_tstamp = GETDATE() WHERE msgprc_estado IS NULL AND msgprc_type = 'WP'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function testAPI() { closeMessagesWpProgress(); $sql = " update mensajes_whatsapp set men_procesado = 0, men_fechaproceso = NULL,men_flag_nro_error=0"; $rs = $GLOBALS['dbSQL']->Query($sql,true); } function processWhatsappQueue() { testAPI();//BORRAR ES PARA TEST if(!isMessagesWpInProgress()) { //Set in progress try { openMessagesWpProgress(); $sql = " SELECT TOP 20 men_id ,tur_numero ,men_fechaenvio ,men_fecha ,CONVERT(nvarchar(10), men_fecha,103)as fechaF ,men_hora ,men_destinatario ,men_paciente ,men_medico ,men_especialidad ,men_obs ,(CASE WHEN men_texto IS NULL THEN '' WHEN LTRIM(RTRIM(men_texto)) = '' THEN '' ELSE men_texto END) as msg ,men_tel ,esp_denom ,men_procesado ,men_fechaproceso ,men_tstamp ,men_tipo ,men_telefono ,men_asunto ,men_email_remitente ,men_nombre_remitente ,tur_token as token FROM dbo.[mensajes_whatsapp] WHERE [men_procesado] = 0 AND men_paciente <> 'ANULADO' AND men_flag_nro_error = 0"; //$sql.= " AND men_tel = '3512349009'"; //print_r($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); foreach($rs as $row) { if(is_numeric($row["men_tel"])) { //if(strlen($row["men_tel"])>=9 && strlen($row["men_tel"])<=13) if(strlen($row["men_tel"])>=9 && strlen($row["men_tel"])<=14) { $rowId = $row["men_id"]; $mensaje = getMensajeTextoWhatsapp($row); $telefono = getNroWhatsapp($row); array_push($lstEmailsQueue, array( "men_id" => $rowId ,"tid" => $row["tur_numero"] ,"msg" => ".." ,"f" => $row["fechaF"] ,"type" => $row["men_tipo"] ,"h" => getFormatoHora($row["men_hora"]) ,"esp" => $row["esp_denom"] ,"med" => $row["men_medico"] ,"msg" => (intval($row["men_tipo"])==2||intval($row["men_tipo"])==11?$row["msg"]:'') ,"destiny" => $telefono ,"customer" => $GLOBALS['WS_WHATSAPP_CUSTOMER'] ,"k" => $GLOBALS['WS_WHATSAPP_KEY'] ,"token" => $row["token"] )); $conta++; } else { actualizarRegistroError($row["men_id"]); } } else { actualizarRegistroError($row["men_id"]); } } if($conta>0) { print_r("total[$conta]");print_r("\n"); for($i=0;$iQuery($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); foreach($rs as $row) { if(is_numeric($row["men_tel"])) { $rowId = $row["men_id"]; $mensaje = getMensajeTextoWhatsapp($row); $telefono = getNroWhatsapp($row); array_push($lstEmailsQueue, array( "men_id" => $rowId ,"tid" => $row["tur_numero"] ,"msg" => ".." ,"f" => $row["fechaF"] ,"type" => $row["men_tipo"] ,"h" => getFormatoHora($row["men_hora"]) ,"esp" => $row["esp_denom"] ,"med" => $row["men_medico"] ,"msg" => (intval($row["men_tipo"])==2?$row["msg"]:'') ,"destiny" => $telefono ,"customer" => $GLOBALS['WS_WHATSAPP_CUSTOMER'] ,"k" => $GLOBALS['WS_WHATSAPP_KEY'] ,"token" => $row["token"] )); $conta++; } } if($conta>0) { for($i=0;$iQuery($sql,true); if ( $rs ) { $sql = " SELECT *"; $sql.= " FROM dbo.[mensajes_whatsapp] "; $sql.= " WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1 "; $rst = $GLOBALS['dbSQL']->Query($sql); if ( $rst ) { $registros = $GLOBALS['dbSQL']->getAll(); print_r(" >> TOTAL DE REGISTROS A ELIMINAR [".count($registros)."] <<");print_r("\n"); } else { print_r(" >> ERROR AL CONSULTAR REGISTROS A ELIMINAR << ");print_r("\n"); } $sql = "DELETE FROM dbo.[mensajes_whatsapp] WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1"; $rsN = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsN ) { return true; } } else { print_r(" >> ERROR AL INSERTAR REGISTROS A ELIMINAR << ");print_r("\n"); } return false; } function sendWhatsappRecover($datos) { try { return callWebServiceWhatsappRecover($datos); } catch ( Exception $e ) { print_r($e->__toString()); //Error al consultar el WS return false; } } function callWebServiceWhatsappRecover($params) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { //$url = $GLOBALS['WS_WHATSAPP_SENDER']; $url = $GLOBALS['WS_WHATSAPP_SENDER_ALTERNATIVO']; ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->sendWhatsappRecover($params); //print_r("ooooooooo"); $success = json_decode($resultado ,true); if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs/whatsapp_rec_'.$params['destiny'].'_'.(date('dmY_His')).'.txt'; // Abre el fichero para obtener el contenido existente //$actual = file_get_contents($fichero); // Añade una nueva persona al fichero $actual = "DESTINATARIO [".trim($params['destiny'])."]\n"; $actual.= "RESULTADO "."\n"; $actual.= $resultado."\n"; // Escribe el contenido al fichero file_put_contents($fichero, $actual); } return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { print_r($e->__toString()); //Error al consultar el WS echo "Error al consultar el web service"; if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs/whatsapp_rec_'.$params['destiny'].'_'.(date('dmY_His')).'.txt'; // Abre el fichero para obtener el contenido existente //$actual = file_get_contents($fichero); // Añade una nueva persona al fichero $actual = print_r($e->__toString(),true)."\n"; // Escribe el contenido al fichero file_put_contents($fichero, $actual); } return false; } } function updateMensajeWhatsappRecoverState($result, $id) { if( $result!==false && $result!==0 ) { $sql = " UPDATE dbo.[mensajes_whatsapp_recover] SET [men_procesado] = 1,[men_fechaproceso] = getdate() "; $sql.= " WHERE [men_id] = ".$id; } else { $sql = " UPDATE dbo.[mensajes_whatsapp_recover] SET [men_procesado] = 0,[men_fechaproceso] = NULL "; $sql.= " WHERE [men_id] = ".$id; } $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function processRecoverWhatsappQueue() { $sql = " SELECT TOP 20 men_id ,men_fechaenvio ,men_procesado ,men_fechaproceso ,men_tstamp ,men_telefono as men_tel ,men_clave FROM dbo.[mensajes_whatsapp_recover] WHERE [men_procesado] = 0 AND men_enproceso = 0"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); foreach($rs as $row) { if(is_numeric($row["men_tel"])) { $rowId = $row["men_id"]; $telefono = getNroWhatsapp($row); array_push($lstEmailsQueue, array( "men_id" => $rowId ,"cod" => $row["men_clave"] ,"destiny" => $telefono ,"customer" => $GLOBALS['WS_WHATSAPP_CUSTOMER'] ,"k" => $GLOBALS['WS_WHATSAPP_KEY'] )); $conta++; } } if($conta>0) { for($i=0;$iQuery($sql,true); if ( $rs ) {*/ $sql = "DELETE FROM dbo.[mensajes_whatsapp_recover] WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1"; $rsN = $GLOBALS['dbSQL']->Query($sql,true); if ( $rsN ) { return true; } //} return false; } function cleanWhatsappRecoverTelefonoErrorQueue() { $sql = " UPDATE dbo.[mensajes_whatsapp_recover] "; $sql.= " SET men_procesado = 1, men_fechaproceso = GETDATE()"; $sql.= " WHERE DATEDIFF(DAY, DATEADD(day, -1, men_fechaenvio), GETDATE()) > 1 "; $sql.= " AND men_fechaenvio < GETDATE() "; $rs = $GLOBALS['dbSQL']->Query($sql,true); $sql = " UPDATE dbo.[mensajes_whatsapp] "; $sql.= " SET men_procesado = 1, men_fechaproceso = GETDATE()"; $sql.= " WHERE DATEDIFF(DAY, DATEADD(day, -1, men_fechaenvio), GETDATE()) > 1 "; $sql.= " AND men_fechaenvio < GETDATE() "; $rs = $GLOBALS['dbSQL']->Query($sql,true); $sql = " UPDATE dbo.[mensajes_whatsapp] "; $sql.= " SET men_procesado = 1, men_fechaproceso = GETDATE()"; $sql.= " WHERE men_paciente = 'ANULADO' "; $rs = $GLOBALS['dbSQL']->Query($sql,true); $sql = " UPDATE dbo.[mensajes_whatsapp] "; $sql.= " SET men_procesado = 1, men_fechaproceso = GETDATE()"; $sql.= " WHERE men_flag_nro_error = 1 AND men_procesado = 0 "; $rs = $GLOBALS['dbSQL']->Query($sql,true); return true; } function actualizarRegistroError($idRow) { $sql = " UPDATE dbo.[mensajes_whatsapp] "; $sql.= " SET men_procesado = 1, men_flag_nro_error = 1, men_fechaproceso = GETDATE()"; $sql.= " WHERE men_id = " . $idRow; $rs = $GLOBALS['dbSQL']->Query($sql,true); return true; } function processWhatsappResponses() { try { $params = array("customer" => $GLOBALS['WS_WHATSAPP_CUSTOMER']); //return callWebServiceWhatsappResponse_SOAP($params); return callWebServiceWhatsappResponse_POST($params); } catch ( Exception $e ) { //Error al consultar el WS } } function isNroExiste($numero) { $sql = "SELECT men_telefono as telefono FROM mensajes_whatsapp_send WHERE men_telefono = '".addslashes($numero)."' UNION SELECT men_telefono as telefono FROM mensajes_whatsapp_send WHERE men_telefono = '".addslashes('0'.$numero)."' UNION SELECT men_telefono as telefono FROM mensajes_whatsapp_send WHERE men_telefono = '".addslashes(substr($numero,3))."' UNION SELECT men_telefono as telefono FROM mensajes_whatsapp_send WHERE men_telefono = '".addslashes('0'.substr($numero,3))."' UNION SELECT men_tel as telefono FROM mensajes_whatsapp_send WHERE men_tel = '".addslashes($numero)."' UNION SELECT men_tel as telefono FROM mensajes_whatsapp_send WHERE men_tel = '".addslashes('0'.$numero)."' UNION SELECT men_tel as telefono FROM mensajes_whatsapp_send WHERE men_tel = '".addslashes(substr($numero,3))."' UNION SELECT men_tel as telefono FROM mensajes_whatsapp_send WHERE men_tel = '".addslashes('0'.substr($numero,3))."'"; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $result = $GLOBALS['dbSQL']->getAll(); if( count($result)>0 ) { return $result[0]["telefono"]; } } return false; } function saveWhatsappReponses($response) { $contnue = false; $respuestas = ''; /*if( isset($response["result"]) && isset($response["responses"]) && isset($response["total"]) && is_numeric($response["total"]) && intval($response["total"]) > 0 )*/ //print_r($response);die; if( isset($response["resultCode"]) && isset($response["data"]) //&& //isset($response["total"]) && //is_numeric($response["total"]) && //intval($response["total"]) > 0 ) { $contnue = true; $template = "({TIME},'{FECHA}','{NRO}','{NROTEL}','{RESPUESTA}',{R})"; $total = count($response["data"]); for($i=0;$i<$total;$i++) { $time = $response["data"][$i]["t"]; $nro = $response["data"][$i]["n"]; $resp = $response["data"][$i]["r"]; $fecha = str_replace(" ","T",date("Y-m-d H:i:s",$response["data"][$i]["t"])); $mensaje= substr($response["data"][$i]["m"],0,500); //TRUNCADO EN 500 $nroTel = isNroExiste($nro); if( $nroTel ) { $item = str_replace("{TIME}",$time,$template); $item = str_replace("{NRO}",$nro,$item); $item = str_replace("{FECHA}",$fecha,$item); $item = str_replace("{NROTEL}",$nroTel,$item); $item = str_replace("{R}",$resp,$item); $item = str_replace("{RESPUESTA}",str_replace(") ) )","",$mensaje),$item); $sep=','; if($respuestas == ''){$sep='';} $respuestas.= $sep.$item; } } } if( $contnue && $respuestas != '') { $sql = "INSERT INTO mensajes_whatsapp_send_response ( men_time ,men_fecha ,men_numero ,men_numero_original ,men_mensaje ,men_respuesta ) VALUES ".$respuestas; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( !$rs ) { return false; } } return true; } function callWebServiceWhatsappResponse_POST($params) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['WS_WHATSAPP_RESPONSE']; $postdata = http_build_query( array( 'a' => 'gwmr' ,'customer' => $GLOBALS['WS_WHATSAPP_CUSTOMER'], ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $respuesta = file_get_contents($url, false, $context); $respuesta = json_decode($respuesta ,true); //print_r(json_decode($respuesta ,true));die; $res = saveWhatsappReponses($respuesta); if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs_response/whatsapp_response_process'.(date('dmY_His')).'.txt'; $actual = "RESULTADO "."\n"; $actual.= print_r($resultado,true)."\n"; $actual.= "RESULTADO GRABAR"."\n"; $actual.= "[".($res?'OK':'ERROR')."]"."\n"; file_put_contents($fichero, $actual); } return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service."; if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs_response/whatsapp_response_process'.(date('dmY_His')).'.txt'; $actual = print_r($e->__toString(),true)."\n"; file_put_contents($fichero, $actual); } return false; } } function callWebServiceWhatsappResponse_SOAP($params) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['WS_WHATSAPP_RESPONSE']; //$url = $GLOBALS['WS_WHATSAPP_SENDER']; //print_r($url);die; ini_set("default_socket_timeout", 20000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->processWhatsappConfirmCustomerResponse($params); // print_r("----resultado----"); // print_r($resultado);die; $respuesta = json_decode($resultado ,true); //$resultado = '{"result":true,"responses":[{"t":"1636077515","n":"5491135066371","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636077542","n":"5491163686848","m":"Y3pveU1qb2lRMjl1Wm1seWJXRmtieUVoSVNFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636077558","n":"5491149371703","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636077561","n":"5491149371703","m":"Y3pveE1Ub2lWbTk1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636077583","n":"5491136132561","m":"Y3pveU5qb2lVMmtnZG05NUlHRWdZMjl1WTNWeWNtbHlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636077684","n":"5491134797993","m":"Y3pvM056b2lTRzlzWVN3Z2M4T3RJR052Ym1acGNtMXZJR1ZzSUhSMWNtNXZJR1JsYkNCa3c2MWhJREEyTHpFeEx6SXdNakVnWVNCc1lYTWdNVEk2TkRVdUlFZHlZV05wWVhNdUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636077798","n":"5491150449238","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636110268","n":"5491131897710","m":"Y3pvek1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04c1ozSmhZMmxoY3k0dUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636116051","n":"5491168469534","m":"Y3pveE9UQTZJa2h2YkdFZ1luVmxibTl6SUdURHJXRnpJRTFwY21FZ2RHVWdZWFpwYzI4Z2NYVmxJRzV2SUhadmVTQmhJR0Z6YVhOMGFYSWdjRzl5Y1hWbElIUnZaR0YydzYxaElHNXZJSFJsYm1kdklHeHZjeUJ5WlhOMWJIUmhaRzl6SUdSbElHeHZjeUJoYnNPaGJHbHphWE1nWkdWemNIWERxWE1nZEdVZ2NHbGtieUIxYmlCMGRYSnVieUJ3WVhKaElHM0RvWE1nWVdSbGJHRnVkR1VnVFhWamFHRnpJR2R5WVdOcFlYTWdRblZsYm05eklHVERyV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":3},{"t":"1636117257","n":"5491121899042","m":"Y3pveU1qb2lUMnNnYzJrZ1kyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636118075","n":"5491154575263","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636120370","n":"5491154161222","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636156760","n":"5491150449238","m":"Y3pvME9Ub2lTRzlzWVNCaWRXVnVZWE1nYm05amFHVnpMQ0IwWlNCallXNWpaV3pEc3lCbGJDQjBkWEp1Ynk0Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636193442","n":"5491132389615","m":"Y3pveE1UazZJbGdnY0hKdllteGxiV0Z6SUhCbGNuTnZibUZzWlhNZ2FHOTVJRzV2SUhCMVpXUnZJR052Ym1OMWNuSnBjaUJoSUcxcElIUjFjbTV2SUhCbGNtVERzMjRnY0dWeWJ5Qm1kV1VnYUc5NUlIRjFaU0J1YnlCd2RXVmtieUJwY2lCdGRXTm9ZWE1nWjNKaFkybGhjeTR1TGlBcElDQXBJQ0FwSWpzPQ==","r":3},{"t":"1636328000","n":"5493516110992","m":"Y3pvek5qb2lRV2pEclNCMmIza2dZU0IwZFNCallYTmhJR0VnYUdGalpYSnNieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636328056","n":"5493516110992","m":"Y3pvek16b2lVbVZqYWNPcGJpQnpZV3huYnlCa1pTQmlZY094WVhKdFpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636328062","n":"5493516110992","m":"Y3pveU5Ub2lRV2QxWVc1MFlTQmpaWEpsWW5KcGRHOGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636387338","n":"5491168073052","m":"Y3pvME1Ub2lRblZsYm1GeklIUmhjbVJsY3lCamIyNW1hWEp0YnlCaGMybHpkR1Z1WTJsaElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636387395","n":"5491168073052","m":"Y3pvM01Eb2lVWFZwWlhKdklHTmhibU5sYkdGeUlHVnNJSFIxY201dklHUmxJRzFwSUdocGFtOGdZU0JzWVhNZ01UWWdhSE1nWTI5dUlHTmhjbVJwYjJ4dloyOGdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636387404","n":"5491124587349","m":"Y3pvM09Ub2lRMkZ1WTJWc2J5QndiM0p4ZFdVZ2RHVnVaMjhnWkdWdFlYTnBZV1J2SUhSeVlXSmhhbTh1SUV4c1lXMXZJR1JsYzNCMXc2bHpJSEJoY21FZ2IzUnlieUIwZFhKdWJ6OGdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636387423","n":"5491159937103","m":"Y3pvek9Eb2lRblZsYmlCa3c2MWhJR0ZvdzYwZ1pYTjBZWExEcVNCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636387462","n":"5491157065507","m":"Y3pveE5Ub2lRMkZ1WTJWc2J5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1636387464","n":"5491133016875","m":"Y3pvMk5qb2lVR1Z5Wkc5dUlIQmxjbThnZVc4Z2VXRWdkR1Z1WTI4Z2NHRm5ZV1J2SUhOcElHOGdjMmtnYkc5eklIUmxibWR2SUhFZ1kzVnVjR3hwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636387518","n":"5491171364713","m":"Y3pvM016b2lRblZsYm05eklHVERyV0Z6SUNEd241aUtJRzFsSUhCdlpITERyV0Z6SUcxaGJtUmhjaUJsYkNCbGJteGhZMlVnWVNCd1lYSjBaU0J3YjNJZ1ptRjJiM0lnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636387537","n":"5491168763209","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636387549","n":"5491139226313","m":"Y3pveU5qb2lRMjl1Wm1seWJXOGhJU0JIY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636387593","n":"5491161347726","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636387598","n":"5491169487380","m":"Y3pvNE1Eb2lSV3dnZEhWeWJtOGdaWE1nWkdVZ2JXa2diV0Z0dzZFZ1FuSmhkbThzSUVGc2FXTnBZUzRnV1NCbGMzUmhJR052Ym1acGNtMWhaRzh1SUUxMVkyaGhjeUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636387601","n":"5491131207272","m":"Y3pveE9Ub2lTRzlzWVNCemFTQjJiM2tnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636387621","n":"5491128503880","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636387640","n":"5491133065787","m":"Y3pvek1Ub2lRMkZ1WTJWc2J5QnNiM01nWkc5eklIUjFjbTV2Y3k0Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1636387644","n":"5491131585462","m":"Y3pvME1Eb2lTRzlzWVNCaWRXVnVJR1REcldFdUlFTnZibVpwY20xdklHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636387726","n":"5491137726809","m":"Y3pvM09Eb2lUbThnWVc1MWJHOGdaV3dnZEhWeWJtOGdjRzl5SUhGMVpTQnVieUIwWlc1bmJ5QnNiM01nWlhOMGRXUnBiM01nY1hWbElHMWxJRzFoYm1SdklHVnNJRzFsWkdsamJ5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636387758","n":"5491126769695","m":"Y3pveE9Eb2lRblZsYm1scGMybHRieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636387782","n":"5491164120132","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636387793","n":"5491140923656","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636387834","n":"5491139010136","m":"Y3pvME9Eb2lTRzlzWVNCemFTQjJZU0J1YnlCd2RXVmtieUJqYjI1bWFYSnRZWElnWlc0Z1pXd2diR2x1YXlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636387851","n":"5491125295171","m":"Y3pveU56b2lVMmtnY1hWbFpHRWdZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636387859","n":"5491130888591","m":"Y3pveE9Ub2lSR2tnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636387862","n":"5491130888591","m":"Y3pveE1qb2lVMmxwYVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636387912","n":"5491137988324","m":"Y3pveU5Eb2lRMjl1Wm1seWJXOGdaM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636387941","n":"5491158330505","m":"Y3pvMU5qb2lRblZsYm1GeklIUmhjbVJsY3k0Z1RtOGdiV1VnY0dWeWJXbDBaU0JwYm1keVpYTmhjaUJoYkNCbGJteGhZMlV1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636387966","n":"5491126290918","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636387969","n":"5491134035640","m":"Y3pvek5Ub2lUc082YldWeWJ5QmxjWFZwZG05allXUnZMaUJUWVd4MVpHOXpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636387970","n":"5491164955550","m":"Y3pveU1Ub2lVMmx6YVNCamIyNW1hWEp0YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636388029","n":"5491164045361","m":"Y3pvME5Ub2lTRzlzWVNCaWRXVnVJR1REcldFc0lITnBMQ0JqYjI1bWFYSnRieUR3bjVHTjhKK1B1eUFwSUNBcElDQXBJanM9","r":2},{"t":"1636388000","n":"5491138243904","m":"Y3pveE5Eb2lVR0Z6WlcxbElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636388058","n":"5491133257236","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636388059","n":"5491155818976","m":"Y3pvek5Ub2lTRzlzWVNCeGRXVWdkR0ZzTENCemFYTnBMQ0IyWVNCaElHbHlJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388078","n":"5491137833263","m":"Y3pveU9Ub2lVMmtnWTI5dVptbHliV0ZrYnlCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636388088","n":"5491166317603","m":"Y3pvek5Ub2lRMkZ1WTJWc1lXMWxJR1ZzSUhSMWNtNXZJQzVuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388109","n":"5491132638849","m":"Y3pveE5qb2lRWE5wYzNScGNtVWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388148","n":"5491123272762","m":"Y3pveU1Eb2lTRzlzWVNCb1pYSnRiM05oSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636388238","n":"5491128492150","m":"Y3pveU5qb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388249","n":"5491166443071","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636388249","n":"5491137726809","m":"Y3pvek5Eb2lVMmtnYkc4Z2RHOXRieUJ6YjNrZ2NtOXpZU0JoWTI5emRHRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388255","n":"5491122966705","m":"Y3pvek9Eb2lUWFZqYUdGeklHZHlZV05wWVhNZzhKK1ltQ0JqYjI1bWFYSnRZV1J2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636388260","n":"5491134676665","m":"Y3pvM05Ub2lVMmtnWTI5dVptbHliVzhnYldrZ2RIVnlibThnWkdWc0lHVERyV0VnTVRBdE1URWdZV3hoY3lBeE5Db3pNQ0JvY3k0dUlFMTFZMmhoY3lCbmNtRmphV0Z6TGlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636388262","n":"5491128492150","m":"Y3pveU5Ub2lSWE1nY0dGeVlTQnR3NjBnSUdocGFtOGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388269","n":"5491137726809","m":"Y3pveE5Eb2lNVGg1SURRMUlDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636388281","n":"5491123272762","m":"Y3pveU5ETTZJbE5wSUdKMVpXN0RyWE5wYlc4Z2VTQndkV1ZrWlNCelpYSWdjWFZsSUcxbElHeHZJR052Y25KaGJpQndZWEpoSUd4aGN5QXhOaUJvYjNKaGN5QndiM0ptWVM0dUlIQnZjbkYxWlNCMFpXNW5ieUJ2ZEhKdklIUjFjbTV2TGk0dVpYTWdZMjl1SUdWc0lHMXBjMjF2SUdSdll5QnhkV1VnYldVZ1lYUmxibVJwdzdNZ2VXRWdZMmxsY25SdlB6OC9jMmtnYm04Z2JXVWdiRzhnY0hWbFpHVnVJR052Y25KbGNpQndZWEpoSUd4aGN5QXhOaUJvYjNKaGN5QnVieUJvWVhrZ1pISmhiV0VnYVhMRHFTQnBaM1ZoYkNCbGJpQmxiQ0JvYjNKaGNtbHZJSEYxWlNCdFpTQmtZVzRnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636388285","n":"5491123813586","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388327","n":"5491169184659","m":"Y3pveE1qRTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzg0THpFeE9UQTBNaTgzT0dSak16Y3paUzFpTkdOa0xUUTFNekl0WVdRMFppMWtNbUl6TUdZM09EUmlNekV1YjJkaElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636388358","n":"5491130528738","m":"Y3pvMk1qb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJU0JVWlc1bmJ5QmxiQ0JLZFdWMlpYTWdNVEVzSUdFZ2JHRnpJREUyT2pRd0lHaHpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388389","n":"5491161495893","m":"Y3pveU5Eb2lVMmxwYVdrZ1kyOXVabWx5Ylc4aElTQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636388391","n":"5491168653288","m":"Y3pvek5Eb2lRblZsYm05eklHVERyV0Z6TENCaGFNT3RJR1Z6ZEdGeXc2a2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388393","n":"5491158953617","m":"Y3pveE5Ub2lTRzlzWVNFaElTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636388396","n":"5491158953617","m":"Y3pveE56b2lVMmtnWVhOcGMzUnZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388475","n":"5491161907520","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636388552","n":"5491134462798","m":"Y3pveU5Eb2lVMmtnYldVZ2NISmxjMlZ1ZEdGeVpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636388557","n":"5491130164550","m":"Y3pvME5Ub2lkR1VnWlhGMWFYWnZZMkZ6ZEdVZ1pHVWdiblZ0WlhKdklHUmxJSFJsYk1PcFptOXVieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636388561","n":"5491134462798","m":"Y3pveU1Ub2lRU0JzWVNCamIyNXpkV3gwWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636388564","n":"5491133273380","m":"Y3pvME16b2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdaR1ZzSUhSeVlYVnRZWFREczJ4dloyOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388598","n":"5491125241762","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636388613","n":"5491155968637","m":"Y3pvek5Ub2lTRzlzWVN3Z2Mya2dZMjl1Wm1seWJXOGdaV3dnZEhWeWJtOHVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388631","n":"5491132162015","m":"Y3pvM01Ub2lTRzlzWVM0dUxpQk9ieUIwWlc1bmJ5QjBkWEp1YnlCbGMzVERvU0J6WlcxaGJtRXVJRlIxZG1VZ1pXd2diV25EcVhKamIyeGxjeUJ3WVhOaFpHOHVJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388643","n":"5491127557248","m":"Y3pveE5Eb2ljMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636388653","n":"5491121903284","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388655","n":"5491122934846","m":"Y3pveE5Ub2lTRzlzWVNCemFTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636388677","n":"5491122934846","m":"Y3pvME9Ub2lVR1Z5Wm1WamRHOGdiWFZqYUdGeklHZHlZV05wWVhNZ1pXd2dPU0JsYzNSdmVTQWdNVE11TXpBZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636388683","n":"5491164168691","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636388686","n":"5491163609469","m":"Y3pvM05Eb2lRblZsYm1GeklIUmhjbVJsY3lFZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JUYVNCMllXMXZjeUJoSUdGemFYTjBhWElzSUhOaGJIVmtiM01oSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636388696","n":"5491132163291","m":"Y3pveU5qb2lVOE90SUhSbElHeHZJR052Ym1acGNtMXZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388708","n":"5491122934846","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388718","n":"5491132634690","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388720","n":"5491164367909","m":"Y3pveU9Eb2lVMmtnWVhOcGMzUnZJR052Ym1acGNtMWhaRzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636388785","n":"5491155674552","m":"Y3pvNU5Eb2lRblZsYmlCa3c2MWhJSEJ2WkhMRG9XNGdiV0Z1WkdGeUlHVnNJR1Z1YkdGalpTQndiM0lnYzJWd1lYSmhaRzhnY0dGeVlTQmpiR2xqYTJWaGNpQmthWEpsWTNSaGJXVnVkR1VnZVNCamIyNW1hWEp0WVhJZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636388798","n":"5491155674552","m":"Y3pvek5Eb2lRWFBEclNCamIyMXZJR1Z6ZEdFZ2JtOGdjMlVnY0hWbFpHVWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388808","n":"5491164200277","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636388934","n":"5491166884540","m":"Y3pveU9Eb2lROE96Ylc4Z1pYTWdZWFYwYjIzRG9YUnBZMjhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636388939","n":"5491141711262","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388952","n":"5491134292231","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388953","n":"5491121770904","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636388972","n":"5491123272762","m":"Y3pvME9Eb2lUV1VnYkc4Z2NHOWtjc09oY3lCamIzSnlaWElnY0dGeVlTQnNZWE1nTVRZZ2FHOXlZWE1nUHlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636388992","n":"5491166884540","m":"Y3pvME9Ub2lVMlVnYkc4Z1kyRnRZbWxoY205dUlIQmhjbUVnWld3Z01URWdMekV4WVNCc1lYTTRMak13YUhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636389017","n":"5491123621024","m":"Y3pveE9Ub2lVMmtnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636389032","n":"5491164748953","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389038","n":"5491131901718","m":"Y3pveU5Ub2lTRzlzWVNCemFTd2dZMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389043","n":"5491167097419","m":"Y3pvM016b2lTRzlzWVN3Z1kyRnVZMlZzYnlCbGJDQjBkWEp1Ynl3Z2VXRWdjWFZsSUcxbElHeHZJRzF2WkdsbWFXTmhjbTl1SUhCaGNtRWdaV3dnYkhWdVpYTWdNVFVnS1NBZ0tTQWdLU0k3","r":3},{"t":"1636389049","n":"5491123743019","m":"Y3pveE56b2lRMjl1Wm1seWJjT3pJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389081","n":"5491150550412","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389082","n":"5491140752231","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636389129","n":"5491137697367","m":"Y3pveE56b2lRMjl1Wm1scGNtMXZJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389134","n":"5491166097202","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636389190","n":"5491126447623","m":"Y3pveE9Eb2lRMDlPUmtsU1RVRkVUeUFwSUNBcElDQXBJanM9","r":2},{"t":"1636389246","n":"5491157989509","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636389261","n":"5491123437613","m":"Y3pvM01Ub2lRMjl1Wm1seWJjT3pJRzFwSUdGemFYTjBaVzVqYVdFZ1VHRnlZU0JsYkNCa3c2MWhJRGtnTHpFeEx6SXdNakVnWVNCc1lYTWdNVGdnZVRNd0lHaHpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389268","n":"5491123437613","m":"Y3pveE9Eb2lSM0poWTJsaGN5RWhJU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636389306","n":"5491163089778","m":"Y3pvM01Eb2lRblZsYm1GeklIUmhjbVJsY3k0Z0lFTmhibU5sYkc4Z1pXd2dkSFZ5Ym04c0lIbGhJSEYxWlNCbWRjT3RJRzl3WlhKaFpHRXVJRWR5WVdOcFlYTWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636389326","n":"5491150216455","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636389349","n":"5491168060469","m":"Y3pvME9Ub2lRMjl1Wm1seWJXOGdkSFZ5Ym04ZzhKK1JqZkNmajd0TmRXTm9ZWE1nUjNKaFkybGhjeUFoSVNFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636389434","n":"5491168894922","m":"Y3pvMk9Eb2lRblZsYm05eklHUnBZWE1nZVc4Z2JtOGdjMjlzYVdOcGRHVWdibWx1WjNWdUlIUjFjbTV2SUhCaGNtRWdiMlJ2Ym5SdmNHVmthV0YwY21saElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636389487","n":"5491158161109","m":"Y3pvME5Eb2lTRzlzWVNCemFTQnphU0JqYjI1bWFYSnRieUJsYkNCMGRYSnVieUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636389554","n":"5491122850416","m":"Y3pveE9Eb2lVMmtnZG1GdUlHRnBjaUFwSUNBcElDQXBJanM9","r":1},{"t":"1636389558","n":"5491122850416","m":"Y3pveE9Ub2lUR1VnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636389605","n":"5491158161109","m":"Y3pvME1Ub2lRMkZ0WW1saGNtOXVJR1ZzSUc3RHVtMWxjbThnZVNCa1pTQnViMjFpY21VL0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636389608","n":"5491161537899","m":"Y3pveU1Ub2lRV3hzdzYwZ1pYTjBZWExEcVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636389672","n":"5491141902902","m":"Y3pvek5Eb2lRMjl1Wm1seWJXRmtieUF1SUUxaHc3RmhibUVnZG1GdGIzTWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389793","n":"5491161667006","m":"Y3pvek16UTZJa2h2YkdFc0lITnBMaUJXYjNrZ0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNBcVJWTlVSU0JGVXlCVlRpQk5SVTVUUVVwRklFZEZUa1ZTUVVSUElFRlZWRTlOUVZSSlEwRk5SVTVVUlNCUVQxSWdSVXdnVTBsVFZFVk5RU3dnVGs4Z1VrVlRVRTlPUkVWU0lFRWdSVk5VUlNCT1ZVMUZVazhxSUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnSUZCdmNpQm1ZWFp2Y2lBcVEwOU9Sa2xTVFVGU0lHOGdRMEZPUTBWTVFWSXFJR3hoSUdGemFYTjBaVzVqYVdFZ1pXNGdaV3dnYzJsbmRXbGxiblJsSUdWdWJHRmpaVG9nYUhSMGNEb3ZMMk5sYm5SeWIyMWxaR2xqYjJObGNpNWtaRzV6TG01bGRDOWpiMjVtYVhKdFlYSXZQM1J2YTJWdVBVWkNNemN6TVRnNFJUTkZOemRDTVRZMU9ETkdPRVZFUlVaQ1FqQkVSamMzSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636389859","n":"5491138242695","m":"Y3pvMU16UTZJbTVsWTJWemFYUnZJQ0JqWVcxaWFXRnliRzhnY0dWeWJ5QnNieUJ0dzZGeklIQnliMjUwYnlCd2IzTnBZbXhsSUM1eVpYTjFiSFJoSUhGMVpTQnRaU0JzYkdWbnc3TWdaV3dnZEhWeWJtOGdaR1VnZG1GamRXNWhZMm5EczI0Z1pHVWdiV2tnYm1WdVlTNXdiM0lnWlhObElHMXZkR2wyYnlCdWJ5QndiMlJ5dzZrZ1kyOXVZM1Z5Y21seUlHMWh3N0ZoYm1FdVpYTndaWEp2SUhWdUlIUjFjbTV2SUdGc0lHTnBjblZxWVc1dklHeHZJRzNEb1hNZ1kyVnlZMkZ1YnlCd2IzTnBZbXhsSUdFZ1pYTjBZU0JtWldOb1lTQXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdElDcEZVMVJGSUVWVElGVk9JRTFGVGxOQlNrVWdSMFZPUlZKQlJFOGdRVlZVVDAxQlZFbERRVTFGVGxSRklGQlBVaUJGVENCVFNWTlVSVTFCTENCT1R5QlNSVk5RVDA1RVJWSWdRU0JGVTFSRklFNVZUVVZTVHlvZ0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNBZ1VHOXlJR1poZG05eUlDcERUMDVHU1ZKTlFWSWdieUJEUVU1RFJVeEJVaW9nYkdFZ1lYTnBjM1JsYm1OcFlTQmxiaUJsYkNCemFXZDFhV1Z1ZEdVZ1pXNXNZV05sT2lCb2RIUndPaTh2WTJWdWRISnZiV1ZrYVdOdlkyVnlMbVJrYm5NdWJtVjBMMk52Ym1acGNtMWhjaTgvZEc5clpXNDlPRVUwT0VSR01UVTVRME5CUkRsR05rWXdPRGM0T0RFMVEwWXdRa1JDTWpVZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636389883","n":"5491170138094","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636389887","n":"5491138242695","m":"Y3pvMU1Ub2lTRzk1SUhSbGJtZHZJR0VnYkdGeklERTVJR2hoSUdOdmJpQnNZU0JsYmlCa2IyTnlhVzV2Ykc5bllTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636389916","n":"5491138242695","m":"Y3pvek1qb2lWbTk1SUdFZ2FYSWdMbVZ6SUdFZ2JHRnpJREU1SUdoeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636389950","n":"5491138242695","m":"Y3pvNU9Eb2lRM1ZoYkhGMWFXVnlJR05oYldKcGJ5QnRaU0JsSUdGMmFYTmhMbmxoSUhGMVpTQmhJR3hoY3lBeE55QjBaVzVuYnlCeGRXVWdjMkZzYVhJZ1pHVWdiV2tnWTJGellTQndZWEpoSUd4c1pXZGhjaUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389962","n":"5491150449238","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636390171","n":"5491132583492","m":"Y3pveE9Ub2lVMmtnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636390471","n":"5492226555685","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636390576","n":"5491123272762","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636390685","n":"5491131925183","m":"Y3pvMU1Ub2lRblZsYm1GeklIUmhjbVJsY3lBdWMya2dZMjl1Wm1seWJXOGdkSFZ5Ym04Z0xpQm5jbUZqYVdGekxpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636390912","n":"5491161448595","m":"Y3pveE5qb2lRblZsYmlCa2FXRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636390930","n":"5491161448595","m":"Y3pvek1Ub2lUV2tnYUdscWJ5QmxjM1REb1NCcGJuUmxjbTVoWkc4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636390940","n":"5491162576315","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636390942","n":"5491161448595","m":"Y3pvek5Eb2lRWFBEclNCeGRXVWdibThnY0c5a2NzT2hJR0Z6YVhOMGFYSWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636390953","n":"5491161448595","m":"Y3pvek16b2lVR1Z5YnlCemFTQmxiQ0J0WVhKMFpYTWdjSEp2ZUdsdGJ5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636391161","n":"5491150236449","m":"Y3pveU1qb2lTRzlzWVNFZ1EyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636391201","n":"5491131574238","m":"Y3pvME56b2lUbThnY0hWbFpHOGdZWE5wYzNScGNpQjRJSEJ5YjJKc1pXMWhjeUJ3WlhKemIyNWhiR1Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":3},{"t":"1636391309","n":"5491137726809","m":"Y3pvMk5qb2lTRzlzWVNCdWJ5QnhkV2xsY204Z2JHOXpJSFIxY201dmN5QmtaU0J5YjNOaElHRmpiM04wWVNCNUlIbGhibWxwYm1FZ2FHVnljbVZ5WVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636391956","n":"5491131756992","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636392813","n":"5491168190209","m":"Y3pvME9Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpMQ0J6YVNCamIyNW1hWEp0YnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636392804","n":"5491131179157","m":"Y3pveU5qb2lXSEVnYm04Z2NIVmxaRzhnWlc1MGNtRnlJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636393360","n":"5491156383961","m":"Y3pvNE16b2lTRzlzWVNBc0lHSjFaVzVoY3lCMFlYSmtaWE1nYldrZ2JtVnVaU0IwYVdWdVpTQjBkWEp1YnlCbGJDQXlNeUJrWlNCdWIzWnBaVzFpY21VZ1kyOXVJR05oY21ScGIyeHZaMmxoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636393617","n":"5491138738178","m":"Y3pveU1Eb2lVMmtzSUdOdmJtWnBjbTF2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636394256","n":"5491155028852","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636394651","n":"5491153771082","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636394904","n":"5491160133899","m":"Y3pveU16b2lWbTk1SUdFZ1kyOXVZM1Z5Y21seUlDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636395006","n":"5491126422416","m":"Y3pvNE1Ub2lVRzl5SUdWc0lHMXZiV1Z1ZEc4Z1kyRnVZMlZzWVcxdmN5QmxiQ0IwZFhKdWJ5NGdUbThnY0c5a2NzT3BJR0Z6YVhOMGFYSTdiWFZqYUdGeklHZHlZV05wWVhNaDhKK1JqU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636395059","n":"5491123673654","m":"Y3pveE1qazZJa0oxWlc1aGN5QjBZWEprWlhNdUlGWnZlU0JoSUdOaGJtTmxiR0Z5SUdWc0lIUjFjbTV2SUdSbElHMWh3N0ZoYm1FdUlGTmxJRzFsSUNCamIyMXdiR2xqdzdNZ1pXNGdaWE5sSUNCb2IzSmhjbWx2TENCdFpTQndiMlJ5dzYxaGJpQmtZWElnYjNSeWJ5QjBkWEp1Yno4Z1IzSmhZMmxoY3k0Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1636395331","n":"5491131319940","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636395342","n":"5491131319940","m":"Y3pveU5qb2lUbThnY0c5a1pXMXZjeUJoYzJsemRHbHlJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636396277","n":"5491128503880","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636396832","n":"5491144944640","m":"Y3pvNE9Ub2lTRzlzWVNCaWRXVnVZWE4wWVhKa1pYTWdJR1Z6SUhCaGNtRWdZMjl1Wm1seWJXRnlkR1VnWld3Z2RIVnlibThnWkdVZ2RISmhkVzFoZEc5c2J5QmtaU0J0WWNPeFlXNWhJQ0JuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636397968","n":"5491150487672","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636399346","n":"5491159023560","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636401993","n":"5491158339213","m":"Y3pvek5Ub2lVMmtnWTI5dVptbHliY096SUNCa1pTQnBjaUJuY21GemFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636402726","n":"5491133018614","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636403100","n":"5491158849855","m":"Y3pveU1qb2lVMmtnZG05NUlHMWh3N0ZoYm1FZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636403511","n":"5491132830976","m":"Y3pveE56b2lRWE5wYzNScGNzT3BJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636403962","n":"5491164120132","m":"Y3pveU16b2lRMkZ0WW1sbElHVnNJSFIxY201dklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636403998","n":"5491164120132","m":"Y3pvek56b2lVR0Z5WVNCM2JDQmthV0VnTVRFdk1URWdZU0JzWVhNZ01UZzZORFVnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636405578","n":"5491127967507","m":"Y3pvMk9Ub2lTRzlzWVNCbGMzUnZlU0JqYjI0Z1ptbGxZbkpsTENCMmIza2dZU0JqWVc1alpXeGhjaUJsYkNCMGRYSnVieXdnY0c5eUlHeGhjeUJrZFdSaGN5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1636405597","n":"5491134768590","m":"Y3pvek5Ub2lRMDlPUmtsU1RVRkVUeUF1SUVGSVNTQWdSVk5VUVZKRlRVOVRJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636407020","n":"5491164790482","m":"Y3pvNU1qb2lhSFIwY0RvdkwyTmxiblJ5YjIxbFpHbGpiMk5sY2k1a1pHNXpMbTVsZEM5amIyNW1hWEp0WVhJdlAzUnZhMlZ1UFRkRlFVUkRRakV6UmtZNVF6ZzNNVFJHUmpCRVFrRkZSalZFUWpReVJqRXdJQ2tnSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636408495","n":"5491123272762","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636409061","n":"5491132856743","m":"Y3pvek5UWTZJa2h2YkdFdUlFRmpiM04wWVNCT1R5QkJVMGxUVkVsU3c0RXVJQ0JIVWtGRFNVRlRJQzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMGdLa1ZUVkVVZ1JWTWdWVTRnVFVWT1UwRktSU0JIUlU1RlVrRkVUeUJCVlZSUFRVRlVTVU5CVFVWT1ZFVWdVRTlTSUVWTUlGTkpVMVJGVFVFc0lFNVBJRkpGVTFCUFRrUkZVaUJCSUVWVFZFVWdUbFZOUlZKUEtpQXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdElDQlFiM0lnWm1GMmIzSWdLa05QVGtaSlVrMUJVaUJ2SUVOQlRrTkZURUZTS2lCc1lTQmhjMmx6ZEdWdVkybGhJR1Z1SUdWc0lITnBaM1ZwWlc1MFpTQmxibXhoWTJVNklHaDBkSEE2THk5alpXNTBjbTl0WldScFkyOWpaWEl1WkdSdWN5NXVaWFF2WTI5dVptbHliV0Z5THo5MGIydGxiajB6UTBJd01EUTJPRUk1TTBZNFFqRTFRMFZDTWtSQlJURkVOa014TUVKR1JTQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636409594","n":"5491127289145","m":"Y3pvek16b2lTRzlzWVNCemFTQnRZY094WVc1aElHVnpkR0Z5WlcxdmN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636410941","n":"5491125241762","m":"Y3pvME5Eb2lTRzlzWVNCd2IyUnl3NjFoSUhObGNpQndZWEpoSUd4aElHOTBjbUVnYzJWdFlXNWhJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636418197","n":"5491163006651","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636455856","n":"5491160199092","m":"Y3pvMU56b2lWSFYyWlNCMWJpQndjbTlpYkdWdFlTQjVJR05oYm1ObGJNT3pJR3hoSUdGemFYTjBaVzVqYVdFdVozSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636459792","n":"5491155735843","m":"Y3pveU1qYzZJazVsWTJWemFYUnZJR1JsYW1GeUlITjFjM0JsYm1ScFpHOGdjRzl5SUdodmVTQmxiQ0IwZFhKdWJ5QmtaU0J0YVNCd1lYRERvU3dnVUdWa2NtOGd3NEYyYVd4aElIQnZjbkYxWlNCelpTQmtaWE5qYjIxd1pXNXp3N01nZVNCdWJ5QndkV1ZrWlNCdFlXNTBaVzVsY25ObElHVnVJSEJwWlM0Z1VHbGtieUJ0YVd3Z1pHbHpZM1ZzY0dGekxpQkRkV0Z1Wkc4Z2MyVWdjbVZqZFhCbGNtVWdiV1VnWlhOMFlYTERxU0JqYjIxMWJtbGpZVzVrYnlCd1lYSmhJSE52YkdsamFYUmhjaUJ1ZFdWMmJ5QjBkWEp1Ynk0Z1IzSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636462338","n":"5491156471332","m":"Y3pveE9Ub2lRblZsYm04Z1pNT3RZWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1636462461","n":"5491156471332","m":"Y3pveU56b2lWR1VnWTJGdVkyVnNieUJsYkNCMGRYSnVieUFwSUNBcElDQXBJanM9","r":3},{"t":"1636463892","n":"5491135230582","m":"Y3pvek5EazZJbEJsY21URHMyNGdMaTRnYjJSdmJuUnZjR1ZrYVdGMGNzT3RZVDhnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU0FxUlZOVVJTQkZVeUJWVGlCTlJVNVRRVXBGSUVkRlRrVlNRVVJQSUVGVlZFOU5RVlJKUTBGTlJVNVVSU0JRVDFJZ1JVd2dVMGxUVkVWTlFTd2dUazhnVWtWVFVFOU9SRVZTSUVFZ1JWTlVSU0JPVlUxRlVrOHFJQzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMGdJRkJ2Y2lCbVlYWnZjaUFxUTA5T1JrbFNUVUZTSUc4Z1EwRk9RMFZNUVZJcUlHeGhJR0Z6YVhOMFpXNWphV0VnWlc0Z1pXd2djMmxuZFdsbGJuUmxJR1Z1YkdGalpUb2dhSFIwY0RvdkwyTmxiblJ5YjIxbFpHbGpiMk5sY2k1a1pHNXpMbTVsZEM5amIyNW1hWEp0WVhJdlAzUnZhMlZ1UFVNeVFqTkdRamt5TnpjeVF6VkZRekUwUkRNek1URkRSa1kwTkRFeE56VTBJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636463928","n":"5491135230582","m":"Y3pvek1Eb2lXU0IwWlc1bmJ5QjBkWEp1YnlCaElHeGhjeUF4TmlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636465510","n":"5491157206262","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636469965","n":"5491122850416","m":"Y3pvNU56b2lRbVYxYm1GeklHNXBJRzVsYm1FZ2RHbGxibVVnZEhWeWJtOHNJSEYxWlhMRHJXRWdjMkZpWlhJZ1pHOXVaR1VnWlhNZ1pXd2diSFZuWVhJc0lIQnZaSExEcldFZ2NHRnpZWEp0WlNCc1lTQmthWEpsWTJOcGIyNGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636484311","n":"5491158953617","m":"Y3pveU1qb2lRblZsYm1GeklIUmhjbVJsY3k0Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636484333","n":"5491158953617","m":"Y3pvNU1qb2lVWFZsY25MRHJXRWdjMkZpWlhJZ2NYVmxJR1REcldFZ2RHVnVaMjhnZEhWeWJtOGdjR0Z5WVNCbGJDQnZablJoYkczRHMyeHZaMjhnTENCTllYSjBhVzVoSUV4aGRHOGdaRzVwSURVMU1UZ3hOVEkySUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636487265","n":"5491132421924","m":"Y3pvNE1Eb2lRblZsYm1GeklIUmhjbVJsY3lCbGMzUnZlU0JqYjIxd2JHbGpZV1JoSUhCaGNtRWdZMjl1Wm1seWJXRnlJRzFwSUhSMWNtNXZMaUJPYnlCd2RXVmtieUJvWVdObGNteHZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636489487","n":"5491159023560","m":"Y3pvM05Eb2lRWFpwYzI4Z1JYTjBiM2tnY21WMGNtRnpZV1JoSUdWdUlDQmxiQ0JqYjJ4bFkzUnBkbThnY0dWeWJ5QmxjM1J2ZVNCc2JHVm5ZVzVrYnlCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636492786","n":"5491161667006","m":"Y3pveE1qb2lWbTk1UHlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636498578","n":"5491138720217","m":"Y3pvek9UZzZJdkNmbVl2d240Kzk0b0NONHBtQTc3aVBRbWxsYm5abGJtbGtZUzlpYVdWdWRtVnVhV1J2SUdGc0lGZG9ZWFJ6UVhCd0lHUmxJRkJoYzNSbGJHVnl3NjFoSUVmRHFXNWxjMmx6TENCdHc2MGdibTl0WW5KbElHVnpJRTFsYkdud241bUw4SitQdmVLQWplS1pnTys0anlBZ1JYTndaWEp2SUhGMVpTQmxjM1REcVhNZ2RHVnVhV1Z1Wkc4Z2RXNGdiR2x1Wkc4Z1pNT3RZZkNmaktUdnVJOGdJT0tBb2tOMVlXeHhkV2xsY2lCamIyNXpkV3gwWVNCemIySnlaU0J3Y21WemRYQjFaWE4wYjNNdlltOTRMM0JsWkdsa2IzTXZjM1J2WTJzZ1pHbGhjbWx2SUc4Z1lXeG5kVzVoSUc5MGNtRWdaSFZrWVNCa1pXcGhiR0VnWlc0Z2RXNGdiV1Z1YzJGcVpTQmtaWFJoYkd4aFpHOGdjWFZsSUdWdUlHSnlaWFpsSUhaaGJXOXpJR0VnWlhOMFlYSWdjbVZ6Y0c5dVpHbGxibVJ2OEorVHNpQWc4SitUakZKbGMzQnZibVJsYlc5eklHUmxJRGs2TXpBZ1lTQXhPRG93TUM0Z0lDRGlnS0pIY21GamFXRnpJSEJ2Y2lCMGRTQndZV05wWlc1amFXRWc4SitTbkNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636498578","n":"5491157143126","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636498597","n":"5491140518416","m":"Y3pveU1Eb2lRMjl1Wm1seWJXRmtieUVoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636498653","n":"5491144953369","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636498663","n":"5491134661330","m":"Y3pvMk5Eb2lRMkZ1WTJWc1pTQmxiQ0IwZFhKdWJ5QjVZU0J0WlNCb2FXTnBaWEp2YmlCMGIyUnZJR1Z1SUhWeVoyVnVZMmxoSUdkeVlXTnBZWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1636498741","n":"5491136726931","m":"Y3pvMU16b2lTRzlzWVN3Z2JtOGdkbTk1SUdFZ2FYSWdZMkZ1WTJWc2J5d2daM0poWTJsaGN5QjVJR1JwYzJOMWJIQmhJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636498767","n":"5491130086451","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636498771","n":"5491158406344","m":"Y3pveU5Eb2lTRzlzWVNCc2J5QmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636498776","n":"5491166498616","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636498801","n":"5491132533045","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636498817","n":"5491138617807","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636498842","n":"5491135565297","m":"Y3pvMk1Ub2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpMQ0J1YnlCdFpTQnpZV3gwWVNCbGJDQmxibXhoWTJVZ2NHRnlZU0JsYm5SeVlYSWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636498852","n":"5491135565297","m":"Y3pvME1Eb2lURzhnWTI5dVptbHliVzhnWVdQRG9TQmtaU0JwWjNWaGJDQnRZVzVsY21FZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636498856","n":"5491135565297","m":"Y3pveU5Eb2lVMmtnZG05NUlHRWdZWE5wYzNScGNpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636498879","n":"5491124556121","m":"Y3pvek1Ub2lTRzlzWVNCemFTQjJZU0JoSUdseUlHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636498930","n":"5491162080201","m":"Y3pveU1UTTZJa0oxWlc0Z1pHbGhJRzV2Y3lCamIyMTFibWxqWVcxdmN5QmtaU0JEUlZJZ2NHRnlZU0JwYm1admNtMWhjbXhsSUhGMVpTQnNZU0J2Wm5SaGJHMXZiRzluWVNCRWNtRWdRMjl6ZEdGeklHNXZJSFpoSUdFZ1kyOXVZM1Z5Y21seUlHRnNJR052Ym5OMWJIUnZjbWx2SUdWc0lHUnBZU0JxZFdWMlpYTXVJRVJsWW1WdGIzTWdjbVZ3Y205bmNtRnRZWElnYzNVZ2RIVnlibThnY0dGeVlTQmxiQ0JrYVdFZ01qVXZNVEVnWVNCc1lYTWdNVFk2TURBdUlGQlBVaUJHUVZaUFVpQkRUMDVHU1ZKTlFWSWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636499018","n":"5491162080201","m":"Y3pvME5Eb2lXU0JsYkNBeU5TQnVieUJ3ZFdWa2J5QWdibVZqWlhOcGRHOGdiM1J5YnlCa3c2MWhJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636499046","n":"5491150149217","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636499056","n":"5491150149217","m":"Y3pvek56b2lRM1hEb1c1MGJ5Qm9ZWGtnY1NCaFltOXVZWElnY0c5eUlHbHZiV0VnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636499097","n":"5491164120132","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636499104","n":"5491164120132","m":"Y3pveE5qb2lNamM1TWpVM01UQWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636499105","n":"5491166915788","m":"Y3pveE56b2lRMjl1Wm1sdFlXUnZJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636499110","n":"5491164120132","m":"Y3pveU5Eb2lSMjl1ZW1Gc1pYb2dkbWwyYVdGdVlTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636499117","n":"5491157281917","m":"Y3pveU9Ub2lVMmtnWTI5dVptbHliVzhnWld3Z2RIVnlibThoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636499171","n":"5491162942454","m":"Y3pveU1Ub2lVMmtnZG1GdGIzTWdZU0JwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636499182","n":"5491134216964","m":"Y3pveU5Ub2lTRzlzWVNCemFTQmhjMmx6ZEdseXc2a2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636499526","n":"5491161953910","m":"Y3pvek5qWTZJbE5wSUdOdmJtWnBjbTF2SUdkeVlXTnBZWE1nY0dWeWJ5QmxjbUVnY0dGeVlTQmpZWEprYWNPemJHOW5ieUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ3BGVTFSRklFVlRJRlZPSUUxRlRsTkJTa1VnUjBWT1JWSkJSRThnUVZWVVQwMUJWRWxEUVUxRlRsUkZJRkJQVWlCRlRDQlRTVk5VUlUxQkxDQk9UeUJTUlZOUVQwNUVSVklnUVNCRlUxUkZJRTVWVFVWU1R5b2dMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTQWdVRzl5SUdaaGRtOXlJQ3BEVDA1R1NWSk5RVklnYnlCRFFVNURSVXhCVWlvZ2JHRWdZWE5wYzNSbGJtTnBZU0JsYmlCbGJDQnphV2QxYVdWdWRHVWdaVzVzWVdObE9pQm9kSFJ3T2k4dlkyVnVkSEp2YldWa2FXTnZZMlZ5TG1Sa2JuTXVibVYwTDJOdmJtWnBjbTFoY2k4L2RHOXJaVzQ5TmpCRFFqSkVNVFZETkRBd1JrTXhNakkwUlVJNVJERTNSRUl3UVRBeVJUWWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636499585","n":"5491138893087","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636499709","n":"5491136150028","m":"Y3pvNE1Ub2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJSE5wSUhaaGJXOXpJR0VnWVhOcGMzUnBjaUJoYkNCMGRYSnVieUJsYkNCa3c2MWhJR3AxWlhabGN5QmhJR3hoY3lBeE55Qm9jeUFwSUNBcElDQXBJanM9","r":1},{"t":"1636499752","n":"5491136754265","m":"Y3pveU5Ub2lVMmtnYlhWamFHRnpJR2R5WVhOcFlYTWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636499839","n":"5491173683489","m":"Y3pvMk1qb2lVMmtnUkdsdmN5QnNieUJ3WlhKdGFYUmxMR052Ym1acGNtMXZJRzFwSUhSMWNtNXZMRzExWTJoaGN5Qm5jbUZqYVdGeklTRWhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636499965","n":"5491131315430","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636500009","n":"5491168005543","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636500340","n":"5491163373615","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636500420","n":"5491157004578","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636502074","n":"5491125405535","m":"Y3pvek5qb2lSV3dnZEhWeWJtOGdaWE1nWTI5dUlHTmhjbVJwYjJ4dlo4T3RZU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636502084","n":"5491125405535","m":"Y3pvek5qb2lUblZ1WTJFZ2MyRnhkV1VnWTI5dUlHNWxkVzF2Ym05c2IyZHBZU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636502579","n":"5491165715903","m":"Y3pveE5Eb2k4SitSalU5cklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636502826","n":"5491158820279","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636502973","n":"5491173661167","m":"Y3pvek1Eb2lRMjl1Wm1seWJXOGdiR0VnWVhOcGMzUmxibU5wWVNBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636503202","n":"5491131607668","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636503469","n":"5491163722799","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636503829","n":"5491157050782","m":"Y3pvMU1Eb2lVRzl5SUdaaGRtOXlJR2QxWVhKa1pXMWxJR1ZzSUhSMWNtNXZJR0ZvdzYwZ1pYTjBZWEpsYlc5eklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636504514","n":"5491158816440","m":"Y3pveE9Eb2lZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636505637","n":"5491165079214","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636506885","n":"5491123006636","m":"Y3pvMU5qb2lVMjlzYVdOcGRHVWdkSFZ5Ym04Z2NHRnlZU0JqWVhKa2FXOXNiMmZEcldFc0lHNXZJRzVsZFcxdmJHOW53NjFoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636512170","n":"5491127557248","m":"Y3pveE5Eb2ljMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636539896","n":"5491154685609","m":"Y3pveU9Eb2lRblZsYmlCa2FXRXNjMmtzWTJsdVptbHliVzhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636541369","n":"5491123006636","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636544297","n":"5491123006636","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636544941","n":"5491123006636","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636545024","n":"5491123006636","m":"Y3pvME5Eb2lVRzl5SUdaaGRtOXlJR052YlhWdWFXTmhjbk5sSUhCdmNpQmxjM1JsSUcxbFpHbHZJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636545455","n":"5491136005732","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636548818","n":"5491141766723","m":"Y3pveE9Eb2lVMmx6YVhOeklIWnZlU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636549516","n":"5491121800320","m":"Y3pvME9Ub2lTRzlzWVNCaWRXVnViM01nWk1PdFlYTWhJRk5wSUhOcElHTnZibVpwY20xdklIRjFaU0IyYjNrZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636549573","n":"5491159960168","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636550128","n":"5491151448782","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636550750","n":"5491155602306","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636550939","n":"5491125405535","m":"Y3pveE5qb2lRblZsYmlCa2FXRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636550958","n":"5491125405535","m":"Y3pvMk9Ub2lUV1VnY0c5a2NzT3RZVzRnWTI5dVptbHliV0Z5SUhCdmNpQnhkV1VnZVc4Z2MyRnhkV1VnZEhWeWJtOGdZMjl1SUdWc0lHTmhjbVJwYjJ4dlp5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636551468","n":"5493512349009","m":"Y3pvek1Eb2lhSFIwY0hNNkx5OWlhWFF1Ykhrdk16SnNSMmh0WWlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636551949","n":"5493516110992","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636551992","n":"5493516110992","m":"Y3pvNU9pSXFJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636552111","n":"5493516110992","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636552323","n":"5491134462798","m":"Y3pveU5Eb2lVMmtnYldVZ2NISmxjM2R1ZEdGeVpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636552337","n":"5491134462798","m":"Y3pveU16b2lRU0JzWVhNZ1kyOXVjM1ZzZEdGeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636552512","n":"5491169443448","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636552575","n":"5491165079214","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4TUM4eE1Ua3dOREl2TmpFMVptTXhOekl0TlRnek5DMDBPRFUzTFdFeVlXRXROVFUwWXpRME1EbGtaV1F4TG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636552942","n":"5491173661167","m":"Y3pveE1qb2k4SitSakNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636553333","n":"5493516110992","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636553953","n":"5491140857783","m":"Y3pvek16b2lRV3hwSUdWemRHRnlaVzF2Y3lCamIyNGdiV2tnYUdscWJ5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636553998","n":"5491160199092","m":"Y3pveE5Ub2lSM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636555124","n":"5491155028852","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4TUM4eE1Ua3dOREl2WWpneU5EZzFZV010TVdZMk15MDBNR1prTFRrNVkyWXRaRE14TURRelpXWmhaV0kxTG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636555197","n":"5491137713447","m":"Y3pvek1qb2lRblZsYm1GeklIUmxibVJ5dzYxaElHTnN3NjF1YVdOdklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636555442","n":"5491170138094","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636556822","n":"5491123673654","m":"Y3pveE1EUTZJa0oxWlc1aGN5QjBZWEprWlhNdUlFNWxZMlZ6YVhSdklIUjFjbTV2SUhCaGNtRWdaV3dnUkhJdUlFUmhlV0Z1TGlCUWIzSWdTVTlOUVNBZ1FXeGhjbVBEczI0Z1RXRnl3NjFoSUZObGJIWmhMQ0JFVGtrZ01UTXVOelV4TGpReU5DQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636557723","n":"5491158820279","m":"Y3pvek1Eb2lXV0VnWTI5dVptbHliV1VnWlc0Z2JHRWdjTU9oWnlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636558522","n":"5491169103936","m":"Y3pvek1Eb2lVMGtnVTBrZ1ZFOU5UeUJNUVNCRFQwNVRWVXhVUVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636558848","n":"5491140834960","m":"Y3pveE5Eb2lRblZsYm1GeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636560925","n":"5491161495893","m":"Y3pvME16b2lTRzlzWVNCdFpTQndiMlJ5YVdGeklIQmhjMkZ5SUd4aElHUnBjbVZqWTJuRHMyNGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636573498","n":"5491167934237","m":"Y3pveU5Ub2lXVzhnZVdFZ2JHOGdZMkZ1WTJWc3c2a2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636573503","n":"5491167934237","m":"Y3pvek5Ub2lUR1Z6SUdoaFltekRxU0JoSUhOMUlHOTBjbUVnWTNWbGJuUmhJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636575793","n":"5491164802899","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636578448","n":"5491167427364","m":"Y3pvMU1qb2lUMnNzWlc1MFpXNWthV1J2TEdWelpTQmt3NjFoSUdWemRHRnl3NmtnWVd4c3c2MHVJRWR5WVdOcFlYTWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636578550","n":"5491133947971","m":"Y3pveU5Eb2lTRzlzWVNCemFTQjJiM2tnWVNCcGNpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636578571","n":"5491130436338","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636578597","n":"5491156301402","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636578612","n":"5491156301402","m":"Y3pvek5Ub2lUbThnY0hWbFpHOGdhVzVuY21WellYSWdlQ0JsYkNCc2FXNXJJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636578688","n":"5491122638010","m":"Y3pvME5qb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJRU5QVGtaSlVrMVBJR1ZzSUhSMWNtNXZJQ0VnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636578813","n":"5491167426088","m":"Y3pveU16b2lVMmtnYkc4Z3c2ZHZibVpwY20xdklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636578996","n":"5491167991874","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636579066","n":"5491157449568","m":"Y3pveU5Eb2lTRzlzWVNCVGFTQmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636579131","n":"5491131447121","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636579201","n":"5491160555155","m":"Y3pvME5Eb2lRblZsYm1GeklTQkRiMjVtYVhKdGJ5QnRhU0IwZFhKdWJ5QWhJRWR5WVdOcFlYTWhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636579383","n":"5491161914055","m":"Y3pveE9Eb2lRMjl1Wm1seWJXOGdJU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636579630","n":"5491139043942","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636580145","n":"5491132583492","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636580926","n":"5491169103936","m":"Y3pvMU1Ub2lVMGtnVTBrZ1dVRWdVa1ZUVUU5T1JFa2dUVUhEa1VGT1FTQldUMWtnUVNCTVFTQkRUMDVUVlV4VVFTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636580936","n":"5491164922057","m":"Y3pvMU16b2lTRzlzWVNCemFTQmpiMjVtYVhKdGJ5QjBaVzVuYnlCeGRXVWdjR0ZuWVhJZ1lXeG53N3B1SUdKdmJtOC9JQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636581068","n":"5491126379693","m":"Y3pveU1qb2lVMmtnYldIRHNXRnVZU0IyYjNrZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636581445","n":"5491150250618","m":"Y3pvMk16b2lUbThnY0hWbFpHOGdaVzUwY21GeUlHRWdiR0VnY01PaFoybHVZU3h6YVNCMmIza2dZU0JwY2lCaElHeGhJR052Ym5OMWJIUmhMaUFwSUNBcElDQXBJanM9","r":2},{"t":"1636582143","n":"5491134009441","m":"Y3pveU5Ub2lVMmtnYzJrZ2RtOTVJR0Z6YVhOMGFYSWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636584639","n":"5491165130405","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636592152","n":"5491134153789","m":"Y3pvME56b2lTRzlzWVNCaWRXVnVZWE1nYm05amFHVnpJSFJsSUdOdmJtWnBjbTF2SUdWc0lIUjFjbTV2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636631013","n":"5491135066371","m":"Y3pvM01Eb2lTRzlzWVNCMFpXNW5ieUIwZFhKdWJ5QndZWEpoSUdWc0lITmhZbUZrYnlCamIyNGdiR0VnYzJsamIyeHZaMkVnY1dWeWFXRWdZMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636631156","n":"5491135066371","m":"Y3pveU56b2lUV2tnYm05dFluSmxJR1Z6SUdkaGMzUnZiaUFwSUNBcElDQXBJanM9","r":1},{"t":"1636631168","n":"5491135066371","m":"Y3pveU9Eb2lXU0IwWlc1cFlTQjBkWEp1YnlBNUlIa2dNekFnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636631527","n":"5491122992916","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636635573","n":"5491122992916","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636659773","n":"5491165278297","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636659953","n":"5491150149217","m":"Y3pveE5Ub2lRMkZ1WTJWc2J5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1636659960","n":"5491170318225","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636659966","n":"5491134853868","m":"Y3pveU9Ub2lUbThnWm5WdVkybHZibUVnWld3Z1pXNXNZV05sSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636660009","n":"5491128507851","m":"Y3pveU1Ub2lTRzlzWVNCamIyNW1hWEp0YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636660014","n":"5491128507851","m":"Y3pveU9Ub2lRMkZ0WW1saGNtOXVJR1ZzSUc3RHVtMWxjbTgvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636660161","n":"5491135066371","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636660394","n":"5491132163291","m":"Y3pveE1qYzZJa2h2YkdFZ1luVmxibUZ6SUhSaGNtUmxjeUJsYkNCMGRYSnVieUJrWlNCc1lTQnVkWFJ5YVdOcGIyNXBjM1JoSUhObElHeHZJR1JwSUdSbElHSmhhbUVnWld3Z1pNT3RZU0JrWlNCaGVXVnlJSFBEclNCamIyNW1hWEp0YnlCa2FXRmlaWFJ2Ykc5bnc2MWhJQ3dzTENCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636660415","n":"5491135712586","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636660456","n":"5491157225054","m":"Y3pveU1qb2lUMnNnWTI5dVptbHliV0Z5Wkc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636660671","n":"5491168464330","m":"Y3pvMU5qb2lRblZsYm1GeklIUmhjbVJsY3k0Z1UzVnpjR1Z1Wkc4Z1pXd2dkSFZ5Ym04dUlFMTFZMmhoY3lCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636660884","n":"5491157050782","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636662870","n":"5491161901394","m":"Y3pveU56b2lVMmtnWTI5dVptbHliVzhnWjNKaFkybGhjeUFwSUNBcElDQXBJanM9","r":2},{"t":"1636663624","n":"5491164355188","m":"Y3pveE5qZzZJa0oxWlc1aGN5QjBZWEprWlhNaElGUmxic090WVNCMGRYSnVieUJqYjI0Z2JHRWdiM1J2Y25KcGJtOHVMaTRnVG1GeVlXNXFieUJUWVdKeWFXNWhMaUJSZFdWeXc2MWhJR0YyYVhOaGNpQnhkV1VnZG05NUlHRWdiR3hsWjJGeUlIUmhjbVJsSUhCdmNuRjFaU0JvWVhrZ2JYVmphTU90YzJsdGJ5QjBjc09oWm1samJ5QndiM0lnZEc5a2IzTWdiR0ZrYjNNZ2NHOXlJR05vYjNGMVpYTWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636664800","n":"5491165375611","m":"Y3pveE1USTZJa0oxWlc1aGN5QjBZWEprWlNGRGIyNW1hWEp0YnlCaGJXSnZjeUIwZFhKdWIzTWdjR0Z5WVNCbGJDQmt3NjFoSURFekx6RXhMR0VnYkdGeklERXlJSGtnTVRJdU16Qm9jeUJ5WlhOd1pXTjBhWFpoYldWdWRHVXVUWFZqYUdGeklHZHlZV05wWVhNaElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636665510","n":"5491163771683","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdaV3dnYldWdWMyRnFaU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636666738","n":"5493516896880","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636666797","n":"5493516896880","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636666917","n":"5493512349009","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636667627","n":"5493516896880","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636685192","n":"5493512349009","m":"Y3pveE16b2lSM0p2YzI4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636715289","n":"5493512349009","m":"Y3pvMU5Eb2lhSFIwY0RvdkwyUnlZWEpoZVdGelpXUmxkblZ5Y1hWcGVtRXVaR1J1Y3k1dVpYUXZiVzlpYVd4bEx5QXBJQ0FwSUNBcElDQXBJanM9","r":1},{"t":"1636715642","n":"5493512349009","m":"Y3pvM05qb2lhSFIwY0hNNkx5OTNkM2N1WTJWdWRISnZiV1ZrYVdOdmNtRjVZUzVqYjIwdVlYSXZZWEJ3Y3k5bWNtOXVkQzl6YjJ4cFkybDBZWEpVZFhKdWJ5NXdhSEFnS1NBZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636728503","n":"5491138793715","m":"Y3pveU1Eb2lRblZsYm05eklHVERyV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636732088","n":"5491155670708","m":"Y3pvME1qb2lTRzlzWVNCeGRXVnlhV0VnYUdGalpYSnNaWE1nZFc1aElHTnZibk4xYkhSaFB5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636805367","n":"5493512349009","m":"Y3pveE16YzZJa0pGUjBsT09sWkRRVkpFZkZaRlVsTkpUMDQ2TXk0d0lFNDZPMHBsYm1sbVpYSTdPenNnUms0NlNtVnVhV1psY2lCcGRHVnRNUzVVUlV3N2QyRnBaRDAxTkRreE1UVTVNek0yTmpJMk9pczFOQ0E1SURFeElEVTVNek10TmpZeU5pQnBkR1Z0TVM1WUxVRkNUR0ZpWld3NlRjT3pkbWxzSUVWT1JEcFdRMEZTUkNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636810240","n":"5491150550412","m":"Y3pvek56b2lRMjl1Wm1seWJXOGdjWFZsSUdWc0lHeDFibVZ6SURFMUlIWnZlUzRnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636986126","n":"5491132529757","m":"Y3pvek9Eb2lUbThnYzhPcElIQjFaV1JsSUdWdWRISmhjaUJoYkNCbGJteGhZMlV1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636986132","n":"5491133016875","m":"Y3pveE1Ub2lUMnN1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636986202","n":"5491168237002","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986246","n":"5491139327148","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986372","n":"5491153391246","m":"Y3pvME1Ub2lRblZsYmlCa3c2MWhJQ0VnVTJrc0lHTnZibVpwY20xdklHMXBJSFIxY201dklDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636986482","n":"5491135230582","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986484","n":"5491162720046","m":"Y3pveU5Eb2lTRzlzWVNCemFTQmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636986535","n":"5491162879562","m":"Y3pvek5ETTZJa0oxWlc1aGN5QjBZWEprWlhNZ2NHVnlabVZqZEc4Z0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNBcVJWTlVSU0JGVXlCVlRpQk5SVTVUUVVwRklFZEZUa1ZTUVVSUElFRlZWRTlOUVZSSlEwRk5SVTVVUlNCUVQxSWdSVXdnVTBsVFZFVk5RU3dnVGs4Z1VrVlRVRTlPUkVWU0lFRWdSVk5VUlNCT1ZVMUZVazhxSUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnSUZCdmNpQm1ZWFp2Y2lBcVEwOU9Sa2xTVFVGU0lHOGdRMEZPUTBWTVFWSXFJR3hoSUdGemFYTjBaVzVqYVdFZ1pXNGdaV3dnYzJsbmRXbGxiblJsSUdWdWJHRmpaVG9nYUhSMGNEb3ZMMk5sYm5SeWIyMWxaR2xqYjJObGNpNWtaRzV6TG01bGRDOWpiMjVtYVhKdFlYSXZQM1J2YTJWdVBVVkROVUl6T1VRek1EZzBOemt6TVRGR01VVTFSamhDTVRjME1qa3dNVVUxSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636986546","n":"5491156578191","m":"Y3pvMk9Ub2lTRzlzWVNCaWRXVnVJR1REcldFZ0lTRWhJU0JEYjI1bWFYSnR3N01nWld3Z2RIVnlibThnSVNFaElFMTFZMmhoY3lCSGNtRmphV0Z6SUNFaElTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636986694","n":"5491157813737","m":"Y3pvek5Ub2lUWFZqYUdGeklHZHlZV05wWVhNc1lXakRyU0JsYzNSaGNzT3BJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636986721","n":"5491134462798","m":"Y3pveU5Eb2lVMmtnYldVZ2NISmxjMlZ1ZEdGeVpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636986751","n":"5491164443951","m":"Y3pveE9Eb2lRMDlPUmtsU1RVRkVUeUFwSUNBcElDQXBJanM9","r":2},{"t":"1636986804","n":"5491121551259","m":"Y3pveU5qb2lRMjl1Wm1seWJXOGdZblZsYmlCa3c2MWhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636986839","n":"5491166033194","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986906","n":"5491133825700","m":"Y3pveU5Ub2lTRzlzWVNCaWRXVnVZWE1nYzJrZ2Mya2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636986935","n":"5491137052883","m":"Y3pvME1Eb2lUbThnY0dWeVpNT3piaUJ3WlhKdklHTmhibU5sYkc4Z1pXd2dkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1636987086","n":"5491169094218","m":"Y3pvME56b2lUR2x6ZEc4aElFTnZibVpwY20xaFpHOGdaVzRnWld3Z1pXNXNZV05sTGlCVFlXeDFaRzl6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636987110","n":"5491131843832","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987142","n":"5491168626368","m":"Y3pveU1Ub2lVMmtnYldIRHNXRnVZU0IyWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636987263","n":"5491132521299","m":"Y3pveU5Eb2lVMmxwYVNCc2J5QmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636987266","n":"5491132521299","m":"Y3pveE5qb2lRWE5wYzNScGNtVWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636987291","n":"5491132843489","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636987364","n":"5492233128962","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636987376","n":"5491161673174","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987420","n":"5491155818976","m":"Y3pveU16TTZJa0oxWlc0Z1pNT3RZU0FzSUdoaFlzT3RZU0JsYm5acFlXUnZJSFZ1SUcxbGJuTmhhbVVnWVNCdmRISnZJRzdEdW0xbGNtOGdjWFZsSUhSbGJzT3RZU0JoWjJWdVpHRmtieUJ3WVhKaElITmhZbVZ5SUhOcElITmxJSEIxWldSbElHTmhiV0pwWVhJZ1pXd2dhRzl5WVhKcGJ5QmtaV3dnZEhWeWJtOGdaR1VnYldIRHNXRnVZU0J3WVhKaElIRjFaU0JsYkNCdVpXNWxJRzV2SUdaaGJIUmxJR0ZzSUdOdmJHVm5hVzhnYzJrZ1pYTWdjRzl6YVdKc1pTQXNJSE5wYm04Z2MyVWdjSFZsWkdVZ2JHOGdkRzl0YnlCcFozVmhiQ0JoYkNCMGRYSnVieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636987467","n":"5491125758558","m":"Y3pvek5EUTZJa2h2YkdFZ2Mya2dZMjl1Wm1seWJXOGdlVzhnZG05NUlDMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwZ0trVlRWRVVnUlZNZ1ZVNGdUVVZPVTBGS1JTQkhSVTVGVWtGRVR5QkJWVlJQVFVGVVNVTkJUVVZPVkVVZ1VFOVNJRVZNSUZOSlUxUkZUVUVzSUU1UElGSkZVMUJQVGtSRlVpQkJJRVZUVkVVZ1RsVk5SVkpQS2lBdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0SUNCUWIzSWdabUYyYjNJZ0trTlBUa1pKVWsxQlVpQnZJRU5CVGtORlRFRlNLaUJzWVNCaGMybHpkR1Z1WTJsaElHVnVJR1ZzSUhOcFozVnBaVzUwWlNCbGJteGhZMlU2SUdoMGRIQTZMeTlqWlc1MGNtOXRaV1JwWTI5alpYSXVaR1J1Y3k1dVpYUXZZMjl1Wm1seWJXRnlMejkwYjJ0bGJqMHlRVEkxT0RjeE5VTkNNVU5DUVRFeU4wRkVOVFl5TVRNNU1EQkdRakEwTkNBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636987506","n":"5491166721933","m":"Y3pvek1Eb2lTRzlzWVNCamIyNW1hWEp0YnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636987559","n":"5491127289145","m":"Y3pveU5qb2lTRzlzWVNCemFTQmhhR2tnWlhOMFlYSmxJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636987562","n":"5491159562947","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987606","n":"5491165405650","m":"Y3pveU1Eb2lRMjl1Wm1seWJXOGdZbTk1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636987847","n":"5491131416597","m":"Y3pveU5Eb2lTRzlzWVNCemFTQmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636987938","n":"5491155676849","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987940","n":"5491138707354","m":"Y3pveU1qb2lTRzlzWVNBdUxpNGdVMmt1TGk0Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988029","n":"5491161448595","m":"Y3pvek1Eb2lVMmtnWTI5dVptbHliVzhnWVhOcGMzUmxibU5wWVNBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636988035","n":"5491161448595","m":"Y3pveU1qb2lUWFZqYUdGeklHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988070","n":"5491133070409","m":"Y3pveU5qb2lTRzlzWVM0Z1Uya3NJR052Ym1acGNtMXZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636988127","n":"5491169487380","m":"Y3pvNU1qb2lRblZsYm05eklHVERyV0Z6SVNCUWIyUnl3NjFoSUdOaGJXSnBZWEp6WlNERHFYTjBaU0IwZFhKdWJ5QndZWEpoSUdWc0lHVERyV0VnYW5WbGRtVnpJREU0THk4eE1TQndiM0lnYkdFZ2RHRnlaR1UvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636988207","n":"5491123309655","m":"Y3pveU1qb2lUMnNnYzJscElHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988219","n":"5491121770904","m":"Y3pveU5Eb2lRMjl1Wm1seWJXOGdkR0Z0WW1sbGJpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636988262","n":"5491157206262","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636988460","n":"5491156348047","m":"Y3pvek16b2lTRzlzWVNCemFTQnRZY094WVc1aElHVnpkR0Z0YnlCaGVTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636988576","n":"5491126588180","m":"Y3pveE16b2lTRzlzWVdFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988590","n":"5491126588180","m":"Y3pvME16b2lUbThnZEdWdXc2MWhJREV3T3pNd0lHVnNJSFIxY201dklHTnZjblpoYkdGdVB6OGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636988753","n":"5491162415008","m":"Y3pvMk56b2lTRzlzWVNCbGMzUnZlU0JqYjI0Z2JXa2djR1Z5YVc5a2J5QnVieUJ0WlNCd2IyVERxWE1nYzI5c2FXTnBkR0Z5SUc5MGNtRWdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636990353","n":"5491155818976","m":"Y3pvek1EQTZJbE5wTENCMllTQmhJR2x5SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnS2tWVFZFVWdSVk1nVlU0Z1RVVk9VMEZLUlNCSFJVNUZVa0ZFVHlCQlZWUlBUVUZVU1VOQlRVVk9WRVVnVUU5U0lFVk1JRk5KVTFSRlRVRXNJRTVQSUZKRlUxQlBUa1JGVWlCQklFVlRWRVVnVGxWTlJWSlBLaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ0JRYjNJZ1ptRjJiM0lnS2tOUFRrWkpVazFCVWlCdklFTkJUa05GVEVGU0tpQnNZU0JoYzJsemRHVnVZMmxoSUdWdUlHVnNJSE5wWjNWcFpXNTBaU0JsYm14aFkyVTZJR2gwZEhBNkx5OWpaVzUwY205dFpXUnBZMjlqWlhJdVpHUnVjeTV1WlhRdlkyOXVabWx5YldGeUx6OTBiMnRsYmowZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636990617","n":"5491130104752","m":"Y3pvNE5Eb2lTRzlzWVNCemFTQjJiM2tnWVNCcGNpQnRZY094WVc1aExDQm5jbUZqYVdGeklIZ2djbVZqYjNKa1lYSnRaU0JqZFdGdWRHOGdhR0Y1SUhGMVpTQmhZbTl1WVhJZ2VDQnBiMjFoUHlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636991147","n":"5491154142658","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636991154","n":"5491154142658","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636991156","n":"5491154142658","m":"Y3pveE1Ub2lSM0p6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636992616","n":"5491134441891","m":"Y3pvMU5Ub2lRblZsYm05eklHVERyV0Z6SUZOcElHRnphWE4wYVhKbElHMWh3N0ZoYm1FZ1RYVmphR0Z6SUdkeVlXTnBZWE1nS1NBZ0tTQWdLU0k3","r":2},{"t":"1636992977","n":"5491169323900","m":"Y3pvME1Eb2lRblZsYm1GeklIUmhjbVJsY3k0Z1EyRnVZMlZzdzdNZ1pXd2dkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636993103","n":"5491138403884","m":"Y3pvME9Eb2lTRzlzWVNCamIyNW1hWEp0YnlCaGMybHpkR1Z1WTJsaExpQk5kV05vWVhNZ1ozSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636994298","n":"5491169323900","m":"Y3pvek1qb2lUU0J3YjJSeXc2RnVJR1JoY2lCdmRISnZJSFIxY201dklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636994965","n":"5491164830009","m":"Y3pvMU9Ub2lTRzlzWVNCeGRXbGxjbThnWTJGdVkyVnNZWElnY0dWeWJ5QnVieUJ3ZFdWa2J5QnBibWR5WlhOaGNpQmhiQ0JzYVc1cklDa2dJQ2tnSUNraU93PT0=","r":3},{"t":"1636995667","n":"5491127955547","m":"Y3pveE16VTZJa2h2YkdFZ0xHNXZJSEIxWldSdklHVnVkSEpoY2lCbGJpQnNZU0J3dzZGbmFXNWhJRzV2SUhadmVTQmhJSEJ2WkdWeUlHRnphWE4wYVhJc2JtVmpaWE5wZEc4Z2Mya2diV1VnYkc4Z2NHOWtaWE1nY0dGellYSWdjR0Z5WVNCbGJDQnRaWE1nY1NCMmFXVnVaU0J3YjNJZ1ptRjJiM0lnTEdkeVlXTnBZWE1nS1NBZ0tTQWdLU0k3","r":3},{"t":"1636997336","n":"5491123272762","m":"Y3pvNU5qb2lTRzlzWVNBc2Mya2daWE1nWlc0Z2NIVnVkRzhnWlhOMFlYTERxU0J3YjNKeGRXVWdNVGtnYUc5eVlYTWdkR1Z1WjI4Z2IzUnlieUIwZFhKdWJ5NU9ieUJ0WlNCd2RXVmtieUJ3WVhOaGNpQndiM0ptWVhadmNpQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636997890","n":"5491123272762","m":"Y3pvME5Ub2lVRzlrY3NPdFlYTWdjR0Z6WVhKdFpTQndZWEpoSUdWc0lIWnBaWEp1WlhNZ01qWWdQeUFwSUNBcElDQXBJanM9","r":1},{"t":"1636997902","n":"5491123272762","m":"Y3pveU16b2lRU0JzWVhNZ01UZ2dhRzl5WVhNL0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636998071","n":"5491150235330","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636998458","n":"5491164399480","m":"Y3pvNU16b2lRblZsYm05eklHVERyV0Z6TEc1dklHMWxJR1JsYW1FZ2FXNW5jbVZ6WVhJZ1lXd2daVzVzWVdObExIQmxjbThnWTI5dVptbHliVzhnWld3Z2RIVnlibThnWkdVZ2JXSERzV0Z1WVN3Z1ozSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636998978","n":"5491169999523","m":"Y3pveU1Eb2lTRzlzWVNBZ2Mya2dkbTk1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637001178","n":"5491169487380","m":"Y3pvM01Eb2lRMDlPUmtsU1RVOGdWSFZ5Ym04Z2NHRnlZU0J0WVhKMFpYTWdNVFl2TVRFZ1lTQnNZWE1nTVRVNk16QWdjR0Z5WVNCQ1VrRldUeUJCVEVsRFNVRWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637002516","n":"5491157354178","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637009146","n":"5491154879281","m":"Y3pveE1qWTZJbE5wSUdOdmJtWnBjbTF2SUdWc0lIUjFjbTV2SUM0Z1RtOGdjSFZsWkc4Z1pXNTBjbUZ5SUdGc0lFeHBibXNnY0c5eWNYVmxJRzV2SUcxbElHRndZWEpsWTJVZ2JHRnpJSEJoYkdGaWNtRnpJR1Z1SUdOdmJHOXlJR05sYkdWemRHVWdjR0Z5WVNCaFkyTmxaR1Z5SUdGc0lFeHBibXNnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637036075","n":"5491158496351","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637036084","n":"5491158496351","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637093903","n":"5491121771516","m":"Y3pvME1Ub2lTRzlzWVNCamIyNW1hWEp0YnlCMGRYSnViM01nY0dGeVlTQnRZY094WVc1aElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637098174","n":"5491164356364","m":"Y3pvME1Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJR05oYm1ObGJHOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1637098301","n":"5491165930561","m":"Y3pvek5Ub2lRblZsYm1GeklIUmhjbVJsY3k0Z1Uya2dZWE5wYzNScGNzT3BJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637098352","n":"5491160160041","m":"Y3pvMU9Ub2lTRzlzWVNCdWJ5QnRaU0JrWldwaElHbHVaM0psYzJGeUlHRnNJR1Z1YkdGalpTQndaWEp2SUhOcElIWnZlU0JoSUdseUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637098368","n":"5491156397705","m":"Y3pvMk5qb2lSV3dnZEhWeWJtOGdibThnWlhNZ2NHRnlZU0JqYk1PdGJtbGpieXdnWlhNZ2NHRnlZU0J1WlhWeWIyeHZaOE90WVNCcGJtWmhiblJwYkNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637098387","n":"5491164252722","m":"Y3pvME1qb2lVMmt1SUZaaElHRnphWE4wYVhJdUlFVnNJR1Z1YkdGalpTQnVieUJoWW5KbExpQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637098397","n":"5491141719943","m":"Y3pvek9Eb2lVMmtnWTI5dVptbHliVzhnWld3Z2RIVnlibThzSUNCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637098435","n":"5491153299547","m":"Y3pveE5qb2lSblZwSUdGNVpYSWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637098440","n":"5491151224200","m":"Y3pveU1Ub2lVMmtnWTI5dVptbHliV0ZrYnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637098452","n":"5491159235882","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637098552","n":"5491151562602","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637098638","n":"5491123456125","m":"Y3pveU5Eb2lTRzlzWVNCemFTQjJiM2tnWVNCcGNpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637098660","n":"5491155043975","m":"Y3pveU56b2lTRzlzWVNCeGRXVWdkR0ZzSUhOcElIWnZlU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637098756","n":"5491138300880","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637098808","n":"5491163552763","m":"Y3pvMk9Eb2lRblZsYm1GeklIUmhjbVJsY3lFZ1EyOXVabWx5Ylc4Z1lYTnBjM1JsYm1OcFlTQmtaV3dnWTJ4cGJtbGpieUI1SUc5bWRHRnNiVzlzYjJkdklDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637098830","n":"5491161305727","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637098912","n":"5491125043264","m":"Y3pveE1qSTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4Tmk4eE1Ua3dOREl2TURrMFptWTROakV0TURrM01DMDBZVEl4TFRobE1URXRaR1U0TVdSa1ptTTBZVFUwTG05bllTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637098909","n":"5491158574299","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637098999","n":"5491136209775","m":"Y3pvek1qb2lRWE5wYzNScGNzT3BJRzExWTJoaGN5Qm5jbUZqYVdGeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637099062","n":"5491146733635","m":"Y3pvME1qb2lUbVZqWlhOcGRHOGdiM1J5YnlCMGRYSnVieUF1Ym04Z2JHeGxaM1ZsSUdodmVTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637099143","n":"5491162503013","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637099164","n":"5491168946989","m":"Y3pveE9Ub2lVMmtnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637099460","n":"5491137879177","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637099589","n":"5491151343108","m":"Y3pveU1Ub2lVMmtnWTI5dVptbHliV0ZrYnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637100890","n":"5491161774040","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637101182","n":"5491164922057","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637101220","n":"5491126469966","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637101661","n":"5491124709670","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637102352","n":"5491136095898","m":"Y3pveU56b2lRMjl1Wm1seWJXRmtieUJsYkNCMGRYSnVieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637105117","n":"5491130140278","m":"Y3pveE5qb2lTRzlzWVNCemFTRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637106114","n":"5491133660611","m":"Y3pveU9Eb2lVR0Z5WVNCeGRXVWdjR0ZqYVdWdWRHVWdaWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1637147081","n":"5491160531288","m":"Y3pvMU9Eb2lTRzlzWVNCaWRXVnViM01nWk1PdFlYTWdiV1VnY0c5a2NzT3RZU0J3WVhOaGNpQnNZU0JrYVhKbFkyTnB3N051UHo4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637153296","n":"5491164955550","m":"Y3pveE56b2lRMjl1Wm1seWJXOHVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637153480","n":"5491136873707","m":"Y3pvME1Ub2lRMjl1Wm1seWJXOGdjWFZsSUZOcElIWnZlU0JoSUhCeVpYTmxiblJoY20xbElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637153804","n":"5491131069821","m":"Y3pveU5Eb2lRMkZ1WTJWc2J5QmxiQ0IwZFhKdWJ5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637154263","n":"5491168946989","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637154391","n":"5491168946989","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637155855","n":"5491168946989","m":"Y3pveE1qSTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4Tnk4eE1Ua3dOREl2WkROaE0yUXlZVEV0TnpZd05pMDBOREZsTFRneU0yUXRNalUwWWpoak0yUTNaVFZqTG05bllTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637156044","n":"5491157449568","m":"Y3pvMk5Ub2lTRzlzWVNCQ2RXVnVJR1REcldFZ1Uya2djMmtnUkdsdmN5QnhkV2xsY21VZ2RtOTVJR0VnWlhOMFlYSWdZV2pEclNCSGNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637156511","n":"5491153191540","m":"Y3pveU16b2lVMmtnZG1FZ1lTQmhaR2x6ZEdseUlDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637160341","n":"5491134011733","m":"Y3pveU5qb2lRMjl1Wm1seWJXRmtieUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637166472","n":"5491158335285","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637177038","n":"5491167097419","m":"Y3pveE5ESTZJa2h2YkdFc0lHSjFaVzVoY3lCMFlYSmtaWE11SUZOdmVTQkJiSFpoY21WNklGWmhibWx1WVN3Z2RHVnVaMjhnZEhWeWJtOGdZMjl1SUdWc0lIUnlZWFZ0WVhURHMyeHZaMjhnTVRZdU16QXNJSEYxWlhMRHJXRWdZWFpwYzJGeUlIRjFaU0JsYzNSdmVTQnNiR1ZuWVc1a2J5QjFibTl6SUcxcGJuVjBiM01nZEdGeVpHVXVJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637177858","n":"5491123309655","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637327607","n":"5491132389615","m":"Y3pveU5Ub2lVR0ZoSUhrZ1kyOXNjRzhnYUdGalpXNGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637328371","n":"5491157449568","m":"Y3pvek1Ub2lVMmtnWlhOMFlYTERxU0JoYU1PdElHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637328661","n":"5491157822917","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4T1M4eE1Ua3dOREl2TkRNNE5tRTRNak10TldZM01DMDBNVEEzTFdKaVltRXRNbU5qTm1SbE1EY3pPREUxTG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637328850","n":"5491169325569","m":"Y3pvek1Ub2lTRzlzWVdFZ2MybHBhU0IwWlNCamIyNW1hWEp0YnlFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637328902","n":"5491163022108","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637328908","n":"5491164946089","m":"Y3pveU1Eb2lRblZsYm05eklHUnBZWE1oSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637329009","n":"5491124676105","m":"Y3pveU16b2lTRzlzWVNCemFTQjJiM2tnWVdseUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637329023","n":"5491169013024","m":"Y3pvek1qb2lTRzlzWVNCaWRXVnVJR1JwWVNCc2J5QmpZVzVqWld4dklDa2dJQ2tnSUNraU93PT0=","r":3},{"t":"1637329066","n":"5491161763781","m":"Y3pvME1qb2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOHNJQ0J0ZFdOb1lYTWdaM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637329188","n":"5491166889834","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637329543","n":"5491167673031","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637329618","n":"5491154648059","m":"Y3pveU1qb2lTRzlzWVNCaWRXVnVJR1REcldFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637329627","n":"5491130189301","m":"Y3pveU1Ub2lWbTk1SUdFZ1lYTnBjM1JwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637329710","n":"5491159483944","m":"Y3pveE1qWTZJa0oxWlc1dmN5Qmt3NjFoY3lCbGJDQjBkWEp1YnlCc2J5QmpZVzVqWld6RHN5QmxiQ0J0WldwdmNpQlBZM1JoZG1sdklFZkRzMjFsZWlCaGVXVnlJSE4xSUcxaFpISmxJSE5sSUd4dklHeHNaWGJEc3lBdUlGbGhJRzV2SUdWemRHOTVJR0VnWTJGeVoyOGdaR1ZzSUcxbGJtOXlJQzRnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637329939","n":"5491169520723","m":"Y3pveU1qb2lTRzlzWVNCeGRjT3BJSFJoYkQ4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637329965","n":"5491159920613","m":"Y3pveU9Eb2lVMmtnWTI5dVptbHliVzhnWld3Z2RIVnlibThnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637330116","n":"5491134525349","m":"Y3pveE5Ub2lSM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637330222","n":"5491155881950","m":"Y3pvMU16b2lRMjl1Wm1seWJXOGdRWE5wYzNSbGJtTnBZU0JoYkNCVWRYSnVieTRnVFhWamFHRnpJRWR5WVdOcFlYTXVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637330749","n":"5491162085172","m":"Y3pveU1Eb2lVMmxwSUdOdmJtWnBjbTF2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637330757","n":"5491162085172","m":"Y3pveU9Eb2lVR0Z5WVNCeGRXbGxiaUJsY3lCbGMzUnZQejhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637331193","n":"5491130516514","m":"Y3pvM09Ub2lRblZsYmlCa3c2MWhJU0JGYzNSdmVTQmtaU0IwZFhKdWJ5QmxjMlVnWk1PdFlTQjVJRzV2SUhCMVpXUnZJR05oYldKcFlYSWdZMjl1SUcxcElHTnZiWEJodzdGbGNtRWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1637331234","n":"5491136301852","m":"Y3pveU1qb2lVMmtnYzJrZ1kyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637331643","n":"5491149456753","m":"Y3pveE5qb2lRMjl0Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637332431","n":"5491150537039","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637334924","n":"5491127462916","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637337217","n":"5491131959737","m":"Y3pvM05qb2lZblZsYm1GeklIUmhjbVJsY3lFZ1kyOXVabWx5Ylc4Z2NHOXlJR0ZqdzZFZ2VXRWdjWFZsSUdFZ2JHRWdjTU9oWjJsdVlTQnVieUJ3ZFdWa2J5QmxiblJ5WVhJZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637339926","n":"5491157616068","m":"Y3pvNE5Eb2lRblZsYm1GeklIUmhjbVJsY3k0Z1EyRnVZMlZzWlNCbGJDQjBkWEp1Ynk0Z1RXVWdjRzlrY3NPaGN5QnlaU0J3Y205bmNtRnRZWElnWld3Z2RIVnlibThnY0c5eUlHWmhkbTl5UHlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637346630","n":"5491159479979","m":"Y3pvNU1Eb2lRMkZ1WTJWc2J5RWhJU0JPYnlCc2JHVm5ieUJqYjI0Z1pXd2dhRzl5WVhKcGJ5NGdXV0VnYUdGaXc2MWhJRzFoYm1SaFpHOGdZV3dnYjNSeWJ5QjNjMkZ3SVNFZ1RXbHNJR1JwYzJOMWJIQmhjeUFwSUNBcElDQXBJanM9","r":3},{"t":"1637353596","n":"5491157362529","m":"Y3pvME5Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJR052Ym1acGNtM0RzeUJzYjNNZ1pHOXpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637354601","n":"5491138493165","m":"Y3pvNE1qb2lRMjl1Wm1seWJXOGdiRzl6SUhSMWNtNXZjeUJ3WlhKdklHVnpJSEJoY21FZ1lXUjFiSFJ2Y3l3Z2NHOXljWFZsSUhCMWMybGxjbTl1SUc5a2IyNTBiM0JsWkdsaGRITERyV0VnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637362332","n":"5491131847628","m":"Y3pvMk1qb2lTRzlzWVNFZ1FuVmxibUZ6SUhSaGNtUmxjeXdnWTI5dVptbHliVzhnTVNCa1pTQnNiM01nZEhWeWJtOXpMQ0JsYkNCdGFXOHVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637401880","n":"5491150100858","m":"Y3pvNE56b2lRblZsYm05eklHVERyV0Z6SUNFZ1VYVmxjc090WVNCamIyNXpkV3gwWVhJZ0xpQkliM2tnZEhWeWJtOGdZMjl1SUczRHFXUnBZMjhnWTJ6RHJXNXBZMjhnYVcxd2IzTnBZbXhsSUc1dlB5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637413029","n":"5491122351945","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637439492","n":"5491155089290","m":"Y3pvek9Ub2lRblZsYm1GeklIUmhjbVJsY3k0Z1EyRnVZMlZzYnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":3},{"t":"1637498912","n":"5491156471332","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637498937","n":"5491134194093","m":"Y3pvMU5Ub2lTRzlzWVN3Z2JtOGdkbTk1SUdFZ1kyOXVZM1Z5Y21seUlDQmhiQ0IwZFhKdWJ5d2dJR3h2SUdOaGJtTmxiRzhnS1NBZ0tTQWdLU0k3","r":3},{"t":"1637499070","n":"5491156348001","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh5TVM4eE1Ua3dOREl2T1dVeE1qUmxOemd0WXpJMU9TMDBOR0prTFRsalltWXRZalF3TUdOaFlXRm1PV0psTG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637499164","n":"5491135691510","m":"Y3pveE9Ub2lVMmtnWVhOcGMzUnBjbVVnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637499196","n":"5491155881950","m":"Y3pvME1Ub2lRMjl1Wm1seWJXOGdWSFZ5Ym04Z2NHRnlZU0JzWVhNZ01UUXVORFVnYUhNdUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637499487","n":"5491153758254","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637500696","n":"5491164252722","m":"Y3pvek1Ub2lVMmt1SUZaaElHRnphWE4wYVhJZ1lXd2dkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637501837","n":"5491124556121","m":"Y3pvek16b2lTRzlzWVNCdWJ5QnVieUIyYjNrZ1lTQndiMlJsY2lCcGNpQXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637502036","n":"5491124676105","m":"Y3pveU16b2lTRzlzWVNCemFTQjJiM2tnWVdseUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637504861","n":"5491162085172","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637514093","n":"5491166595940","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637519730","n":"5491153406027","m":"Y3pvek5Ub2lTRzlzWVNFZ1RtOGdiV1VnWVhCaGNtVmpaU0JsYkNCc2FXNXJJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637524814","n":"5491167673031","m":"Y3pvek1Eb2lZMjl1Wm1seWJXVWdaR2xqWlNCbGJDQjBaWGgwYnlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637585378","n":"5491135644189","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637585456","n":"5491139252267","m":"Y3pveU9Ub2lVMmt1SUVOdmJtWnBjbTF2SUdWc0lIUjFjbTV2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637585459","n":"5491168826955","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637585474","n":"5491135644189","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637585662","n":"5491157723991","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637585710","n":"5491158953617","m":"Y3pveE1URTZJa0oxWlc1dmN5Qmt3NjFoY3lFZ1VYVmxjbkxEcldFZ2MyRmlaWElnY1hWbElHVERyV0VnZEdWdVoyOGdkSFZ5Ym04Z2NHRnlZU0JsYkNCdlpuUmhiRzNEczJ4dloyOGdMQ0JOWVhKMGFXNWhJRXhoZEc4Z1pHNXBJRFUxTVRneE5USTJJRWxQVFVFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637585731","n":"5491150151742","m":"Y3pveE16ZzZJa0oxWlc0Z1pNT3RZU3dnYm04Z1lYTnBjM1J2SUhCdmNuRjFaU0J1YnlCMFpXNW5ieUJzWVNCbFkyOW5jbUZtdzYxaElIRjFaU0J0WlNCd2FXUnB3N01nYkdFZ1pHOWpkRzl5WVN3Z2NHOWtjc090WVNCeVpYQnliMmR5WVcxaGNpQndZWEpoSUdSbGMzQjF3Nmx6SUdSbGJDQTNJR1JsSUdScFkybGxiV0p5WlM0Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637585745","n":"5491158267017","m":"Y3pveU56b2lVMmtzSUd4dklHTnZibVpwY20xdkxpQklZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637585771","n":"5491140621384","m":"Y3pveU1Ub2lTRzlzWVNCemFTQjJZVzF2Y3lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637585878","n":"5491164673182","m":"Y3pveE1qb2lVMmx6YVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637585901","n":"5491131251050","m":"Y3pveU5Eb2lTRzlzWVNCemFTQjJiM2tnWjNKamN5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637586039","n":"5491163674493","m":"Y3pveU1Ub2lWbTk1SUdFZ1lYTnBjM1JwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637586067","n":"5491163539693","m":"Y3pveE5Ub2lRMkZ1WTJWc2J5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637586084","n":"5491150615652","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1637586335","n":"5491150620385","m":"Y3pveE56b2lRMjl1Wm1seWJXOGhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637586586","n":"5491151792321","m":"Y3pvek56YzZJa0oxWlc1dmN5Qmt3NjFoY3lBc0lHTnZibVpwY20xdklHM0RyU0JqYVhSaElHTnZiaUJzWVNCa2IyTjBiM0poSUVobGNtTnZiR2t1SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnS2tWVFZFVWdSVk1nVlU0Z1RVVk9VMEZLUlNCSFJVNUZVa0ZFVHlCQlZWUlBUVUZVU1VOQlRVVk9WRVVnVUU5U0lFVk1JRk5KVTFSRlRVRXNJRTVQSUZKRlUxQlBUa1JGVWlCQklFVlRWRVVnVGxWTlJWSlBLaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ0JRYjNJZ1ptRjJiM0lnS2tOUFRrWkpVazFCVWlCdklFTkJUa05GVEVGU0tpQnNZU0JoYzJsemRHVnVZMmxoSUdWdUlHVnNJSE5wWjNWcFpXNTBaU0JsYm14aFkyVTZJR2gwZEhBNkx5OWpaVzUwY205dFpXUnBZMjlqWlhJdVpHUnVjeTV1WlhRdlkyOXVabWx5YldGeUx6OTBiMnRsYmowMU5UbENNVFl6UmpGQlJVTkdNREZCTWtJNFJUbEZOVFpCTkRjNVJqVTJSaUFwSUNBcElDQXBJanM9","r":2},{"t":"1637586840","n":"5491161863536","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637586886","n":"5491128719338","m":"Y3pveU5Eb2lTRzlzWVNCaWRXVnViM01nWkdsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637586898","n":"5491128719338","m":"Y3pveU1qb2lVMmtnYkc4Z1kyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637587198","n":"5491139167996","m":"Y3pveU5Ub2k4SitSamZDZmtZM3duNUdOYzJsMmIza2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637587235","n":"5491156687210","m":"Y3pveU1qb2lSWE4wYzNKbGJXOXpJR0ZzYkdrZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637587455","n":"5491134079757","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637588332","n":"5491122549333","m":"Y3pveU1Eb2lRblZsYm05eklHVERyV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637588358","n":"5491122549333","m":"Y3pveE5Ub2lSM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637589393","n":"5491139226313","m":"Y3pveU1Eb2lXV0VnWTI5dVptbHliY09wSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637589463","n":"5491166127626","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637589469","n":"5491166127626","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637590739","n":"5491159776771","m":"Y3pvek1Eb2lTRzlzWVN3Z2Mya2dkbTk1SUdFZ1lYTnBjM1JwY2lBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637590763","n":"5491159776771","m":"Y3pvMk1qb2lUV1VnY0c5a2NtbGhiaUJsYm5iRHJXRnlJR1ZzSUdWdWJHRmpaU0JoY0dGeWRHVS9JRTV2SUd4dklIQjFaV1J2SUdGaWNtbHlJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637590829","n":"5491130341643","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637592261","n":"5491168186969","m":"Y3pvMk9Ub2lVMmtnTGlCRmMzUmhjbVVnWlc0Z1pXd2dZMjl1YzNWc2RHOXlhVzhnWld3Z1pHbGhJREkwSUdSbGJDQXhNU0JoSUd4aGN5QXhOeUJvYjNKaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637593213","n":"5491154829249","m":"Y3pveE5qYzZJa0oxWlc1dmN5Qmt3NjFoY3lBaElYWnZlU0JoSUdOaGJtTmxiR0Z5SUdWc0lIUjFjbTV2SUhCdmNuRjFaU0JsYlhCcFpYcHZJR0VnZEhKaFltRnFZWElnWkhWeVlXNTBaU0JzWVNCdFljT3hZVzVoTGlCT1pXTmxjMmwwWVhMRHJXRWdjbVZ3Y205bmNtRnRZWElnY0dGeVlTQmxiQ0IyYVdWeWJtVnpJREV3SUdSbGMzQjF3Nmx6SUdSbElHeGhjeUF4TnlCNUlETXdJR2h2Y21GekxpQXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637594357","n":"5491166837304","m":"Y3pveE9Ub2lRMjl1Wm1seWJXRmtieUVnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637595175","n":"5491132809890","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637595765","n":"5491151533110","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637595954","n":"5491134726849","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdiRzl6SUhSMWNtNXZjeUFwSUNBcElDQXBJanM9","r":2},{"t":"1637599660","n":"5491138242695","m":"Y3pveU1Eb2lVMmtnZG05NUlHVnNJREkwSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637599666","n":"5491138242695","m":"Y3pveU1Eb2lWVzVoSUhCeVpXZDFiblJ6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637599670","n":"5491138242695","m":"Y3pveE9Eb2lWR1Z1WjI4Z2FXOXRZU0FwSUNBcElDQXBJanM9","r":1},{"t":"1637599681","n":"5491138242695","m":"Y3pveU9Eb2lVWFZsSUdSbFltVnl3NjFoSUdGaWIyNWhjajhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637599723","n":"5491138242695","m":"Y3pvNU5qb2lVM1Z3ZFdWemRHRnRaVzUwWlNCdFpTQm9ZV05sSUZCaGNDQjVJR052YkhCdklHTnlaVzh1Ym04Z1pYTjBiM2tnWTI5dUlIQnNZWFJoSUhCdmNpQmxjMjhnWTI5dWMzVnNkRzhnY0c5eUlHeGhjeUJrZFdSaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637600446","n":"5491164452958","m":"Y3pvME56b2lSM0poWTJsaGN5QjJiM2tnWVNCcGNpQlVaVzVuYnlCeGRXVWdZV0p2Ym1GeUlHRnNaMjgvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637605422","n":"5491146735749","m":"Y3pvek16QTZJa052Ym1acGNtMWhjaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ3BGVTFSRklFVlRJRlZPSUUxRlRsTkJTa1VnUjBWT1JWSkJSRThnUVZWVVQwMUJWRWxEUVUxRlRsUkZJRkJQVWlCRlRDQlRTVk5VUlUxQkxDQk9UeUJTUlZOUVQwNUVSVklnUVNCRlUxUkZJRTVWVFVWU1R5b2dMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTQWdVRzl5SUdaaGRtOXlJQ3BEVDA1R1NWSk5RVklnYnlCRFFVNURSVXhCVWlvZ2JHRWdZWE5wYzNSbGJtTnBZU0JsYmlCbGJDQnphV2QxYVdWdWRHVWdaVzVzWVdObE9pQm9kSFJ3T2k4dlkyVnVkSEp2YldWa2FXTnZZMlZ5TG1Sa2JuTXVibVYwTDJOdmJtWnBjbTFoY2k4L2RHOXJaVzQ5UkVaRU1qZEVOa0kzUWtZNVFVUkdRalpDTXpnNU5qazVSVE16UWtSRk9ETWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637607374","n":"5491128719338","m":"Y3pveE5Eb2lXVEF3YUdnd0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637607687","n":"5491122264763","m":"Y3pvMU1Eb2lUbVZqWlhOcGRHRnlhV0VnTWlCMGRYSnViM01nY0dGeVlTQmxiQ0J1ZFhSeWFXTnBiMjVwYzNSaElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637607702","n":"5491122264763","m":"Y3pvek1Eb2lWR1Z1WjI4Z2IySnlZU0J6YjJOcFlXd2dhVzl0WVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637608634","n":"5491156946976","m":"Y3pvME1Ub2lUbThnYldVZ1pHVnFZU0JqYjI1bWFYSnRZWElnWkdWelpHVWdiR0VnZDJWa0lDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637618871","n":"5491136439972","m":"Y3pvME9Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpMaUJUYVNCamIyNW1hWEp0YnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637630842","n":"5491166865682","m":"Y3pvek56b2lSWE4wWVNCamIyNW1hWEp0WVdSdklIQmhjbUVnWlhObElHVERyV0VnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637664153","n":"5491161182089","m":"Y3pvNU1qb2lTSFIwY0RvdkwyTmxiblJ5YjIxbFpHbGpiMk5sY2k1a1pHNXpMbTVsZEM5amIyNW1hWEp0WVhJdlAzUnZhMlZ1UFRkRE5FTXpOVEV5TXpVNFJESTBNVFJFUVVZNE9UY3hPREV3UVVGRk5EZEdJQ2tnSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637667526","n":"5491131568213","m":"Y3pveE9Eb2lZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637668146","n":"5491149160939","m":"Y3pvNE5Ub2lTRzlzWVNCaWRXVnVJR1REcldFc0lIRjFhWE5wWlhKaElHTmhiV0pwWVhJZ1pXd2dkSFZ5Ym04Z2NYVmxJSFJsYm1kdklIQmhjbUVnYUc5NUlDeHdZWEpoSUc5MGNtRWdabVZqYUdFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637668730","n":"5491160019520","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637671567","n":"5491162289612","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637671633","n":"5491139376335","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637671661","n":"5491121718178","m":"Y3pvM01Ub2lRblZsYm05eklHVERyV0Z6SVNCRmJDQjBkWEp1YnlCbGN5QndZWEpoSUcxcElHaHBhbUVnTGlCT1pYVnliMnh2WjhPdFlTQnBibVpoYm5ScGJDQXVJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637671668","n":"5491165966920","m":"Y3pvek1qb2lZblZsYmlCa2FXRWhjMmtnYzJrZ1lYTnBjM1JsY3NPb0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637671695","n":"5491121718178","m":"Y3pvMU5Eb2lVR1ZrdzYwZ1pXd2dkSFZ5Ym04Z0xpQlFZWE5sSUd4dmN5QmtZWFJ2Y3k0Z0lFVmtZV1FnZVNCa2Jta2dMaUFwSUNBcElDQXBJanM9","r":1},{"t":"1637671738","n":"5491133704840","m":"Y3pveE5EazZJbUoxWlc1dmN5QmthV0VnWTI5dVptbHliV0ZrYnlBdUxtRnNiR2tnWlhOMFlYSmxiVzl6SUM0dWJHVWdjbVZwZEdWeWJ5QW5JRzFwSUc1cHc3RnZJSFJwWlc1bElERXlJR0hEc1c4Z0xtVnVkRzlqWlhNZ2FYSmhJR0ZqYjIxd1ljT3hZV1J2SUdOdmJpQnNZU0J0WVdSeVpTQXVMbkYxWlNCMFpXNW5ZWE1nZFc0Z1luVmxiaUJrYVdFZ0xpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637671741","n":"5491136165472","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671769","n":"5491133704840","m":"Y3pveE9Eb2lZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637671804","n":"5491158018524","m":"Y3pveE56b2lRMDlPUmtsU1RjT1RJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637671852","n":"5491168683393","m":"Y3pveU56b2lSM0poWTJsaGN5QXNJR0Z6YVhOMGFYTERxU0FwSUNBcElDQXBJanM9","r":1},{"t":"1637671881","n":"5491162869138","m":"Y3pvM05qb2lRMjl1Wm1seWJXOGdMQ0JzYjNNZ1pHOXpJSFIxY201dmN5d2diY090YnlCQmRXSnllU0JOWVhKcGMyRWdlU0JrWlNCRGJHRjFaR2x2SUVSbGJHd25UMmRzYVc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637671882","n":"5491160001218","m":"Y3pvME1Ub2lSWEp5YjNJaElFNXZJSFJsYm1kdklIUjFjbTV2SUc1bGRXMXZiRzludzYxaElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637671883","n":"5491131793658","m":"Y3pveE1Eb2ljMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671890","n":"5491136165472","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671928","n":"5491134132470","m":"Y3pveE9Ub2lRblZsYm05eklHUnBZWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671922","n":"5491155010012","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637671973","n":"5491163369755","m":"Y3pvME5Ub2lRblZsYm05eklHVERyV0Z6TENCemFTNHVMaUIwWlNCamIyNW1hWEp0YnlCMGRYSnVieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637672192","n":"5491151343108","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637672223","n":"5491133214313","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637672289","n":"5491153424359","m":"Y3pvMU9Eb2lVMmtnWTI5dVptbHliVzhnY1hWbElIWnZlU0FzSUVScGIzTWdiV1ZrYVdGdWRHVWc4SitaanlCSGNtRmphV0Z6SUM0Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637672620","n":"5491121770904","m":"Y3pvME5qb2lTRzlzWVNCaGRtbHpieUJoYkNCd2MybGp3N05zYjJkdklIRjFaU0J1YnlCMllTQm9iM2tnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637672824","n":"5491127224262","m":"Y3pvek9Eb2lVMlVnY0hWbFpHVWdjR0Z6WVhJZ2NHRnlZU0JrYVdOcFpXMWljbVUvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637672845","n":"5491126447623","m":"Y3pveE9Eb2lRMDlPUmtsU1RVRkVUeUFwSUNBcElDQXBJanM9","r":2},{"t":"1637672891","n":"5491164224320","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637672955","n":"5491121718178","m":"Y3pvME9Ub2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z2NHRnlZU0JsYkNBeU5TQXZNVEVnWVNCc1lYTWdNVFF1TXpBZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637672988","n":"5491131081224","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637673027","n":"5491126359050","m":"Y3pveE5EWTZJbE5wSUdGb2FTQnNieUJqYjI1bWFYSnRieXdnYkc4Z2NYVmxJRzFsSUd4c1lXMWhJR3hoSUdGMFpXNWphVzl1SUdWeklIRjFaU0JrYVdkaElHOWtiMjUwYjNCbFpHbGhkSEpwWVN3Z2FHRjVJR0ZzWjNWdUlIQnliMkpzWlcxaElHTnZiaUJsYzI4L0lHVnlZU0J2Wkc5dWRHOXNiMmRwWVNCamIyMTFiaUJ3WVhKaElHRmtkV3gwYnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637673121","n":"5491154094740","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637673252","n":"5491163725714","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637673266","n":"5491163725714","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637673279","n":"5491163725714","m":"Y3pvek16b2lUbThnYldVZ1pHVnFZU0JsYm5SeVlYSWdZV3dnYkdsdWF5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637674092","n":"5491137704519","m":"Y3pvek1qb2lUV1VnY0c5a1pYTWdiV0Z1WkdGeUlHOTBjbUVnZG1WeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637674219","n":"5491122732290","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637674556","n":"5491131151148","m":"Y3pvME1Ub2lRblZsYm05eklHVERyV0Z6SVNCRGIyNW1hWEp0YnlCaGMybHpkR1Z1WTJsaElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637675454","n":"5491166750772","m":"Y3pvMU5qb2lTRzlzWVNCc2IzTWdaRzl6SUhSMWNtNXZjeUJqYjI1bWFYSnRZV1J2Y3lCUmRXbHliM29nUm5KaGJtTm9hVzVwSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637675849","n":"5491169097228","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637676076","n":"5491133394314","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637677773","n":"5491169014561","m":"Y3pveU1Ub2lTRzlzWVNCamIyNW1hWEp0YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637677871","n":"5491164876253","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637680805","n":"5491153139812","m":"Y3pveU1Ub2lRblZsYm05eklHVERyV0Z6SVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637683499","n":"5491134727159","m":"Y3pvNE5Ub2lRblZsYmlCa3c2MWhJU0VoSVNCRGIyNW1hWEp0YnlCc2IzTWdkSFZ5Ym05eklHOW1kR0ZzYlc5c3c3Tm5hV05oTENCNUlFUmxjbTFoZEc5c2IyZHBZU3dnWjNKaFkybGhjeUVoSVNFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637698050","n":"5491138554852","m":"Y3pveU56b2lSR2x6WTNWc2NHVnVJU0JEWVc1alpXeHZJU0FwSUNBcElDQXBJanM9","r":3},{"t":"1637704050","n":"5491160422796","m":"Y3pveU5Ub2lTRzlzWVN4MWJtRWdZMjl1YzNWc2RHRWdLU0FnS1NBZ0tTSTc=","r":1}],"total":569}'; //$respuesta = json_decode($resultado ,true); //print_r($respuesta);die; $res = saveWhatsappReponses($respuesta); if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs_response/whatsapp_response_process'.(date('dmY_His')).'.txt'; $actual = "RESULTADO "."\n"; $actual.= print_r($resultado,true)."\n"; $actual.= "RESULTADO GRABAR"."\n"; $actual.= "[".($res?'OK':'ERROR')."]"."\n"; file_put_contents($fichero, $actual); } return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service."; if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs_response/whatsapp_response_process'.(date('dmY_His')).'.txt'; $actual = print_r($e->__toString(),true)."\n"; file_put_contents($fichero, $actual); } return false; } } function getWhatsappMessagesByChatId() { try { $params = array("customer" => $GLOBALS['WS_WHATSAPP_CUSTOMER']); return callWebServiceWhatsappMessagesByChatId_SOAP($params); } catch ( Exception $e ) { //Error al consultar el WS } } function callWebServiceWhatsappMessagesByChatId_SOAP($params) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['WS_WHATSAPP_SENDER_TEST']; //print_r($url);die; ini_set("default_socket_timeout", 20000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->sendWhatsappLink($params); // print_r("----resultado----"); print_r($resultado);print_r("\n"); print_r('-----------------');print_r("\n"); print_r(json_decode($resultado ,true));die; print_r('-----------------');print_r("\n"); $respuesta = json_decode($resultado ,true); //$resultado = '{"result":true,"responses":[{"t":"1636077515","n":"5491135066371","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636077542","n":"5491163686848","m":"Y3pveU1qb2lRMjl1Wm1seWJXRmtieUVoSVNFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636077558","n":"5491149371703","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636077561","n":"5491149371703","m":"Y3pveE1Ub2lWbTk1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636077583","n":"5491136132561","m":"Y3pveU5qb2lVMmtnZG05NUlHRWdZMjl1WTNWeWNtbHlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636077684","n":"5491134797993","m":"Y3pvM056b2lTRzlzWVN3Z2M4T3RJR052Ym1acGNtMXZJR1ZzSUhSMWNtNXZJR1JsYkNCa3c2MWhJREEyTHpFeEx6SXdNakVnWVNCc1lYTWdNVEk2TkRVdUlFZHlZV05wWVhNdUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636077798","n":"5491150449238","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636110268","n":"5491131897710","m":"Y3pvek1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04c1ozSmhZMmxoY3k0dUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636116051","n":"5491168469534","m":"Y3pveE9UQTZJa2h2YkdFZ1luVmxibTl6SUdURHJXRnpJRTFwY21FZ2RHVWdZWFpwYzI4Z2NYVmxJRzV2SUhadmVTQmhJR0Z6YVhOMGFYSWdjRzl5Y1hWbElIUnZaR0YydzYxaElHNXZJSFJsYm1kdklHeHZjeUJ5WlhOMWJIUmhaRzl6SUdSbElHeHZjeUJoYnNPaGJHbHphWE1nWkdWemNIWERxWE1nZEdVZ2NHbGtieUIxYmlCMGRYSnVieUJ3WVhKaElHM0RvWE1nWVdSbGJHRnVkR1VnVFhWamFHRnpJR2R5WVdOcFlYTWdRblZsYm05eklHVERyV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":3},{"t":"1636117257","n":"5491121899042","m":"Y3pveU1qb2lUMnNnYzJrZ1kyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636118075","n":"5491154575263","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636120370","n":"5491154161222","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636156760","n":"5491150449238","m":"Y3pvME9Ub2lTRzlzWVNCaWRXVnVZWE1nYm05amFHVnpMQ0IwWlNCallXNWpaV3pEc3lCbGJDQjBkWEp1Ynk0Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636193442","n":"5491132389615","m":"Y3pveE1UazZJbGdnY0hKdllteGxiV0Z6SUhCbGNuTnZibUZzWlhNZ2FHOTVJRzV2SUhCMVpXUnZJR052Ym1OMWNuSnBjaUJoSUcxcElIUjFjbTV2SUhCbGNtVERzMjRnY0dWeWJ5Qm1kV1VnYUc5NUlIRjFaU0J1YnlCd2RXVmtieUJwY2lCdGRXTm9ZWE1nWjNKaFkybGhjeTR1TGlBcElDQXBJQ0FwSWpzPQ==","r":3},{"t":"1636328000","n":"5493516110992","m":"Y3pvek5qb2lRV2pEclNCMmIza2dZU0IwZFNCallYTmhJR0VnYUdGalpYSnNieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636328056","n":"5493516110992","m":"Y3pvek16b2lVbVZqYWNPcGJpQnpZV3huYnlCa1pTQmlZY094WVhKdFpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636328062","n":"5493516110992","m":"Y3pveU5Ub2lRV2QxWVc1MFlTQmpaWEpsWW5KcGRHOGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636387338","n":"5491168073052","m":"Y3pvME1Ub2lRblZsYm1GeklIUmhjbVJsY3lCamIyNW1hWEp0YnlCaGMybHpkR1Z1WTJsaElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636387395","n":"5491168073052","m":"Y3pvM01Eb2lVWFZwWlhKdklHTmhibU5sYkdGeUlHVnNJSFIxY201dklHUmxJRzFwSUdocGFtOGdZU0JzWVhNZ01UWWdhSE1nWTI5dUlHTmhjbVJwYjJ4dloyOGdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636387404","n":"5491124587349","m":"Y3pvM09Ub2lRMkZ1WTJWc2J5QndiM0p4ZFdVZ2RHVnVaMjhnWkdWdFlYTnBZV1J2SUhSeVlXSmhhbTh1SUV4c1lXMXZJR1JsYzNCMXc2bHpJSEJoY21FZ2IzUnlieUIwZFhKdWJ6OGdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636387423","n":"5491159937103","m":"Y3pvek9Eb2lRblZsYmlCa3c2MWhJR0ZvdzYwZ1pYTjBZWExEcVNCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636387462","n":"5491157065507","m":"Y3pveE5Ub2lRMkZ1WTJWc2J5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1636387464","n":"5491133016875","m":"Y3pvMk5qb2lVR1Z5Wkc5dUlIQmxjbThnZVc4Z2VXRWdkR1Z1WTI4Z2NHRm5ZV1J2SUhOcElHOGdjMmtnYkc5eklIUmxibWR2SUhFZ1kzVnVjR3hwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636387518","n":"5491171364713","m":"Y3pvM016b2lRblZsYm05eklHVERyV0Z6SUNEd241aUtJRzFsSUhCdlpITERyV0Z6SUcxaGJtUmhjaUJsYkNCbGJteGhZMlVnWVNCd1lYSjBaU0J3YjNJZ1ptRjJiM0lnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636387537","n":"5491168763209","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636387549","n":"5491139226313","m":"Y3pveU5qb2lRMjl1Wm1seWJXOGhJU0JIY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636387593","n":"5491161347726","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636387598","n":"5491169487380","m":"Y3pvNE1Eb2lSV3dnZEhWeWJtOGdaWE1nWkdVZ2JXa2diV0Z0dzZFZ1FuSmhkbThzSUVGc2FXTnBZUzRnV1NCbGMzUmhJR052Ym1acGNtMWhaRzh1SUUxMVkyaGhjeUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636387601","n":"5491131207272","m":"Y3pveE9Ub2lTRzlzWVNCemFTQjJiM2tnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636387621","n":"5491128503880","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636387640","n":"5491133065787","m":"Y3pvek1Ub2lRMkZ1WTJWc2J5QnNiM01nWkc5eklIUjFjbTV2Y3k0Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1636387644","n":"5491131585462","m":"Y3pvME1Eb2lTRzlzWVNCaWRXVnVJR1REcldFdUlFTnZibVpwY20xdklHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636387726","n":"5491137726809","m":"Y3pvM09Eb2lUbThnWVc1MWJHOGdaV3dnZEhWeWJtOGdjRzl5SUhGMVpTQnVieUIwWlc1bmJ5QnNiM01nWlhOMGRXUnBiM01nY1hWbElHMWxJRzFoYm1SdklHVnNJRzFsWkdsamJ5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636387758","n":"5491126769695","m":"Y3pveE9Eb2lRblZsYm1scGMybHRieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636387782","n":"5491164120132","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636387793","n":"5491140923656","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636387834","n":"5491139010136","m":"Y3pvME9Eb2lTRzlzWVNCemFTQjJZU0J1YnlCd2RXVmtieUJqYjI1bWFYSnRZWElnWlc0Z1pXd2diR2x1YXlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636387851","n":"5491125295171","m":"Y3pveU56b2lVMmtnY1hWbFpHRWdZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636387859","n":"5491130888591","m":"Y3pveE9Ub2lSR2tnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636387862","n":"5491130888591","m":"Y3pveE1qb2lVMmxwYVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636387912","n":"5491137988324","m":"Y3pveU5Eb2lRMjl1Wm1seWJXOGdaM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636387941","n":"5491158330505","m":"Y3pvMU5qb2lRblZsYm1GeklIUmhjbVJsY3k0Z1RtOGdiV1VnY0dWeWJXbDBaU0JwYm1keVpYTmhjaUJoYkNCbGJteGhZMlV1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636387966","n":"5491126290918","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636387969","n":"5491134035640","m":"Y3pvek5Ub2lUc082YldWeWJ5QmxjWFZwZG05allXUnZMaUJUWVd4MVpHOXpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636387970","n":"5491164955550","m":"Y3pveU1Ub2lVMmx6YVNCamIyNW1hWEp0YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636388029","n":"5491164045361","m":"Y3pvME5Ub2lTRzlzWVNCaWRXVnVJR1REcldFc0lITnBMQ0JqYjI1bWFYSnRieUR3bjVHTjhKK1B1eUFwSUNBcElDQXBJanM9","r":2},{"t":"1636388000","n":"5491138243904","m":"Y3pveE5Eb2lVR0Z6WlcxbElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636388058","n":"5491133257236","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636388059","n":"5491155818976","m":"Y3pvek5Ub2lTRzlzWVNCeGRXVWdkR0ZzTENCemFYTnBMQ0IyWVNCaElHbHlJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388078","n":"5491137833263","m":"Y3pveU9Ub2lVMmtnWTI5dVptbHliV0ZrYnlCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636388088","n":"5491166317603","m":"Y3pvek5Ub2lRMkZ1WTJWc1lXMWxJR1ZzSUhSMWNtNXZJQzVuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388109","n":"5491132638849","m":"Y3pveE5qb2lRWE5wYzNScGNtVWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388148","n":"5491123272762","m":"Y3pveU1Eb2lTRzlzWVNCb1pYSnRiM05oSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636388238","n":"5491128492150","m":"Y3pveU5qb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388249","n":"5491166443071","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636388249","n":"5491137726809","m":"Y3pvek5Eb2lVMmtnYkc4Z2RHOXRieUJ6YjNrZ2NtOXpZU0JoWTI5emRHRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388255","n":"5491122966705","m":"Y3pvek9Eb2lUWFZqYUdGeklHZHlZV05wWVhNZzhKK1ltQ0JqYjI1bWFYSnRZV1J2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636388260","n":"5491134676665","m":"Y3pvM05Ub2lVMmtnWTI5dVptbHliVzhnYldrZ2RIVnlibThnWkdWc0lHVERyV0VnTVRBdE1URWdZV3hoY3lBeE5Db3pNQ0JvY3k0dUlFMTFZMmhoY3lCbmNtRmphV0Z6TGlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636388262","n":"5491128492150","m":"Y3pveU5Ub2lSWE1nY0dGeVlTQnR3NjBnSUdocGFtOGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388269","n":"5491137726809","m":"Y3pveE5Eb2lNVGg1SURRMUlDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636388281","n":"5491123272762","m":"Y3pveU5ETTZJbE5wSUdKMVpXN0RyWE5wYlc4Z2VTQndkV1ZrWlNCelpYSWdjWFZsSUcxbElHeHZJR052Y25KaGJpQndZWEpoSUd4aGN5QXhOaUJvYjNKaGN5QndiM0ptWVM0dUlIQnZjbkYxWlNCMFpXNW5ieUJ2ZEhKdklIUjFjbTV2TGk0dVpYTWdZMjl1SUdWc0lHMXBjMjF2SUdSdll5QnhkV1VnYldVZ1lYUmxibVJwdzdNZ2VXRWdZMmxsY25SdlB6OC9jMmtnYm04Z2JXVWdiRzhnY0hWbFpHVnVJR052Y25KbGNpQndZWEpoSUd4aGN5QXhOaUJvYjNKaGN5QnVieUJvWVhrZ1pISmhiV0VnYVhMRHFTQnBaM1ZoYkNCbGJpQmxiQ0JvYjNKaGNtbHZJSEYxWlNCdFpTQmtZVzRnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636388285","n":"5491123813586","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388327","n":"5491169184659","m":"Y3pveE1qRTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzg0THpFeE9UQTBNaTgzT0dSak16Y3paUzFpTkdOa0xUUTFNekl0WVdRMFppMWtNbUl6TUdZM09EUmlNekV1YjJkaElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636388358","n":"5491130528738","m":"Y3pvMk1qb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJU0JVWlc1bmJ5QmxiQ0JLZFdWMlpYTWdNVEVzSUdFZ2JHRnpJREUyT2pRd0lHaHpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388389","n":"5491161495893","m":"Y3pveU5Eb2lVMmxwYVdrZ1kyOXVabWx5Ylc4aElTQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636388391","n":"5491168653288","m":"Y3pvek5Eb2lRblZsYm05eklHVERyV0Z6TENCaGFNT3RJR1Z6ZEdGeXc2a2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388393","n":"5491158953617","m":"Y3pveE5Ub2lTRzlzWVNFaElTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636388396","n":"5491158953617","m":"Y3pveE56b2lVMmtnWVhOcGMzUnZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388475","n":"5491161907520","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636388552","n":"5491134462798","m":"Y3pveU5Eb2lVMmtnYldVZ2NISmxjMlZ1ZEdGeVpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636388557","n":"5491130164550","m":"Y3pvME5Ub2lkR1VnWlhGMWFYWnZZMkZ6ZEdVZ1pHVWdiblZ0WlhKdklHUmxJSFJsYk1PcFptOXVieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636388561","n":"5491134462798","m":"Y3pveU1Ub2lRU0JzWVNCamIyNXpkV3gwWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636388564","n":"5491133273380","m":"Y3pvME16b2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdaR1ZzSUhSeVlYVnRZWFREczJ4dloyOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388598","n":"5491125241762","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636388613","n":"5491155968637","m":"Y3pvek5Ub2lTRzlzWVN3Z2Mya2dZMjl1Wm1seWJXOGdaV3dnZEhWeWJtOHVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388631","n":"5491132162015","m":"Y3pvM01Ub2lTRzlzWVM0dUxpQk9ieUIwWlc1bmJ5QjBkWEp1YnlCbGMzVERvU0J6WlcxaGJtRXVJRlIxZG1VZ1pXd2diV25EcVhKamIyeGxjeUJ3WVhOaFpHOHVJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636388643","n":"5491127557248","m":"Y3pveE5Eb2ljMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636388653","n":"5491121903284","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388655","n":"5491122934846","m":"Y3pveE5Ub2lTRzlzWVNCemFTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636388677","n":"5491122934846","m":"Y3pvME9Ub2lVR1Z5Wm1WamRHOGdiWFZqYUdGeklHZHlZV05wWVhNZ1pXd2dPU0JsYzNSdmVTQWdNVE11TXpBZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636388683","n":"5491164168691","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636388686","n":"5491163609469","m":"Y3pvM05Eb2lRblZsYm1GeklIUmhjbVJsY3lFZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JUYVNCMllXMXZjeUJoSUdGemFYTjBhWElzSUhOaGJIVmtiM01oSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636388696","n":"5491132163291","m":"Y3pveU5qb2lVOE90SUhSbElHeHZJR052Ym1acGNtMXZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388708","n":"5491122934846","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388718","n":"5491132634690","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636388720","n":"5491164367909","m":"Y3pveU9Eb2lVMmtnWVhOcGMzUnZJR052Ym1acGNtMWhaRzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636388785","n":"5491155674552","m":"Y3pvNU5Eb2lRblZsYmlCa3c2MWhJSEJ2WkhMRG9XNGdiV0Z1WkdGeUlHVnNJR1Z1YkdGalpTQndiM0lnYzJWd1lYSmhaRzhnY0dGeVlTQmpiR2xqYTJWaGNpQmthWEpsWTNSaGJXVnVkR1VnZVNCamIyNW1hWEp0WVhJZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636388798","n":"5491155674552","m":"Y3pvek5Eb2lRWFBEclNCamIyMXZJR1Z6ZEdFZ2JtOGdjMlVnY0hWbFpHVWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636388808","n":"5491164200277","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636388934","n":"5491166884540","m":"Y3pveU9Eb2lROE96Ylc4Z1pYTWdZWFYwYjIzRG9YUnBZMjhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636388939","n":"5491141711262","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388952","n":"5491134292231","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636388953","n":"5491121770904","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636388972","n":"5491123272762","m":"Y3pvME9Eb2lUV1VnYkc4Z2NHOWtjc09oY3lCamIzSnlaWElnY0dGeVlTQnNZWE1nTVRZZ2FHOXlZWE1nUHlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636388992","n":"5491166884540","m":"Y3pvME9Ub2lVMlVnYkc4Z1kyRnRZbWxoY205dUlIQmhjbUVnWld3Z01URWdMekV4WVNCc1lYTTRMak13YUhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636389017","n":"5491123621024","m":"Y3pveE9Ub2lVMmtnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636389032","n":"5491164748953","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389038","n":"5491131901718","m":"Y3pveU5Ub2lTRzlzWVNCemFTd2dZMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389043","n":"5491167097419","m":"Y3pvM016b2lTRzlzWVN3Z1kyRnVZMlZzYnlCbGJDQjBkWEp1Ynl3Z2VXRWdjWFZsSUcxbElHeHZJRzF2WkdsbWFXTmhjbTl1SUhCaGNtRWdaV3dnYkhWdVpYTWdNVFVnS1NBZ0tTQWdLU0k3","r":3},{"t":"1636389049","n":"5491123743019","m":"Y3pveE56b2lRMjl1Wm1seWJjT3pJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389081","n":"5491150550412","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389082","n":"5491140752231","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636389129","n":"5491137697367","m":"Y3pveE56b2lRMjl1Wm1scGNtMXZJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389134","n":"5491166097202","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636389190","n":"5491126447623","m":"Y3pveE9Eb2lRMDlPUmtsU1RVRkVUeUFwSUNBcElDQXBJanM9","r":2},{"t":"1636389246","n":"5491157989509","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636389261","n":"5491123437613","m":"Y3pvM01Ub2lRMjl1Wm1seWJjT3pJRzFwSUdGemFYTjBaVzVqYVdFZ1VHRnlZU0JsYkNCa3c2MWhJRGtnTHpFeEx6SXdNakVnWVNCc1lYTWdNVGdnZVRNd0lHaHpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389268","n":"5491123437613","m":"Y3pveE9Eb2lSM0poWTJsaGN5RWhJU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636389306","n":"5491163089778","m":"Y3pvM01Eb2lRblZsYm1GeklIUmhjbVJsY3k0Z0lFTmhibU5sYkc4Z1pXd2dkSFZ5Ym04c0lIbGhJSEYxWlNCbWRjT3RJRzl3WlhKaFpHRXVJRWR5WVdOcFlYTWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636389326","n":"5491150216455","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636389349","n":"5491168060469","m":"Y3pvME9Ub2lRMjl1Wm1seWJXOGdkSFZ5Ym04ZzhKK1JqZkNmajd0TmRXTm9ZWE1nUjNKaFkybGhjeUFoSVNFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636389434","n":"5491168894922","m":"Y3pvMk9Eb2lRblZsYm05eklHUnBZWE1nZVc4Z2JtOGdjMjlzYVdOcGRHVWdibWx1WjNWdUlIUjFjbTV2SUhCaGNtRWdiMlJ2Ym5SdmNHVmthV0YwY21saElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636389487","n":"5491158161109","m":"Y3pvME5Eb2lTRzlzWVNCemFTQnphU0JqYjI1bWFYSnRieUJsYkNCMGRYSnVieUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636389554","n":"5491122850416","m":"Y3pveE9Eb2lVMmtnZG1GdUlHRnBjaUFwSUNBcElDQXBJanM9","r":1},{"t":"1636389558","n":"5491122850416","m":"Y3pveE9Ub2lUR1VnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636389605","n":"5491158161109","m":"Y3pvME1Ub2lRMkZ0WW1saGNtOXVJR1ZzSUc3RHVtMWxjbThnZVNCa1pTQnViMjFpY21VL0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636389608","n":"5491161537899","m":"Y3pveU1Ub2lRV3hzdzYwZ1pYTjBZWExEcVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636389672","n":"5491141902902","m":"Y3pvek5Eb2lRMjl1Wm1seWJXRmtieUF1SUUxaHc3RmhibUVnZG1GdGIzTWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636389793","n":"5491161667006","m":"Y3pvek16UTZJa2h2YkdFc0lITnBMaUJXYjNrZ0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNBcVJWTlVSU0JGVXlCVlRpQk5SVTVUUVVwRklFZEZUa1ZTUVVSUElFRlZWRTlOUVZSSlEwRk5SVTVVUlNCUVQxSWdSVXdnVTBsVFZFVk5RU3dnVGs4Z1VrVlRVRTlPUkVWU0lFRWdSVk5VUlNCT1ZVMUZVazhxSUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnSUZCdmNpQm1ZWFp2Y2lBcVEwOU9Sa2xTVFVGU0lHOGdRMEZPUTBWTVFWSXFJR3hoSUdGemFYTjBaVzVqYVdFZ1pXNGdaV3dnYzJsbmRXbGxiblJsSUdWdWJHRmpaVG9nYUhSMGNEb3ZMMk5sYm5SeWIyMWxaR2xqYjJObGNpNWtaRzV6TG01bGRDOWpiMjVtYVhKdFlYSXZQM1J2YTJWdVBVWkNNemN6TVRnNFJUTkZOemRDTVRZMU9ETkdPRVZFUlVaQ1FqQkVSamMzSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636389859","n":"5491138242695","m":"Y3pvMU16UTZJbTVsWTJWemFYUnZJQ0JqWVcxaWFXRnliRzhnY0dWeWJ5QnNieUJ0dzZGeklIQnliMjUwYnlCd2IzTnBZbXhsSUM1eVpYTjFiSFJoSUhGMVpTQnRaU0JzYkdWbnc3TWdaV3dnZEhWeWJtOGdaR1VnZG1GamRXNWhZMm5EczI0Z1pHVWdiV2tnYm1WdVlTNXdiM0lnWlhObElHMXZkR2wyYnlCdWJ5QndiMlJ5dzZrZ1kyOXVZM1Z5Y21seUlHMWh3N0ZoYm1FdVpYTndaWEp2SUhWdUlIUjFjbTV2SUdGc0lHTnBjblZxWVc1dklHeHZJRzNEb1hNZ1kyVnlZMkZ1YnlCd2IzTnBZbXhsSUdFZ1pYTjBZU0JtWldOb1lTQXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdElDcEZVMVJGSUVWVElGVk9JRTFGVGxOQlNrVWdSMFZPUlZKQlJFOGdRVlZVVDAxQlZFbERRVTFGVGxSRklGQlBVaUJGVENCVFNWTlVSVTFCTENCT1R5QlNSVk5RVDA1RVJWSWdRU0JGVTFSRklFNVZUVVZTVHlvZ0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNBZ1VHOXlJR1poZG05eUlDcERUMDVHU1ZKTlFWSWdieUJEUVU1RFJVeEJVaW9nYkdFZ1lYTnBjM1JsYm1OcFlTQmxiaUJsYkNCemFXZDFhV1Z1ZEdVZ1pXNXNZV05sT2lCb2RIUndPaTh2WTJWdWRISnZiV1ZrYVdOdlkyVnlMbVJrYm5NdWJtVjBMMk52Ym1acGNtMWhjaTgvZEc5clpXNDlPRVUwT0VSR01UVTVRME5CUkRsR05rWXdPRGM0T0RFMVEwWXdRa1JDTWpVZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636389883","n":"5491170138094","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636389887","n":"5491138242695","m":"Y3pvMU1Ub2lTRzk1SUhSbGJtZHZJR0VnYkdGeklERTVJR2hoSUdOdmJpQnNZU0JsYmlCa2IyTnlhVzV2Ykc5bllTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636389916","n":"5491138242695","m":"Y3pvek1qb2lWbTk1SUdFZ2FYSWdMbVZ6SUdFZ2JHRnpJREU1SUdoeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636389950","n":"5491138242695","m":"Y3pvNU9Eb2lRM1ZoYkhGMWFXVnlJR05oYldKcGJ5QnRaU0JsSUdGMmFYTmhMbmxoSUhGMVpTQmhJR3hoY3lBeE55QjBaVzVuYnlCeGRXVWdjMkZzYVhJZ1pHVWdiV2tnWTJGellTQndZWEpoSUd4c1pXZGhjaUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636389962","n":"5491150449238","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636390171","n":"5491132583492","m":"Y3pveE9Ub2lVMmtnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636390471","n":"5492226555685","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636390576","n":"5491123272762","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636390685","n":"5491131925183","m":"Y3pvMU1Ub2lRblZsYm1GeklIUmhjbVJsY3lBdWMya2dZMjl1Wm1seWJXOGdkSFZ5Ym04Z0xpQm5jbUZqYVdGekxpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636390912","n":"5491161448595","m":"Y3pveE5qb2lRblZsYmlCa2FXRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636390930","n":"5491161448595","m":"Y3pvek1Ub2lUV2tnYUdscWJ5QmxjM1REb1NCcGJuUmxjbTVoWkc4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636390940","n":"5491162576315","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636390942","n":"5491161448595","m":"Y3pvek5Eb2lRWFBEclNCeGRXVWdibThnY0c5a2NzT2hJR0Z6YVhOMGFYSWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636390953","n":"5491161448595","m":"Y3pvek16b2lVR1Z5YnlCemFTQmxiQ0J0WVhKMFpYTWdjSEp2ZUdsdGJ5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636391161","n":"5491150236449","m":"Y3pveU1qb2lTRzlzWVNFZ1EyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636391201","n":"5491131574238","m":"Y3pvME56b2lUbThnY0hWbFpHOGdZWE5wYzNScGNpQjRJSEJ5YjJKc1pXMWhjeUJ3WlhKemIyNWhiR1Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":3},{"t":"1636391309","n":"5491137726809","m":"Y3pvMk5qb2lTRzlzWVNCdWJ5QnhkV2xsY204Z2JHOXpJSFIxY201dmN5QmtaU0J5YjNOaElHRmpiM04wWVNCNUlIbGhibWxwYm1FZ2FHVnljbVZ5WVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636391956","n":"5491131756992","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636392813","n":"5491168190209","m":"Y3pvME9Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpMQ0J6YVNCamIyNW1hWEp0YnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636392804","n":"5491131179157","m":"Y3pveU5qb2lXSEVnYm04Z2NIVmxaRzhnWlc1MGNtRnlJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636393360","n":"5491156383961","m":"Y3pvNE16b2lTRzlzWVNBc0lHSjFaVzVoY3lCMFlYSmtaWE1nYldrZ2JtVnVaU0IwYVdWdVpTQjBkWEp1YnlCbGJDQXlNeUJrWlNCdWIzWnBaVzFpY21VZ1kyOXVJR05oY21ScGIyeHZaMmxoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636393617","n":"5491138738178","m":"Y3pveU1Eb2lVMmtzSUdOdmJtWnBjbTF2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636394256","n":"5491155028852","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636394651","n":"5491153771082","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636394904","n":"5491160133899","m":"Y3pveU16b2lWbTk1SUdFZ1kyOXVZM1Z5Y21seUlDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636395006","n":"5491126422416","m":"Y3pvNE1Ub2lVRzl5SUdWc0lHMXZiV1Z1ZEc4Z1kyRnVZMlZzWVcxdmN5QmxiQ0IwZFhKdWJ5NGdUbThnY0c5a2NzT3BJR0Z6YVhOMGFYSTdiWFZqYUdGeklHZHlZV05wWVhNaDhKK1JqU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636395059","n":"5491123673654","m":"Y3pveE1qazZJa0oxWlc1aGN5QjBZWEprWlhNdUlGWnZlU0JoSUdOaGJtTmxiR0Z5SUdWc0lIUjFjbTV2SUdSbElHMWh3N0ZoYm1FdUlGTmxJRzFsSUNCamIyMXdiR2xqdzdNZ1pXNGdaWE5sSUNCb2IzSmhjbWx2TENCdFpTQndiMlJ5dzYxaGJpQmtZWElnYjNSeWJ5QjBkWEp1Yno4Z1IzSmhZMmxoY3k0Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1636395331","n":"5491131319940","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636395342","n":"5491131319940","m":"Y3pveU5qb2lUbThnY0c5a1pXMXZjeUJoYzJsemRHbHlJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636396277","n":"5491128503880","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636396832","n":"5491144944640","m":"Y3pvNE9Ub2lTRzlzWVNCaWRXVnVZWE4wWVhKa1pYTWdJR1Z6SUhCaGNtRWdZMjl1Wm1seWJXRnlkR1VnWld3Z2RIVnlibThnWkdVZ2RISmhkVzFoZEc5c2J5QmtaU0J0WWNPeFlXNWhJQ0JuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636397968","n":"5491150487672","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636399346","n":"5491159023560","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636401993","n":"5491158339213","m":"Y3pvek5Ub2lVMmtnWTI5dVptbHliY096SUNCa1pTQnBjaUJuY21GemFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636402726","n":"5491133018614","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636403100","n":"5491158849855","m":"Y3pveU1qb2lVMmtnZG05NUlHMWh3N0ZoYm1FZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636403511","n":"5491132830976","m":"Y3pveE56b2lRWE5wYzNScGNzT3BJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636403962","n":"5491164120132","m":"Y3pveU16b2lRMkZ0WW1sbElHVnNJSFIxY201dklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636403998","n":"5491164120132","m":"Y3pvek56b2lVR0Z5WVNCM2JDQmthV0VnTVRFdk1URWdZU0JzWVhNZ01UZzZORFVnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636405578","n":"5491127967507","m":"Y3pvMk9Ub2lTRzlzWVNCbGMzUnZlU0JqYjI0Z1ptbGxZbkpsTENCMmIza2dZU0JqWVc1alpXeGhjaUJsYkNCMGRYSnVieXdnY0c5eUlHeGhjeUJrZFdSaGN5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1636405597","n":"5491134768590","m":"Y3pvek5Ub2lRMDlPUmtsU1RVRkVUeUF1SUVGSVNTQWdSVk5VUVZKRlRVOVRJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636407020","n":"5491164790482","m":"Y3pvNU1qb2lhSFIwY0RvdkwyTmxiblJ5YjIxbFpHbGpiMk5sY2k1a1pHNXpMbTVsZEM5amIyNW1hWEp0WVhJdlAzUnZhMlZ1UFRkRlFVUkRRakV6UmtZNVF6ZzNNVFJHUmpCRVFrRkZSalZFUWpReVJqRXdJQ2tnSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636408495","n":"5491123272762","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636409061","n":"5491132856743","m":"Y3pvek5UWTZJa2h2YkdFdUlFRmpiM04wWVNCT1R5QkJVMGxUVkVsU3c0RXVJQ0JIVWtGRFNVRlRJQzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMGdLa1ZUVkVVZ1JWTWdWVTRnVFVWT1UwRktSU0JIUlU1RlVrRkVUeUJCVlZSUFRVRlVTVU5CVFVWT1ZFVWdVRTlTSUVWTUlGTkpVMVJGVFVFc0lFNVBJRkpGVTFCUFRrUkZVaUJCSUVWVFZFVWdUbFZOUlZKUEtpQXRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdElDQlFiM0lnWm1GMmIzSWdLa05QVGtaSlVrMUJVaUJ2SUVOQlRrTkZURUZTS2lCc1lTQmhjMmx6ZEdWdVkybGhJR1Z1SUdWc0lITnBaM1ZwWlc1MFpTQmxibXhoWTJVNklHaDBkSEE2THk5alpXNTBjbTl0WldScFkyOWpaWEl1WkdSdWN5NXVaWFF2WTI5dVptbHliV0Z5THo5MGIydGxiajB6UTBJd01EUTJPRUk1TTBZNFFqRTFRMFZDTWtSQlJURkVOa014TUVKR1JTQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636409594","n":"5491127289145","m":"Y3pvek16b2lTRzlzWVNCemFTQnRZY094WVc1aElHVnpkR0Z5WlcxdmN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636410941","n":"5491125241762","m":"Y3pvME5Eb2lTRzlzWVNCd2IyUnl3NjFoSUhObGNpQndZWEpoSUd4aElHOTBjbUVnYzJWdFlXNWhJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636418197","n":"5491163006651","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636455856","n":"5491160199092","m":"Y3pvMU56b2lWSFYyWlNCMWJpQndjbTlpYkdWdFlTQjVJR05oYm1ObGJNT3pJR3hoSUdGemFYTjBaVzVqYVdFdVozSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636459792","n":"5491155735843","m":"Y3pveU1qYzZJazVsWTJWemFYUnZJR1JsYW1GeUlITjFjM0JsYm1ScFpHOGdjRzl5SUdodmVTQmxiQ0IwZFhKdWJ5QmtaU0J0YVNCd1lYRERvU3dnVUdWa2NtOGd3NEYyYVd4aElIQnZjbkYxWlNCelpTQmtaWE5qYjIxd1pXNXp3N01nZVNCdWJ5QndkV1ZrWlNCdFlXNTBaVzVsY25ObElHVnVJSEJwWlM0Z1VHbGtieUJ0YVd3Z1pHbHpZM1ZzY0dGekxpQkRkV0Z1Wkc4Z2MyVWdjbVZqZFhCbGNtVWdiV1VnWlhOMFlYTERxU0JqYjIxMWJtbGpZVzVrYnlCd1lYSmhJSE52YkdsamFYUmhjaUJ1ZFdWMmJ5QjBkWEp1Ynk0Z1IzSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636462338","n":"5491156471332","m":"Y3pveE9Ub2lRblZsYm04Z1pNT3RZWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1636462461","n":"5491156471332","m":"Y3pveU56b2lWR1VnWTJGdVkyVnNieUJsYkNCMGRYSnVieUFwSUNBcElDQXBJanM9","r":3},{"t":"1636463892","n":"5491135230582","m":"Y3pvek5EazZJbEJsY21URHMyNGdMaTRnYjJSdmJuUnZjR1ZrYVdGMGNzT3RZVDhnTFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU0FxUlZOVVJTQkZVeUJWVGlCTlJVNVRRVXBGSUVkRlRrVlNRVVJQSUVGVlZFOU5RVlJKUTBGTlJVNVVSU0JRVDFJZ1JVd2dVMGxUVkVWTlFTd2dUazhnVWtWVFVFOU9SRVZTSUVFZ1JWTlVSU0JPVlUxRlVrOHFJQzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMGdJRkJ2Y2lCbVlYWnZjaUFxUTA5T1JrbFNUVUZTSUc4Z1EwRk9RMFZNUVZJcUlHeGhJR0Z6YVhOMFpXNWphV0VnWlc0Z1pXd2djMmxuZFdsbGJuUmxJR1Z1YkdGalpUb2dhSFIwY0RvdkwyTmxiblJ5YjIxbFpHbGpiMk5sY2k1a1pHNXpMbTVsZEM5amIyNW1hWEp0WVhJdlAzUnZhMlZ1UFVNeVFqTkdRamt5TnpjeVF6VkZRekUwUkRNek1URkRSa1kwTkRFeE56VTBJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636463928","n":"5491135230582","m":"Y3pvek1Eb2lXU0IwWlc1bmJ5QjBkWEp1YnlCaElHeGhjeUF4TmlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636465510","n":"5491157206262","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636469965","n":"5491122850416","m":"Y3pvNU56b2lRbVYxYm1GeklHNXBJRzVsYm1FZ2RHbGxibVVnZEhWeWJtOHNJSEYxWlhMRHJXRWdjMkZpWlhJZ1pHOXVaR1VnWlhNZ1pXd2diSFZuWVhJc0lIQnZaSExEcldFZ2NHRnpZWEp0WlNCc1lTQmthWEpsWTJOcGIyNGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636484311","n":"5491158953617","m":"Y3pveU1qb2lRblZsYm1GeklIUmhjbVJsY3k0Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636484333","n":"5491158953617","m":"Y3pvNU1qb2lVWFZsY25MRHJXRWdjMkZpWlhJZ2NYVmxJR1REcldFZ2RHVnVaMjhnZEhWeWJtOGdjR0Z5WVNCbGJDQnZablJoYkczRHMyeHZaMjhnTENCTllYSjBhVzVoSUV4aGRHOGdaRzVwSURVMU1UZ3hOVEkySUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636487265","n":"5491132421924","m":"Y3pvNE1Eb2lRblZsYm1GeklIUmhjbVJsY3lCbGMzUnZlU0JqYjIxd2JHbGpZV1JoSUhCaGNtRWdZMjl1Wm1seWJXRnlJRzFwSUhSMWNtNXZMaUJPYnlCd2RXVmtieUJvWVdObGNteHZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636489487","n":"5491159023560","m":"Y3pvM05Eb2lRWFpwYzI4Z1JYTjBiM2tnY21WMGNtRnpZV1JoSUdWdUlDQmxiQ0JqYjJ4bFkzUnBkbThnY0dWeWJ5QmxjM1J2ZVNCc2JHVm5ZVzVrYnlCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636492786","n":"5491161667006","m":"Y3pveE1qb2lWbTk1UHlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636498578","n":"5491138720217","m":"Y3pvek9UZzZJdkNmbVl2d240Kzk0b0NONHBtQTc3aVBRbWxsYm5abGJtbGtZUzlpYVdWdWRtVnVhV1J2SUdGc0lGZG9ZWFJ6UVhCd0lHUmxJRkJoYzNSbGJHVnl3NjFoSUVmRHFXNWxjMmx6TENCdHc2MGdibTl0WW5KbElHVnpJRTFsYkdud241bUw4SitQdmVLQWplS1pnTys0anlBZ1JYTndaWEp2SUhGMVpTQmxjM1REcVhNZ2RHVnVhV1Z1Wkc4Z2RXNGdiR2x1Wkc4Z1pNT3RZZkNmaktUdnVJOGdJT0tBb2tOMVlXeHhkV2xsY2lCamIyNXpkV3gwWVNCemIySnlaU0J3Y21WemRYQjFaWE4wYjNNdlltOTRMM0JsWkdsa2IzTXZjM1J2WTJzZ1pHbGhjbWx2SUc4Z1lXeG5kVzVoSUc5MGNtRWdaSFZrWVNCa1pXcGhiR0VnWlc0Z2RXNGdiV1Z1YzJGcVpTQmtaWFJoYkd4aFpHOGdjWFZsSUdWdUlHSnlaWFpsSUhaaGJXOXpJR0VnWlhOMFlYSWdjbVZ6Y0c5dVpHbGxibVJ2OEorVHNpQWc4SitUakZKbGMzQnZibVJsYlc5eklHUmxJRGs2TXpBZ1lTQXhPRG93TUM0Z0lDRGlnS0pIY21GamFXRnpJSEJ2Y2lCMGRTQndZV05wWlc1amFXRWc4SitTbkNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636498578","n":"5491157143126","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636498597","n":"5491140518416","m":"Y3pveU1Eb2lRMjl1Wm1seWJXRmtieUVoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636498653","n":"5491144953369","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636498663","n":"5491134661330","m":"Y3pvMk5Eb2lRMkZ1WTJWc1pTQmxiQ0IwZFhKdWJ5QjVZU0J0WlNCb2FXTnBaWEp2YmlCMGIyUnZJR1Z1SUhWeVoyVnVZMmxoSUdkeVlXTnBZWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1636498741","n":"5491136726931","m":"Y3pvMU16b2lTRzlzWVN3Z2JtOGdkbTk1SUdFZ2FYSWdZMkZ1WTJWc2J5d2daM0poWTJsaGN5QjVJR1JwYzJOMWJIQmhJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636498767","n":"5491130086451","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636498771","n":"5491158406344","m":"Y3pveU5Eb2lTRzlzWVNCc2J5QmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636498776","n":"5491166498616","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636498801","n":"5491132533045","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636498817","n":"5491138617807","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636498842","n":"5491135565297","m":"Y3pvMk1Ub2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpMQ0J1YnlCdFpTQnpZV3gwWVNCbGJDQmxibXhoWTJVZ2NHRnlZU0JsYm5SeVlYSWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636498852","n":"5491135565297","m":"Y3pvME1Eb2lURzhnWTI5dVptbHliVzhnWVdQRG9TQmtaU0JwWjNWaGJDQnRZVzVsY21FZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636498856","n":"5491135565297","m":"Y3pveU5Eb2lVMmtnZG05NUlHRWdZWE5wYzNScGNpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636498879","n":"5491124556121","m":"Y3pvek1Ub2lTRzlzWVNCemFTQjJZU0JoSUdseUlHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636498930","n":"5491162080201","m":"Y3pveU1UTTZJa0oxWlc0Z1pHbGhJRzV2Y3lCamIyMTFibWxqWVcxdmN5QmtaU0JEUlZJZ2NHRnlZU0JwYm1admNtMWhjbXhsSUhGMVpTQnNZU0J2Wm5SaGJHMXZiRzluWVNCRWNtRWdRMjl6ZEdGeklHNXZJSFpoSUdFZ1kyOXVZM1Z5Y21seUlHRnNJR052Ym5OMWJIUnZjbWx2SUdWc0lHUnBZU0JxZFdWMlpYTXVJRVJsWW1WdGIzTWdjbVZ3Y205bmNtRnRZWElnYzNVZ2RIVnlibThnY0dGeVlTQmxiQ0JrYVdFZ01qVXZNVEVnWVNCc1lYTWdNVFk2TURBdUlGQlBVaUJHUVZaUFVpQkRUMDVHU1ZKTlFWSWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636499018","n":"5491162080201","m":"Y3pvME5Eb2lXU0JsYkNBeU5TQnVieUJ3ZFdWa2J5QWdibVZqWlhOcGRHOGdiM1J5YnlCa3c2MWhJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636499046","n":"5491150149217","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636499056","n":"5491150149217","m":"Y3pvek56b2lRM1hEb1c1MGJ5Qm9ZWGtnY1NCaFltOXVZWElnY0c5eUlHbHZiV0VnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636499097","n":"5491164120132","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636499104","n":"5491164120132","m":"Y3pveE5qb2lNamM1TWpVM01UQWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636499105","n":"5491166915788","m":"Y3pveE56b2lRMjl1Wm1sdFlXUnZJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636499110","n":"5491164120132","m":"Y3pveU5Eb2lSMjl1ZW1Gc1pYb2dkbWwyYVdGdVlTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636499117","n":"5491157281917","m":"Y3pveU9Ub2lVMmtnWTI5dVptbHliVzhnWld3Z2RIVnlibThoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636499171","n":"5491162942454","m":"Y3pveU1Ub2lVMmtnZG1GdGIzTWdZU0JwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636499182","n":"5491134216964","m":"Y3pveU5Ub2lTRzlzWVNCemFTQmhjMmx6ZEdseXc2a2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636499526","n":"5491161953910","m":"Y3pvek5qWTZJbE5wSUdOdmJtWnBjbTF2SUdkeVlXTnBZWE1nY0dWeWJ5QmxjbUVnY0dGeVlTQmpZWEprYWNPemJHOW5ieUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ3BGVTFSRklFVlRJRlZPSUUxRlRsTkJTa1VnUjBWT1JWSkJSRThnUVZWVVQwMUJWRWxEUVUxRlRsUkZJRkJQVWlCRlRDQlRTVk5VUlUxQkxDQk9UeUJTUlZOUVQwNUVSVklnUVNCRlUxUkZJRTVWVFVWU1R5b2dMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTQWdVRzl5SUdaaGRtOXlJQ3BEVDA1R1NWSk5RVklnYnlCRFFVNURSVXhCVWlvZ2JHRWdZWE5wYzNSbGJtTnBZU0JsYmlCbGJDQnphV2QxYVdWdWRHVWdaVzVzWVdObE9pQm9kSFJ3T2k4dlkyVnVkSEp2YldWa2FXTnZZMlZ5TG1Sa2JuTXVibVYwTDJOdmJtWnBjbTFoY2k4L2RHOXJaVzQ5TmpCRFFqSkVNVFZETkRBd1JrTXhNakkwUlVJNVJERTNSRUl3UVRBeVJUWWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636499585","n":"5491138893087","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636499709","n":"5491136150028","m":"Y3pvNE1Ub2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJSE5wSUhaaGJXOXpJR0VnWVhOcGMzUnBjaUJoYkNCMGRYSnVieUJsYkNCa3c2MWhJR3AxWlhabGN5QmhJR3hoY3lBeE55Qm9jeUFwSUNBcElDQXBJanM9","r":1},{"t":"1636499752","n":"5491136754265","m":"Y3pveU5Ub2lVMmtnYlhWamFHRnpJR2R5WVhOcFlYTWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636499839","n":"5491173683489","m":"Y3pvMk1qb2lVMmtnUkdsdmN5QnNieUJ3WlhKdGFYUmxMR052Ym1acGNtMXZJRzFwSUhSMWNtNXZMRzExWTJoaGN5Qm5jbUZqYVdGeklTRWhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636499965","n":"5491131315430","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636500009","n":"5491168005543","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636500340","n":"5491163373615","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636500420","n":"5491157004578","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636502074","n":"5491125405535","m":"Y3pvek5qb2lSV3dnZEhWeWJtOGdaWE1nWTI5dUlHTmhjbVJwYjJ4dlo4T3RZU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636502084","n":"5491125405535","m":"Y3pvek5qb2lUblZ1WTJFZ2MyRnhkV1VnWTI5dUlHNWxkVzF2Ym05c2IyZHBZU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636502579","n":"5491165715903","m":"Y3pveE5Eb2k4SitSalU5cklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636502826","n":"5491158820279","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636502973","n":"5491173661167","m":"Y3pvek1Eb2lRMjl1Wm1seWJXOGdiR0VnWVhOcGMzUmxibU5wWVNBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636503202","n":"5491131607668","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636503469","n":"5491163722799","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636503829","n":"5491157050782","m":"Y3pvMU1Eb2lVRzl5SUdaaGRtOXlJR2QxWVhKa1pXMWxJR1ZzSUhSMWNtNXZJR0ZvdzYwZ1pYTjBZWEpsYlc5eklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636504514","n":"5491158816440","m":"Y3pveE9Eb2lZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636505637","n":"5491165079214","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636506885","n":"5491123006636","m":"Y3pvMU5qb2lVMjlzYVdOcGRHVWdkSFZ5Ym04Z2NHRnlZU0JqWVhKa2FXOXNiMmZEcldFc0lHNXZJRzVsZFcxdmJHOW53NjFoSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636512170","n":"5491127557248","m":"Y3pveE5Eb2ljMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636539896","n":"5491154685609","m":"Y3pveU9Eb2lRblZsYmlCa2FXRXNjMmtzWTJsdVptbHliVzhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636541369","n":"5491123006636","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636544297","n":"5491123006636","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636544941","n":"5491123006636","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636545024","n":"5491123006636","m":"Y3pvME5Eb2lVRzl5SUdaaGRtOXlJR052YlhWdWFXTmhjbk5sSUhCdmNpQmxjM1JsSUcxbFpHbHZJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636545455","n":"5491136005732","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636548818","n":"5491141766723","m":"Y3pveE9Eb2lVMmx6YVhOeklIWnZlU0FwSUNBcElDQXBJanM9","r":1},{"t":"1636549516","n":"5491121800320","m":"Y3pvME9Ub2lTRzlzWVNCaWRXVnViM01nWk1PdFlYTWhJRk5wSUhOcElHTnZibVpwY20xdklIRjFaU0IyYjNrZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636549573","n":"5491159960168","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636550128","n":"5491151448782","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636550750","n":"5491155602306","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636550939","n":"5491125405535","m":"Y3pveE5qb2lRblZsYmlCa2FXRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636550958","n":"5491125405535","m":"Y3pvMk9Ub2lUV1VnY0c5a2NzT3RZVzRnWTI5dVptbHliV0Z5SUhCdmNpQnhkV1VnZVc4Z2MyRnhkV1VnZEhWeWJtOGdZMjl1SUdWc0lHTmhjbVJwYjJ4dlp5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636551468","n":"5493512349009","m":"Y3pvek1Eb2lhSFIwY0hNNkx5OWlhWFF1Ykhrdk16SnNSMmh0WWlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636551949","n":"5493516110992","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636551992","n":"5493516110992","m":"Y3pvNU9pSXFJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636552111","n":"5493516110992","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636552323","n":"5491134462798","m":"Y3pveU5Eb2lVMmtnYldVZ2NISmxjM2R1ZEdGeVpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636552337","n":"5491134462798","m":"Y3pveU16b2lRU0JzWVhNZ1kyOXVjM1ZzZEdGeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636552512","n":"5491169443448","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636552575","n":"5491165079214","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4TUM4eE1Ua3dOREl2TmpFMVptTXhOekl0TlRnek5DMDBPRFUzTFdFeVlXRXROVFUwWXpRME1EbGtaV1F4TG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636552942","n":"5491173661167","m":"Y3pveE1qb2k4SitSakNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636553333","n":"5493516110992","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636553953","n":"5491140857783","m":"Y3pvek16b2lRV3hwSUdWemRHRnlaVzF2Y3lCamIyNGdiV2tnYUdscWJ5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636553998","n":"5491160199092","m":"Y3pveE5Ub2lSM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636555124","n":"5491155028852","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4TUM4eE1Ua3dOREl2WWpneU5EZzFZV010TVdZMk15MDBNR1prTFRrNVkyWXRaRE14TURRelpXWmhaV0kxTG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636555197","n":"5491137713447","m":"Y3pvek1qb2lRblZsYm1GeklIUmxibVJ5dzYxaElHTnN3NjF1YVdOdklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636555442","n":"5491170138094","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636556822","n":"5491123673654","m":"Y3pveE1EUTZJa0oxWlc1aGN5QjBZWEprWlhNdUlFNWxZMlZ6YVhSdklIUjFjbTV2SUhCaGNtRWdaV3dnUkhJdUlFUmhlV0Z1TGlCUWIzSWdTVTlOUVNBZ1FXeGhjbVBEczI0Z1RXRnl3NjFoSUZObGJIWmhMQ0JFVGtrZ01UTXVOelV4TGpReU5DQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636557723","n":"5491158820279","m":"Y3pvek1Eb2lXV0VnWTI5dVptbHliV1VnWlc0Z2JHRWdjTU9oWnlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636558522","n":"5491169103936","m":"Y3pvek1Eb2lVMGtnVTBrZ1ZFOU5UeUJNUVNCRFQwNVRWVXhVUVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636558848","n":"5491140834960","m":"Y3pveE5Eb2lRblZsYm1GeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636560925","n":"5491161495893","m":"Y3pvME16b2lTRzlzWVNCdFpTQndiMlJ5YVdGeklIQmhjMkZ5SUd4aElHUnBjbVZqWTJuRHMyNGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636573498","n":"5491167934237","m":"Y3pveU5Ub2lXVzhnZVdFZ2JHOGdZMkZ1WTJWc3c2a2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636573503","n":"5491167934237","m":"Y3pvek5Ub2lUR1Z6SUdoaFltekRxU0JoSUhOMUlHOTBjbUVnWTNWbGJuUmhJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636575793","n":"5491164802899","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636578448","n":"5491167427364","m":"Y3pvMU1qb2lUMnNzWlc1MFpXNWthV1J2TEdWelpTQmt3NjFoSUdWemRHRnl3NmtnWVd4c3c2MHVJRWR5WVdOcFlYTWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636578550","n":"5491133947971","m":"Y3pveU5Eb2lTRzlzWVNCemFTQjJiM2tnWVNCcGNpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636578571","n":"5491130436338","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636578597","n":"5491156301402","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636578612","n":"5491156301402","m":"Y3pvek5Ub2lUbThnY0hWbFpHOGdhVzVuY21WellYSWdlQ0JsYkNCc2FXNXJJQ2tnSUNrZ0lDa2lPdz09","r":3},{"t":"1636578688","n":"5491122638010","m":"Y3pvME5qb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJRU5QVGtaSlVrMVBJR1ZzSUhSMWNtNXZJQ0VnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636578813","n":"5491167426088","m":"Y3pveU16b2lVMmtnYkc4Z3c2ZHZibVpwY20xdklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636578996","n":"5491167991874","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636579066","n":"5491157449568","m":"Y3pveU5Eb2lTRzlzWVNCVGFTQmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636579131","n":"5491131447121","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636579201","n":"5491160555155","m":"Y3pvME5Eb2lRblZsYm1GeklTQkRiMjVtYVhKdGJ5QnRhU0IwZFhKdWJ5QWhJRWR5WVdOcFlYTWhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636579383","n":"5491161914055","m":"Y3pveE9Eb2lRMjl1Wm1seWJXOGdJU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636579630","n":"5491139043942","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636580145","n":"5491132583492","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636580926","n":"5491169103936","m":"Y3pvMU1Ub2lVMGtnVTBrZ1dVRWdVa1ZUVUU5T1JFa2dUVUhEa1VGT1FTQldUMWtnUVNCTVFTQkRUMDVUVlV4VVFTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636580936","n":"5491164922057","m":"Y3pvMU16b2lTRzlzWVNCemFTQmpiMjVtYVhKdGJ5QjBaVzVuYnlCeGRXVWdjR0ZuWVhJZ1lXeG53N3B1SUdKdmJtOC9JQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636581068","n":"5491126379693","m":"Y3pveU1qb2lVMmtnYldIRHNXRnVZU0IyYjNrZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636581445","n":"5491150250618","m":"Y3pvMk16b2lUbThnY0hWbFpHOGdaVzUwY21GeUlHRWdiR0VnY01PaFoybHVZU3h6YVNCMmIza2dZU0JwY2lCaElHeGhJR052Ym5OMWJIUmhMaUFwSUNBcElDQXBJanM9","r":2},{"t":"1636582143","n":"5491134009441","m":"Y3pveU5Ub2lVMmtnYzJrZ2RtOTVJR0Z6YVhOMGFYSWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636584639","n":"5491165130405","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636592152","n":"5491134153789","m":"Y3pvME56b2lTRzlzWVNCaWRXVnVZWE1nYm05amFHVnpJSFJsSUdOdmJtWnBjbTF2SUdWc0lIUjFjbTV2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636631013","n":"5491135066371","m":"Y3pvM01Eb2lTRzlzWVNCMFpXNW5ieUIwZFhKdWJ5QndZWEpoSUdWc0lITmhZbUZrYnlCamIyNGdiR0VnYzJsamIyeHZaMkVnY1dWeWFXRWdZMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636631156","n":"5491135066371","m":"Y3pveU56b2lUV2tnYm05dFluSmxJR1Z6SUdkaGMzUnZiaUFwSUNBcElDQXBJanM9","r":1},{"t":"1636631168","n":"5491135066371","m":"Y3pveU9Eb2lXU0IwWlc1cFlTQjBkWEp1YnlBNUlIa2dNekFnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636631527","n":"5491122992916","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636635573","n":"5491122992916","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636659773","n":"5491165278297","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636659953","n":"5491150149217","m":"Y3pveE5Ub2lRMkZ1WTJWc2J5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1636659960","n":"5491170318225","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636659966","n":"5491134853868","m":"Y3pveU9Ub2lUbThnWm5WdVkybHZibUVnWld3Z1pXNXNZV05sSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636660009","n":"5491128507851","m":"Y3pveU1Ub2lTRzlzWVNCamIyNW1hWEp0YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636660014","n":"5491128507851","m":"Y3pveU9Ub2lRMkZ0WW1saGNtOXVJR1ZzSUc3RHVtMWxjbTgvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636660161","n":"5491135066371","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1636660394","n":"5491132163291","m":"Y3pveE1qYzZJa2h2YkdFZ1luVmxibUZ6SUhSaGNtUmxjeUJsYkNCMGRYSnVieUJrWlNCc1lTQnVkWFJ5YVdOcGIyNXBjM1JoSUhObElHeHZJR1JwSUdSbElHSmhhbUVnWld3Z1pNT3RZU0JrWlNCaGVXVnlJSFBEclNCamIyNW1hWEp0YnlCa2FXRmlaWFJ2Ykc5bnc2MWhJQ3dzTENCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636660415","n":"5491135712586","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636660456","n":"5491157225054","m":"Y3pveU1qb2lUMnNnWTI5dVptbHliV0Z5Wkc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636660671","n":"5491168464330","m":"Y3pvMU5qb2lRblZsYm1GeklIUmhjbVJsY3k0Z1UzVnpjR1Z1Wkc4Z1pXd2dkSFZ5Ym04dUlFMTFZMmhoY3lCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636660884","n":"5491157050782","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636662870","n":"5491161901394","m":"Y3pveU56b2lVMmtnWTI5dVptbHliVzhnWjNKaFkybGhjeUFwSUNBcElDQXBJanM9","r":2},{"t":"1636663624","n":"5491164355188","m":"Y3pveE5qZzZJa0oxWlc1aGN5QjBZWEprWlhNaElGUmxic090WVNCMGRYSnVieUJqYjI0Z2JHRWdiM1J2Y25KcGJtOHVMaTRnVG1GeVlXNXFieUJUWVdKeWFXNWhMaUJSZFdWeXc2MWhJR0YyYVhOaGNpQnhkV1VnZG05NUlHRWdiR3hsWjJGeUlIUmhjbVJsSUhCdmNuRjFaU0JvWVhrZ2JYVmphTU90YzJsdGJ5QjBjc09oWm1samJ5QndiM0lnZEc5a2IzTWdiR0ZrYjNNZ2NHOXlJR05vYjNGMVpYTWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636664800","n":"5491165375611","m":"Y3pveE1USTZJa0oxWlc1aGN5QjBZWEprWlNGRGIyNW1hWEp0YnlCaGJXSnZjeUIwZFhKdWIzTWdjR0Z5WVNCbGJDQmt3NjFoSURFekx6RXhMR0VnYkdGeklERXlJSGtnTVRJdU16Qm9jeUJ5WlhOd1pXTjBhWFpoYldWdWRHVXVUWFZqYUdGeklHZHlZV05wWVhNaElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636665510","n":"5491163771683","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdaV3dnYldWdWMyRnFaU0FwSUNBcElDQXBJanM9","r":2},{"t":"1636666738","n":"5493516896880","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636666797","n":"5493516896880","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636666917","n":"5493512349009","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636667627","n":"5493516896880","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636685192","n":"5493512349009","m":"Y3pveE16b2lSM0p2YzI4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636715289","n":"5493512349009","m":"Y3pvMU5Eb2lhSFIwY0RvdkwyUnlZWEpoZVdGelpXUmxkblZ5Y1hWcGVtRXVaR1J1Y3k1dVpYUXZiVzlpYVd4bEx5QXBJQ0FwSUNBcElDQXBJanM9","r":1},{"t":"1636715642","n":"5493512349009","m":"Y3pvM05qb2lhSFIwY0hNNkx5OTNkM2N1WTJWdWRISnZiV1ZrYVdOdmNtRjVZUzVqYjIwdVlYSXZZWEJ3Y3k5bWNtOXVkQzl6YjJ4cFkybDBZWEpVZFhKdWJ5NXdhSEFnS1NBZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636728503","n":"5491138793715","m":"Y3pveU1Eb2lRblZsYm05eklHVERyV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636732088","n":"5491155670708","m":"Y3pvME1qb2lTRzlzWVNCeGRXVnlhV0VnYUdGalpYSnNaWE1nZFc1aElHTnZibk4xYkhSaFB5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636805367","n":"5493512349009","m":"Y3pveE16YzZJa0pGUjBsT09sWkRRVkpFZkZaRlVsTkpUMDQ2TXk0d0lFNDZPMHBsYm1sbVpYSTdPenNnUms0NlNtVnVhV1psY2lCcGRHVnRNUzVVUlV3N2QyRnBaRDAxTkRreE1UVTVNek0yTmpJMk9pczFOQ0E1SURFeElEVTVNek10TmpZeU5pQnBkR1Z0TVM1WUxVRkNUR0ZpWld3NlRjT3pkbWxzSUVWT1JEcFdRMEZTUkNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636810240","n":"5491150550412","m":"Y3pvek56b2lRMjl1Wm1seWJXOGdjWFZsSUdWc0lHeDFibVZ6SURFMUlIWnZlUzRnS1NBZ0tTQWdLU0k3","r":2},{"t":"1636986126","n":"5491132529757","m":"Y3pvek9Eb2lUbThnYzhPcElIQjFaV1JsSUdWdWRISmhjaUJoYkNCbGJteGhZMlV1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636986132","n":"5491133016875","m":"Y3pveE1Ub2lUMnN1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636986202","n":"5491168237002","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986246","n":"5491139327148","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986372","n":"5491153391246","m":"Y3pvME1Ub2lRblZsYmlCa3c2MWhJQ0VnVTJrc0lHTnZibVpwY20xdklHMXBJSFIxY201dklDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636986482","n":"5491135230582","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986484","n":"5491162720046","m":"Y3pveU5Eb2lTRzlzWVNCemFTQmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636986535","n":"5491162879562","m":"Y3pvek5ETTZJa0oxWlc1aGN5QjBZWEprWlhNZ2NHVnlabVZqZEc4Z0xTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFNBcVJWTlVSU0JGVXlCVlRpQk5SVTVUUVVwRklFZEZUa1ZTUVVSUElFRlZWRTlOUVZSSlEwRk5SVTVVUlNCUVQxSWdSVXdnVTBsVFZFVk5RU3dnVGs4Z1VrVlRVRTlPUkVWU0lFRWdSVk5VUlNCT1ZVMUZVazhxSUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnSUZCdmNpQm1ZWFp2Y2lBcVEwOU9Sa2xTVFVGU0lHOGdRMEZPUTBWTVFWSXFJR3hoSUdGemFYTjBaVzVqYVdFZ1pXNGdaV3dnYzJsbmRXbGxiblJsSUdWdWJHRmpaVG9nYUhSMGNEb3ZMMk5sYm5SeWIyMWxaR2xqYjJObGNpNWtaRzV6TG01bGRDOWpiMjVtYVhKdFlYSXZQM1J2YTJWdVBVVkROVUl6T1VRek1EZzBOemt6TVRGR01VVTFSamhDTVRjME1qa3dNVVUxSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636986546","n":"5491156578191","m":"Y3pvMk9Ub2lTRzlzWVNCaWRXVnVJR1REcldFZ0lTRWhJU0JEYjI1bWFYSnR3N01nWld3Z2RIVnlibThnSVNFaElFMTFZMmhoY3lCSGNtRmphV0Z6SUNFaElTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636986694","n":"5491157813737","m":"Y3pvek5Ub2lUWFZqYUdGeklHZHlZV05wWVhNc1lXakRyU0JsYzNSaGNzT3BJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636986721","n":"5491134462798","m":"Y3pveU5Eb2lVMmtnYldVZ2NISmxjMlZ1ZEdGeVpTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636986751","n":"5491164443951","m":"Y3pveE9Eb2lRMDlPUmtsU1RVRkVUeUFwSUNBcElDQXBJanM9","r":2},{"t":"1636986804","n":"5491121551259","m":"Y3pveU5qb2lRMjl1Wm1seWJXOGdZblZsYmlCa3c2MWhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636986839","n":"5491166033194","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636986906","n":"5491133825700","m":"Y3pveU5Ub2lTRzlzWVNCaWRXVnVZWE1nYzJrZ2Mya2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636986935","n":"5491137052883","m":"Y3pvME1Eb2lUbThnY0dWeVpNT3piaUJ3WlhKdklHTmhibU5sYkc4Z1pXd2dkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1636987086","n":"5491169094218","m":"Y3pvME56b2lUR2x6ZEc4aElFTnZibVpwY20xaFpHOGdaVzRnWld3Z1pXNXNZV05sTGlCVFlXeDFaRzl6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636987110","n":"5491131843832","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987142","n":"5491168626368","m":"Y3pveU1Ub2lVMmtnYldIRHNXRnVZU0IyWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636987263","n":"5491132521299","m":"Y3pveU5Eb2lVMmxwYVNCc2J5QmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636987266","n":"5491132521299","m":"Y3pveE5qb2lRWE5wYzNScGNtVWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636987291","n":"5491132843489","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1636987364","n":"5492233128962","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636987376","n":"5491161673174","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987420","n":"5491155818976","m":"Y3pveU16TTZJa0oxWlc0Z1pNT3RZU0FzSUdoaFlzT3RZU0JsYm5acFlXUnZJSFZ1SUcxbGJuTmhhbVVnWVNCdmRISnZJRzdEdW0xbGNtOGdjWFZsSUhSbGJzT3RZU0JoWjJWdVpHRmtieUJ3WVhKaElITmhZbVZ5SUhOcElITmxJSEIxWldSbElHTmhiV0pwWVhJZ1pXd2dhRzl5WVhKcGJ5QmtaV3dnZEhWeWJtOGdaR1VnYldIRHNXRnVZU0J3WVhKaElIRjFaU0JsYkNCdVpXNWxJRzV2SUdaaGJIUmxJR0ZzSUdOdmJHVm5hVzhnYzJrZ1pYTWdjRzl6YVdKc1pTQXNJSE5wYm04Z2MyVWdjSFZsWkdVZ2JHOGdkRzl0YnlCcFozVmhiQ0JoYkNCMGRYSnVieUFwSUNBcElDQXBJanM9","r":1},{"t":"1636987467","n":"5491125758558","m":"Y3pvek5EUTZJa2h2YkdFZ2Mya2dZMjl1Wm1seWJXOGdlVzhnZG05NUlDMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwZ0trVlRWRVVnUlZNZ1ZVNGdUVVZPVTBGS1JTQkhSVTVGVWtGRVR5QkJWVlJQVFVGVVNVTkJUVVZPVkVVZ1VFOVNJRVZNSUZOSlUxUkZUVUVzSUU1UElGSkZVMUJQVGtSRlVpQkJJRVZUVkVVZ1RsVk5SVkpQS2lBdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0SUNCUWIzSWdabUYyYjNJZ0trTlBUa1pKVWsxQlVpQnZJRU5CVGtORlRFRlNLaUJzWVNCaGMybHpkR1Z1WTJsaElHVnVJR1ZzSUhOcFozVnBaVzUwWlNCbGJteGhZMlU2SUdoMGRIQTZMeTlqWlc1MGNtOXRaV1JwWTI5alpYSXVaR1J1Y3k1dVpYUXZZMjl1Wm1seWJXRnlMejkwYjJ0bGJqMHlRVEkxT0RjeE5VTkNNVU5DUVRFeU4wRkVOVFl5TVRNNU1EQkdRakEwTkNBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636987506","n":"5491166721933","m":"Y3pvek1Eb2lTRzlzWVNCamIyNW1hWEp0YnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636987559","n":"5491127289145","m":"Y3pveU5qb2lTRzlzWVNCemFTQmhhR2tnWlhOMFlYSmxJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1636987562","n":"5491159562947","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987606","n":"5491165405650","m":"Y3pveU1Eb2lRMjl1Wm1seWJXOGdZbTk1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1636987847","n":"5491131416597","m":"Y3pveU5Eb2lTRzlzWVNCemFTQmpiMjVtYVhKdGJ5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636987938","n":"5491155676849","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636987940","n":"5491138707354","m":"Y3pveU1qb2lTRzlzWVNBdUxpNGdVMmt1TGk0Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988029","n":"5491161448595","m":"Y3pvek1Eb2lVMmtnWTI5dVptbHliVzhnWVhOcGMzUmxibU5wWVNBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636988035","n":"5491161448595","m":"Y3pveU1qb2lUWFZqYUdGeklHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988070","n":"5491133070409","m":"Y3pveU5qb2lTRzlzWVM0Z1Uya3NJR052Ym1acGNtMXZJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1636988127","n":"5491169487380","m":"Y3pvNU1qb2lRblZsYm05eklHVERyV0Z6SVNCUWIyUnl3NjFoSUdOaGJXSnBZWEp6WlNERHFYTjBaU0IwZFhKdWJ5QndZWEpoSUdWc0lHVERyV0VnYW5WbGRtVnpJREU0THk4eE1TQndiM0lnYkdFZ2RHRnlaR1UvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636988207","n":"5491123309655","m":"Y3pveU1qb2lUMnNnYzJscElHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988219","n":"5491121770904","m":"Y3pveU5Eb2lRMjl1Wm1seWJXOGdkR0Z0WW1sbGJpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1636988262","n":"5491157206262","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1636988460","n":"5491156348047","m":"Y3pvek16b2lTRzlzWVNCemFTQnRZY094WVc1aElHVnpkR0Z0YnlCaGVTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636988576","n":"5491126588180","m":"Y3pveE16b2lTRzlzWVdFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636988590","n":"5491126588180","m":"Y3pvME16b2lUbThnZEdWdXc2MWhJREV3T3pNd0lHVnNJSFIxY201dklHTnZjblpoYkdGdVB6OGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1636988753","n":"5491162415008","m":"Y3pvMk56b2lTRzlzWVNCbGMzUnZlU0JqYjI0Z2JXa2djR1Z5YVc5a2J5QnVieUJ0WlNCd2IyVERxWE1nYzI5c2FXTnBkR0Z5SUc5MGNtRWdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636990353","n":"5491155818976","m":"Y3pvek1EQTZJbE5wTENCMllTQmhJR2x5SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnS2tWVFZFVWdSVk1nVlU0Z1RVVk9VMEZLUlNCSFJVNUZVa0ZFVHlCQlZWUlBUVUZVU1VOQlRVVk9WRVVnVUU5U0lFVk1JRk5KVTFSRlRVRXNJRTVQSUZKRlUxQlBUa1JGVWlCQklFVlRWRVVnVGxWTlJWSlBLaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ0JRYjNJZ1ptRjJiM0lnS2tOUFRrWkpVazFCVWlCdklFTkJUa05GVEVGU0tpQnNZU0JoYzJsemRHVnVZMmxoSUdWdUlHVnNJSE5wWjNWcFpXNTBaU0JsYm14aFkyVTZJR2gwZEhBNkx5OWpaVzUwY205dFpXUnBZMjlqWlhJdVpHUnVjeTV1WlhRdlkyOXVabWx5YldGeUx6OTBiMnRsYmowZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1636990617","n":"5491130104752","m":"Y3pvNE5Eb2lTRzlzWVNCemFTQjJiM2tnWVNCcGNpQnRZY094WVc1aExDQm5jbUZqYVdGeklIZ2djbVZqYjNKa1lYSnRaU0JqZFdGdWRHOGdhR0Y1SUhGMVpTQmhZbTl1WVhJZ2VDQnBiMjFoUHlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636991147","n":"5491154142658","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1636991154","n":"5491154142658","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1636991156","n":"5491154142658","m":"Y3pveE1Ub2lSM0p6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1636992616","n":"5491134441891","m":"Y3pvMU5Ub2lRblZsYm05eklHVERyV0Z6SUZOcElHRnphWE4wYVhKbElHMWh3N0ZoYm1FZ1RYVmphR0Z6SUdkeVlXTnBZWE1nS1NBZ0tTQWdLU0k3","r":2},{"t":"1636992977","n":"5491169323900","m":"Y3pvME1Eb2lRblZsYm1GeklIUmhjbVJsY3k0Z1EyRnVZMlZzdzdNZ1pXd2dkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1636993103","n":"5491138403884","m":"Y3pvME9Eb2lTRzlzWVNCamIyNW1hWEp0YnlCaGMybHpkR1Z1WTJsaExpQk5kV05vWVhNZ1ozSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636994298","n":"5491169323900","m":"Y3pvek1qb2lUU0J3YjJSeXc2RnVJR1JoY2lCdmRISnZJSFIxY201dklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636994965","n":"5491164830009","m":"Y3pvMU9Ub2lTRzlzWVNCeGRXbGxjbThnWTJGdVkyVnNZWElnY0dWeWJ5QnVieUJ3ZFdWa2J5QnBibWR5WlhOaGNpQmhiQ0JzYVc1cklDa2dJQ2tnSUNraU93PT0=","r":3},{"t":"1636995667","n":"5491127955547","m":"Y3pveE16VTZJa2h2YkdFZ0xHNXZJSEIxWldSdklHVnVkSEpoY2lCbGJpQnNZU0J3dzZGbmFXNWhJRzV2SUhadmVTQmhJSEJ2WkdWeUlHRnphWE4wYVhJc2JtVmpaWE5wZEc4Z2Mya2diV1VnYkc4Z2NHOWtaWE1nY0dGellYSWdjR0Z5WVNCbGJDQnRaWE1nY1NCMmFXVnVaU0J3YjNJZ1ptRjJiM0lnTEdkeVlXTnBZWE1nS1NBZ0tTQWdLU0k3","r":3},{"t":"1636997336","n":"5491123272762","m":"Y3pvNU5qb2lTRzlzWVNBc2Mya2daWE1nWlc0Z2NIVnVkRzhnWlhOMFlYTERxU0J3YjNKeGRXVWdNVGtnYUc5eVlYTWdkR1Z1WjI4Z2IzUnlieUIwZFhKdWJ5NU9ieUJ0WlNCd2RXVmtieUJ3WVhOaGNpQndiM0ptWVhadmNpQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1636997890","n":"5491123272762","m":"Y3pvME5Ub2lVRzlrY3NPdFlYTWdjR0Z6WVhKdFpTQndZWEpoSUdWc0lIWnBaWEp1WlhNZ01qWWdQeUFwSUNBcElDQXBJanM9","r":1},{"t":"1636997902","n":"5491123272762","m":"Y3pveU16b2lRU0JzWVhNZ01UZ2dhRzl5WVhNL0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1636998071","n":"5491150235330","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1636998458","n":"5491164399480","m":"Y3pvNU16b2lRblZsYm05eklHVERyV0Z6TEc1dklHMWxJR1JsYW1FZ2FXNW5jbVZ6WVhJZ1lXd2daVzVzWVdObExIQmxjbThnWTI5dVptbHliVzhnWld3Z2RIVnlibThnWkdVZ2JXSERzV0Z1WVN3Z1ozSmhZMmxoY3lBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1636998978","n":"5491169999523","m":"Y3pveU1Eb2lTRzlzWVNBZ2Mya2dkbTk1SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637001178","n":"5491169487380","m":"Y3pvM01Eb2lRMDlPUmtsU1RVOGdWSFZ5Ym04Z2NHRnlZU0J0WVhKMFpYTWdNVFl2TVRFZ1lTQnNZWE1nTVRVNk16QWdjR0Z5WVNCQ1VrRldUeUJCVEVsRFNVRWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637002516","n":"5491157354178","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637009146","n":"5491154879281","m":"Y3pveE1qWTZJbE5wSUdOdmJtWnBjbTF2SUdWc0lIUjFjbTV2SUM0Z1RtOGdjSFZsWkc4Z1pXNTBjbUZ5SUdGc0lFeHBibXNnY0c5eWNYVmxJRzV2SUcxbElHRndZWEpsWTJVZ2JHRnpJSEJoYkdGaWNtRnpJR1Z1SUdOdmJHOXlJR05sYkdWemRHVWdjR0Z5WVNCaFkyTmxaR1Z5SUdGc0lFeHBibXNnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637036075","n":"5491158496351","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637036084","n":"5491158496351","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637093903","n":"5491121771516","m":"Y3pvME1Ub2lTRzlzWVNCamIyNW1hWEp0YnlCMGRYSnViM01nY0dGeVlTQnRZY094WVc1aElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637098174","n":"5491164356364","m":"Y3pvME1Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJR05oYm1ObGJHOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":3},{"t":"1637098301","n":"5491165930561","m":"Y3pvek5Ub2lRblZsYm1GeklIUmhjbVJsY3k0Z1Uya2dZWE5wYzNScGNzT3BJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637098352","n":"5491160160041","m":"Y3pvMU9Ub2lTRzlzWVNCdWJ5QnRaU0JrWldwaElHbHVaM0psYzJGeUlHRnNJR1Z1YkdGalpTQndaWEp2SUhOcElIWnZlU0JoSUdseUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637098368","n":"5491156397705","m":"Y3pvMk5qb2lSV3dnZEhWeWJtOGdibThnWlhNZ2NHRnlZU0JqYk1PdGJtbGpieXdnWlhNZ2NHRnlZU0J1WlhWeWIyeHZaOE90WVNCcGJtWmhiblJwYkNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637098387","n":"5491164252722","m":"Y3pvME1qb2lVMmt1SUZaaElHRnphWE4wYVhJdUlFVnNJR1Z1YkdGalpTQnVieUJoWW5KbExpQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637098397","n":"5491141719943","m":"Y3pvek9Eb2lVMmtnWTI5dVptbHliVzhnWld3Z2RIVnlibThzSUNCbmNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637098435","n":"5491153299547","m":"Y3pveE5qb2lSblZwSUdGNVpYSWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637098440","n":"5491151224200","m":"Y3pveU1Ub2lVMmtnWTI5dVptbHliV0ZrYnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637098452","n":"5491159235882","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637098552","n":"5491151562602","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637098638","n":"5491123456125","m":"Y3pveU5Eb2lTRzlzWVNCemFTQjJiM2tnWVNCcGNpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637098660","n":"5491155043975","m":"Y3pveU56b2lTRzlzWVNCeGRXVWdkR0ZzSUhOcElIWnZlU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637098756","n":"5491138300880","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637098808","n":"5491163552763","m":"Y3pvMk9Eb2lRblZsYm1GeklIUmhjbVJsY3lFZ1EyOXVabWx5Ylc4Z1lYTnBjM1JsYm1OcFlTQmtaV3dnWTJ4cGJtbGpieUI1SUc5bWRHRnNiVzlzYjJkdklDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637098830","n":"5491161305727","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637098912","n":"5491125043264","m":"Y3pveE1qSTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4Tmk4eE1Ua3dOREl2TURrMFptWTROakV0TURrM01DMDBZVEl4TFRobE1URXRaR1U0TVdSa1ptTTBZVFUwTG05bllTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637098909","n":"5491158574299","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637098999","n":"5491136209775","m":"Y3pvek1qb2lRWE5wYzNScGNzT3BJRzExWTJoaGN5Qm5jbUZqYVdGeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637099062","n":"5491146733635","m":"Y3pvME1qb2lUbVZqWlhOcGRHOGdiM1J5YnlCMGRYSnVieUF1Ym04Z2JHeGxaM1ZsSUdodmVTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637099143","n":"5491162503013","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637099164","n":"5491168946989","m":"Y3pveE9Ub2lVMmtnZG05NUlHRWdhWElnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637099460","n":"5491137879177","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637099589","n":"5491151343108","m":"Y3pveU1Ub2lVMmtnWTI5dVptbHliV0ZrYnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637100890","n":"5491161774040","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637101182","n":"5491164922057","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637101220","n":"5491126469966","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637101661","n":"5491124709670","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637102352","n":"5491136095898","m":"Y3pveU56b2lRMjl1Wm1seWJXRmtieUJsYkNCMGRYSnVieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637105117","n":"5491130140278","m":"Y3pveE5qb2lTRzlzWVNCemFTRWdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637106114","n":"5491133660611","m":"Y3pveU9Eb2lVR0Z5WVNCeGRXVWdjR0ZqYVdWdWRHVWdaWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1637147081","n":"5491160531288","m":"Y3pvMU9Eb2lTRzlzWVNCaWRXVnViM01nWk1PdFlYTWdiV1VnY0c5a2NzT3RZU0J3WVhOaGNpQnNZU0JrYVhKbFkyTnB3N051UHo4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637153296","n":"5491164955550","m":"Y3pveE56b2lRMjl1Wm1seWJXOHVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637153480","n":"5491136873707","m":"Y3pvME1Ub2lRMjl1Wm1seWJXOGdjWFZsSUZOcElIWnZlU0JoSUhCeVpYTmxiblJoY20xbElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637153804","n":"5491131069821","m":"Y3pveU5Eb2lRMkZ1WTJWc2J5QmxiQ0IwZFhKdWJ5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637154263","n":"5491168946989","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637154391","n":"5491168946989","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637155855","n":"5491168946989","m":"Y3pveE1qSTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4Tnk4eE1Ua3dOREl2WkROaE0yUXlZVEV0TnpZd05pMDBOREZsTFRneU0yUXRNalUwWWpoak0yUTNaVFZqTG05bllTQXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637156044","n":"5491157449568","m":"Y3pvMk5Ub2lTRzlzWVNCQ2RXVnVJR1REcldFZ1Uya2djMmtnUkdsdmN5QnhkV2xsY21VZ2RtOTVJR0VnWlhOMFlYSWdZV2pEclNCSGNtRmphV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637156511","n":"5491153191540","m":"Y3pveU16b2lVMmtnZG1FZ1lTQmhaR2x6ZEdseUlDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637160341","n":"5491134011733","m":"Y3pveU5qb2lRMjl1Wm1seWJXRmtieUJuY21GamFXRnpJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637166472","n":"5491158335285","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637177038","n":"5491167097419","m":"Y3pveE5ESTZJa2h2YkdFc0lHSjFaVzVoY3lCMFlYSmtaWE11SUZOdmVTQkJiSFpoY21WNklGWmhibWx1WVN3Z2RHVnVaMjhnZEhWeWJtOGdZMjl1SUdWc0lIUnlZWFZ0WVhURHMyeHZaMjhnTVRZdU16QXNJSEYxWlhMRHJXRWdZWFpwYzJGeUlIRjFaU0JsYzNSdmVTQnNiR1ZuWVc1a2J5QjFibTl6SUcxcGJuVjBiM01nZEdGeVpHVXVJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637177858","n":"5491123309655","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637327607","n":"5491132389615","m":"Y3pveU5Ub2lVR0ZoSUhrZ1kyOXNjRzhnYUdGalpXNGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637328371","n":"5491157449568","m":"Y3pvek1Ub2lVMmtnWlhOMFlYTERxU0JoYU1PdElHZHlZV05wWVhNZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637328661","n":"5491157822917","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh4T1M4eE1Ua3dOREl2TkRNNE5tRTRNak10TldZM01DMDBNVEEzTFdKaVltRXRNbU5qTm1SbE1EY3pPREUxTG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637328850","n":"5491169325569","m":"Y3pvek1Ub2lTRzlzWVdFZ2MybHBhU0IwWlNCamIyNW1hWEp0YnlFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637328902","n":"5491163022108","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637328908","n":"5491164946089","m":"Y3pveU1Eb2lRblZsYm05eklHUnBZWE1oSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637329009","n":"5491124676105","m":"Y3pveU16b2lTRzlzWVNCemFTQjJiM2tnWVdseUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637329023","n":"5491169013024","m":"Y3pvek1qb2lTRzlzWVNCaWRXVnVJR1JwWVNCc2J5QmpZVzVqWld4dklDa2dJQ2tnSUNraU93PT0=","r":3},{"t":"1637329066","n":"5491161763781","m":"Y3pvME1qb2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOHNJQ0J0ZFdOb1lYTWdaM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637329188","n":"5491166889834","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637329543","n":"5491167673031","m":"Y3pveU1qb2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637329618","n":"5491154648059","m":"Y3pveU1qb2lTRzlzWVNCaWRXVnVJR1REcldFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637329627","n":"5491130189301","m":"Y3pveU1Ub2lWbTk1SUdFZ1lYTnBjM1JwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637329710","n":"5491159483944","m":"Y3pveE1qWTZJa0oxWlc1dmN5Qmt3NjFoY3lCbGJDQjBkWEp1YnlCc2J5QmpZVzVqWld6RHN5QmxiQ0J0WldwdmNpQlBZM1JoZG1sdklFZkRzMjFsZWlCaGVXVnlJSE4xSUcxaFpISmxJSE5sSUd4dklHeHNaWGJEc3lBdUlGbGhJRzV2SUdWemRHOTVJR0VnWTJGeVoyOGdaR1ZzSUcxbGJtOXlJQzRnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637329939","n":"5491169520723","m":"Y3pveU1qb2lTRzlzWVNCeGRjT3BJSFJoYkQ4Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637329965","n":"5491159920613","m":"Y3pveU9Eb2lVMmtnWTI5dVptbHliVzhnWld3Z2RIVnlibThnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637330116","n":"5491134525349","m":"Y3pveE5Ub2lSM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637330222","n":"5491155881950","m":"Y3pvMU16b2lRMjl1Wm1seWJXOGdRWE5wYzNSbGJtTnBZU0JoYkNCVWRYSnVieTRnVFhWamFHRnpJRWR5WVdOcFlYTXVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637330749","n":"5491162085172","m":"Y3pveU1Eb2lVMmxwSUdOdmJtWnBjbTF2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637330757","n":"5491162085172","m":"Y3pveU9Eb2lVR0Z5WVNCeGRXbGxiaUJsY3lCbGMzUnZQejhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637331193","n":"5491130516514","m":"Y3pvM09Ub2lRblZsYmlCa3c2MWhJU0JGYzNSdmVTQmtaU0IwZFhKdWJ5QmxjMlVnWk1PdFlTQjVJRzV2SUhCMVpXUnZJR05oYldKcFlYSWdZMjl1SUcxcElHTnZiWEJodzdGbGNtRWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1637331234","n":"5491136301852","m":"Y3pveU1qb2lVMmtnYzJrZ1kyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637331643","n":"5491149456753","m":"Y3pveE5qb2lRMjl0Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637332431","n":"5491150537039","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637334924","n":"5491127462916","m":"Y3pveE1Eb2lUMnNnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637337217","n":"5491131959737","m":"Y3pvM05qb2lZblZsYm1GeklIUmhjbVJsY3lFZ1kyOXVabWx5Ylc4Z2NHOXlJR0ZqdzZFZ2VXRWdjWFZsSUdFZ2JHRWdjTU9oWjJsdVlTQnVieUJ3ZFdWa2J5QmxiblJ5WVhJZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637339926","n":"5491157616068","m":"Y3pvNE5Eb2lRblZsYm1GeklIUmhjbVJsY3k0Z1EyRnVZMlZzWlNCbGJDQjBkWEp1Ynk0Z1RXVWdjRzlrY3NPaGN5QnlaU0J3Y205bmNtRnRZWElnWld3Z2RIVnlibThnY0c5eUlHWmhkbTl5UHlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637346630","n":"5491159479979","m":"Y3pvNU1Eb2lRMkZ1WTJWc2J5RWhJU0JPYnlCc2JHVm5ieUJqYjI0Z1pXd2dhRzl5WVhKcGJ5NGdXV0VnYUdGaXc2MWhJRzFoYm1SaFpHOGdZV3dnYjNSeWJ5QjNjMkZ3SVNFZ1RXbHNJR1JwYzJOMWJIQmhjeUFwSUNBcElDQXBJanM9","r":3},{"t":"1637353596","n":"5491157362529","m":"Y3pvME5Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpJR052Ym1acGNtM0RzeUJzYjNNZ1pHOXpJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637354601","n":"5491138493165","m":"Y3pvNE1qb2lRMjl1Wm1seWJXOGdiRzl6SUhSMWNtNXZjeUJ3WlhKdklHVnpJSEJoY21FZ1lXUjFiSFJ2Y3l3Z2NHOXljWFZsSUhCMWMybGxjbTl1SUc5a2IyNTBiM0JsWkdsaGRITERyV0VnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637362332","n":"5491131847628","m":"Y3pvMk1qb2lTRzlzWVNFZ1FuVmxibUZ6SUhSaGNtUmxjeXdnWTI5dVptbHliVzhnTVNCa1pTQnNiM01nZEhWeWJtOXpMQ0JsYkNCdGFXOHVJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637401880","n":"5491150100858","m":"Y3pvNE56b2lRblZsYm05eklHVERyV0Z6SUNFZ1VYVmxjc090WVNCamIyNXpkV3gwWVhJZ0xpQkliM2tnZEhWeWJtOGdZMjl1SUczRHFXUnBZMjhnWTJ6RHJXNXBZMjhnYVcxd2IzTnBZbXhsSUc1dlB5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637413029","n":"5491122351945","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637439492","n":"5491155089290","m":"Y3pvek9Ub2lRblZsYm1GeklIUmhjbVJsY3k0Z1EyRnVZMlZzYnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":3},{"t":"1637498912","n":"5491156471332","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637498937","n":"5491134194093","m":"Y3pvMU5Ub2lTRzlzWVN3Z2JtOGdkbTk1SUdFZ1kyOXVZM1Z5Y21seUlDQmhiQ0IwZFhKdWJ5d2dJR3h2SUdOaGJtTmxiRzhnS1NBZ0tTQWdLU0k3","r":3},{"t":"1637499070","n":"5491156348001","m":"Y3pveE1qTTZJbWgwZEhCek9pOHZjek11WlhVdFkyVnVkSEpoYkMweExuZGhjMkZpYVhONWN5NWpiMjB2YVc1amIyMXBibWN0WTJoaGRDMWhjR2t2TWpBeU1TOHhNUzh5TVM4eE1Ua3dOREl2T1dVeE1qUmxOemd0WXpJMU9TMDBOR0prTFRsalltWXRZalF3TUdOaFlXRm1PV0psTG1wd1pXY2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637499164","n":"5491135691510","m":"Y3pveE9Ub2lVMmtnWVhOcGMzUnBjbVVnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637499196","n":"5491155881950","m":"Y3pvME1Ub2lRMjl1Wm1seWJXOGdWSFZ5Ym04Z2NHRnlZU0JzWVhNZ01UUXVORFVnYUhNdUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637499487","n":"5491153758254","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637500696","n":"5491164252722","m":"Y3pvek1Ub2lVMmt1SUZaaElHRnphWE4wYVhJZ1lXd2dkSFZ5Ym04Z0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637501837","n":"5491124556121","m":"Y3pvek16b2lTRzlzWVNCdWJ5QnVieUIyYjNrZ1lTQndiMlJsY2lCcGNpQXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637502036","n":"5491124676105","m":"Y3pveU16b2lTRzlzWVNCemFTQjJiM2tnWVdseUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637504861","n":"5491162085172","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637514093","n":"5491166595940","m":"Y3pveE56b2lRMDlPUmtsU1RVRlNJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637519730","n":"5491153406027","m":"Y3pvek5Ub2lTRzlzWVNFZ1RtOGdiV1VnWVhCaGNtVmpaU0JsYkNCc2FXNXJJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637524814","n":"5491167673031","m":"Y3pvek1Eb2lZMjl1Wm1seWJXVWdaR2xqWlNCbGJDQjBaWGgwYnlBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637585378","n":"5491135644189","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637585456","n":"5491139252267","m":"Y3pveU9Ub2lVMmt1SUVOdmJtWnBjbTF2SUdWc0lIUjFjbTV2SUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637585459","n":"5491168826955","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637585474","n":"5491135644189","m":"Y3pveE9Ub2lVMmtnWTI5dVptbHliVzhnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637585662","n":"5491157723991","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637585710","n":"5491158953617","m":"Y3pveE1URTZJa0oxWlc1dmN5Qmt3NjFoY3lFZ1VYVmxjbkxEcldFZ2MyRmlaWElnY1hWbElHVERyV0VnZEdWdVoyOGdkSFZ5Ym04Z2NHRnlZU0JsYkNCdlpuUmhiRzNEczJ4dloyOGdMQ0JOWVhKMGFXNWhJRXhoZEc4Z1pHNXBJRFUxTVRneE5USTJJRWxQVFVFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637585731","n":"5491150151742","m":"Y3pveE16ZzZJa0oxWlc0Z1pNT3RZU3dnYm04Z1lYTnBjM1J2SUhCdmNuRjFaU0J1YnlCMFpXNW5ieUJzWVNCbFkyOW5jbUZtdzYxaElIRjFaU0J0WlNCd2FXUnB3N01nYkdFZ1pHOWpkRzl5WVN3Z2NHOWtjc090WVNCeVpYQnliMmR5WVcxaGNpQndZWEpoSUdSbGMzQjF3Nmx6SUdSbGJDQTNJR1JsSUdScFkybGxiV0p5WlM0Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637585745","n":"5491158267017","m":"Y3pveU56b2lVMmtzSUd4dklHTnZibVpwY20xdkxpQklZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637585771","n":"5491140621384","m":"Y3pveU1Ub2lTRzlzWVNCemFTQjJZVzF2Y3lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637585878","n":"5491164673182","m":"Y3pveE1qb2lVMmx6YVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637585901","n":"5491131251050","m":"Y3pveU5Eb2lTRzlzWVNCemFTQjJiM2tnWjNKamN5QXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637586039","n":"5491163674493","m":"Y3pveU1Ub2lWbTk1SUdFZ1lYTnBjM1JwY2lBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637586067","n":"5491163539693","m":"Y3pveE5Ub2lRMkZ1WTJWc2J5QXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637586084","n":"5491150615652","m":"Y3pveE5qb2lRMkZ1WTJWc1lYSWdLU0FnS1NBZ0tTSTc=","r":3},{"t":"1637586335","n":"5491150620385","m":"Y3pveE56b2lRMjl1Wm1seWJXOGhJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637586586","n":"5491151792321","m":"Y3pvek56YzZJa0oxWlc1dmN5Qmt3NjFoY3lBc0lHTnZibVpwY20xdklHM0RyU0JqYVhSaElHTnZiaUJzWVNCa2IyTjBiM0poSUVobGNtTnZiR2t1SUMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzBnS2tWVFZFVWdSVk1nVlU0Z1RVVk9VMEZLUlNCSFJVNUZVa0ZFVHlCQlZWUlBUVUZVU1VOQlRVVk9WRVVnVUU5U0lFVk1JRk5KVTFSRlRVRXNJRTVQSUZKRlUxQlBUa1JGVWlCQklFVlRWRVVnVGxWTlJWSlBLaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ0JRYjNJZ1ptRjJiM0lnS2tOUFRrWkpVazFCVWlCdklFTkJUa05GVEVGU0tpQnNZU0JoYzJsemRHVnVZMmxoSUdWdUlHVnNJSE5wWjNWcFpXNTBaU0JsYm14aFkyVTZJR2gwZEhBNkx5OWpaVzUwY205dFpXUnBZMjlqWlhJdVpHUnVjeTV1WlhRdlkyOXVabWx5YldGeUx6OTBiMnRsYmowMU5UbENNVFl6UmpGQlJVTkdNREZCTWtJNFJUbEZOVFpCTkRjNVJqVTJSaUFwSUNBcElDQXBJanM9","r":2},{"t":"1637586840","n":"5491161863536","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637586886","n":"5491128719338","m":"Y3pveU5Eb2lTRzlzWVNCaWRXVnViM01nWkdsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637586898","n":"5491128719338","m":"Y3pveU1qb2lVMmtnYkc4Z1kyOXVabWx5Ylc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637587198","n":"5491139167996","m":"Y3pveU5Ub2k4SitSamZDZmtZM3duNUdOYzJsMmIza2dLU0FnS1NBZ0tTSTc=","r":1},{"t":"1637587235","n":"5491156687210","m":"Y3pveU1qb2lSWE4wYzNKbGJXOXpJR0ZzYkdrZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637587455","n":"5491134079757","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637588332","n":"5491122549333","m":"Y3pveU1Eb2lRblZsYm05eklHVERyV0Z6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637588358","n":"5491122549333","m":"Y3pveE5Ub2lSM0poWTJsaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637589393","n":"5491139226313","m":"Y3pveU1Eb2lXV0VnWTI5dVptbHliY09wSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637589463","n":"5491166127626","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637589469","n":"5491166127626","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637590739","n":"5491159776771","m":"Y3pvek1Eb2lTRzlzWVN3Z2Mya2dkbTk1SUdFZ1lYTnBjM1JwY2lBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637590763","n":"5491159776771","m":"Y3pvMk1qb2lUV1VnY0c5a2NtbGhiaUJsYm5iRHJXRnlJR1ZzSUdWdWJHRmpaU0JoY0dGeWRHVS9JRTV2SUd4dklIQjFaV1J2SUdGaWNtbHlJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637590829","n":"5491130341643","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637592261","n":"5491168186969","m":"Y3pvMk9Ub2lVMmtnTGlCRmMzUmhjbVVnWlc0Z1pXd2dZMjl1YzNWc2RHOXlhVzhnWld3Z1pHbGhJREkwSUdSbGJDQXhNU0JoSUd4aGN5QXhOeUJvYjNKaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637593213","n":"5491154829249","m":"Y3pveE5qYzZJa0oxWlc1dmN5Qmt3NjFoY3lBaElYWnZlU0JoSUdOaGJtTmxiR0Z5SUdWc0lIUjFjbTV2SUhCdmNuRjFaU0JsYlhCcFpYcHZJR0VnZEhKaFltRnFZWElnWkhWeVlXNTBaU0JzWVNCdFljT3hZVzVoTGlCT1pXTmxjMmwwWVhMRHJXRWdjbVZ3Y205bmNtRnRZWElnY0dGeVlTQmxiQ0IyYVdWeWJtVnpJREV3SUdSbGMzQjF3Nmx6SUdSbElHeGhjeUF4TnlCNUlETXdJR2h2Y21GekxpQXBJQ0FwSUNBcElqcz0=","r":3},{"t":"1637594357","n":"5491166837304","m":"Y3pveE9Ub2lRMjl1Wm1seWJXRmtieUVnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637595175","n":"5491132809890","m":"Y3pveE5Eb2lVMmtnZG05NUlDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637595765","n":"5491151533110","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637595954","n":"5491134726849","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdiRzl6SUhSMWNtNXZjeUFwSUNBcElDQXBJanM9","r":2},{"t":"1637599660","n":"5491138242695","m":"Y3pveU1Eb2lVMmtnZG05NUlHVnNJREkwSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637599666","n":"5491138242695","m":"Y3pveU1Eb2lWVzVoSUhCeVpXZDFiblJ6SUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637599670","n":"5491138242695","m":"Y3pveE9Eb2lWR1Z1WjI4Z2FXOXRZU0FwSUNBcElDQXBJanM9","r":1},{"t":"1637599681","n":"5491138242695","m":"Y3pveU9Eb2lVWFZsSUdSbFltVnl3NjFoSUdGaWIyNWhjajhnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637599723","n":"5491138242695","m":"Y3pvNU5qb2lVM1Z3ZFdWemRHRnRaVzUwWlNCdFpTQm9ZV05sSUZCaGNDQjVJR052YkhCdklHTnlaVzh1Ym04Z1pYTjBiM2tnWTI5dUlIQnNZWFJoSUhCdmNpQmxjMjhnWTI5dWMzVnNkRzhnY0c5eUlHeGhjeUJrZFdSaGN5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637600446","n":"5491164452958","m":"Y3pvME56b2lSM0poWTJsaGN5QjJiM2tnWVNCcGNpQlVaVzVuYnlCeGRXVWdZV0p2Ym1GeUlHRnNaMjgvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637605422","n":"5491146735749","m":"Y3pvek16QTZJa052Ym1acGNtMWhjaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRJQ3BGVTFSRklFVlRJRlZPSUUxRlRsTkJTa1VnUjBWT1JWSkJSRThnUVZWVVQwMUJWRWxEUVUxRlRsUkZJRkJQVWlCRlRDQlRTVk5VUlUxQkxDQk9UeUJTUlZOUVQwNUVSVklnUVNCRlUxUkZJRTVWVFVWU1R5b2dMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTQWdVRzl5SUdaaGRtOXlJQ3BEVDA1R1NWSk5RVklnYnlCRFFVNURSVXhCVWlvZ2JHRWdZWE5wYzNSbGJtTnBZU0JsYmlCbGJDQnphV2QxYVdWdWRHVWdaVzVzWVdObE9pQm9kSFJ3T2k4dlkyVnVkSEp2YldWa2FXTnZZMlZ5TG1Sa2JuTXVibVYwTDJOdmJtWnBjbTFoY2k4L2RHOXJaVzQ5UkVaRU1qZEVOa0kzUWtZNVFVUkdRalpDTXpnNU5qazVSVE16UWtSRk9ETWdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637607374","n":"5491128719338","m":"Y3pveE5Eb2lXVEF3YUdnd0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637607687","n":"5491122264763","m":"Y3pvMU1Eb2lUbVZqWlhOcGRHRnlhV0VnTWlCMGRYSnViM01nY0dGeVlTQmxiQ0J1ZFhSeWFXTnBiMjVwYzNSaElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637607702","n":"5491122264763","m":"Y3pvek1Eb2lWR1Z1WjI4Z2IySnlZU0J6YjJOcFlXd2dhVzl0WVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637608634","n":"5491156946976","m":"Y3pvME1Ub2lUbThnYldVZ1pHVnFZU0JqYjI1bWFYSnRZWElnWkdWelpHVWdiR0VnZDJWa0lDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637618871","n":"5491136439972","m":"Y3pvME9Eb2lTRzlzWVNCaWRXVnVZWE1nZEdGeVpHVnpMaUJUYVNCamIyNW1hWEp0YnlCbGJDQjBkWEp1YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637630842","n":"5491166865682","m":"Y3pvek56b2lSWE4wWVNCamIyNW1hWEp0WVdSdklIQmhjbUVnWlhObElHVERyV0VnS1NBZ0tTQWdLU0k3","r":2},{"t":"1637664153","n":"5491161182089","m":"Y3pvNU1qb2lTSFIwY0RvdkwyTmxiblJ5YjIxbFpHbGpiMk5sY2k1a1pHNXpMbTVsZEM5amIyNW1hWEp0WVhJdlAzUnZhMlZ1UFRkRE5FTXpOVEV5TXpVNFJESTBNVFJFUVVZNE9UY3hPREV3UVVGRk5EZEdJQ2tnSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637667526","n":"5491131568213","m":"Y3pveE9Eb2lZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637668146","n":"5491149160939","m":"Y3pvNE5Ub2lTRzlzWVNCaWRXVnVJR1REcldFc0lIRjFhWE5wWlhKaElHTmhiV0pwWVhJZ1pXd2dkSFZ5Ym04Z2NYVmxJSFJsYm1kdklIQmhjbUVnYUc5NUlDeHdZWEpoSUc5MGNtRWdabVZqYUdFZ0tTQWdLU0FnS1NJNw==","r":1},{"t":"1637668730","n":"5491160019520","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637671567","n":"5491162289612","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637671633","n":"5491139376335","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637671661","n":"5491121718178","m":"Y3pvM01Ub2lRblZsYm05eklHVERyV0Z6SVNCRmJDQjBkWEp1YnlCbGN5QndZWEpoSUcxcElHaHBhbUVnTGlCT1pYVnliMnh2WjhPdFlTQnBibVpoYm5ScGJDQXVJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637671668","n":"5491165966920","m":"Y3pvek1qb2lZblZsYmlCa2FXRWhjMmtnYzJrZ1lYTnBjM1JsY3NPb0lDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637671695","n":"5491121718178","m":"Y3pvMU5Eb2lVR1ZrdzYwZ1pXd2dkSFZ5Ym04Z0xpQlFZWE5sSUd4dmN5QmtZWFJ2Y3k0Z0lFVmtZV1FnZVNCa2Jta2dMaUFwSUNBcElDQXBJanM9","r":1},{"t":"1637671738","n":"5491133704840","m":"Y3pveE5EazZJbUoxWlc1dmN5QmthV0VnWTI5dVptbHliV0ZrYnlBdUxtRnNiR2tnWlhOMFlYSmxiVzl6SUM0dWJHVWdjbVZwZEdWeWJ5QW5JRzFwSUc1cHc3RnZJSFJwWlc1bElERXlJR0hEc1c4Z0xtVnVkRzlqWlhNZ2FYSmhJR0ZqYjIxd1ljT3hZV1J2SUdOdmJpQnNZU0J0WVdSeVpTQXVMbkYxWlNCMFpXNW5ZWE1nZFc0Z1luVmxiaUJrYVdFZ0xpQXBJQ0FwSUNBcElqcz0=","r":2},{"t":"1637671741","n":"5491136165472","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671769","n":"5491133704840","m":"Y3pveE9Eb2lZMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637671804","n":"5491158018524","m":"Y3pveE56b2lRMDlPUmtsU1RjT1RJQ2tnSUNrZ0lDa2lPdz09","r":1},{"t":"1637671852","n":"5491168683393","m":"Y3pveU56b2lSM0poWTJsaGN5QXNJR0Z6YVhOMGFYTERxU0FwSUNBcElDQXBJanM9","r":1},{"t":"1637671881","n":"5491162869138","m":"Y3pvM05qb2lRMjl1Wm1seWJXOGdMQ0JzYjNNZ1pHOXpJSFIxY201dmN5d2diY090YnlCQmRXSnllU0JOWVhKcGMyRWdlU0JrWlNCRGJHRjFaR2x2SUVSbGJHd25UMmRzYVc4Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637671882","n":"5491160001218","m":"Y3pvME1Ub2lSWEp5YjNJaElFNXZJSFJsYm1kdklIUjFjbTV2SUc1bGRXMXZiRzludzYxaElDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637671883","n":"5491131793658","m":"Y3pveE1Eb2ljMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671890","n":"5491136165472","m":"Y3pveE1Eb2lVMmtnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671928","n":"5491134132470","m":"Y3pveE9Ub2lRblZsYm05eklHUnBZWE1nS1NBZ0tTQWdLU0k3","r":1},{"t":"1637671922","n":"5491155010012","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637671973","n":"5491163369755","m":"Y3pvME5Ub2lRblZsYm05eklHVERyV0Z6TENCemFTNHVMaUIwWlNCamIyNW1hWEp0YnlCMGRYSnVieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637672192","n":"5491151343108","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637672223","n":"5491133214313","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637672289","n":"5491153424359","m":"Y3pvMU9Eb2lVMmtnWTI5dVptbHliVzhnY1hWbElIWnZlU0FzSUVScGIzTWdiV1ZrYVdGdWRHVWc4SitaanlCSGNtRmphV0Z6SUM0Z0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637672620","n":"5491121770904","m":"Y3pvME5qb2lTRzlzWVNCaGRtbHpieUJoYkNCd2MybGp3N05zYjJkdklIRjFaU0J1YnlCMllTQm9iM2tnS1NBZ0tTQWdLU0k3","r":1},{"t":"1637672824","n":"5491127224262","m":"Y3pvek9Eb2lVMlVnY0hWbFpHVWdjR0Z6WVhJZ2NHRnlZU0JrYVdOcFpXMWljbVUvSUNrZ0lDa2dJQ2tpT3c9PQ==","r":1},{"t":"1637672845","n":"5491126447623","m":"Y3pveE9Eb2lRMDlPUmtsU1RVRkVUeUFwSUNBcElDQXBJanM9","r":2},{"t":"1637672891","n":"5491164224320","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637672955","n":"5491121718178","m":"Y3pvME9Ub2lRMjl1Wm1seWJXOGdkSFZ5Ym04Z2NHRnlZU0JsYkNBeU5TQXZNVEVnWVNCc1lYTWdNVFF1TXpBZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637672988","n":"5491131081224","m":"Y3pveE56b2lRMjl1Wm1seWJXRnlJQ2tnSUNrZ0lDa2lPdz09","r":2},{"t":"1637673027","n":"5491126359050","m":"Y3pveE5EWTZJbE5wSUdGb2FTQnNieUJqYjI1bWFYSnRieXdnYkc4Z2NYVmxJRzFsSUd4c1lXMWhJR3hoSUdGMFpXNWphVzl1SUdWeklIRjFaU0JrYVdkaElHOWtiMjUwYjNCbFpHbGhkSEpwWVN3Z2FHRjVJR0ZzWjNWdUlIQnliMkpzWlcxaElHTnZiaUJsYzI4L0lHVnlZU0J2Wkc5dWRHOXNiMmRwWVNCamIyMTFiaUJ3WVhKaElHRmtkV3gwYnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637673121","n":"5491154094740","m":"Y3pveU5Ub2lRMjl1Wm1seWJXOGdaV3dnZEhWeWJtOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637673252","n":"5491163725714","m":"Y3pveE1qb2lTRzlzWVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637673266","n":"5491163725714","m":"Y3pveU56b2lRMjl1Wm1seWJXOGdZWE5wYzNSbGJtTnBZU0FwSUNBcElDQXBJanM9","r":2},{"t":"1637673279","n":"5491163725714","m":"Y3pvek16b2lUbThnYldVZ1pHVnFZU0JsYm5SeVlYSWdZV3dnYkdsdWF5QXBJQ0FwSUNBcElqcz0=","r":1},{"t":"1637674092","n":"5491137704519","m":"Y3pvek1qb2lUV1VnY0c5a1pYTWdiV0Z1WkdGeUlHOTBjbUVnZG1WeklDa2dJQ2tnSUNraU93PT0=","r":1},{"t":"1637674219","n":"5491122732290","m":"Y3pveE5qb2lRMjl1Wm1seWJXOGdLU0FnS1NBZ0tTSTc=","r":2},{"t":"1637674556","n":"5491131151148","m":"Y3pvME1Ub2lRblZsYm05eklHVERyV0Z6SVNCRGIyNW1hWEp0YnlCaGMybHpkR1Z1WTJsaElDa2dJQ2tnSUNraU93PT0=","r":2},{"t":"1637675454","n":"5491166750772","m":"Y3pvMU5qb2lTRzlzWVNCc2IzTWdaRzl6SUhSMWNtNXZjeUJqYjI1bWFYSnRZV1J2Y3lCUmRXbHliM29nUm5KaGJtTm9hVzVwSUNrZ0lDa2dJQ2tpT3c9PQ==","r":2},{"t":"1637675849","n":"5491169097228","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637676076","n":"5491133394314","m":"Y3pveU1Ub2lXME5oYkd3Z0xTQnRhWE56WFNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637677773","n":"5491169014561","m":"Y3pveU1Ub2lTRzlzWVNCamIyNW1hWEp0YnlBcElDQXBJQ0FwSWpzPQ==","r":2},{"t":"1637677871","n":"5491164876253","m":"Y3pveE9Eb2lRMjl1Wm1seWJXRmtieUFwSUNBcElDQXBJanM9","r":2},{"t":"1637680805","n":"5491153139812","m":"Y3pveU1Ub2lRblZsYm05eklHVERyV0Z6SVNBcElDQXBJQ0FwSWpzPQ==","r":1},{"t":"1637683499","n":"5491134727159","m":"Y3pvNE5Ub2lRblZsYmlCa3c2MWhJU0VoSVNCRGIyNW1hWEp0YnlCc2IzTWdkSFZ5Ym05eklHOW1kR0ZzYlc5c3c3Tm5hV05oTENCNUlFUmxjbTFoZEc5c2IyZHBZU3dnWjNKaFkybGhjeUVoSVNFZ0tTQWdLU0FnS1NJNw==","r":2},{"t":"1637698050","n":"5491138554852","m":"Y3pveU56b2lSR2x6WTNWc2NHVnVJU0JEWVc1alpXeHZJU0FwSUNBcElDQXBJanM9","r":3},{"t":"1637704050","n":"5491160422796","m":"Y3pveU5Ub2lTRzlzWVN4MWJtRWdZMjl1YzNWc2RHRWdLU0FnS1NBZ0tTSTc=","r":1}],"total":569}'; //$respuesta = json_decode($resultado ,true); print_r($respuesta);die; //$res = saveWhatsappReponses($respuesta); /*if(isset($GLOBALS['LOG_EMAILS'])) { //Log $fichero = './logs_response/whatsapp_response_process'.(date('dmY_His')).'.txt'; $actual = "RESULTADO "."\n"; $actual.= print_r($resultado,true)."\n"; $actual.= "RESULTADO GRABAR"."\n"; $actual.= "[".($res?'OK':'ERROR')."]"."\n"; file_put_contents($fichero, $actual); }*/ return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service."; if(isset($GLOBALS['LOG_EMAILS'])&&$GLOBALS['LOG_EMAILS']) { //Log $fichero = './logs_response/whatsapp_response_process'.(date('dmY_His')).'.txt'; $actual = print_r($e->__toString(),true)."\n"; file_put_contents($fichero, $actual); } return false; } } // -------------- function cleanPantallasNoche() { $sql1 = "UPDATE turnos SET tur_llam_procesado = GETDATE()"; $sql2 = "TRUNCATE TABLE llamador_turno"; $sql3 = "TRUNCATE TABLE llamador_pool"; $rs1 = $GLOBALS['dbSQL']->Query($sql1); $rs2 = $GLOBALS['dbSQL']->Query($sql2); $rs3 = $GLOBALS['dbSQL']->Query($sql3); return ($rs1&&$rs2&&$rs3); } function sendEmailsManual(&$resultInfo) { if( isset($_REQUEST["k"]) && !empty($_REQUEST["k"]) && !is_null($_REQUEST["k"]) && isset($_REQUEST["lsttur"]) && !empty($_REQUEST["lsttur"]) && !is_null($_REQUEST["lsttur"]) && isset($_REQUEST["t"]) && !empty($_REQUEST["t"]) && !is_null($_REQUEST["t"]) && is_numeric($_REQUEST["t"]) ) { if($_REQUEST["k"]===CLAVE_EMAIL_MANUAL) { $tipo = intval($_REQUEST["t"]); switch($tipo) { //Confirmaicion de Alta de Turno case 1: { //$tipo = TYPE_EMAIL_CT; } break; //Confirmaicion de Cancelacion de Turno case 2: { //$tipo = TYPE_EMAIL_CCT; } break; } // c.cli_email $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 ,(CASE WHEN c.cli_email IS NULL THEN '' ELSE c.cli_email END) as email ,c.cli_nombre ,m.med_nombre ,o.obs_denom ,'' ,0 ,NULL ,'".$tipo."' ,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($_REQUEST["lsttur"]).")"; //die($sql); $rs = $GLOBALS['dbSQL']->Query($sql); //$rs = false; if ( !$rs ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Error de BD"; } else { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = true; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Acceso no permitido"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } } // -------------------------------------------- // FAMILIAR // -------------------------------------------- function getValidarDNIFamiliar($dni,&$clienteInfo=false) { $sql = "SELECT TOP 1 c.cli_dni AS DNI , cli_codigo , c.cli_nombre AS PACIENTE , o.obs_denom AS OBRA_SOCIAL , p.obsp_denom AS PLAN_ , o.obs_codigo AS ID_OBRA_SOCIAL , c.obsp_cod , c.cli_email AS EMAIL , c.cli_fecnto AS FacN , c.cli_sexo AS Sexo , c.cli_tel AS Telefono , c.cli_carnet AS carnet , o.obs_lock ,cli_bloqueado , (CASE WHEN o.obs_telemed IS NULL THEN 0 ELSE 1 END) AS ObsTelemed FROM clientes AS c , obrasoc AS o , obsplan AS p WHERE c.cli_dni = '".$dni."' AND c.obs_codigo = o.obs_codigo AND p.obs_codigo = o.obs_codigo AND p.obsp_cod = c.obsp_cod ORDER BY cli_registracion"; //die($sql); debug($sql); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $result = $GLOBALS['dbSQL']->getAll(); if( count($result)>0 ) { $clienteInfo = $result; } return true; } return false; } function validarDNIFamiliar(&$resultInfo) { if( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && trim($_REQUEST["dni"])!="" && is_numeric($_REQUEST["dni"]) ) { $dni = $_REQUEST["dni"]; $clienteInfo = false; $resultado = getValidarDNIFamiliar($dni, $clienteInfo); if( $resultado ) { if( $clienteInfo && count($clienteInfo)>0 ) { if( intval($clienteInfo[0]["cli_bloqueado"])===0 ) { $resultInfo['code'] = 0; $resultInfo['data'] = $clienteInfo; } else { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "El Paciente esta bloquedado. Consulte con la administración."; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "El Documento no esta registrado"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Error en la aplicación"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros incompletos"; } } // -------------------------------------------- // END FAMILIAR // -------------------------------------------- // -------------------------------------------- // COMUNICACION // -------------------------------------------- function getComTurnoToken($idTurno,$dataTurno) { $token = md5($idTurno.date('YmdHis')); return $token; } function getComTurnoByToken($token) { $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_token = '".addslashes($token)."'"; //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_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),'') 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),'') 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; } } //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) { setAprossInfo($resultado,$flagAprossTipo,$total); } 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(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 ,oi.nom_codigo 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 = oi.nom_codigo 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"]==13){print_r($sql);die;} $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $turnos[$i]["prlst_p"] = $GLOBALS['dbSQL']->getAll(); } //-------------------------------------------------------- //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; 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"; } } function enviarWhatsappTurnosMasivo($lstTurnos, $emailTipo,$motivoComentario='',&$errorPoint=false,$usuario) { try { $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 ,usu_codigo ) SELECT getdate() ,tur_numero ,tur_fecha ,tur_hora ,ltrim(rtrim(cli_email)) ,cli_tel ,cli_nombre ,esp_denom ,med_nombre ,obs_denom ,' ' ,0 ,'".$emailTipo."' ,tur_token ,'".$usuario."' 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['dbSQL']->Query($sql,true); //$rs = true; if( !$rs ) { $errorPoint = 'Error al enviar los mensajes de Whatsapp'; 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 enviarWhatsappTurno(&$resultInfo) { if( isset($_REQUEST["emailtype"]) && !empty($_REQUEST["emailtype"]) && !is_null($_REQUEST["emailtype"]) && isset($_REQUEST["lsttur"]) && !empty($_REQUEST["lsttur"]) && !is_null($_REQUEST["lsttur"]) && 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) { 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 mensaje desconocido"; $continue = false; } break; } if( $continue ) { $errorPoint = false; $lstTurnos = $_REQUEST["lsttur"]; $motivoComentario = (isset($_REQUEST["cmt"])?$_REQUEST["cmt"]:''); $resultado = enviarWhatsappTurnosMasivo($lstTurnos, $emailTipo, $motivoComentario,$errorPoint,$userId); if ( !$resultado ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = $errorPoint; } else { $resultInfo['code'] = 0; $resultInfo['data'] = true; } } } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } } function getTurnoWhatsappRecordatorio($turInfo) { $sql = "SELECT (CASE WHEN men_flag_nro_error IS NULL THEN 0 ELSE men_flag_nro_error END) AS nroerror FROM dbo.mensajes_whatsapp_send WHERE tur_token = '" . $turInfo["token"] ."'"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $mensajes = $GLOBALS['dbSQL']->getAll(); $total = count($mensajes); if( $total > 0 ) { return array(0=>1,1=>intval($mensajes[0]["nroerror"])); } else { return array(0=>0,1=>0); } } return array(0=>0,1=>false); } function getTurnoWhatsappResponse($turInfo,$flagFechaTurno=false) { // Buscar por numero de telefono una aproximacion por fecha $fechaFiltro = " AND LEFT(CONVERT(VARCHAR,men_fecha, 120), 10) >= '".$turInfo["Fechaorg"]."'"; if(!$flagFechaTurno){ $fechaFiltro ='';} $sql = "SELECT TOP 1 (CASE WHEN TT.men_fecha IS NULL THEN '' ELSE men_fecha END) AS men_fecha ,(CASE WHEN TT.men_mensaje IS NULL THEN '' ELSE men_mensaje END) AS men_mensaje ,(CASE WHEN TT.men_respuesta IS NULL THEN '' ELSE men_respuesta END) AS men_respuesta FROM( SELECT men_time,CONVERT(VARCHAR(10),men_fecha,103) AS men_fecha,men_numero,men_numero_original,men_mensaje,men_respuesta FROM dbo.mensajes_whatsapp_send_response WHERE men_numero_original = '" . str_replace(" ","",trim($turInfo["TelW"])) ."' AND LEFT(CONVERT(VARCHAR,men_fecha, 120), 10) >= '".$turInfo["Fechaorg"]."' UNION SELECT men_time,CONVERT(VARCHAR(10),men_fecha,103) AS men_fecha,men_numero,men_numero_original,men_mensaje,men_respuesta FROM dbo.mensajes_whatsapp_send_response WHERE men_numero_original = '" . str_replace(" ","",trim($turInfo["telefono"])) ."' AND LEFT(CONVERT(VARCHAR,men_fecha, 120), 10) >= '".$turInfo["Fechaorg"]."') AS TT ORDER BY TT.men_time DESC"; $sql = "SELECT TOP 1 (CASE WHEN TT.men_fecha IS NULL THEN '' ELSE men_fecha END) AS men_fecha ,(CASE WHEN TT.men_mensaje IS NULL THEN '' ELSE men_mensaje END) AS men_mensaje ,(CASE WHEN TT.men_respuesta IS NULL THEN '' ELSE men_respuesta END) AS men_respuesta FROM( SELECT men_time,CONVERT(VARCHAR(10),men_fecha,103) AS men_fecha,men_numero,men_numero_original,men_mensaje,men_respuesta FROM dbo.mensajes_whatsapp_send_response WHERE men_numero_original = '" . str_replace(" ","",trim($turInfo["TelW"])) ."'" .$fechaFiltro." UNION SELECT men_time,CONVERT(VARCHAR(10),men_fecha,103) AS men_fecha,men_numero,men_numero_original,men_mensaje,men_respuesta FROM dbo.mensajes_whatsapp_send_response WHERE men_numero_original = '" . str_replace(" ","",trim($turInfo["telefono"])) ."'" .$fechaFiltro." ) AS TT ORDER BY TT.men_time DESC"; //if($turInfo["telefono"]==1149371703){print_r($sql);die;} $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $mensajes = $GLOBALS['dbSQL']->getAll(); $total = count($mensajes); if( $total > 0 ) { $item = array( 0=> (!is_null($mensajes[0]["men_fecha"])&&($mensajes[0]["men_fecha"]!='null')?$mensajes[0]["men_fecha"]:'') ,1=> (!is_null($mensajes[0]["men_mensaje"])&&($mensajes[0]["men_mensaje"]!='null')?decodeDataB64($mensajes[0]["men_mensaje"]):'') ,2=> (!is_null($mensajes[0]["men_respuesta"])&&($mensajes[0]["men_respuesta"]!='null')?$mensajes[0]["men_respuesta"]:'') ); return $item; } } return false; } function getListadoWhatsappRespuestasPaciente($idPaciente,$rango) { $continue = false; $vacio = array(); $telefono1 = ''; $telefono2 = ''; // Buscar por numero de telefono $sql = "SELECT cli_tel AS telefono ,CONCAT(cli_tel_cod_area,cli_tel_numero) AS TelW FROM clientes WHERE cli_codigo = '".addslashes($idPaciente)."'"; //print_r($sql);die; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $pacienteInfo = $GLOBALS['dbSQL']->getAll(); $total = count($pacienteInfo); if( $total <= 0 ) { $continue = false; } else { $telefono1 = $pacienteInfo[0]["telefono"]; $telefono2 = $pacienteInfo[0]["TelW"]; $continue = true; } } if( $continue ) { $sql = "SELECT (CASE WHEN TT.men_fecha IS NULL THEN '' ELSE men_fecha END) AS men_fecha ,(CASE WHEN TT.men_hora IS NULL THEN '' ELSE men_hora END) AS men_hora ,(CASE WHEN TT.men_mensaje IS NULL THEN '' ELSE men_mensaje END) AS men_mensaje ,(CASE WHEN ( LEFT(CONVERT(VARCHAR,TT.men_fecha, 120), 10) BETWEEN LEFT(CONVERT(VARCHAR,'".$rango[0]."', 120), 10) AND LEFT(CONVERT(VARCHAR,'".$rango[1]."', 120), 10) ) THEN 1 ELSE 0 END) AS flagWhtPosible FROM( SELECT men_time,CONVERT(VARCHAR(20),men_fecha,103) AS men_fecha,CONVERT(VARCHAR(20),men_fecha,108) AS men_hora,men_numero,men_numero_original,men_mensaje,men_respuesta FROM dbo.mensajes_whatsapp_send_response WHERE men_numero_original = '" . str_replace(" ","",trim($telefono1)) ."' UNION SELECT men_time,CONVERT(VARCHAR(20),men_fecha,103) AS men_fecha,CONVERT(VARCHAR(20),men_fecha,108) AS men_hora,men_numero,men_numero_original,men_mensaje,men_respuesta FROM dbo.mensajes_whatsapp_send_response WHERE men_numero_original = '" . str_replace(" ","",trim($telefono2)) ."' ) AS TT ORDER BY TT.men_time ASC"; //print_r($sql);die; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { $mensajes = $GLOBALS['dbSQL']->getAll(); $total = count($mensajes); if( $total > 0 ) { for($i=0;$i<$total;$i++) { $mensajes[$i]["men_mensaje"] = trim(str_replace(")","",decodeDataB64($mensajes[$i]["men_mensaje"]))); } return $mensajes; } } } return $vacio; } // -------------------------------------------- // END COMUNICACION // -------------------------------------------- // -------------------------------------------- // SERVIDOR DE EMAILS // -------------------------------------------- // Cargar los servidores SMTP desde la BD function getEmailServers(&$resultInfo) { $server = new emailServer($GLOBALS['dbSQL']); $resultado = $server->loadServidoresEmail(); //print_r($resultado);print_r("\n"); if( $resultado ) { //Listado de Servidores de email disponibles $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"servidores" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de servidores"; } } // Actualizar el estado de los servidores en la BD function updateEmailServer(&$resultInfo) { if( isset($_REQUEST["serlst"]) && !empty($_REQUEST["serlst"]) && !is_null($_REQUEST["serlst"]) ) { $server = new emailServer($GLOBALS['dbSQL']); $fecha = date("Y-m-d"); if( isset($_REQUEST["fecha"]) && !empty($_REQUEST["fecha"]) && !is_null($_REQUEST["fecha"]) ) { $fecha = $_REQUEST["fecha"]; } $servidores = json_decode($_REQUEST["serlst"],true); //print_r($servidores);print_r("\n");die; $resultado = $server->updateServidorEstadisticaContador($servidores,$fecha); //print_r($resultado);print_r("\n"); if( $resultado ) { //Listado de Servidores de email disponibles $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"servidores" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al actualizar el servidor"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } } //Listar los servidores disponibles en SEM function getSMTPEmailServer($totalEmailsToSend) { $server = new emailServer($GLOBALS['dbSQL']); $resultado = $server->getSMTPServer($totalEmailsToSend); //print_r($resultado);print_r("\n"); if( $resultado ) { return $resultado; } return false; } //Obtener un Servidor de SMTP disponible para el envio de un email function setEmailServer(&$emailInfo,&$servidores,$total) { for($i=0;$i<$total;$i++) { $umbralTmp = intval($servidores["result"][$i]["umbraltmp"]); $envio = intval($servidores["result"][$i]["envio"]); if( $umbralTmp <= $envio ) { $emailInfo["data"]["smtp"]=array( "user"=>$servidores["result"][$i]["serem_usuario"] ,"pass"=>$servidores["result"][$i]["serem_clave"] ,"smtp"=>$servidores["result"][$i]["serem_smtp"] ,"port"=>$servidores["result"][$i]["serem_puerto"] ); $servidores["result"][$i]["umbraltmp"] = $umbralTmp+1; return true; } } $emailInfo["data"]["smtp"] = false; return false; } //Obtener un Servidor de SMTP disponible para el envio de un email function setEmailMensajeServer(&$emailInfo,&$servidores,$total) { for($i=0;$i<$total;$i++) { $umbralTmp = intval($servidores["result"][$i]["umbraltmp"]); $envio = intval($servidores["result"][$i]["envio"]); if( $umbralTmp <= $envio ) { $emailInfo["smtp"]=array( "user"=>$servidores["result"][$i]["serem_usuario"] ,"pass"=>$servidores["result"][$i]["serem_clave"] ,"smtp"=>$servidores["result"][$i]["serem_smtp"] ,"port"=>$servidores["result"][$i]["serem_puerto"] ); $servidores["result"][$i]["umbraltmp"] = $umbralTmp+1; return true; } } $emailInfo["smtp"] = false; return false; } function callWebServiceSendingBlueAccess(&$resinfo=false) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['WS_BROKER_EMAIL_ACCESS']; $params = array("customer" => $GLOBALS['WS_WHATSAPP_CUSTOMER']); ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->getEmailAccess($params); $success = json_decode($resultado ,true); $resinfo = $success; // print_r("-----SB KEY----");print_r("\n"); // print_r($resultado);print_r("\n"); // print_r($resinfo); // print_r("-----*************----");print_r("\n"); return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS echo "Error al consultar el web service"; return false; } } function callWebServiceSendEmail($params,&$resinfo=false) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['WS_BROKER_EMAIL']; ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->sendEmail($params); $resinfo = json_decode($resultado ,true); // print_r("-----SB KEY----");print_r("\n"); // print_r($resultado);print_r("\n"); // print_r($resinfo); // print_r("-----*************----");print_r("\n"); return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS print_r("Error al consultar el web service");print_r("\n"); print_r($e->__toString());print_r("\n"); return false; } } function callWebServiceSendEmailAlerta($params,&$resinfo=false) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { // print_r("----------------");print_r("\n"); // print_r($params); // print_r("----------------");print_r("\n"); // die(" <<<<<"); $url = $GLOBALS['WS_BROKER_EMAIL']; ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->sendEmailAlerta($params); $resinfo = json_decode($resultado ,true); // print_r("-----SB KEY----");print_r("\n"); // print_r($resultado);print_r("\n"); // print_r($resinfo); // print_r("-----*************----");print_r("\n"); return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS print_r("Error al consultar el web service");print_r("\n"); print_r($e->__toString());print_r("\n"); return false; } } function callWebServiceSendEmailRegular($params,&$resinfo=false) { //------------------------------------------------------------------------------ //Invocar al WebService //------------------------------------------------------------------------------ try { $url = $GLOBALS['WS_BROKER_EMAIL']; ini_set("default_socket_timeout", 8000); $soapClient = new SoapClient(null, array('location' => $url,'uri' => 'urn:webservices', )); $resultado = $soapClient->testEmail($params); $resinfo = json_decode($resultado ,true); // print_r("-----SB KEY----");print_r("\n"); // print_r($resultado);print_r("\n"); // print_r($resinfo); // print_r("-----*************----");print_r("\n"); return true; //------------------------------------------------------------------------------ } catch ( Exception $e ) { //Error al consultar el WS print_r("Error al consultar el web service");print_r("\n"); print_r($e->__toString());print_r("\n"); return false; } } // -------------------------------------------- // END SERVIDOR DE EMAILS // -------------------------------------------- // -------------------------------------------- // DESVIOS // -------------------------------------------- function getDesvioTBL_Origen() { $sql = "SELECT tdo_codigo AS cod ,tdo_denom AS nombre FROM tbl_desvio_origen ORDER BY tdo_denom"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return false;} return $rs; } function getDesvioOrigenLst(&$resultInfo,$flagName=true) { $resultado = getDesvioTBL_Origen(); if( $resultado ) { //Listar Origen de los desvíos $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listOrigen" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de Origenes"; } } function getDesvioTBL_Tipo() { $sql = "SELECT tdt_codigo AS cod ,tdt_denom AS nombre FROM tbl_desvio_tipo ORDER BY tdt_denom"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return false;} return $rs; } function getDesvioTipoLst(&$resultInfo,$flagName=true) { $resultado = getDesvioTBL_Tipo(); if( $resultado ) { //Listar Origen de los desvíos $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listTipo" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de Tipos de Desvio"; } } function getDesvioTBL_Procesos() { $sql = "SELECT tdp_codigo AS cod ,tdp_denom AS nombre FROM tbl_desvio_proceso ORDER BY tdp_denom"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return false;} return $rs; } function getDesvioProcesosLst(&$resultInfo,$flagName=true) { $resultado = getDesvioTBL_Tipo(); if( $resultado ) { //Listar Origen de los desvíos $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listTipo" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar el listado de Tipos de Desvio"; } } function getDesvios($parametros) { $orderBy = " desev_fecha_registracion DESC "; $filters = ''; if( isset($parametros["fl_activos"])&&$parametros["fl_activos"] ) { //filtrar registros que no estan cerrados $filters = ' desev_estado = 0'; } if( isset($parametros["emp"])&&$parametros["emp"] ) { //Filtrar registros de un empleado $sep=" AND "; if($filters==''){$sep=" ";} $filters.= $sep . " usu_codigo_registra = '" .addslashes($parametros["emp"]) ."'"; } //-------------------------------------------------- //ES CONSULTA DE NOTIFICACIONES NO LEIDAS //-------------------------------------------------- $flagSSE = false; $timeago_fields = ""; if( isset($parametros["sse"])&&$parametros["sse"] ) { $filters = " desev_flag_notificacion = 1"; $flagSSE = true; $timeago_fields = ",DATEDIFF(SECOND,desev_fecha_registracion, GETDATE()) AS timeago"; // $timeago_fields = ",TIMESTAMPDIFF(DAY,'time', desev_fecha_registracion) as tm_d,"; // $timeago_fields.= ",TIMESTAMPDIFF(HOUR, TIMESTAMPADD(DAY, TIMESTAMPDIFF(DAY, 'time', desev_fecha_registracion), 'time'), desev_fecha_registracion) as tm_h"; // $timeago_fields.= ",TIMESTAMPDIFF(MINUTE, TIMESTAMPADD(HOUR, TIMESTAMPDIFF(HOUR, 'time', desev_fecha_registracion), 'time'), desev_fecha_registracion) as tm_m"; // $timeago_fields.= ",TIMESTAMPDIFF(SECOND, TIMESTAMPADD(MINUTE, TIMESTAMPDIFF(MINUTE, 'time', desev_fecha_registracion), 'time'), desev_fecha_registracion) as tm_s"; } //-------------------------------------------------- // ,(CASE WHEN desev_estado = 1 THEN 'CERRADO' // WHEN desev_estado = 2 THEN 'PENDIENTE' // ELSE 'RECIBIDO' END) as st_f $sql = "SELECT desev_numero as cod ,desev_fecha_registracion ,desev_fecha_recepcion ,desev_fecha_cierre ,CONVERT(VARCHAR(10), desev_fecha_registracion, 103) + ' ' + convert(VARCHAR(8), desev_fecha_registracion, 14) as f_reg ,CONVERT(VARCHAR(10), desev_fecha_recepcion, 103) + ' ' + convert(VARCHAR(8), desev_fecha_recepcion, 14) as f_recep ,CONVERT(VARCHAR(10), desev_fecha_cierre, 103) + ' ' + convert(VARCHAR(8), desev_fecha_cierre, 14) as f_cierre ,usu_codigo_registra ,usu_codigo_recepcion ,usu_codigo_cierre ,(SELECT emp_nombre FROM empleado as ereg WHERE ereg.emp_codigo = dv.usu_codigo_registra) as usu_reg ,(SELECT emp_nombre FROM empleado as erec WHERE erec.emp_codigo = dv.usu_codigo_recepcion) as usu_rec ,(SELECT emp_nombre FROM empleado as erci WHERE erci.emp_codigo = dv.usu_codigo_cierre) as usu_cierre ,desev_email ,desev_nombre ,dv.tdo_codigo ,dv.tdt_codigo ,dv.tdp_codigo ,do.tdo_denom as origen ,dt.tdt_denom as tipo ,(CASE WHEN dp.tdp_denom IS NULL THEN '' ELSE dp.tdp_denom END) as proceso ,desev_comentario ,SUBSTRING(desev_comentario,1,30) as comentario_min ,desev_estado as st ,dest.dvest_abreviatura as st_f ,desev_flag_correcion ,0 as itemselected ".$timeago_fields." ,(SELECT (CASE WHEN dvest_inicial=1 THEN 1 WHEN dvest_final=1 THEN 2 ELSE 0 END) FROM desvio_estados AS est WHERE est.dvest_numero = dv.desev_estado ) tpest ,(SELECT (CASE WHEN dvest_visado=1 THEN 1 ELSE 0 END) FROM desvio_estados AS estv WHERE estv.dvest_numero = dv.desev_estado ) visado ,(CASE WHEN (SELECT COUNT(*) FROM desvio_destinatarios as dd WHERE dd.desev_numero=dv.desev_numero ) IS NULL THEN 0 ELSE (SELECT COUNT(*) FROM desvio_destinatarios as dd WHERE dd.desev_numero=dv.desev_numero ) END) as flagDestinatarios FROM desvio_evento AS dv INNER JOIN tbl_desvio_origen AS do ON do.tdo_codigo = dv.tdo_codigo INNER JOIN tbl_desvio_tipo AS dt ON dt.tdt_codigo = dv.tdt_codigo LEFT JOIN tbl_desvio_proceso AS dp ON dp.tdp_codigo = dv.tdp_codigo INNER JOIN desvio_estados AS dest ON dest.dvest_numero = dv.desev_estado ".($filters!=''?" WHERE ".$filters:'')." ORDER BY ".$orderBy; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} //------------------------------------------ //Agregar los destinatarios //------------------------------------------ for($i=0;$i0) { $rs[$i]["destinatarios"] = getDesvioDestinatariosSel($rs[$i]["cod"]); } } //------------------------------------------ //Cambiar estado de desvios ya notificados //------------------------------------------ if( $flagSSE ) { $lstId= ''; for($i=0;$ivisarNotificacionDesvio($lstId); } //------------------------------------------ return $rs; } function getDesviosLst(&$resultInfo,$flagName=true) { if( isset($_REQUEST["filters"]) && !empty($_REQUEST["filters"]) && !is_null($_REQUEST["filters"]) ) { $params = json_decode($_REQUEST["filters"],true); //print_r( $params );die(" <<<<<<< "); $params = array( "emp" => (isset($params["emp"])?$params["emp"]:false) ,"fl_activos" => (isset($params["fl_activos"])?true:false) ); } else { /*$params = array( "fl_activos" => true );*/ $params = array(); } $resultado = getDesvios($params); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listDesvios" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los desvios"; } } function getDesviosAsignados($parametros) { $orderBy = " desev_fecha_registracion DESC "; $timeago_fields = ",DATEDIFF(SECOND,desev_fecha_registracion, GETDATE()) AS timeago"; //AND desev_estado = 0 $sql = "SELECT desev_numero as cod ,desev_fecha_registracion ,desev_fecha_recepcion ,desev_fecha_cierre ,CONVERT(VARCHAR(10), desev_fecha_registracion, 103) + ' ' + convert(VARCHAR(8), desev_fecha_registracion, 14) as f_reg ,CONVERT(VARCHAR(10), desev_fecha_recepcion, 103) + ' ' + convert(VARCHAR(8), desev_fecha_recepcion, 14) as f_recep ,CONVERT(VARCHAR(10), desev_fecha_cierre, 103) + ' ' + convert(VARCHAR(8), desev_fecha_cierre, 14) as f_cierre ,usu_codigo_registra ,usu_codigo_recepcion ,usu_codigo_cierre ,(SELECT emp_nombre FROM empleado as ereg WHERE ereg.emp_codigo = dv.usu_codigo_registra) as usu_reg ,(SELECT emp_nombre FROM empleado as erec WHERE erec.emp_codigo = dv.usu_codigo_recepcion) as usu_rec ,(SELECT emp_nombre FROM empleado as erci WHERE erci.emp_codigo = dv.usu_codigo_cierre) as usu_cierre ,desev_email ,desev_nombre ,dv.tdo_codigo ,dv.tdt_codigo ,dv.tdp_codigo ,do.tdo_denom as origen ,dt.tdt_denom as tipo ,(CASE WHEN dp.tdp_denom IS NULL THEN '' ELSE dp.tdp_denom END) as proceso ,desev_comentario ,SUBSTRING(desev_comentario,1,30) as comentario_min ,desev_estado as st ,dest.dvest_abreviatura as st_f ,desev_flag_correcion ,0 as itemselected ".$timeago_fields." ,(SELECT (CASE WHEN dvest_inicial=1 THEN 1 WHEN dvest_final=1 THEN 2 ELSE 0 END) FROM desvio_estados AS est WHERE est.dvest_numero = dv.desev_estado ) tpest ,(SELECT (CASE WHEN dvest_visado=1 THEN 1 ELSE 0 END) FROM desvio_estados AS estv WHERE estv.dvest_numero = dv.desev_estado ) visado ,(CASE WHEN (SELECT COUNT(*) FROM desvio_destinatarios as dd WHERE dd.desev_numero=dv.desev_numero ) IS NULL THEN 0 ELSE (SELECT COUNT(*) FROM desvio_destinatarios as dd WHERE dd.desev_numero=dv.desev_numero ) END) as flagDestinatarios FROM desvio_evento AS dv INNER JOIN tbl_desvio_origen AS do ON do.tdo_codigo = dv.tdo_codigo INNER JOIN tbl_desvio_tipo AS dt ON dt.tdt_codigo = dv.tdt_codigo LEFT JOIN tbl_desvio_proceso AS dp ON dp.tdp_codigo = dv.tdp_codigo INNER JOIN desvio_estados AS dest ON dest.dvest_numero = dv.desev_estado WHERE EXISTS (SELECT 1 FROM desvio_destinatarios WHERE usu_codigo = '".addslashes($parametros["emp"])."' ) ORDER BY ".$orderBy; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} //------------------------------------------ //Agregar los destinatarios //------------------------------------------ for($i=0;$i0) { $rs[$i]["destinatarios"] = getDesvioDestinatariosSel($rs[$i]["cod"]); } $rs[$i]["time_ago"] = fnTimeago($rs[$i]["timeago"]); } return $rs; } function getDesviosAsignadosLst(&$resultInfo,$flagName=true) { if( isset($_REQUEST["filters"]) && !empty($_REQUEST["filters"]) && !is_null($_REQUEST["filters"]) ) { $params = json_decode($_REQUEST["filters"],true); //print_r( $params );die(" <<<<<<< "); $params = array( "emp" => (isset($params["emp"])?$params["emp"]:false) ); $resultado = getDesviosAsignados($params); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listDesvios" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los desvios"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes"; } } function getListDesvProcesos() { $sql = "SELECT tdp_codigo as cod, tdp_denom as name FROM dbo.[tbl_desvio_proceso] "; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)===0){return true;} return $rs; } function getDesviosProcesosLst(&$resultInfo) { $resultado = getListDesvProcesos(); if( $resultado ) { //Listar Desvios - Procesos $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listDesProc" => $resultado ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los procesos"; } } function getDesvioEventosLst($id) { $sql = "SELECT desevcm_numero as cod ,desev_numero as descod ,CONVERT(VARCHAR(10), desevcm_fecha, 103) + ' ' + convert(VARCHAR(8), desevcm_fecha, 14) as f_reg ,usu_codigo ,(SELECT emp_nombre FROM empleado as ereg WHERE ereg.emp_codigo = dv.usu_codigo) as usu_reg ,desevcm_comentario as comentario ,dvest_numero_anterior as estantcod ,dest.dvest_abreviatura as estanterior FROM desvio_estado_comentarios AS dv INNER JOIN desvio_estados AS dest ON dest.dvest_numero = dv.dvest_numero_anterior WHERE desev_numero = '".$id."' ORDER BY desevcm_fecha desc"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} return $rs; } function getDesvioEventos(&$resultInfo) { if( isset($_REQUEST["id"]) && !empty($_REQUEST["id"]) && !is_null($_REQUEST["id"]) ) { $resultado = getDesvioEventosLst($_REQUEST["id"]); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listeventos" => $resultado ); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL ACTUALIZAR EL ESTADO DEL DESVIO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function getDesvioDestinatariosLst($id) { $sql = "SELECT desdes_numero as cod ,desev_numero as descod ,dv.usu_codigo as usercod ,(SELECT emp_nombre FROM empleado as ereg WHERE ereg.emp_codigo = dv.usu_codigo) as usu_reg ,(SELECT COUNT(*) FROM desvio_destinatario_evento AS dev WHERE dev.usu_codigo = dv.usu_codigo) as res ,CONVERT(VARCHAR(10), desdes_fecha_asignacion, 103) + ' ' + convert(VARCHAR(8), desdes_fecha_asignacion, 14) as f_asig FROM desvio_destinatarios AS dv WHERE desev_numero = '".$id."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)===0){return true;} return $rs; } function getDesvioDestinatarios(&$resultInfo) { if( isset($_REQUEST["id"]) && !empty($_REQUEST["id"]) && !is_null($_REQUEST["id"]) ) { $resultado = getDesvioDestinatariosLst($_REQUEST["id"]); if( $resultado ) { //Listar Obras Sociales $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => count($resultado) ,"listdestinatarios" => $resultado ); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL ACTUALIZAR EL ESTADO DEL DESVIO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function registrarDesvio($usuario,$tipo,$origen,$comentario,&$nroRef=0) { $continue = true; /* //Validar si ya existe un registro para este estudio sin resolver $continue = true; $queryMs = "SELECT COUNT(*) as total FROM estudios_reclamos WHERE img_id '".addcslashes($idEstudio)."' AND estrec_resuelto = 0"; $resultado = $GLOBALS['dbSQL']->Query($queryMs); if( $resultado ) { $reclamos = $GLOBALS['dbSQL']->getAll(); $totalReclamos = count($reclamos); if($totalReclamos>=0) { if(intval($reclamos[0][""])>0) { $continue = false; return -2; } } } */ //Grabar el reclamo if( $continue ) {//die("22222222222"); // ,tdp_codigo //,'". addslashes($proceso) ."' $sql = "INSERT INTO desvio_evento ( desev_fecha_registracion ,usu_codigo_registra ,tdo_codigo ,tdt_codigo ,desev_comentario ,desev_estado ,desev_flag_correcion ) VALUES ( GETDATE() ,'". addslashes($usuario) ."' ,'". addslashes($origen) ."' ,'". addslashes($tipo) ."' ,'". addslashes($comentario) ."' ,(SELECT MAX(dvest_numero) FROM desvio_estados WHERE dvest_inicial = 1) ,0 )"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( $rs ) { $nroRef = $GLOBALS['dbSQL']->getLastId('desvio_evento','desev_numero'); if( $nroRef ) { return true; } } } return -1; } function saveDesvio(&$resultInfo) { if( isset($_REQUEST["emp"]) && !empty($_REQUEST["emp"]) && !is_null($_REQUEST["emp"]) && isset($_REQUEST["tipo"]) && !empty($_REQUEST["tipo"]) && !is_null($_REQUEST["tipo"]) && isset($_REQUEST["origen"]) && !empty($_REQUEST["origen"]) && !is_null($_REQUEST["origen"]) // isset($_REQUEST["proceso"]) && // !empty($_REQUEST["proceso"]) && // !is_null($_REQUEST["proceso"]) ) { $comentario = ""; if( isset($_REQUEST["comentario"]) && !is_null($_REQUEST["comentario"]) ) { $comentario = $_REQUEST["comentario"]; } $nroref = 0; $resultado = registrarDesvio( $_REQUEST["emp"], $_REQUEST["tipo"], $_REQUEST["origen"], //$_REQUEST["proceso"], $comentario, $nroref ); if ( $resultado ) { //Resultado grabar desvío $resultInfo['code'] = 0; $resultInfo['data'] = array( "res" => $resultado ,"nroref" => $nroref ); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL REGISTRAR EL RECLAMO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function visarDesvio($id) { //Actualizar al estado: 'VISADO' $sql = "UPDATE desvio_evento SET desev_estado = (CASE WHEN desev_estado = (SELECT dvest_numero FROM desvio_estados WHERE dvest_inicial = 1) THEN (SELECT dvest_numero FROM desvio_estados WHERE dvest_visado = 1) ELSE (SELECT dvest_numero FROM desvio_estados WHERE dvest_inicial = 1) END) WHERE desev_numero = '". $id ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( $rs ) { return true; } return false; } function updateEstadoVisadoDesvio(&$resultInfo) { if( isset($_REQUEST["id"]) && !empty($_REQUEST["id"]) && !is_null($_REQUEST["id"]) ) { $resultado = visarDesvio($_REQUEST["id"]); if ( $resultado ) { //Resultado grabar desvío $resultInfo['code'] = 0; $resultInfo['data'] = array("res" => $resultado); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL ACTUALIZAR EL ESTADO DEL DESVIO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } function visarNotificacionDesvio($lstId) { //Actu visado del reclamo if( $continue ) { $sql = "UPDATE desvio_evento SET desev_flag_notificacion = 0 WHERE desev_numero IN (". $lstId .")"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( $rs ) { return true; } } return false; } function isDesvioDestinatarios($idDesvio) { //Verificar si el desvio tiene destinatarios asignados $sql = "SELECT 1 FROM desvio_destinatarios WHERE desev_numero = '". $idDesvio ."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)>0) { return true; } } return false; } function getDesvioDestinatariosSel($idDesvio) { //Verificar si el desvio tiene destinatarios asignados $sql = "SELECT usu_codigo as cod ,emp.emp_nombre as nombre FROM desvio_destinatarios AS dd INNER JOIN empleado as emp ON emp.emp_codigo = dd.usu_codigo WHERE desev_numero = '". $idDesvio ."'"; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql); if( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); //print_r($rs);die; if(count($rs)>0) { return $rs; } } return false; } function actualizarEstadoDesvio() { try { $flagTransactionInit = false; $iddesvio = $_REQUEST["id"]; $idestado = $_REQUEST["st"]; $usuario = $_REQUEST["em"]; $comentario = (isset($_REQUEST["cm"])?trim($_REQUEST["cm"]):''); $flagDestinatarios = isDesvioDestinatarios($iddesvio); $sqlinsertvalues = array(); $item = "INSERT INTO desvio_estado_comentarios ( desev_numero, dvest_numero_anterior, dvest_numero_nuevo, desevcm_comentario, usu_codigo, desevcm_fecha ) VALUES "; $item.= "('".addslashes($iddesvio)."', (SELECT desev_estado FROM desvio_evento WHERE desev_numero = '".addslashes($iddesvio)."' ), '".addslashes($idestado)."', '".addslashes($comentario)."', '".addslashes($usuario)."', GETDATE())"; $x = array_push($sqlinsertvalues,$item); if( isset($_REQUEST["ulst"]) && !$flagDestinatarios ) { $usuarios = json_decode($_REQUEST["ulst"],true); //print_r($usuarios); for($i=0;$isetBeginTransaction(); $continue=true; if( count($sqlinsertvalues)>0 ) { for($i=0;$iQueryTR($sqlinsertvalues[$i],true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1004]"; } } } if( $continue && count($sqlupdatevalues)>0 ) { $resultado = $GLOBALS['dbSQLTR']->QueryTR($sqlupdatevalues,true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1003]"; } } if( $continue ) { $res = $GLOBALS['dbSQLTR']->setCommitTransaction(); return true; } } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1000]"; } return false; } catch ( Exception $e ) { if( $flagTransactionInit ) { $GLOBALS['dbSQLTR']->setRollbackTransaction(); } $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1001] (".$e->__toString().")"; //logTrace(debug_backtrace(),$e->__toString()); return false; } } function updateEstadoDesvio(&$resultInfo) { if( isset($_REQUEST["id"]) && !empty($_REQUEST["id"]) && !is_null($_REQUEST["id"]) && isset($_REQUEST["st"]) && !empty($_REQUEST["st"]) && !is_null($_REQUEST["st"]) ) { $resultado = actualizarEstadoDesvio(); if ( $resultado ) { //Resultado grabar desvío $resultInfo['code'] = 0; $resultInfo['data'] = array("res" => $resultado); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL ACTUALIZAR EL ESTADO DEL DESVIO. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } //NOTIFICACINES: DESVIOS function isNotificacionDesvioInProgress() { $sql = " SELECT COUNT(*) as total FROM dbo.[mensajes_in_process] WHERE [msgprc_estado] IS NULL AND msgprc_type = 'NOT_DES'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if(intval($rs[0]["total"])>=1) { return true; // Hay un proceso activo de envio de notificaciones } } return false; //No hay un preoceso activo de envio de notificaciones } function openNotificacionDesvioProgress() { $sql = " INSERT INTO dbo.[mensajes_in_process] (msgprc_estado,msgprc_tstamp_init,msgprc_type) VALUES (NULL,GETDATE(),'NOT_DES')"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function closeNotificacionDesvioProgress() { $sql = " UPDATE dbo.[mensajes_in_process] SET msgprc_estado = 1, msgprc_tstamp = GETDATE() WHERE msgprc_estado IS NULL AND msgprc_type = 'NOT_DES'"; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function sse_getDesviosLst(&$resultInfo,$flagName=true) { if(!isNotificacionDesvioInProgress()) { //Set in progress try { openNotificacionDesvioProgress(); $params = array("sse" => 1); $resultado = getDesvios($params); if( $resultado ) { //print_r("r[".is_array($resultado)."]");die; //Listar Desvios sin notificar $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (!is_array($resultado)?0:count($resultado)) ,"items" => (!is_array($resultado)?array():$resultado) ,"user" => -1 ); } else { $resultInfo['code'] = 0; $resultInfo['errorDes'] = "Se produjo un error al consultar los nuevos desvios"; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } closeNotificacionDesvioProgress(); } catch (Exception $e) { closeNotificacionDesvioProgress(); $resultInfo['code'] = 0; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } } else { //print_r("Envio en progreso. Se cancela hilo de ejecucion"); $resultInfo['code'] = 0; $resultInfo['data'] = array("total"=> 0,"items"=> false,"user" => -1); } } // -------------------------------------------- // END DESVIOS // -------------------------------------------- // -------------------------------------------- // RECETAS MEDICOS APP // -------------------------------------------- function getPacienteRecetaInfo($dni) { $sql = "SELECT c.cli_codigo as cod, c.cli_nombre as name, c.cli_dni as doc, obs_denom as obs, obsp_denom as pl, dbo.GetAge(c.cli_fecnto) AS edad, c.cli_sexo as sex FROM clientes as c LEFT JOIN obrasoc AS ob ON ob.obs_codigo = c.obs_codigo LEFT JOIN obsplan AS obp ON ob.obs_codigo = obp.obs_codigo AND c.obsp_cod = obp.obsp_cod WHERE cli_dni = '".addslashes($dni)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); return $rs[0]; } return false; } function getPacienteRecetaApp(&$resultInfo,$flagName=true) { if( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) && is_numeric($_REQUEST["dni"]) ) { $dni = trim($_REQUEST["dni"]); $resultado = getPacienteRecetaInfo($dni); if( $resultado ) { //Informacion de un paciente $resultInfo['code'] = 0; $resultInfo['data'] = array("paciente" => $resultado); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al consultar el paciente"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El número de documento no fue recibido"; } } function registrarReceta($medico,$paciente,$fecha,$rem,$diagnostico,&$nroRef=0) { // 0123456789 // 15/06/2022 $fecha = substr($fecha,6) ."-".substr($fecha,3,2) ."-".substr($fecha,0,2)." 00:00:00.000"; //print_r($fecha);die; // $fecha_f = date("d/m/Y",strtotime($fecha)); //print_r($fecha_f);die; //$fecha_f = date("Y-m-d",strtotime($fecha_f)); //$fecha = $fecha." 00:00:00.000"; $sql = "INSERT INTO cli_fichainternacion ( int_fecha ,cli_codigo ,obs_codigo ,obsp_cod ,int_motivo ,int_medicamento ,int_medicamento_diag ,med_codigo ) VALUES ( '". addslashes($fecha) ."' ,'". addslashes($paciente) ."' ,(SELECT obs_codigo FROM clientes WHERE cli_codigo = '". addslashes($paciente) ."') ,(SELECT obsp_cod FROM clientes WHERE cli_codigo = '". addslashes($paciente) ."') ,'PRESCRIPCION DE RECETA MEDICA' ,'". addslashes(strtoupper($rem)) ."' ,'". addslashes(strtoupper($diagnostico)) ."' ,'". addslashes($medico) ."' )"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if( $rs ) { $nroRef = $GLOBALS['dbSQL']->getLastId('cli_fichainternacion','int_numero'); if( $nroRef ) { return true; } } return false; } function saveRecetaApp(&$resultInfo) { if( isset($_REQUEST["med"]) && !empty($_REQUEST["med"]) && !is_null($_REQUEST["med"]) && isset($_REQUEST["pac"]) && !empty($_REQUEST["pac"]) && !is_null($_REQUEST["pac"]) && isset($_REQUEST["fec"]) && !empty($_REQUEST["fec"]) && !is_null($_REQUEST["fec"]) && isset($_REQUEST["rem"]) && !empty($_REQUEST["rem"]) && !is_null($_REQUEST["rem"]) && isset($_REQUEST["dig"]) && !empty($_REQUEST["dig"]) && !is_null($_REQUEST["dig"]) ) { $nroref = 0; $resultado = registrarReceta( $_REQUEST["med"], $_REQUEST["pac"], $_REQUEST["fec"], $_REQUEST["rem"], $_REQUEST["dig"], $nroref ); if ( $resultado ) { //Resultado grabar desvío $resultInfo['code'] = 0; $resultInfo['data'] = array( "res" => $resultado ,"nroref" => $nroref ); } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL REGISTRAR LA RECETA. INTENTE MAS TARDE."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return false; } // -------------------------------------------- // END RECETAS MEDICOS APP // -------------------------------------------- // -------------------------------------------- // ABMs // -------------------------------------------- function setTopRecords() { $GLOBALS['N_RECORDS'] = ''; if( isset($_REQUEST["nrec"]) && !is_null($_REQUEST["nrec"]) && !empty($_REQUEST["nrec"]) ) { $GLOBALS['N_RECORDS'] = " TOP ".$_REQUEST["nrec"];; } } function getABMListItems(&$resultInfo) { if( isset($_REQUEST["tbl"]) && !empty($_REQUEST["tbl"]) && !is_null($_REQUEST["tbl"]) ) { $resultado=false; //N-RECORDS setTopRecords(); switch($_REQUEST["tbl"]) { //Desvios case 'desEst': {$resultado = getLstEstadoDesvio();}break; //Ventas case 'vtanomenclador': {$resultado = getTipoNomenclador();}break; case 'vtasegmed': {$resultado = getSegurosMedicos();}break; case 'vtasegmedplanes': {$resultado = getSeguroMedicoPlanes();}break; case 'listaprecios': {$resultado = getListasPrecios();}break; case 'vtaproductosedicion': {$resultado = getListaPreciosAbm();}break; case 'vtalstpracticas': {$resultado = getListaPracticas();}break; case 'vtainsumos': {$resultado = getListaInsumos();}break; //Consistencia case 'hx_consistencia': {$resultado = getListaPacientesDocRepetido();}break; //Hx case 'hx_histclinica': {$resultado = getListaPacientes();}break; case 'hx_fertilidad': {$resultado = getFerHcMedica();}break; case 'hx_holistica': {$resultado = getListaPacientesHolistica();}break; case 'hx_holistica_paciente':{$resultado = getHolisticaHcMedica();}break; //IONC case 'abmTipoTrat': {$resultado = getLstABMTipoTratamientos();}break; //case 'abmTratTipos': {$resultado = getLstABMTipoTratamientos();}break; case 'abmTipoTratAsoc': {$resultado = getLstABMTipoTratamientoAsoc();}break; case 'abmTipoRecaida': {$resultado = getLstABMTipoRecaida();}break; case 'abmOrgRecaida': {$resultado = getLstABMOrgRecaida();}break; case 'abmRespuesta': {$resultado = getLstABMRespuesta();}break; case 'abmProtocolo': {$resultado = getLstABMProtocolo();}break; case 'abmToxicidad': {$resultado = getLstABMToxicidad();}break; case 'abmGradoTox': {$resultado = getLstABMGradoToxicidad();}break; case 'abmRegion': {$resultado = getLstABMRegion();}break; case 'abmTipoDiagnostico': {$resultado = getLstABMTipoDiagnostico();}break; case 'abmMetodoDetecion': {$resultado = getLstABMMetodoDetecion();}break; case 'abmOrgano': {$resultado = getLstABMOrgano();}break; case 'abmAnatPatologica': {$resultado = getLstABMAnatPatologica();}break; case 'abmEstado': {$resultado = getLstABMEstado();}break; case 'abmCausaMuerte': {$resultado = getLstABMCausaMuerte();}break; case 'abmOcupacion': {$resultado = getLstABMOcupacion();}break; case 'abmDrogas': {$resultado = getLstABMProductos();}break; case 'abmEstudioTipo': {$resultado = getLstABMEstudios();}break; case 'abmPronosticoTipo': {$resultado = getLstABMPronostico();}break; case 'abmIntensidadTipo': {$resultado = getLstABMIntensidad();}break; case 'abmLaboratorioEst': {$resultado = getLstABMLaboratorio();}break; case 'profesionales': {$resultado = getLstProfesionalesOnc();}break; case 'hx_onc_pacientes': {$resultado = getListaPacientesOnc();}break; case 'hx_diag_onc': case 'hx_diag_onc_item': {$resultado = getListaPacienteOncDiagnosticos();}break; case 'hx_trat_onc': case 'hx_trat_onc_item': {$resultado = getListaPacienteOncTratamientos();}break; case 'hx_trat_onc_item_lpr': {$resultado = getProtocoloTratamiento();}break; case 'hx_evolucion': {$resultado = getOncEvoluciones();}break; case 'hx_onc_epicrisis': {$resultado = getOncEpicrisis();}break; case 'hx_onc_examfis': {$resultado = getOncExamFisico();}break; case 'hx_onc_antecedentes': {$resultado = getOncAntecedentes();}break; case 'hx_onc_enfermedad': {$resultado = getOncEnfermedad();}break; case 'hx_onc_estudio_item': case 'hx_onc_estudios': {$resultado = getOncEstudios();}break; case 'hx_onc_analisis': {$resultado = getOncLaboratorio();}break; //SMI case 'smiprofesionales': {$resultado = getListaEmpleadosProfesionales();}break; case 'smiprofesionalesp': {$resultado = getProfesionalEspecialidades();}break; case 'smiprofesionalgri': {$resultado = getProfesionalSMIGrilla();}break; case 'smicustomers': {$resultado = getListaClientesSMI();}break; case 'smivendedores': {$resultado = getListaVendedoresSMI();}break; //Contenido case 'secciones': {$resultado = getLstSecciones();}break; case 'secciones_img': {$resultado = getLstSeccionImagenes();}break; //OP Profesionales case 'com_preliquidacion': {$resultado = getListaPracticasPreliquidades();}break; case 'com_preliquidacion_envios': {$resultado = getListaPracticasPreliquidadesEnvios();}break; case 'com_preliquidacion_envio_detalle':{$resultado = getListaPracticasPreliquidadesEnviosDetalle();}break; } if( $resultado || ($resultado==EMPTY_LST) || ($resultado==EMPTY_LST_OBJ) ) { //Retornar informacion del Turno $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)?count($resultado):0) ,"lst" => (is_array($resultado)?$resultado:array()) ,"echo" => (isset($_REQUEST["echo"])?$_REQUEST["echo"]:"") ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR LOS REGISTROS."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return true; } function saveItemsGroup(&$resultInfo) { try { $debug = false; $flagTransactionInit = false; $fnLst = false; $fnHandler = false; $tabla = $_REQUEST["tbl"]; $newrows = json_decode($_REQUEST["itemsn"],true); $updrows = json_decode($_REQUEST["itemsu"],true); $remrows = json_decode($_REQUEST["itemsd"],true); $params = false; $params_ = false; $userId = false; $continue = true; $key = false; $flagKey= false; if(isset($_REQUEST["cod"])) { $key = $_REQUEST["cod"]; } if(isset($_REQUEST["params"])) { $params_ = $_REQUEST["params"]; //Validar el Token if(isset($_REQUEST["token"])) { $continue = false; $userId = validarTokenFast($resultInfo); //print_r("userId[$userId]");die; if(is_numeric($userId)) { $continue=true; } } } if( $continue ) { // print_r($newrows);print_r("\n"); // print_r($updrows);print_r("\n"); // print_r($remrows);//die; switch($tabla) { //Desvíos case 'desEst': {$table='desvio_estados';$fields = array(array('denom','dvest_denominacion'),array('abrev','dvest_abreviatura'),array('inicial','dvest_inicial'),array('final','dvest_final'),array('visado','dvest_visado'));$fieldcod = 'dvest_numero';}break; //Consistencia case 'hx_consistencia': {$fnHandler = 'saveProcesarItemsRepetidos'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; //IFER case 'hx_fertilidad': {$fnHandler = 'saveFertilidadHx'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; //IONC case 'abmTipoTrat': {$table='tbl_onc_tipo_tratamientos'; $fields = array(array('denom','trat_denom'),array('abrev','trat_abrev')); $fieldcod = 'trat_numero';}break; case 'abmTipoTratAsoc': {$table='tbl_onc_tipo_tratamientos_asoc'; $fields = array(array('denom','tptrat_denom'),array('trcod','trat_numero')); $fieldcod = 'tptrat_numero';}break; case 'abmTipoRecaida': {$table='tbl_onc_tipo_recaida'; $fields = array(array('denom','tprec_denom'),array('abrev','tprec_abrev')); $fieldcod = 'tprec_numero';}break; case 'abmOrgRecaida': {$table='tbl_onc_origen_recaida'; $fields = array(array('denom','orgrc_denom'),array('abrev','orgrc_abrev')); $fieldcod = 'orgrc_numero';}break; case 'abmRespuesta': {$table='tbl_onc_respuesta'; $fields = array(array('denom','res_denom'),array('abrev','res_abrev')); $fieldcod = 'res_numero';}break; case 'abmProtocolo': {$table='tbl_onc_protocolo'; $fields = array(array('denom','prot_denom'),array('abrev','prot_abrev')); $fieldcod = 'prot_numero';}break; case 'abmToxicidad': {$table='tbl_onc_toxicidad'; $fields = array(array('denom','tox_denom'),array('abrev','tox_abrev')); $fieldcod = 'tox_numero';}break; case 'abmGradoTox': {$table='tbl_onc_grado_toxicidad'; $fields = array(array('denom','grtox_denom'),array('abrev','grtox_abrev')); $fieldcod = 'grtox_numero';}break; case 'abmRegion': {$table='tbl_onc_region'; $fields = array(array('denom','reg_denom'),array('abrev','reg_abrev')); $fieldcod = 'reg_numero';}break; case 'hx_diag_onc_item': {$fnHandler = 'saveDiagnostico'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_diag_onc_item_pronos': {$fnHandler = 'saveDiagnosticoPronos'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_trat_onc_item': {$fnHandler = 'saveTratamiento'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_trat_onc_item_planes': {$fnHandler = 'saveTratamientoPlanes'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_evolucion': {$fnHandler = 'saveEvolucion'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_onc_epicrisis': {$fnHandler = 'saveONCEpicrisis'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_onc_examfis': {$fnHandler = 'saveONCExamFisico'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_onc_antecedentes': {$fnHandler = 'saveONCAntecedentes'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_onc_enfermedad': {$fnHandler = 'saveONCEnfermedad'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'hx_onc_estudio_item': {$fnHandler = 'saveEstudio'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; //CER-ARCOS case 'hx_holistica': {$fnHandler = 'saveHolisticaHx'; $params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; //Ventas case 'vtaproductosedicion': {$fnHandler = 'saveLPABM';$params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break; case 'vtainsumos': {$fnHandler = 'saveLPABMIns';$params=array("items"=>$newrows,"params"=>$params_,"userid"=>$userId);}break;//getListaInsumos();}break; //Contenido case 'cnttablas': {$table='contenido.seccion_tablas';$fields = array(array('denom','sectbl_descripcion'),array('tabla','sectbl_table'),array('sql','sectbl_sql'));$fieldcod = 'sectbl_numero';}break; case 'secciones': {$table='contenido.seccion_tabla_campos';$fields = array(array('campo','sectblcmp_descripcion'),array('activo','sec_activo'));$fieldcod = 'sectblcmp_numero';$flagKey=true;}break; // case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; // case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; // case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; // case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; // case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; // case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; case 'secciones': {$table='contenido.secciones';$fields = array(array('denom','sec_nombre'),array('activo','sec_activo'),array('ord','sec_orden'));$fieldcod = 'sec_codigo';}break; } } if( $continue ) { if( !$fnHandler ) { $sqlinsertvalues = array(); $sqldeletevalues = array(); $sqlupdatevalues = array(); //------------------------------------------------- if(count($newrows)>0) { if($fnLst) { for($z=0;$z0) { if($fnLst) { for($z=0;$z0) { if($fnLst) { for($z=0;$zsetBeginTransaction(); $continue=true; if( count($sqlinsertvalues)>0 ) { if($debug){ print_r("-----------------------------");print_r("\n"); print_r($sqlinsertvalues);print_r("\n"); print_r("-----------------------------");print_r("\n");} for($i=0;$iQueryTR($sqlinsertvalues[$i],true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1004]"; } } } /*if( $sqlinsertvalues!="" ) {//print_r("-----------------------------");print_r("\n"); //print_r($sqlinsertvalues);print_r("\n"); // print_r("-----------------------------");print_r("\n"); $resultado = $GLOBALS['dbSQLTR']->QueryTR($sqlinsertvalues,true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1004]"; //print_r("1111111111111111111");print_r("\n"); } }*/ if( $continue && count($sqlupdatevalues)>0 ) { if($debug){ print_r("-----------------------------");print_r("\n"); print_r($sqlupdatevalues);print_r("\n"); print_r("-----------------------------");print_r("\n");} for($i=0;$iQueryTR($sqlupdatevalues[$i],true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1003]"; } } } /* if( $continue && $sqldeletevalues!="" ) { //print_r("-----------------------------");print_r("\n"); // print_r($sqldeletevalues);print_r("\n"); // print_r("-----------------------------");print_r("\n"); $resultado = $GLOBALS['dbSQLTR']->QueryTR($sqldeletevalues,true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1002]"; } } */ if( $continue && count($sqldeletevalues)>0 ) { if($debug){ print_r("-----------------------------");print_r("\n"); print_r($sqldeletevalues);print_r("\n"); print_r("-----------------------------");print_r("\n");} // $resultado = $GLOBALS['dbSQLTR']->QueryTR($sqldeletevalues,true); // if ( !$resultado ) // { // $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); // $continue = false; // $resultInfo['code'] = -1; // $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1002]"; // } for($i=0;$iQueryTR($sqldeletevalues[$i],true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1002]"; } } } if( $continue ) { $res = $GLOBALS['dbSQLTR']->setCommitTransaction(); return true; } } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1000]"; } return false; } else { if(!$params) { $resultado =$fnHandler($resultInfo); } else { $resultado =$fnHandler($resultInfo,$params); } return $resultado; } } // else // { // $resultInfo['code'] = -1; // $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1000]"; // } return false; } catch ( Exception $e ) { if( $flagTransactionInit ) { $GLOBALS['dbSQLTR']->setRollbackTransaction(); } $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1001] (".$e->__toString().")"; //logTrace(debug_backtrace(),$e->__toString()); return false; } } function saveABMItems(&$resultInfo) { if( isset($_REQUEST["tbl"]) && !empty($_REQUEST["tbl"]) && !is_null($_REQUEST["tbl"]) ) { $resultado=false; $resultado = saveItemsGroup($resultInfo); if( $resultado ) { //Retornar resultado $resultInfo['code'] = 0; $resultInfo['data'] = array("res" => 1); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR LOS REGISTROS."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return true; } // -------------------------------------------- // END ABMs // -------------------------------------------- // -------------------------------------------- // TUCUMAN // -------------------------------------------- function getLstEstadoDesvio() { $sql = "SELECT dvest_numero as cod ,dvest_denominacion as denom ,dvest_abreviatura as abrev ,dvest_inicial as inicial ,dvest_final as final ,dvest_visado as visado ,0 as itemselected ,0 as rem FROM desvio_estados"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if( is_array($rs)&&count($rs)>0 ) { return $rs; } return EMPTY_LST; } return false; } // -------------------------------------------- // -------------------------------------------- // CONTENIDO // -------------------------------------------- function getLstSecciones() { $flagContenido = false; $flagActivos = false; if(isset($_REQUEST["fcnt"])&&intval($_REQUEST["fcnt"])===1){$flagContenido = true;} if(isset($_REQUEST["fac"])&&intval($_REQUEST["fac"])===1){$flagActivos = true;} $filtro=""; if($flagActivos){$filtro="WHERE sec_activo = 1";} if(!$flagContenido) { $sql = "SELECT sec_codigo as cod ,sec_nombre as denom ,sec_activo as activo ,sec_orden as ord ,(CASE WHEN sec_ancla IS NULL THEN '' ELSE sec_ancla END) AS ancla ,(CASE WHEN sec_url IS NULL THEN '' ELSE sec_url END) AS url ,(CASE WHEN sec_nombre_en IS NULL THEN '' ELSE sec_nombre_en END) AS denom_en ,0 as itemselected ,0 as rem ,0 as erst FROM contenido.secciones ".$filtro." ORDER BY sec_orden"; } else { $sql = "SELECT sec_codigo as cod ,sec_nombre as denom ,sec_activo as activo ,sec_orden as ord ,(CASE WHEN sec_ancla IS NULL THEN '' ELSE sec_ancla END) AS ancla ,(CASE WHEN sec_url IS NULL THEN '' ELSE sec_url END) AS url ,(CASE WHEN sec_nombre_en IS NULL THEN '' ELSE sec_nombre_en END) AS denom_en ,sec_html as cnt ,0 as itemselected ,0 as rem ,0 as erst FROM contenido.secciones ".$filtro." ORDER BY sec_orden"; } //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $secciones = $GLOBALS['dbSQL']->getAll(); if( is_array($secciones)&&count($secciones)>0 ) { if($flagContenido) { for($i=0,$t=count($secciones);$i<$t;$i++) { $secciones[$i]["imglst"] = getLstSeccionImagenes($secciones[$i]["cod"]); //$secciones[$i]["cnt"] = base64_encode(serialize($secciones[$i]["cnt"])); $secciones[$i]["cnt"] = base64_encode($secciones[$i]["cnt"]); } } return $secciones; } return EMPTY_LST; } return false; } function getLstSeccionImagenes($idSeccion=false) { $key = (isset($_REQUEST["key"])?$_REQUEST["key"]:$idSeccion); $sql = "SELECT secimg_numero as cod ,sec_codigo as marcod ,secimg_nombre as denom ,secimg_type as tipo ,secimg_size as size ,secimg_orden as orden ,secimg_activo as activo ,0 as itemselected ,0 as rem ,0 as erst FROM contenido.secciones_imagenes WHERE sec_codigo = '".addslashes($key)."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if( is_array($rs)&&count($rs)>0 ) { return $rs; } return EMPTY_LST; } return false; } function getSeccionHTML(&$resultInfo,$idSeccion=false) { try { $resultado=false; if( ( isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) && is_numeric($_REQUEST["cod"]) ) || ( $idSeccion ) ) { $seccionId = ($idSeccion?$idSeccion:$_REQUEST["cod"]); $queryMs = "SELECT sec_html,sec_html64 FROM contenido.secciones WHERE sec_codigo = '".addslashes($seccionId)."'"; //print_r($queryMs);die; $resultadoMs = $GLOBALS['dbSQL']->Query($queryMs); if( $resultadoMs ) { $resultado = $GLOBALS['dbSQL']->getAll(); $total = count($resultado); if( $total <= 0 ) { $resultado = EMPTY_LST; } if( $resultado || ($resultado==EMPTY_LST) ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)?count($resultado):0) ,"html" => (is_array($resultado)?$resultado[0]["sec_html"]:'') ,"html64"=> (is_array($resultado)?$resultado[0]["sec_html64"]:'') ,"echo" => (isset($_REQUEST["echo"])?$_REQUEST["echo"]:"") ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR LOS REGISTROS."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR LOS REGISTROS."; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parametros Faltantes"; } return true; } catch ( Exception $e ) { // $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; // $resultInfo['errorDes'] = "Error:".($e->__toString()); // $this->logTrace(debug_backtrace(),$e->__toString()); $resultInfo['code'] = 2; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR LOS REGISTROS."; return false; } } function updateSeccionHTML(&$resultInfo) { try { if( isset($_REQUEST["c"]) && !empty($_REQUEST["c"]) && !is_null($_REQUEST["c"]) && is_numeric($_REQUEST["c"]) && isset($_REQUEST["d"]) && !empty($_REQUEST["d"]) && !is_null($_REQUEST["d"]) ) { //$contentHTMLClean = cleanHTMLContent($_REQUEST["d"]); $contentHTMLClean = $_REQUEST["d"]; $contentHTMLClean64 = $_REQUEST["d64"]; //print_r($contentHTMLClean64);die; $sql = " UPDATE contenido.secciones SET sec_html = '".addslashes($contentHTMLClean)."' ,sec_html64= '".addslashes($contentHTMLClean64)."' WHERE sec_codigo = '".addslashes($_REQUEST["c"])."'"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => true ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR AL ACTUAÑIZAR LOS EL REGISTRO"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return true; } catch ( Exception $e ) { // $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; // $resultInfo['errorDes'] = "Error:".($e->__toString()); // $this->logTrace(debug_backtrace(),$e->__toString()); $resultInfo['code'] = 2; $resultInfo['errorDes'] = "SE PRODUJO UN ERROR EN EL SISTEMA AL CONSULTAR LOS REGISTROS."; return false; } } function getSeccionesLstSite(&$resultInfo) { $resultado = getLstSecciones(); $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => (is_array($resultado)?count($resultado):0) ,"lst" => (is_array($resultado)?$resultado:array()) ,"echo" => (isset($_REQUEST["echo"])?$_REQUEST["echo"]:"") ); //print_r($resultInfo);die; return true; } function saveTablaCampos(&$resultInfo) { try { $flagTransactionInit = false; if( isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) && isset($_REQUEST["lstprop"]) && !empty($_REQUEST["lstprop"]) && !is_null($_REQUEST["lstprop"]) ) { $codigo = $_REQUEST["cod"]; $lstPropieddes = json_decode($_REQUEST["lstprop"],true); $error = false; if( is_array($lstPropieddes) && count($lstPropieddes)>0 ) { $values = ''; for($i=0;$isetBeginTransaction(); //BORRAR PROPIEDEDES ACTUALES $rs = $GLOBALS['dbSQLTR']->QueryTR($sqlPropiedadesDelete); if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al borrar propiedades actuales del producto'; $resultInfo['code'] = 1000; $resultInfo['errorDes'] = $errorPoint; } //BORRAR PROPIEDEDES ACTUALES if($continue) { $rs = $GLOBALS['dbSQLTR']->QueryTR($sqlPropiedadesInsert); //$rs = true; if ( !$rs ) { $res=$GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $errorPoint = 'Error al insertar las nuevas propiedades del producto'; $resultInfo['code'] = 1001; $resultInfo['errorDes'] = $errorPoint; } } if( $continue ) { $res = $GLOBALS['dbSQLTR']->setCommitTransaction(); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => 0); } } else { $continue = false; $resultInfo['code'] = 1002; $resultInfo['errorDes'] = "Se produjo un error al registrar las propiedades del producto"; } } else { $resultInfo['code'] = 1003; $resultInfo['errorDes'] = "Parámetros incompletos"; } return true; } else { $resultInfo['code'] = 1004; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { if( $flagTransactionInit ) { $GLOBALS['dbSQLTR']->setRollbackTransaction(); } $resultInfo['code'] = 1005; $resultInfo['errorDes'] = "Se produjo un error al consultar al registrar las propiedades del producto: [".$e->getMessage()."]"; return false; } } function saveImagen(&$resultInfo) { try { if( isset($_REQUEST["tipo"]) && !empty($_REQUEST["tipo"]) && !is_null($_REQUEST["tipo"]) && isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) //&& // isset($_FILES) && // !empty($_FILES) && // !is_null($_FILES) && // count($_FILES)>0 ) { $codigo = $_REQUEST["cod"]; switch($_REQUEST["tipo"]) { case 's':{$flagTipo=IMG_TYPE_SECCION; $path=$GLOBALS['GLOBAL_URL_IMAGES_SECCIONES'];}break; } $error = false; if( isset($_FILES) && !empty($_FILES) && !is_null($_FILES) && count($_FILES)>0 ) { //validation $mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png"); // Contar la cantidad de imagenes $countfiles = count($_FILES['file']['name']); $filename_arr = array(); foreach ($_FILES["file"]["name"] as $key => $error) { $continue= true; $filename = $_FILES['file']['name'][$key]; $tmp_name = $_FILES["file"]["tmp_name"][$key]; $name = $_FILES["file"]["name"][$key]; $type = $_FILES["file"]["type"][$key]; $size = $_FILES["file"]["size"][$key]; if( $continue && ($size/1024) > SIZE_MAX_PROF_IMG ) { $error = 'La imagen no debe superar los '.(SIZE_MAX_PROF_IMG/1024).'MB'; $continue= false; } if( $continue && !in_array($type, $mimetypes)) { $error = 'El archivo que intenta subir no es una imagen válida'; $continue= false; } if(!$continue) { $x = array_push($filename_arr,array("f"=>$filename,"s"=>0,"c"=>0,"e"=>$error)); } else { //Copiar la imagen al directorio $name = basename($_FILES["file"]["name"][$key]); $pathfinal = $path.$name; $res = move_uploaded_file($tmp_name, $pathfinal); if($res) { $x = array_push($filename_arr,array("f"=>$filename,"s"=>1,"c"=>1,"e"=>$error)); $imgsrc=false; switch($_REQUEST["tipo"]) { case 's': { $resultado = saveSeccionImagen($codigo,$filename,$key,$imgsrc); } break; } } else { $error = "Error al grabar el archivo en la carpeta destino"; $x = array_push($filename_arr,array("f"=>$filename,"s"=>1,"c"=>0,"e"=>$error)); } } } $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ,"imglst" => $filename_arr ); } else if( isset($_REQUEST["pdes"]) && !empty($_REQUEST["pdes"]) && !is_null($_REQUEST["pdes"]) ) { saveProductoDescripcion($codigo,$_REQUEST["pdes"]); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => 1 ,"imglst" => '' ); } return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar al grabar las imagenes: [".$e->getMessage()."]"; return false; } } function saveSeccionImagen($idseccion,$filename,$index,&$imgsrc) { try { $imgSize = getimagesize($_FILES["file"]["tmp_name"][$index]); $width = $imgSize[0]; $height = $imgSize[1]; $sql = "INSERT INTO contenido.secciones_imagenes ( sec_codigo ,secimg_nombre ,secimg_type ,secimg_size ,secimg_orden ,secimg_activo ) VALUES ( '".addslashes($idseccion)."' ,'".addslashes($filename)."' ,'".addslashes($_FILES["file"]["type"][$index])."' ,'".addslashes($_FILES["file"]["size"][$index])."' ,ISNULL((SELECT MAX(m.secimg_orden)+1 FROM contenido.secciones_imagenes as m WHERE m.sec_codigo = '".addslashes($idseccion)."'),1) ,0 )"; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( !$rs ) { //Fallo la insercion return false; } return true; } catch (Exception $e) { return false; } } function updateSeccionImagenOrden($codImg,$ordennew) { $sql = "SELECT sec_codigo, secimg_orden, (SELECT COUNT(*) FROM contenido.secciones_imagenes as p3 WHERE p3.sec_codigo IN ( SELECT p2.sec_codigo FROM contenido.secciones_imagenes as p2 WHERE p1.secimg_numero = p2.secimg_numero ) ) as totalimgs ,(SELECT MAX(p4.secimg_orden) FROM contenido.secciones_imagenes as p4 WHERE p1.sec_codigo = p4.sec_codigo ) as ultimo FROM contenido.secciones_imagenes p1 WHERE p1.secimg_numero = '".addslashes($codImg)."'"; //print_r($sql);die; $ultimo = 0; $totalImagnes = 0; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $seccionImg = $GLOBALS['dbSQL']->getAll(); if( is_array($seccionImg)&&count($seccionImg)>0 ) { $prodcodigo = $seccionImg[0]["sec_codigo"]; $ordactual = intval($seccionImg[0]["secimg_orden"]); $totalImagnes = intval($seccionImg[0]["totalimgs"]); $ultimo = intval($seccionImg[0]["ultimo"]); } else { return false; } } $ordennew = intval($ordennew); // if($totalImagnes<=1) // SOLO TIENE UNA IMAGEN // { // return true; // } //elseif($ordactual===1&&$ordennew==1) // ES LA PRIMER IMAGEN Y QUIERE BAJAR EL ORDEN if($ordactual===1&&$ordennew==1) // ES LA PRIMER IMAGEN Y QUIERE BAJAR EL ORDEN { //SUBIR ORDEN $sql1 = "UPDATE contenido.secciones_imagenes SET secimg_orden = (CASE WHEN secimg_orden = 1 THEN secimg_orden ELSE secimg_orden - 1 END) WHERE secimg_numero = '".addslashes($codImg)."'"; $sql2 = "UPDATE contenido.secciones_imagenes SET secimg_orden = secimg_orden WHERE secimg_numero = '".addslashes($codImg)."'"; //return true; } elseif($ordactual==$ultimo&&$ordennew==0) // ES LA ULTIMA IMAGEN Y QUIERE BAJAR EL ORDEN { return true; } else { if($ordennew==1) { //SUBIR ORDEN $sql1 = "UPDATE contenido.secciones_imagenes SET secimg_orden = secimg_orden - 1 WHERE secimg_numero = '".addslashes($codImg)."'"; $sql2 = "UPDATE contenido.secciones_imagenes SET secimg_orden = secimg_orden + 1 WHERE secimg_numero <> '".addslashes($codImg)."' AND sec_codigo = '".addslashes($prodcodigo)."' AND secimg_orden = ".($ordactual-1).""; } else { //BAJAR ORDEN $sql1 = "UPDATE contenido.secciones_imagenes SET secimg_orden = secimg_orden + 1 WHERE secimg_numero = '".addslashes($codImg)."'"; $sql2 = "UPDATE contenido.secciones_imagenes SET secimg_orden = secimg_orden - 1 WHERE secimg_numero <> '".addslashes($codImg)."' AND sec_codigo = '".addslashes($prodcodigo)."' AND secimg_orden = ".($ordactual+1).""; } $rs1 = $GLOBALS['dbSQL']->Query($sql1,true); $rs2 = $GLOBALS['dbSQL']->Query($sql2,true); if ( $rs1&&$rs2 ) { return true; } return false; } } function changeOrderImagen(&$resultInfo) { try { if( isset($_REQUEST["tipo"]) && !empty($_REQUEST["tipo"]) && !is_null($_REQUEST["tipo"]) && isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) && isset($_REQUEST["ord"]) && !is_null($_REQUEST["ord"]) ) { $codigo = $_REQUEST["cod"]; $orden = $_REQUEST["ord"]; switch($_REQUEST["tipo"]) { case 's':{$resultado = updateSeccionImagenOrden($codigo,$orden);}break; } $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al cambiar el orden de la imagen: [".$e->getMessage()."]"; return false; } } function getSeccionImagenName($codImg) { $sql = "SELECT secimg_nombre FROM contenido.secciones_imagenes WHERE secimg_numero = '".addslashes($codImg)."'"; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $rs = $GLOBALS['dbSQL']->getAll(); if( is_array($rs)&&count($rs)>0 ) { return $rs[0]["secimg_nombre"]; } } return false; } function deleteSeccionImagen($codImg) { $sql = "DELETE FROM contenido.secciones_imagenes WHERE secimg_numero = '".addslashes($codImg)."'"; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function deleteImagen(&$resultInfo) { try { if( isset($_REQUEST["tipo"]) && !empty($_REQUEST["tipo"]) && !is_null($_REQUEST["tipo"]) && isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) ) { $codigo = $_REQUEST["cod"]; switch($_REQUEST["tipo"]) { case 's':{$flagTipo=IMG_TYPE_SECCION; $path=$GLOBALS['GLOBAL_URL_IMAGES_SECCIONES']; $fileName=getSeccionImagenName($codigo);}break; } //print_r("fileName[".$fileName."]");print_r("\n");//die; if( $fileName ) { $pathfinal = $path.$fileName; //print_r("pathfinal[".$pathfinal."]");print_r("\n");//die; if (file_exists($pathfinal)) { unlink($pathfinal); } } switch($_REQUEST["tipo"]) { case 's':{$resultado = deleteSeccionImagen($codigo);}break; } $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al borrar la imagen: [".$e->getMessage()."]"; return false; } } function updateSeccionStatusImagen($codImg) { $sql = "UPDATE contenido.secciones_imagenes SET secimg_activo = (CASE WHEN secimg_activo = 1 THEN 0 ELSE 1 END) WHERE secimg_numero = '".addslashes($codImg)."'"; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function activeImagen(&$resultInfo) { try { if( isset($_REQUEST["tipo"]) && !empty($_REQUEST["tipo"]) && !is_null($_REQUEST["tipo"]) && isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) ) { $codigo = $_REQUEST["cod"]; switch($_REQUEST["tipo"]) { case 's':{$resultado = updateSeccionStatusImagen($codigo);}break; } $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al activar la imagen: [".$e->getMessage()."]"; return false; } } function getImagenesItem($src) { try { $resultado = false; $update = false; $sql = "SELECT medf_foto, medf_src,medf_tipo FROM medico_foto WHERE medf_src = '".addslashes($src)."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } else { $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)>0) { return $rs[0]; } else { return defaultImg(); } } } catch (Exception $e) { return false; } } function getItemImagenes(&$resultInfo) { ///ESTE FUNCION NO ESTA LISTA $src = false; if( isset($_REQUEST["src"]) && !empty($_REQUEST["src"]) && !is_null($_REQUEST["src"]) ) { $src = $_REQUEST["src"]; $resultado = getImagenesItem($src); if( $resultado ) { switch(strtolower($resultado["medf_tipo"])) { case 'image/png': { header('Content-Type: image/png'); $im = imagecreatefrompng('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagepng($im); } } break; case 'image/gif': { header('Content-Type: image/gif'); $im = imagecreatefromgif('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagegif($im); } } break; case 'image/bmp': { header('Content-Type: image/bmp'); $im = imagecreatefrombmp('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagebmp($im); } } break; case 'image/jpg': case 'image/jpeg': { header('Content-Type: image/jpeg'); $im = imagecreatefromjpeg('./profiles/'.$imagen['medf_src']); if ($im !== false) { imagejpeg($im); } } break; } if ($im !== false) { imagedestroy($im); } // echo ''; die; } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar la fotografía"; } } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } header( "Content-Type: text/xml; charset=\"iso-8859-15\""); echo $resultInfo['errorDes']; die; //return false; } // -------------------------------------------- // -------------------------------------------- // CONSISTENCIA // -------------------------------------------- function getListaPacientesDocRepetido() { //,FORMAT(e.emp_alta,'dd/MM/yyyy') as falta $params = false; $flagCliente = false; if( isset($_REQUEST["cl_d"])&&intval($_REQUEST["cl_d"])!==(-1) && isset($_REQUEST["cl_h"])&&intval($_REQUEST["cl_h"])!==(-1)) { $flagCliente = true; } $flagDoc = false; if( isset($_REQUEST["doc"])&&intval($_REQUEST["doc"])!==(-1)) { $flagDoc = true; } $flagNombre = false; if( isset($_REQUEST["cnam"])&&intval($_REQUEST["cnam"])!==(-1)) { $flagNombre = true; } $flagSeleccionados = false;//print_r($_REQUEST["sellst"]);die; if( isset($_REQUEST["sellst"])&&trim($_REQUEST["sellst"])!=="") { $flagSeleccionados = true; $lstItems = explode(";",$_REQUEST["sellst"]); //print_r($lstItems);die("---aaaaa-----"); $lstItemsSeleccionados=""; for($i=0,$t=count($lstItems);$i<$t;$i++) { $sep=","; if($lstItemsSeleccionados==""){$sep="";} $lstItemsSeleccionados.=$sep."'".$lstItems[$i]."'"; } } if($flagCliente||$flagNombre||$flagDoc||$flagSeleccionados) { $params = ""; } //EXCLUIR DNI 0,NULL if(true) {$params = " ( c.cli_dni <> '0' AND c.cli_dni <> 0 AND c.cli_dni IS NOT NULL)";} if($flagCliente) {$params.= ($params==""?" ":" AND ") . " ( c.cli_codigo BETWEEN '".$_REQUEST["cl_d"]."' AND '".$_REQUEST["cl_h"]."')";} if($flagDoc) {$params.= ($params==""?" ":" AND ") . " ( LOWER(LTRIM(RTRIM(c.cli_dni))) LIKE '%".addslashes(strtolower(trim($_REQUEST["doc"])))."%')";} if($flagNombre) {$params.= ($params==""?" ":" AND ") . " ( LOWER(LTRIM(RTRIM(c.cli_nombre))) LIKE '%".addslashes(strtolower(trim($_REQUEST["cnam"])))."%')";} if($flagSeleccionados) {$params.= ($params==""?" ":" AND ") . " ( c.cli_dni IN (".$lstItemsSeleccionados."))";} $where = ""; if($params) { $where = " WHERE ".$params; } $sql = "SELECT c.cli_dni as dni, COUNT(c.cli_dni) as t FROM clientes as c ".$where." GROUP BY c.cli_dni HAVING COUNT(c.cli_dni)>1 ORDER BY c.cli_dni"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $clientes = $GLOBALS['dbSQL']->getAll(); if( is_array($clientes)&&count($clientes)>0 ) { for($i=0,$t=count($clientes);$i<$t;$i++) { $clientes[$i]["itemselected"] = 0; //Cod rep $minclicod = false; $clientes[$i]["codlst"] = array(); $clienteslst = getClientesByDni($clientes[$i]["dni"]); if($clienteslst!=EMPTY_LST) { $clientes[$i]["codlst"] = $clienteslst; // print_r($esp);print_r("\n"); // print_r($esplst);print_r("\n"); // print_r($profesionales[$i]["esplst"]);die; } } //print_r($clientes);die; return $clientes; } return EMPTY_LST; } return false; } function getClientesByDni($clidni) { $sql = "SELECT c.cli_codigo AS cod ,LTRIM(RTRIM(c.cli_nombre)) AS nombre FROM clientes as c WHERE c.cli_dni = ".$clidni." ORDER BY c.cli_codigo ASC"; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $clientes = $GLOBALS['dbSQL']->getAll(); if( is_array($clientes)&&count($clientes)>0 ) { return $clientes; } } return EMPTY_LST; } function getClienteInfo($clicodigo,$flagMaxIt=false) { if(!$flagMaxIt) { $sql = "SELECT * FROM clientes WHERE cli_codigo = ".$clicodigo; } else { $sql = "SELECT ISNULL(MAX(cd_item),0) AS maxit FROM cli_diagnosticos WHERE cli_codigo = ".$clicodigo; } //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $cliente = $GLOBALS['dbSQL']->getAll(); if( is_array($cliente)&&count($cliente)>0 ) { return $cliente; } } return EMPTY_LST; } function getClienteDiagnosticos($clicodigo) { $sql = "SELECT cd_item FROM cli_diagnosticos WHERE cli_codigo = ".$clicodigo; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $cliente = $GLOBALS['dbSQL']->getAll(); if( is_array($cliente)&&count($cliente)>0 ) { return $cliente; } } return EMPTY_LST; } function nuevoValorClienteNoVacio($val) { if(is_null($val)){return false;} if(trim($val)==""){return false;} return true; } function saveProcesarItemsRepetidos(&$resultInfo,$params) { try { $params["params"] = json_decode($params["params"]); //print_r($params);die("-----#-----"); $flagTransactionInit = false; if( isset($params["items"]) && isset($params["items"][0]) && isset($params["items"][0]["sellst"]) ) { $_REQUEST["sellst"] = $params["items"][0]["sellst"]; } $lstClientesRepetidos = getListaPacientesDocRepetido(); $sqlItem = array(); for($i=0,$t=count($lstClientesRepetidos);$i<$t;$i++) { $clienteOriginal = $lstClientesRepetidos[$i]["codlst"][0]["cod"]; //------------------------------------------------------ //INFO ACTUAL DEL CLIENTE //------------------------------------------------------ $info_cliorg = getClienteInfo($clienteOriginal); $info_max_it = getClienteInfo($clienteOriginal,true); //$info_diag_lst= getClienteDiagnosticos($clienteOriginal); // print_r("--max it--");print_r("\n"); // print_r($info_max_it);print_r("\n"); // print_r("-------");print_r("\n"); if($info_max_it!=EMPTY_LST) { //if($i==4){print_r($info_max_it);print_r("\n");die;} // if($info_cliorg[0]["cli_dni"]=='56981584') // { // $indexo = count($sqlItem)-1; // // print_r("---ORIGINAL--");print_r("\n");print_r($info_cliorg[0]);print_r("\n"); // // print_r("tid_codigo: vacionAct[".nuevoValorClienteNoVacio($info_cliorg[0]["tid_codigo"])."]");print_r("\n"); // } $cli_fecnto = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_fecnto"]) ?trim($info_cliorg[0]["cli_fecnto"]):false); $tid_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["tid_codigo"]) ?trim($info_cliorg[0]["tid_codigo"]):false); $loc_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["loc_codigo"]) ?trim($info_cliorg[0]["loc_codigo"]):false); $pro_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["pro_codigo"]) ?trim($info_cliorg[0]["pro_codigo"]):false); $cli_email = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_email"]) ?trim($info_cliorg[0]["cli_email"]) :false); $cli_observ = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_observ"]) ?trim($info_cliorg[0]["cli_observ"]):false); $cli_tel = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_tel"]) ?trim($info_cliorg[0]["cli_tel"]) :false); $cli_fecing = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_fecing"]) ?trim($info_cliorg[0]["cli_fecing"]):false); $cli_carnet = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_carnet"]) ?trim($info_cliorg[0]["cli_carnet"]):false); $cli_carvto = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_carvto"]) ?trim($info_cliorg[0]["cli_carvto"]):false); $cli_passw = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_passw"]) ?trim($info_cliorg[0]["cli_passw"]) :false); $cli_vacvie = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_vacvie"]) ?trim($info_cliorg[0]["cli_vacvie"]):false); $cli_admin = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_admin"]) ?trim($info_cliorg[0]["cli_admin"]) :false); $cli_nroref = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_nroref"]) ?trim($info_cliorg[0]["cli_nroref"]):false); $nac_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["nac_codigo"]) ?trim($info_cliorg[0]["nac_codigo"]):false); $ocu_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["ocu_codigo"]) ?trim($info_cliorg[0]["ocu_codigo"]):false); $cli_sexo = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_sexo"]) ?trim($info_cliorg[0]["cli_sexo"]) :false); $obs_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["obs_codigo"]) ?trim($info_cliorg[0]["obs_codigo"]):false); $obsp_cod = (nuevoValorClienteNoVacio($info_cliorg[0]["obsp_cod"]) ?trim($info_cliorg[0]["obsp_cod"]) :false); $med_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["med_codigo"]) ?trim($info_cliorg[0]["med_codigo"]):false); $cli_utlimoingresoweb= (nuevoValorClienteNoVacio($info_cliorg[0]["cli_utlimoingresoweb"])?trim($info_cliorg[0]["cli_utlimoingresoweb"]):false); $flag_cli_fecnto = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_fecnto"]) ?true:false); $flag_tid_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["tid_codigo"]) ?true:false); $flag_loc_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["loc_codigo"]) ?true:false); $flag_pro_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["pro_codigo"]) ?true:false); $flag_cli_email = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_email"]) ?true:false); $flag_cli_observ = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_observ"]) ?true:false); $flag_cli_tel = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_tel"]) ?true:false); $flag_cli_fecing = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_fecing"]) ?true:false); $flag_cli_carnet = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_carnet"]) ?true:false); $flag_cli_carvto = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_carvto"]) ?true:false); $flag_cli_passw = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_passw"]) ?true:false); $flag_cli_vacvie = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_vacvie"]) ?true:false); $flag_cli_admin = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_admin"]) ?true:false); $flag_cli_nroref = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_nroref"]) ?true:false); $flag_nac_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["nac_codigo"]) ?true:false); $flag_ocu_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["ocu_codigo"]) ?true:false); $flag_cli_sexo = (nuevoValorClienteNoVacio($info_cliorg[0]["cli_sexo"]) ?true:false); $flag_obs_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["obs_codigo"]) ?true:false); $flag_obsp_cod = (nuevoValorClienteNoVacio($info_cliorg[0]["obsp_cod"]) ?true:false); $flag_med_codigo = (nuevoValorClienteNoVacio($info_cliorg[0]["med_codigo"]) ?true:false); $flag_cli_utlimoingresoweb=(nuevoValorClienteNoVacio($info_cliorg[0]["cli_utlimoingresoweb"])?true:false); //------------------------------------------------------ //------------------------------------------------------ //INFO DE LA ULTIMA REGISTRACION DEL CLIENTE //------------------------------------------------------ $indexUltimo = count($lstClientesRepetidos[$i]["codlst"])-1; $info_clidupUlt = getClienteInfo($lstClientesRepetidos[$i]["codlst"][$indexUltimo]["cod"]); //------------------------------------------------------ //------------------------------------------------------ //TOMAR VALORES OBLIGATORIOS DE LA ULTIMA REGISTRACION DEL CLIENTE //------------------------------------------------------ $x =array_push($sqlItem," UPDATE clientes SET obs_codigo = ".$info_clidupUlt[0]["obs_codigo"].",obsp_cod = ".$info_clidupUlt[0]["obsp_cod"]." WHERE cli_codigo = " .$clienteOriginal); //------------------------------------------------------ for($k=1,$tk=count($lstClientesRepetidos[$i]["codlst"]);$k<$tk;$k++) { $clienteDuplicado = $lstClientesRepetidos[$i]["codlst"][$k]["cod"]; //------------------------------------------------------ //TOMAR VALORES NO OBLIGATORIOS LA REGISTRACION ACTUAL DEL CLIENTE //COMPARADON SI LA NUEVA ESTA VACIA O NULA //------------------------------------------------------ $info_clidupActual = getClienteInfo($lstClientesRepetidos[$i]["codlst"][$k]["cod"]); // if($info_cliorg[0]["cli_dni"]=='16509561') // { // print_r("---ACTUAL--");print_r("\n");print_r($info_clidupActual[0]);print_r("\n"); // print_r("tid_codigo: vacionAct[".nuevoValorClienteNoVacio($info_clidupActual[0]["tid_codigo"])."]");print_r("\n"); // } if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_fecnto"]) && $flag_cli_fecnto===false) {$cli_fecnto =trim($info_clidupActual[0]["cli_fecnto"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["tid_codigo"]) && $flag_tid_codigo===false) {$tid_codigo =trim($info_clidupActual[0]["tid_codigo"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["loc_codigo"]) && $flag_loc_codigo===false) {$loc_codigo =trim($info_clidupActual[0]["loc_codigo"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["pro_codigo"]) && $flag_pro_codigo===false) {$pro_codigo =trim($info_clidupActual[0]["pro_codigo"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_email"]) && $flag_cli_email ===false) {$cli_email =trim($info_clidupActual[0]["cli_email"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_observ"]) && $flag_cli_observ===false) {$cli_observ =trim($info_clidupActual[0]["cli_observ"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_tel"]) && $flag_cli_tel ===false) {$cli_tel =trim($info_clidupActual[0]["cli_tel"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_fecing"]) && $flag_cli_fecing===false) {$cli_fecing =trim($info_clidupActual[0]["cli_fecing"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_carnet"]) && $flag_cli_carnet===false) {$cli_carnet =trim($info_clidupActual[0]["cli_carnet"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_carvto"]) && $flag_cli_carvto===false) {$cli_carvto =trim($info_clidupActual[0]["cli_carvto"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_passw"]) && $flag_cli_passw ===false) {$cli_passw =trim($info_clidupActual[0]["cli_passw"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_vacvie"]) && $flag_cli_vacvie===false) {$cli_vacvie =trim($info_clidupActual[0]["cli_vacvie"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_admin"]) && $flag_cli_admin ===false) {$cli_admin =trim($info_clidupActual[0]["cli_admin"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_nroref"]) && $flag_cli_nroref===false) {$cli_nroref =trim($info_clidupActual[0]["cli_nroref"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["nac_codigo"]) && $flag_nac_codigo===false) {$nac_codigo =trim($info_clidupActual[0]["nac_codigo"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["ocu_codigo"]) && $flag_ocu_codigo===false) {$ocu_codigo =trim($info_clidupActual[0]["ocu_codigo"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_utlimoingresoweb"]) && $flag_cli_utlimoingresoweb===false) {$cli_utlimoingresoweb =trim($info_clidupActual[0]["cli_utlimoingresoweb"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["cli_sexo"]) && $flag_cli_sexo ===false) {$cli_sexo =trim($info_clidupActual[0]["cli_sexo"]);} // if(nuevoValorClienteNoVacio($info_clidupActual[0]["obs_codigo"]) && $flag_obs_codigo ===false) {$obs_codigo =trim($info_clidupActual[0]["obs_codigo"]);} // if(nuevoValorClienteNoVacio($info_clidupActual[0]["obsp_cod"]) && $flag_obsp_cod ===false) {$obsp_cod =trim($info_clidupActual[0]["obsp_cod"]);} if(nuevoValorClienteNoVacio($info_clidupActual[0]["med_codigo"]) && $flag_med_codigo ===false) {$med_codigo =trim($info_clidupActual[0]["med_codigo"]);} $sqlcliupdate = ""; if(!$flag_cli_fecnto && $cli_fecnto) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_fecnto ='".$cli_fecnto."'";} if(!$flag_tid_codigo && $tid_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."tid_codigo ='".$tid_codigo."'";} if(!$flag_loc_codigo && $loc_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."loc_codigo ='".$loc_codigo."'";} if(!$flag_pro_codigo && $pro_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."pro_codigo ='".$pro_codigo."'";} if(!$flag_cli_email && $cli_email) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_email ='".$cli_email."'";} if(!$flag_cli_observ && $cli_observ) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_observ ='".$cli_observ."'";} if(!$flag_cli_tel && $cli_tel) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_tel ='".$cli_tel."'";} if(!$flag_cli_fecing && $cli_fecing) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_fecing ='".$cli_fecing."'";} if(!$flag_cli_carnet && $cli_carnet) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_carnet ='".$cli_carnet."'";} if(!$flag_cli_carvto && $cli_carvto) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_carvto ='".$cli_carvto."'";} if(!$flag_cli_passw && $cli_passw) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_passw ='".$cli_passw."'";} if(!$flag_cli_vacvie && $cli_vacvie) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_vacvie ='".$cli_vacvie."'";} if(!$flag_cli_admin && $cli_admin) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_admin ='".$cli_admin."'";} if(!$flag_cli_nroref && $cli_nroref) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_nroref ='".$cli_nroref."'";} if(!$flag_nac_codigo && $nac_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."nac_codigo ='".$nac_codigo."'";} if(!$flag_ocu_codigo && $ocu_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."ocu_codigo ='".$ocu_codigo."'";} if(!$flag_cli_sexo && $cli_sexo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_sexo ='".$cli_sexo."'";} if(!$flag_med_codigo && $med_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."med_codigo ='".$med_codigo."'";} if(!$flag_cli_utlimoingresoweb && $cli_utlimoingresoweb) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."cli_utlimoingresoweb='".$cli_utlimoingresoweb."'";} // if(!$flag_obs_codigo) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."obs_codigo ='".$obs_codigo."'";} // if(!$flag_obsp_cod) {$sqlcliupdate.=($sqlcliupdate==''?'':',')."obsp_cod ='".$obsp_cod."'";} if($sqlcliupdate !="") { $x =array_push($sqlItem,"UPDATE clientes SET ".$sqlcliupdate." WHERE cli_codigo = " .$clienteOriginal); } $x =array_push($sqlItem," UPDATE asistencias SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_antecedentes SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_biopsia_espermograma SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_conceptos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_criosemen SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_derivaciones SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_desarrollo SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_determinaciones SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); if(intval($info_max_it[0]["maxit"])>0) { $x =array_push($sqlItem," UPDATE cli_diagnosticos SET cd_item_unificacion=cd_item WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_diagnosticos SET cd_item = cd_item + ".$info_max_it[0]["maxit"]." + 100 WHERE cli_codigo = " .$clienteDuplicado); } $x =array_push($sqlItem," UPDATE cli_diagnosticos SET cli_codigo = ".$clienteOriginal.",cli_codigo_unificacion = ".$clienteDuplicado.",cd_item_unificacion = cd_item WHERE cli_codigo = " .$clienteDuplicado); if(intval($info_max_it[0]["maxit"])>0) { $x =array_push($sqlItem," UPDATE cli_diagnosticos SET cd_item = cd_item - 100 WHERE cli_codigo = " .$clienteOriginal." AND cli_codigo_unificacion IS NOT NULL"); } $x =array_push($sqlItem," UPDATE cli_ecocardiograma SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_enfermeria_acciones SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_espermograma SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_estudiospedidos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_examenes SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_fertilidad SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_ficha_biologica SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_ficha_biologica_pareja SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_ficha_ecg SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_ficha_fim SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_ficha_kinesiologia SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_fichaenfermeria SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_fichaestudios SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_fichaguss SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_fichainternacion SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); //$x =array_push($sqlItem,"UPDATE cli_fichaoncologia SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_fichapediatrica SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_fichaperinatal SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_flebologia SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_imagenes SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_informeenfermeria SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_informeenfermeria_auditoria SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_inseminacion_intrauterina SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_laboratorio_analisis SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_laboratorio_covid SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_laboratorios SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_lesionmedular_asa SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_medicamentos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_paps_seguimiento SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_preoperatorio SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_recetas SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_tamizajenutricional SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cli_vacunas SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE cobranzas SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE conceptos_devengados SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE estudios_reclamos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE exportaciones SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE facturas SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE guardia_atenciones SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE int_prescripcion SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE int_prescripcion_auditoria SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE movimientos_stock SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE movimientos_stock_fijo SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE orden_internacion SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE pedidos_interconsultas SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE practica SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE practica_autorizar SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE practicas_modulos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE presupuestos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE quirofano_turnos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE recibos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE sepsis SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE stock_productos_identificacion SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE terapias SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE tomografo_turnos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE turnos SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE turnos_auditoria SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE turnos_tomografo SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," UPDATE vacuna_deta SET cli_codigo = ".$clienteOriginal." WHERE cli_codigo = " .$clienteDuplicado); $x =array_push($sqlItem," DELETE FROM clientes WHERE cli_codigo = " .$clienteDuplicado); } } // if($info_cliorg[0]["cli_dni"]=='56981584') // { // //$indexo = count($sqlItem)-1; // $indexn = count($sqlItem)-1; // for($r=$indexo+1;$r<=$indexn;$r++) // { // print_r($sqlItem[$r]);print_r("\n"); // } // // print_r("---ORIGINAL--");print_r("\n");print_r($info_cliorg[0]);print_r("\n"); // // print_r("tid_codigo: vacionAct[".nuevoValorClienteNoVacio($info_cliorg[0]["tid_codigo"])."]");print_r("\n"); // } } //print_r($sqlItem);die("---pochi---"); $uniq_id = md5(uniqid(time())); $path = "./logs/"; $logfilename = $path.'log_unificacion_'.$uniq_id.'_'.(date('dmY_His')).'.log'; $actual = print_r($sqlItem,true); file_put_contents($logfilename, $actual); $output=''; for($i=0,$t=count($sqlItem);$i<$t;$i++) { $output.=$sqlItem[$i]."\n"."GO"."\n"; } $path = "./logs/"; $logfilename = $path.'log_unificacion_sc_'.$uniq_id.'_'.(date('dmY_His')).'.log'; //$actual = print_r($output,true); file_put_contents($logfilename, $output); //print_r($sqlItem); die("---pochi---"); $totalItems = count($sqlItem); if($totalItems>0) { if( setConeccionTransaccion() ) { $flagTransactionInit = true; $GLOBALS['dbSQLTR']->setBeginTransaction(); $continue = true; for($i=0;$i<$totalItems&&$continue;$i++) { $resultado = $GLOBALS['dbSQLTR']->QueryTR($sqlItem[$i],true); if ( !$resultado ) { $res = $GLOBALS['dbSQLTR']->setRollbackTransaction(); $continue = false; $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1005]"; print_r($sqlItem[$i]);//die("---pochi---"); } } if( $continue ) { $res = $GLOBALS['dbSQLTR']->setCommitTransaction(); $resultInfo['res'] = 1; return true; } } else { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Error al grabar los cambios - [Codigo 1004]"; } } else { $resultInfo['res'] = 1; $resultInfo['des'] = "No se encontraron pacientes duplicados"; return true; } return false; } catch ( Exception $e ) { if( $flagTransactionInit ) { $GLOBALS['dbSQLTR']->setRollbackTransaction(); } $resultInfo['code'] = CODE_RESULT_ERROR_FATAL; $resultInfo['errorDes'] = "Error:".($e->__toString()); //$this->logTrace(debug_backtrace(),$e->__toString()); //print_r($e->__toString()); return false; } } // -------------------------------------------- // END - CONSISTENCIA // -------------------------------------------- //-------------------------------- //DASHBOARD //-------------------------------- function updateprofesionalEstadoBloqueo($codMed) { $sql = "UPDATE medicos SET med_bloqueado = (CASE WHEN med_bloqueado = 1 THEN 0 ELSE 1 END) WHERE med_codigo = '".addslashes($codMed)."'"; //print_r($sql);print_r("\n");//die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } function cambiarEstadoBloqueoProfesional(&$resultInfo) { try { if( isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) ) { $codigo = $_REQUEST["cod"]; $resultado = updateprofesionalEstadoBloqueo($codigo); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar al grabar las imagenes: [".$e->getMessage()."]"; return false; } } function updateprofesionalTipoAtencion($codMed) { $fields=''; if(isset($_REQUEST["dea"])) { $field="med_flag_da = '".addslashes($_REQUEST["dea"])."'"; $sep=","; if($fields==''){$sep="";} $fields.=$sep.$field; } if(isset($_REQUEST["dep"])) { $field="med_flag_dp = '".addslashes($_REQUEST["dep"])."'"; $sep=","; if($fields==''){$sep="";} $fields.=$sep.$field; } if(isset($_REQUEST["aga"])) { $field="med_flag_aa = '".addslashes($_REQUEST["aga"])."'"; $sep=","; if($fields==''){$sep="";} $fields.=$sep.$field; } if(isset($_REQUEST["agp"])) { $field="med_flag_ap = '".addslashes($_REQUEST["agp"])."'"; $sep=","; if($fields==''){$sep="";} $fields.=$sep.$field; } if(isset($_REQUEST["der"])) { $field="med_flag_der = '".addslashes($_REQUEST["der"])."'"; $sep=","; if($fields==''){$sep="";} $fields.=$sep.$field; } // $sql = "UPDATE medicos // SET med_bloqueado = (CASE WHEN med_bloqueado = 1 THEN 0 ELSE 1 END) // WHERE med_codigo = '".addslashes($codMed)."'"; if($fields!='') { $sql = "UPDATE medicos SET ".$fields." WHERE med_codigo = '".addslashes($codMed)."'"; //print_r($sql);print_r("\n");die; $rs = $GLOBALS['dbSQL']->Query($sql,true); if ( $rs ) { return true; } return false; } return true; } function cambiarTipoAtencionProfesional(&$resultInfo) { try { if( isset($_REQUEST["cod"]) && !empty($_REQUEST["cod"]) && !is_null($_REQUEST["cod"]) ) { $codigo = $_REQUEST["cod"]; $resultado = updateprofesionalTipoAtencion($codigo); $resultInfo['code'] = 0; $resultInfo['data'] = array( "resultado" => $resultado ); return true; } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Parámetros incompletos"; } return false; } catch (Exception $e) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Se produjo un error al consultar al grabar las imagenes: [".$e->getMessage()."]"; return false; } } //-------------------------------- require './modulos/mod_afip.php'; require './modulos/mod_ventas.php'; //REQUIERE mod_afip.php require './modulos/mod_turnero_nube.php'; require './modulos/mod_profesionales.php'; require './modulos/mod_ionc.php'; require './modulos/mod_ifer.php'; require './modulos/mod_smi.php'; require './modulos/mod_apross.php'; require './modulos/mod_whatsapp.php'; require './modulos/mod_cmc.php'; //REQUIERE mod_whatsapp.php require './modulos/mod_sdq.php'; //REQUIERE mod_whatsapp.php require './modulos/mod_cer.php'; ?>