Esempio n. 1
0
        public IEnumerable <GrupoItem> Busca(string nome)
        {
            List <GrupoItem> listagrupoitem = new List <GrupoItem>();
            string           conNome        = nome.Length > 0 ? " AND nome LIKE @nome" : "";

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT *
                            FROM grupoitem 
                            WHERE 1=1"
                            + conNome +
                            @" ORDER BY nome";
                if (nome.Length > 0)
                {
                    sql.addParam("@nome", "%" + nome + "%");
                }
                var data = sql.selectQuery();
                foreach (var d in data)
                {
                    var grupoItem = new GrupoItem();
                    grupoItem.GrupoItemID = Convert.ToInt32(d["idgrupoitem"]);
                    grupoItem.Nome        = (string)d["nome"];
                    listagrupoitem.Add(grupoItem);
                }
            }

            return(listagrupoitem);
        }
Esempio n. 2
0
        private GrupoItem LeDadosReader(List <Dictionary <string, object> > data)
        {
            if (data.Count == 0)
            {
                return(null);
            }

            var grupoItem = new GrupoItem();

            grupoItem.GrupoItemID = Convert.ToInt32(data[0]["grupoitemID"]);
            grupoItem.Nome        = (string)data[0]["nomegrupoitem"];


            var listaSubGrupoItem = new List <SubGrupoItem>();

            foreach (var d in data)
            {
                if (d["subgrupoitemID"] != null)
                {
                    var subGrupoItem = new SubGrupoItem();
                    subGrupoItem.SubGrupoItemID = Convert.ToInt32(d["subgrupoitemID"]);
                    subGrupoItem.Codigo         = Convert.ToInt32(d["codigo"]);
                    subGrupoItem.Nome           = (string)d["subgrupoitemnome"];
                    subGrupoItem.GrupoItem      = grupoItem;

                    listaSubGrupoItem.Add(subGrupoItem);
                }
            }
            grupoItem.SubGrupoItens = listaSubGrupoItem;

            return(grupoItem);
        }
Esempio n. 3
0
        private void Recarrega()
        {
            if (tbCodigo.Text.Length <= 0)
            {
                return;
            }

            if (editando)
            {
                if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?",
                                    "Aviso de alteração",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
            }

            if (grupoItem != null)
            {
                grupoItem = grupoItemDAO.BuscaByID(grupoItem.GrupoItemID);
                PreencheCampos(grupoItem);
                if (editando)
                {
                    Editando(false);
                }
            }
            else
            {
                ignoraCheckEvent = true;
                LimpaCampos(true);
                ignoraCheckEvent = false;
            }
        }
Esempio n. 4
0
        //CLICK
        private void DgvGrupoItens_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int             selectedRowIndex = dgvGrupoItens.SelectedCells[0].RowIndex;
            DataGridViewRow selectedRow      = dgvGrupoItens.Rows[selectedRowIndex];

            grupoitemSelecionado = grupoitemDAO.BuscaByID(Convert.ToInt32(selectedRow.Cells[0].Value));
            this.Close();
        }
