/// <summary> /// Pagar saldo aumentará el saldo a favor de la colonia según el saldo deudor que tenga un colono. /// El saldo del colono bajará a cero y no tendrá más deudas. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPagarSaldo_Click(object sender, EventArgs e) { this.vincular = new VincularDB(this.conexion); double saldo = this.colono.SaldoCuota + this.colono.SaldoProductos; this.colono.SinDeudas = true; if (saldo > 0) { DialogResult resultado = MessageBox.Show("¿Desea pagar $" + saldo + "?", "Saldar deuda", MessageBoxButtons.YesNo); if (resultado == DialogResult.Yes) { if (this.vincular.ProbarConexion()) { this.colono.PagarDeudas(this.colono, this.catalinas); if (this.vincular.ModificarColono(this.colono)) { this.ActualizarTextBox(this.colono); MessageBox.Show("El colono ya no tiene deudas!!"); } else { MessageBox.Show("No se ha podido procesar el pago"); } } else { MessageBox.Show("No se ha podido conectar a la base de datos"); } } } else { MessageBox.Show("El colono no tiene deudas. Impecable"); } }
/// <summary> /// Toma los datos del formulario para crear un nuevo colono. /// Valida que los campos sean correctos. /// Agrega el colono a la colonia y a la base de datos. /// Si todo es correcto establece el dialogResult en ok. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void bntAceptar_Click(object sender, EventArgs e) { this.conexion = new SqlConnection(Properties.Settings.Default.conexionDB); this.nuevaConexion = new VincularDB(conexion); Colono colono = new Colono(); try { colono.Nombre = Validar.ValidarSoloLetras(this.txtBoxNombre.Text); colono.Apellido = Validar.ValidarSoloLetras(this.txtBoxApellido.Text); colono.Dni = Validar.ValidarSoloNumeros(this.txtBoxDni.Text); colono.CargarMes = (EMesIncripcion)this.cmbMes.SelectedIndex; colono.Periodo = (EPeriodoInscripcion)this.cmbPeriodo.SelectedIndex; colono.SaldoCuota = Colono.CalcularDeuda(colono.Periodo); colono.FechaNacimiento = Validar.ValidarFecha(this.txtBoxFechaNacimiento.Text); colono.Edad = (int)DateTime.Now.Year - colono.FechaNacimiento.Year; colono.EdadGrupo = colono.AsignarGrupo(colono.Edad); if (this.catalinas != colono) { if (Colono.EsValido(colono)) { if (this.nuevaConexion.ProbarConexion()) { //this.catalinas += colono; if (nuevaConexion.AgregarColono(colono)) { MessageBox.Show("Se ha agregado el colono a la base de datos!"); this.DialogResult = DialogResult.OK; this.Close(); } } else { MessageBox.Show("No se ha podido conectar a la base de datos"); this.Close(); } } else { MessageBox.Show("Uno o mas campos son incorrectos"); } } else { MessageBox.Show("Ya existe un colono con ese DNI."); } } catch (ValidacionIncorrectaException ex) { MessageBox.Show(ex.Message); } catch (NacimientoInvalidoException ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Genera un nuevo formulario frmModificarColono en el que muestra los datos del colono. /// En dicho formulario permite cambiar algunos de los datos del colono. /// Valida los datos del formulario frmModificarColono. /// Si los datos son correctos vincula con la base de datos cargando los nuevos valores. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnActualizar_Click(object sender, EventArgs e) { bool modificado = false; this.vincular = new VincularDB(this.conexion); frmModificarColono modificar = new frmModificarColono(this.colono); modificar.Owner = this; modificar.StartPosition = FormStartPosition.CenterParent; if (modificar.ShowDialog() == DialogResult.OK) { try { this.colono.Nombre = Validaciones.Validar.ValidarSoloLetras(modificar.txtBoxNombre.Text); this.colono.Apellido = Validaciones.Validar.ValidarSoloLetras(modificar.txtBoxApellido.Text); this.colono.Dni = Validaciones.Validar.ValidarSoloNumeros(modificar.txtBoxDni.Text); this.colono.CargarMes = (EMesIncripcion)modificar.cmbMes.SelectedIndex; this.colono.Periodo = (EPeriodoInscripcion)modificar.cmbPeriodo.SelectedIndex; this.colono.FechaNacimiento = Validaciones.Validar.ValidarFecha(modificar.txtBoxFechaNacimiento.Text); this.colono.Edad = (int)DateTime.Today.Year - colono.FechaNacimiento.Year; this.colono.EdadGrupo = this.colono.AsignarGrupo(this.colono.Edad); if (this.colono.SinDeudas == false) { this.colono.Saldo = Colono.CalcularDeuda(this.colono.Periodo); } else { this.colono.Saldo = 0; } modificado = true; } catch (ValidacionIncorrectaException ex) { MessageBox.Show(ex.Message); } if (Colono.EsValido(this.colono) && modificado == true) { if (this.vincular.ProbarConexion()) { if (this.vincular.ModificarColono(this.colono)) { this.ActualizarTextBox(); MessageBox.Show("Se ha modificado el colono!"); } } else { MessageBox.Show("No se ha podido conectar con la base de datos!"); } } } }
public Colonia ActualizarColonia() { this.vincular = new VincularDB(this.conexion); Colonia auxiliar = new Colonia(); if (this.vincular.ProbarConexion()) { auxiliar = this.vincular.ObtenerColonos(this.catalinas); } else { MessageBox.Show("No se ha podido conectar a la base de datos"); } return(auxiliar); }
/// <summary> /// Inicializa hilo cambia color del formulario principal /// Inicializa un nuevo vínculo con la bae de datos, pasándole como parámetro un SqlConnection /// Obtiene los colonos de la base de datos, cargándolos en la colonia de la clase. /// Obtiene el saldo actual de la colonia desde un archivo. /// Hardcodea una lista de productos. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmPrincipal_Load(object sender, EventArgs e) { hiloInicial = new Thread(new ThreadStart(this.Comenzando)); hiloInicial.Start(); this.nuevoVinculo = new VincularDB(this.conexion); if (this.nuevoVinculo.ProbarConexion()) { this.catalinas = this.nuevoVinculo.ObtenerColonos(this.catalinas); } else { MessageBox.Show("No se ha podido conectar a la base de datos"); } this.catalinas.SaldoActual = Colonia.ObtenerSaldo(); this.HardcodeoProductos(); this.Text = "COLONIA CATALINAS SUR"; }
/// <summary> /// Llama al método realizarVenta que se encarga de manipular el stock, la cantidad de /// productos disponibles para vender, modificar los valores del saldo de la colonia y /// la deuda del colono. /// Al realizar la venta actualiza los posibles productos a vender que se muestran en el comboBox. /// Lanza evento que controla el stock. /// Establece el DialogResult en OK. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAceptar_Click(object sender, EventArgs e) { this.conexion = new SqlConnection(Properties.Settings.Default.conexionDB); this.nuevaConexion = new VincularDB(conexion); if (this.catalinas.ProductosEnVenta.Listado.Count > 0) { if (this.nuevaConexion.ProbarConexion()) { int cantidad = int.Parse(this.cmbCantidadProducto.SelectedItem.ToString()); this.catalinas.RealizaVenta(this.catalinas, this.producto, this.colono, cantidad); //modifica el colono en la base de datos(saldo). this.nuevaConexion.ModificarColono(this.colono); //Actualizar valores this.cmbBoxSeleccionProducto.Items.Clear(); foreach (Producto aux in catalinas.ProductosEnVenta.Listado) { this.cmbBoxSeleccionProducto.Items.Add(aux); } MessageBox.Show("Venta realizada con exito!"); MessageBox.Show(colono.ToString()); //Lanzar el evento que controla el stock. string existencia = this.EventoStock(this.producto); MessageBox.Show(existencia); this.DialogResult = DialogResult.OK; } else { MessageBox.Show("No se ha podido conectar a la base de datos"); } } else { MessageBox.Show("No hay productos para vender!"); } }
/// <summary> /// Realiza vínculo con la base de datos y elimina el registro de la misma previa /// validacion con pregunta a confirmar. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnBorrar_Click(object sender, EventArgs e) { this.vincular = new VincularDB(this.conexion); DialogResult resultado = MessageBox.Show("¿Realmente desea eliminar?", "Borrar alumno", MessageBoxButtons.YesNo); if (resultado == DialogResult.Yes) { if (this.vincular.ProbarConexion()) { //Elimina al colono de la instancia actual. this.catalinas -= this.colono; //Elimiina de la base de datos. if (this.vincular.EliminarColono(this.colono)) { MessageBox.Show("Se ha eliminado el colono"); this.Close(); } } else { MessageBox.Show("No se ha podido conectar a la base de datos"); } } }
/// <summary> /// Genera un nuevo formulario frmModificarColono en el que muestra los datos del colono. /// En dicho formulario permite cambiar algunos de los datos del colono. /// Valida los datos del formulario frmModificarColono. /// Si los datos son correctos vincula con la base de datos cargando los nuevos valores. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnActualizar_Click(object sender, EventArgs e) { Colono auxiliar = new Colono(); this.vincular = new VincularDB(this.conexion); //Actualiza la instancia de colonia con ultimos datos de la base de datos. this.catalinas = this.EventoActualizacion(); frmModificarColono modificar = new frmModificarColono(this.colono); modificar.StartPosition = FormStartPosition.CenterScreen; if (modificar.ShowDialog() == DialogResult.OK) { try { auxiliar.Id = this.colono.Id; auxiliar.Nombre = Validaciones.Validar.ValidarSoloLetras(modificar.txtBoxNombre.Text); auxiliar.Apellido = Validaciones.Validar.ValidarSoloLetras(modificar.txtBoxApellido.Text); auxiliar.Dni = Validaciones.Validar.ValidarSoloNumeros(modificar.txtBoxDni.Text); auxiliar.CargarMes = (EMesIncripcion)modificar.cmbMes.SelectedIndex; auxiliar.Periodo = (EPeriodoInscripcion)modificar.cmbPeriodo.SelectedIndex; auxiliar.FechaNacimiento = Validaciones.Validar.ValidarFecha(modificar.txtBoxFechaNacimiento.Text); auxiliar.Edad = (int)DateTime.Today.Year - auxiliar.FechaNacimiento.Year; auxiliar.EdadGrupo = auxiliar.AsignarGrupo(auxiliar.Edad); auxiliar.SaldoProductos = this.colono.SaldoProductos; if (this.colono.SaldoCuota != 0) { auxiliar.SaldoCuota = Colono.CalcularDeuda(auxiliar.Periodo); } if (Colono.EsValido(auxiliar)) { //Eliminar al colono anterior. //this.catalinas -= this.colono; //Agregar al colono modificado //this.catalinas += auxiliar; if (this.vincular.ProbarConexion()) { if (this.vincular.ModificarColono(auxiliar)) { this.ActualizarTextBox(auxiliar); MessageBox.Show("Se ha modificado el colono!"); } } else { MessageBox.Show("No se ha podido conectar con la base de datos!"); } } } catch (ValidacionIncorrectaException ex) { MessageBox.Show(ex.Message); } catch (NacimientoInvalidoException exe) { MessageBox.Show(exe.Message); } } }