private void chkPago_CheckStateChanged(object sender, EventArgs e) { if (dgvParcelas.SelectedRows.Count > 0) { int row = dgvParcelas.SelectedRows[0].Index; List <ParcelaView> ParcelasList = LoadFromGridParcela(); for (int i = 0; i < ParcelasList.Count(); i++) { ParcelaView p = ParcelasList[i]; if (i == row) { p.Pago = ((CheckBox)sender).Checked; p.Editado = true; } } dgvParcelas.DataSource = ParcelasList; if (((CheckBox)sender).Checked) { txtDtPagamento.Focus(); } else { txtDtPagamento.Text = string.Empty; } dgvParcelas.CurrentCell = dgvParcelas.Rows[row].Cells[COL_NUMEROPARCELA]; dgvParcelas.Rows[row].Selected = true; } }
private void txtDtPagamento_Validated(object sender, EventArgs e) { if (dgvParcelas.SelectedRows.Count > 0) { int row = dgvParcelas.SelectedRows[0].Index; List <ParcelaView> ParcelasList = LoadFromGridParcela(); for (int i = 0; i < ParcelasList.Count(); i++) { ParcelaView p = ParcelasList[i]; if (i == row) { ((MaskedTextBox)sender).TextMaskFormat = MaskFormat.IncludeLiterals; p.DtPagamento = Convert.ToDateTime(((MaskedTextBox)sender).Text); ((MaskedTextBox)sender).TextMaskFormat = MaskFormat.ExcludePromptAndLiterals; p.Editado = true; } } dgvParcelas.DataSource = ParcelasList; dgvParcelas.CurrentCell = dgvParcelas.Rows[row].Cells[COL_NUMEROPARCELA]; dgvParcelas.Rows[row].Selected = true; } }
private List <ParcelaView> LoadFromGridParcela() { List <ParcelaView> ParcelaList = new List <ParcelaView>(); foreach (DataGridViewRow item in dgvParcelas.Rows) { ParcelaView p = new ParcelaView(); p.Id = Convert.ToInt64(item.Cells[COL_ID].Value); p.Id_Pedido_Otica = Convert.ToInt64(item.Cells[COL_IDPEDIDO].Value); p.NrParcela = Convert.ToInt32(item.Cells[COL_NUMEROPARCELA].Value); p.Valor = Convert.ToDecimal(item.Cells[COL_VALOR].Value); p.Percentual = Convert.ToDecimal(item.Cells[COL_PERCENTUAL].Value); p.Pago = Convert.ToBoolean(item.Cells[COL_PAGO].Value); p.DtVencimento = item.Cells[COL_DATAVENCIMENTO].Value.ToString(); p.Editado = Convert.ToBoolean(item.Cells[COL_EDITADO].Value); p.NrDias = Convert.ToInt32(item.Cells[COL_NRDIAS].Value); if (item.Cells[COL_DATAPAGAMENTO].Value != null) { p.DtPagamento = Convert.ToDateTime(item.Cells[COL_DATAPAGAMENTO].Value); } if (item.Cells[COL_FORMAPAGAMENTO].Value != null) { p.FormaPagamento = item.Cells[COL_FORMAPAGAMENTO].Value.ToString(); } if (item.Cells[COL_USUARIOPAGAMENTO].Value != null) { p.Usuario = item.Cells[COL_USUARIOPAGAMENTO].Value.ToString(); } ParcelaList.Add(p); } return(ParcelaList); }
private void cbFormaPagamento_SelectionChangeCommitted(object sender, EventArgs e) { if (dgvParcelas.SelectedRows.Count > 0) { int row = dgvParcelas.SelectedRows[0].Index; List <ParcelaView> ParcelasList = LoadFromGridParcela(); for (int i = 0; i < ParcelasList.Count(); i++) { ParcelaView p = ParcelasList[i]; if (i == row) { p.FormaPagamento = cbFormaPagamento.Text; p.Usuario = Program.usuario_logado.nome; p.Editado = true; } } dgvParcelas.DataSource = ParcelasList; dgvParcelas.CurrentCell = dgvParcelas.Rows[row].Cells[COL_NUMEROPARCELA]; dgvParcelas.Rows[row].Selected = true; } }
private void txtValor_Validated(object sender, EventArgs e) { if (dgvParcelas.SelectedRows.Count > 0) { int row = dgvParcelas.SelectedRows[0].Index; List <ParcelaView> ParcelasList = LoadFromGridParcela(); decimal? TotalParcelas = 0; decimal? Valor = 0; decimal? percentual = 0; decimal? ValorRestante = 0; decimal? ValorParcelaRestante = 0; decimal? PercentualRestante = 0; decimal? ValorAtual = Convert.ToDecimal(dgvParcelas[COL_VALOR, row].Value); Valor = Convert.ToDecimal(((TextBox)sender).Text); if ((ParcelasList.Count() > 0) && (ValorAtual != Valor)) { TotalParcelas = ParcelasList.Sum(p => p.Valor); //calcular o percentual. if (TotalParcelas > 0) { percentual = ((Valor / TotalParcelas) * 100); txtPercentual.Text = percentual.Value.ToString("N2"); decimal?ValorEditado = 0; int LinhasEditadas = 0; ValorEditado = ParcelasList.Where(p => p.Editado == true).Sum(p => p.Valor); LinhasEditadas = ParcelasList.Where(p => p.Editado == true).Count(); LinhasEditadas += 1; ValorRestante = TotalParcelas - (Valor + ValorEditado); ValorParcelaRestante = (ValorRestante / (dgvParcelas.RowCount - LinhasEditadas)); PercentualRestante = ((ValorParcelaRestante / TotalParcelas) * 100); for (int i = 0; i < ParcelasList.Count(); i++) { ParcelaView p = ParcelasList[i]; if (p.Editado) { continue; } if (i == row) { p.Valor = Valor; p.Percentual = percentual; p.Editado = true; } else { p.Valor = ValorParcelaRestante; p.Percentual = PercentualRestante; p.Editado = false; } } dgvParcelas.DataSource = ParcelasList; } } } }