<?php
class GridEdadinvAction extends wtActions
{
    public function execute()
    {
        try
        {
            myUser::getUser()->validar_session();

            $s_IdItem    = $this->getRequestParameter( 'IdItem' );
            $s_IdLinea   = $this->getRequestParameter( 'IdLinea' );
            $s_IdFamilia = $this->getRequestParameter( 'IdFamilia' );
            $s_IdMarca   = $this->getRequestParameter( 'IdMarca' );
            
            $s_MostrarMontos   = $this->getRequestParameter( 'MostrarMontos' );
            $s_MostrarUnidades = $this->getRequestParameter( 'MostrarUnidades' );
            $s_MostrarUnidades = $this->getRequestParameter( 'MostrarUnidades' );
            $s_ExportarTipo    = $this->getRequestParameter( 'ExportarTipo' );

            $this->a_DataItem = ALM_ItemMastFN::buscarItemPorParametros( $this->getRequestParameterAll() );
            
            //para recuperar la moneda del sistema
            $o_MST_ListaPrecioCabeceraFN = new MST_ListaPrecioCabeceraFN();
            $o_MST_ListaPrecioCabeceraBN = $o_MST_ListaPrecioCabeceraFN = $o_MST_ListaPrecioCabeceraFN->selectByPK( myUser::getUser()->getIdBusiness(), myUser::getUser()->getIdSucursal() );
            if( !$o_MST_ListaPrecioCabeceraBN )
            {
                $o_MST_ListaPrecioCabeceraBN = $o_MST_ListaPrecioCabeceraFN->buscaListaPrecioAlternativo();
            }
            $this->s_IdMoneda = $o_MST_ListaPrecioCabeceraBN->getIdMoneda();

            $this->a_ALM_AlmacenMast = array();
            $o_ALM_AlmacenMastFN = new ALM_AlmacenMastFN();
            $o_ALM_AlmacenMastFN->setIdCompania( myUser::getUser()->getIdBusiness() );
            $o_ALM_AlmacenMastFN->addOrderBy( ALM_AlmacenMastFN::Codigo );
            if( myUser::getUser()->getIdBusiness() )
            {
                $this->a_ALM_AlmacenMast = $o_ALM_AlmacenMastFN->select();
            }
        }
        catch ( Exception $o_Exception )
        {
            
        }

        //se crea una funcion anonima asociada a una variable
        $this->buscarDocumentosRelacionados = function( $s_ItemId, $i_Inicio, $i_Fin )
        {
            $o_ALM_TransParaRepInvFN = new ALM_TransParaRepInvFN();
            $o_ALM_TransParaRepInvFN->setIdCompania( myUser::getUser()->getIdBusiness() );
            $o_ALM_TransParaRepInvFN->setIdSucursal( myUser::getUser()->getIdSucursal() );
            //$o_ALM_TransParaRepInvFN->setIdAlmacen( $s_IdAlmacen );
            $o_ALM_TransParaRepInvFN->setIdItem( $s_ItemId );
            $s_Param = array( "Inicio" => $i_Inicio, "Fin" => $i_Fin );
            $a_ALM_TransParaRepInv = $o_ALM_TransParaRepInvFN->buscarDocumentosRelacionados( $s_Param );
            $i_CantSaldoTotal = 0;
            foreach ( $a_ALM_TransParaRepInv as $o_ALM_TransParaRepInvBN ) 
            {
                $i_CantSaldoTotal = $i_CantSaldoTotal + $o_ALM_TransParaRepInvBN->getCantSaldo();
            }
            return $i_CantSaldoTotal;
        };
        
        ViewResponse::getInstance()->setMethodAjax();
    }
}
