public void PrepararImpressão(ReportClass relatório, IEnumerable<Entidades.Pessoa.Impressão.PessoaImpressão> pessoas, Região região)
        {
            DataSetPessoa ds = new DataSetPessoa();
            DataTable tabela = ds.Tables["Pessoa"];
            DataTable info = ds.Tables["Informações"];
            DataRow itemInfo = info.NewRow();
            
            if (região != null)
            {
                Representante representante = região.ObterRepresentante();
                itemInfo["Representante"] = (representante == null ? "" : representante.PrimeiroNome);
                itemInfo["Região"] = (região.Nome);
            }
            else
            {
                itemInfo["Representante"] = "";
                itemInfo["Região"] = "Todas";
            }

            info.Rows.Add(itemInfo);

            foreach (Entidades.Pessoa.Impressão.PessoaImpressão p in pessoas)
            {
                DataRow linha = tabela.NewRow();
                MapearItem(p, linha);
                tabela.Rows.Add(linha);
            }

            relatório.SetDataSource(ds);
        }
示例#2
0
        public EditarRegião()
        {
            InitializeComponent();

            Região = new Região();

            txtCódigo.ReadOnly = false;
        }
        public static List<PessoaImpressão> ObterPessoas(OrdemImpressão ordem, Região região)
        {
            string cmd = "SELECT pessoa.codigo, pessoa.nome, email, documentos.documento, classificacoes, pessoa.credito, concat(estado.sigla, ' - ', localidade.nome) as EstadoCidade from pessoa, "
            + " endereco, localidade, estado "
            + " join (select codigo, concat('CPF: ', cpf, ' - RG: ', diEmissor, ' ', di) as documento from pessoafisica "
            + " UNION select codigo, concat('CNPJ: ', cnpj, ' - INSC. EST.: ', inscEstadual) "
            + " as documento from pessoajuridica) documentos "
            + " WHERE pessoa.codigo=documentos.codigo "
            + " AND pessoa.codigo=endereco.pessoa and endereco.localidade = localidade.codigo "
            + " AND estado.codigo=localidade.estado "
            + ( região != null ?  " AND pessoa.regiao = " + região.Código.ToString() : " ") 
            + " group by pessoa.codigo ";
            
            // região, sigla estado, Cidade, Nome de Pessoa.
            if (ordem == OrdemImpressão.Alfabética)
                cmd += " ORDER BY estado.sigla, localidade.nome, pessoa.nome";
            else if (ordem == OrdemImpressão.Endereço)
                cmd += " ORDER BY estado.sigla, localidade.nome, bairro, logradouro, numero, pessoa.nome";
            else if (ordem == OrdemImpressão.CódCliente)
                cmd += " ORDER BY pessoa.codigo";

            List<PessoaImpressão> lista = Mapear<PessoaImpressão>(cmd);

            // Prepara para pegar telefones e endereços:
            Dictionary<uint, PessoaImpressão> hashCódigoPessoa = new Dictionary<uint, PessoaImpressão>();
            foreach (PessoaImpressão pessoa in lista)
                hashCódigoPessoa.Add(pessoa.codigo, pessoa);

            // Pega os telefones:
            List<PessoaTelefone> todosTelefones = PessoaTelefone.ObterTelefones();
            foreach (PessoaTelefone t in todosTelefones)
            {
                if (t.Telefone != null &&
                    hashCódigoPessoa.ContainsKey(t.Pessoa))
                {
                    PessoaImpressão pessoa;
                    hashCódigoPessoa.TryGetValue(t.Pessoa, out pessoa);

                    pessoa.Telefones += t.Telefone + "\n";
                }
            }

            // Pega os endereços:
            List<PessoaEndereço> todosEndereços = PessoaEndereço.ObterEndereços();
            foreach (PessoaEndereço e in todosEndereços)
            {
                if (e.Endereço != null &&
                    hashCódigoPessoa.ContainsKey(e.Pessoa))
                {
                    PessoaImpressão pessoa;
                    hashCódigoPessoa.TryGetValue(e.Pessoa, out pessoa);
                    pessoa.Endereços += e.Endereço + "\n";
                }
            }


            return lista;
        }
