/// <summary>
        /// Recupera a proposta TOP 1 e devolve um objeto do tipo Proposta com as informações resultantes.
        /// </summary>
        /// <returns>Objeto do tipo Proposta</returns>
        public Proposta fillTop1PropostaServidor()
        {
            sql01 = new StringBuilder();
            sql01.Append("SELECT TOP (1) codigoPROPOSTA,numeroPROPOSTA,dataLIBERACAOPROPOSTA,");
            sql01.Append("clientePROPOSTA,razaoEMPRESA,volumesPROPOSTA,codigoPICKINGMOBILE,isinterrompidoPICKINGMOBILE");
            sql01.Append(" FROM vwMobile_tb1601_Proposta ");
            //sql01.Append(" ORDER BY  Prioridade ASC,dataLIBERACAOPROPOSTA ASC ");

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            while ((dr.Read()))
            {
                objProposta = new Proposta(Convert.ToInt64(dr["codigoPROPOSTA"]), (string)dr["numeroPROPOSTA"], (string)dr["dataLIBERACAOPROPOSTA"],
                                           Convert.ToInt32(dr["clientePROPOSTA"]), (string)dr["razaoEMPRESA"], Convert.ToInt32(dr["volumesPROPOSTA"]), Convert.ToInt32(dr["codigoPICKINGMOBILE"]), Convert.ToBoolean(dr["isinterrompidoPICKINGMOBILE"]));


                if (objProposta.IsInterrompido)
                {
                    objProposta.IsInterrompido = false;
                }
            }

            dr.Close();
            SqlServerConn.closeConn();
            return(objProposta);
        }
Exemple #2
0
        /// <summary>
        /// Retorna informações da base de dados principal sobre as embalagens utilizadas para seeparação de produtos
        /// </summary>
        /// <returns>Lista de objetos EmbalagemSeparacao</returns>
        public List <EmbalagemSeparacao> carregarEmbalagensSeparacao()
        {
            EmbalagemSeparacao        objEmbalagem    = null;
            List <EmbalagemSeparacao> listaEmbalagens = new List <EmbalagemSeparacao>();

            sql01 = new StringBuilder();

            sql01.Append(" SELECT codigoEMBALAGEM,nomeEMBALAGEM,produtoEMBALAGEM,pesoEMBALAGEM,padraoEMBALAGEM");
            sql01.Append(" FROM tb0545_Embalagens");
            sql01.Append(" INNER JOIN tb0501_Produtos ON codigoPRODUTO = produtoEMBALAGEM");

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            while ((dr.Read()))
            {
                objEmbalagem = new EmbalagemSeparacao(

                    Convert.ToInt32(dr["codigoEMBALAGEM"])
                    , (string)dr["nomeEMBALAGEM"]
                    , (Embalagem.PadraoEmbalagem)Convert.ToInt32(dr["padraoEMBALAGEM"])
                    , Convert.ToInt32(dr["produtoEMBALAGEM"])
                    , Convert.ToDouble(dr["pesoEMBALAGEM"]));

                listaEmbalagens.Add(objEmbalagem);
            }

            return(listaEmbalagens);
        }
Exemple #3
0
        //private DataTable dt;

        /// <summary>
        /// Recupera informações sobre as permissões existente no Titanium
        /// </summary>
        /// <param name="codigoPermissoes"> Lista de permissões a serem salvas na base mobile.</param>
        /// <returns>List com informações sobre os parâmetros das permissões a serem utilizadas no mobile. </returns>
        public GerenciadorPermissoesParametros recuperarParametros(List <String> codigoPermissoes)
        {
            try
            {
                var       gerenciadorPermissoes = new GerenciadorPermissoesParametros();
                Parametro param;

                sql01 = new StringBuilder();
                sql01.Append(" SELECT codigoPARAMETRO,descricaoPARAMETRO,valorPARAMETRO,COALESCE(auxiliarPARAMETRO,0) as auxiliarPARAMETRO FROM tb1210_Parametros");
                SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

                while ((dr.Read()))
                {
                    //Valida as permissões contida na lista de permissões a serem utilizadas no mobile.
                    foreach (string item in codigoPermissoes)
                    {
                        if (item == (string)dr["codigoParametro"])
                        {
                            param = new Parametro((string)dr["codigoParametro"], (string)dr["descricaoPARAMETRO"], (string)dr["valorPARAMETRO"], Convert.ToInt32(dr["auxiliarPARAMETRO"]));
                            gerenciadorPermissoes.addParametro(param);
                        }
                    }
                }

                return(gerenciadorPermissoes);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao recuperar parâmetros na base de dados.\nMotivo:" + ex.Message, ex);
            }
        }
