/// <summary> /// Adiciona um endereço /// </summary> /// <param name="Pessoa"></param> internal void Adicionar(Entidades.Pessoa.Pessoa pessoa) { Entidades.Pessoa.Endereço.Endereço endereço = null; Focus(); // Primeiro verifica se pessoa já está na lista. // Se estiver, faz nada. foreach (EtiquetaSedex etiqueta in hashItens.Values) { if (etiqueta.Pessoa.Código == pessoa.Código) return; } if (pessoa.Endereços.ContarElementos() > 1) { using (Apresentação.Pessoa.Endereço.EscolhaEndereço dlg = new Apresentação.Pessoa.Endereço.EscolhaEndereço(pessoa.Endereços)) { if (dlg.ShowDialog(ParentForm) == DialogResult.OK) endereço = dlg.Endereço; else return; } } else if (pessoa.Endereços.ContarElementos() == 0) { MessageBox.Show( ParentForm, "Não existe nenhum endereço cadastrado para este cliente, portanto não é possível imprimir etiqueta para mala-direta.", "Mala-Direta", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else { // Existe só um endereço endereço = pessoa.Endereços.ExtrairElementos()[0]; } Entidades.EtiquetaSedex entidade = new Entidades.EtiquetaSedex(); entidade.Pessoa = pessoa; entidade.Endereço = endereço; ListViewItem item = new ListViewItem(); AtualizarItem(item, entidade); lista.Items.Add(item); hashItens[item] = entidade; Show(); }
private static void AtualizarItem(ListViewItem item, EtiquetaSedex entidade) { item.SubItems.Clear(); item.Text = entidade.Pessoa.Código.ToString(); if (entidade.Tipo == EtiquetaSedex.TipoEndereco.Remetente) item.SubItems.Add("Remetente"); else item.SubItems.Add("Destinatário"); item.SubItems.Add(entidade.Quantidade.ToString()); item.SubItems.Add(entidade.Pessoa.Nome); item.SubItems.Add(entidade.Endereço.Localidade.Estado.Sigla); item.SubItems.Add(entidade.Endereço.Localidade.Nome); item.SubItems.Add(entidade.Endereço.Logradouro + " " + entidade.Endereço.Número); }