'."\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); $intentos=1; $reintentos=2; while ((!$exito) && ($intentos < $reintentos)) { sleep(5); $exito = @mail(EMAIL_CONSULTAS, $subject, $body, $Headers); $intentos++; } return 0; } function sendComentario(&$resultInfo) { $resultado = enviarEmailContacto(); if( $resultado === 0 ) { //Listar Obras Sociales $resultInfo['code'] = 0; } else { switch($resultado) { case 1: { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "El nombre esta vacio"; } break; case 2: { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "El email esta vacio"; } break; case 3: { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "El teléfono esta vacio"; } break; case 4: { $resultInfo['code'] = 4; $resultInfo['errorDes'] = "El comentario esta vacio"; } break; default: { $resultInfo['code'] = -1; $resultInfo['errorDes'] = "Se produjo un error al recibir el comentario"; } break; } } } function getReplaceDataWs($tipo, $body, $datos) { switch($tipo) { //Confirmaicion de Alta de Turno case TYPE_EMAIL_CT: $body = str_replace('{turnoN}', $datos['id'], $body); $body = str_replace('{turnoF}', $datos['info'][0], $body); $body = str_replace('{turnoH}', $datos['info'][1], $body); $body = str_replace('{turnoO}', $datos['info'][2], $body); $body = str_replace('{turnoP}', $datos['info'][3], $body); $body = str_replace('{turnoM}', $datos['info'][4], $body); $body = str_replace('{turnoE}', $datos['info'][5], $body); break; //Cancelacion de Turno case TYPE_EMAIL_CCT: $body = str_replace('{turnoN}', $datos['id'], $body); $body = str_replace('{turnoF}', $datos['info'][0], $body); $body = str_replace('{turnoH}', $datos['info'][1], $body); $body = str_replace('{turnoO}', $datos['info'][2], $body); $body = str_replace('{turnoP}', $datos['info'][3], $body); $body = str_replace('{turnoM}', $datos['info'][4], $body); $body = str_replace('{turnoE}', $datos['info'][5], $body); break; } return $body; } function getEmail_CT_HTMLWs() { //*********************************************************** // HTML //*********************************************************** $msjHTML ='
 

Acuse de Confirmación de Turno

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

Acuse de Cancelación de Turno

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

Solicitud de Interconsulta

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

Ante cualquier consulta, por favor, contactarse con:

consultorio@sanatorioduartequiros.com

Saludos cordiales,

Secretaria de turnos SDQ

 
[ ATENCIÓN: No responda este email, fue generado Automáticamente por el Sistema ]
 
