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}
| Detalle del Pedido de Interconsulta |
{RESUMEN}
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}
[ 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 0 THEN (cast((((TT.total - (CASE WHEN TT.costo IS NULL THEN 0 ELSE TT.costo END))*100)/TT.total) as decimal(12,2))) ELSE 0 END) AS pdif
,CAST((CASE WHEN TT.costo IS NULL THEN 0 ELSE TT.costo END) as decimal(12,2)) AS costosf
,CAST((CASE WHEN TT.dto IS NULL THEN 0 ELSE TT.dto END) as decimal(12,2)) AS dto
FROM (
SELECT pd.pre_numero as nro
,(CASE WHEN pd.pra_codigo < 9000 THEN 'TRATAMIENTO' ELSE 'PRODUCTO' END) as tipo
,CONVERT(VARCHAR(10),p.pre_fecha,103) AS fec
,p.cli_codigo as clicod
,c.cli_nombre AS cliname
,c.cli_dni AS doc
,pd.nom_codigo as nomcod
,pd.pra_codigo AS inocod
,nm.inos_denom as inoname
,cast(pra_precio as decimal(12,2)) AS total
,cast(pre_dto as decimal(12,2)) AS dto
,cast(pra_precio as decimal(12,2)) AS precio
,pra_cantidad as cant
,cast((SELECT SUM(pdid_costo) FROM presup_insumos_detalle AS pid WHERE pid.pre_numero =pd.pre_numero AND pid.nom_codigo =pd.nom_codigo AND pid.inos_cod =pd.pra_codigo) as decimal(12,2)) AS costo
,0 AS itemselected
,0 AS isCancel
,0 as ins
FROM presup_detalle AS pd
INNER JOIN presupuestos AS p ON p.pre_numero = pd.pre_numero
INNER JOIN clientes AS c ON p.cli_codigo = c.cli_codigo
LEFT JOIN nomenclador AS nm ON nm.inos_cod = pd.pra_codigo AND nm.nom_codigo = pd.nom_codigo
WHERE ".$params."
AND p.pre_anulado = 0
)AS TT
ORDER BY TT.fec,TT.nro";
}
}
else
{
switch($flagAprossTipo)
{
case APROSS_TIPO_TURNO:
{
$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
,'' as ureg
,'' as uconf
,'' 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
,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 turnos_autorizar_web as pw
WHERE pw.pra_numero = t.tur_numero
AND pw.aut_resultado = 1),'') as aprossaut
,ISNULL(t.tur_multiple,0) AS turmultiple
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
WHERE ".$params."
AND t.cli_codigo <> 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';
?>