<?php
class grupoalmacenActions extends wtActions
{
    public function executeIndex()
    {
    }
    
    public function executeList()
    {
    	$this->block = $this->getRequestParameter( 'block' );
    	
    	$o_GSS_CompaniaFN = new GSS_CompaniaFN();
    	$o_GSS_CompaniaFN->addOrderBy(GSS_CompaniaFN::DescripcionCorta );
    	$o_GSS_CompaniaFN->setEstado('A');
        $this->a_GSS_Compania= $o_GSS_CompaniaFN->select();
    }
    
    public function executeGrid()
    {
       
        $block = $this->getRequestParameter( 'block' );
        $page  = $this->getRequestParameter( 'page' );
        
         set_header_utf8();
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $o_GridAction = new GridAction();
        $o_GridAction->setClassFind( new ALM_AlmacenGrupoFN() );
        
        $o_GridAction->addMethodDefault("IdCompania", myUser::getUser()->getIdBusiness());

        $o_GridAction->addAssignFilter( "IdCompania" );
         $o_GridAction->addOrder( "Descripcion", ALM_AlmacenGrupoFN::Descripcion);
        $o_GridAction->addOrder( "Estado", ALM_AlmacenGrupoFN::Estado );
        
        $o_GridAction->addConditionFilter( "Descripcion", ALM_AlmacenGrupoFN::Descripcion, "LIKE", "%%s%" );
        $o_GridAction->addOrderDefault( ALM_AlmacenGrupoFN::IdAlmacenGrupo , true );
        
        $o_GridAction->setControlArray( false );
        
        $o_GridAction->setNumberRecordsShow( 15 );
        
        $o_GridAction->initialize();
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $a_ResultJson['page']    = $o_GridAction->getPage();
        $a_ResultJson['total']   = $o_GridAction->getTotalPage();
        $a_ResultJson['records'] = $o_GridAction->getTotalRecords();
        $a_ResultJson['rows']    = $o_GridAction->getResultArray();
        //pr( $a_ResultJson );
        $a_ResultSelect    = $o_GridAction->getResultSelect();
        $a_Rs = array();
        foreach ( $a_ResultSelect as $iKey => $o_ObjClassBN )
        {
            $o_GSS_CompaniaFN = new GSS_CompaniaFN();
            $o_GSS_CompaniaBN = $o_GSS_CompaniaFN->selectByPK( $o_ObjClassBN->getIdCompania() );
        
           
            if(!is_object($o_GSS_CompaniaBN)) $o_GSS_CompaniaBN = new GSS_CompaniaBN();
            
            $a_Rs[] = array(  
                                "IdAlmacenGrupo"   => 		utf8_encode( $o_ObjClassBN->getIdAlmacenGrupo()),
                                "IdCompania"         => utf8_encode( $o_GSS_CompaniaBN->getDescripcionCorta() ),
                                "Descripcion"      => utf8_encode( $o_ObjClassBN->getDescripcion() ),
                                "Estado"     => $o_ObjClassBN->getEstado()
                           );
        }
        $a_ResultJson['rows'] = $a_Rs;
        
        echo json_encode( $a_ResultJson );

        return ViewResponse::NONE;   
    }
    
    
   
    public function executeAddedit()
    {
        $this->block      = $this->getRequestParameter( 'block' );
        $this->i_Id       = $this->getRequestParameter( 'i_Id' );
        $this->s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
        
        $o_GSS_CompaniaFN = new GSS_CompaniaFN();
        $o_GSS_CompaniaFN->addOrderBy(GSS_CompaniaFN::DescripcionCorta );
        $o_GSS_CompaniaFN->setEstado('A');
        $this->a_GSS_Compania= $o_GSS_CompaniaFN->select();
                
        $this->s_Titulo = "Nuevo Grupo Almacén";
        $o_ALM_AlmacenGrupoBN = new ALM_AlmacenGrupoBN();
        $o_ALM_AlmacenGrupoBN->setEstado('A');
        $this->o_ALM_AlmacenGrupoBN = $o_ALM_AlmacenGrupoBN;
        if( $this->s_TipoProc == "upd" )
        {
            $this->s_Titulo = "Editar Grupo Almacen";
            $o_ALM_AlmacenGrupoFN = new ALM_AlmacenGrupoFN();
            $this->o_ALM_AlmacenGrupoBN = $o_ALM_AlmacenGrupoFN->selectByPK( $this->i_Id );
        }
    }
   
