<?php
class iRecepcionUbicacion
{
    public static function validarItemEsDiaSemanaFeriado( $o_ALM_ItemMastBN )
    {
        //recupero la representacion numerica del dia de  la semana
        $i_DiaSemana      = date( "N" ); // 1, 2 , 3 .... 7
        $b_ControlFeriado = false;

        //ahora se recupera el listado de dias asociado al item
        $o_MST_ItemDiaSemanaFN = new MST_ItemDiaSemanaFN();
        $o_MST_ItemDiaSemanaFN->setIdItem( $o_ALM_ItemMastBN->getIdItem() );
        $a_MST_ItemDiaSemana = $o_MST_ItemDiaSemanaFN->select();
        //pr( $a_MST_ItemDiaSemana );
        
        //si hoy es declarado feriado, se agrega al array un objeto con el id feriado
        $o_GSS_FeriadosMastFN = new GSS_FeriadosMastFN();
        $o_GSS_FeriadosMastFN->setAnio( date( "Y" ) );
        $o_GSS_FeriadosMastFN->setMes( date( "m" ) );
        $o_GSS_FeriadosMastFN->setDia( date( "d" ) );
        $a_GSS_FeriadosMast = $o_GSS_FeriadosMastFN->select();
        $s_DiaNumeroFeriado = "";
        if( $a_GSS_FeriadosMast )
        {
            $b_ControlFeriado = true;
            $s_DiaNumeroFeriado = $a_GSS_FeriadosMast[0]->getDiaNumero();
            $o_MST_ItemDiaSemanaBN = new MST_ItemDiaSemanaBN();
            $o_MST_ItemDiaSemanaBN->setIdItem( $o_ALM_ItemMastBN->getIdItem() );
            $o_MST_ItemDiaSemanaBN->setDiaNumero( $s_DiaNumeroFeriado );

            //$a_MST_ItemDiaSemana[] = $o_MST_ItemDiaSemanaBN;
        }
        //pr( $a_MST_ItemDiaSemana );
        $b_Control = false;
        foreach ( $a_MST_ItemDiaSemana as $o_MST_ItemDiaSemanaBN ) 
        {
            //control por los dias de semana
            if( $o_MST_ItemDiaSemanaBN->getDiaNumero() == $i_DiaSemana )
            {
                if( !$b_ControlFeriado )
                {
                    $b_Control = true;
                }
            }
            //control por si hoy esta asignado como feriado
            if( $o_MST_ItemDiaSemanaBN->getDiaNumero() == $s_DiaNumeroFeriado )
            {
                $b_Control = true;
            }
        }

        return $b_Control;
    }
}