Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 private void PreencherListBox(ListBox listBox, Periodo item)
 {
     listBox.DisplayMember = "DescricaoStr";
     listBox.Items.Add(item);
 }
Пример #4
0
        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;
            }
        }