public EstadoCompraDTO registrarCompra(CompraDTO compraDTO) { EstadoCompraDTO resp=null; Compra c=new Compra(); resp = c.SetCompra(compraDTO); return resp; }
public EstadoCompraDTO registrarCompra(CompraDTO compraDTO) { /* EstadoCompraDTO resp=null; Compra c=new Compra(); resp = c.SetCompra(compraDTO); return resp; */ return _objCompra.SetCompra(compraDTO); }
public EstadoCompraDTO SetCompra(CompraDTO compraDTO) { ServiceCompra.RegistrarCompraEntrada entrada = new ServiceCompra.RegistrarCompraEntrada(); ServiceCompra.Compra compraWs = new ServiceCompra.Compra(); EstadoCompraDTO respCompra=null; try { compraWs.tarjeta = new ServiceCompra.Tarjeta(); compraWs.usuarioEnvio = new ServiceCompra.Usuario(); compraWs.orden = new ServiceCompra.Orden(); if (compraDTO != null) { compraWs.envioTitular = compraDTO.envioTitular; } //setear todos los objetos. // desde compraDTO al los objetos del servicio. //datos tarjeta if (compraDTO != null && compraDTO.tarjeta != null) { compraWs.tarjeta.nombreTitular = compraDTO.tarjeta.nombreTitular; compraWs.tarjeta.numeroTarjeta = Convert.ToString(compraDTO.tarjeta.numeroTarjeta); compraWs.tarjeta.codigoSeguridad = Convert.ToString(compraDTO.tarjeta.codigoSeguridad); string xsdDateTime = SoapDateTime.ToString(compraDTO.tarjeta.fechaExpiracion); //DateTime dateTime = SoapDateTime.Parse(xsdDateTime); //se indica que va la fecha compraWs.tarjeta.fechaExpiracionSpecified = true; compraWs.tarjeta.fechaExpiracion = xsdDateTime; } //Fin Datos tarjeta //datos usuario envio if (compraDTO != null && compraDTO.usuarioEnvio!= null) { compraWs.usuarioEnvio.nombreUsuario = compraDTO.usuarioEnvio.nombreUsuario; compraWs.usuarioEnvio.nombre = compraDTO.usuarioEnvio.nombre; compraWs.usuarioEnvio.apellido = compraDTO.usuarioEnvio.apellido; compraWs.usuarioEnvio.tipoDocumento = compraDTO.usuarioEnvio.tipoDocumento; compraWs.usuarioEnvio.numeroDocumento = Convert.ToString(compraDTO.usuarioEnvio.numeroDocumento); compraWs.usuarioEnvio.correoElectronico = compraDTO.usuarioEnvio.correoElectronico; compraWs.usuarioEnvio.telefono= compraDTO.usuarioEnvio.telefono; compraWs.usuarioEnvio.direccion = new ServiceCompra.Direccion(); if (compraDTO.usuarioEnvio.ubicacionCliente != null) { compraWs.usuarioEnvio.direccion.numero = compraDTO.usuarioEnvio.ubicacionCliente.numeroDireccion; compraWs.usuarioEnvio.direccion.ciudad = compraDTO.usuarioEnvio.ubicacionCliente.nombreCiudad; compraWs.usuarioEnvio.direccion.idCiudad = compraDTO.usuarioEnvio.ubicacionCliente.idCiudad; compraWs.usuarioEnvio.direccion.departamento = compraDTO.usuarioEnvio.ubicacionCliente.nombreDepartamento; compraWs.usuarioEnvio.direccion.idDepartamento = compraDTO.usuarioEnvio.ubicacionCliente.idDepartamento; compraWs.usuarioEnvio.direccion.pais = compraDTO.usuarioEnvio.ubicacionCliente.nombrePais; compraWs.usuarioEnvio.direccion.idPais = compraDTO.usuarioEnvio.ubicacionCliente.idPais; } } //Fin datos usuario envio //datos ordencompra if (compraDTO.ordenCompra != null) { compraWs.orden.idOrden = Convert.ToInt32(compraDTO.ordenCompra.idOrden); compraWs.orden.numeroItems = compraDTO.ordenCompra.numeroItemsOrden; //se dice que el campo opcional numeroitem esta activo compraWs.orden.numeroItemsSpecified = true; compraWs.orden.total = compraDTO.ordenCompra.totalOrden; //se dice que el campo opcional total esta activo compraWs.orden.totalSpecified= true; compraWs.orden.cliente = new ServiceCompra.Usuario(); //Usuario Titular Orden if (compraDTO.ordenCompra.usuarioOrden != null) { compraWs.orden.cliente.nombreUsuario = compraDTO.ordenCompra.usuarioOrden.nombreUsuario; compraWs.orden.cliente.nombre = compraDTO.ordenCompra.usuarioOrden.nombre; compraWs.orden.cliente.apellido = compraDTO.ordenCompra.usuarioOrden.apellido; compraWs.orden.cliente.tipoDocumento = compraDTO.ordenCompra.usuarioOrden.tipoDocumento; compraWs.orden.cliente.numeroDocumento = Convert.ToString(compraDTO.ordenCompra.usuarioOrden.numeroDocumento); compraWs.orden.cliente.correoElectronico = compraDTO.ordenCompra.usuarioOrden.correoElectronico; compraWs.orden.cliente.telefono = compraDTO.ordenCompra.usuarioOrden.telefono; compraWs.orden.cliente.direccion = new ServiceCompra.Direccion(); if (compraDTO.ordenCompra.usuarioOrden.ubicacionCliente != null) { compraWs.orden.cliente.direccion.numero = compraDTO.ordenCompra.usuarioOrden.ubicacionCliente.numeroDireccion; compraWs.orden.cliente.direccion.ciudad = compraDTO.ordenCompra.usuarioOrden.ubicacionCliente.nombreCiudad; compraWs.orden.cliente.direccion.departamento = compraDTO.ordenCompra.usuarioOrden.ubicacionCliente.nombreDepartamento; } }//fin if usuario tirular //datos ordencDetalleItems if(compraDTO.ordenCompra!=null && compraDTO.ordenCompra.listaItemsOrden!=null) { compraWs.orden.listaItems= new ServiceCompra.Item[compraDTO.ordenCompra.listaItemsOrden.Count]; ServiceCompra.Item itemWs = null; ItemOrdenDTO itemCompra = null; ServiceCompra.Producto productoWs=null; ProductosDTO productoCompra = null; for (int i = 0; i < compraDTO.ordenCompra.listaItemsOrden.Count; i++) { itemWs=new ServiceCompra.Item(); itemCompra= compraDTO.ordenCompra.listaItemsOrden[i]; itemWs.cantidad = itemCompra.cantidadItem; itemWs.tipo = itemCompra.tipo; itemWs.idCampania = Convert.ToInt32(itemCompra.idCampania); itemWs.idCampaniaSpecified = true; productoCompra = itemCompra.producto; productoWs = null; if (productoCompra != null) { productoWs = new ServiceCompra.Producto(); productoWs.codigoProducto = productoCompra.codigoProducto; productoWs.descripcionProducto = productoCompra.descripcionProducto; productoWs.fabricanteProducto = productoCompra.fabricanteProducto; productoWs.idProductoSpecified = true; productoWs.idProducto = productoCompra.idProducto; productoWs.nombreImagenProducto = productoCompra.nombreImagenProducto; productoWs.nombreProducto= productoCompra.nombreProducto; productoWs.precioProductoSpecified = true; productoWs.precioProducto = productoCompra.precioProducto; productoWs.tipoProducto = new ServiceCompra.TipoProducto(); productoWs.tipoProducto.categoria = new ServiceCompra.Tipo(); productoWs.tipoProducto.subCategoria = new ServiceCompra.Tipo(); productoWs.tipoProducto.categoria.nombreTipo = productoCompra.nombreCategoria; productoWs.tipoProducto.subCategoria.idTipo = productoCompra.idSubcategoria; productoWs.tipoProducto.subCategoria.nombreTipo = productoCompra.nombreSubcategoria; } itemWs.producto = productoWs; compraWs.orden.listaItems[i] = itemWs; }//cierra for } //Fin datos ordencDetalleItems } //Fin datos ordencompra ServiceCompra.PortCompraClient clienteWs = new ServiceCompra.PortCompraClient(); ServiceCompra.RegistrarCompraSalida salida; entrada.compra = compraWs; salida = clienteWs.registrarCompra(entrada); if (salida != null) { respCompra = new EstadoCompraDTO(); if (salida != null) { respCompra.EstadoTarjeta = salida.estadoTarjeta; if (salida.idPreOrden != null) { respCompra.IdPreOrden = salida.idPreOrden; } } } } catch (Exception e) { Console.WriteLine("Error SetCompra " + e.Message); respCompra = null; } return respCompra; }
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"); } }