コード例 #1
0
ファイル: frmCalendario.cs プロジェクト: nfrick/MoneyBin2
 private void ProcurarAgendamentos()
 {
     SuperMsgBox.ColorButtons();
     foreach (var item in
              dgvCalendario.Rows.OfType <DataGridViewRow>()
              .Select(r => (CalendarioItem)r.DataBoundItem)
              .Where(r => !r.Agendado)
              .OrderBy(r => r.Data))
     {
         if (!ProcurarAgendamento(item))
         {
             break;
         }
     }
     SuperMsgBox.Reset();
 }
コード例 #2
0
ファイル: frmCalendario.cs プロジェクト: nfrick/MoneyBin2
        private void ProcurarPagamentos()
        {
            const string header     = "Procurar Pagamento";
            var          mes        = (CalendarioMes)toolStripComboBoxMes.SelectedItem;
            var          pagamentos = _ctx.Balance.Where(b => b.Valor < 0 &&
                                                         b.Data.Year == mes.Ano &&
                                                         b.Data.Month == mes.Mes12).ToList();
            var naoPagos = dgvCalendario.Rows.OfType <DataGridViewRow>()
                           .Select(r => (CalendarioItem)r.DataBoundItem)
                           .Where(r => r.Agendado && !r.Pago && r.PagamentoData <= DateTime.Today &&
                                  (r.Pagamento.Descricao != null || r.Pagamento.Valor != null || r.Valor != null))
                           .OrderBy(r => r.Data);

            SuperMsgBox.ColorButtons();

            foreach (var item in naoPagos)
            {
                var ip    = item.Pagamento;
                var valor = -1 * (item.Valor == null || item.Valor == 1 ? ip.Valor : item.Valor);
                IEnumerable <BalanceItem> found;
                if (item.Descricao != null && valor != null)
                {
                    found = pagamentos.Where(p => p.Grupo == ip.Grupo &&
                                             p.Categoria == ip.Categoria &&
                                             p.SubCategoria == ip.SubCategoria &&
                                             p.Valor == valor);
                }
                else if (item.Descricao != null)
                {
                    found = pagamentos.Where(p => p.Grupo == ip.Grupo &&
                                             p.Categoria == ip.Categoria &&
                                             p.SubCategoria == ip.SubCategoria);
                }
                else
                {
                    found = pagamentos.Where(p => p.Valor == valor);
                }
                if (!found.Any())
                {
                    SuperMsgBox.SetColors(Color.White, Color.FromArgb(255, 48, 0, 0), Color.FromArgb(255, 32, 0, 0));
                    SuperMsgBox.SetButtonText("OK", "Continue");
                    if (SuperMsgBox.Show($"{item.Descricao}:\n\n\tPagamento não encontrado.",
                                         header,
                                         SuperMsgBox.Buttons.OKCancel,
                                         SuperMsgBox.Icon.Question) == DialogResult.Cancel)
                    {
                        break;
                    }

                    continue;
                }

                var text = found.Select(f => f.ToString())
                           .Aggregate((i, j) => "\t" + i.ToString() + "\n" + j.ToString());
                SuperMsgBox.ResetColors();
                if (SuperMsgBox.Show($"{item.Descricao}:\n\n{text}\n\nConfirma?",
                                     header, SuperMsgBox.Buttons.YesNo, SuperMsgBox.Icon.Question) ==
                    DialogResult.No)
                {
                    continue;
                }

                item.Pago  = true;
                item.Valor = valor ?? 1;
            }
            SuperMsgBox.Reset();
        }