<?php
class ListPrecioAction extends wtActions 
{
    public function execute()
    {
        $this->s_IdItem    = $this->getRequestParameter( 'IdItem' );
        $this->i_Id        = $this->getRequestParameter( 'i_Id' );
        $this->s_Secuencia = $this->getRequestParameter( 'Secuencia' );
        
        $a_Ids = explode( "_", $this->i_Id );
        $IdTipoDocumento = $a_Ids[0];
        $IdCompania      = $a_Ids[1];
        $NumeroDocumento = $a_Ids[2];
        
        try 
        {
            $this->b_Error = false;
            
            if( !myUser::getUser()->getIdSucursal() )
            {
                throw new Exception( "Se tiene que seleccionar Sucursal." );
            }
            
            $o_ALM_ItemMastFN = new ALM_ItemMastFN();
            $this->o_ALM_ItemMastBN = $o_ALM_ItemMastFN->selectByPK( $this->s_IdItem );
            
            $o_MST_ListaPrecioDetalleFN = new MST_ListaPrecioDetalleFN();
            $o_MST_ListaPrecioDetalleFN->setIdCompania( myUser::getUser()->getIdBusiness() );
            $o_MST_ListaPrecioDetalleFN->setIdSucursal( myUser::getUser()->getIdSucursal() );
            $o_MST_ListaPrecioDetalleFN->setIdItem( $this->s_IdItem );
            $o_MST_ListaPrecioDetalleFN->setEstado( "A" );
            $o_MST_ListaPrecioDetalleFN->addOrderBy( MST_ListaPrecioDetalleFN::IdTipoPrecio );
            $this->a_MST_ListaPrecioDetalle = $o_MST_ListaPrecioDetalleFN->select();

            if( !$this->a_MST_ListaPrecioDetalle )
            {
                $o_MST_ListaPrecioDetalleFN = new MST_ListaPrecioDetalleFN();
                //$o_MST_ListaPrecioDetalleFN->setIdCompania( myUser::getUser()->getIdBusiness() );
                //$o_MST_ListaPrecioDetalleFN->setIdSucursal( myUser::getUser()->getIdSucursal() );
                $o_MST_ListaPrecioDetalleFN->setIdItem( $this->s_IdItem );
                $o_MST_ListaPrecioDetalleFN->setEstado( "A" );
                $o_MST_ListaPrecioDetalleFN->addOrderBy( MST_ListaPrecioDetalleFN::IdTipoPrecio );
                $this->a_MST_ListaPrecioDetalle = $o_MST_ListaPrecioDetalleFN->select();
            }

            //pr( $this->a_MST_ListaPrecioDetalle );
            
            $o_VTA_DocumentoFN = new VTA_DocumentoFN();
            $this->o_VTA_DocumentoBN = $o_VTA_DocumentoFN->selectByPK( $IdTipoDocumento, $IdCompania, $NumeroDocumento );

            $o_VTA_DocumentoDetalleFN = new VTA_DocumentoDetalleFN();
            $o_VTA_DocumentoDetalleBN = $o_VTA_DocumentoDetalleFN->selectByPK( $IdTipoDocumento, $IdCompania, $NumeroDocumento, $this->s_Secuencia );

            $this->i_IdUnidadAsignado  = $o_VTA_DocumentoDetalleBN->getIdUnidad();
            $i_UnidadVentaAsiganada    = $o_VTA_DocumentoDetalleBN->getItemUnidadVentaAsignada();

            $this->f_CantidadAsiganada = $o_VTA_DocumentoDetalleBN->getItemCantidadMedidaAsignada();

            //aqui se pregunta que la unidad de medida del item es igual a la seteada
            $this->b_ControlConversion = true;
            if( $this->i_IdUnidadAsignado == $i_UnidadVentaAsiganada )
            {
                $this->b_ControlConversion = false;
            }
        }
        catch ( Exception $o_Exception )
        {
            $this->b_Error = true;
        }
    }
}