コード例 #1
0
        public static List <EstoqueProduto> RelatorioEstoqueProduto(Dictionary <string, string> pCriterio = null)
        {
            using (DepositoDBEntities deposito = new DepositoDBEntities())
            {
                string vCriterio = "";

                string query = @"SELECT ProdutoGrade.CodigoBarras + '' + ProdutoGrade.Digito CodigoBarras, 
                                    Descricao, Tamanho, Cor, ISNULL(ValorSaida, 0) ValorSaida, ISNULL(ValorCusto, 0) ValorCusto,
                                    ISNULL(ProdutoGrade.QUantidade,0) SaldoEstoque, ISNULL(ProdutoGrade.QUantidade,0) * ISNULL(ValorSaida, 0) Valor                                    
                                FROM Produto                                    
                                    INNER JOIN ProdutoGrade ON Produto.Id = ProdutoGrade.ProdutoId";

                if (pCriterio != null)
                {
                    if (pCriterio.ContainsKey("CodigoBarras"))
                    {
                        vCriterio = " ProdutoGrade.CodigoBarras + '' + ProdutoGrade.Digito LIKE '%" + pCriterio["CodigoBarras"] + "%'";
                    }


                    if (pCriterio.ContainsKey("CodigoGeral"))
                    {
                        vCriterio = "(ProdutoGrade.CodigoBarras + '' + ProdutoGrade.Digito = '" + pCriterio["CodigoGeral"] + "' OR ProdutoGrade.ProdutoId = " + pCriterio["CodigoGeral"] + ")";
                    }

                    if (pCriterio.ContainsKey("Nome"))
                    {
                        vCriterio += vCriterio != "" ? " OR " : "";
                        vCriterio += " Descricao LIKE '%" + pCriterio["Nome"] + "%'";
                    }


                    vCriterio = (vCriterio != "") ? "(" + vCriterio + ")" : "";

                    if (pCriterio.ContainsKey("SaldoEstoque"))
                    {
                        if (pCriterio["SaldoEstoque"] == "Y")
                        {
                            vCriterio += vCriterio != "" ? " AND " : "";
                            vCriterio += " ISNULL(ProdutoGrade.QUantidade,0) > 0 ";
                        }
                        else if (pCriterio["SaldoEstoque"] == "N")
                        {
                            vCriterio += vCriterio != "" ? " AND " : "";
                            vCriterio += " ISNULL(ProdutoGrade.QUantidade,0) = 0 ";
                        }
                    }
                }

                query += vCriterio != "" ? " WHERE " + vCriterio : "";


                Console.WriteLine("Listando Produtos Query: " + query);

                var result = deposito.Database.SqlQuery <EstoqueProduto>(query);


                return(result.ToList <EstoqueProduto>());
            }
        }
コード例 #2
0
        public static List <CobrancaCarga> RelatorioCobrancaCarga(int pCargaId)
        {
            using (DepositoDBEntities deposito = new DepositoDBEntities())
            {
                string query = @"SELECT Pedido.CodigoPedido Codigo, 'Pedido' as Tipo, 
                                        Nome as Vendedor, CpfCnpj as CPFCnpj, RGInscricao as RGInsc,
                                        Endereco + ' ' + Complemento as Endereco,
                                        Bairro, Cidade + '/' + UF as Cidade, CEP,
                                        Telefone + ' | ' + TelefoneComercial + ' | ' + Celular as Telefone,
                                        ValorLiquido + ValorAReceber - ValorAcerto as TotalAReceber
                                                FROM Vendedor 
                                                    INNER JOIN Pedido 
                                                        ON Pedido.VendedorId = Vendedor.Id
                                            WHERE Pedido.CargaId = @p0
                                                    AND ValorLiquido + ValorAReceber - ValorAcerto  > 0
                                UNION
                                    SELECT Convert(Varchar(12),Documento) + '/' + Serie Codigo, 'Receber' as Tipo, 
                                            Nome as Vendedor, CpfCnpj as CPFCnpj, RGInscricao as RGInsc,
                                            Endereco + ' ' + Complemento as Endereco,
                                            Bairro, Cidade + '/' + UF as Cidade, CEP,
                                            Telefone + ' | ' + TelefoneComercial + ' | ' + Celular as Telefone,
                                            sum(ValorNF)- sum(ISNULL(Valor,0)) TotalAReceber 
                                                FROM Vendedor 
                                                    INNER JOIN Receber ON Receber.VendedorId = Vendedor.Id
                                                    LEFT JOIN ReceberBaixa ON ReceberBaixa.ReceberId = Receber.Id 
                                            WHERE Receber.CargaId = @p0
                                            GROUP BY Documento, Serie, Nome, CpfCnpj, RGInscricao, Endereco, Complemento, Bairro, Cidade, UF, CEP, Telefone, TelefoneComercial, Celular
                                                HAVING sum(ValorNF)- sum(ISNULL(Valor,0)) > 0";


                var result = deposito.Database.SqlQuery <CobrancaCarga>(query, pCargaId);

                return(result.ToList <CobrancaCarga>());
            }
        }
