예제 #1
0
        /// <summary>
        /// Busca os produtos que serão usados para baixa de estoque.
        /// </summary>
        /// <param name="idProd"></param>
        /// <param name="baixarProdutoSeNaoHouverProdBaixa">O próprio produto deve ser usado se não houver cadastro?</param>
        /// <param name="apenasVidros">Buscar apenas vidros</param>
        /// <returns></returns>
        public ProdutoBaixaEstoque[] GetByProd(GDASession sessao, uint idProd, bool baixarProdutoSeNaoHouverProdBaixa, TipoBuscaProduto tipoBuscaProduto)
        {
            var apenasProducao = tipoBuscaProduto == TipoBuscaProduto.ApenasProducao;

            string sql = @" SELECT pbe.*, p.CodInterno AS CodInternoProduto {0}
                FROM produto_baixa_estoque pbe ";

            if (apenasProducao)
            {
                sql += @"INNER JOIN produto p ON (pbe.idProdBaixa = p.idProd)
                        LEFT JOIN subgrupo_prod s ON (p.idSubgrupoProd=s.idSubgrupoProd)";
            }
            else
            {
                sql += @"Left Join produto p ON (pbe.idProdBaixa = p.idProd)
                        LEFT JOIN Etiqueta_Processo ep ON (pbe.idProcesso=ep.idProcesso)
                        LEFT JOIN etiqueta_Aplicacao ea ON (pbe.idAplicacao=ea.idAplicacao)";
            }

            sql += " WHERE pbe.idProd = " + idProd;

            if (apenasProducao)
            {
                sql += " AND ((p.idGrupoProd=" + (int)Glass.Data.Model.NomeGrupoProd.Vidro + " AND p.tipoMercadoria=" +
                       (int)TipoMercadoria.MateriaPrima + ") OR s.tipoSubgrupo=" + (int)TipoSubgrupoProd.PVB + ")";
            }

            sql = string.Format(sql, apenasProducao ? "" : ", ep.CodInterno AS CodInterno , ea.CodInterno AS CodAplicacao ");

            List <ProdutoBaixaEstoque> retorno = objPersistence.LoadData(sessao, sql);

            if (baixarProdutoSeNaoHouverProdBaixa && retorno.Count == 0)
            {
                retorno.Add(new ProdutoBaixaEstoque()
                {
                    IdProd      = (int)idProd,
                    IdProdBaixa = (int)idProd,
                    Qtde        = 1
                });
            }

            return(retorno.ToArray());
        }
예제 #2
0
 /// <summary>
 /// Busca os produtos que serão usados para baixa de estoque.
 /// Retorna o próprio produto se não houver outro cadastrado.
 /// </summary>
 /// <param name="idProd"></param>
 /// <returns></returns>
 public ProdutoBaixaEstoque[] GetByProd(GDASession sessao, uint idProd, TipoBuscaProduto tipoBuscaProduto)
 {
     return(GetByProd(sessao, idProd, true, tipoBuscaProduto));
 }
예제 #3
0
 /// <summary>
 /// (APAGAR: quando alterar para utilizar transação)
 /// Busca os produtos que serão usados para baixa de estoque.
 /// </summary>
 /// <param name="idProd"></param>
 /// <param name="baixarProdutoSeNaoHouverProdBaixa">O próprio produto deve ser usado se não houver cadastro?</param>
 /// <param name="apenasVidros">Buscar apenas vidros</param>
 /// <returns></returns>
 public ProdutoBaixaEstoque[] GetByProd(uint idProd, bool baixarProdutoSeNaoHouverProdBaixa, TipoBuscaProduto tipoBuscaProduto)
 {
     return(GetByProd(null, idProd, baixarProdutoSeNaoHouverProdBaixa, tipoBuscaProduto));
 }
예제 #4
0
 /// <summary>
 /// (APAGAR: quando alterar para utilizar transação)
 /// Busca os produtos que serão usados para baixa de estoque.
 /// Retorna o próprio produto se não houver outro cadastrado.
 /// </summary>
 /// <param name="idProd"></param>
 /// <returns></returns>
 public ProdutoBaixaEstoque[] GetByProd(uint idProd, TipoBuscaProduto tipoBuscaProduto)
 {
     return(GetByProd(null, idProd, tipoBuscaProduto));
 }