public List<ProductosDTO> ConsultarProductos(string tipoFiltro, string valorFiltro, int pagina) { ServiceProductos.ConsultaProductoEntrada entrada = new ServiceProductos.ConsultaProductoEntrada(); ServiceProductos.Filtro filtro = new ServiceProductos.Filtro(); List<ProductosDTO> lstProductos = null; try { filtro.tipoFiltro = tipoFiltro; filtro.valorFiltro = valorFiltro; filtro.pagina = pagina; entrada.filtroProducto = filtro; ServiceProductos.ProductosPortClient clienteWs = new ServiceProductos.ProductosPortClient(); ServiceProductos.ConsultaProductoSalida salida; salida = clienteWs.ConsultarProductos(entrada); lstProductos = new List<ProductosDTO>(); foreach (var item in salida.listaProductos) { ProductosDTO prod = new ProductosDTO(); prod.idProducto = item.idProducto; prod.idProductoSpecified = item.idProductoSpecified; prod.codigoProducto = item.codigoProducto; prod.nombreProducto = item.nombreProducto; prod.descripcionProducto = item.descripcionProducto; prod.nombreImagenProducto = item.nombreImagenProducto; prod.fabricanteProducto = item.fabricanteProducto; prod.precioProducto = item.precioProducto; if (item.tipoProducto != null && item.tipoProducto.subCategoria != null) { prod.idSubcategoria = item.tipoProducto.subCategoria.idTipo; prod.nombreSubcategoria = item.tipoProducto.subCategoria.nombreTipo; } if (item.tipoProducto != null && item.tipoProducto.categoria != null) { prod.nombreCategoria = item.tipoProducto.categoria.nombreTipo; prod.nombreSubcategoria = item.tipoProducto.subCategoria.nombreTipo; } lstProductos.Add(prod); } } catch (Exception e) { Console.WriteLine("Error en Web service Productos: " + e.Message); throw new Exception("Error - WebService Productos"); } return lstProductos; }// end public List<ProductosDTO> ConsultarProductos
// public List<OrdenDTO> ConsultarOrdenesUsuario(int idOrden, ClienteDTO cliente, string estadoOrden) { List<OrdenDTO> lstOrdenes = null; ServiceOrdenes.ConsultaOrdenEntrada entrada = new ServiceOrdenes.ConsultaOrdenEntrada(); try { entrada.idOrden = idOrden; entrada.idOrdenSpecified = true; entrada.estadoOrden = estadoOrden; if (cliente != null) { entrada.cliente = new ServiceOrdenes.Usuario { nombre = cliente.nombre, nombreUsuario = cliente.nombreUsuario, //apellido = cliente.apellido, //tipoDocumento = cliente.tipoDocumento, //numeroDocumento = cliente.numeroDocumento, correoElectronico = cliente.correoElectronico //telefono = cliente.telefono, //direccion = new ServiceOrdenes.Direccion //{ //numero = cliente.ubicacionCliente.numeroDireccion, //ciudad = cliente.ubicacionCliente.nombreCiudad, //departamento = cliente.ubicacionCliente.nombreDepartamento //} }; } ServiceOrdenes.PortOrdenClient clienteWs = new ServiceOrdenes.PortOrdenClient(); ServiceOrdenes.ConsultaOrdenSalida salida; salida = clienteWs.consultarOrden(entrada); lstOrdenes = new List<OrdenDTO>(); foreach (var item in salida.listaOrdenes) { OrdenDTO ord = new OrdenDTO(); ord.idOrden = item.idOrden; ord.idPreOrden = item.idPreOrden; ord.fechaOrden = item.fechaOrden; ord.estadoOrden = item.estadoOrden; ord.idEstadoOrden = item.idEstadoOrden; ord.numeroItemsOrden = item.numeroItems; ord.totalOrden = item.total; ClienteDTO cli = new ClienteDTO(); cli.nombre = (item.cliente.nombre == null ? "" : item.cliente.nombre); cli.nombreUsuario = (item.cliente.nombreUsuario == null ? "" : item.cliente.nombreUsuario); cli.apellido = item.cliente.apellido; cli.tipoDocumento = item.cliente.tipoDocumento; cli.numeroDocumento = item.cliente.numeroDocumento; cli.correoElectronico = item.cliente.correoElectronico; cli.telefono = item.cliente.telefono; UbicacionDTO ubi = new UbicacionDTO(); if (item.cliente.direccion != null) { ubi.numeroDireccion = (item.cliente.direccion.numero == null ? "" : item.cliente.direccion.numero); ubi.idCiudad = (item.cliente.direccion.idCiudad == null ? -1 : item.cliente.direccion.idCiudad); ubi.nombreCiudad = (item.cliente.direccion.ciudad == null ? "" : item.cliente.direccion.ciudad); ubi.idDepartamento = (item.cliente.direccion.idDepartamento == null ? -1 : item.cliente.direccion.idDepartamento); ubi.nombreDepartamento = (item.cliente.direccion.departamento == null ? "" : item.cliente.direccion.departamento); } cli.ubicacionCliente = ubi; ord.usuarioOrden = cli; List<ItemOrdenDTO> listaItemsOrden = new List<ItemOrdenDTO>(); ProductosDTO pro; foreach (var itemOrden in item.listaItems) { ItemOrdenDTO io = new ItemOrdenDTO(); io.cantidadItem = itemOrden.cantidad; io.tipo = itemOrden.tipo; io.idCampania = itemOrden.idCampania; pro = new ProductosDTO(); pro.idProducto = (itemOrden.producto.idProducto == null ? -1 : itemOrden.producto.idProducto); pro.codigoProducto = (itemOrden.producto.codigoProducto == null ? "" : itemOrden.producto.codigoProducto); pro.nombreProducto = (itemOrden.producto.nombreProducto == null ? "" : itemOrden.producto.nombreProducto); pro.descripcionProducto = (itemOrden.producto.descripcionProducto == null ? "" : itemOrden.producto.descripcionProducto); pro.fabricanteProducto = (itemOrden.producto.fabricanteProducto == null ? "" : itemOrden.producto.fabricanteProducto); pro.nombreImagenProducto = (itemOrden.producto.nombreImagenProducto == null ? "" : itemOrden.producto.nombreImagenProducto); pro.precioProducto = (itemOrden.producto.precioProducto == null ? 0 : itemOrden.producto.precioProducto); if (itemOrden.producto.tipoProducto != null) { pro.idCategoria = (itemOrden.producto.tipoProducto.categoria.idTipo == null ? -1 : itemOrden.producto.tipoProducto.categoria.idTipo); pro.nombreCategoria = (itemOrden.producto.tipoProducto.categoria.nombreTipo == null ? "" : itemOrden.producto.tipoProducto.categoria.nombreTipo); pro.idSubcategoria = (itemOrden.producto.tipoProducto.subCategoria.idTipo == null ? -1 : itemOrden.producto.tipoProducto.subCategoria.idTipo); pro.nombreSubcategoria = (itemOrden.producto.tipoProducto.subCategoria.nombreTipo == null ? "" : itemOrden.producto.tipoProducto.subCategoria.nombreTipo); } io.totalItem = io.cantidadItem * pro.precioProducto; io.producto = pro; listaItemsOrden.Add(io); ord.listaItemsOrden = listaItemsOrden.ToList(); } lstOrdenes.Add(ord); } } catch (Exception e) { Console.WriteLine("Error en Web service Ordenes: " + e.Message); throw new Exception("Error - WebService Ordenes"); } /* lstOrdenes = new List<OrdenDTO> { new OrdenDTO { idOrden = 39912, numeroItemsOrden = 1, fechaOrden = System.DateTime.Today, totalOrden = 50000, usuarioOrden = null, listaItemsOrden = null, idEstadoOrden = 1, estadoOrden = "PRE-APROBADA" } }; */ return lstOrdenes; } //ConsultarOrdenesUsuario
private void addProductoToCart(ProductosDTO productItem, long id, string tipoItem) { List<CartItem> listaCartItem = null; CartItem unCarItem = null; if (productItem != null) { try { listaCartItem = (List<CartItem>)Session["sesListaCartItem"]; } catch (Exception e) { Console.WriteLine("Error addProductoToCart " + e.Message); listaCartItem = null; } if (listaCartItem == null) { listaCartItem = new List<CartItem>(); unCarItem = new CartItem(); unCarItem.ItemId = Guid.NewGuid().ToString(); unCarItem.CartId = ShoppingCartId; unCarItem.ProductId = id; unCarItem.Product = productItem; unCarItem.Quantity = 1; unCarItem.DateCreated = DateTime.Now; unCarItem.Product.TipoItem = tipoItem; unCarItem.valorUnitarioItem = productItem.precioProducto; unCarItem.NombreItem = productItem.nombreProducto; unCarItem.TipoItem = productItem.TipoItem; listaCartItem.Add(unCarItem); Session.Add("sesListaCartItem", listaCartItem); itemAddedToCart = true; } else { //busca en la lista de carItem el objeto. y aumenta su cantidad unCarItem = buscarCarItem(id, ShoppingCartId, tipoItem); if (unCarItem != null) { unCarItem.Quantity = unCarItem.Quantity + 1; itemAddedToCart = true; } else { itemAddedToCart = canAddItemsToCart(); if (itemAddedToCart) { unCarItem = new CartItem(); unCarItem.ItemId = Guid.NewGuid().ToString(); unCarItem.CartId = ShoppingCartId; unCarItem.ProductId = id; unCarItem.Product = productItem; unCarItem.Quantity = 1; unCarItem.DateCreated = DateTime.Now; unCarItem.Product.TipoItem = tipoItem; unCarItem.valorUnitarioItem = productItem.precioProducto; unCarItem.NombreItem = productItem.nombreProducto; unCarItem.TipoItem = productItem.TipoItem; listaCartItem.Add(unCarItem); Session.Add("sesListaCartItem", listaCartItem); } else { StringBuilder msj = new StringBuilder(); msj.Append("Lo sentimos, no puede agregar más items al carrito de compras debido a que "); msj.Append("la cantidad máxima de items permitida es: " + cantidadMaximaItemsCarro().ToString()); msjErrorAddingToCart = msj.ToString(); } } } } else { Console.Write("No se Encontro el Producto"); throw new Exception("ERROR: No se encontro el Producto"); } }
protected void CheckoutConfirm_Click(object sender, EventArgs ev) { EstadoCompraDTO estadoCompra = null; CompraDTO myOrder = new CompraDTO(); try { //LLenar todo el objeto de las ordenes. // Get the shopping cart items and process them. using (KallSonysB2C.Logic.ShoppingCartActions usersShoppingCart = new KallSonysB2C.Logic.ShoppingCartActions()) { List<CartItem> myOrderList = usersShoppingCart.GetCartItems(); myOrder.envioTitular = false; //datos Tarjeta TarjetaDTO tarjeta = new TarjetaDTO(); tarjeta.nombreTitular = this.TextBoxnomTJ.Text; long numeroTrajeta = 0; if (TextBoxNumeroTJ != null && TextBoxNumeroTJ.Text != null) { numeroTrajeta = Convert.ToInt64(TextBoxNumeroTJ.Text); } tarjeta.numeroTarjeta = numeroTrajeta; int codSeg = 0; if (TextBoxCodigoVeri != null && TextBoxCodigoVeri.Text != null) { codSeg = Convert.ToInt32(TextBoxCodigoVeri.Text); } tarjeta.codigoSeguridad = codSeg; DateTime fechaExp = new DateTime(); try { //jf //String StrFecha = CalendarExp.Text; String StrFecha = "01/" + ddlMes.SelectedItem.Text + "/" + ddlAnio.SelectedItem.Text; fechaExp = DateTime.ParseExact(StrFecha, "dd/MM/yyyy", null); } catch (Exception e) { Console.Write("Error en fecha " + e); } tarjeta.fechaExpiracion = fechaExp; //se asignan los datos de la tarjeta myOrder.tarjeta = tarjeta; //Fin Datos Tarjeta. //datos Usuario Envio ClienteDTO usuarioEnvio = new ClienteDTO(); usuarioEnvio.nombreUsuario = null; //usuario no registrado, datos envio usuarioEnvio.nombre = this.TextBoxNombre.Text; usuarioEnvio.apellido = this.TextBoxApellido.Text; usuarioEnvio.tipoDocumento = this.DropDownTipoDoc.SelectedValue; string numDoc = string.Empty; if (TextBoxNoDoc != null && TextBoxNoDoc.Text != null) { numDoc = TextBoxNoDoc.Text.Trim(); } usuarioEnvio.numeroDocumento = numDoc; usuarioEnvio.correoElectronico = TextBoxCorreo.Text; usuarioEnvio.telefono = TextBoxTelefono.Text; //datos de la direccion UbicacionDTO ubicacion = new UbicacionDTO(); ubicacion.numeroDireccion = TextBoxDireccion.Text; ubicacion.nombrePais = ddlPais.SelectedItem.Text; ubicacion.idPais = Convert.ToInt32(ddlPais.SelectedValue); ubicacion.nombreDepartamento = ddlDepartamento.SelectedItem.Text; ubicacion.idDepartamento = Convert.ToInt32(ddlDepartamento.SelectedValue); ubicacion.nombreCiudad = ddlCiudad.SelectedItem.Text; ubicacion.idCiudad = Convert.ToInt32(ddlCiudad.SelectedValue); usuarioEnvio.ubicacionCliente = ubicacion; myOrder.usuarioEnvio = usuarioEnvio; //Fin datos Usuario Envio //datos Orden OrdenDTO ordencCompra = new OrdenDTO(); if (myOrderList != null) { ordencCompra.numeroItemsOrden = myOrderList.Count; } else { ordencCompra.numeroItemsOrden = 0; } String totalOrdenStr = ""; double totalOrden = 0; try { if (Session["payment_amt"] != null) { totalOrdenStr = Session["payment_amt"].ToString(); } totalOrden = Convert.ToDouble(totalOrdenStr); } catch (Exception ex) { Console.WriteLine("Error convertir total orden " + ex.Message); } ordencCompra.totalOrden = totalOrden; ClienteDTO userOrden = new ClienteDTO(); if (User != null && User.Identity != null) { userOrden.correoElectronico = User.Identity.Name; userOrden.nombreUsuario = User.Identity.Name; } ordencCompra.usuarioOrden = userOrden; //Fin datos Orden //datos Detalle Orden List<ItemOrdenDTO> listaItemsOrden = new List<ItemOrdenDTO>(); if (myOrderList != null) { ItemOrdenDTO itemOrden = null; foreach (CartItem cartItem in myOrderList) { itemOrden = new ItemOrdenDTO(); itemOrden.cantidadItem = cartItem.Quantity; itemOrden.totalItem = (cartItem.Quantity * cartItem.valorUnitarioItem); if (cartItem.Product != null && cartItem.Product.TipoItem.Equals("C")) { itemOrden.tipo = true; itemOrden.idCampania = cartItem.ProductId; } else { itemOrden.tipo = false; } ProductosDTO unProducto = null; //copia del producto if (cartItem.Product != null) { unProducto = new ProductosDTO(); unProducto.codigoProducto = cartItem.Product.codigoProducto; unProducto.descripcionProducto = cartItem.Product.descripcionProducto; unProducto.fabricanteProducto = cartItem.Product.fabricanteProducto; if (cartItem.Product != null && cartItem.Product.TipoItem.Equals("C")) { unProducto.idProducto = cartItem.ProductId; } else { unProducto.idProducto = cartItem.Product.idProducto; } unProducto.idSubcategoria = cartItem.Product.idSubcategoria; unProducto.nombreCategoria = cartItem.Product.nombreCategoria; unProducto.nombreImagenProducto = cartItem.Product.nombreImagenProducto; unProducto.nombreProducto = cartItem.Product.nombreProducto; unProducto.nombreSubcategoria = cartItem.Product.nombreSubcategoria; unProducto.precioProducto = cartItem.Product.precioProducto; unProducto.TipoItem = cartItem.Product.TipoItem; } itemOrden.producto = unProducto; // fin copia producto listaItemsOrden.Add(itemOrden); }//fin for } ordencCompra.listaItemsOrden = listaItemsOrden; // Fin datos Detalle Orden //Set orden final myOrder.ordenCompra = ordencCompra; }// fin using //CompraBL compraBL = new CompraBL(); //se llama al servicio. //estadoCompra = compraBL.registrarCompra(myOrder); estadoCompra = objCompra.registrarCompra(myOrder); if (estadoCompra != null && estadoCompra.IdPreOrden != null && estadoCompra.EstadoTarjeta == true) { Session["userCheckoutCompleted"] = "true"; Session["payerId"] = estadoCompra.IdPreOrden; //se debe borrar la lista del carro. using (KallSonysB2C.Logic.ShoppingCartActions usersShoppingCart = new KallSonysB2C.Logic.ShoppingCartActions()) { usersShoppingCart.EmptyCart(); } Response.Redirect("~/Checkout/CheckoutComplete.aspx", false); } else { Session["userCheckoutCompleted"] = "false"; Session.Remove("payerId"); if (estadoCompra != null && estadoCompra.EstadoTarjeta == false) { //mensaje de que no fue exitoso o que la tarjeta es invalida. KallSonysB2C.Logic.MessageBox.Show("Tarjeta de Credito No Valida"); } else { KallSonysB2C.Logic.MessageBox.Show("Error Al Registrar Su orden de Compra - Intente Nuevamente"); } } } catch (Exception ex) { Session["userCheckoutCompleted"] = "false"; Session.Remove("payerId"); Console.WriteLine("Error CheckoutConfirm_Click" + ex.Message); KallSonysB2C.Logic.MessageBox.Show("Error en Registro - Intente Nuevamente"); } }