示例#4
0
 public static List<Pessoa> ObterPessoas(Região região)
 {
     return RealizarConsulta(
         "SELECT * FROM pessoa p LEFT JOIN pessoafisica pf ON p.codigo = pf.codigo" +
         " WHERE p.regiao = " + DbTransformar(região.Código), 0, Pessoa.TotalAtributos);
 }
示例#5
0
        private static void ExecutaSqlTrocaRegião(Região região, out IDbConnection conexão, out IDbCommand cmd, List<ulong> códigos, out int linhasAlteradas)
        {
            conexão = Conexão;
            linhasAlteradas = 0;
            lock (conexão)
            {
                using (cmd = conexão.CreateCommand())
                {
                    cmd.CommandText = "update pessoa set regiao = " + DbTransformar(região.Código) +
                        " WHERE codigo in " + DbTransformarConjunto(códigos);

                    linhasAlteradas = cmd.ExecuteNonQuery();
                }
            }
        }
示例#6
0
        protected virtual void LerAtributos(IDataReader leitor, int inicioAtributo)
        {
            codigo = (ulong)leitor.GetInt64(inicioAtributo);

            nome = leitor.GetString(inicioAtributo + 1);

            if (!leitor.IsDBNull(inicioAtributo + 2))
                setor = Setor.ObterSetor((uint)leitor.GetInt16(inicioAtributo + 2));

            if (leitor[inicioAtributo + 3] != DBNull.Value)
                email = leitor.GetString(inicioAtributo + 3);

            if (leitor[inicioAtributo + 4] != DBNull.Value)
                observações = leitor.GetString(inicioAtributo + 4);

            if (leitor[inicioAtributo + 5] != DBNull.Value)
                últimaVisita = leitor.GetDateTime(inicioAtributo + 5);

            if (leitor[inicioAtributo + 6] != DBNull.Value)
                dataRegistro = leitor.GetDateTime(inicioAtributo + 6);

            if (leitor[inicioAtributo + 7] != DBNull.Value)
                dataAlteração = leitor.GetDateTime(inicioAtributo + 7);

            classificações = (ulong)leitor.GetInt64(inicioAtributo + 8);

            if (leitor[inicioAtributo + 9] != DBNull.Value)
                maiorVenda = leitor.GetDouble(inicioAtributo + 9);

            if (leitor[inicioAtributo + 10] != DBNull.Value)
                crédito = leitor.GetDouble(inicioAtributo + 10);

            if (leitor[inicioAtributo + 11] != DBNull.Value)
                região = Região.ObterRegião((uint)leitor[inicioAtributo + 11]);

        }
示例#7
0
 public static Estado[] ObterEstados(Região região)
 {
     return Mapear<Estado>(
         "SELECT * FROM estado WHERE regiao = " + DbTransformar(região.Código) + " ORDER BY nome").ToArray();
 }
示例#8
0
 public static Região[] Remover(Região[] regiões, Região exceto)
 {
     List<Região> lst = new List<Região>(regiões);
     lst.Remove(exceto);
     return lst.ToArray();
 }
示例#9
0
 public static Localidade[] ObterLocalidades(Região região)
 {
     return Mapear<Localidade>(
         "SELECT l.* FROM localidade l, estado e WHERE l.estado = e.codigo " +
         "AND (e.regiao = " + DbTransformar(região.Código) +
         " OR l.regiao = " + DbTransformar(região.Código) + ")").ToArray();
 }
示例#10
0
        public void CarregarExceto(Região exceto)
        {
            Região[] regiões = Região.ObterRegiões();
            if (exceto != null) {
                regiões = Região.Remover(regiões, exceto);
            }

            cmbRegião.Items.AddRange(regiões);
            cmbRegião.SelectedIndex = -1;
        }
示例#11
0
        public EditarRegião(Região região)
        {
            InitializeComponent();

            Região = região;
        }