<?php
class GridDevolAction extends wtActions
{
    public function execute(): string
    {
        $o_GridAction = new GridAction();
        $o_GridAction->setClassFind( new VTA_PrsProyectosFN() );
        
        $o_GridAction->addAssignFilter( "EstadoDevolucion" );
        $o_GridAction->addAssignFilter( "IdProyecto" );
        //$o_GridAction->addAssignFilter( "EstadoAprob" );
        
        $o_GridAction->addConditionFilter( "ClienteDocNum", VTA_PrsProyectosFN::ClienteNroDocu, "LIKE", "%%s%" );
        $o_GridAction->addConditionFilter( "ClienteNombre", VTA_PrsProyectosFN::ClienteNombre, "LIKE", "%%s%" );
        //$o_GridAction->addConditionFilter( "OrdenNum", VTA_OrdenFN::OrdenNum, "LIKE", "%%s%" );
        
        if( $this->getRequestParameter( 'GuiaRemisionId' ) )
        {
            //$o_GridAction->addConditionFilter( "GuiaRemisionId", SR_GuiaRemisionHFN::GuiaRemisionId, "LIKE", "%%s%" );
            //$o_GridAction->addMethodDefault( VTA_OrdenFN::OrdenId, array( 'Condition'=>'IN', 'Value'=>"(SELECT ReferenciaParentId FROM SR_GuiaRemisionH WHERE GuiaRemisionId LIKE '%".$this->getRequestParameter( 'GuiaRemisionId' )."%')" ) );
        }
        
        //$o_GridAction->addConditionFilter( "FechaDocumento1", SR_MovimientoFN::Fecha, ">=", '00:00:00' );
        //$o_GridAction->addConditionFilter( "FechaDocumento2", SR_MovimientoFN::Fecha, "<=", '23:59:59' );
        
        //$o_GridAction->addMethodDefault( "TipoMovimiento", array( "Condition" => "IN", "Value" => "('VTA')" ) ); //se muestra registros con estado Completados
        $o_GridAction->addMethodDefault( VTA_PrsProyectosFN::EstadoDevolucion, array( "Condition" => "IN", "Value" => "('P')" ) );
        //$o_GridAction->addMethodDefault( VTA_OrdenFN::OrdenTipoComercialId, array( "Condition" => "IN", "Value" => "(2)" ) );

        $o_GridAction->addOrderDefault( VTA_PrsProyectosFN::FechaInicioDespacho, false );
        
        $o_GridAction->addRowsToShow
        (
            "IdProyecto", "IdPersona", "NombreProyecto", "ClienteNroDocu", "ClienteNombre", "DevolucionEstadoDesc", "FechaInicioDespacho", "NumeroDevolucionesCab", "CantidadDespachado", "CantidadDevuelto", "UsuarioCreacion", "CantidadPorDevolver"
        );
        
        $o_GridAction->setNumberRecordsShow( 100 );
        
        $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();
        
        echo json_encode( $a_ResultJson );
        
        return ViewResponse::NONE;
    }
}