Generado por: LandaMed Software de gestión integral de centros médicos - Desarrollado por Landaware I+D
'; return $msjHTML; } function sendEmailConfirmacionWs($tipo, $idTurno, $finalCall=false) { // Envio de emails de Alertas $body = ''; if( $tipo == TYPE_EMAIL_CT) { $infoTurno = getDataTurnoWs($idTurno); $datos = array(); $datos['id'] = $idTurno; $datos['info'] = array(); $datos['info'][0] = $infoTurno[0]; $datos['info'][1] = $infoTurno[1]; $datos['info'][2] = $infoTurno[2]; $datos['info'][3] = $infoTurno[3]; $datos['info'][4] = $infoTurno[4]; $datos['info'][5] = $infoTurno[5]; $datos['email'] = $infoTurno[9]; } if( $tipo == TYPE_EMAIL_CCT) { $datos = array(); $datos['id'] = $idTurno['id']; $datos['info'] = $idTurno['data']; $datos['email'] = $idTurno['data'][9]; } // ---------------------- // 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; } $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 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] = $row["Email"]; } return $outPut; } function getListObraSociales($allFields=false) { $fields = ' [obs_codigo] AS obsid,[obs_denom] AS obsname'; if( $allFields ) { $fields = ' * '; } $order = " ORDER BY [obs_denom]"; // AND [obs_codigo] > 1 $sql = "SELECT " . $fields . " FROM [landamed].[dbo].[obrasoc] WHERE [obs_lock] != 1". $order; $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { return false; } $rs = $GLOBALS['dbSQL']->getAll(); if(count($rs)==0){return true;} return $rs; } 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 [landamed].[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;} return $rs; } function getMedicoOtrasEspe($idMed) { $sql = "SELECT m.esp_codigo, e.esp_denom as esp FROM [landamed].[dbo].[med_especialidades] AS m INNER JOIN especial AS e ON m.esp_codigo = e.esp_codigo WHERE [med_codigo] = " .$idMed; $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) { /* 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( $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 = 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 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 FROM (".$sqlSub.") AS TIN 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 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 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 ".$sqlSub." WHERE m.med_web = 1 AND m.med_bloqueado = 0 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 // FROM medicos AS m, // especial AS e, // tbl_titulos t // ".$sqlFR[0]." // WHERE m.med_web = 1 // AND m.med_bloqueado = 0 // AND m.esp_codigo = e.esp_codigo // AND t.tit_codigo = m.tit_codigo // ".$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 FROM medicos AS m ,especial AS e ,tbl_titulos as t ".$sqlFR[0]." WHERE m.med_web = 1 AND m.med_bloqueado = 0 AND m.esp_codigo = e.esp_codigo AND t.tit_codigo = m.tit_codigo ".$sqlFR[1]." 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 ) { $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 [landamed].[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 [landamed].[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 [landamed].[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 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"; $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 "; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $obm_maxdia=0; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $obm_maxdia = $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 [tur_fecha] = '".$fecha."'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $TotTur=0; $rs = $GLOBALS['dbSQL']->getAll(); foreach($rs as $row) { $TotTur = $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 [landamed].[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 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 [landamed].[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 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 [landamed].[dbo].[turnos] WHERE [med_codigo] = ". $medico." AND [tur_fecha] = '".$fecha ."' 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; $resultado = getValidarDNIFast($dataTurno["dni"], $name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail); if( $resultado ) { if( $obsflag ) { //Error obrasocial bloqueada return 9; } //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); 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 [landamed].[dbo].[empresa])'; $dataTurno["plan"] = '(SELECT [par_obpp] FROM [landamed].[dbo].[empresa])'; } //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] ) VALUES ( '. $idTurno .' ,'. "'".$dataTurno["fecha"] ."'".' ,convert(smallint, '. $dataTurno["hora"] .') ,'. $dataTurno["medico"] .' ,'. $dataTurno["idPaciente"] .' ,'. $dataTurno["dni"] .' ,'. $dataTurno["obs"] .' ,'. $dataTurno["plan"] .' ,99 ,0 ,0 ,0 ,'."''".' ,(SELECT [pra_codigo] FROM [landamed].[dbo].[empresa]) ,(SELECT [nom_codigo] FROM [landamed].[dbo].[empresa]) )'; $tursql = $sql; $rsI = $GLOBALS['dbSQL']->Query($sql); 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); 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() { $sql = "SELECT [esp_codigo] AS Cod ,[esp_denom] AS Esp FROM [landamed].[dbo].[especial] 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 [landamed].[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 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 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 ."' )"; } else { $rs['fecha'] = $fecha; $periodo = " AND ( t.tur_fecha BETWEEN '". $fecha ."' AND '". $fecha ."' )"; } $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_asiste AS asistio , t.tur_visado AS espera , t.tur_asiste_hora AS horallegada 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) { if( isset($_REQUEST["idcli"]) && !empty($_REQUEST["idcli"]) && !is_null($_REQUEST["idcli"]) && is_numeric($_REQUEST["idcli"]) ) { $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 FROM turnos AS t , medicos AS m , especial AS e , tbl_titulos tt , obrasoc as o , obsplan as op WHERE t.cli_codigo = ".$_REQUEST["idcli"]." AND t.tur_fecha >= 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 getCountListMisTurnos($idCliente) { $sql = "SELECT COUNT(*) AS TotTurnos FROM turnos AS t WHERE t.cli_codigo = ".$idCliente." AND t.tur_asiste = 0 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 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 e.esp_denom 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"]; $infoTurnoAux = getDataTurnoWs($idTurno); $sql = "DELETE FROM [turnos] WHERE [tur_numero] = " . $idTurno . " AND cli_dni = ".$dni." AND tur_asiste = 0"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $infoTurno['id'] = $idTurno; $infoTurno['data'] = $infoTurnoAux; //Enviar Email de Confirmacion //if( $dataTurno["dni"]=='27249289' ) //{ sendEmailConfirmacionWs(TYPE_EMAIL_CCT, $infoTurno); //} /*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) { $resultado = getListObraSociales(); 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 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" => count($resultado) ,"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) { $resultado = getListProfTurnos(); 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) { $turnos=array(); $resultado = getListMisTurnos($turnos); 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 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 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 [landamed].[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 validarDNIExistente($dni) { $sql = "SELECT cli_email FROM [landamed].[dbo].[clientes] WHERE ltrom(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["tel"]) && !empty($_REQUEST["tel"]) && !is_null($_REQUEST["tel"]) ) { if( ! 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); 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 ) { //,[cli_nombre_] //,'".mb_strtoupper($_REQUEST["apellido"]).' '.mb_strtoupper($_REQUEST["nombre"])."' $sql = "INSERT INTO [landamed].[dbo].[clientes] ( [cli_codigo] ,[cli_dni] ,[cli_nombre] ,[cli_fecnto] ,[cli_sexo] ,[obs_codigo] ,[obsp_cod] ,[cli_email] ,[med_codigo] ,[cli_tel] ,[cli_carnet] ,[tid_codigo] ,[dgi_codigo] ) 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"])." 00:00:00' ,'".($_REQUEST["sexo"]=="H"?"M":"F") ."' ,". $_REQUEST["obs"] .' ,'. $_REQUEST["obsp"] ." ,'".mb_strtolower(trim($_REQUEST["email"])) ."' ,1 ,'".$_REQUEST["tel"] ."' ,'".(isset($_REQUEST["afil"])?$_REQUEST["afil"]:'')."' ,1 ,5 )"; //debug($sql,true); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $resultInfo['code'] = 0; $resultInfo['data'] = array("id"=>$GLOBALS['dbSQL']->getLastId('clientes','cli_codigo')); } else { $resultInfo['code'] = 1; $resultInfo['data'] = array("res"=>"Se produjo un error al registrar los datos del usuario"); } } } } } else { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"El DNI ingresado ya se encuentra registrado"); } } else { $resultInfo['code'] = 3; $resultInfo['data'] = array("res"=>"El email ingresado ya se encuentra registrado"); } } else { $resultInfo['code'] = 2; $resultInfo['data'] = array("res"=>"El código del usuario no fue recibido"); } } function updateCliente(&$resultInfo) { if( isset($_REQUEST["idc"]) && !empty($_REQUEST["idc"]) && !is_null($_REQUEST["idc"]) && is_numeric($_REQUEST["idc"]) ) { $id = trim($_REQUEST["idc"]); $sql = " UPDATE [landamed].[dbo].[clientes] SET [cli_dni] = '".$_REQUEST["dni"] ."' ,[cli_nombre] = '".mb_strtoupper($_REQUEST["apellido"]).' '.mb_strtoupper($_REQUEST["nombre"])."' ,[cli_fecnto] = '".$_REQUEST["fna"].'-'.$_REQUEST["fnm"].'-'.$_REQUEST["fnd"]." 00:00:00' ,[cli_sexo] = '".$_REQUEST["sexo"] ."' ,[obs_codigo] = ".$_REQUEST["obs"] .' ,[obsp_cod] = '.$_REQUEST["obsp"] ." ,[cli_email] = '".mb_strtolower(trim($_REQUEST["email"]))."' ,[cli_tel] = '".$_REQUEST["telefono"]."' ,[cli_carnet] = '".$_REQUEST["afil"]."' "; $sql.= " WHERE [cli_codigo] = ".$id; //print_r($sql);die; $rs = $GLOBALS['dbSQL']->Query($sql); 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; $resultado = getValidarDNIFast($dni, $name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail); 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; } } //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'] = 2; $resultInfo['errorDes'] = "El código del usuario no fue recibido"; } } 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 [landamed].[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); 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; $resultado = getValidarDNIFast($dni, $name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail); 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; } //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 [landamed].[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); 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"]; } $profesionales=array(); $resultado = getListProfesionales($profesionales,$flagRecientes,$especialidad,$cli_id); 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 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) { $resultado = getListEspecialidades(); 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, &$name, &$codP, &$idObS, &$nameObS, &$planObS, &$idPlanObS, &$email, &$sexo, &$facn, &$tel,&$carnet,&$obsflag,&$validaemail) { $emailVal = " AND lower(c.cli_email) = '".mb_strtolower(trim($email))."' "; if( $email === -3 ){ $emailVal = ""; } if( !$GLOBALS['LOGIN_USER_EMAIL'] ) { $emailVal = ""; } $sql = "SELECT 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 FROM clientes AS c , obrasoc AS o , obsplan AS p WHERE c.cli_dni = '".$dni."' ".$emailVal." AND c.obs_codigo = o.obs_codigo AND p.obs_codigo = o.obs_codigo AND p.obsp_cod = c.obsp_cod"; //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); 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 loginUser(&$resultInfo) { $dni = ''; $email = ''; $continue = true; $resultInfo['code'] = 0; if( !( isset($_REQUEST["dni"]) && !empty($_REQUEST["dni"]) && !is_null($_REQUEST["dni"]) ) ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado"; $continue = false; } else { $dni = $_REQUEST["dni"]; } if( $GLOBALS['LOGIN_USER_EMAIL'] && !( isset($_REQUEST["email"]) && !empty($_REQUEST["email"]) && !is_null($_REQUEST["email"]) ) ) { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado"; $continue = false; } elseif( $GLOBALS['LOGIN_USER_EMAIL'] ) { $email = $_REQUEST["email"]; } if( $continue ) { 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; $resultado = getValidarDNIFast($dni, $name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail); 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; $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; $resultInfo['code'] = 0; $resultInfo['data'] = array("userinfo" => $userInfo ); //print_r($resultInfo);die( " <<>> " ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Paciente no registrado"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Paciente no registrado"; } } } 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); $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 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 getProfesionalHorariosFrecuentes($med,$rangoMed,&$calendario,&$turnero) { $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 [landamed].[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 [landamed].[dbo].[turnos] WHERE [med_codigo] = " . $med ." 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; } } //--------------------------------------------- //--------------------------------------------- //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; } if( !$flagFeriado ) { //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); } 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 [landamed].[dbo].[medhora_eventual] WHERE [med_codigo] = " . $med ." AND [mhe_fecha] >= '" . date("Y-m-d 00:00:00.000",strtotime($fechaIni)) ."' 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 [landamed].[dbo].[turnos] WHERE [med_codigo] = " . $med ." AND [tur_fecha] 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) { $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); $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 getTurneroMedico(&$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(); $calendarios= array(); $resultado = calendarioProfesional($_REQUEST["idMed"], $calendario, $turnero, $calendarios); if( $turnero ) { $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 [landamed].[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 [landamed].[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 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"]; 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 ) { $resultInfo['code'] = 0; //$resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'] ); $resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'], "email"=> $turnoInfo['email']); } 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"; } 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 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; $resultado = getValidarDNIFast($dataTurno["dni"], $name,$codP,$idObS,$nameObS,$planObS,$idPlanObS,$email,$sexo,$facn,$tel,$carnet,$obsflag,$validaemail); /* $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); */ if( $resultado ) { if( $obsflag ) { //Error obrasocial bloqueada return 9; } //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); 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 [landamed].[dbo].[empresa])'; $dataTurno["plan"] = '(SELECT [par_obpp] FROM [landamed].[dbo].[empresa])'; } else { $dataTurno["obs"] = $idObS; $dataTurno["plan"] = $idPlanObS; } //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] ) VALUES ( '. $idTurno .' ,'. "'".$dataTurno["fecha"] ."'".' ,convert(smallint, '. $dataTurno["hora"] .') ,'. $dataTurno["medico"] .' ,'. $dataTurno["idPaciente"] .' ,'. $dataTurno["dni"] .' ,'. $dataTurno["obs"] .' ,'. $dataTurno["plan"] .' ,99 ,0 ,0 ,0 ,'."''".' ,(SELECT [pra_codigo] FROM [landamed].[dbo].[empresa]) ,(SELECT [nom_codigo] FROM [landamed].[dbo].[empresa]) )'; $tursql = $sql; //print_r($sql);die(" spider "); $rsI = $GLOBALS['dbSQL']->Query($sql); 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); 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 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"]; // 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 = registrarTurno($turnoInfo); //print_r("r[".$resultado."]");die; if( $resultado!==false ) { if( $resultado === 0 ) { if( isset($_REQUEST['rt']) ) { //Cancelar Turno Reasignado } $resultInfo['code'] = 0; //$resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'] ); $resultInfo['data'] = array( "idTurno" => $turnoInfo['idTurno'], "email"=> $turnoInfo['email']); } 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"; } 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 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 [landamed].[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 [landamed].[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 [landamed].[dbo].[v_turnosvigentes] WHERE [med_codigo] = " . $_REQUEST["idMed"] . " AND [tur_fecha] 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) { $nextNumero = $numero; $r = getServiciosNombre($servicio); $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"]) ) { //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' =>'UltimoNroGenerado', 'value' =>0, 'isstr' => false, 'in' => false); array_push($params, $param); //$resultado = $GLOBALS['dbSQL']->QuerySP("[landamed].[dbo].[PP_GetLlamadorUltimoTS]",$params); $resultado = $GLOBALS['dbSQL']->executeSP("[landamed].[dbo].[PP_GetLlamadorUltimoTS]",$_REQUEST["serviceId"]); try { $tiket = imprimirNumero($resultado,$_REQUEST["serviceId"]); } catch ( Exception $e ) { // // $resultInfo['code'] = 1; // // $resultInfo['errorDes'] = $e->__toString(); // // return false; } 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 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("[landamed].[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 = ""; list($resultado,$tiket) = getNumeroServicio(); 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 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 [landamed].[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 getPacientesEspera() { $rs = array( "turnos" => false ,"numeros"=> false ); $sql1 = false; $sql2 = false; //Turnos $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 [landamed].[dbo].[turnos] as tt, [landamed].[dbo].[clientes] as tc, [landamed].[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);} if($sql2){$resultado2 = $GLOBALS['dbSQL']->Query($sql2);} 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 getListServicios() { $sql = "SELECT [ser_codigo] AS serid ,[ser_denom] AS servicio FROM [landamed].[dbo].[llamador_servicios] ORDER BY ser_denom"; $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 FROM [landamed].[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 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 [landamed].[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); if ( $rs ) { return true; } } return false; } function processEmailQueue() { $sql = " SELECT * FROM [landamed].[dbo].[email] WHERE [ema_succes] = 0 AND ema_to LIKE '%@%.%'"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); foreach($rs as $row) { $emailId = $row["ema_numero"]; $emailInfo = decodeDataB64($row["ema_messag"]); array_push($lstEmailsQueue, array(0=>$emailId, 1=>$emailInfo)); $conta++; } if($conta>0) { for($i=0;$iQuery($sql); if ( $rs ) { $conta=0; $rs = $GLOBALS['dbSQL']->getAll(); $lstEmailsQueue = array(); foreach($rs as $row) { //-->array_push($lstEmailsQueue, $row); $datos = array(); $datos['id'] = $row['men_id']; $datos['info'] = array(); $datos['email'] = $row['men_destinatario']; $datos['tipo'] = $row['men_tipo']; switch( $row['men_tipo'] ) { //Turno //Cancelación Turno //Recordatotio Turno case 1: case 2: case 3: { $datos['info'][0] = $row['men_fecha']; $datos['info'][1] = $row['men_hora']; $datos['info'][2] = htmlentities($row['men_obs']); $datos['info'][3] = '';//todo: plan $datos['info'][4] = htmlentities($row['men_medico']); $datos['info'][5] = '';//todo: especialidad $datos['info'][6] = htmlentities($row['men_paciente']); $datos['info'][7] = '';//todo: telefono } 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; } array_push($lstEmailsQueue, $datos); $conta++; } if($conta>0) { for($i=0;$iQuery($sql); if ( $rs ) { $sql = "DELETE FROM [landamed].[dbo].[email] WHERE [ema_send] IS NOT NULL AND [ema_succes] = 1"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { return true; } } return false; } function cleanEmailMessagesSendedQueue() { $sql = " INSERT INTO [landamed].[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) "; $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"; $sql.= " FROM [landamed].[dbo].[mensajes] "; $sql.= " WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1 "; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $sql = "DELETE FROM [landamed].[dbo].[mensajes] WHERE [men_fechaproceso] IS NOT NULL AND [men_procesado] = 1"; $rsN = $GLOBALS['dbSQL']->Query($sql); if ( $rsN ) { return true; } } return false; } function updateEmailState($result, $id) { if( $result!==false && $result!==0 ) { $sql = " UPDATE [landamed].[dbo].[email] SET [ema_succes] = 1,[ema_send] = getdate() "; $sql.= " WHERE [ema_numero] = ".$id; } else { $sql = " UPDATE [landamed].[dbo].[email] SET [ema_succes] = 0,[ema_send] = NULL "; $sql.= " WHERE [ema_numero] = ".$id; } $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { return true; } return false; } function updateEmailMessagesState($result, $id) { if( $result!==false && $result!==0 ) { $sql = " UPDATE [landamed].[dbo].[mensajes] SET [men_procesado] = 1,[men_fechaproceso] = getdate() "; $sql.= " WHERE [men_id] = ".$id; } else { $sql = " UPDATE [landamed].[dbo].[mensajes] SET [men_procesado] = 0,[men_fechaproceso] = NULL "; $sql.= " WHERE [men_id] = ".$id; } $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { return true; } return false; } //******************************************** // 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 getValidarUsuario($user,$pass,$userid=false) { // $sql = "SELECT emp_codigo // FROM empleado // WHERE LOWER(emp_login) = '".mb_strtolower($user)."' // AND emp_passw = '".md5($pass)."'"; if( !$userid ) { $sql = "SELECT * FROM empleado WHERE LOWER(emp_login) = '".mb_strtolower($user)."'"; //$rs = $GLOBALS['dbSQL']->Query($sql); } 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 ) { //--------------------------------------------- // 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); 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']; } } 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; $resultado = getValidarUsuario($user, $pass); //print_r('r['.$resultado.']');die; if( $resultado ) { $resultInfo['code'] = 0; $resultInfo['data'] = array("userid" => $resultado ); //print_r($resultInfo);die; } 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; } if( !getValidarUsuario($user, $pass, true) ) { return 2; } //Actualizar password $sql = 'UPDATE [dbo].[empleado] set [emp_passw_panel] = \''.md5($passnew).'\' WHERE [emp_codigo] = '.$user; $rsI = $GLOBALS['dbSQL']->Query($sql); 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 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 ); //------------------------------------------ // 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"; $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 cast(t.tur_fecha as date) = cast(getdate() as date) 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 cast(t.tur_fecha as date) = cast(getdate() as date) 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 ( $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 [landamed].[dbo].[empleado] as t1 LEFT JOIN [landamed].[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 [landamed].[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); } else { $rsD = true; } if ( $rsD ) { $values = ''; for($i=0;$iQuery($sql); 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); 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); 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); $r2 = $GLOBALS['dbSQL']->Query($sql2); //$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); 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); 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); if ( $resultado ) { //Guardar Tabla de auditoria $r = guardarAuditoria( $avisoInfo['idUsuario'], $nodo, $avisoInfo['auditoria']['g'], $avisoInfo['auditoria']['u'], $avisoInfo['tit'], $avisoInfo['msg'] ); //Actualizar Respuesta si corresponde if( isset($avisoInfo['idmsg']) ) { $r = actualizarEmailRespondido( $avisoInfo['idmsg'] ); } //Copia Email // if( false ) if( $avisoInfo['email'] ) { // $r = enviarAvisoEmail( $userlst ); $r = enviarAvisoEmail( $userlstEmail, $avisoInfo ); } return true; } } } return false; } function getEmail_Aviso_HTMLWs() { //*********************************************************** // HTML //*********************************************************** $msjHTML ='

