<?php
class SaveOrdenVtaDetailAction extends wtActions
{
    public function execute()
    {
        $s_TipoProc = $this->getRequestParameter( 's_TipoProc' );
        $i_Id       = ( int ) $this->getRequestParameter( 'i_Id' );

        try
        {
            if( $s_TipoProc == "codigo_barras" )
            {
                $s_CodBarras = $this->getRequestParameter( 'CodigoBarras' );

                $o_ALM_ItemMastFN = new ALM_ItemMastFN();
                $o_ALM_ItemMastFN->setCodigoBarrasFabricante( $s_CodBarras );
                $a_ALM_ItemMast = $o_ALM_ItemMastFN->select();
                if( $a_ALM_ItemMast )
                {
                    $o_ALM_ItemMastBN = $a_ALM_ItemMast[0];

                    ParameterWR::getInstance()->setVar( "IdItem", $o_ALM_ItemMastBN->getIdItem() );
                }
            }

            $Secuencia      = is_null( $this->getRequestParameter( 'Secuencia' ) ) ? null : ( int ) $this->getRequestParameter( 'Secuencia' );
            $IdItem         = $this->getRequestParameter( 'IdItem' );
            $IdAlmacen      = $this->getRequestParameter( 'IdAlmacen' );
            $IdLote         = $this->getRequestParameter( 'IdLote' );
            $CantidadPedida = floatval( $this->getRequestParameter( 'CantidadPedida' ) );
            //$PrecioUnitario = floatval( $this->getRequestParameter( 'PrecioUnitario' ) ); //se tiene que modificar si se hace el proceso de bajar precio
            //$NoAfecImpuesto = $this->getRequestParameter( 'NoAfectoImpuestoVentasFlag' );
        
            $o_VTA_OrdenDetalleBN = new VTA_OrdenDetalleBN();
            $o_VTA_OrdenDetalleBN->setOrdenId( $i_Id );
            $o_VTA_OrdenDetalleBN->setOrdenDetalleNum( $Secuencia );
            $o_VTA_OrdenDetalleBN->setItemCod( $IdItem );
            $o_VTA_OrdenDetalleBN->setAlmacenCod( $IdAlmacen );
            $o_VTA_OrdenDetalleBN->setLoteNum( $IdLote );
            $o_VTA_OrdenDetalleBN->setOrdenDetalleCantidad( $CantidadPedida );

            $o_CotizacionesDetalleBL = new CotizacionesDetalleBL();
            $b_Result = $o_CotizacionesDetalleBL->iniciarProceso( $o_VTA_OrdenDetalleBN );

            $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;
    }
}