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(); }
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(); }