private void button1_Click(object sender, EventArgs e) { recibo = new Recibo(); Cliente cliente = (Cliente)cboCliente.SelectedItem; recibo.Entrada = decimal.Parse(txtEntrada.Text); recibo.Salida = decimal.Parse(txtSalida.Text); recibo.SaldoA = decimal.Parse(txtSaldoAnterior.Text); decimal sumatoria = 0; foreach (DataGridViewRow row in DGV.Rows) { sumatoria += Convert.ToDecimal(row.Cells["Importe"].Value); } if (sumatoria == recibo.Entrada) { recibo.Salida = 0; txtSalida.Text = recibo.Salida.ToString(); SaldosBD.ActualizarSaldoSuma(cliente, recibo.Entrada); txtSaldoAnterior.Text = SaldosBD.GetSaldo(cliente.IdCliente).ToString(); } else { recibo.Salida = (sumatoria - recibo.Entrada); txtSalida.Text = recibo.Salida.ToString(); decimal saldoAnterior = 0; saldoAnterior = SaldosBD.GetSaldo(cliente.IdCliente); decimal diferencia = 0; if (recibo.Entrada == recibo.Salida) { diferencia = (recibo.Entrada - recibo.Salida) - recibo.Salida;; } else { diferencia = recibo.Entrada - recibo.Salida; } #region Posibles Soluciones //saldoAnterior + sumatoria - (recibo.Entrada - recibo.Salida); //saldoAnterior- (sumatoria - (recibo.Entrada-recibo.Salida)); //((sumatoria + recibo.Entrada) - recibo.Salida); #endregion SaldosBD.ActualizarSaldoResta(cliente, diferencia); txtSaldoAnterior.Text = SaldosBD.GetSaldo(cliente.IdCliente).ToString(); } }