Exemplo n.º 1
0
        private void TbCodigoSubGrupoItem_Leave(object sender, EventArgs e)
        {
            if (!int.TryParse(tbCodigoSubGrupoItem.Text, out int codigo))
            {
                tbCodigoSubGrupoItem.Clear();
            }

            if (gruporecebido == null)
            {
                tbNomeSubGrupoItem.Text = "Escolha o Grupo";
            }
            else
            {
                if (tbCodigoSubGrupoItem.Text.Length > 0)
                {
                    subgrupoItem = subgrupoItemDAO.BuscaByID(int.Parse(tbCodigoSubGrupoItem.Text), gruporecebido.GrupoItemID);
                    PreencheCamposSubGrupoItem(subgrupoItem);
                }
                else
                {
                    subgrupoItem = null;
                    tbNomeSubGrupoItem.Clear();
                }
            }
        }
Exemplo 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);
        }
Exemplo n.º 3
0
        public int InserirSubGrupo(SubGrupoItem subGrupo)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.beginTransaction();

                sql.Query = @"INSERT INTO subgrupoitem (idsubgrupoitem, nome, idgrupoitem, codigo)
                            VALUES
                            (@idsubgrupoitem, @nome, @idgrupoitem, @codigo)
                            ON DUPLICATE KEY UPDATE
                            nome = @nome, idgrupoitem = @idgrupoitem, codigo = @codigo";
                sql.addParam("@idsubgrupoitem", subGrupo.SubGrupoItemID);
                sql.addParam("@nome", subGrupo.Nome);
                sql.addParam("@idgrupoitem", subGrupo.GrupoItem.GrupoItemID);
                sql.addParam("@codigo", subGrupo.Codigo);
                retorno = sql.insertQuery();

                if (retorno > 0)
                {
                    sql.Query = "SELECT LAST_INSERT_ID() AS idsubgrupoitem;";
                    var data = sql.selectQueryForSingleRecord();
                    subGrupo.SubGrupoItemID = Convert.ToInt32(data["idsubgrupoitem"]);
                }
                sql.Commit();
            }
            return(retorno);
        }
Exemplo n.º 4
0
        //CLICK
        private void DgvSubGrupoItem_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int             selectedRowIndex = dgvSubGrupoItem.SelectedCells[0].RowIndex;
            DataGridViewRow selectedRow      = dgvSubGrupoItem.Rows[selectedRowIndex];

            subgrupoitemSelecionado = listasubgrupoitem.Find(g => g.Codigo == Convert.ToInt32(selectedRow.Cells[0].Value)); // FAZ UMA BUSCA NA LISTA ONDE A CONDIÇÃO É ACEITA
            this.Close();
        }
Exemplo n.º 5
0
 private void DgvSubGruposItens_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     if (dgvSubGruposItens.SelectedRows.Count > 0)
     {
         int             selectedRowIndex = dgvSubGruposItens.SelectedCells[0].RowIndex;
         DataGridViewRow selectedRow      = dgvSubGruposItens.Rows[selectedRowIndex];
         subgrupoitemSelecionado = grupoItem.SubGrupoItens.Find(p => p.Codigo == Convert.ToInt32(selectedRow.Cells[0].Value));
         PreencheCamposSubGrupo(subgrupoitemSelecionado);
         btSalvar.Enabled     = true;
         btRemoverSub.Enabled = true;
     }
 }
Exemplo n.º 6
0
        public int RemoverSubGrupo(SubGrupoItem subGrupo)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"DELETE FROM subgrupoitem WHERE idsubgrupoitem = @idsubgrupoitem";
                sql.addParam("@idsubgrupoitem", subGrupo.SubGrupoItemID);
                retorno = sql.deleteQuery();
            }
            return(retorno);
        }
Exemplo n.º 7
0
        public void Limpa(bool limpagrupo = true)
        {
            this.subgrupoItem = null;

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

            tbCodigoSubGrupoItem.Clear();
            tbNomeSubGrupoItem.Clear();
        }
Exemplo n.º 8
0
 public void PreencheCampos(SubGrupoItem subgrupoItem)
 {
     if (subgrupoItem != null)
     {
         this.subgrupoItem         = subgrupoItem;
         tbCodigoSubGrupoItem.Text = subgrupoItem.Codigo.ToString();
         tbNomeSubGrupoItem.Text   = subgrupoItem.Nome;
     }
     else
     {
         Limpa();
     }
 }
Exemplo n.º 9
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);
        }
Exemplo n.º 10
0
 private void PreencheCamposSubGrupoItem(SubGrupoItem subgrupoItem)
 {
     if (subgrupoItem != null)
     {
         tbCodigoSubGrupoItem.Text = subgrupoItem.Codigo.ToString();
         tbNomeSubGrupoItem.Text   = subgrupoItem.Nome;
     }
     else
     {
         MessageBox.Show("Sub-Grupo de itens não encontrado no banco de dados",
                         "Sub-Grupo de itens não encontrado",
                         MessageBoxButtons.OK,
                         MessageBoxIcon.Warning);
         Limpa(false);
     }
 }
Exemplo n.º 11
0
        public bool SubGrupoUsado(SubGrupoItem subGrupo)
        {
            var usado = true;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = "SELECT * FROM item WHERE idsubgrupoitem = @idsubgrupoitem LIMIT 1;";
                sql.addParam("@idsubgrupoitem", subGrupo.SubGrupoItemID);
                var data = sql.selectQueryForSingleRecord();
                if (data == null)
                {
                    usado = false;
                }
            }
            return(usado);
        }
