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