Ejemplo n.º 1
0
        //
        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
Ejemplo n.º 2
0
        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");
            }

        }