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; } }
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; } }