Aviso Recibido

Remitente: {REMITENTE}

Fecha: {FECHA}

{TITULO}

Email: {EMAILREM}
  {MENSAJE}
 
[ ATENCIÓN: Este email fue generado Automáticamente por el Sistema ]
 
Generado por: LandaMed Software de Gestión Médica - Desarrollado por Landaware I+D
'; return $msjHTML; } function enviarAvisoEmail( $userlst, $avisoInfo ) { //$body = getEmail_Aviso_HTMLWs(); //Datos del remitente $sql = "SELECT emp_codigo, emp_nombre, emp_email FROM dbo.empleado WHERE emp_codigo = ". $avisoInfo['idUsuario']; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { //$remitente = $GLOBALS['dbSQL']->getOne(); $remitente = $GLOBALS['dbSQL']->getAll(); $datos = array(); $datos['info'] = array(); $datos['info'][0] = $avisoInfo['tit']; $datos['info'][1] = $avisoInfo['msg']; $datos['info'][2] = $remitente[0]['emp_nombre']; $datos['info'][3] = date("d/m/Y H:i:s"); $datos['info'][4] = $remitente[0]['emp_email']; // $body = getReplaceData( TYPE_EMAIL_AVISO, $body, $datos); $subject = "Aviso LandaMed - " . $avisoInfo['tit']; $from = "turnerolog@landaware.com.ar"; $fromN = "[Sanatorio Duarte Quirós]"; //Datos del destinatario $sql = "SELECT emp_codigo, emp_nombre, emp_email FROM dbo.empleado WHERE emp_codigo IN(".$userlst.")"; $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { $usuarios = $GLOBALS['dbSQL']->getAll(); for($i=0;$i 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al enviar aviso al grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo"; } } //Enviar Mensaje a una o mas personas especificas function sendMensajeParticipente(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && // isset($_REQUEST["tit"]) && // !empty($_REQUEST["tit"]) && // !is_null($_REQUEST["tit"]) && // trim($_REQUEST["tit"])!="" && isset($_REQUEST["msg"]) && !empty($_REQUEST["msg"]) && !is_null($_REQUEST["msg"]) && trim($_REQUEST["msg"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idUsuarios']= false; $avisoInfo['idGrupo'] = false; $avisoInfo['tit'] = $_REQUEST["tit"]; $avisoInfo['msg'] = $_REQUEST["msg"]; $avisoInfo['sub'] = ''; $avisoInfo['auditoria'] = array('g'=>false,'u'=>false); $avisoInfo['email'] = false; if( isset($_REQUEST["glst"]) && !empty($_REQUEST["glst"]) && !is_null($_REQUEST["glst"]) && trim($_REQUEST["glst"])!="" ) { $avisoInfo['idGrupo'] = $_REQUEST["glst"]; $avisoInfo['auditoria']['g'] = $_REQUEST["glst"]; $pos = strpos($_REQUEST["glst"],";"); if( $pos!==false ) { $avisoInfo["lstGrupos"] = explode(";",$_REQUEST["glst"]); } else { $avisoInfo['lstGrupos'] = array($_REQUEST["glst"]); } } if( isset($_REQUEST["ulst"]) && !empty($_REQUEST["ulst"]) && !is_null($_REQUEST["ulst"]) && trim($_REQUEST["ulst"])!="" ) { $avisoInfo['idUsuarios'] = $_REQUEST["ulst"]; $avisoInfo['auditoria']['u'] = $_REQUEST["ulst"]; $pos = strpos($_REQUEST["ulst"],";"); if( $pos!==false ) { $avisoInfo["lstUsuarios"] = explode(";",$_REQUEST["ulst"]); } else { $avisoInfo['lstUsuarios'] = array($_REQUEST["ulst"]); } } if( isset($_REQUEST["em"]) && !empty($_REQUEST["em"]) && !is_null($_REQUEST["em"]) && trim($_REQUEST["em"])!="" && $_REQUEST["em"] === 'true' ) { $avisoInfo['email'] = true; } if( $avisoInfo['idUsuarios'] || $avisoInfo['idGrupo'] ) { $resultado = sendAviso( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al enviar aviso al grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo - Destinatario/s faltantes"; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo"; } } //Enviar Respuesta al Mensaje a una o mas personas especificas function sendRespMensajeParticipente(&$resultInfo) { if( isset($_REQUEST["uid"]) && !empty($_REQUEST["uid"]) && !is_null($_REQUEST["uid"]) && trim($_REQUEST["uid"])!="" && isset($_REQUEST["mid"]) && !empty($_REQUEST["mid"]) && !is_null($_REQUEST["mid"]) && trim($_REQUEST["mid"])!="" && isset($_REQUEST["tit"]) && !empty($_REQUEST["tit"]) && !is_null($_REQUEST["tit"]) && trim($_REQUEST["tit"])!="" && isset($_REQUEST["msg"]) && !empty($_REQUEST["msg"]) && !is_null($_REQUEST["msg"]) && trim($_REQUEST["msg"])!="" ) { $avisoInfo['idUsuario'] = $_REQUEST["uid"]; $avisoInfo['idUsuarios']= false; $avisoInfo['idGrupo'] = false; $avisoInfo['idmsg'] = $_REQUEST["mid"]; $avisoInfo['tit'] = $_REQUEST["tit"]; $avisoInfo['msg'] = $_REQUEST["msg"]; $avisoInfo['sub'] = ''; $avisoInfo['auditoria'] = array('g'=>false,'u'=>false); $avisoInfo['email'] = false; if( isset($_REQUEST["em"]) && !empty($_REQUEST["em"]) && !is_null($_REQUEST["em"]) && trim($_REQUEST["em"])!="" && $_REQUEST["em"] === 'true' ) { $avisoInfo['email'] = true; } if( $avisoInfo['idmsg'] ) { $resultado = sendAviso( $avisoInfo ); if( $resultado ) { //Resultado envio del mensaje $resultInfo['code'] = 0; $resultInfo['data'] = array( "total" => 1 ,"avisos" => $resultado ); } else { $resultInfo['code'] = 1; $resultInfo['errorDes'] = "Se produjo un error al enviar aviso al grupo"; } } else { $resultInfo['code'] = 2; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo - Destinatario/s faltantes"; } } else { $resultInfo['code'] = 3; $resultInfo['errorDes'] = "Parámetros faltantes al enviar aviso al grupo"; } } //Retorna el listado de avisos recibidos de un usuario function getAvisos($avisoInfo) { /* $avisoInfo['top'] = false; $avisoInfo['pagina'] = false; $avisoInfo['limit'] = false; */ $avisos = false; $estado = ''; if( $avisoInfo['estado'] ) { switch($avisoInfo['estado']) { case 1: { $estado = ' AND t0.avi_leido = 0'; } break; case 2: { $estado = ' AND t0.avi_leido = 1'; } break; } } //$flagIsAviso = 0; //Aviso=1 (Mensaje Grupal) / Mensaje=0 (Mensaje Individual) //// Tipo => t [1: Avisos | 2: Mensajes | vacio: Todos] [OPCIONAL] $tipo = ''; if( $avisoInfo['tipo'] ) { switch($avisoInfo['tipo']) { case 1: { $tipo = ' AND t0.avi_es_grupal = 1'; } break; case 2: { $tipo = ' AND t0.avi_es_grupal = 0'; } break; } } $where = " WHERE t0.usu_codigo = " . $avisoInfo['idUsuario']; if( !$avisoInfo['bandeja'] ) { $where = " WHERE t0.usu_codigo = " . $avisoInfo['idUsuario']; $where.= $estado; } else { $where = " WHERE t0.usu_remitente = " . $avisoInfo['idUsuario']; } $where.= $tipo; $top = false; if( $avisoInfo['top'] ) { $top = ' TOP '.$avisoInfo['top']; } $pagina = false; if( $avisoInfo['pagina'] ) { $pagina = intval($avisoInfo['pagina']); } $limit = false; if( $avisoInfo['limit'] ) { $limit = intval($avisoInfo['pagina']); } // 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 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 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 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(); } return $avisos; } function getUsuariosYGrupos(&$avisos) { for($k=0;$kQuery($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); 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 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 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"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( $rs ) { // $userInfo = $GLOBALS['dbSQL']->getOne(); // return $userInfo; $userInfo = $GLOBALS['dbSQL']->getAll(); 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); 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 [landamed].[dbo].[empresa])'; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $empresa = $GLOBALS['dbSQL']->getAll(); return $empresa[0]["tur_dias"]; } return false; } function getRangoTurneroMedico($idMed) { $sql = 'SELECT med_rango_dias FROM [landamed].[dbo].[medicos] WHERE med_codigo = ' . $idMed; $resultado = $GLOBALS['dbSQL']->Query($sql); if ( $resultado ) { $medico = $GLOBALS['dbSQL']->getAll(); return intval($medico[0]["med_rango_dias"]); } return false; } function obtenerTurneroCalendarioo(&$resultInfo) { $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( $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) { $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(); } } //---------------------------- // 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); 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 [landamed].[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 FROM (".$sqlSub.") AS TIN 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 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 ".$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; } //pacientes $sql = "SELECT tld.ptock_numero AS REF ,tld.med_codigo AS MCOD ,tld.cli_codigo AS CCOD ,tld.ptock_codigo AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,tld.ptock_fecha_vto AS FVTO ,tld.ptockcn_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,cl.cli_tel AS TEL ,cl.cli_tel2 AS TEL2 ,(DATEDIFF(minute, ptock_fecha, GETDATE())) AS MEsp ,dbo.getCortesia() AS MCor 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_codigo AS TOKEN ,tld.ptock_finalizado AS FIN ,tld.ptock_importe AS IMPORTE ,tld.ptock_fecha AS FECHA ,tld.ptock_fecha_vto AS FVTO ,tld.ptockcn_satisfaccion AS SATIS ,cl.cli_dni AS DNI ,cl.cli_nombre AS NOMBRE ,cl.cli_sexo AS SEXO ,cl.cli_tel AS TEL ,cl.cli_tel2 AS TEL2 ,(DATEDIFF(minute, ptock_fecha, GETDATE())) AS MEsp ,dbo.getCortesia() AS MCor ,t2.ptockrc_numero AS REFRC 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 tld.ptock_finalizado = 0 AND ptockrc_fechaUso IS NULL"; $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 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); 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); 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); 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); 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_fechaUso ,ptockrc_satisfaccion ) VALUES ( '".addslashes($referencia)."' ,GETDATE() ,NULL ,NULL )"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); 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_fechaUso = GETDATE(), WHERE ptockrc_numero '".addslashes($idreconsulta)."'"; //print_r($sql);print_r("\n"); $rs = $GLOBALS['dbSQL']->Query($sql); if ( !$rs ) { //Fallo la actualización return ERROR_UPDATE_OPENRECORDRC_LD; } return true; } return false; } 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; } ?>