コード例 #3
0
        public static List <AnaliseRetorno> RelatorioAnaliseRetorno(int pRetornoId)
        {
            using (DepositoDBEntities deposito = new DepositoDBEntities())
            {
                string query = @"SELECT                                    
                                    Convert(Varchar(10),Praca.Id) + ' - ' + Praca.Descricao Praca,
                                    Convert(Varchar(10),Representante.Id) + ' - ' + Representante.Nome Representante,
                                    Produto.CodigoBarras + ' ' + Produto.Descricao Produto,
                                    Convert(Varchar(12), CargaProduto.Quantidade) Carga,
                                    Convert(Varchar(12),Consignado.Consignado) Consignado,
                                    Convert(Varchar(12),Vendido.Vendido) Vendido,
                                    CASE 
	                                    WHEN CargaProduto.Quantidade > 0 THEN Convert(Varchar(12), Vendido.Vendido / CargaProduto.Quantidade * 100)
	                                    ELSE '' END AS PercentVendas
                                     FROM Carga 
                                    INNER JOIN Praca ON Carga.PracaId = Praca.Id
                                    INNER JOIN Representante ON Carga.RepresentanteId = Representante.Id
                                    INNER JOIN CargaProduto ON CargaProduto.CargaId = Carga.Id
                                    INNER JOIN ProdutoGrade ON CargaProduto.ProdutoGradeId = ProdutoGrade.Id
                                    INNER JOIN Produto ON ProdutoGrade.ProdutoId = Produto.Id
                                    LEFT JOIN (
	                                    SELECT CargaId, CargaOriginal, ProdutoGradeId, Sum(Quantidade-Retorno) Consignado 
	                                    FROM Pedido INNER JOIN PedidoItem ON PedidoItem.PedidoId = Pedido.Id 
	                                    WHERE Status < 2
	                                    GROUP BY CargaId, CargaOriginal, ProdutoGradeId
                                    ) AS Consignado ON (Consignado.CargaId = Carga.Id OR Consignado.CargaOriginal = Carga.Id) AND Consignado.ProdutoGradeId = ProdutoGrade.Id
                                    LEFT JOIN (
	                                    SELECT CargaId, CargaOriginal, ProdutoGradeId, Sum(Quantidade-Retorno) Vendido 
	                                    FROM Pedido INNER JOIN PedidoItem ON PedidoItem.PedidoId = Pedido.Id 
	                                    WHERE Status >= 2
	                                    GROUP BY CargaId, CargaOriginal, ProdutoGradeId
                                    ) AS Vendido ON (Vendido.CargaId = Carga.Id OR Vendido.CargaOriginal = Carga.Id) AND Vendido.ProdutoGradeId = ProdutoGrade.Id

                                    WHERE Carga.Id = @p0
                                    ORDER BY Produto.Descricao";


                var result = deposito.Database.SqlQuery <AnaliseRetorno>(query, pRetornoId);

                return(result.ToList <AnaliseRetorno>());
            }
        }