<?php
class EditPriceAction extends wtActions
{
    public function execute()
    {
        LayoutTemplate::getInstance()->setUseBootstrap();

        $this->s_IdItem        = $this->getRequestParameter( 'id_item' );
        $this->IdListaPreciCab = $this->getRequestParameter( 'IdListaPreciCab' );

        $this->b_CerrarWindow = false;
        $this->s_MensajeError = "";

        $this->a_LstPrecios = array();
        
        $this->b_ControlRango     = false;
        $this->a_MST_RangoDetalle = array();
        $this->s_IdRango          = "";

        try
        {
            myUser::getUser()->validar_session();
            
            $o_MST_ListaPrecioCabeceraFN = new MST_ListaPrecioCabeceraFN();
            $o_MST_ListaPrecioCabeceraBN = $o_MST_ListaPrecioCabeceraFN = $o_MST_ListaPrecioCabeceraFN->selectByPK( myUser::getUser()->getIdBusiness(), myUser::getUser()->getIdSucursal() );

            //el tipo de cambio
            $f_TipoCob = GSS_TipoCambioFN::getStaticTipoCambioCobranza(); //EN EL FUTURO PODRIA SER EL TIPO DE CAMBIO GUARDADO EN LA ORDEN CABECERA
            $f_TipoCon = GSS_TipoCambioFN::getStaticTipoCambioCompra(); //EN EL FUTURO PODRIA SER EL TIPO DE CAMBIO GUARDADO EN LA ORDEN CABECERA

            $o_ALM_ItemMastFN = new ALM_ItemMastFN();
            $this->o_ALM_ItemMastBN = $o_ALM_ItemMastFN->selectByPK( $this->s_IdItem );
            
            $this->a_DataTipoPrecio = array();
            
            $o_MST_RangoDetalleFN = new MST_RangoDetalleFN();
            $o_MST_RangoDetalleFN->setEstado( "A" );
            
            $o_MST_ListaPrecioCabeceraFN = new MST_ListaPrecioCabeceraFN();
            $o_MST_ListaPrecioCabeceraFN->setEstado( "A" );
            $o_MST_ListaPrecioCabeceraFN->setIdCompania( myUser::getUser()->getIdBusiness() );
            $a_MST_ListaPrecioCabecera = $o_MST_ListaPrecioCabeceraFN->select();
            
            foreach ( $a_MST_ListaPrecioCabecera as $o_MST_ListaPrecioCabeceraBN )
            {
                if( $o_MST_ListaPrecioCabeceraBN->getIdTipoLista() == 1 )
                {
                    if( $this->o_ALM_ItemMastBN->getEsParaVenta() == "SI" )
                    {
                        $this->b_ControlRango     = true;
                        $this->a_DataTipoPrecio[] = $o_MST_ListaPrecioCabeceraBN;
                    }
                }
                if( $o_MST_ListaPrecioCabeceraBN->getIdTipoLista() == 2 )
                {
                    if( $this->o_ALM_ItemMastBN->getEsParaAlquiler() == "SI" )
                    {
                        $this->b_ControlRango     = true;
                        $this->a_DataTipoPrecio[] = $o_MST_ListaPrecioCabeceraBN;
                    }
                }
            }
            
            /****************************************************************************************************************************************************************************************/
            if( $this->getRequestParameter( 'b_control' ) )
            {
                
            }
            /****************************************************************************************************************************************************************************************/

            $this->o_MST_RangoBN = new MST_RangoBN();
            if( $this->b_ControlRango )
            {
                $this->IdListaPreciCab = is_null( $this->IdListaPreciCab ) ? 1 : $this->IdListaPreciCab;
                foreach ( $this->a_DataTipoPrecio as $o_MST_ListaPrecioCabeceraBN )
                {
                    if( $o_MST_ListaPrecioCabeceraBN->getIdTipoLista() == $this->IdListaPreciCab )
                    {
                        if( $o_MST_ListaPrecioCabeceraBN->getIdTipoLista() == 1 )
                        {
                            if( $this->o_ALM_ItemMastBN->getEsParaVenta() == "SI" )
                            {
                                $this->s_IdRango = $this->o_ALM_ItemMastBN->getIdRangoVenta();
                                $o_MST_RangoDetalleFN->setIdRango( $this->s_IdRango );
                            }
                        }
                        if( $o_MST_ListaPrecioCabeceraBN->getIdTipoLista() == 2 )
                        {
                            if( $this->o_ALM_ItemMastBN->getEsParaAlquiler() == "SI" )
                            {
                                $this->s_IdRango = $this->o_ALM_ItemMastBN->getIdRangoAlquiler();
                                $o_MST_RangoDetalleFN->setIdRango( $this->o_ALM_ItemMastBN->getIdRangoAlquiler() );
                            }
                        }
                    }
                }
                
                $o_MST_RangoFN = new MST_RangoFN();
                $this->o_MST_RangoBN = $o_MST_RangoFN->selectByPK( $this->s_IdRango );
                
                $o_MST_RangoDetalleFN->addOrderBy( MST_RangoDetalleFN::Minimo );
                $this->a_MST_RangoDetalle = $o_MST_RangoDetalleFN->select();
            }

            $this->a_LstPrecios = MST_ListaPrecioDetalleFN::getArrayPrecios( $this->getRequestParameter( 'id_item' ) );
        }
        catch( Exception $e )
        {
            $this->s_MensajeError = $e->getMessage();
        }

        if( !$this->a_LstPrecios )
        {
            $this->a_LstPrecios[1]['PrecioVentaIGV'] = 0;
            $this->a_LstPrecios[1]['PrecioVenta'] = 0;
            $this->a_LstPrecios[1]['PrecioVentaIGV'] = 0;
            $this->a_LstPrecios[1]['PorcentajeUtilidad'] = 0;
            $this->a_LstPrecios[1]['PrecioCostoIGV'] = 0;
        }
        if( !isset( $this->a_LstPrecios[2] ) ){ $this->a_LstPrecios[2] = array( "PrecioVentaIGV" => 0, "PrecioVenta" => 0, "PorcentajeUtilidad" => 0 ); }
        if( !isset( $this->a_LstPrecios[3] ) ){ $this->a_LstPrecios[3] = array( "PrecioVentaIGV" => 0, "PrecioVenta" => 0, "PorcentajeUtilidad" => 0 ); }
        if( !isset( $this->a_LstPrecios[4] ) ){ $this->a_LstPrecios[4] = array( "PrecioVentaIGV" => 0, "PrecioVenta" => 0, "PorcentajeUtilidad" => 0 ); }
        if( !isset( $this->a_LstPrecios[5] ) ){ $this->a_LstPrecios[5] = array( "PrecioVentaIGV" => 0, "PrecioVenta" => 0, "PorcentajeUtilidad" => 0 ); }
    }
}
