Usuário com melhor resposta
Como não perder o valor inicial de uma váriavel c# windows forms?

Pergunta
-
Boa tarde. Estou criando um sistema em c, onde ao cadastrar o cliente é informado o valor de limite que ele pode comprar. Ao cadastrar a nota, o valor da nota é subtraído no valor de limite. E quando o cliente paga a nota, o valor é retornado para o limite.
O problema é que não quero perder o limite inicial deste cliente. Porém, não sei como fazer para que isso não ocorra. Alguém pode me ajudar?
Abaixo colocarei o trecho onde é cadastrado ou alterado uma nota. Até o momento, estou subtraindo do valor do limite, ou seja, perdendo o valor inicial.
private void Bt_Cadastrar_Click(object sender, EventArgs e) { if (!VerificaCampos()) return; Nota oNota = new Nota(); if(ICodEdicao > 0) oNota.NotaID = Convert.ToInt32(txt_CodigoNota.Text.Trim()); NotaProduto oNotaProduto = new NotaProduto(); oNota.ClienteID = Convert.ToInt32(txt_CodigoCliente.Text.Trim()); oNota.FuncionarioID = Convert.ToInt32(txt_CodigoFuncionario.Text.Trim()); oNota.NumeroNota = txt_NumeroControle.Text.Trim(); oNota.DataEmissao = Convert.ToDateTime(dt_Data.Value.ToString()); oNota.DataAlteracao = DateTime.Now; oNota.Produtos = MontarListViewNotaProduto(); oNota.Status = Entidades.Enumeradores.Status.Aberto; oNota.UsuarioID = Sessao.Usuario.Codigo; oNotaProduto.NotaID = oNota.NotaID; oNota.ValorRestante = Convert.ToDecimal(txt_ValorTotalNota.Text.Trim()); decimal LimiteCompra = (Convert.ToDecimal(txt_LimiteDisponivel.Text) - Convert.ToDecimal(0.9 * Convert.ToDouble(txt_LimiteDisponivel.Text))); if ((Convert.ToDecimal(txt_LimiteDisponivel.Text) - Convert.ToDecimal(txt_ValorTotalNota.Text)) <= 0) { DialogResult confirm = MessageBox.Show("Este cliente não possui limites, tem certeza que deseja efetuar essa venda?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (confirm.ToString().ToUpper() == "YES") { oNota.Limite = Convert.ToDecimal(txt_LimiteDisponivel.Text.Trim()) - Convert.ToDecimal(txt_ValorTotalNota.Text.Trim()); } } if ((Convert.ToDecimal(txt_LimiteDisponivel.Text) - Convert.ToDecimal(txt_ValorTotalNota.Text)) <= LimiteCompra && (Convert.ToDecimal(txt_LimiteDisponivel.Text) - Convert.ToDecimal(txt_ValorTotalNota.Text)) > 0) { DialogResult confirm = MessageBox.Show("O limite deste cliente está se esgotando, tem certeza que deseja efetuar a venda?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (confirm.ToString().ToUpper() == "YES") { oNota.Limite = Convert.ToDecimal(txt_LimiteDisponivel.Text.Trim()) - Convert.ToDecimal(txt_ValorTotalNota.Text.Trim()); } } oNota.Limite = Convert.ToDecimal(txt_LimiteDisponivel.Text.Trim()) - Convert.ToDecimal(txt_ValorTotalNota.Text.Trim()); NotasNG ngNota = new NotasNG(); if (ICodEdicao == 0) { //Grava no banco pela primeira vez if (ngNota.Inserir(oNota)) { MessageBox.Show("Nota cadastrada com sucesso!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); LimparCampos(); } else MessageBox.Show("Não foi possivel cadastrar a nota. Tente novamente!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } //Edita no banco de dados if (ICodEdicao > 0) { if (ngNota.Alterar(oNota)) { MessageBox.Show("Nota alterada com sucesso!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); LimparCampos(); } else MessageBox.Show("Não foi possivel alterar a nota. Tente novamente!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Respostas
-
Rayanne, faz uma property Limite (Valor total do Limite de crédito do cliente) e uma Debito (Valor que o cliente está devendo) e armazena essas 2 informações no banco de dados, assim, quando o cliente for cadastrado a propriedade Limite será registrada, e quando o mesmo efetuar uma compra, ele terá o valor de débito acrescido. Assim, quando o mesmo efetuar o pagamento terá o seu débito abatido. E quando você precisar de obter o valor do limite que o cliente ainda tem, você apenas subtrai (Limite - Debito). Entendeu?
- Editado Marcos Pablo sábado, 16 de novembro de 2019 21:12 Falta pontuação e uma informação.
- Marcado como Resposta IgorFKModerator segunda-feira, 9 de dezembro de 2019 17:27
Todas as Respostas
-
-
Rayanne, faz uma property Limite (Valor total do Limite de crédito do cliente) e uma Debito (Valor que o cliente está devendo) e armazena essas 2 informações no banco de dados, assim, quando o cliente for cadastrado a propriedade Limite será registrada, e quando o mesmo efetuar uma compra, ele terá o valor de débito acrescido. Assim, quando o mesmo efetuar o pagamento terá o seu débito abatido. E quando você precisar de obter o valor do limite que o cliente ainda tem, você apenas subtrai (Limite - Debito). Entendeu?
- Editado Marcos Pablo sábado, 16 de novembro de 2019 21:12 Falta pontuação e uma informação.
- Marcado como Resposta IgorFKModerator segunda-feira, 9 de dezembro de 2019 17:27
-