Example #1
0
    /**
     * 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;
    }