private void btnSiguienteTab2_Click(object sender, EventArgs e) { // Obtener lista de pedido lista = new List <Producto>(); var items = listaPedido.Items; foreach (var prod in items) { if (lista.Contains((Producto)prod)) { int i = lista.IndexOf((Producto)prod); lista[i].Cantidad += 1; } else { lista.Add((Producto)prod); int i = lista.IndexOf((Producto)prod); lista[i].Cantidad = 1; } } if (lista.Count > 0) { tabControl1.SelectedIndex = 2; // Crear Factura con Gestor _Factura = new GestorFactura(); _Factura.AsignarNegocio(_Negocio); _Factura.AsignarCliente(MenuCliente._Cliente); _Factura.AsignarFecha(DateTime.Now); _Factura.AsignarEstadoFactura("Pendiente"); _Factura.AsignarEstadoPedido("En espera"); // Crear Pedido fPedido = new FacadePedido() { ListaProductos = lista }; // Asignar el pedido a la factura _Factura.AsignarPedido(fPedido); // Asignar valores a los textos de el panel con la iformacion del pedido txtCostoNormal.Text = "¢" + fPedido.CostoSinCupones(); txtImpuesto.Text = "¢" + fPedido.ImpuestoVentas(); txtCostoTotal.Text = "¢" + _Factura.CostoTotal(); txtCostoExpress.Text = "¢" + _Factura.CostoExpress(); txtCostoTotalDolares.Text = "$" + _Factura.CostoTotalDolares(); } else { MessageBox.Show(this, "Debe agregar productos a la lista", "Agregue productos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void btnAceptarPedido_Click(object sender, EventArgs e) { int resul = (int)MessageBox.Show(this, "Está seguro que desea ordenar este pedido?", "Aceptar", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); // Gurdar todo en la base de datos para que despues aparezca el pedido en la app de Negocio if (resul == 6) { try { // Agregar la factura FacturaLN facturaLN = new FacturaLN(); _Factura.AsignarEstadoFactura("Pagado"); _Factura.AsignarEstadoPedido("En espera"); _Factura.AsignarEstadoCalificacion("Sin calificar"); facturaLN.IngresarFactura(_Factura.ObtenerFactura()); // Agregar detalle factura PedidoLN pedidoLN = new PedidoLN(); foreach (Producto prod in lista) { pedidoLN.InsertarDetalleFactura(prod); } // Agregar cupon usado if (_Cupon != null) { facturaLN.InsertarCuponUsado(MenuCliente._Cliente, _Cupon); } // Guardar el xml y pdf y adjuntarlos string xml = _Factura.ObtenerXML(); _Factura.GenerarPDF(); // Crear xml XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); doc.Save("FacturaElectronica.xml"); List <string> files = new List <string>(); files.Add(@"FacturaElectronica.xml"); files.Add(@"FacturaElectronica.pdf"); //MenuCliente._Cliente.Correo Correo1.EnviarCorreo(MenuCliente._Cliente.Correo, "Gracias por usar nuestro servicio express", "Delivery S.A | Compra exitosa", files); // Se relaciona el cliente con la factura facturaLN.RelacionarCliente(_Factura.ObtenerFactura()); // Se relaciona el negocio con la factura para que aparezca en el dgv de pedidos con valores nulos facturaLN.RelacionarNegocio(_Factura.ObtenerFactura(), -1.0d, ""); MessageBox.Show(this, "La orden se ha generado con exito, gracias por su compra", "Compra exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information); log.Info("El cliente: " + MenuCliente._Cliente.Correo + " ha realizado una orden"); Close(); } catch (Exception error) { MessageBox.Show(this, "Algo no anda bien :c", "Ocurrió un error", MessageBoxButtons.OK, MessageBoxIcon.Error); StringBuilder msg = new StringBuilder(); msg.AppendFormat("No se pudo crear la factura o Pedido\n"); msg.AppendFormat("Message: {0}\n", error.Message); msg.AppendFormat("Source: {0}\n", error.Source); msg.AppendFormat("Data: {0}\n", error.Data); //Salvar el error en el log log.Error(msg.ToString()); } // La tabla FACTURA USUARIO, se inserta hasta que el cliente puntue a el negocio } }