public static bool AgregarProductosDelRecuperardorAlCarrito(string pSucursal, string[] pArrayNombreProducto, int[] pArrayCantidad, bool[] pArrayOferta) { bool resultado = false; if (System.Web.HttpContext.Current.Session["clientesDefault_Usuario"] != null && System.Web.HttpContext.Current.Session["clientes_pages_Recuperador_Tipo"] != null && System.Web.HttpContext.Current.Session["clientesDefault_Cliente"] != null && System.Web.HttpContext.Current.Session["clientes_pages_Recuperador_CantidadDia"] != null) { List <cProductosAndCantidad> listaAUX = new List <cProductosAndCantidad>(); for (int i = 0; i < pArrayNombreProducto.Count(); i++) { cProductosAndCantidad obj = new cProductosAndCantidad(); obj.cantidad = pArrayCantidad[i]; obj.codProductoNombre = pArrayNombreProducto[i]; listaAUX.Add(obj); } List <cProductosGenerico> listaProductos = WebService.RecuperarTodosProductosDesdeTabla(listaAUX, ((cClientes)System.Web.HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codsuc, ((cClientes)System.Web.HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codprov, ((cClientes)System.Web.HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codigo); if (isCAR) { List <cProductosAndCantidad> listaProductos_capaCAR = new List <cProductosAndCantidad>(); for (int i = 0; i < pArrayNombreProducto.Count(); i++) { cProductosGenerico objProducto = listaProductos.Where(x => x.pro_nombre == pArrayNombreProducto[i]).First(); int cantidad = pArrayCantidad[i]; int cantidadAgregar = 0; List <int> cantidadBD = WebService.RecuperarCantidadProductoEnCarritoYCarritoTransferFacturacionDirecta(((cClientes)System.Web.HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codigo, pSucursal, objProducto.pro_codigo, objProducto.pro_nombre); int cantidadTotalMasBD = cantidad; if (cantidadBD != null) { cantidadTotalMasBD += cantidadBD[0] + cantidadBD[1]; } List <int> listaCantidades = FuncionesPersonalizadas.CargarProductoCantidadDependiendoTransfer(objProducto, cantidadTotalMasBD); cProductosAndCantidad objProductosAndCantidad = new cProductosAndCantidad(); objProductosAndCantidad.codProductoNombre = objProducto.pro_nombre; objProductosAndCantidad.codProducto = objProducto.pro_codigo; objProductosAndCantidad.codSucursal = pSucursal; objProductosAndCantidad.cantidad = listaCantidades[0]; objProductosAndCantidad.isTransferFacturacionDirecta = false; listaProductos_capaCAR.Add(objProductosAndCantidad); cProductosAndCantidad objProductosAndCantidad_transfer = new cProductosAndCantidad(); objProductosAndCantidad_transfer.codProductoNombre = objProducto.pro_nombre; objProductosAndCantidad_transfer.codProducto = objProducto.pro_codigo; objProductosAndCantidad_transfer.codSucursal = pSucursal; objProductosAndCantidad_transfer.cantidad = listaCantidades[1]; objProductosAndCantidad_transfer.isTransferFacturacionDirecta = true; objProductosAndCantidad_transfer.tde_codtfr = objProducto.tde_codtfr; listaProductos_capaCAR.Add(objProductosAndCantidad_transfer); //capaCAR_decision.AgregarProductosTransfersAlCarrito(tempListaProductos, (int)((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).usu_codCliente, ((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).id, objProducto.tde_codtfr, pSucursal, Constantes.cTipo_CarritoTransfers); WebService.BorrarPorProductosFaltasProblemasCrediticiosV2(pSucursal, (int)((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).usu_codCliente, Convert.ToInt32(System.Web.HttpContext.Current.Session["clientes_pages_Recuperador_Tipo"]), objProducto.pro_nombre, Convert.ToInt32(System.Web.HttpContext.Current.Session["clientes_pages_Recuperador_CantidadDia"]), cantidadAgregar); } return(ActualizarProductoCarritoSubirArchivo(listaProductos_capaCAR)); } else { for (int i = 0; i < pArrayNombreProducto.Count(); i++) { cProductosGenerico objProducto = listaProductos.Where(x => x.pro_nombre == pArrayNombreProducto[i]).First(); int cantidad = pArrayCantidad[i]; int cantidadAgregar = 0; List <int> cantidadBD = WebService.RecuperarCantidadProductoEnCarritoYCarritoTransferFacturacionDirecta(((cClientes)System.Web.HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codigo, pSucursal, objProducto.pro_codigo, objProducto.pro_nombre); int cantidadTotalMasBD = cantidad; if (cantidadBD != null) { cantidadTotalMasBD += cantidadBD[0] + cantidadBD[1]; } List <int> listaCantidades = FuncionesPersonalizadas.CargarProductoCantidadDependiendoTransfer(objProducto, cantidadTotalMasBD); // Carrito comun WebService.AgregarProductoAlCarritoDesdeRecuperador(pSucursal, objProducto.pro_nombre, listaCantidades[0], (int)((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).usu_codCliente, ((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).id); List <cProductosAndCantidad> tempListaProductos = new List <cProductosAndCantidad>(); cProductosAndCantidad objProductosAndCantidad = new cProductosAndCantidad(); objProductosAndCantidad.codProductoNombre = objProducto.pro_nombre; objProductosAndCantidad.cantidad = listaCantidades[1]; tempListaProductos.Add(objProductosAndCantidad); capaCAR_decision.AgregarProductosTransfersAlCarrito(tempListaProductos, (int)((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).usu_codCliente, ((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).id, objProducto.tde_codtfr, pSucursal, Constantes.cTipo_CarritoTransfers); WebService.BorrarPorProductosFaltasProblemasCrediticiosV2(pSucursal, (int)((Usuario)System.Web.HttpContext.Current.Session["clientesDefault_Usuario"]).usu_codCliente, Convert.ToInt32(System.Web.HttpContext.Current.Session["clientes_pages_Recuperador_Tipo"]), objProducto.pro_nombre, Convert.ToInt32(System.Web.HttpContext.Current.Session["clientes_pages_Recuperador_CantidadDia"]), cantidadAgregar); } resultado = true; } } return(resultado); }
public static List <cCarrito> RecuperarCarritosPorSucursalYProductos_generica(int pIdCliente, string pTipo) { if (WebService.VerificarPermisos(WebService.CredencialAutenticacion)) { cClientes objClientes = WebService.RecuperarClientePorId(pIdCliente); DataSet dsProductoCarrito = new DataSet(); if (pTipo == Constantes.cTipo_Carrito) { dsProductoCarrito = capaCAR.RecuperarCarritosPorSucursalYProductos(pIdCliente); } else if (pTipo == Constantes.cTipo_CarritoDiferido) { dsProductoCarrito = capaCAR.RecuperarCarritosDiferidosPorCliente(pIdCliente); } List <cCarrito> listaSucursal = (from item in dsProductoCarrito.Tables[1].AsEnumerable() select new cCarrito { car_id = item.Field <int>("car_id"), lrc_id = item.Field <int>("car_id"), codSucursal = item.Field <string>("car_codSucursal") }).ToList(); foreach (cCarrito item in listaSucursal) { item.proximoHorarioEntrega = FuncionesPersonalizadas.ObtenerHorarioCierre(objClientes.cli_codsuc, item.codSucursal, objClientes.cli_codrep); List <cProductosGenerico> listaProductoCarrtios = new List <cProductosGenerico>(); foreach (DataRow itemProductoCarrtio in dsProductoCarrito.Tables[0].Select("cad_codCarrito = " + item.lrc_id)) { cProductos objProducto = WebService.ConvertToProductos(itemProductoCarrtio); cProductosGenerico objProductosGenerico = new cProductosGenerico(objProducto); if (itemProductoCarrtio.Table.Columns.Contains("stk_stock") && itemProductoCarrtio["stk_stock"] != DBNull.Value) { objProductosGenerico.stk_stock = itemProductoCarrtio["stk_stock"].ToString(); } if (itemProductoCarrtio.Table.Columns.Contains("cad_codProducto") && itemProductoCarrtio["cad_codProducto"] != DBNull.Value) { objProductosGenerico.codProducto = itemProductoCarrtio["cad_codProducto"].ToString(); } if (itemProductoCarrtio.Table.Columns.Contains("cad_cantidad") && itemProductoCarrtio["cad_cantidad"] != DBNull.Value) { objProductosGenerico.cantidad = Convert.ToInt32(itemProductoCarrtio["cad_cantidad"]); } listaProductoCarrtios.Add(objProductosGenerico); } /// Nuevo List <cTransferDetalle> listaTransferDetalle = null; if (dsProductoCarrito.Tables.Count > 2) { listaTransferDetalle = new List <cTransferDetalle>(); DataTable tablaTransferDetalle = dsProductoCarrito.Tables[2]; foreach (DataRow itemTransferDetalle in tablaTransferDetalle.Rows) { cTransferDetalle objTransferDetalle = WebService.ConvertToTransferDetalle(itemTransferDetalle); objTransferDetalle.CargarTransfer(WebService.ConvertToTransfer(itemTransferDetalle)); listaTransferDetalle.Add(objTransferDetalle); } } /// FIN Nuevo for (int iPrecioFinal = 0; iPrecioFinal < listaProductoCarrtios.Count; iPrecioFinal++) { listaProductoCarrtios[iPrecioFinal].PrecioFinal = FuncionesPersonalizadas.ObtenerPrecioFinal(objClientes, listaProductoCarrtios[iPrecioFinal]); /// Nuevo listaProductoCarrtios[iPrecioFinal].isProductoFacturacionDirecta = false; if (listaTransferDetalle != null) { List <cTransferDetalle> listaAUXtransferDetalle = listaTransferDetalle.Where(x => x.tde_codpro == listaProductoCarrtios[iPrecioFinal].pro_nombre).ToList(); if (listaAUXtransferDetalle.Count > 0) { listaProductoCarrtios[iPrecioFinal].isProductoFacturacionDirecta = true; listaProductoCarrtios[iPrecioFinal].CargarTransferYTransferDetalle(listaAUXtransferDetalle[0]); listaProductoCarrtios[iPrecioFinal].PrecioFinalTransfer = FuncionesPersonalizadas.ObtenerPrecioFinalTransferBase(objClientes, listaProductoCarrtios[iPrecioFinal].tfr_deshab, listaProductoCarrtios[iPrecioFinal].tfr_pordesadi, listaProductoCarrtios[iPrecioFinal].pro_neto, listaProductoCarrtios[iPrecioFinal].pro_codtpopro, listaProductoCarrtios[iPrecioFinal].pro_descuentoweb, listaProductoCarrtios[iPrecioFinal].tde_predescuento == null ? 0 : (decimal)listaProductoCarrtios[iPrecioFinal].tde_predescuento, listaProductoCarrtios[iPrecioFinal].tde_PrecioConDescuentoDirecto, listaProductoCarrtios[iPrecioFinal].tde_PorcARestarDelDtoDeCliente); } } /// FIN Nuevo } item.listaProductos = listaProductoCarrtios; } listaSucursal.RemoveAll(x => x.listaProductos.Count == 0); return(listaSucursal); } // sin no valida la credencial return(null); }