Exemplo n.º 12
0
 private void AbreTelaBuscaSubGrupoItem()
 {
     if (gruporecebido == null)
     {
         MessageBox.Show("Escolha o Grupo antes!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else
     {
         var buscaSubGrupoItem = new fmBuscaSubGrupoItem(gruporecebido.GrupoItemID);
         buscaSubGrupoItem.ShowDialog();
         if (buscaSubGrupoItem.subgrupoitemSelecionado != null)
         {
             subgrupoItem = buscaSubGrupoItem.subgrupoitemSelecionado;
             PreencheCamposSubGrupoItem(subgrupoItem);
         }
     }
 }
Exemplo n.º 13
0
        public int AtualizarSubGrupo(SubGrupoItem subGrupo)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"UPDATE subgrupoitem SET nome = @nome
                              WHERE idgrupoitem = @idgrupoitem
                              AND codigo = @codigo                  
                                ";
                sql.addParam("@nome", subGrupo.Nome);
                sql.addParam("@idgrupoitem", subGrupo.GrupoItem.GrupoItemID);
                sql.addParam("@codigo", subGrupo.Codigo);
                retorno = sql.updateQuery();
            }

            return(retorno);
        }
Exemplo n.º 14
0
        public int SalvaOuAtualiza(SubGrupoItem subgrupoitem)
        {
            int retorno = 0;

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"INSERT INTO subgrupoitem 
                            (idsubgrupoitem, nome, idgrupoitem) 
                            VALUES
                            (@idsubgrupoitem, @nome, @idgrupoitem)
                            ON DUPLICATE KEY UPDATE
                            nome = @nome, idgrupoitem = @idgrupoitem";
                sql.addParam("@idsubgrupoitem", subgrupoitem.SubGrupoItemID);
                sql.addParam("@nome", subgrupoitem.Nome);
                sql.addParam("@idgrupoitem", subgrupoitem.GrupoItem.GrupoItemID);
                retorno = sql.insertQuery();
            }
            return(retorno);
        }
Exemplo n.º 15
0
        public SubGrupoItem BuscaByID(int Codigo, int grupoitemID)
        {
            var subgrupoitem = new SubGrupoItem();

            using (MySQLConn sql = new MySQLConn(Configuracao.Conecta))
            {
                sql.Query = @"SELECT *
                            FROM subgrupoitem 
                            WHERE codigo = @codigo
                            AND idgrupoitem = @idgrupoitem";
                sql.addParam("@codigo", Codigo);
                sql.addParam("@idgrupoitem", grupoitemID);

                var data = sql.selectQueryForSingleRecord();
                if (data == null)
                {
                    return(null);
                }
                subgrupoitem = LeDadosReader(data);
            }
            return(subgrupoitem);
        }
Exemplo n.º 16
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);
        }
Exemplo n.º 17
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);
        }
Exemplo n.º 18
0
        private void SalvaSubGrupo()
        {
            if (tbCodigoSubGrupo.Text.Length <= 0 || grupoItem == null)
            {
                return;
            }

            SubGrupoItem subGrupo = null;

            if (subgrupoitemSelecionado != null)
            {
                subGrupo = subgrupoitemSelecionado;
                grupoItem.SubGrupoItens.Remove(subGrupo);
                subGrupo.Nome = tbNomeSubGrupo.Text;

                int resultado = grupoItemDAO.AtualizarSubGrupo(subGrupo);
                if (resultado > 0)
                {
                    tbAjuda.Text = "Sub-grupo atualizado com sucesso";
                    grupoItem.SubGrupoItens.Add(subGrupo);
                    btNovoSubGrupo.Enabled = true;
                }
                else
                {
                    MessageBox.Show("Problema ao atualizar o registro",
                                    "Problema ao atualizar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return;
                }
            }
            else
            {
                subGrupo           = new SubGrupoItem();
                subGrupo.Nome      = tbNomeSubGrupo.Text;
                subGrupo.Codigo    = int.Parse(tbCodigoSubGrupo.Text);
                subGrupo.GrupoItem = grupoItem;

                int resultado = grupoItemDAO.InserirSubGrupo(subGrupo);
                if (resultado == 0)
                {
                    MessageBox.Show("Problema ao salvar o registro",
                                    "Problema ao salvar",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return;
                }
                else if (resultado == 1)
                {
                    tbAjuda.Text = "Sub-grupo salvo com sucesso";

                    grupoItem.SubGrupoItens.Add(subGrupo);
                    btNovoSubGrupo.Enabled = true;
                }
                else if (resultado == 2)
                {
                    tbAjuda.Text = "Sub-grupo atualizado com sucesso";
                    grupoItem.SubGrupoItens.Add(subGrupo);
                    btNovoSubGrupo.Enabled = true;
                }
            }
            LimpaCamposSubItens();
            PreencheGridSubGrupoItens();
        }
Exemplo n.º 19
0
 private void PreencheCamposSubGrupo(SubGrupoItem subGrupoItem)
 {
     tbCodigoSubGrupo.Text = subGrupoItem.Codigo.ToString();
     tbNomeSubGrupo.Text   = subGrupoItem.Nome;
 }
Exemplo n.º 20
0
 private void LimpaCamposSubItens()
 {
     tbCodigoSubGrupo.Clear();
     tbNomeSubGrupo.Clear();
     subgrupoitemSelecionado = null;
 }
Exemplo n.º 21
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);
        }