/// <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()); }
/// <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)); }
/// <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)); }
/// <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)); }