コード例 #1
0
        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
            }
        }