Esempio n. 5
0
        private void Salva()
        {
            if (!editando)
            {
                return;
            }
            bool ok = false;

            if (tbCodigo.Text.Length <= 0)
            {
                if (MessageBox.Show("Código em branco, deseja gerar um código automaticamente?",
                                    "Aviso",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    tbCodigo.Text = grupoItemDAO.BuscaProxCodigoDisponivel().ToString();
                }
                ok = false;
                return;
            }

            grupoItem             = new GrupoItem();
            grupoItem.GrupoItemID = int.Parse(tbCodigo.Text);
            grupoItem.Nome        = tbNomeGrupoItem.Text;

            var controls = (ControlCollection)this.Controls;

            ok = validacao.ValidarEntidade(grupoItem, controls);

            if (ok)
            {
                validacao.despintarCampos(controls);
                int resultado = grupoItemDAO.SalvarOuAtualizar(grupoItem);

                if (resultado == 0)
                {
                    MessageBox.Show("Problema ao salvar o registro",
                                    "Problema ao salvar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return;
                }
                else if (resultado == 1)
                {
                    tbAjuda.Text           = "Dados salvos com sucesso";
                    btNovoSubGrupo.Enabled = true;
                    Editando(false);
                    return;
                }
                else if (resultado == 2)
                {
                    tbAjuda.Text = "Dados atualizados com sucesso";
                    Editando(false);
                    return;
                }
            }
        }
Esempio n. 6
0
        private void AbreTelaBuscaGrupoItem()
        {
            var buscaGrupoItem = new fmBuscaGrupoItem();

            buscaGrupoItem.ShowDialog();
            if (buscaGrupoItem.grupoitemSelecionado != null)
            {
                grupoItem = buscaGrupoItem.grupoitemSelecionado;
                PreencheCamposGrupoItem(grupoItem);
            }
        }
Esempio n. 7
0
 private void PreencheCampos(GrupoItem grupoitem)
 {
     ignoraCheckEvent = true;
     LimpaCampos(false);
     tbCodigo.Text          = grupoitem.GrupoItemID.ToString();
     tbNomeGrupoItem.Text   = grupoitem.Nome;
     grupoItem              = grupoitem;
     btNovoSubGrupo.Enabled = true;
     PreencheGridSubGrupoItens();
     ignoraCheckEvent = false;
 }
Esempio n. 8
0
        public void Limpa(bool limpagrupo = true)
        {
            this.subgrupoItem = null;

            if (limpagrupo)
            {
                this.gruporecebido = null;
            }

            tbCodigoSubGrupoItem.Clear();
            tbNomeSubGrupoItem.Clear();
        }
Esempio n. 9
0
 public void PreencheCampos(GrupoItem grupoItem)
 {
     if (grupoItem != null)
     {
         this.grupoItem         = grupoItem;
         tbCodigoGrupoItem.Text = grupoItem.GrupoItemID.ToString();
         tbNomeGrupoItem.Text   = grupoItem.Nome;
     }
     else
     {
         Limpa();
     }
 }
Esempio n. 10
0
 private void LimpaCampos(bool cod)
 {
     if (cod)
     {
         tbCodigo.Clear();
     }
     tbNomeGrupoItem.Clear();
     dgvSubGruposItens.Rows.Clear();
     dgvSubGruposItens.Refresh();
     btNovoSubGrupo.Enabled = false;
     LimpaCamposSubItens();
     codigo    = 0;
     grupoItem = null;
 }
Esempio n. 11
0
        private SubGrupoItem LeDadosReader(Dictionary <string, object> data)
        {
            var grupoitem = new GrupoItem();

            grupoitem.GrupoItemID = Convert.ToInt32(data["idgrupoitem"]);

            var subgrupoitem = new SubGrupoItem();

            subgrupoitem.SubGrupoItemID = Convert.ToInt32(data["idsubgrupoitem"]);
            subgrupoitem.Nome           = (string)data["nome"];
            subgrupoitem.GrupoItem      = grupoitem;
            subgrupoitem.Codigo         = Convert.ToInt32(data["codigo"]);
            return(subgrupoitem);
        }
Esempio n. 12
0
 private void PreencheCamposGrupoItem(GrupoItem grupoItem)
 {
     if (grupoItem != null)
     {
         tbCodigoGrupoItem.Text = grupoItem.GrupoItemID.ToString();
         tbNomeGrupoItem.Text   = grupoItem.Nome;
     }
     else
     {
         MessageBox.Show("Grupo de itens não encontrado no banco de dados",
                         "Grupo de itens não encontrado",
                         MessageBoxButtons.OK,
                         MessageBoxIcon.Warning);
         Limpa();
     }
 }
Esempio n. 13
0
 private void TbCodigoGrupoItem_Leave(object sender, EventArgs e)
 {
     if (!int.TryParse(tbCodigoGrupoItem.Text, out int codigo))
     {
         tbCodigoGrupoItem.Clear();
     }
     if (tbCodigoGrupoItem.Text.Length > 0)
     {
         grupoItem = grupoItemDAO.BuscaByID(int.Parse(tbCodigoGrupoItem.Text));
         PreencheCamposGrupoItem(grupoItem);
     }
     else
     {
         grupoItem = null;
         tbNomeGrupoItem.Clear();
     }
 }
Esempio n. 14
0
        public int SalvarOuAtualizar(GrupoItem grupoitem)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"INSERT INTO grupoitem 
                          (idgrupoitem, nome) 
                          VALUES
                          (@idgrupoitem, @nome)
                          ON DUPLICATE KEY UPDATE
                           nome = @nome";
                sql.addParam("@idgrupoitem", grupoitem.GrupoItemID);
                sql.addParam("@nome", grupoitem.Nome);
                retorno = sql.insertQuery();
            }
            return(retorno);
        }
Esempio n. 15
0
        private void Novo()
        {
            if (editando)
            {
                return;
            }

            if (Nivel > 1 || CodGrupoUsuario == "999")
            {
                ignoraCheckEvent = true;
                LimpaCampos(false);
                tbCodigo.Text = grupoItemDAO.BuscaProxCodigoDisponivel().ToString();
                grupoItem     = null;
                tbNomeGrupoItem.Focus();
                ignoraCheckEvent = false;
                Editando(true);
            }
        }
Esempio n. 16
0
        private void Busca()
        {
            if (CodGrupoUsuario != "999" && Nivel <= 0)
            {
                return;
            }

            if (editando)
            {
                return;
            }

            var buscaGrupoItem = new fmBuscaGrupoItem();

            buscaGrupoItem.ShowDialog();
            if (buscaGrupoItem.grupoitemSelecionado != null)
            {
                grupoItem = buscaGrupoItem.grupoitemSelecionado;
                PreencheCampos(grupoItem);
            }
        }
Esempio n. 17
0
        private Item LeDadosReader(Dictionary <string, object> data)
        {
            var unidadeMedida = new Unimedida();

            unidadeMedida.UnimedidaID = Convert.ToInt32(data["idunimedida"]);
            unidadeMedida.Sigla       = (string)data["sigla"];
            unidadeMedida.Descricao   = (string)data["descricao"];

            var grupoItem = new GrupoItem();

            grupoItem.GrupoItemID = Convert.ToInt32(data["idgrupoitem"]);
            grupoItem.Nome        = (string)data["grupoitemnome"];

            var subGrupoItem = new SubGrupoItem();

            subGrupoItem.SubGrupoItemID = Convert.ToInt32(data["idsubgrupoitem"]);
            subGrupoItem.Nome           = (string)data["nome"];
            subGrupoItem.Codigo         = Convert.ToInt32(data["codigo"]);
            subGrupoItem.GrupoItem      = grupoItem;

            var item = new Item();

            item.ItemID            = Convert.ToInt32(data["iditem"]);
            item.CodigoInterno     = (string)data["codigointerno"];
            item.Descricao         = (string)data["descitem"];
            item.DescCompra        = (string)data["denominacaocompra"];
            item.TipoItem          = (string)data["tipo"];
            item.Referencia        = (string)data["referencia"];
            item.ValorEntrada      = (decimal)data["valorentrada"];
            item.ValorUnitario     = (decimal)data["valorsaida"];
            item.Estoquenecessario = (decimal)data["estoquenecessario"];
            item.Quantidade        = (decimal)data["quantidade"];
            item.Custo             = (decimal)data["custo"];
            item.Unimedida         = unidadeMedida;
            item.SubGrupoItem      = subGrupoItem;

            return(item);
        }
Esempio n. 18
0
        public GrupoItem BuscaByID(int Codigo)
        {
            var grupoitem = new GrupoItem();

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT g.idgrupoitem AS grupoitemID, g.nome AS nomegrupoitem,
                                                   s.idsubgrupoitem AS subgrupoitemID, s.nome AS subgrupoitemnome,
                                                   s.idgrupoitem AS idgrupoitemsub, s.codigo
                                                   FROM grupoitem g 
                                                   LEFT JOIN subgrupoitem s 
                                                   ON g.idgrupoitem = s.idgrupoitem 
                                                   WHERE g.idgrupoitem = @idgrupoitem";
                sql.addParam("@idgrupoitem", Codigo);
                var data = sql.selectQuery();
                if (data == null)
                {
                    return(null);
                }
                grupoitem = LeDadosReader(data);
            }
            return(grupoitem);
        }
Esempio n. 19
0
        private void Proximo()
        {
            if (tbCodigo.Text.Length <= 0)
            {
                return;
            }

            if (editando)
            {
                if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?",
                                    "Aviso de alteração",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
            }


            var controls = (ControlCollection)this.Controls;


            validacao.despintarCampos(controls);

            var newgrupoitem = grupoItemDAO.Proximo(int.Parse(tbCodigo.Text));

            if (newgrupoitem != null)
            {
                grupoItem = newgrupoitem;
                PreencheCampos(grupoItem);
                if (editando)
                {
                    Editando(false);
                }
            }
        }
Esempio n. 20
0
 //FUNÇÕES
 private void FiltroGrupo(int grupoid)
 {
     grupoitem             = new GrupoItem();
     grupoitem.GrupoItemID = grupoid;
 }
Esempio n. 21
0
        private void CarregaDados()
        {
            var controls = (ControlCollection)this.Controls;

            if (tbCodigo.Text.Length == 0)
            {
                validacao.despintarCampos(controls);
                LimpaCampos(true);
                Editando(false);
                return;
            }

            int c = 0;

            if (!int.TryParse(tbCodigo.Text, out c))
            {
                tbCodigo.Clear();
            }
            else
            {
                if (c != codigo)
                {
                    if (editando)
                    {
                        if (MessageBox.Show("Tem certeza que deseja perder os dados alterados?", "Aviso de alteração",
                                            MessageBoxButtons.YesNo,
                                            MessageBoxIcon.Warning) == DialogResult.No)
                        {
                            return;
                        }
                    }
                    codigo = c;
                }
            }

            if (codigo == 0)
            {
                LimpaCampos(true);
                Editando(false);
                return;
            }

            if (grupoItem?.GrupoItemID == codigo)
            {
                return;
            }


            var newGrupoItem = grupoItemDAO.BuscaByID(int.Parse(tbCodigo.Text));

            if (newGrupoItem != null)
            {
                validacao.despintarCampos(controls);
                grupoItem = newGrupoItem;
                PreencheCampos(grupoItem);
                Editando(false);
            }
            else
            {
                validacao.despintarCampos(controls);
                Editando(true);
                LimpaCampos(false);
            }
        }
Esempio n. 22
0
 public void Limpa()
 {
     this.grupoItem = null;
     tbCodigoGrupoItem.Clear();
     tbNomeGrupoItem.Clear();
 }
Esempio n. 23
0
        public List <Item> Busca(string descItem, string denomItem, string refeItem,
                                 string tipoItem, GrupoItem grupoitem,
                                 SubGrupoItem subgrupoitem, string codigoInterno)
        {
            List <Item> itens            = new List <Item>();
            string      conDescItem      = descItem.Length > 0 ? "AND i.descitem LIKE @descitem" : "";
            string      conDenomItem     = denomItem.Length > 0 ? "AND i.denominacaocompra LIKE @denominacaocompra" : "";
            string      conRefeItem      = refeItem.Length > 0 ? "AND i.referencia LIKE @referencia" : "";
            string      conTipoItem      = tipoItem.Length > 0 ? "AND i.tipo LIKE @tipo" : "";
            string      conGrupoItem     = grupoitem != null ? "AND g.idgrupoitem = @idgrupoitem" : "";
            string      conSubgrupoItem  = subgrupoitem != null ? "AND i.idsubgrupoitem = @idsubgrupoitem" : "";
            string      conCodigoInterno = codigoInterno.Length > 0 ? "AND i.codigointerno LIKE @codigointerno" : "";

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = $@"SELECT *, g.nome AS grupoitemnome FROM item i
                            INNER JOIN unimedida u ON i.idunimedida = u.idunimedida
                            INNER JOIN subgrupoitem s ON i.idsubgrupoitem = s.idsubgrupoitem
                            INNER JOIN grupoitem g ON s.idgrupoitem = g.idgrupoitem
                            WHERE 1=1 
                            { conDescItem} 
                            { conDenomItem } 
                            { conRefeItem } 
                            { conTipoItem } 
                            { conSubgrupoItem } 
                            { conCodigoInterno }
                            { conGrupoItem }
                             ORDER BY i.codigointerno, i.referencia";
                if (denomItem.Length > 0)
                {
                    sql.addParam("@denominacaocompra", "%" + denomItem + "%");
                }
                if (descItem.Length > 0)
                {
                    sql.addParam("@descitem", "%" + descItem + "%");
                }
                if (refeItem.Length > 0)
                {
                    sql.addParam("@referencia", "%" + refeItem + "%");
                }
                if (tipoItem.Length > 0)
                {
                    sql.addParam("@tipo", "%" + tipoItem + "%");
                }
                if (conCodigoInterno.Length > 0)
                {
                    sql.addParam("@codigointerno", "%" + codigoInterno + "%");
                }
                if (grupoitem != null)
                {
                    sql.addParam("@idgrupoitem", grupoitem.GrupoItemID);
                }
                if (subgrupoitem != null)
                {
                    sql.addParam("@idsubgrupoitem", subgrupoitem.SubGrupoItemID);
                }

                var data = sql.selectQuery();
                foreach (var d in data)
                {
                    var item = LeDadosReader(d);
                    itens.Add(item);
                }
            }
            return(itens);
        }
