コード例 #1
0
 public List <VendaProdutoDao> VendaProduto(VendaProdutoDao vendaProdutoDao)
 {
     if (vendaProdutoDao.ProdutoDao != null && vendaProdutoDao.ProdutoDao.Count() > 0)
     {
         return((from pr in chicoDoColchaoEntities.Produto
                 join me in chicoDoColchaoEntities.Medida on pr.MedidaID equals me.MedidaID
                 join pp in chicoDoColchaoEntities.PedidoProduto on pr.ProdutoID equals pp.ProdutoID
                 join ptp in chicoDoColchaoEntities.PedidoTipoPagamento on pp.PedidoID equals ptp.PedidoID
                 join pe in chicoDoColchaoEntities.Pedido on ptp.PedidoID equals pe.PedidoID
                 join l in chicoDoColchaoEntities.Loja on pe.LojaID equals l.LojaID
                 where pe.DataPedido >= vendaProdutoDao.DataInicio &&
                 pe.DataPedido <= vendaProdutoDao.DataFim &&
                 pr.Ativo == true &&
                 me.Ativo == true &&
                 l.Ativo == true &&
                 vendaProdutoDao.ProdutoDao.Any(x => x == pr.ProdutoID) &&
                 pe.PedidoStatusID != (int)PedidoStatusDao.EPedidoStatus.Cancelado
                 group new { pr.ProdutoID, pr.Numero, Produto = pr.Descricao, me.MedidaID, Medida = me.Descricao, pp.Quantidade, ptp.ValorPago } by new { pr.ProdutoID, pr.Numero, Produto = pr.Descricao, me.MedidaID, Medida = me.Descricao } into g1
                 select new VendaProdutoDao()
         {
             ProdutoID = g1.Key.ProdutoID,
             Numero = g1.Key.Numero,
             Produto = g1.Key.Produto,
             MedidaID = g1.Key.MedidaID,
             Medida = g1.Key.Medida,
             Venda = g1.Sum(x => x.ValorPago),
             Quantidade = g1.Sum(x => x.Quantidade)
         }).OrderByDescending(x => x.Venda).ToList());
     }
     else
     {
         return((from pr in chicoDoColchaoEntities.Produto
                 join me in chicoDoColchaoEntities.Medida on pr.MedidaID equals me.MedidaID
                 join pp in chicoDoColchaoEntities.PedidoProduto on pr.ProdutoID equals pp.ProdutoID
                 join ptp in chicoDoColchaoEntities.PedidoTipoPagamento on pp.PedidoID equals ptp.PedidoID
                 join pe in chicoDoColchaoEntities.Pedido on ptp.PedidoID equals pe.PedidoID
                 join l in chicoDoColchaoEntities.Loja on pe.LojaID equals l.LojaID
                 where pe.DataPedido >= vendaProdutoDao.DataInicio &&
                 pe.DataPedido <= vendaProdutoDao.DataFim &&
                 pr.Ativo == true &&
                 me.Ativo == true &&
                 l.Ativo == true &&
                 pe.PedidoStatusID != (int)PedidoStatusDao.EPedidoStatus.Cancelado
                 group new { pr.ProdutoID, pr.Numero, Produto = pr.Descricao, me.MedidaID, Medida = me.Descricao, pp.Quantidade, ptp.ValorPago } by new { pr.ProdutoID, pr.Numero, Produto = pr.Descricao, me.MedidaID, Medida = me.Descricao } into g1
                 select new VendaProdutoDao()
         {
             ProdutoID = g1.Key.ProdutoID,
             Numero = g1.Key.Numero,
             Produto = g1.Key.Produto,
             MedidaID = g1.Key.MedidaID,
             Medida = g1.Key.Medida,
             Venda = g1.Sum(x => x.ValorPago),
             Quantidade = g1.Sum(x => x.Quantidade)
         }).OrderByDescending(x => x.Venda).ToList());
     }
 }
コード例 #2
0
        private void ValidarVendaProduto(VendaProdutoDao vendaProdutoDao)
        {
            if (vendaProdutoDao == null)
            {
                throw new BusinessException("VendaProdutoDao é obrigatório");
            }

            if (vendaProdutoDao.DataInicio == DateTime.MinValue)
            {
                throw new BusinessException("Data início é obrigatório");
            }

            if (vendaProdutoDao.DataFim == DateTime.MinValue)
            {
                throw new BusinessException("Data fim é obrigatório");
            }
        }
コード例 #3
0
        public List <VendaProdutoDao> VendaProduto(VendaProdutoDao vendaProdutoDao)
        {
            try
            {
                ValidarVendaProduto(vendaProdutoDao);

                return(relatorioRepository.VendaProduto(vendaProdutoDao));
            }
            catch (BusinessException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                logRepository.Incluir(new Log()
                {
                    Descricao = ex.ToString(), DataHora = DateTime.Now
                });

                throw ex;
            }
        }