public EntRespuestaPaquetePromocion ObtenerProductosEnPaqueteApi(EntConsultaApiPaquete ConsultaApiPaquete)
        {
            EntRespuestaPaquetePromocion respuesta = new EntRespuestaPaquetePromocion();

            respuesta = new CtrlCombosTotalPlay().ObtenerProductosEnPaqueteApi(ConsultaApiPaquete.SKU);

            EntParametrosNegocio parame = new EntParametrosNegocio();

            parame.BeginObject(181);
            if (parame.Valor == "1")
            {
                RecuperaPPApi(respuesta, ConsultaApiPaquete);
            }

            return(respuesta);


            //return new CtrlCombosTotalPlay().ObtenerProductosEnPaqueteApi(sku,ConsultaApiPaquete);
        }
        public EntRespuestaPaquetePromocion RecuperaPPApi(EntRespuestaPaquetePromocion respuesta, EntConsultaApiPaquete ConsultaApiPaquete)
        {
            int totalPaquetes = 0;

            EngancheAplicadoProrateo = new Hashtable();
            ArrayList LstPromoPaqueteid = new ArrayList();
            ArrayList listaDetalleVenta = new ArrayList();

            EntNEw.EntCarritoRequestVenta objetoPeticion;
            EntPaquetePromocion           paquetesid = new EntPaquetePromocion();
            int canal    = 0;
            int pais     = 0;
            int sucursal = 0;

            try
            {
                if (respuesta.Paquetes != null && respuesta.Paquetes.Count > 0)
                {
                    for (int i = 0; i < respuesta.Paquetes.Count; i++)
                    {
                        if (!LstPromoPaqueteid.Contains(respuesta.Paquetes[i].PaqueteId))
                        {
                            LstPromoPaqueteid.Add(respuesta.Paquetes[i].PaqueteId);
                            totalPaquetes = totalPaquetes + 1;
                        }
                    }
                }

                //Consultar datos tienda
                ConsultarDatosTienda(ref canal, ref pais, ref sucursal);


                for (int i = 0; i < totalPaquetes; i++)
                {
                    listaDetalleVenta        = new ArrayList();
                    EngancheAplicadoProrateo = new Hashtable();

                    objetoPeticion = new EntNEw.EntCarritoRequestVenta();

                    for (int j = 0; j < respuesta.Paquetes.Count; j++)
                    {
                        if (respuesta.Paquetes[j].AplicaCredito)
                        {
                            if (respuesta.Paquetes[j].PaqueteId == (int)LstPromoPaqueteid[i])
                            {
                                int idpaq = (int)LstPromoPaqueteid[i];
                                EntDetalleVentaBaseNST detalleVenta = new EntDetalleVentaBaseNST();
                                detalleVenta.SKU         = respuesta.Paquetes[j].SKU;
                                detalleVenta.precioLista = respuesta.Paquetes[j].ProdPrecio;
                                //Prorrateo Enganche
                                detalleVenta.montoEnganche  = AplicaEngancheProrrateo(respuesta, idpaq, respuesta.Paquetes[j].SKU, totalPaquetes, ConsultaApiPaquete.Enganche);
                                detalleVenta.Cantidad       = respuesta.Paquetes[j].Cantidad;
                                detalleVenta.montoDescuento = respuesta.Paquetes[j].ProdDescuento;
                                detalleVenta.plazos         = new int[1];
                                detalleVenta.plazos[0]      = ConsultaApiPaquete.Plazo;


                                objetoPeticion.lstEntDetalleVentaBaseNST.Add(detalleVenta);
                            }
                        }
                    }

                    if (objetoPeticion.lstEntDetalleVentaBaseNST.Count == 0)
                    {
                        continue;
                    }

                    objetoPeticion.canal       = canal;
                    objetoPeticion.pais        = pais;
                    objetoPeticion.tienda      = sucursal;
                    objetoPeticion.tipoPeriodo = 1;



                    if (ConsultaApiPaquete.ClienteNST.folioCU != 0)
                    {
                        if (ConsultaApiPaquete.ClienteNST.ResultadoApi != null)
                        {
                            if (ConsultaApiPaquete.TipoProd == 0)
                            {
                                for (int k = 0; k < ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente.Length; k++)
                                {
                                    if (ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].IdProducto == 21 && ConsultaApiPaquete.TipoProd == EnumTipoProductoNST.mercancias)
                                    {
                                        objetoPeticion.tipoCliente   = ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].CodigoTipoTasa;
                                        objetoPeticion.tipoPromocion = ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].CodigoPromocionTasa;
                                        break;
                                    }
                                    if (ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].IdProducto == 22 && ConsultaApiPaquete.TipoProd == EnumTipoProductoNST.motos)
                                    {
                                        objetoPeticion.tipoCliente   = ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].CodigoTipoTasa;
                                        objetoPeticion.tipoPromocion = ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].CodigoPromocionTasa;
                                        break;
                                    }
                                    if (ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].IdProducto == 23 && ConsultaApiPaquete.TipoProd == EnumTipoProductoNST.telefonia)
                                    {
                                        objetoPeticion.tipoCliente   = ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].CodigoTipoTasa;
                                        objetoPeticion.tipoPromocion = ConsultaApiPaquete.ClienteNST.ResultadoApi.ProductosTipoCliente[k].CodigoPromocionTasa;
                                        break;
                                    }
                                }
                            }
                        }
                        else
                        {
                            throw new ApplicationException("No se consulto la informacion de ResultadoApi");
                        }
                    }
                    else
                    {
                        if (ConsultaApiPaquete.TipoProd == EnumTipoProductoNST.mercancias)
                        {
                            objetoPeticion.tipoCliente   = "56";
                            objetoPeticion.tipoPromocion = "21";
                        }

                        if (ConsultaApiPaquete.TipoProd == EnumTipoProductoNST.motos)
                        {
                            objetoPeticion.tipoCliente   = "56";
                            objetoPeticion.tipoPromocion = "36";
                        }
                        if (ConsultaApiPaquete.TipoProd == EnumTipoProductoNST.telefonia)
                        {
                            objetoPeticion.tipoCliente   = "3";
                            objetoPeticion.tipoPromocion = "0";
                        }
                    }

                    //Consulta Api
                    EntPlazosVenta objetoAbonosAPI = new ApiC.ManejadorAPISCredito().APICotizarVentaCredito(objetoPeticion);

                    if (objetoAbonosAPI != null && objetoAbonosAPI.oEntRespuestaNST.eTipoError != EnumTipoErrorNST.SinError)
                    {
                        string cadenaError = string.Format("El servicio de consulta de API devuelve: {0}", objetoAbonosAPI.oEntRespuestaNST.mensajeError);
                        System.Diagnostics.Trace.WriteLine(cadenaError, "LOG");
                        throw new ApplicationException(cadenaError);
                    }

                    AgregaPPVentanaPaquetes(respuesta, objetoAbonosAPI, (int)LstPromoPaqueteid[i]);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine("StackTrace: " + ex.StackTrace, "LOG");
                System.Diagnostics.Trace.WriteLine("Message: " + ex.Message, "LOG");
                System.Diagnostics.Trace.WriteLine("Falla en RecuperaPPApi()", "LOG");
                throw new ApplicationException(ex.Message);
            }

            return(respuesta);
        }