private void IncluirContatos()
        {
            VOFornecedor objVO = new VOFornecedor();
            VOPessoa objPessoa;
            VOTelefone objTelefone;
            BOFornecedor objBOFornecedor = new BOFornecedor();
            VOGridContato objItem;

            try
            {
                //Verifica se o grid possui algum item inlcuido
                if (dtgContatos.Rows.Count > 0)
                {
                    objVO.ID_FORNECEDOR = objVOFornecedor.ID_FORNECEDOR;

                    foreach (DataGridViewRow objRow in dtgContatos.Rows)
                    {
                        objItem = (VOGridContato)objRow.DataBoundItem;
                        objPessoa = new VOPessoa();
                        objPessoa.NOME = objItem.NOME;

                        if (objItem.DDD.Replace("(", "").Replace(")", "").Trim() != "" && objItem.NU_TELEFONE != "")
                        {
                            objTelefone = new VOTelefone();
                            objTelefone.DDD = objItem.DDD.Replace("(", "").Replace(")", "");
                            objTelefone.NU_TELEFONE = objItem.NU_TELEFONE;
                            objTelefone.TP_TELEFONE = Util.clsUtil.TIPO_TELEFONE.EMPRESARIAL.ToString().Substring(0, 1);
                            objPessoa.TELEFONES.Add(objTelefone);
                            objTelefone = null;
                        }

                        if (objItem.DDD_CELUAR.Replace("(", "").Replace(")", "").Trim() != "" && objItem.CELULAR != "")
                        {
                            objTelefone = new VOTelefone();
                            objTelefone.DDD = objItem.DDD_CELUAR.Replace("(", "").Replace(")", "");
                            objTelefone.NU_TELEFONE = objItem.NU_TELEFONE_CELULAR;
                            objTelefone.TP_TELEFONE = Util.clsUtil.TIPO_TELEFONE.CELULAR.ToString().Substring(0, 1);
                            objPessoa.TELEFONES.Add(objTelefone);
                            objTelefone = null;
                        }

                        objVO.CONTATOS.Add(objPessoa);
                    }

                    if (objBOFornecedor.IncluirContatos(objVO))
                    {
                        Util.clsUtil.ExibirMensagem(Util.clsUtil.MSG_INCLUSAO,
                            "Manutenção de Fornecedores", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        this.Close();
                    }

                }
                else
                    Util.clsUtil.ExibirMensagem("O Grid de Contatos não possui nenhum item a ser incluído.",
                    "Manutenção de Fornecedores", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                Util.clsUtil.ExibirMensagem("ERRO Manutenção de Fornecedores: " + ex.Message,
                    "Manutenção de Fornecedores", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                //Finaliza o objetos
                objVO = null;
            }
        }
Exemple #2
0
        public List<VOFornecedor> ListarFornecedores(VOFornecedor pFornecedor)
        {
            VOFornecedor objVOFornecedor = new VOFornecedor();
            VOPessoa objVOContato = new VOPessoa();
            VOTelefone objVOTelefone;
            VOTelefone objVOTelefoneFornecedor;
            VOEndereco objVOEndereco;
            List<VOFornecedor> lstFornecedores = new List<VOFornecedor>();
            IDataReader objResultado;

            try
            {
                objConnection.OpenConnection();
                objConnection.PROCEDURE_NAME = PROC_LISTA_FORNECEDORES;
                objConnection.CreateParameter(paramLISTA_FORNECEDORES[0], (pFornecedor.ID_FORNECEDOR == "" ? null : pFornecedor.ID_FORNECEDOR), 5, System.Data.ParameterDirection.Input, System.Data.DbType.Int16);
                objConnection.CreateParameter(paramLISTA_FORNECEDORES[1], (pFornecedor.ID_PESSOA == "" ? null : pFornecedor.ID_PESSOA), 5, System.Data.ParameterDirection.Input, System.Data.DbType.Int16);
                objConnection.CreateParameter(paramLISTA_FORNECEDORES[2], (pFornecedor.NOME == "" ? null : pFornecedor.NOME), 150, System.Data.ParameterDirection.Input, System.Data.DbType.String);
                objResultado = objConnection.ExecuteDataReader();

                // Percorre os registros da tabela
                while (objResultado.Read())
                {
                    //Preenche objeto Fornecedor
                    objVOFornecedor = new VOFornecedor();
                    objVOFornecedor.ID_PESSOA = objResultado["ID_PESSOA"].ToString();
                    objVOFornecedor.ID_FORNECEDOR = objResultado["ID_FORNECEDOR"].ToString();
                    objVOFornecedor.NOME = objResultado["NOME"].ToString();
                    objVOFornecedor.TP_PESSOA = objResultado["TIPO"].ToString();
                    objVOFornecedor.CPF_CNPJ = objResultado["CNPJ"].ToString();
                    objVOFornecedor.EMAIL = objResultado["EMAIL"].ToString();
                    objVOFornecedor.WEB_SITE = objResultado["WEBSITE"].ToString();
                    objVOFornecedor.URL_SOCIAL = objResultado["URL"].ToString();
                    //Preenche os telefones
                    objVOTelefoneFornecedor = new VOTelefone();
                    objVOTelefoneFornecedor.DDD = objResultado["DDD"].ToString();
                    objVOTelefoneFornecedor.ID_TELEFONE = objResultado["ID_TELEFONE"].ToString();
                    objVOTelefoneFornecedor.NU_TELEFONE = objResultado["NU_TELEFONE"].ToString();
                    objVOTelefoneFornecedor.TP_TELEFONE = objResultado["TIPO_TELEFONE"].ToString();
                    //Preenche os endereços
                    objVOEndereco = new VOEndereco();
                    objVOEndereco.BAIRRO = objResultado["BAIRRO"].ToString();
                    objVOEndereco.CEP = objResultado["CEP"].ToString();
                    objVOEndereco.CIDADE = objResultado["CIDADE"].ToString();
                    objVOEndereco.COMPLEMENTO = objResultado["COMPLEMENTO"].ToString();
                    objVOEndereco.ESTADO = objResultado["ESTADO"].ToString();
                    objVOEndereco.ID_ENDERECO = objResultado["ID_ENDERECO"].ToString();
                    objVOEndereco.LOGRADOURO = objResultado["LOGRADOURO"].ToString();
                    objVOEndereco.NU_LOGRADOURO = objResultado["NU_LOGRADOURO"].ToString();

                    //Verifica se o fornecedor já esta na lista, senão tiver inclui
                    if (!lstFornecedores.Exists(f => f.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()))
                    {
                        objVOFornecedor.TELEFONES.Add(objVOTelefoneFornecedor);
                        objVOFornecedor.ENDERECOS.Add(objVOEndereco);
                        lstFornecedores.Add(objVOFornecedor);
                    }
                    //Verifica se o telefone do fornecedor foi adicionada, senão foi adicioná no objto Forncedor
                    else
                    {
                        //Verifica se o telefone ja esta cadastrado na lista
                        if (!lstFornecedores.Find(f => f.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).
                        TELEFONES.Exists(t => t.ID_TELEFONE == objResultado["ID_TELEFONE"].ToString()))
                            lstFornecedores.Find(f => f.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).TELEFONES.Add(objVOTelefoneFornecedor);

                        //Verifica se o endereço ja esta cadastrado na lista
                        if (!lstFornecedores.Find(f => f.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).
                                                ENDERECOS.Exists(t => t.ID_ENDERECO == objResultado["ID_ENDERECO"].ToString()))
                            lstFornecedores.Find(f => f.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).ENDERECOS.Add(objVOEndereco);
                    }

                    //Verifica se existe contato cadastrado para o fornecedor atual
                    if (objResultado["TIPO_CONTATO"].ToString() == "CONTATOS_FORNECEDOR")
                    {
                        //Adicona contatos no objeto
                        objVOContato = new VOPessoa();
                        objVOTelefone = new VOTelefone();

                        //Preenche dados básicos do contato
                        objVOContato.NOME = objResultado["NM_CONTATO"].ToString();
                        objVOContato.ID_PESSOA = objResultado["ID_PESSOA_CONTATO"].ToString();

                        //Preenche informações do telefone do contato
                        objVOTelefone.DDD = objResultado["DDD_CONTATO"].ToString();
                        objVOTelefone.NU_TELEFONE = objResultado["NU_TELEFONE_CONTATO"].ToString();
                        objVOTelefone.TP_TELEFONE = objResultado["TIPO_TELEFONE_CONTATO"].ToString();

                        //Verifica se o contato já esta na lista para o fornecedor atual
                        if (lstFornecedores.Find(e => e.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).CONTATOS != null)
                        {
                            if (lstFornecedores.Find(e => e.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).CONTATOS.Exists(
                                    c => c.ID_PESSOA == objResultado["ID_PESSOA_CONTATO"].ToString()))
                                //Se o contato ja estiver cadastrado, inclui apenas os dados do telefone de contato
                                lstFornecedores.Find(e => e.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).CONTATOS.Find(
                                    c => c.ID_PESSOA == objResultado["ID_PESSOA_CONTATO"].ToString()).TELEFONES.Add(objVOTelefone);
                            else
                            {
                                //Se o contato ainda não estiver cadastrado para o fornecedor, adicionar o contato e o telefone do mesmo na lista
                                objVOContato.TELEFONES.Add(objVOTelefone);
                                lstFornecedores.Find(e => e.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).CONTATOS.Add(objVOContato);
                            }
                        }
                        else
                        {
                            //Se o contato ainda não estiver cadastrado para o fornecedor, adicionar o contato e o telefone do mesmo na lista
                            objVOContato.TELEFONES.Add(objVOTelefone);
                            lstFornecedores.Find(e => e.ID_FORNECEDOR == objResultado["ID_FORNECEDOR"].ToString()).CONTATOS.Add(objVOContato);
                        }

                        objVOTelefone = null;
                    }

                    //Finaliza o objeto
                    objVOFornecedor = null;
                }

                //Retorna lista de fornecedores
                return lstFornecedores;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                //Finaliza os objetos
                objVOFornecedor = null;
                lstFornecedores = null;
                objResultado = null;
            }
        }