<?php
class PrintGuiaRemAction extends wtActions 
{
    public function execute()
    {
        LayoutTemplate::getInstance()->setUseBootstrap();
        
        $this->s_TipoProceso       = $this->getRequestParameter( "TipoProceso" ); //POR AHORA SOLO HAY 2 TIPOS -> TR[TRANSFERENCIA] DE[DESPACHO][PARA VENTA]
        $this->s_IdRuta            = $this->getRequestParameter( "IdRuta" );
        $this->s_IdRutaLinea       = $this->getRequestParameter( "IdRutaLinea" );
        $this->s_IdMovimientoSerie = $this->getRequestParameter( "IdMovimientoSerie" );
        $this->s_IdTransferencia   = $this->getRequestParameter( "IdTransferencia" );
        $this->mensaje_error       = "";
        
        if( $this->getRequestParameter( "IdMovimientoSerie" ) )
        {
            $o_SR_MovimientoFN = new SR_MovimientoFN();
            $o_SR_MovimientoBN = $o_SR_MovimientoFN->selectByPK( $this->s_IdMovimientoSerie );
            
            //ahora se recupera la direccion de partida
            $s_AlmacenDespacho = $o_SR_MovimientoBN->getAlmacen();
            $i_IdSucursal = ALM_AlmacenMastFN::recuperarIdSucursal( $s_AlmacenDespacho );
            
            if( $o_SR_MovimientoBN->getTipoMovimiento() == "VTA" && $o_SR_MovimientoBN->getReferenciaTipo() == "OS" )
            {
                $o_DocumentoReferencia = $o_SR_MovimientoBN->getObjectDocumentoReferencia();
                $this->o_VTA_DocumentoBN = $o_DocumentoReferencia->getObjectVTADocumento();
                $this->a_VTA_DocumentoDetalle = $this->o_VTA_DocumentoBN->getArrayObjectDetalles();
            }
        }
        
        $o_GSS_SucursalFN = new GSS_SucursalFN();
        $this->o_GSS_SucursalBN = $o_GSS_SucursalFN->selectByPK( myUser::getUser()->getIdSucursal() );
        
        //para este sistema se esta trabajando con ordenes, por lo tanto se recupera el parent
        $this->o_VTA_OrdenBN      = new VTA_OrdenBN();
        $this->b_ControlProdFinal = 0;
        if( $this->o_VTA_DocumentoBN->getDocumentoParentId() )
        {
            $o_VTA_OrdenFN = new VTA_OrdenFN();
            $this->o_VTA_OrdenBN = $o_VTA_OrdenFN->selectByPK( $this->o_VTA_DocumentoBN->getDocumentoParentId() );
            
            if( $this->o_VTA_OrdenBN->getOrdenTipoClasificacionId() == VTA_OrdenBN::TIPO_PRODUCTOS_TERMINADOS )
            {
                $this->b_ControlProdFinal = 1;
            }
        }
        
        if( $this->getRequestParameter( "IdRuta" ) )
        {
            /*$s_IdRuta = $this->getRequestParameter( "IdRuta" );
            $s_IdRutaLinea = $this->getRequestParameter( "IdRutaLinea" );
            
            $o_TR_RutaFN = new TR_RutaFN();
            $o_TR_RutaBN = $o_TR_RutaFN->selectByPK( $s_IdRuta );
            
            $o_TR_RutaDetalleFN = new TR_RutaDetalleFN();
            $o_TR_RutaDetalleBN = $o_TR_RutaDetalleFN->selectByPK( $s_IdRuta, $s_IdRutaLinea );
            
            $o_VTA_DocumentoBN = $o_TR_RutaDetalleBN->getObjectVTADocumento();
            $a_VTA_DocumentoDetalle = $o_VTA_DocumentoBN->getArrayObjectDetalles();
            
            $this->o_VTA_DocumentoBN = $o_VTA_DocumentoBN;
            $this->a_VTA_DocumentoDetalle = $a_VTA_DocumentoDetalle;*/
        }

        $o_VTA_PrsProyectosFN = new VTA_PrsProyectosFN();
        $this->o_VTA_PrsProyectosBN = $o_VTA_PrsProyectosFN->selectByPK( $this->o_VTA_DocumentoBN->getIdProyecto() );
        if( !$this->o_VTA_PrsProyectosBN )
        {
            $this->o_VTA_PrsProyectosBN = new VTA_PrsProyectosBN();
        }

        $o_MST_UbigeoFN = new MST_UbigeoFN();
        $o_MST_UbigeoFN->setTipo( "DEPT" );
        $this->a_DptMST_Ubigeo = $o_MST_UbigeoFN->select();

        $o_GSS_SucursalDocumentoFN = new GSS_SucursalDocumentoFN();
        $o_GSS_SucursalDocumentoFN->setIdCompania( myUser::getUser()->getIdBusiness() );
        if( myUser::getUser()->getIdSucursal() )
        {
            $o_GSS_SucursalDocumentoFN->setIdSucursal( myUser::getUser()->getIdSucursal() );
        }
        $o_GSS_SucursalDocumentoFN->setIdTipoDocumento( "GR" );
        $a_GSS_SucursalDocumento = $o_GSS_SucursalDocumentoFN->select();

        $this->s_Serie  = "";
        $this->s_Numero = "";
        
        if( $a_GSS_SucursalDocumento )
        {
            $o_GSS_SucursalDocumentoBN = $a_GSS_SucursalDocumento[0];
            
            $this->s_Serie  = $o_GSS_SucursalDocumentoBN->getSerieFormatoFinal();
            $this->s_Numero = $o_GSS_SucursalDocumentoBN->getNumeroActualFormato();
        }
        else
        {
            $this->mensaje_error = "Falta registar Serie y Numero para la Impresion de Guia.";
        }
    }
}