private void buttonAdicionar2_Click(object sender, EventArgs e) { try { Periodo.EnumTipo tipo = Periodo.EnumTipo.TermoAditamento; string descricao = string.IsNullOrWhiteSpace(textBoxDescricaoTermoAditamento.Text) ? tipo.ToString() : textBoxDescricaoTermoAditamento.Text; DateTime data = dateTimePickerInicio2.Value; int prazo = Convert.ToInt32(numericUpDownPrazo2.Value); Periodo termoAditamento = new Periodo(descricao, data, prazo, tipo); listaTermoAditamento.Add(termoAditamento); PreencherListBox(listBox2, termoAditamento); } catch (Exception ex) { MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void listBox2_KeyDown(object sender, KeyEventArgs e) { try { bool comItemSelecionado = listBox2.SelectedIndex > -1; bool comItens = listBox2.Items.Count > 0; bool teclaDelete = e.KeyCode == Keys.Delete; int indice = listBox2.SelectedIndex; if (teclaDelete && comItens && comItemSelecionado) { Periodo periodoSelecionado = listBox2.Items[indice] as Periodo; if (periodoSelecionado != null) { listBox2.Items.RemoveAt(indice); listaTermoAditamento.Remove(periodoSelecionado); } } } catch (Exception ex) { MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void PreencherListBox(ListBox listBox, Periodo item) { listBox.DisplayMember = "DescricaoStr"; listBox.Items.Add(item); }
private List <Historico> Processar(DateTime data, int dias) { try { List <DateTime> datas = DatasMock(); DateTime dataAtual = data; Periodo periodoNormal = new Periodo("Normal", dataAtual, dias, Periodo.EnumTipo.Normal); Periodo periodoAtual = periodoNormal; List <Historico> listaHistorico = new List <Historico>(); bool condicao = true; Periodo termoAditamentoJaUtilizadoComSaldo = null; listaTermoAditamento.ForEach(p => p.Zerar()); List <Periodo> listaTermoAditamentoLocal = new List <Periodo>(listaTermoAditamento); listaOrdemSuspensao.ForEach(p => p.Zerar()); List <Periodo> listaOrdemSuspensaoLocal = new List <Periodo>(listaOrdemSuspensao); while (condicao) { bool ehTermoAditamento = listaTermoAditamentoLocal.Any(p => p.PossuiSaldo() && p.Data == dataAtual); bool ehOrdemSuspensao = listaOrdemSuspensaoLocal.Any(p => p.PossuiSaldo() && p.Data == dataAtual); if (ehTermoAditamento || ehOrdemSuspensao) { if (periodoAtual.Tipo == Periodo.EnumTipo.OrdemSuspensao) { periodoAtual.Finalizar(); } if (ehTermoAditamento) { periodoAtual = listaTermoAditamentoLocal.Where(p => p.Data == dataAtual).FirstOrDefault(); } if (ehOrdemSuspensao) { periodoAtual = listaOrdemSuspensaoLocal.Where(p => p.Data == dataAtual).FirstOrDefault(); } } else if (!periodoAtual.PossuiSaldo()) { termoAditamentoJaUtilizadoComSaldo = listaTermoAditamentoLocal.Where(p => p.Contador > 0 && p.PossuiSaldo()).OrderBy(p => p.Data).FirstOrDefault(); if (termoAditamentoJaUtilizadoComSaldo == null) { if (periodoNormal.PossuiSaldo()) { periodoAtual = periodoNormal; } } else { periodoAtual = termoAditamentoJaUtilizadoComSaldo; } } periodoAtual.Contabilizar(); listaHistorico.Add(new Historico(periodoAtual.Contador, dataAtual, periodoAtual.Descricao)); dataAtual = dataAtual.AddDays(1); condicao = listaTermoAditamentoLocal.Any(p => p.PossuiSaldo()) || listaOrdemSuspensaoLocal.Any(p => p.PossuiSaldo()) || periodoNormal.PossuiSaldo(); } return(listaHistorico); } catch (Exception) { throw; } }