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); } }
public override global::System.Data.DataTable Clone() { ProductoDataTable cln = ((ProductoDataTable)(base.Clone())); cln.InitVars(); return(cln); }
private void InitClass() { this.DataSetName = "ListaMercadoDataSet"; this.Prefix = ""; this.Namespace = "http://tempuri.org/ListaMercadoDataSet.xsd"; this.EnforceConstraints = true; this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; this.tableProducto = new ProductoDataTable(); base.Tables.Add(this.tableProducto); }
internal void InitVars(bool initTable) { this.tableProducto = ((ProductoDataTable)(base.Tables["Producto"])); if ((initTable == true)) { if ((this.tableProducto != null)) { this.tableProducto.InitVars(); } } }
private void BuscarProducto()//metodo para buscar el producto para luego modificarlo { try { if (rbtCodigo.Checked) //si el radiobutton codigo esta tachado { if (txtFiltro.Text != "") //si el texto del textbox filtro tiene informacion ingresada { data = adapter.BuscarProductoPorCodigo(txtFiltro.Text); //se busca la informacion del producto por su codigo de barrass } } else //si es el radiobutton descripcion que esta tachado { if (cboProducto.Text != "")//si el texto del combobox descripcion tiene informacion ingresada { data = adapter.BuscarProdPorNombre(cboProducto.Text);//se busca el producto por el nombre ingresado } } if (data.Rows.Count == 0) // si no se encontró el producto { MessageBox.Show($"No se encontró un producto con el {(rbtCodigo.Checked == true ? "Código" : "Nombre")}: {txtFiltro.Text}{cboProducto.Text}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //notifica al usuario que no se encontro el producto por medio de un mensaje log.Warn($"Se intentó buscar al producto con el {(rbtCodigo.Checked == true ? "Código" : "Nombre")}: {txtFiltro.Text}{cboProducto.Text} por el usuario {usuario.Nombre} {usuario.Apellidos} pero no se encontró"); //se registra que se intentó buscar un producto pero la informacion ingresada para su busqueda no coincide con ninguno LimpiarText(); //limpia la informacion que esta en la ventana } else//si se encontró el producto { foreach (ProductoRow item in data) //se recorre la fila del producto { txtDescripcion.Text = item.NombreProducto; //se coloca el nombre del producto en el textbox descripcion txtCodigo.Text = item.CodigoBarra; //se coloca el codigo de barras en el textbox codigo de barra cboCategoria.SelectedValue = item.IdCategoriaP; //se coloca la categoria en el combobox categoria txtPrecioDetalle.Text = item.PrecioDetalle.ToString(); //se coloca el precio al detalle en el textbox detalle txtPrecioMayor.Text = item.PrecioMayor.ToString(); //se coloca el precio al mayor en el textbox precio mayor txtNumExistencia.Text = item.NumExistencias.ToString(); //se coloca el numero de existencia actual en el textbox numexistencia idProducto = item.IdProducto; //se guarda el id del producto buscado para posteriormente modificarlo txtDescuento.Text = item.Descuento.ToString(); //se coloca el descuento en el textbox descuento cbxITBIS.Checked = item.AplicaITBIS; //se coloca el estado de aplica itbis en el checkbox aplicaitbis } Permitir(); //permite modificar los textbox para asi modificar el producto log.Info($"Se buscó el producto con el {(rbtCodigo.Checked ? "Código" : "Nombre")}: {txtFiltro.Text}{cboProducto.Text} por el usuario {usuario.Nombre} {usuario.Apellidos} para modificarlo"); //se registra que se busco un producto txtDescripcion.Focus(); //se hace focus en el texto descripcion } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}"); } }
public void TraerProducto(DataGridView DgvMostrar) { DgvMostrar.Rows.Clear(); ProductoTableAdapter adapter = new ProductoTableAdapter(); ProductoDataTable mitabla = adapter.GetData(); for (int i = 0; i < mitabla.Count; i++) { ProductoRow misRegistro = (ProductoRow)mitabla.Rows[i]; DgvMostrar.Rows.Add( null, misRegistro.IdProducto, misRegistro.Producto ); } }
internal ProductoRow(global::System.Data.DataRowBuilder rb) : base(rb) { this.tableProducto = ((ProductoDataTable)(this.Table)); }
private void btnAgregar_Click(object sender, EventArgs e)//evento que se dispara cuando das clic al boton agregar { try { if (txtCodigo.Text != "" && txtNombre.Text != "" && txtPrecioDetalle.Text != "" && txtPrecioMayor.Text != "" && txtNumExistencia.Text != "") //verifica que se introduzca la informacion necesaria { ProductoTableAdapter adapter = new ProductoTableAdapter(); //objeto para usar los querys de tblProducto ProductoDataTable data = adapter.BuscarProductoPorCodigo(txtCodigo.Text); //objeto para almacenar informacion de tblProducto, en este caso buscada por el codigo de barra ingresado if (data.Count == 0) //verifica que no haya ya un producto ingresado con ese codigo de barra { decimal descuento = Convert.ToDecimal(txtDescuento.Text); //convierte los numeros ingresados en el textbox descuento en decimal para ingresarlo posteriormente a la base de datos int idCategoria = Convert.ToInt32(cboCategoria.SelectedValue); //guarda la categoria que se seleccionó para el producto adapter.InsertarP(txtNombre.Text.Trim(), txtCodigo.Text.Trim(), Convert.ToDecimal(txtPrecioDetalle.Text), Convert.ToDecimal(txtPrecioMayor.Text), Convert.ToDecimal(txtNumExistencia.Text), idCategoria, descuento, cbxITBIS.Checked); //se inserta el producto en tblProducto log.Info($"Se agregó el producto con el código [{txtCodigo.Text}] al sistema por el usuario {usuario.Nombre} {usuario.Apellidos}"); //se registra que se ingresó el producto MessageBox.Show($"Se agregó al sistema el producto ingresado con el código: {txtCodigo.Text}", "Agregar producto", MessageBoxButtons.OK, MessageBoxIcon.Information); //notifica al usuario con un mensaje que se ingresó el producto Limpiar(); //se limpian todos los textbox } else //si ya hay un producto con este codigo de barra { if ((MessageBox.Show($"Ya hay un producto ingresado con este Código: {txtCodigo.Text}, ¿Desea limpiar todos los campos?", "Error", MessageBoxButtons.YesNo) == DialogResult.Yes)) //le pregunta al usuario si desea limpiar todos los campos. si responde si pasa lo siguiente { Limpiar(); //se limpian todos los textbox } else //si responde que no { txtCodigo.Focus(); //coloca al usuario en el textbox codigo para que lo modifique } log.Info($"Se intentó agregar el producto {txtCodigo.Text} al sistema por el usuario {usuario.Nombre} {usuario.Apellidos} pero ya existe uno con este mismo código"); //registra que se intentó agregar un producto para ya habia uno con este codigo } }//si falta alguna informacion else { string mensaje = "Falta(n) por llenar lo(s) siguiente(s) campo(s): "; //string para guardar que info hace falta if (txtCodigo.Text == "") //si no se ingresó el codigo de barra en su respectivo textbo { mensaje += "\nCódigo de Barras"; //notifica que falta el codigo de barras } if (txtNombre.Text == "") //si no se ingresó el nombre en su respectivo textbo { mensaje += "\nNombre"; //notifica que falta el nombre } if (txtPrecioDetalle.Text == "") //si no se ingresó el precio al detalle en su respectivo textbo { mensaje += "\nPrecio al Detalle"; //notifica que falta el precio al detalle } if (txtPrecioMayor.Text == "") //si no se ingresó el precio mayor en su respectivo textbo { mensaje += "\nPrecio al Mayor"; //notifica que falta el precio al por mayor } if (txtNumExistencia.Text == "") //si no se ingresó el numero de existencias en su respectivo textbo { mensaje += "\nNúmero de Existencia"; //notifica que falta el numero de existencia } MessageBox.Show(mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //notifica al usuario el mensaje de lo que falta } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnCambiarPrecio_Click(object sender, EventArgs e) { try { if (dgvProductos.SelectedRows.Count > 0) { ElegirOpcion elegirOpcion = new ElegirOpcion(usuario, "Cambio de precio", "Seleccione a que precio desea cambiar el producto", "Detalle", "Mayor"); //MessageBoxManager.Retry = "Detalle"; //MessageBoxManager.Cancel = "Mayor"; DialogResult resultado = elegirOpcion.ShowDialog();//MessageBox.Show("Seleccione a que precio desea cambiar el producto", "Cambio de precio", MessageBoxButtons.RetryCancel, MessageBoxIcon.Exclamation); if (resultado == DialogResult.Abort || resultado == DialogResult.Retry) { foreach (DataGridViewRow item in dgvProductos.SelectedRows) { int id = Convert.ToInt32(item.Cells[6].Value.ToString()); dataPro = adapterPro.BuscarPreciosPorId(id); string precioDetalle = dataPro[0][dataPro.PrecioDetalleColumn].ToString(); string precioMayor = dataPro[0][dataPro.PrecioMayorColumn].ToString(); string precio = ""; if (resultado == DialogResult.Retry) { precio = dataPro[0][dataPro.PrecioDetalleColumn].ToString(); } else if (resultado == DialogResult.Abort) { precio = dataPro[0][dataPro.PrecioMayorColumn].ToString(); } //precio = resultado == DialogResult.Retry ? dataPro[0][dataPro.PrecioDetalleColumn].ToString() : dataPro[0][dataPro.PrecioMayorColumn].ToString(); item.Cells[1].Value = precio; decimal importe = Convert.ToDecimal(precio) * Convert.ToDecimal(txtCantidad.Text); decimal ITBIS = 0; if (aplicaITBIS) { ITBIS = Convert.ToDecimal(importe * 18 / 100); ITBIS = Math.Round(ITBIS, 2); importe += ITBIS; } item.Cells[3].Value = ITBIS; item.Cells[5].Value = importe - Convert.ToDecimal(item.Cells[4].Value.ToString()); } Total(); txtIdProducto.Focus(); } else { MessageBox.Show("Debe seleccionar a que precio quiere cambiar el producto", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Debe seleccionar un producto al que desea cambiarle el precio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void BuscarProducto() { try { descuentoPro = 0; if (txtIdProducto.Enabled == true) { dataPro = adapterPro.BuscarProductoPorCodigo(txtIdProducto.Text); if (dataPro.Rows.Count == 1) { cboDescripcionProducto.Text = dataPro.Rows[0][dataPro.NombreProductoColumn].ToString(); txtPrecioDetalle.Text = dataPro.Rows[0][dataPro.PrecioDetalleColumn].ToString(); txtPrecioMayor.Text = dataPro.Rows[0][dataPro.PrecioMayorColumn].ToString(); numExistencias = dataPro.Rows[0][dataPro.NumExistenciasColumn].ToString(); descuentoPro += Convert.ToDecimal(dataPro.Rows[0][dataPro.DescuentoColumn].ToString()); aplicaITBIS = Convert.ToBoolean(dataPro[0][dataPro.AplicaITBISColumn]); idProducto = Convert.ToInt32(dataPro[0][dataPro.IdProductoColumn].ToString()); AgregarProducto(); } else { MessageBox.Show($"No sé encontro el producto con el código: {txtIdProducto.Text}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtIdProducto.Text = ""; cboDescripcionProducto.Text = ""; txtPrecioDetalle.Text = ""; txtCantidad.Text = "1"; } } else { dataPro = adapterPro.BuscarProdPorNombre(cboDescripcionProducto.Text); if (dataPro.Rows.Count == 1) { if (dataPro.Rows[0][dataPro.IdProductoColumn].ToString() != "0") { txtIdProducto.Text = dataPro.Rows[0][dataPro.CodigoBarraColumn].ToString(); txtPrecioDetalle.Text = dataPro.Rows[0][dataPro.PrecioDetalleColumn].ToString(); txtPrecioMayor.Text = dataPro.Rows[0][dataPro.PrecioMayorColumn].ToString(); numExistencias = dataPro.Rows[0][dataPro.NumExistenciasColumn].ToString(); descuentoPro += Convert.ToDecimal(dataPro.Rows[0][dataPro.DescuentoColumn].ToString()); aplicaITBIS = Convert.ToBoolean(dataPro[0][dataPro.AplicaITBISColumn]); idProducto = Convert.ToInt32(dataPro[0][dataPro.IdProductoColumn].ToString()); txtCantidad.Focus(); } } else { MessageBox.Show($"No sé encontro el producto con el nombre: {cboDescripcionProducto.Text}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); txtIdProducto.Text = ""; cboDescripcionProducto.Text = ""; txtPrecioDetalle.Text = ""; txtCantidad.Text = "1"; } } } catch (Exception error) { log.Error($"Error: {error.Message}", error); MessageBox.Show($"Error: {error.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }