private int verificaLista(List <Entidades.PacoteServico> lista, Entidades.PacoteServico obj)
 {
     for (int i = 0; i < lista.Count; i++)
     {
         if (lista.ElementAt(i).Servico.Codigo == obj.Servico.Codigo)
         {
             return(i);
         }
     }
     return(-1);
 }
        private void btnIncluirServico_Click(object sender, EventArgs e)
        {
            try
            {
                if (!verificaContrato())
                {
                    Controller.ServicoController servicoController = new Controller.ServicoController();
                    Entidades.Servico            servico           = new Entidades.Servico();
                    Entidades.PacoteServico      pacoteServico     = new Entidades.PacoteServico();

                    int       intCod    = Convert.ToInt32(cbbServico.SelectedValue.ToString());
                    DataTable dtServico = servicoController.retornaObjServico(intCod);

                    if (dtServico != null && dtServico.Rows.Count > 0)
                    {
                        DataRow drServico = dtServico.Rows[0];
                        servico.Codigo      = Convert.ToInt32(drServico["codtiposervico"].ToString());
                        servico.ServicoNome = drServico["tiposerv_descricao"].ToString();
                        servico.Observacao  = drServico["tiposerv_obs"].ToString();
                        servico.Valor       = Convert.ToDouble(drServico["tiposerv_valor"].ToString());
                        servico.Tempo       = drServico["tiposerv_temposervico"].ToString();

                        pacoteServico.Periodicidade = cbbPeriodicidade.Text.Trim();
                        pacoteServico.Servico       = servico;
                        pacoteServico.Quantidade    = Convert.ToInt32(ttbQtdeServico.Text.Trim().ToString());
                        pacoteServico.Valor         = Convert.ToDouble(drServico["tiposerv_valor"].ToString());
                        int v = verificaLista(lista, pacoteServico);
                        if (v > -1)
                        {
                            lista.ElementAt(v).Quantidade += pacoteServico.Quantidade;
                        }
                        else
                        {
                            lista.Add(pacoteServico);
                        }
                        carregaDGV(lista);
                    }
                }
                else
                {
                    MessageBox.Show("Já existe contrato com este pacote o mesmo não pode ser alterado!");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void btnPesquisa_Click(object sender, EventArgs e)
        {
            _btnAlterar();
            try
            {
                int codPacote = 0;
                Views.Funcoes_Fundamentais.RF_F16_Gerenciar_Pacotes.Pesquisa_GerenciarPacotes pesquisa_GerenciarPacotes = new Funcoes_Fundamentais.RF_F16_Gerenciar_Pacotes.Pesquisa_GerenciarPacotes();
                pesquisa_GerenciarPacotes.ShowDialog();

                Controller.ServicoController servicoController = new Controller.ServicoController();
                Entidades.PacoteServico      pacoteServico     = new Entidades.PacoteServico();
                Entidades.Servico            servico           = new Entidades.Servico();


                if (pesquisa_GerenciarPacotes.intCodPacote > 0)
                {
                    DataTable dtRetorno = PacoteController.retornaObjPacote(pesquisa_GerenciarPacotes.intCodPacote);

                    if (dtRetorno != null && dtRetorno.Rows.Count > 0)
                    {
                        DataRow dr = dtRetorno.Rows[0];
                        ttbCodigo.Text      = dr["codpacote"].ToString();
                        codPacote           = Convert.ToInt32(ttbCodigo.Text);
                        mskValor.Text       = dr["pac_valor"].ToString();
                        ttbObs.Text         = dr["pac_obs"].ToString();
                        ttbPacote.Text      = dr["pac_pacote"].ToString();
                        dtpDataInicio.Value = Convert.ToDateTime(dr["pac_datainicio"].ToString());


                        //FALTA VERIFICAR A DATA
                        if (Convert.ToDateTime(dr["pac_datafim"].ToString()) != DateTime.MaxValue ||
                            Convert.ToDateTime(dr["pac_datafim"].ToString()) != DateTime.MinValue)
                        {
                            dtpDataFim.Enabled = false;
                        }
                        else
                        {
                            dtpDataInicio.Value = Convert.ToDateTime(dr["pac_datafim"].ToString());
                        }

                        DataTable dtServico = servicoController.retornaPacoteServico(codPacote);

                        if (dtServico != null && dtServico.Rows.Count > 0)
                        {
                            for (int i = 0; i < dtServico.Rows.Count; i++)
                            {
                                servico       = new Entidades.Servico();
                                pacoteServico = new Entidades.PacoteServico();
                                DataRow drServico = dtServico.Rows[i];
                                servico.ServicoNome         = drServico["tipoServ_descricao"].ToString();
                                pacoteServico.Servico       = servico;
                                pacoteServico.Quantidade    = Convert.ToInt32(drServico["pacServ_qtde"].ToString());
                                pacoteServico.Periodicidade = drServico["pacServ_periodicidade"].ToString();
                                lista.Add(pacoteServico);
                            }
                            carregaDGV(lista);
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void btnPesquisa_Click(object sender, EventArgs e)
        {
            string codCpf     = "";
            string codCliente = "";

            try
            {
                Views.Funcoes_Fundamentais.RF_F14_Contratar_Pacotes.PesquisaContratoPacotes pesquisaContratoPacotes = new PesquisaContratoPacotes();

                pesquisaContratoPacotes.ShowDialog();
                if (pesquisaContratoPacotes.inCodContrato > 0)
                {
                    Controller.PacoteController  pacoteController = new Controller.PacoteController();
                    Controller.PessoaController  pessoaController = new Controller.PessoaController();
                    Controller.ServicoController sc            = new Controller.ServicoController();
                    Entidades.Pacote             _pacote       = new Entidades.Pacote();
                    Entidades.PacoteServico      pacoteServico = new Entidades.PacoteServico();

                    DataTable dtRetorno = pacoteController.retornaContratoServicos();

                    if (dtRetorno != null && dtRetorno.Rows.Count > 0)
                    {
                        DataRow dr = dtRetorno.Rows[0];
                        ttbCodigo.Text = Convert.ToInt32(dr["codContrato"].ToString()).ToString();
                        ttbTotal.Text  = Convert.ToDouble(dr["pac_valor"].ToString()).ToString();
                        codCpf         = dr["fis_cpf"].ToString();

                        intCarregaCbbPacote = Convert.ToInt32(dr["codpacote"].ToString());


                        DataTable dtFisica = pessoaController.retornaCpf(codCpf);

                        if (dtFisica != null && dtFisica.Rows.Count > 0)
                        {
                            DataRow drFisica = dtFisica.Rows[0];
                            codCliente = drFisica["codpessoa"].ToString();

                            DataTable dtPessoa = pessoaController.retornaPessoaCod(codCliente);
                            if (dtPessoa != null && dtPessoa.Rows.Count > 0)
                            {
                                DataRow drPessoa = dtPessoa.Rows[0];
                                ttbCliente.Text = drPessoa["pes_nome"].ToString();

                                DataTable dtServico = sc.retornaPacoteServico(Convert.ToInt32(dr["codpacote"].ToString()));

                                for (int i = 0; i < dtServico.Rows.Count; i++)
                                {
                                    Entidades.Servico servico = new Entidades.Servico();
                                    pacoteServico = new Entidades.PacoteServico();
                                    DataRow drServico = dtServico.Rows[i];
                                    servico.Codigo              = Convert.ToInt32(drServico["codTipoServico"].ToString());
                                    servico.ServicoNome         = drServico["tipoServ_descricao"].ToString();
                                    pacoteServico.Periodicidade = drServico["pacServ_periodicidade"].ToString();
                                    pacoteServico.Quantidade    = Convert.ToInt32(drServico["pacServ_qtde"].ToString());
                                    pacoteServico.Servico       = servico;
                                    pacote.Valor         = Convert.ToDouble(drServico["pac_valor"].ToString());
                                    pacote.PaccoteNome   = drServico["pac_pacote"].ToString();
                                    pacote.Codigo        = Convert.ToInt32(drServico["codPacote"].ToString());
                                    pacoteServico.Pacote = pacote;


                                    listaPacoteServico.Add(pacoteServico);
                                }
                                DataTable dtAdc = pacoteController.retornaAdcionais(Convert.ToInt32(dr["codpacote"].ToString()));
                                for (int j = 0; j < dtAdc.Rows.Count; j++)
                                {
                                    DataRow           drAdc   = dtAdc.Rows[j];
                                    Entidades.Servico servico = new Entidades.Servico();
                                    pacoteServico               = new Entidades.PacoteServico();
                                    pacote                      = new Entidades.Pacote();
                                    servico.Codigo              = Convert.ToInt32(drAdc["codTipoServico"].ToString());
                                    servico.ServicoNome         = drAdc["tipoServ_descricao"].ToString();
                                    pacoteServico.Periodicidade = "";
                                    pacoteServico.Quantidade    = Convert.ToInt32(drAdc["pacadc_qtde"].ToString());
                                    pacoteServico.Servico       = servico;
                                    pacote.Valor                = Convert.ToDouble(drAdc["tipoServ_valor"].ToString());
                                    pacote.Codigo               = 0;
                                    pacoteServico.Pacote        = pacote;

                                    listaPacoteServico.Add(pacoteServico);
                                    ttbTotal.Text = (Convert.ToDouble(ttbTotal.Text) + pacote.Valor).ToString();
                                }
                                addListaTabela(listaPacoteServico);
                                carregaDgvPacotesAdcinais(listaTabela);
                            }
                        }

                        carregaCbbPacote();
                        carregaCbbServico();
                    }
                }
            }
            catch (Exception eex)
            {
                throw;
            }
        }
        private void btnIncluirPacote_Click(object sender, EventArgs e)
        {
            Controller.PacoteController  pacoteController = new Controller.PacoteController();
            Controller.ServicoController sc                 = new Controller.ServicoController();
            Entidades.Pacote             _pacote            = new Entidades.Pacote();
            Entidades.PacotesAdicionais  _pacotesAdicionais = new Entidades.PacotesAdicionais();

            try
            {
                int intCodPacote = 0;

                if (string.IsNullOrWhiteSpace(cbbPacote.SelectedText.ToString()))
                {
                    intCodPacote = Convert.ToInt32(cbbPacote.SelectedValue.ToString());
                }
                else
                {
                    MessageBox.Show("Informe o Produto!");
                }


                DataTable dtPacote = pacoteController.retornaObjPacote(intCodPacote);
                DataTable dtLista  = pacoteController.retornaListaPacote(intCodPacote);
                DataRow   drPacote = dtPacote.Rows[0];

                _pacote.carregaPacote(Convert.ToInt32(drPacote["codpacote"].ToString()),
                                      drPacote["pac_pacote"].ToString(),
                                      Convert.ToDouble(drPacote["pac_valor"].ToString()),
                                      drPacote["pac_obs"].ToString(),
                                      drPacote["pac_periodicidade"].ToString(),
                                      listaPacoteServico,
                                      Convert.ToDateTime(drPacote["pac_datainicio"].ToString()),
                                      Convert.ToDateTime(drPacote["pac_datafim"].ToString()));

                pacote = _pacote;

                if (dtLista != null && dtLista.Rows.Count > 0)
                {
                    for (int i = 0; i < dtLista.Rows.Count; i++)
                    {
                        DataRow dr = dtLista.Rows[i];
                        Entidades.PacoteServico pac  = new Entidades.PacoteServico();
                        Entidades.Servico       serv = new Entidades.Servico();
                        DataTable dtServico          = sc.retornaObjServico(Convert.ToInt32(dr["codtiposervico"].ToString()));
                        DataRow   drServ             = dtServico.Rows[0];
                        serv.Codigo       = Convert.ToInt32(drServ["codtiposervico"].ToString());
                        serv.ServicoNome  = drServ["tiposerv_descricao"].ToString();
                        serv.Observacao   = drServ["tiposerv_obs"].ToString();
                        serv.Tempo        = drServ["tiposerv_temposervico"].ToString();
                        serv.Valor        = Convert.ToDouble(drServ["tiposerv_valor"].ToString());
                        pac.Pacote        = _pacote;
                        pac.Servico       = serv;
                        pac.Quantidade    = Convert.ToInt32(dr["pacserv_qtde"].ToString());
                        pac.Periodicidade = dr["pacserv_periodicidade"].ToString();
                        listaPacoteServico.Add(pac);
                    }
                }


                addListaTabela(listaPacoteServico);
                carregaDgvPacotesAdcinais(listaTabela);
                ttbTotal.Text            = _pacote.Valor.ToString();
                btnIncluirPacote.Enabled = false;
            }
            catch
            {
            }
        }