private void GenerarAlertas()//metodo para generar las alertas { try { ProductoTableAdapter adapterPro = new ProductoTableAdapter(); //instanciar objeto para utilizar los querys de la tblProducto ProductoDataTable dataPro = adapterPro.ProdAcabandose(); //instanciar objeto para almacenar la data de los productos, en este caso los productos acabandose foreach (ProductoRow item in dataPro) //recorre cada fila de productos que se estan acabando { dgvAlertas.Rows.Add($"[{item.NombreProducto}] quedan {item.NumExistencias}"); // agrega los productos de un determinado formato en el data grid view } FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter(); // objeto para utilizar los querys de tblFactura con el nombre del cliente ya traido FacturasCajDataTable dataFac = adapterFac.FacturaSinPagarConCaj(); //objeto para almacenar las facturas que tienen mas de un mes sin pagarse foreach (FacturasCajRow item in dataFac) //recorre cada fila de las facturas sin pagar { TimeSpan diasDebiendo = DateTime.Now - item.Fecha; // almacena la diferencia de dias que el cliente debe int diasDebe = diasDebiendo.Days + 1; //se le añade un día porque falta uno si no se añade dgvAlertas.Rows.Add($"[{item.NomCliente}] debe RD${item.TotalGeneral - item.Pago} desde hace {diasDebe} días de la factura #{item.IdFactura}"); //se agrega al datagridview el cliente, el pago que debe, los dias y el id de la factura } log.Info("Se generaron las alertas en el menú"); //se registra que se cargó las alertas } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void RealizarBusqueda()//metodo para realizar la busqueda { try { int IdFactura = idFactura == 0 ? Convert.ToInt32(txtIdFactura.Text) : idFactura; //si es 0 quiere decir que se inició la ventana buscar factura desde el menu, de lo contrario fue de pagar deudas if (txtIdFactura.Text != "" || idFactura != 0) //aqui verifica que se haya asignado un id de factura para buscar { LimpiarData(); //metodo para limpiar el datagridview LimpiarPersonas(); //metodo para limpiar los textbox de usuario y cliente FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter(); //objeto para usar los querys de tblFactura relacionada con tblUsuario (nombre usuario) y tblCliente (nombre cliente) FacturasCajDataTable dataFac = new FacturasCajDataTable(); //objeto para guardar info proveniente de tblFactura relacionada con tblUsuario (nombre usuario) y tblCliente (nombre cliente) dataFac = adapterFac.BuscarFacPorIdConCajero(IdFactura); //el objeto almacena la informacion de la factura que se buscó por el id if (dataFac.Rows.Count > 0) //aqui verifica que si se encontró una factura { if (dataFac[0][dataFac.IdClienteColumn].ToString() == "0") //si el id del cliente es 0 quiere decir que la factura no tuvo un cliente especificado { txtNombreCliente.Text = ""; //presenta el textbox nombre del cliente limpio } else//si se especificó un cliente { txtNombreCliente.Text = dataFac[0][dataFac.NomClienteColumn].ToString();//se coloca el nombre del cliente en el textbox nombre del cliente } txtNombreUsuario.Text = dataFac[0][dataFac.CajeroColumn].ToString(); //se coloca el nombre del cajero en el textbox nombre de cajero LlenarData(IdFactura); //se busca el detalle mediante este metodo de la factura DateTime fecha = Convert.ToDateTime(dataFac[0][dataFac.FechaColumn].ToString()); //la fecha se almacena en un datetime para despues datle formato txtFecha.Text = $"{fecha.ToString("dddd")} {fecha.ToString("dd")} de {fecha.ToString("MMMM")} del {fecha.ToString("yyyy")}"; //se coloca la fecha en el textbox fecha con un determinado formato txtTotal.Text = dataFac[0][dataFac.TotalGeneralColumn].ToString(); //se coloca el total de la factura en el textbox total txtDescuento.Text = dataFac[0][dataFac.TotalDescuentoColumn].ToString(); //se coloca el total descontado en el textbox descuento txtPago.Text = dataFac[0][dataFac.PagoColumn].ToString(); //se coloca lo que se pagó en el textbox pago txtDevuelta.Text = (Convert.ToDecimal(txtPago.Text) - Convert.ToDecimal(txtTotal.Text)).ToString(); //se calcula la devuelta del txtpago menos el txttotal y se coloca en el textbox devuelta log.Info($"Se buscó la factura con el ID {IdFactura} por el usuario {usuario.Nombre} {usuario.Apellidos}"); //se registra que se buscó la factura } else//si no se encontró la factura { MessageBox.Show("No se encontró la factura", "Búsqueda de factura", MessageBoxButtons.OK, MessageBoxIcon.Error); //notifica al usuario que no se encontró la factura mediante un mensaje log.Info($"No se encontró la factura con el ID {IdFactura} buscada por el usuario {usuario.Nombre} {usuario.Apellidos}"); //registra que se buscó una factura con un id que no existe LimpiarTodo(); //se limpia toda la ventana } } else//si no hay una factura ingresada { MessageBox.Show("Debe ingresar el ID de la factura", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); LimpiarTodo(); } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void GenerarReporte() { try { FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter(); FacturasCajDataTable dataFac = new FacturasCajDataTable(); if (fechaIni != fechaFin) { dataFac = adapterFac.BuscarFacConCajEntreFechas(fechaIni, fechaFin); log.Info($"Se buscó el reporte del {fechaIni.ToString("dd/MM/yyyy")} al {fechaFin.ToString("dd/MM/yyyy")} por el usuario {usuario.Nombre} {usuario.Apellidos}"); } else { dataFac = adapterFac.BuscarFacConCajeroHoy(fechaIni); log.Info($"Se buscó el reporte del {fechaIni.ToString("dd/MM/yyyy")} por el usuario {usuario.Nombre} {usuario.Apellidos}"); } decimal totalVentas = 0; if (dataFac.Rows.Count > 0) { foreach (FacturasCajRow facturas in dataFac) { DetalleProTableAdapter adapterDet = new DetalleProTableAdapter(); DetalleProDataTable dataDet = adapterDet.DetallePorIdFacConProd(facturas.IdFactura); foreach (DetalleProRow detalles in dataDet) { double ITBIS = Convert.ToDouble(detalles.Precio * detalles.Cantidad) * 0.18; ITBIS = Math.Round(ITBIS, 2); double importe = Convert.ToDouble(detalles.Precio * detalles.Cantidad) + ITBIS; importe = Math.Round(importe, 2); dgvDetalles.Rows.Add(facturas.Cajero, facturas.IdFactura, detalles.Descripcion, detalles.Precio, detalles.Cantidad, ITBIS, detalles.Descuento, importe - Convert.ToDouble(detalles.Descuento)); } totalVentas += facturas.TotalGeneral; } txtTotalVentas.Text = totalVentas.ToString(); txtNumVentas.Text = dataFac.Rows.Count.ToString(); btnGuardar.Enabled = true; btnDetallar.Enabled = true; } else { btnGuardar.Enabled = false; btnDetallar.Enabled = false; LimpiarTodo(); MessageBox.Show("No hay facturas entre las fechas ingresadas"); } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void DetallarFactura_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'tablas.DetallePro' table. You can move, or remove it, as needed. this.detalleProTableAdapter.Fill(this.tablas.DetallePro); try { FacturasCajTableAdapter adaperFac = new FacturasCajTableAdapter(); FacturasCajDataTable dataFac = adaperFac.BuscarFacPorIdConCajero(idFactura); dgvFactura.DataSource = dataFac; foreach (FacturasCajRow item in dataFac) { dgvFactura[2, 0].Value = item.Cajero; } DetallesTableAdapter adapterDet = new DetallesTableAdapter(); dgvDetalles.DataSource = adapterDet.BuscarDetPorIdFactura(idFactura); } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void ReporteDelDia_Load(object sender, EventArgs e) { try { lblReporteDelDia.Text += $": {DateTime.Today.ToString("dd/MM/yyyy")}"; //se coloca en el label reportedeldia el dia que tiene el sistema lblFechaPequena.Text = $"{DateTime.Today.ToString("dddd")}, {DateTime.Today.ToString("dd")} de {DateTime.Today.ToString("MMMM")} del año {DateTime.Today.ToString("yyyy")}"; //coloca de forma extendida en la fecha que tiene el sistema FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter(); //objeto para utilizar querys de tblFactura relacionada con tblUsuario y tblCliente FacturasCajDataTable dataFac = adapterFac.BuscarFacConCajeroHoy(DateTime.Today); //objeto para almacenar las facturas hechas hoy decimal totalVentas = 0, totalDeuda = 0, totalPagado = 0; ushort contDeudas = 0; foreach (FacturasCajRow facturas in dataFac) //se recorre cada factura de hoy { DetalleProTableAdapter adapterDet = new DetalleProTableAdapter(); //objeto para utilizar los querys de tblFacturaD DetalleProDataTable dataDet = adapterDet.DetallePorIdFacConProd(facturas.IdFactura); //objeto almacenar el detalle de las facturas foreach (DetalleProRow detalles in dataDet) //objeto para recorrer cada detalle de la factura { decimal itbis = detalles.ITBIS; //se almacena el itbis // double ITBIS = Convert.ToDouble(detalles.Precio * detalles.Cantidad) * 0.18;//calcula y almacena el itbis //ITBIS = Math.Round(ITBIS, 2);//redondea el itbis decimal importe = detalles.Precio * detalles.Cantidad + itbis; //se calcula el importe importe = Math.Round(importe, 2); //se redondea hacia arriba el importe con dos decimales dgvDetalles.Rows.Add(facturas.Cajero, facturas.IdFactura, detalles.Descripcion, detalles.Precio, detalles.Cantidad, itbis, detalles.Descuento, importe - detalles.Descuento); //se ingresa cada detalle en el dgvDetalles } totalVentas += facturas.TotalGeneral; //almacena el valor de total de cada factura y se va sumando al total de ventas del dia if (facturas.Pago < facturas.TotalGeneral) //si la cantidad pagada es menor que el total de la factura (si no se ha terminado de pagar la factura) { decimal deudaHoy = facturas.Pago - facturas.TotalGeneral; //se almacena la cantidad por pagar deudaHoy *= -1; //se pone positiva el valor de la deuda dgvDeudas.Rows.Add(facturas.Cajero, facturas.NomCliente, deudaHoy.ToString(), facturas.MontoDebe); //se añade la factura en el datagridview de deudas totalDeuda += deudaHoy; //se suma el valor de la deuda al total de deudas del dia contDeudas++; //se suma uno a la cantidad de deudas } } PagoDeudaTableAdapter adapterPaD = new PagoDeudaTableAdapter(); //objeto para utilizar los querys de tblPagoDeuda PagoDeudaDataTable dataPaD = adapterPaD.BuscarHoyPD(DateTime.Today); //se buscan los pagos que se pagaron de deuda foreach (PagoDeudaRow item in dataPaD) //recorre cada pago de deuda { dgvPagoDeudas.Rows.Add(item.NomCliente, item.DeudaAnterior, item.Abono, item.DeudaActual); //se inserta la deuda en el datagridview pagodeudas totalPagado += item.Abono; //se suma al total pagado la cantidad que se abonó en este pago de deuda } txtTotalVentas.Text = totalVentas.ToString(); //se coloca el el total que se generaron de ventas en el textbox ventas txtDeudas.Text = totalDeuda.ToString(); //se coloca el total de deudas generadas en el textbox deudas txtAbonos.Text = totalPagado.ToString(); //se coloca el total abonado en el textbox total abonado txtNumVentas.Text = dataFac.Rows.Count.ToString(); //se coloca el numero de ventas en el textbox numventas txtNumDeudas.Text = contDeudas.ToString(); //se coloca el numero de deudas en el textbox numdeudas txtNumAbonos.Text = dataPaD.Rows.Count.ToString(); //se coloca el numero de pago de deudas en el textbox numabonos txtTotal.Text = (totalVentas - totalDeuda).ToString(); //se coloca el total generado del dia en el textbox total } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void GenerarReporte(DateTime FechaInicio, DateTime FechaFin) { try { FacturasCajTableAdapter adapterFac = new FacturasCajTableAdapter(); FacturasCajDataTable dataFac = adapterFac.BuscarFacConCajEntreFechas(FechaInicio, fechaFin); decimal totalVentas = 0, totalDeuda = 0, totalPagado = 0; ushort contDeudas = 0; foreach (FacturasCajRow facturas in dataFac) { DetalleProTableAdapter adapterDet = new DetalleProTableAdapter(); DetalleProDataTable dataDet = adapterDet.DetallePorIdFacConProd(facturas.IdFactura); foreach (DetalleProRow detalles in dataDet) { double ITBIS = Convert.ToDouble(detalles.Precio * detalles.Cantidad) * 0.18; ITBIS = Math.Round(ITBIS, 2); double importe = Convert.ToDouble(detalles.Precio * detalles.Cantidad) + ITBIS; importe = Math.Round(importe, 2); dgvDetalles.Rows.Add(facturas.Cajero, facturas.IdFactura, detalles.Descripcion, detalles.Precio, detalles.Cantidad, ITBIS, detalles.Descuento, importe - Convert.ToDouble(detalles.Descuento)); } totalVentas += facturas.TotalGeneral; if (facturas.Pago < facturas.TotalGeneral) { decimal deudaHoy = facturas.Pago - facturas.TotalGeneral; deudaHoy *= -1; dgvDeudas.Rows.Add(facturas.Cajero, facturas.NomCliente, deudaHoy.ToString(), facturas.MontoDebe); totalDeuda += deudaHoy; contDeudas++; } } PagoDeudaTableAdapter adapterPaD = new PagoDeudaTableAdapter(); PagoDeudaDataTable dataPaD = adapterPaD.BuscarEntreFechasPD(FechaInicio, fechaFin); foreach (PagoDeudaRow item in dataPaD) { dgvPagoDeudas.Rows.Add(item.NomCliente, item.DeudaAnterior, item.Abono, item.DeudaActual); totalPagado += (decimal)item.Abono; } txtTotalVentas.Text = totalVentas.ToString(); txtDeudas.Text = totalDeuda.ToString(); txtAbonos.Text = totalPagado.ToString(); txtNumVentas.Text = dataFac.Rows.Count.ToString(); txtNumDeudas.Text = contDeudas.ToString(); txtNumAbonos.Text = dataPaD.Rows.Count.ToString(); txtTotal.Text = (totalVentas - totalDeuda).ToString(); } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }