sDiv = $sDiv; $this->nIdCentro = $nIdCentro; $this->dtFechaCalendar = (empty( $aPropiedades['FECHA'] ) ? false : $aPropiedades['FECHA'] ); $this->sUrl = (empty( $aPropiedades['URL'] ) ? $_SERVER[PHP_SELF] . '?' : $aPropiedades['URL'] ); $this->sClass = (empty( $aPropiedades['CLASS'] ) ? false . '?' : $aPropiedades['CLASS'] ); $this->bLeyenda = (empty( $aPropiedades['LEYENDA'] ) ? true . '?' : $aPropiedades['LEYENDA'] ); $this->bModeCita = (empty( $aPropiedades['MODE_CITA'] ) ? false : $aPropiedades['MODE_CITA'] ); $this->nIdServicio = (empty( $aPropiedades['IDSERVICIO'] ) ? false : $aPropiedades['IDSERVICIO'] ); $this->nIdEmpleado = (empty( $aPropiedades['IDEMPLEADO'] ) ? false : $aPropiedades['IDEMPLEADO'] ); // Obtenemos el mes y el año. Si no nos envian una fecha utilizamos la fecha actual $aAux = (!$aPropiedades['FECHA'] ? array( date('Y'), date( 'm' ), date('d') ) : explode( '-', $this->dtFechaCalendar ) ); $this->nMesCalendar = intval( $aAux[1] ); $this->nMesCalendar0 = ($this->nMesCalendar < 10 ? '0' . $this->nMesCalendar : $this->nMesCalendar); $this->nAnoCalendar = $aAux[0]; $this->dtFechaActual = date( "Y-m-d" ); // Comprobamos si el año es bisiesto o no para obtener los dias del calendario if( $this->nAnoCalendar % 4 == 0 && ( $this->nAnoCalendar % 100 != 0 || $this->nAnoCalendar % 400 == 0) ) $this->aCountDias = array( '', '31', '29', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31' ); else $this->aCountDias = array( '', '31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30','31' ); // Obtenemos el mes anterior y siguiente $this->dtMesAnterior = date( 'Y-m-d', mktime( 0, 0, 0, $this->nMesCalendar - 1, 01, $this->nAnoCalendar ) ); $this->dtMesSiguiente = date( 'Y-m-d', mktime( 0, 0, 0, $this->nMesCalendar + 1, 01, $this->nAnoCalendar ) ); // Array con todos los meses $this->aMeses = array( '','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre' ); } ////////////////////////// // PROPIEDADES PRIVADAS // ////////////////////////// // Html donde se va creando el formulario private $sHtml; // Nombre del div principal private $sDiv; // Mes por defecto en el calendario private $nMesCalendar; // Año por defecto en el calendario private $nAnoCalendar; // Mes por defecto en el calendario con 0 private $nMesCalendar0; // Fecha actual private $dtFechaActual; // Mes anterior private $dtMesAnterior; // Mes siguiente private $dtMesSiguiente; // Total de dias que tendra el mes private $aCountDias; // Array con los meses private $aMeses; // Id del centro private $nIdCentro; // Url del mes anterior y siguiente private $sUrl; // Clase para el div principal private $sClass; // idServicio private $nIdServicio; // idEmpleado private $nIdEmpleado; ////////////////////// // MÉTODOS PÚBLICOS // ////////////////////// // Muestra el formulario public function show() { // Variables $nDia = 1; $nPosicionPrimerDia = date( 'N', mktime( 0, 0, 0, $this->nMesCalendar, 1, $this->nAnoCalendar ) ) - 1; $nDiaSemana = $nPosicionPrimerDia; $aFiestas = array(); $aDescanso = array(); $aCitas = array(); $nDia0 = null; $sClass = null; $nFechaCompuesta = null; $aLibres = array(); // Obtenemos las citas si no estamos en modo seleccionar cita if( !$this->bModeCita ) { $aDatos = tep_db_query( 'select FECHA from cita_cita where FECHA >= "' . $this->nAnoCalendar . '-'. $this->nMesCalendar0 . '-01" and FECHA <= "' . $this->nAnoCalendar . '-'. $this->nMesCalendar0 . '-31" and IDCENTRO = ' . $this->nIdCentro . ' order by fecha asc' ); while( $aDato = tep_db_fetch_array( $aDatos ) ) $aCitas[] = $aDato['FECHA']; } // Si nos encontramos solicitando la cita, obtenemos todos los dias con los horarios libres else $aLibres = getHorariosLibresByDias( $this->nIdCentro, $this->nIdServicio, $this->nAnoCalendar . '-' . $this->nMesCalendar0 . '-01', $this->nAnoCalendar . '-' . $this->nMesCalendar0 . '-31', 1, $this->aCountDias[$this->nMesCalendar], $this->nMesCalendar, $this->nAnoCalendar ); // Obtenemos los descansos $aDatos = tep_db_query( 'select DESCANSO from cita_centro where IDCENTRO = ' . $this->nIdCentro ); $aDato = tep_db_fetch_array( $aDatos ); $aAuxs = json_decode( $aDato['DESCANSO'], true ); foreach( $aAuxs as $key => $value ) { // Si es un descanso del dia entero if( $value['manana'] == '-:-/-:-' && $value['tarde'] == '-:-/-:-' ) $aDescanso[$key] = $value; } // Obtenemos las fiestas $aDatos = tep_db_query( 'select date(FECHA) as FECHA, TITULO, REPETIR, IDFIESTA from cita_fiesta where (date(FECHA) >= "' . $this->nAnoCalendar . '-' . $this->nMesCalendar0 . '-01" and date(FECHA) <= "' . $this->nAnoCalendar . '-' . $this->nMesCalendar0 . '-31" or (date(FECHA) >= "1900-01-01" and date(FECHA) <= "3000-12-31" and REPETIR = 1 ) or (REPETIR = 2)) and IDCENTRO = ' . $this->nIdCentro . ' order by FECHA asc' ); while( $aDato = tep_db_fetch_array( $aDatos ) ) { // Si la fexa se repite le cambiamos a este año if( $aDato['REPETIR'] == 1 || $aDato['REPETIR'] == 2 ) { preg_match( '/(?[0-9]+)-(?[0-9]+)-(?[0-9]+)/', $aDato['FECHA'], $aMatch ); $aDato['FECHA'] = $this->nAnoCalendar . '-' . ($aDato['REPETIR'] == 2 ? $this->nMesCalendar0 : $aMatch['mes']) . '-' . $aMatch['dia']; } $aFiestas[$aDato['FECHA']] = array( 'TITULO' => $aDato['TITULO'], 'REPETIR' => $aDato['REPETIR'], 'IDFIESTA' => $aDato['IDFIESTA'] ); } // Comprobamos si tenemos que pintar el div principal if( $this->sDiv != '' ) $this->sHtml .= '
sClass ? ' class="' . $this->sClass . '"' : '') . '>'; // Inicio tabla $this->sHtml .= ''; $this->sHtml .= ''; $this->sHtml .= ''; // Primera fila $this->sHtml .= ''; // Recorremos para pintar los dias for( $nCont = 0; $nCont < 42; ++$nCont ) { if( $nCont >= $nPosicionPrimerDia && $nDia <= $this->aCountDias[$this->nMesCalendar] ) { // Reseteamos variables $nDia0 = ($nDia < 10 ? '0' : '') . $nDia; $nFechaCompuesta = $this->nAnoCalendar . '-' . $this->nMesCalendar0 . '-' . $nDia0; $sClass = null; $sRel = null; $sTitle = null; $sHref = 'javascript:void(0);'; // Si estamos reservando cita comprobamos si es menor if( $this->bModeCita && $nFechaCompuesta < date('Y-m-d') ) $sClass = ' dxCalendar-no'; // Si estamos reservando cita comprobamos si el dia esta completo if( $this->bModeCita && $sClass == null && count( $aLibres[$nDia] ) == 0 ) $sClass = ' dxCalendar-cita'; // Si es un dia de descanso ... if( key_exists( $nDiaSemana, $aDescanso ) ) $sClass = ' dxCalendar-descanso'; // Si es un dia de fiesta... if( key_exists( $nFechaCompuesta, $aFiestas ) ) { $sTitle = $aFiestas[$nFechaCompuesta]['TITULO']; $sRel = $aFiestas[$nFechaCompuesta]['IDFIESTA']; $sClass .= ' dxCalendar-fiesta'; } // Si es hoy... if( $this->dtFechaActual == $nFechaCompuesta ) $sClass .= ' dxCalendar-hoy'; // Si es una cita ... if( in_array( $nFechaCompuesta, $aCitas ) ) $sClass = ' dxCalendar-cita'; $this->sHtml .= ''; // Sumamos dias ++$nDia; // Sumamos dia de la semana, Si llegamos a domingo(6) volvemos al lunes if( $nDiaSemana == 6 ) $nDiaSemana = 0; else ++$nDiaSemana; } else $this->sHtml .= ''; // Cerramos y abrimos if( in_array( $nCont, array( 6, 13, 20, 27, 34 ) ) ) $this->sHtml .= ''; } // Cerramos la ultima fila $this->sHtml .= '
<< ' . $this->aMeses[$this->nMesCalendar] . ' ' . $this->nAnoCalendar . ' >>
Lunes Martes Miercoles Jueves Viernes Sábado Domingo
'; $this->sHtml .= '' . ($nDia < 10 ? '0' : '') . $nDia . ''; $this->sHtml .= '
'; // Creamos inputs de para obtener informacion desde javascript $this->sHtml .= ''; $this->sHtml .= ''; $this->sHtml .= ''; // Comprobamos si tenemos que añadir la leyenda if( $this->bLeyenda ) $this->showLeyenda(); // Comprobamos si tenemos que pintar el div principal if( $this->sDiv != '' ) $this->sHtml .= '
'; return $this->sHtml; } private function showLeyenda() { // Leyendas $this->sHtml .= '
  • Hoy
  • Seleccionado
  • '; if( $this->bModeCita ) $this->sHtml .= '
  • Dia Completo
  • '; else $this->sHtml .= '
  • Cita
  • '; $this->sHtml .= '
  • Fiesta
  • Descanso
'; } } ?> Masajes y pilates personalizado en Coruña. Centro Kirox

Pide cita Visita nuestra tienda on-line Ayuda on-line
Quiromasaje, Masaje deportivo, Puntos gatillo, Masaje transverso profundo, Descontracturante, Masaje abdominal, Masaje neuromuscular, Liberación miofascial, Masaje antiestrés, Masaje sensorial, Masaje muscular profundo, Reflexiología, Digitopuntura, Masaje circulatorio, Masaje facial, Masajes tratados con ventosas/ moxas/aceites esenciales...
Kirox.es - Todos los derechos reservados. Copyright © 2011
Desarrollado por: Servistic