Esempio n. 24
0
 public void EnviarGrupo(GrupoItem grupoitem)
 {
     gruporecebido = grupoitem;
 }
Esempio n. 25
0
        public IEnumerable <NotaFiscalPropria> BuscaParaRelatorio(fmRltNotasSaida.Filtros f)
        {
            var notaFiscalProprias = new List <NotaFiscalPropria>();
            var wherePessoa        = f.usaFiltroClientes ? " AND nf.idpessoa BETWEEN @idpessoa_inicial AND @idpessoa_final" : "";
            var whereCidade        = f.usaFiltroCidades ? " AND p.idcidade BETWEEN @idcidade_inicial AND @idcidade_final" : "";
            var whereDataEmissao   = f.usaFiltroDataEmissao ? " AND nf.data_emissao BETWEEN @data_emissao_inicial AND @data_emissao_final" : "";
            var whereDataSaida     = f.usaFiltroDataSaida ? " AND nf.data_entradasaida BETWEEN @data_saida_inicial AND @data_saida_final" : "";
            var whereValor         = f.usaFiltroValor ? " AND nf.valor_documento BETWEEN @valor_inicial AND @valor_final" : "";

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = $@"SELECT 
                            nf.idnotafiscal AS nf_idnotafiscal, nf.data_emissao AS nf_data_emissao, nf.data_entradasaida AS nf_entradasaida, nf.tiponf AS nf_tiponf, nf.valor_total_itens AS nf_valor_total_itens, nf.valor_documento AS nf_valor_documento,  nf.desconto_total_itens AS nf_desconto_total_itens, nf.desconto_documento AS nf_desconto_documento, 
                            p.idpessoa AS p_idpessoa, p.nome AS p_nome, p.fantasia AS p_fantasia, p.tipo_pessoa, p.atuacao, p.situacao, p.rua AS p_rua, p.numero AS p_numero, p.bairro AS p_bairro, p.complemento AS p_complemento, p.cpf AS p_cpf, p.cnpj AS p_cnpj, p.endereco AS p_endereco, p.telefone AS p_telefone, p.email AS p_email, p.cep AS p_cep
                            c.idcidade AS c_idcidade, c.nome AS c_nome,
                            sbp.idsubgrupopessoa AS sbp_idsubgrupopessoa, sbp.nome AS sbp_nome,
                            gp.idgrupopessoa AS gp_idgrupopessoa, gp.nome AS gp_nome,
                            nfhi.quantidade AS nfhi_quantidade, nfhi.valor_unitario AS nfhi_valorunitario, nfhi.valor_total AS nfhi_valortotal, nfhi.desconto_porc AS nfhi_descontoporc, nfhi.desconto AS nfhi_desconto,
                            i.iditem AS i_iditem, i.descitem AS i_desc, i.denominacaocompra AS i_desccompra, i.tipo AS i_tipo, i.referencia AS i_referencia, i.valorentrada AS i_valorentrada, i.valorsaida AS i_valorsaida, i.estoquenecessario AS i_estoquenecessario, i.quantidade AS i_quantidade,
                            uni.idunimedida AS uni_idunimedida, uni.sigla AS uni_sigla, uni.descricao AS uni_descricao,
                            sbi.idsubgrupoitem AS sbi_idsubgrupoitem, sbi.codigo AS sbi_codigo, sbi.nome AS sbi_nome,
                            gi.idgrupoitem AS gi_idgrupoitem, gi.nome AS gi_nome
                            FROM
                            notafiscal nf 
                            LEFT JOIN pessoa p
	                            ON nf.idpessoa = p.idpessoa
                            LEFT JOIN cidade c
	                            ON p.idcidade = c.idcidade
                            LEFT JOIN subgrupopessoa sbp
	                            ON sbp.idsubgrupopessoa = p.idsubgrupopessoa
                            LEFT JOIN grupopessoa gp
	                            ON gp.idgrupopessoa = sbp.idgrupopessoa
                            LEFT JOIN notafiscal_has_item nfhi
	                            ON nfhi.idnotafiscal = nf.idnotafiscal
                            LEFT JOIN item i
	                            ON nfhi.iditem = i.iditem
                            LEFT JOIN unimedida uni
	                            ON i.idunimedida = uni.idunimedida
                            LEFT JOIN subgrupoitem sbi
	                            ON  i.idsubgrupoitem = sbi.idsubgrupoitem
                            LEFT JOIN grupoitem gi
	                            ON sbi.idgrupoitem = gi.idgrupoitem
                            WHERE 1 = 1 
                            {wherePessoa}
                            {whereCidade}
                            {whereDataEmissao}
                            {whereDataSaida}
                            {whereValor}
                            ORDER BY nf.idnotafiscal";
                if (f.usaFiltroClientes)
                {
                    sql.addParam("@idpessoa_inicial", f.pessoaInicial.PessoaID);
                    sql.addParam("@idpessoa_final", f.pessoaFinal.PessoaID);
                }
                if (f.usaFiltroCidades)
                {
                    sql.addParam("@idcidade_inicial", f.cidadeInicial.CidadeID);
                    sql.addParam("@idcidade_final", f.cidadeFinal.CidadeID);
                }
                if (f.usaFiltroDataEmissao)
                {
                    sql.addParam("@data_emissao_inicial", f.dataEmissaoInicial);
                    sql.addParam("@data_emissao_final", f.dataEmissaoFinal);
                }
                if (f.usaFiltroDataSaida)
                {
                    sql.addParam("@data_saida_inicial", f.dataSaidaInicial);
                    sql.addParam("@data_saida_final", f.dataSaidaFinal);
                }
                if (f.usaFiltroValor)
                {
                    sql.addParam("@valor_inicial", f.valorInicial);
                    sql.addParam("@valor_final", f.valorFinal);
                }
                var data = sql.selectQuery();
                var i    = 0;
                NotaFiscalPropria notaFiscalPropria = null;
                foreach (var d in data)
                {
                    var grupoItem = new GrupoItem();
                    grupoItem.GrupoItemID = Convert.ToInt32(d["gi_idgrupoitem"]);
                    grupoItem.Nome        = (string)d["gi_nome"];

                    var subGrupoItem = new SubGrupoItem();
                    subGrupoItem.SubGrupoItemID = Convert.ToInt32(d["sbi_idsubgrupoitem"]);
                    subGrupoItem.Nome           = (string)d["sbi_nome"];
                    subGrupoItem.Codigo         = Convert.ToInt32(d["sbi_codigo"]);
                    subGrupoItem.GrupoItem      = grupoItem;

                    var uniMedida = new Unimedida();
                    uniMedida.UnimedidaID = Convert.ToInt32(d["uni_idunimedida"]);
                    uniMedida.Sigla       = (string)d["uni_sigla"];
                    uniMedida.Descricao   = (string)d["uni_descricao"];

                    var item = new Item();
                    item.ItemID            = Convert.ToInt32(d["i_iditem"]);
                    item.Descricao         = (string)d["i_desc"];
                    item.DescCompra        = (string)d["i_desccompra"];
                    item.TipoItem          = (string)d["i_tipo"];
                    item.Referencia        = (string)d["i_referencia"];
                    item.ValorEntrada      = (decimal)d["i_valorentrada"];
                    item.ValorUnitario     = (decimal)d["i_valorsaida"];
                    item.Estoquenecessario = (decimal)d["i_estoquenecessario"];
                    item.Unimedida         = uniMedida;
                    item.SubGrupoItem      = subGrupoItem;
                    item.Quantidade        = (decimal)d["i_quantidade"];

                    var nfi = new NotaFiscalPropriaItem();
                    nfi.NotaFiscal    = notaFiscalPropria;
                    nfi.Item          = item;
                    nfi.Quantidade    = (decimal)d["nfhi_quantidade"];
                    nfi.ValorUnitario = (decimal)d["nfhi_valorunitario"];
                    nfi.ValorTotal    = (decimal)d["nfhi_valortotal"];
                    nfi.DescontoPorc  = (decimal)d["nfhi_descontoporc"];
                    nfi.Desconto      = (decimal)d["nfhi_desconto"];

                    if (Convert.ToInt32(d["nf_idnotafiscal"]) != i)
                    {
                        notaFiscalProprias.Add(notaFiscalPropria);
                        i = Convert.ToInt32(d["nf_idnotafiscal"]);


                        var grupoPessoa = new GrupoPessoa();
                        grupoPessoa.GrupoPessoaID = Convert.ToInt32(d["gp_idgrupopessoa"]);
                        grupoPessoa.Nome          = (string)d["gp_nome"];

                        var subGrupoPessoa = new SubGrupoPessoa();
                        subGrupoPessoa.SubGrupoPessoaID = Convert.ToInt32(d["sbp_idsubgrupopessoa"]);
                        subGrupoPessoa.Nome             = (string)d["sbp_nome"];
                        subGrupoPessoa.GrupoPessoa      = grupoPessoa;

                        var cidade = new Cidade();
                        cidade.CidadeID = Convert.ToInt32(d["c_idcidade"]);
                        cidade.Nome     = (string)d["c_nome"];

                        var pessoa = new Pessoa();
                        pessoa.PessoaID    = Convert.ToInt32(d["p_idpessoa"]);
                        pessoa.Nome        = (string)d["p_nome"];
                        pessoa.Fantasia    = (string)d["p_fantasia"];
                        pessoa.TipoPessoa  = (string)d["tipo_pessoa"];
                        pessoa.Atuacao     = (string)d["atuacao"];
                        pessoa.Situacao    = (string)d["situacao"];
                        pessoa.Rua         = (string)d["p_rua"];
                        pessoa.Numero      = (string)d["p_numero"];
                        pessoa.Bairro      = (string)d["p_bairro"];
                        pessoa.Cep         = (string)d["p_cep"];
                        pessoa.Complemento = (string)d["p_complemento"];
                        pessoa.Cidade      = cidade;

                        if (pessoa.TipoPessoa == "J")
                        {
                            pessoa.CpfCnpj = (string)d["p_cnpj"];
                        }
                        else
                        {
                            pessoa.CpfCnpj = (string)d["p_cpf"];
                        }

                        pessoa.Telefone       = (string)d["p_endereco"];
                        pessoa.Email          = (string)d["p_telefone"];
                        pessoa.SubGrupoPessoa = subGrupoPessoa;


                        notaFiscalPropria = new NotaFiscalPropria();
                        notaFiscalPropria.NotaFiscalPropriaID = Convert.ToInt32(d["nf_idnotafiscal"]);
                        notaFiscalPropria.DataEmissao         = (DateTime)d["nf_data_emissao"];
                        notaFiscalPropria.DataEntradaSaida    = (DateTime)d["nf_entradasaida"];
                        notaFiscalPropria.TipoNf              = (string)d["nf_tiponf"];
                        notaFiscalPropria.ValorTotalItens     = (decimal)d["nf_valor_total_itens"];
                        notaFiscalPropria.ValorTotalDocumento = (decimal)d["nf_valor_documento"];
                        notaFiscalPropria.DescontoTotalItens  = (decimal)d["nf_desconto_total_itens"];
                        notaFiscalPropria.DescontoDocumento   = (decimal)d["nf_desconto_documento"];
                        notaFiscalPropria.Pessoa              = pessoa;
                    }
                    notaFiscalPropria.NotaFiscalPropriaItem.Add(nfi);
                }
                notaFiscalProprias.Add(notaFiscalPropria);
            }
            notaFiscalProprias.RemoveAt(0);
            return(notaFiscalProprias);
        }