Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        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;
                    }
                }
            }
        }