    public function executeSaveAddEdit()
    {
        $block      = $this->getRequestParameter( 'block' );
        $i_Id       = $this->getRequestParameter( 'i_Id' );
        $s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
        $TypeSub    = $this->getRequestParameter( 'TypeSub' );
        
        $IdCompania     = $this->getRequestParameter( 'IdCompania' );
        $IdAlmacenGrupo = $this->getRequestParameter( 'IdAlmacenGrupo' );
        $Descripcion    = $this->getRequestParameter( 'Descripcion' );
        $Estado         = $this->getRequestParameter( 'Estado' );
        
        try
        {            
        	$o_ALM_AlmacenGrupoDP = new ALM_AlmacenGrupoDP();            
            $o_ALM_AlmacenGrupoDP->setDescripcion( $Descripcion );
            $o_ALM_AlmacenGrupoDP->setEstado( $Estado );
            $o_ALM_AlmacenGrupoDP->setIdCompania( (int)$IdCompania );
            
            if( $s_TipoProc == "nvo" )
            {
                //NUEVO
                //$IdMarca = ALM_MarcaFN::recuperarId();
                $o_ALM_AlmacenGrupoDP->setIdAlmacenGrupo($IdAlmacenGrupo);
                $o_ALM_AlmacenGrupoDP->setFechaCreacion( date( "Y-m-d H:i:s" ) );
                $o_ALM_AlmacenGrupoDP->setUsuarioCreacion( myUser::getUser()->getUserId() );
              
                $b_Result = $o_ALM_AlmacenGrupoDP->save();
                $i_Id = $IdAlmacenGrupo;
            }
            else 
            {
                //UPDATE
                //$i_Id = ( int ) $this->getRequestParameter( 'i_Id' );
                $o_ALM_AlmacenGrupoDP->setIdAlmacenGrupo($i_Id );
                $o_ALM_AlmacenGrupoDP->setFechaModificacion( date( "Y-m-d H:i:s" ) );
                $o_ALM_AlmacenGrupoDP->setUsuarioModificacion( myUser::getUser()->getUserId() );
                $b_Result = $o_ALM_AlmacenGrupoDP->update();
            }
            
            $a_Rs['type_sub'] = $TypeSub;
            $a_Rs['error']    = false;
            $a_Rs['id']       = $i_Id;
        }
        catch ( Exception $o_Exception )
        {
            $a_Rs['error']         = true;
            $a_Rs['mensaje_error'] = $o_Exception->getMessage();
        }
        echo json_encode( $a_Rs );
        return ViewResponse::NONE;
    }
    
    public function executeAudi()
    {
        $block          = $this->getRequestParameter( 'block' );
        $i_Id           = $this->getRequestParameter( 'i_Id' );
        $this->s_Topico = "Almacen Grupo";
        $o_ALM_AlmacenGrupoFN = new ALM_AlmacenGrupoFN();
        $this->o_ObjectBN = $o_ALM_AlmacenGrupoFN->selectByPK( $i_Id );
    }
    
    public function executeViewdel()
    {
        $this->block      = $this->getRequestParameter( 'block' );
        $this->i_Id       = $this->getRequestParameter( 'i_Id' );
        $this->s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
       
        $o_GSS_CompaniaFN = new GSS_CompaniaFN();
        $this->a_GSS_Compania= $o_GSS_CompaniaFN->select();
        
        $o_ALM_AlmacenGrupoFN = new ALM_AlmacenGrupoFN();
        $this->o_ALM_AlmacenGrupoBN = $o_ALM_AlmacenGrupoFN->selectByPK( $this->i_Id );
    }
    
    /* public function executeDeleteRow()
    {
        $block      = $this->getRequestParameter( 'block' );
        $i_Id       = $this->getRequestParameter( 'i_Id' );
        $s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
        try 
        {
            $o_MST_UnidadMastDP = new MST_UnidadMastDP();
            $o_MST_UnidadMastDP->setIdUnidad( $i_Id );
            $o_MST_UnidadMastDP->delete();

            $a_Rs['error']   = false;
            $a_Rs['id']      = $i_Id;
        }
        catch ( Exception $o_Exception )
        {
            $a_Rs['error']   = true;
            $a_Rs['mensaje_error_ex'] = $o_Exception->getMessage();
            $a_Rs['mensaje_error'] = "No se pudo eliminar el registro.";
        }
        echo json_encode( $a_Rs );
        return ViewResponse::NONE;
    }*/
    
    
    public function executeDeleteRow()
    {
        $block      = $this->getRequestParameter( 'block' );
        $i_Id       = $this->getRequestParameter( 'i_Id' );
        $s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
        
        try 
        {
        	
            $o_ALM_AlmacenGrupoDP = new ALM_AlmacenGrupoDP();
           // $o_MST_UnidadMastDP->setIdUnidad( $i_Id );
            $o_ALM_AlmacenGrupoDP->setIdAlmacenGrupo($i_Id );
            $o_ALM_AlmacenGrupoDP->delete();

            $a_Rs['error']   = false;
            $a_Rs['id']      = $i_Id;
        }
        catch ( Exception $o_Exception )
        {
            $a_Rs['error']   = true;
            $a_Rs['mensaje_error_ex'] = $o_Exception->getMessage();
            $a_Rs['mensaje_error'] = "No se pudo eliminar el registro.";
        }
        echo json_encode( $a_Rs );
        return ViewResponse::NONE;
    }
}