Exemple #4
0
        public int[,] recuperaCodigoEmbalagensSeparacao(Int64 codigoProposta, Int64 codigoPikingMobile)
        {
            int tamanho = 0;
            int count   = 0;

            int[,] embalagens = null;

            sql01 = new StringBuilder();
            sql01.Append(" SELECT [codigoEMBALAGEMSEPARACOES],[embalagemEMBALAGEMSEPARACOES],COUNT(*) OVER() AS [Total_Rows]");
            sql01.Append(" FROM [dbo].[tb1653_Picking_Embalagem_Separacoes]");
            sql01.AppendFormat(" WHERE pickingmobileEMBALAGEMSEPARACOES = {0}", codigoPikingMobile);

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            while (dr.Read())
            {
                if (count == 0)
                {
                    tamanho    = Convert.ToInt32(dr["Total_Rows"]);
                    embalagens = new int[tamanho, 2];
                }

                embalagens[count, 0] = Convert.ToInt32(dr["codigoEMBALAGEMSEPARACOES"]);
                embalagens[count, 1] = Convert.ToInt32(dr["embalagemEMBALAGEMSEPARACOES"]);

                count++;
            }
            return(embalagens);
        }
Exemple #5
0
        /// <summary>
        /// Preenche um objeto list com objetos da classe Produto
        /// </summary>
        /// <param name="codigoProposta"></param>
        /// <returns>Lista de Produtos</returns>
        public IEnumerable <Produto> fillListProduto(Int32 codigoProposta)
        {
            Produto        objProd     = new Produto();
            List <Produto> listProduto = new List <Produto>();

            try
            {
                sql01 = new StringBuilder();
                sql01.Append("SELECT codigoPRODUTO,partnumberPRODUTO,nomePRODUTO,ean13PRODUTO,codigolotePRODUTO,identificacaolotePRODUTO,dbo.fn1211_LocaisLoteProduto(codigoPRODUTO,codigolotePRODUTO) AS nomelocalPRODUTO,pesobrutoPRODUTO");
                sql01.AppendFormat(" FROM dbo.fn0003_informacoesProdutos({0})", codigoProposta);
                sql01.Append(" GROUP BY codigoPRODUTO,partnumberPRODUTO,nomePRODUTO,ean13PRODUTO,codigolotePRODUTO,identificacaolotePRODUTO,dbo.fn1211_LocaisLoteProduto(codigoPRODUTO,codigolotePRODUTO),pesobrutoPRODUTO");
                sql01.Append(" ORDER BY nomelocalPRODUTO ASC");

                SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

                while ((dr.Read()))
                {
                    objProd = new Produto(Convert.ToInt32(dr["codigoPRODUTO"]),
                                          (String)dr["ean13PRODUTO"],
                                          (String)dr["partnumberPRODUTO"],
                                          (String)dr["nomePRODUTO"],
                                          (String)dr["nomelocalPRODUTO"],
                                          Convert.ToInt64(dr["codigolotePRODUTO"]),
                                          (String)dr["identificacaolotePRODUTO"],
                                          Convert.ToDouble(dr["pesobrutoPRODUTO"])
                                          );

                    //Carrega a lista de itens que será retornada ao fim do procedimento.
                    listProduto.Add(objProd);
                }

                if (listProduto == null || listProduto.Count == 0)
                {
                    throw new TitaniumColector.Classes.Exceptions.SqlQueryExceptions("Query não retornou Valor.");
                }

                dr.Close();
                SqlServerConn.closeConn();

                return(listProduto);
            }
            catch (SqlQueryExceptions queryEx)
            {
                SqlServerConn.closeConn();
                StringBuilder sb = new StringBuilder();
                sb.AppendFormat("Não foi possível obter informações sobre a proposta {0}", codigoProposta);
                sb.Append("\nError :" + queryEx.Message);
                sb.Append("\nFavor contate o administrador do sistema.");
                MainConfig.errorMessage(sb.ToString(), "Carga Base Mobile.");
                return(listProduto = null);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #6
0
        public List <EmbalagemProduto> cargaEmbalagensProduto(int codigoProposta)
        {
            sql01 = new StringBuilder();
            List <EmbalagemProduto> listaEmbalagens = new List <EmbalagemProduto>();

            try
            {
                sql01.Append(" SELECT codigoEMBALAGEMPRODUTO,COALESCE(nomeEMBALAGEMPRODUTO,'ND') AS nomeEMBALAGEMPRODUTO,produtoEMBALAGEMPRODUTO,quantidadeEMBALAGEMPRODUTO,padraoEMBALAGEMPRODUTO,COALESCE(embalagemEMBALAGEMPRODUTO,0) AS embalagemEMBALAGEMPRODUTO,COALESCE(codigobarrasEMBALAGEMPRODUTO,'0000000000000') AS codigobarrasEMBALAGEMPRODUTO ");
                sql01.Append(" FROM tb0504_Embalagens_Produtos");
                sql01.Append(" INNER JOIN tb0501_Produtos ON codigoPRODUTO = produtoEMBALAGEMPRODUTO");
                sql01.Append(" WHERE produtoEMBALAGEMPRODUTO IN(");
                sql01.Append("						                SELECT produtoRESERVA AS codigoPRODUTO");
                sql01.Append("						                FROM tb1206_Reservas (NOLOCK)");
                sql01.Append("						                INNER JOIN tb1602_Itens_Proposta (NOLOCK) ON codigoITEMPROPOSTA = docRESERVA");
                sql01.Append("						                INNER JOIN tb0501_Produtos (NOLOCK) ON produtoITEMPROPOSTA = codigoPRODUTO");
                sql01.AppendFormat("						        WHERE propostaITEMPROPOSTA = {0}", codigoProposta);
                sql01.Append("						                AND tipodocRESERVA = 1602 ");
                sql01.Append("						                AND statusITEMPROPOSTA = 3");
                sql01.Append("						                AND separadoITEMPROPOSTA = 0");
                sql01.Append("						                GROUP BY produtoRESERVA");
                sql01.Append("                                 )");
                sql01.Append(" AND lixeiraPRODUTO = 0");
                sql01.Append(" ORDER BY produtoEMBALAGEMPRODUTO");

                SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

                while ((dr.Read()))
                {
                    {
                        embalagem = new EmbalagemProduto(Convert.ToInt32(dr["codigoEMBALAGEMPRODUTO"]), (string)dr["nomeEMBALAGEMPRODUTO"], (EmbalagemProduto.PadraoEmbalagem)dr["padraoEMBALAGEMPRODUTO"]
                                                         , Convert.ToInt32(dr["produtoEMBALAGEMPRODUTO"]), Convert.ToDouble(dr["quantidadeEMBALAGEMPRODUTO"])
                                                         , Convert.ToInt32(dr["embalagemEMBALAGEMPRODUTO"])
                                                         , (string)dr["codigobarrasEMBALAGEMPRODUTO"]);

                        listaEmbalagens.Add(embalagem);
                    }
                }

                dr.Close();
                SqlServerConn.closeConn();

                if (listaEmbalagens.Count == 0)
                {
                    throw new SqlQueryExceptions("Não foi possível recuperar informações sobre embalagens para esta proposta :  " + codigoProposta);
                }

                embalagem = null;
                return(listaEmbalagens);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #7
0
        public void registrarAcesso(Usuario.statusLogin tipodeAcao)
        {
            Int64 retorno = 0;

            this.StatusLogin = tipodeAcao;

            Sql01 = new StringBuilder();

            switch (tipodeAcao)
            {
            case statusLogin.LOGADO:
                Sql01.Length = 0;
                //Insere o acesso e inicia a transação
                Sql01.Append("INSERT INTO tb0207_Acessos (usuarioACESSO, maquinaACESSO)");
                Sql01.Append(" VALUES (" + this.Codigo + ",'" + MainConfig.HostName + "')");
                SqlServerConn.execCommandSql(Sql01.ToString());
                break;

            case statusLogin.NAOLOGADO:
                Sql01.Length = 0;
                Sql01.Append("UPDATE tb0207_Acessos");
                Sql01.Append(" SET encerradoACESSO = 1,horaencerramentoACESSO = getdate(),duracaoACESSO = DATEDIFF(MINUTE,horaaberturaACESSO,getDATE())");
                Sql01.AppendFormat(" WHERE codigoACESSO = {0}", MainConfig.UserOn.CodigoAcesso);
                SqlServerConn.execCommandSql(Sql01.ToString());
                //return 0;
                break;

            default:
                break;
            }

            //Recupera o código do acesso
            Sql01.Length = 0;
            Sql01.Append("SELECT MAX(codigoACESSO) AS novoACESSO");
            Sql01.Append(" FROM tb0207_Acessos");
            System.Data.SqlClient.SqlDataReader dr = SqlServerConn.fillDataReader(Sql01.ToString());
            if ((dr.FieldCount > 0))
            {
                while ((dr.Read()))
                {
                    retorno = (Int32)dr["novoACESSO"];
                }
            }

            SqlServerConn.closeConn();
            dr.Close();

            this.CodigoAcesso = retorno;
            //return retorno;
        }
        public int selectMaxCodigoPickingMobile(long codigoProposta)
        {
            sql01 = new StringBuilder();
            sql01.Append("SELECT MAX(codigoPICKINGMOBILE) AS maxCodigo FROM tb1651_Picking_Mobile");
            sql01.AppendFormat(" WHERE propostaPICKINGMOBILE = {0}", codigoProposta);
            dr = SqlServerConn.fillDataReader(sql01.ToString());

            if (dr != null)
            {
                while (dr.Read())
                {
                    return(Convert.ToInt32((dr["maxCodigo"])));
                }
            }

            dr.Close();
            return(0);
        }
Exemple #9
0
        public List <EmbalagemSeparacao> carregarInformacoesEmbalagensUtilizadas(int codigoPickingMobile, List <EmbalagemSeparacao> embalagens)
        {
            sql01 = new StringBuilder();
            int count = 0;

            sql01.Append(" SELECT    pesototalprodutosPICKINGMOBILE");
            sql01.Append(" , pickingmobileEMBALAGEMSEPARACOES");
            sql01.Append(" , embalagemEMBALAGEMSEPARACOES");
            sql01.Append(" , quantidadeEMBALAGEMSEPARACOES");
            sql01.Append(" , SUM (quantidadeEMBALAGEMSEPARACOES) OVER() totalVOLUMES");
            sql01.Append(" FROM tb1651_Picking_Mobile ");
            sql01.Append(" INNER JOIN tb1653_Picking_Embalagem_Separacoes ON codigoPICKINGMOBILE = pickingmobileEMBALAGEMSEPARACOES");
            sql01.Append(" INNER JOIN TB1601_PROPOSTAS ON CODIGOpROPOSTA = propostaPICKINGMOBILE");
            sql01.AppendFormat(" WHERE codigoPICKINGMOBILE = {0}", codigoPickingMobile);
            sql01.Append(" AND quantidadeEMBALAGEMSEPARACOES > 0");

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            while ((dr.Read()))
            {
                if (count == 0)
                {
                    count++;
                    ProcedimentosLiberacao.PesoTotalProdutos = Convert.ToDouble(dr["pesototalprodutosPICKINGMOBILE"]);
                    ProcedimentosLiberacao.TotalVolumes      = Convert.ToInt32(dr["totalVOLUMES"]);
                }

                foreach (var item in embalagens)
                {
                    if (Convert.ToInt16(dr["embalagemEMBALAGEMSEPARACOES"]) == item.Codigo)
                    {
                        item.Quantidade = Convert.ToInt32(dr["quantidadeEMBALAGEMSEPARACOES"]);
                    }
                }
            }

            return(embalagens);
        }
        /// <summary>
        ///  Efetua carga na base mobile tb0001_Propostas com informações sobre a
        ///  proposta top1 atualmente liberada no picking
        /// </summary>
        /// <param name="cat">Gatinho do método. </param>
        /// <remarks>Após realizar a consulta realiza a carga dos dados  na base mobile tabela TB0001_Propostas</remarks>
        public void insertTop1PropostaServidor(String cat)
        {
            sql01 = new StringBuilder();
            sql01.Append("SELECT codigoPROPOSTA,numeroPROPOSTA,dataLIBERACAOPROPOSTA,");
            sql01.Append("clientePROPOSTA,razaoEMPRESA,volumesPROPOSTA");
            sql01.Append(" FROM vwMobile_tb1601_Proposta ");

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            if ((dr.FieldCount > 0))
            {
                while ((dr.Read()))
                {
                    this.insertProposta(Convert.ToInt64(dr["codigoPROPOSTA"]), (string)dr["numeroPROPOSTA"], (string)dr["dataLIBERACAOPROPOSTA"],
                                        Convert.ToInt32(dr["clientePROPOSTA"]), (string)dr["razaoEMPRESA"],
                                        Convert.ToInt32(dr["volumesPROPOSTA"]),
                                        MainConfig.CodigoUsuarioLogado);
                }
            }

            dr.Close();
            SqlServerConn.closeConn();
        }
Exemple #11
0
        public IList <Permissao> listaPermissoes(int codigoUsuario, string metodosMetodos)
        {
            IList <Permissao> list = new List <Permissao>();

            sql01 = new StringBuilder();
            sql01.Append(" SELECT tb0205_Metodos.valorUSUARIOMETODO, metodoMETODO");
            sql01.Append(" FROM tb0205_Metodos, tb0034_Metodos, tb0031_Componentes, tb0201_Usuarios");
            sql01.Append(" WHERE codigoMETODO = metodoUSUARIOMETODO");
            sql01.Append(" AND codigoUSUARIO = usuarioUSUARIOMETODO");
            sql01.Append(" AND codigoCOMPONENTE = 5");
            sql01.AppendFormat(" AND usuarioUSUARIOMETODO = {0}", codigoUsuario);
            sql01.AppendFormat(" AND metodoMETODO IN ({0})", metodosMetodos);

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            while (dr.Read())
            {
                var permissao = new Permissao(Convert.ToInt16(dr["valorUSUARIOMETODO"]), (string)dr["metodoMETODO"]);
                list.Add(permissao);
            }

            return(list);
        }
Exemple #12
0
        public String recuperarLocalEstoqueProduto(int produto, int lote)
        {
            string nomesLocais = "";

            sql01 = new StringBuilder();
            sql01.Append(" SELECT nomeLOCAL ");
            sql01.Append(" FROM tb1205_Lotes ");
            sql01.Append(" INNER JOIN tb1212_Lotes_Locais ON codigoLOTE = loteLOTELOCAL ");
            sql01.Append(" INNER JOIN tb1211_Locais ON codigoLOCAL = localLOTELOCAL ");
            sql01.AppendFormat(" WHERE produtoLOTE ={0} AND codigoLOTE = {1} ", produto, lote);

            SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

            while ((dr.Read()))
            {
                nomesLocais += dr["nomeLOCAL"];
            }

            dr.Close();
            SqlServerConn.closeConn();

            return(nomesLocais);
        }
Exemple #13
0
        /// <summary>
        ///  Carrega uma List com objetos da classe ItemProposta preenchida com dados sobre os itens de uma determinada Proposta
        /// </summary>
        /// <param name="codigoProposta">Código da proposta da qual serão recuperados os itens.</param>
        /// <returns>List do tipo ProdutoProposta </returns>
        public IEnumerable <ProdutoProposta> fillListItensProposta(int codigoProposta)
        {
            Produto objItemProposta = null;

            List <ProdutoProposta> listItensProposta = new List <ProdutoProposta>();

            try
            {
                sql01 = new StringBuilder();

                sql01.Append(" SELECT codigoITEMPROPOSTA,propostaITEMPROPOSTA,");
                sql01.Append(" produtoRESERVA AS codigoPRODUTO,");
                sql01.Append(" nomePRODUTO,partnumberPRODUTO,ean13PRODUTO,");
                sql01.Append(" SUM(quantidadeRESERVA) AS QtdITEMRESERVA,pesobrutoPRODUTO");
                sql01.Append(" ,dbo.fn1211_LotesReservaProduto(produtoRESERVA,propostaITEMPROPOSTA) AS lotesRESERVA");
                sql01.Append(" ,dbo.fn1211_LocaisLoteProduto(produtoRESERVA,dbo.fn1211_LotesReservaProduto(produtoRESERVA,propostaITEMPROPOSTA)) AS nomesLocaisLOTES ");
                sql01.Append(" FROM tb1206_Reservas (NOLOCK) ");
                sql01.Append(" INNER JOIN tb1602_Itens_Proposta (NOLOCK) ON codigoITEMPROPOSTA = docRESERVA ");
                sql01.Append(" INNER JOIN tb0501_Produtos (NOLOCK) ON produtoITEMPROPOSTA = codigoPRODUTO  ");
                sql01.AppendFormat(" WHERE propostaITEMPROPOSTA = {0} ", codigoProposta);
                sql01.Append(" AND tipodocRESERVA = 1602");
                sql01.Append(" AND statusITEMPROPOSTA = 3");
                sql01.Append(" AND separadoITEMPROPOSTA = 0");
                sql01.Append(" GROUP BY codigoITEMPROPOSTA,propostaITEMPROPOSTA,ean13PRODUTO,produtoRESERVA,nomePRODUTO,partnumberPRODUTO,pesobrutoPRODUTO");
                sql01.Append(" ORDER BY codigoPRODUTO");

                SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

                while ((dr.Read()))
                {
                    {
                        objItemProposta = new ProdutoProposta(Convert.ToInt32(dr["codigoITEMPROPOSTA"]),
                                                              Convert.ToInt32(dr["propostaITEMPROPOSTA"]),
                                                              Convert.ToDouble(dr["QtdITEMRESERVA"]),
                                                              ProdutoProposta.statusSeparado.NAOSEPARADO,
                                                              (string)dr["lotesRESERVA"],
                                                              (string)dr["nomesLocaisLOTES"],
                                                              Convert.ToInt32(dr["codigoPRODUTO"]),
                                                              (string)dr["ean13PRODUTO"],
                                                              (string)dr["partnumberPRODUTO"],
                                                              (string)(dr["nomePRODUTO"]),
                                                              Convert.ToDouble(dr["pesobrutoPRODUTO"]));

                        //Carrega a lista de itens que será retornada ao fim do procedimento.
                        listItensProposta.Add((ProdutoProposta)objItemProposta);
                    }
                }

                dr.Close();
                SqlServerConn.closeConn();

                if (listItensProposta.Count == 0)
                {
                    throw new SqlQueryExceptions("MÉTODO : fillListItensProposta()\nMOTIVO: Não foi possível recuperar informações sobre os itens da proposta " + codigoProposta);
                }

                return(listItensProposta);
            }
            catch (SqlException ex)
            {
                throw new Exception("fillListItensProposta()\n-->" + ex.Message);
            }
        }
Exemple #14
0
        /// <summary>
        ///  Carrega uma List com objetos da classe ItemProposta preenchida com dados sobre os itens de uma determinada Proposta
        /// </summary>
        /// <param name="codigoProposta">Código da proposta da qual serão recuperados os itens.</param>
        /// <returns>List do tipo ItemProposta </returns>
        public IEnumerable <ProdutoProposta> fillListItensProposta(int codigoProposta)
        {
            ProdutoProposta objItemProposta = null;

            List <ProdutoProposta> listItensProposta = new List <ProdutoProposta>();

            try
            {
                sql01 = new StringBuilder();

                ///ALTERADO EM CRITERIO DE TESTES PARA RETORNAR MAIS INFORMAÇOES SOBRE O PRODUTO DA PROPOSTA
                ///
                //sql01.Append("SELECT codigoITEMPROPOSTA,propostaITEMPROPOSTA,produtoRESERVA AS codigoPRODUTO,nomePRODUTO,partnumberPRODUTO,");
                //sql01.Append("ean13PRODUTO,SUM(quantidadeRESERVA) AS QTD");
                //sql01.Append(" FROM tb1206_Reservas (NOLOCK) ");
                //sql01.Append("INNER JOIN tb1602_Itens_Proposta (NOLOCK) ON codigoITEMPROPOSTA = docRESERVA ");
                //sql01.Append("INNER JOIN tb0501_Produtos (NOLOCK) ON produtoITEMPROPOSTA = codigoPRODUTO ");
                //sql01.Append("LEFT JOIN tb1212_Lotes_Locais (NOLOCK) ON loteRESERVA = loteLOTELOCAL ");
                //sql01.Append("LEFT JOIN tb1211_Locais ON codigoLOCAL = localLOTELOCAL ");
                //sql01.AppendFormat("WHERE propostaITEMPROPOSTA = {0} ", codigoProposta);
                //sql01.Append("AND tipodocRESERVA = 1602 ");
                //sql01.Append("AND statusITEMPROPOSTA = 3 ");
                //sql01.Append("AND separadoITEMPROPOSTA = 0  ");
                //sql01.Append("GROUP BY codigoITEMPROPOSTA,propostaITEMPROPOSTA,ean13PRODUTO,produtoRESERVA,produtoITEMPROPOSTA,");
                //sql01.Append("nomePRODUTO,partnumberPRODUTO");

                sql01.Append(" SELECT codigoITEMPROPOSTA,propostaITEMPROPOSTA,");
                sql01.Append(" produtoRESERVA AS codigoPRODUTO,");
                sql01.Append(" nomePRODUTO,partnumberPRODUTO,ean13PRODUTO,");
                sql01.Append(" SUM(quantidadeRESERVA) AS QTD,pesobrutoPRODUTO,SUM(quantidadeRESERVA) * pesobrutoPRODUTO AS pesobrutototalPRODUTO");
                sql01.Append(" ,dbo.fn1211_LotesReservaProduto(produtoRESERVA,propostaITEMPROPOSTA) AS lotesRESERVA,");
                sql01.Append(" DBO.fn1211_LocaisLoteProduto(produtoRESERVA,dbo.fn1211_LotesReservaProduto(produtoRESERVA,propostaITEMPROPOSTA)) AS nomesLocaisLOTES ");
                sql01.Append(" FROM tb1206_Reservas (NOLOCK) ");
                sql01.Append(" INNER JOIN tb1602_Itens_Proposta (NOLOCK) ON codigoITEMPROPOSTA = docRESERVA ");
                sql01.Append(" INNER JOIN tb0501_Produtos (NOLOCK) ON produtoITEMPROPOSTA = codigoPRODUTO  ");
                sql01.AppendFormat(" WHERE propostaITEMPROPOSTA = {0} ", codigoProposta);
                sql01.Append(" AND tipodocRESERVA = 1602");
                sql01.Append(" AND statusITEMPROPOSTA = 3");
                sql01.Append(" AND separadoITEMPROPOSTA = 0");
                sql01.Append(" GROUP BY codigoITEMPROPOSTA,propostaITEMPROPOSTA,ean13PRODUTO,produtoRESERVA,nomePRODUTO,partnumberPRODUTO,pesobrutoPRODUTO");
                sql01.Append(" ORDER BY codigoPRODUTO");

                SqlDataReader dr = SqlServerConn.fillDataReader(sql01.ToString());

                while ((dr.Read()))
                {
                    {
                        objItemProposta = new ProdutoProposta(Convert.ToInt32(dr["codigoITEMPROPOSTA"]),
                                                              Convert.ToInt32(dr["propostaITEMPROPOSTA"]),
                                                              Convert.ToDouble(dr["QTD"]),
                                                              ProdutoProposta.statusSeparado.NAOSEPARADO,
                                                              (string)dr["lotesRESERVA"],
                                                              (string)dr["nomesLocaisLOTES"],
                                                              Convert.ToInt32(dr["codigoPRODUTO"]),
                                                              (string)dr["ean13PRODUTO"],
                                                              (string)dr["partnumberPRODUTO"],
                                                              (string)(dr["nomePRODUTO"]),
                                                              Convert.ToDouble(dr["pesobrutoPRODUTO"]));

                        //Carrega a lista de itens que será retornada ao fim do procedimento.
                        listItensProposta.Add(objItemProposta);
                    }
                }

                dr.Close();
                SqlServerConn.closeConn();

                if (listItensProposta.Count == 0)
                {
                    throw new SqlQueryExceptions("Não foi possível recuperar informações sobre os itens da proposta " + codigoProposta);
                }

                return(listItensProposta);
            }
            catch (SqlQueryExceptions ex)
            {
                throw ex;
            }
            catch (SqlException ex)
            {
                throw ex;
            }
        }