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