/** * Función de ayuda que comprueba si un dia es feriado */ function validar_dia($dia, &$mensaje) { if (trim($dia) == '') { return true; } $es_valido = true; $fecha = toba_fecha::desde_pantalla($dia); $anio = $fecha->get_parte('año'); //--- Se forma un cache de feriados por año para evitar ir al WS en cada pedido, esto es un ejemplo de juguete! if (!isset($this->s__cache_feriados[$anio])) { $client = new SoapClient('http://webservices.mininterior.gov.ar/Feriados/Service.svc?wsdl'); $d1 = mktime(0, 0, 0, 1, 1, $anio); $d2 = mktime(0, 0, 0, 12, 31, $anio); $feriados = $client->FeriadosEntreFechasAsXml(array('d1' => $d1, 'd2' => $d2)); $this->s__cache_feriados[$anio] = $feriados->FeriadosEntreFechasAsXmlResult; } $feriados = simplexml_load_string($this->s__cache_feriados[$anio]); foreach ($feriados as $feriado) { $fecha_feriado = new toba_fecha((string) $feriado->FechaEfectiva); if ($fecha_feriado->es_igual_que($fecha)) { $es_valido = false; $mensaje = 'El ' . $fecha->get_fecha_pantalla() . ' es ' . trim((string) utf8_decode($feriado->Descripcion)) . ' por ' . trim((string) utf8_decode($feriado->TipoDescripcion)); break; } } return $es_valido; }