public void pesquisarEventos()
        {
            string cliente = txtCliente.Text;
            string aniversariante = txtAniverariante.Text;
            string cidade = txtCidade.Text;
            DateTime dataDe = dtpInicio.Value.Date;
            DateTime dataPara = dtpTermino.Value.Date;
            bool concluido = false;
            bool cancelado = false;
            bool aberto = false;

            if (cbConcluido.Checked == true)
                concluido = true;
            if (cbCancelado.Checked == true)
                cancelado = true;
            if (cbAberto.Checked == true)
                aberto = true;

            EventoNegocio eventoNegocio = new EventoNegocio();
            EventoColecao eventoColecao = new EventoColecao();

            eventoColecao = eventoNegocio.ConsultaAvancada(cliente, aniversariante, cidade, dataDe, dataPara, concluido, cancelado,aberto);

            dgvAgendaEventos.DataSource = null;
            dgvAgendaEventos.DataSource = eventoColecao;
            dgvAgendaEventos.Update();
            dgvAgendaEventos.Refresh();
        }
        public void atualizaGrid()
        {
            EventoColecao eventoColecao = new EventoColecao();
            EventoNegocio eventoNegocio = new EventoNegocio();

            //realizar consulta no banco de dados e nos trará todos os eventos cadastrados no sistema
            eventoColecao = eventoNegocio.ConsultaProximosEventos();
            //limpando grid
            dgvAgendaEventos.DataSource = null;
            //exibindo dados no grid
            dgvAgendaEventos.DataSource = eventoColecao;
            dgvAgendaEventos.Update();
            dgvAgendaEventos.Refresh();
        }
        private void btnGravar_Click(object sender, EventArgs e)
        {
            if(btnGravar.Text == "Alterar" && btnCancelarEvento.Enabled == true)
            {
                Evento evento = new Evento();
                EventoBrinquedoColecao eventoBrinquedoColecao = new EventoBrinquedoColecao();
                EventoDecoracaoColecao eventoDecoracaoColecao = new EventoDecoracaoColecao();
                EventoServicoColecao eventoServicoColecao = new EventoServicoColecao();
                EventoNegocio eventoNegocio = new EventoNegocio();

                //verificar se existe cliente selecionado
                if (txtCliente.Text == null)
                {
                    MessageBox.Show("Favor, selecione um cliente.", "Erro ao gravar evento.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                evento.codEvento = Convert.ToInt32(txtCodigo.Text);
                if (clienteSelecionado != null)
                    evento.codCliente = Convert.ToInt32(clienteSelecionado.codCliente);
                else
                    evento.codCliente = codCliente;
                evento.nome = txtAniversariante.Text;
                evento.localEvento = txtLocal.Text;
                evento.data_evento = dateTimePickerDataEvento.Value;
                evento.cidadeEvento = txtCidadeEvento.Text;
                evento.inicio = TimeSpan.Parse(maskedTextBoxInicio.Text);
                evento.termino = TimeSpan.Parse(maskedTextBoxTermino.Text);
                evento.tema = txtTema.Text;
                evento.observacao = txtComplementar.Text;
                evento.totalEvento = (auxiliarBrinquedo + auxiliarDecoracao + auxiliarServico + acrescimo) - desconto;
                evento.parametro = 1;
                //Atualizando os dados do evento
                eventoNegocio.AlterarEvento(evento);
                //Atualizando os dados dos brinquedos deste evento
                for (int i = 0; i < brinquedoColecao.Count; i++)
                {
                    if (checkedListBoxBrinquedos.GetItemChecked(i) == true)
                    {
                        EventoBrinquedo eventoBrinquedo = new EventoBrinquedo();
                        eventoBrinquedo.codBrinquedo = Convert.ToInt32(brinquedoColecao[i].codBrinquedo);
                        eventoBrinquedo.codEvento = Convert.ToInt32(codEvento);
                        eventoBrinquedo.quantidade = Convert.ToInt32(dgvCarrinho.Columns["ColQuantidade"]);
                        eventoBrinquedoColecao.Add(eventoBrinquedo);
                    }
                }

                eventoNegocio.AlterarEventoBrinquedo(eventoBrinquedoColecao, evento.codEvento);

                //Atualizando os dados das decorações deste evento
                for (int i = 0; i < decoracaoColecao.Count; i++ )
                {
                    if(checkedListBoxDecoracao.GetItemChecked(i) == true)
                    {
                        EventoDecoracao eventoDecoracao = new EventoDecoracao();
                        eventoDecoracao.codDecoracao = Convert.ToInt32(decoracaoColecao[i].codDecoracao);
                        eventoDecoracao.codEvento = Convert.ToInt32(codEvento);

                        eventoDecoracaoColecao.Add(eventoDecoracao);
                    }
                }

                eventoNegocio.AlterarEventoDecoracao(eventoDecoracaoColecao, evento.codEvento);

                //Atualizando os dados dos serviços deste evento
                for (int i = 0; i < servicoColecao.Count; i++ )
                {
                    if(checkedListBoxServicos.GetItemChecked(i) == true)
                    {
                        EventoServico eventoServico = new EventoServico();
                        eventoServico.codEvento = Convert.ToInt32(codEvento);
                        eventoServico.codServico = Convert.ToInt32(servicoColecao[i].codServico);

                        eventoServicoColecao.Add(eventoServico);
                    }
                }

                eventoNegocio.AlterarEventoServico(eventoServicoColecao, evento.codEvento);

                MessageBox.Show("Evento atualizado com sucesso.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                DialogResult retornoCliente = MessageBox.Show("Deseja reemprimir o contrato deste evento com os dados atualizados?", "Pergunta?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (retornoCliente == DialogResult.Yes)
                {
                    FrmVisualizadorContrato fvc = new FrmVisualizadorContrato(evento.codEvento.ToString());
                    fvc.Show();
                    limparEventos();
                }
                else
                    limparEventos();
                this.Close();
            }
            else
            {
                if(verificaCarrinho() == true)
                {
                    gravarEvento();

                    if (MessageBox.Show("Deseja gerar o contrato deste evento?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        FrmVisualizadorContrato fvc = new FrmVisualizadorContrato(codEvento);
                        fvc.Show();
                        limparEventos();
                    }
                    else
                        return;
                }
                else
                {
                    MessageBox.Show("Existem informações não exibidas no Grid \"Carrinho\". Favor verificar se foram informados as quantidades do(s) produto(s) corretamente.", "Erro ao gravar dados.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private void btnCancelarEvento_Click(object sender, EventArgs e)
        {
            EventoNegocio eventoNegocio = new EventoNegocio();
            Evento evento = new Evento();

            evento.codEvento = Convert.ToInt32(txtCodigo.Text);

            eventoNegocio.EventoCancelado(evento);
            DialogResult retorno = MessageBox.Show("Você tem certeja que deseja cancelar este evento?", "Pergunta?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (retorno == DialogResult.Yes)
                MessageBox.Show("Evento cancelado com sucesso.", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);

            this.Close();
        }
        //Método construtor para o evento de alterar
        public FrmCadastroEvento(EnumeradorEvento acao, Evento eventoSelecionado)
        {
            InitializeComponent();

            if (acao == EnumeradorEvento.Alterar)
            {
                EventoNegocio eventoNegocio = new EventoNegocio();

                txtCodigo.Text = eventoSelecionado.codEvento.ToString();
                txtCliente.Text = eventoSelecionado.nomeCliente;
                codCliente = eventoSelecionado.codCliente;
                txtAniversariante.Text = eventoSelecionado.nome;
                txtLocal.Text = eventoSelecionado.localEvento;
                txtCidadeEvento.Text = eventoSelecionado.cidadeEvento;
                dateTimePickerDataEvento.Value = Convert.ToDateTime(eventoSelecionado.data_evento);
                maskedTextBoxInicio.Text = eventoSelecionado.inicio.ToString();
                maskedTextBoxTermino.Text = eventoSelecionado.termino.ToString();
                txtTema.Text = eventoSelecionado.tema;
                txtComplementar.Text = eventoSelecionado.observacao;
                btnGravar.Text = "Alterar";
                btnLimpar.Text = "Reimprimir";
                btnLimpar.Image = Properties.Resources.reimprimir;
                //Image.FromFile("Imagens/reimprimir.png");
                btnNovo.Enabled = false;
                btnCancelarEvento.Enabled = true;

                //Pegar os dados de brinquedos e inserir no checkedListBoxBrinquedos
                BrinquedoColecao brinquedoColecaoGenerico = new BrinquedoColecao();
                brinquedoColecaoGenerico = eventoNegocio.BuscarEventoBrinquedo(eventoSelecionado.codEvento);

                brinquedoColecao = brinquedoNegocio.ConsultarNomeBrinquedo("");

                for (int i = 0; i < brinquedoColecao.Count; i++)
                {
                    checkedListBoxBrinquedos.Items.Add(brinquedoColecao[i].nome);
                }

                double auxiliarPrecoTotalBrinquedo = 0;

                for (int i = 0; i < brinquedoColecaoGenerico.Count; i++)
                {
                    for (int x = 0; x < brinquedoColecao.Count; x++)
                    {
                        if (brinquedoColecaoGenerico[i].nome == brinquedoColecao[x].nome)
                        {
                            checkedListBoxBrinquedos.SetItemChecked(x, true);
                            auxiliarPrecoTotalBrinquedo += brinquedoColecaoGenerico[i].valor;
                        }
                    }
                }
                //Pegar os dados de decoração e inserir no checkedListBoxDecoracoes
                DecoracaoColecao decoracaoColecaoGenerico = new DecoracaoColecao();
                decoracaoColecaoGenerico = eventoNegocio.BuscarEventoDecoracao(eventoSelecionado.codEvento);

                decoracaoColecao = decoracaoNegocio.ConsultarNomeDecoracao("");

                for (int i = 0; i < decoracaoColecao.Count; i++)
                {
                    checkedListBoxDecoracao.Items.Add(decoracaoColecao[i].nome);
                }

                double auxiliarPrecoTotalDecoracao = 0;

                for (int i = 0; i < decoracaoColecaoGenerico.Count; i++)
                {
                    for (int x = 0; x < decoracaoColecao.Count; x++)
                    {
                        if (decoracaoColecaoGenerico[i].nome == decoracaoColecao[x].nome)
                        {
                            checkedListBoxDecoracao.SetItemChecked(x, true);
                            auxiliarPrecoTotalDecoracao += decoracaoColecaoGenerico[i].valor;
                        }
                    }
                }
                //Pegar os dados de serviço e inserir no checkedListBoxServicos
                ServicoColecao servicoColecaoGenerico = new ServicoColecao();
                servicoColecaoGenerico = eventoNegocio.BuscarEventoServico(eventoSelecionado.codEvento);

                servicoColecao = servicoNegocio.ConsultarNome("");

                for (int i = 0; i < servicoColecao.Count; i++)
                {
                    checkedListBoxServicos.Items.Add(servicoColecao[i].nome);
                }

                double auxiliarPrecoTotalServico = 0;

                for (int i = 0; i < servicoColecaoGenerico.Count; i++)
                {
                    for (int x = 0; x < servicoColecao.Count; x++)
                    {
                        if (servicoColecaoGenerico[i].nome == servicoColecao[x].nome)
                        {
                            checkedListBoxServicos.SetItemChecked(x, true);
                            auxiliarPrecoTotalServico += servicoColecaoGenerico[i].valor;
                        }
                    }
                }
                //Código para buscar apenas o total do (evento + acrescimos) - descontos
                object retorno = eventoNegocio.BuscarValorTotalEvento(eventoSelecionado.codEvento);

                txtTotalEvento.Text = retorno.ToString();
                txtValorEvento.Text = (auxiliarPrecoTotalBrinquedo + auxiliarPrecoTotalDecoracao + auxiliarPrecoTotalServico).ToString();
            }
            else
                MessageBox.Show("Erro ao carregar dados.\nContate o Administrador do sistema.","Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        public void gravarEvento()
        {
            try
            {
                Evento evento = new Evento();
                EventoBrinquedoColecao eventoBrinquedoColecao = new EventoBrinquedoColecao();
                EventoDecoracaoColecao eventoDecoracaoColecao = new EventoDecoracaoColecao();
                EventoServicoColecao eventoServicoColecao = new EventoServicoColecao();

                EventoNegocio eventoNegocio = new EventoNegocio();

                //verificar se existe cliente selecionado
                if (clienteSelecionado == null)
                {
                    MessageBox.Show("Favor, selecione um cliente.", "Erro ao gravar evento.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                evento.codCliente = Convert.ToInt32(clienteSelecionado.codCliente);
                evento.nome = txtAniversariante.Text;
                evento.localEvento = txtLocal.Text;
                evento.data_evento = dateTimePickerDataEvento.Value;
                evento.cidadeEvento = txtCidadeEvento.Text;
                evento.inicio = TimeSpan.Parse(maskedTextBoxInicio.Text);
                evento.termino = TimeSpan.Parse(maskedTextBoxTermino.Text);
                evento.tema = txtTema.Text;
                evento.observacao = txtComplementar.Text;
                //evento.totalEvento = (auxiliarBrinquedo + auxiliarDecoracao + auxiliarServico + acrescimo) - desconto;
                evento.totalEvento = totalEvento();
                evento.parametro = 1;

                //inserido o codigo do evento gravado
                codEvento = eventoNegocio.InserirEvento(evento);

                /*componente responsável por buscar os registros "checados"
                 * e adicionar em uma lista de objeto
                 */
                for (int i = 0; i < brinquedoColecao.Count; i++)
                {
                    if(checkedListBoxBrinquedos.GetItemChecked(i) == true)
                    {
                        EventoBrinquedo eventoBrinquedo = new EventoBrinquedo();
                        eventoBrinquedo.codBrinquedo = Convert.ToInt32(brinquedoColecao[i].codBrinquedo);
                        eventoBrinquedo.codEvento = Convert.ToInt32(codEvento);

                        eventoBrinquedoColecao.Add(eventoBrinquedo);
                    }
                }
                //Preenchendo quantidade segundo o dgvCarrinho de brinquedo
                for(int i = 0; i < dgvCarrinho.RowCount; i++)
                {
                    if(dgvCarrinho[0,i].Value.ToString() == "Brinquedo")
                    {
                        eventoBrinquedoColecao[i].quantidade = Convert.ToInt32(dgvCarrinho[colQuantidadeEvento.Index,i].Value);
                    }
                }

                for (int i = 0; i < decoracaoColecao.Count; i++)
                {
                    if (checkedListBoxDecoracao.GetItemChecked(i) == true)
                    {
                        EventoDecoracao eventoDecoracao = new EventoDecoracao();

                        eventoDecoracao.codDecoracao = Convert.ToInt32(decoracaoColecao[i].codDecoracao);
                        eventoDecoracao.codEvento = Convert.ToInt32(codEvento);

                        eventoDecoracaoColecao.Add(eventoDecoracao);
                    }
                }

                //Preenchendo quantidade segundo o dgvCarrinho de Decoração
                int x = 0;
                for (int i = 0; i < dgvCarrinho.RowCount; i++)
                {
                    if (dgvCarrinho[0,i].Value.ToString() == "Decoração")
                    {
                        eventoDecoracaoColecao[x].quantidade = Convert.ToInt32(dgvCarrinho[colQuantidadeEvento.Index, i].Value);
                        x++;
                    }
                }

                for (int i = 0; i < servicoColecao.Count; i++)
                {
                    if (checkedListBoxServicos.GetItemChecked(i) == true)
                    {
                        EventoServico eventoServico = new EventoServico();

                        eventoServico.codServico = Convert.ToInt32(servicoColecao[i].codServico);
                        eventoServico.codEvento = Convert.ToInt32(codEvento);

                        eventoServicoColecao.Add(eventoServico);
                    }
                }

                //Preenchendo quantidade segundo o dgvCarrinho de Serviço
                int y = 0;
                for (int i = 0; i < dgvCarrinho.RowCount; i++)
                {
                    if (dgvCarrinho[0, i].Value.ToString() == "Serviço")
                    {
                        eventoServicoColecao[y].quantidade = Convert.ToInt32(dgvCarrinho[colQuantidadeEvento.Index, i].Value);
                        y++;
                    }
                }

                //Inserir forma de pagamento ao objeto
                PagamentoColecao pgtoColecao = new PagamentoColecao();
                for(int i = 0; i < dgvFormaPagamento.RowCount; i++)
                {
                    if(dgvFormaPagamento[2,i].Value.ToString() != "0".ToString())
                    {
                        PagamentoFormas pgtoFormas = new PagamentoFormas();

                        pgtoFormas.codPagamento = Convert.ToInt32(dgvFormaPagamento[0, i].Value);//codigo
                        pgtoFormas.nome = dgvFormaPagamento[1, i].Value.ToString();//Nome Forma
                        pgtoFormas.valor = Convert.ToInt32(dgvFormaPagamento[2, i].Value);//Valor pgto na forma selecionada

                        pgtoColecao.Add(pgtoFormas);
                    }
                }

                //gravando os registros de "brinquedos", "decoração" e "serviço".
                string codEventoBrinquedo = eventoNegocio.InserirEventoBrinquedo(eventoBrinquedoColecao);

                string codEventoDecoracao = eventoNegocio.InserirEventoDecoracao(eventoDecoracaoColecao);

                string codEventoServico = eventoNegocio.InserirEventoServico(eventoServicoColecao);

                pgtoNegocio.fCadastrarFormaPagamento(pgtoColecao, codEvento);

                try
                {
                    int codEventoInteiro = Convert.ToInt32(codEvento);
                    int codEventoBrinquedoInteiro = Convert.ToInt32(codEventoBrinquedo);
                    int codEventoDecoracaoInteiro = Convert.ToInt32(codEventoDecoracao);
                    int codEventoServicoInteiro = Convert.ToInt32(codEventoServico);

                    MessageBox.Show("Evento gravado com sucesso.", "Sucesso.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBox.Show("Erro ao gravar evento.\nContate o Administrador.", "Erro ao gravar evento.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch
            {
                MessageBox.Show("Erro ao gravar evento.\nContate o Administrador.", "Erro ao gravar evento.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 private void dgvAgendaEventos_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     EventoNegocio eventoNegocio = new EventoNegocio();
     try
     {
         Evento evento = new Evento();
         if (e.ColumnIndex == dgvAgendaEventos.Columns["colConcluido"].Index)
         {
             evento = (dgvAgendaEventos.Rows[e.RowIndex].DataBoundItem as Evento);
             //se o evento estivar como false(ou seja, não finalizado), este método irá finaliza-lo
             if (evento.concluido == false)
             {
                 DialogResult pergunta = MessageBox.Show("Você confirma a finalização deste evento?", "Concluir evento", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                 if (pergunta == DialogResult.Yes)
                     eventoNegocio.EventoConcluir(evento);
                 else
                 {
                     //caso o usuário não confirme a conclusão, será setado novamente para false o checkbox
                     dgvAgendaEventos.Columns["colConcluido"].Selected = false;
                 }
                 atualizaGrid();
             }
             else
             {
                 DialogResult pergunta = MessageBox.Show("Você confirma reabrir este evento?", "Reabrir evento", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                 if (pergunta == DialogResult.Yes)
                     eventoNegocio.EventoConcluirDesfazer(evento);
                 else
                     dgvAgendaEventos.Columns["colConcluido"].Selected = true;
                 atualizaGrid();
             }
         }
         else if(e.ColumnIndex == dgvAgendaEventos.Columns["colCancelado"].Index)
         {
             evento = (dgvAgendaEventos.Rows[e.RowIndex].DataBoundItem as Evento);
             //se o evento estivar como false(ou seja, não finalizado), este método irá finaliza-lo
             if (evento.cancelado == false)
             {
                 DialogResult pergunta = MessageBox.Show("Você confirma o cancelamento deste evento?", "Cancelar evento", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                 if (pergunta == DialogResult.Yes)
                     eventoNegocio.EventoCancelado(evento);
                 else
                     dgvAgendaEventos.Columns["colCancelado"].Selected = false;
                 atualizaGrid();
             }
             else
             {
                 DialogResult pergunta = MessageBox.Show("Você confirma reabrir este evento?", "Reabrir evento", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                 if (pergunta == DialogResult.Yes)
                     eventoNegocio.EventoCanceladoDesfazer(evento);
                 else
                     dgvAgendaEventos.Columns["colCancelado"].Selected = true;
                 atualizaGrid();
             }
         }
     }
     catch(Exception exception)
     {
         throw new Exception(exception.Message);
     }
 }