<?php
class recepHabitActions extends wtActions
{
    public function executeNavBarDemo()
    {
        LayoutTemplate::getInstance()->setUseBootstrap();
    }

    public function executeList()
    {
        LayoutTemplate::getInstance()->setUseBootstrap();

        //se recupera maestro de pisos 
        

        $o_MST_UbicacionFN = new MST_UbicacionFN();
        $o_MST_UbicacionFN->addCondition( MST_UbicacionFN::IdUbicacionPertenece, '<>', 0, false );
        $o_MST_UbicacionFN->addOrderBy( MST_UbicacionFN::IdUbicacion );
        $this->a_MST_Ubicacion = $o_MST_UbicacionFN->select();
    }

    public function executeAsignarEstado()
    {
        LayoutTemplate::getInstance()->setUseBootstrap();

        $this->b_Control = false;
        $this->s_MensajeError = "";
        $this->s_IdUbicacion = $this->getRequestParameter( 'idubicacion' );

        try
        {
            $this->o_MST_UbicacionBN = new MST_UbicacionBN();

            $o_MST_UbicacionFN = new MST_UbicacionFN();
            $o_MST_UbicacionBN = $o_MST_UbicacionFN->selectByPK( $this->s_IdUbicacion );
            if( $o_MST_UbicacionBN )
            {
                $this->o_MST_UbicacionBN = $o_MST_UbicacionBN;
            }

            if( $this->getRequestParameter( 'Control' ) )
            {
                $o_SRV_UbicacionEstadoFN = new SRV_UbicacionEstadoFN();   
                $o_SRV_UbicacionEstadoBN = $o_SRV_UbicacionEstadoFN->selectByPK( $this->s_IdUbicacion );
                //pr( $o_SRV_UbicacionEstadoBN );

                $s_EstadoUbicacion = $this->getRequestParameter( 'Estado' );

                if( $o_SRV_UbicacionEstadoBN->getIdEstados() == $s_EstadoUbicacion )
                {
                    throw new Exception( "Tiene que seleccionar una Estado Diferente." );
                }

                $s_EstadoDesc = MST_EstadosHabitacionMastFN::buscarDestalleEstado( $s_EstadoUbicacion );

                //ahora se cambia el estado la ubicacion
                $o_SRV_UbicacionEstadoDP = new SRV_UbicacionEstadoDP();
                $o_SRV_UbicacionEstadoDP->setIdUbicacion( ( int ) $this->s_IdUbicacion );
                $o_SRV_UbicacionEstadoDP->delete();

                $o_SRV_UbicacionEstadoDP->setIdEstados( ( int ) $s_EstadoUbicacion );
                $o_SRV_UbicacionEstadoDP->setEstadoNombre( $s_EstadoDesc );
                $o_SRV_UbicacionEstadoDP->setUsuarioCreacion( myUser::getUser()->getUserId() );
                $o_SRV_UbicacionEstadoDP->setFechaCreacion( date( "Y-m-d H:i:s" ) );
                $o_SRV_UbicacionEstadoDP->save();

                //ahora se guarda el log
                $i_IdLog = SRV_UbicacionEstadoLogDP::recuperarId();
                $o_SRV_UbicacionEstadoLogDP = new SRV_UbicacionEstadoLogDP();
                $o_SRV_UbicacionEstadoLogDP->setIdUbicacionEstLog( $i_IdLog );
                $o_SRV_UbicacionEstadoLogDP->setIdUbicacion( ( int ) $this->s_IdUbicacion );
                $o_SRV_UbicacionEstadoLogDP->setIdEstados( ( int ) $s_EstadoUbicacion );
                $o_SRV_UbicacionEstadoLogDP->setEstadoNombre( $s_EstadoDesc );
                $o_SRV_UbicacionEstadoLogDP->setFechaCreacion( date( "Y-m-d H:i:s" ) );
                $o_SRV_UbicacionEstadoLogDP->setUsuarioCreacion( myUser::getUser()->getUserId() );
                $o_SRV_UbicacionEstadoLogDP->setFechaModificacion( date( "Y-m-d H:i:s" ) );
                $o_SRV_UbicacionEstadoLogDP->setUsuarioModificacion( myUser::getUser()->getUserId() );
                $o_SRV_UbicacionEstadoLogDP->save();

                $this->b_Control = true;

            }
        }
        catch( Exception $o_Exception )
        {
            $this->s_MensajeError = $o_Exception->getMessage();
        }
        
    }

}