public List <VendaLojaDao> VendaLoja(VendaLojaDao vendaLojaDao) { var query = (from l in chicoDoColchaoEntities.Loja join p in chicoDoColchaoEntities.Pedido on l.LojaID equals p.LojaID join ptp in chicoDoColchaoEntities.PedidoTipoPagamento on p.PedidoID equals ptp.PedidoID where p.DataPedido >= vendaLojaDao.DataInicio && p.DataPedido <= vendaLojaDao.DataFim && (vendaLojaDao.LojaID > 0 ? p.LojaID == vendaLojaDao.LojaID : 1 == 1) && l.Ativo == true && p.PedidoStatusID != (int)PedidoStatusDao.EPedidoStatus.Cancelado group ptp by new { l.LojaID, l.NomeFantasia, DataInicio = System.Data.Entity.DbFunctions.TruncateTime(p.DataPedido) } into g1 select new VendaLojaDao() { LojaID = g1.Key.LojaID, NomeFantasia = g1.Key.NomeFantasia, VendaDia = g1.Sum(x => x.ValorPago), VendaAcumulada = (from l2 in chicoDoColchaoEntities.Loja join p2 in chicoDoColchaoEntities.Pedido on l2.LojaID equals p2.LojaID join ptp2 in chicoDoColchaoEntities.PedidoTipoPagamento on p2.PedidoID equals ptp2.PedidoID where l2.LojaID == g1.Key.LojaID && p2.DataPedido >= vendaLojaDao.DataInicio && p2.DataPedido <= vendaLojaDao.DataFim && (vendaLojaDao.LojaID > 0 ? p2.LojaID == vendaLojaDao.LojaID : 1 == 1) && l2.Ativo == true && p2.PedidoStatusID != (int)PedidoStatusDao.EPedidoStatus.Cancelado && System.Data.Entity.DbFunctions.TruncateTime(g1.Key.DataInicio) >= System.Data.Entity.DbFunctions.TruncateTime(p2.DataPedido) group ptp2 by l2.LojaID into g2 select g2.Sum(x => x.ValorPago) ).FirstOrDefault(), DataInicio = g1.Key.DataInicio }).OrderBy(x => x.DataInicio).ThenBy(x => x.VendaDia).ToList(); return(query); }
private void ValidarVendaLoja(VendaLojaDao vendaLojaDao) { if (vendaLojaDao == null) { throw new BusinessException("VendaLojaDao é obrigatório"); } if (vendaLojaDao.DataInicio == DateTime.MinValue) { throw new BusinessException("Data início é obrigatório"); } if (vendaLojaDao.DataFim == DateTime.MinValue) { throw new BusinessException("Data fim é obrigatório"); } }
public List <VendaLojaDao> VendaLoja(VendaLojaDao vendaLojaDao) { try { ValidarVendaLoja(vendaLojaDao); return(relatorioRepository.VendaLoja(vendaLojaDao)); } catch (BusinessException ex) { throw ex; } catch (Exception ex) { logRepository.Incluir(new Log() { Descricao = ex.ToString(), DataHora = DateTime.Now }); throw ex; } }