private void buttonCobrar_Click(object sender, EventArgs e) { if (TXTNombre.Text.Equals("Nombre del cliente")) { MessageBox.Show(this, "Introduzca el nombre del cliente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (listadoCompra.Count == 0) { MessageBox.Show(this, "No hay artículos agregados a la venta", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { FCobro f = new FCobro(total); f.ShowDialog(); if (f.DialogResult == DialogResult.OK) { int documento = 1, correlativo = int.Parse(textBoxCorrelativo.Text); DateTime fecha = dateTimePickerFecha.Value; if (textBoxDocumento.Text == "CONSUMIDOR") { documento = 2; } if (textBoxDocumento.Text == "C. FISCAL") { documento = 3; } GenCliente(); Venta venta = new Venta(); venta.Total = f.total; venta.Efectivo = f.recibe; venta.Cambio = f.cambio; venta.Fecha = fecha; venta.IdEmpleado_FK = 1; venta.TipoDocumento = documento; venta.IdCliente_FK = 1; venta.Correlativo = correlativo; venta.IdCorrelativo_FK = 1; CVenta cVentas = new CVenta(); int id = cVentas.Insertar(venta, listadoCompra); if (id > 0) { MessageBox.Show(this, "Venta realizada con éxito", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); try { imprimirTicket(id); } catch (Exception) { } this.Close(); } } } }
private void btn_facturar_Click(object sender, EventArgs e) { if (lista.Rows.Count == 0) { ToastNotification.Show(this, "Añade un producto antes de cobrar.", global::facturacion.Properties.Resources.error, 3000, (eToastGlowColor.Red), (eToastPosition.TopRight)); return; } if (MessageBox.Show("Esta Apunto de Facturar el monto de " + lb_total_importe.Text + ".", "COBRAR PEDIDO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { aux = CCliente.BuscarCI(cb_ci_nit.Text.ToString()); string ccodigo; if (aux.Rows.Count >= 1 && lista.Rows.Count > 0) { DataRow row_cliente = aux.Rows[0]; Numeracion num = new Numeracion(); MVentas venta = new MVentas(0, int.Parse(row_cliente["id"].ToString()), int.Parse(Datos.Rows[0]["id"].ToString()), DateTime.Now, Double.Parse(lb_total_importe.Text), num.Convertir(lb_total_importe.Text, true), "factura", "cancelado", numero_next); long id_now = CVenta.Insertar(venta, this); if (id_now != -1) { DataTable cla = CCodigo.ultimo(); DataTable fa = CFactura.ultimo(); int id_fac_last = 0; if (fa.Rows.Count != 0) { id_fac_last = int.Parse(fa.Rows[0]["id"].ToString()); } id_fac_last++; string clave = cla.Rows[0]["clave"].ToString(); Hashid.Hashid hashid = new Hashid.Hashid(); string[] f = lb_fecActual.Text.Split('/'); ccodigo = (String)hashid.calcular(cla.Rows[0]["autorizacion"].ToString(), id_fac_last.ToString(), cb_ci_nit.Text.ToString(), f[2] + f[1] + f[0], lb_total_importe.Text, clave); qr_image.Text = lb_nit.Text + "|" + id_fac_last.ToString() + "|" + cla.Rows[0]["autorizacion"].ToString() + "|" + lb_fecActual.Text + "|" + lb_total_importe.Text + "|" + lb_total_importe.Text + "|" + ccodigo + "|" + cb_ci_nit.Text.ToString() + "|0|0|0|0|"; string dir = "/img/qrs/" + ccodigo + ".jpg"; qr_image.Image.Save(@"" + Application.StartupPath + dir, ImageFormat.Jpeg); MFactura fact = new MFactura(0, (int)id_now, int.Parse(cla.Rows[0]["id"].ToString()), ccodigo, dir, id_fac_last.ToString(), DateTime.Now); if (!CFactura.Insertar(fact, this)) { MessageBox.Show("no se pudo crear al factura"); } foreach (DataGridViewRow r in lista.Rows) { string precio_total = r.Cells["total"].Value.ToString(); string cantidad = r.Cells["cantidad"].Value.ToString(); string unitario = r.Cells["precio"].Value.ToString(); string descripcion = r.Cells["descripcion"].Value.ToString(); int id = Convert.ToInt32(r.Cells["id"].Value); MDetalleVenta det = new MDetalleVenta(0, id, double.Parse(cantidad), (int)id_now, Double.Parse(precio_total), descripcion, Double.Parse(unitario)); CDetalleVenta.Insertar(det, this); } try { LocalReport rdlc = new LocalReport(); rdlc.ReportPath = @"..\..\Vistas\Report3.rdlc"; rdlc.ReportEmbeddedResource = "facturacion.Vistas.Report3.rdlc"; rdlc.EnableExternalImages = true; DataTable factura = CFactura.MostrarID(id_now); DataTable venta2 = CVenta.MostrarID(id_now); DataTable infomacion = CEmpresa.Mostrar(); DataTable codigo = CCodigo.ultimoID(int.Parse(factura.Rows[0]["idCodigo"].ToString())); DataTable cliente = CCliente.MostrarID(venta2.Rows[0]["idCliente"].ToString()); DataTable customer = CDetalleVenta.Mostrar((int)id_now); rdlc.DataSources.Add(new ReportDataSource("DataSet1", customer)); ReportParameter[] parameters = new ReportParameter[16]; string path = "file:\\" + Application.StartupPath + infomacion.Rows[0]["logo"]; string pathqr = "file:\\" + Application.StartupPath + factura.Rows[0]["QR"].ToString(); parameters[15] = new ReportParameter("Path", @path, true); parameters[0] = new ReportParameter("PathQr", @pathqr, true); parameters[1] = new ReportParameter("empresa", infomacion.Rows[0]["nombre"].ToString()); parameters[2] = new ReportParameter("propietario", infomacion.Rows[0]["nomPropietario"].ToString()); parameters[3] = new ReportParameter("direccion", infomacion.Rows[0]["direccion"].ToString()); parameters[4] = new ReportParameter("nit", infomacion.Rows[0]["nit"].ToString()); parameters[5] = new ReportParameter("nro", factura.Rows[0]["numFactura"].ToString()); parameters[6] = new ReportParameter("autorizacion", codigo.Rows[0]["autorizacion"].ToString()); parameters[7] = new ReportParameter("telefono", infomacion.Rows[0]["telefono"].ToString()); parameters[8] = new ReportParameter("literal", "Son: " + venta2.Rows[0]["montoLiteral"].ToString()); parameters[9] = new ReportParameter("nombre_cliente", cliente.Rows[0]["nombre"].ToString()); parameters[10] = new ReportParameter("ci", cliente.Rows[0]["ci"].ToString()); parameters[11] = new ReportParameter("fecha", venta2.Rows[0]["fecVenta"].ToString()); parameters[12] = new ReportParameter("total", venta2.Rows[0]["montoTotal"].ToString()); parameters[13] = new ReportParameter("codigo_control", factura.Rows[0]["codControl"].ToString()); parameters[14] = new ReportParameter("fecha_limite", codigo.Rows[0]["fecFinal"].ToString()); rdlc.SetParameters(parameters); Impresor imp = new Impresor(); imp.Imprime(rdlc); LocalReport rdlc2 = new LocalReport(); rdlc2.ReportPath = @"..\..\Vistas\Report1.rdlc"; rdlc2.ReportEmbeddedResource = "facturacion.Vistas.Report1.rdlc"; rdlc2.DataSources.Add(new ReportDataSource("DataSet1", customer)); ReportParameter nombre = new ReportParameter("nombre_cliente", cliente.Rows[0]["nombre"].ToString()); ReportParameter fecha = new ReportParameter("fecha", venta2.Rows[0]["fecVenta"].ToString()); ReportParameter numero = new ReportParameter("numero", numero_next.ToString()); rdlc2.SetParameters(new ReportParameter[] { nombre, fecha, numero }); imp.Imprime(rdlc2); limpiar(); } catch (Exception exp) { ToastNotification.Show(this, exp.Message, global::facturacion.Properties.Resources.Warning_sign, 3000, (eToastGlowColor.Red), (eToastPosition.TopRight)); if (MessageBox.Show("Ha ocurrido un error al imprimir, Desea Volver a imprimir el pedido/factura??", "ERROR AL FACTURAR!!!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { LocalReport rdlc = new LocalReport(); rdlc.ReportPath = @"..\..\Vistas\Report3.rdlc"; rdlc.ReportEmbeddedResource = "facturacion.Vistas.Report3.rdlc"; rdlc.EnableExternalImages = true; DataTable factura = CFactura.MostrarID(id_now); DataTable venta2 = CVenta.MostrarID(id_now); DataTable infomacion = CEmpresa.Mostrar(); DataTable codigo = CCodigo.ultimoID(int.Parse(factura.Rows[0]["idCodigo"].ToString())); DataTable cliente = CCliente.MostrarID(venta2.Rows[0]["idCliente"].ToString()); DataTable customer = CDetalleVenta.Mostrar((int)id_now); rdlc.DataSources.Add(new ReportDataSource("DataSet1", customer)); ReportParameter[] parameters = new ReportParameter[16]; string path = "file:\\" + Application.StartupPath + infomacion.Rows[0]["logo"]; string pathqr = "file:\\" + Application.StartupPath + factura.Rows[0]["QR"].ToString(); parameters[15] = new ReportParameter("Path", @path, true); parameters[0] = new ReportParameter("PathQr", @pathqr, true); parameters[1] = new ReportParameter("empresa", infomacion.Rows[0]["nombre"].ToString()); parameters[2] = new ReportParameter("propietario", infomacion.Rows[0]["nomPropietario"].ToString()); parameters[3] = new ReportParameter("direccion", infomacion.Rows[0]["direccion"].ToString()); parameters[4] = new ReportParameter("nit", infomacion.Rows[0]["nit"].ToString()); parameters[5] = new ReportParameter("nro", factura.Rows[0]["numFactura"].ToString()); parameters[6] = new ReportParameter("autorizacion", codigo.Rows[0]["autorizacion"].ToString()); parameters[7] = new ReportParameter("telefono", infomacion.Rows[0]["telefono"].ToString()); parameters[8] = new ReportParameter("literal", "Son: " + venta2.Rows[0]["montoLiteral"].ToString()); parameters[9] = new ReportParameter("nombre_cliente", cliente.Rows[0]["nombre"].ToString()); parameters[10] = new ReportParameter("ci", cliente.Rows[0]["ci"].ToString()); parameters[11] = new ReportParameter("fecha", venta2.Rows[0]["fecVenta"].ToString()); parameters[12] = new ReportParameter("total", venta2.Rows[0]["montoTotal"].ToString()); parameters[13] = new ReportParameter("codigo_control", factura.Rows[0]["codControl"].ToString()); parameters[14] = new ReportParameter("fecha_limite", codigo.Rows[0]["fecFinal"].ToString()); rdlc.SetParameters(parameters); Impresor imp = new Impresor(); imp.Imprime(rdlc); LocalReport rdlc2 = new LocalReport(); rdlc2.ReportPath = @"..\..\Vistas\Report1.rdlc"; rdlc2.ReportEmbeddedResource = "facturacion.Vistas.Report1.rdlc"; rdlc2.DataSources.Add(new ReportDataSource("DataSet1", customer)); ReportParameter nombre = new ReportParameter("nombre_cliente", cliente.Rows[0]["nombre"].ToString()); ReportParameter fecha = new ReportParameter("fecha", venta2.Rows[0]["fecVenta"].ToString()); ReportParameter numero = new ReportParameter("numero", numero_next.ToString()); rdlc2.SetParameters(new ReportParameter[] { nombre, fecha, numero }); imp.Imprime(rdlc2); limpiar(); } limpiar(); } numero_next++; //retornar el reporte } } else { MessageBox.Show("El CI/Nit no esta registrado.\n Registre el Nombre y guardelo."); btn_guardar.BackColor = System.Drawing.Color.Blue; btn_guardar.Enabled = true; tb_nombreAp.Text = ""; tb_nombreAp.Enabled = true; tb_nombreAp.Focus(); } } }
private void btn_cobrar_Click(object sender, EventArgs e) { if (lista.Rows.Count == 0) { ToastNotification.Show(this, "Añade un producto antes de cobrar.", global::facturacion.Properties.Resources.error, 3000, (eToastGlowColor.Red), (eToastPosition.TopRight)); return; } if (MessageBox.Show("Esta Apunto de Cobrar el monto de " + lb_total_importe.Text + ".", "COBRAR PEDIDO", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { aux = CCliente.BuscarCI(cb_ci_nit.Text.ToString()); if (aux.Rows.Count >= 1 && lista.Rows.Count > 0) { DataRow row_cliente = aux.Rows[0]; Numeracion num = new Numeracion(); MVentas venta = new MVentas(0, int.Parse(row_cliente["id"].ToString()), int.Parse(Datos.Rows[0]["id"].ToString()), DateTime.Now, Double.Parse(lb_total_importe.Text), num.Convertir(lb_total_importe.Text, true), "pedido", "cancelado", numero_next); long id_now = CVenta.Insertar(venta, this); if (id_now != (-1)) { foreach (DataGridViewRow r in lista.Rows) { string precio_total = r.Cells["total"].Value.ToString(); string cantidad = r.Cells["cantidad"].Value.ToString(); string unitario = r.Cells["precio"].Value.ToString(); string descripcion = r.Cells["descripcion"].Value.ToString(); int id = Convert.ToInt32(r.Cells["id"].Value); MDetalleVenta det = new MDetalleVenta(0, id, double.Parse(cantidad), (int)id_now, Double.Parse(precio_total), descripcion, Double.Parse(unitario)); if (CDetalleVenta.Insertar(det, this)) { } } try { LocalReport rdlc = new LocalReport(); rdlc.ReportPath = @"..\..\Vistas\Report1.rdlc"; rdlc.ReportEmbeddedResource = "facturacion.Vistas.Report1.rdlc"; DataTable customer = CDetalleVenta.Mostrar((int)id_now); rdlc.DataSources.Add(new ReportDataSource("DataSet1", customer)); DataTable venta2 = CVenta.MostrarID(id_now); DataTable infomacion = CEmpresa.Mostrar(); DataTable cliente = CCliente.MostrarID(venta2.Rows[0]["idCliente"].ToString()); ReportParameter nombre = new ReportParameter("nombre_cliente", cliente.Rows[0]["nombre"].ToString()); ReportParameter fecha = new ReportParameter("fecha", venta2.Rows[0]["fecVenta"].ToString()); ReportParameter numero = new ReportParameter("numero", numero_next.ToString()); rdlc.SetParameters(new ReportParameter[] { nombre, fecha, numero }); Impresor imp = new Impresor(); imp.Imprime(rdlc); limpiar(); } catch (Exception exp) { ToastNotification.Show(this, exp.Message, global::facturacion.Properties.Resources.Warning_sign, 3000, (eToastGlowColor.Red), (eToastPosition.TopRight)); if (MessageBox.Show("Ha ocurrido un error al imprimir, Desea volver a imprimir el pedido??", "ERROR AL FACTURAR!!!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { LocalReport rdlc = new LocalReport(); rdlc.ReportPath = @"..\..\Vistas\Report1.rdlc"; rdlc.ReportEmbeddedResource = "facturacion.Vistas.Report1.rdlc"; DataTable customer = CDetalleVenta.Mostrar((int)id_now); rdlc.DataSources.Add(new ReportDataSource("DataSet1", customer)); DataTable venta2 = CVenta.MostrarID(id_now); DataTable infomacion = CEmpresa.Mostrar(); DataTable cliente = CCliente.MostrarID(venta2.Rows[0]["idCliente"].ToString()); ReportParameter nombre = new ReportParameter("nombre_cliente", cliente.Rows[0]["nombre"].ToString()); ReportParameter fecha = new ReportParameter("fecha", venta2.Rows[0]["fecVenta"].ToString()); ReportParameter numero = new ReportParameter("numero", numero_next.ToString()); rdlc.SetParameters(new ReportParameter[] { nombre, fecha, numero }); Impresor imp = new Impresor(); imp.Imprime(rdlc); limpiar(); } } numero_next++; } } else { MessageBox.Show("El CI/Nit no esta registrado.\n Registre el Nombre y guardelo."); btn_guardar.BackColor = System.Drawing.Color.Blue; btn_guardar.Enabled = true; tb_nombreAp.Text = ""; tb_nombreAp.Enabled = true; tb_nombreAp.Focus(); } } }