public List <PedidoTipoPagamento> Listar(PedidoTipoPagamento pedidoTipoPagamento) { IQueryable <PedidoTipoPagamento> query = chicoDoColchaoEntities.PedidoTipoPagamento; if (pedidoTipoPagamento.PedidoTipoPagamentoID > 0) { query = query.Where(x => x.PedidoTipoPagamentoID == pedidoTipoPagamento.PedidoTipoPagamentoID); } if (!string.IsNullOrEmpty(pedidoTipoPagamento.CV)) { query = query.Where(x => x.CV == pedidoTipoPagamento.CV); } return(query.ToList()); }
public int Trocar(Dao.PedidoDao pedidoDao) { var pedido = new Pedido(); pedido.DataPedido = DateTime.Now; pedido.ClienteID = pedidoDao.ClienteDao.FirstOrDefault().ClienteID; pedido.FuncionarioID = pedidoDao.ConsultorDao.FirstOrDefault().FuncionarioID; pedido.LojaID = pedidoDao.LojaDao.FirstOrDefault().LojaID; pedido.LojaSaidaID = pedidoDao.LojaSaidaDao.FirstOrDefault().LojaID; pedido.UsuarioPedidoID = pedidoDao.UsuarioPedidoDao.UsuarioID; pedido.NomeCarreto = pedidoDao.NomeCarreto; pedido.ValorFrete = pedidoDao.ValorFrete; pedido.TipoPagamentoFreteID = pedidoDao.TipoPagamentoFreteID; pedido.Observacao = pedidoDao.Observacao; pedido.Desconto = pedidoDao.Desconto; pedido.PedidoStatusID = pedidoDao.PedidoStatusDao.FirstOrDefault().PedidoStatusID; pedido.PedidoTrocaID = pedidoDao.PedidoID; var pedidoOriginal = chicoDoColchaoEntities.Pedido.Include(x => x.PedidoProduto).FirstOrDefault(x => x.PedidoID == pedidoDao.PedidoID); // produtos de entrada if (pedidoOriginal != null) { pedidoOriginal.PedidoStatusID = Dao.PedidoStatusDao.EPedidoStatus.Trocado.GetHashCode(); // muda o status do pedido original para 'Trocado' foreach (var pp in pedidoDao.PedidoProdutoDao.Where(x => x.Tipo == Dao.PedidoProdutoDao.ETipo.Entrada.GetHashCode() && x.ProdutoID > 0 && x.Quantidade > 0)) // produtos devolvidos ao estoque da loja do pedido original { var pedidoProdutoOriginal = pedidoOriginal.PedidoProduto.FirstOrDefault(x => x.ProdutoID == pp.ProdutoID); if (pedidoProdutoOriginal != null) { // muda o status do produto original para 'Trocado' pedidoProdutoOriginal.UsuarioTrocaID = pp.UsuarioTrocaDao.UsuarioID; pedidoProdutoOriginal.DataTroca = pedido.DataPedido; // só volta para o estoque os produtos que já saíram do estoque, ou seja, que foram dados baixas if (pedidoProdutoOriginal.UsuarioBaixaID > 0) { var lp = chicoDoColchaoEntities.LojaProduto.FirstOrDefault(x => x.ProdutoID == pp.ProdutoID && x.LojaID == pedidoOriginal.LojaSaidaID); if (lp != null) { lp.Quantidade = Convert.ToInt16(lp.Quantidade + pp.Quantidade); } } } } } // produtos de saída foreach (var pedidoProdutoDao in pedidoDao.PedidoProdutoDao.Where(x => x.Tipo == Dao.PedidoProdutoDao.ETipo.Saida.GetHashCode() && x.ProdutoID > 0 && x.Quantidade > 0)) { var pedidoProduto = new PedidoProduto(); pedidoProduto.PedidoID = pedidoProdutoDao.PedidoID; pedidoProduto.ProdutoID = pedidoProdutoDao.ProdutoID; pedidoProduto.Quantidade = pedidoProdutoDao.Quantidade; pedidoProduto.Preco = pedidoProdutoDao.Preco; pedidoProduto.UsuarioEntregaID = pedido.UsuarioPedidoID; pedidoProduto.DataEntrega = pedidoProdutoDao.DataEntrega; // se status do pedido for "Retirado na Loja", afeta o estoque if (pedidoDao.PedidoStatusDao.FirstOrDefault().PedidoStatusID == Dao.PedidoStatusDao.EPedidoStatus.RetiradoNaLoja.GetHashCode()) { pedidoProduto.UsuarioEntregaID = pedido.UsuarioPedidoID; pedidoProduto.DataEntrega = pedido.DataPedido; pedidoProduto.UsuarioBaixaID = pedido.UsuarioPedidoID; pedidoProduto.DataBaixa = pedido.DataPedido; var lojaSaidaId = pedidoDao.LojaSaidaDao.FirstOrDefault().LojaID; var lojaProduto = chicoDoColchaoEntities.LojaProduto.FirstOrDefault(x => x.ProdutoID == pedidoProdutoDao.ProdutoID && x.LojaID == lojaSaidaId); if (lojaProduto != null) { lojaProduto.Quantidade = Convert.ToInt16(lojaProduto.Quantidade - pedidoProdutoDao.Quantidade); } } pedido.PedidoProduto.Add(pedidoProduto); } // pagamentos foreach (var pedidoTipoPagamentoDao in pedidoDao.PedidoTipoPagamentoDao) { var pedidoTipoPagamento = new PedidoTipoPagamento(); pedidoTipoPagamento.PedidoID = pedidoTipoPagamentoDao.PedidoID; pedidoTipoPagamento.TipoPagamentoID = pedidoTipoPagamentoDao.TipoPagamentoDao.TipoPagamentoID; pedidoTipoPagamento.ParcelaID = pedidoTipoPagamentoDao.ParcelaDao.ParcelaID; pedidoTipoPagamento.ValorPago = pedidoTipoPagamentoDao.ValorPago; pedidoTipoPagamento.CV = pedidoTipoPagamentoDao.CV; pedido.PedidoTipoPagamento.Add(pedidoTipoPagamento); } chicoDoColchaoEntities.Entry(pedido).State = EntityState.Added; if (pedido.Cliente != null) { chicoDoColchaoEntities.Entry(pedido.Cliente).State = EntityState.Detached; } if (pedido.Funcionario != null) { chicoDoColchaoEntities.Entry(pedido.Funcionario).State = EntityState.Detached; } if (pedido.PedidoStatus != null) { chicoDoColchaoEntities.Entry(pedido.PedidoStatus).State = EntityState.Detached; } if (pedido.LojaOrigem != null) { chicoDoColchaoEntities.Entry(pedido.LojaOrigem).State = EntityState.Detached; } if (pedido.LojaSaida != null) { chicoDoColchaoEntities.Entry(pedido.LojaSaida).State = EntityState.Detached; } if (pedido.UsuarioPedido != null) { chicoDoColchaoEntities.Entry(pedido.UsuarioPedido).State = EntityState.Detached; } if (pedido.UsuarioCancelamento != null) { chicoDoColchaoEntities.Entry(pedido.UsuarioCancelamento).State = EntityState.Detached; } chicoDoColchaoEntities.SaveChanges(); return(pedido.PedidoID); }