// public bool salvar(PedidoEntrega OPedidoEntrega) { OPedidoEntrega.Cidade = null; OPedidoEntrega.Estado = null; OPedidoEntrega.Pais = null; OPedidoEntrega.Pedido = null; OPedidoEntrega.TipoEndereco = null; OPedidoEntrega.Transportador = null; OPedidoEntrega.setDefaultInsertValues(); db.PedidoEntrega.Add(OPedidoEntrega); db.SaveChanges(); bool flagSucesso = OPedidoEntrega.id > 0; if (flagSucesso) { db.PedidoEntrega .Where(x => x.flagExcluido == "N" && x.idPedido == OPedidoEntrega.idPedido && x.id != OPedidoEntrega.id) .Update(x => new PedidoEntrega { flagExcluido = "S" }); } return(OPedidoEntrega.id > 0); }
// public bool salvar(PedidoEntrega OPedidoEntrega) { var flagSucesso = this.OPedidoEntregaBL.salvar(OPedidoEntrega); if (flagSucesso) { this.onEnderecoEntregaAlterado.subscribe(new OnEnderecoEntregaAlteradoHandler()); this.onEnderecoEntregaAlterado.publish(OPedidoEntrega.idPedido as object); } return(flagSucesso); }
/// <summary> /// Preencher os dados da pessoa no pedido /// </summary> public static string exibirPeriodoEntrega(this PedidoEntrega OPedidoEntrega) { if (OPedidoEntrega.flagPeriodo == PeriodoEntregaConst.MANHA) { return("Manhã"); } if (OPedidoEntrega.flagPeriodo == PeriodoEntregaConst.TARDE) { return("Tarde"); } if (OPedidoEntrega.flagPeriodo == PeriodoEntregaConst.INTEGRAL) { return("Integral"); } return("Não informado"); }
/// <summary> /// /// </summary> public UtilRetorno salvar(Pedido NovoPedido, bool flagAssociadoAdimplente) { var listaItensCarrinho = this.OCarrinhoItemConsultaBL.listarResumo(NovoPedido.idOrganizacao.toInt(), NovoPedido.idPessoa.toInt(), NovoPedido.idSessao).ToList(); if (listaItensCarrinho == null || !listaItensCarrinho.Any()) { return(UtilRetorno.newInstance(true, "Seu pedido deve ter ao menos 1 item.")); } var idsProdutos = listaItensCarrinho.Where(x => x.idProduto > 0) .Select(x => x.idProduto.toInt()) .ToList(); var listaProdutos = this.OProdutoBL.query(1) .Where(x => idsProdutos.Contains(x.id)) .ToList(); var CarrinhoResumo = OCarrinhoResumoBL.carregarExistente(NovoPedido.idOrganizacao.toInt(), NovoPedido.idPessoa.toInt(), NovoPedido.idSessao) ?? new CarrinhoResumo(); var ConfiguracaoEcommerce = ConfiguracaoEcommerceBL.getInstance.carregar(NovoPedido.idOrganizacao.toInt()); var OPessoa = this.OPessoaBL.query().Where(x => x.id == NovoPedido.idPessoa) .Select(x => new{ x.id, x.nome, x.nroDocumento, x.rg, listaEmails = x.listaEmails.Where(em => em.dtExclusao == null).ToList(), listaTelefones = x.listaTelefones.Where(tel => tel.dtExclusao == null).ToList() }).FirstOrDefault() .ToJsonObject <Pessoa>(); if (OPessoa == null) { return(UtilRetorno.newInstance(true, "Não foi possível carregar os dados da pessoa.")); } NovoPedido = NovoPedido.transferirDadosPessoa(OPessoa); NovoPedido.idStatusPedido = StatusPedidoConst.EM_ABERTO; NovoPedido.valorProdutos = listaItensCarrinho.valorTotalProdutos(flagAssociadoAdimplente); NovoPedido.valorFrete = CarrinhoResumo.valorFrete; NovoPedido.flagFreteGratis = CarrinhoResumo.flagFreteGratis; NovoPedido.idCentroCusto = ConfiguracaoEcommerce.idCentroCusto; NovoPedido.idMacroConta = ConfiguracaoEcommerce.idMacroConta; NovoPedido.idCategoriaTitulo = ConfiguracaoEcommerce.idCategoriaTitulo; NovoPedido.flagCartaoCreditoPermitido = ConfiguracaoEcommerce.flagCartaoCreditoPermitido; NovoPedido.flagBoletoBancarioPermitido = ConfiguracaoEcommerce.flagBoletoBancarioPermitido; NovoPedido.flagDepositoPermitido = ConfiguracaoEcommerce.flagDepositoPermitido; NovoPedido.qtdeLimiteParcelas = ConfiguracaoEcommerce.qtdeLimiteParcelas; NovoPedido.dtVencimento = DateTime.Now.AddDays(ConfiguracaoEcommerce.qtdeDiasVencimento.toInt() > 0 ? ConfiguracaoEcommerce.qtdeDiasVencimento.toInt() : 5); NovoPedido.flagFaturamentoCadastro = true; NovoPedido.ativo = "S"; NovoPedido.flagExcluido = "N"; NovoPedido.dtCadastro = DateTime.Now; NovoPedido.dtAlteracao = NovoPedido.dtCadastro; foreach (var OItemCarrinho in listaItensCarrinho) { var Produto = listaProdutos.FirstOrDefault(x => x.id == OItemCarrinho.idProduto.toInt()); if (Produto == null) { continue; } var PedidoProduto = new PedidoProduto(); PedidoProduto.idProduto = OItemCarrinho.idProduto.toInt(); PedidoProduto.qtde = OItemCarrinho.qtde; PedidoProduto.flagCalcularFrete = OItemCarrinho.flagCalcularFrete; PedidoProduto.nomeProduto = OItemCarrinho.descricaoItem.abreviar(100); PedidoProduto.peso = OItemCarrinho.peso; PedidoProduto.valorItem = OItemCarrinho.valorComDescontoUnitario(flagAssociadoAdimplente); PedidoProduto.valorOriginal = OItemCarrinho.valorProduto; PedidoProduto.valorDesconto = decimal.Subtract(PedidoProduto.valorOriginal.toDecimal(), PedidoProduto.valorItem.toDecimal()); PedidoProduto.dtCadastro = NovoPedido.dtCadastro; PedidoProduto.dtAlteracao = NovoPedido.dtCadastro; PedidoProduto.qtdeDiasDuracao = Produto.qtdeDiasDuracao; PedidoProduto.valorGanhoDiario = Produto.valorGanhoDiario; PedidoProduto.qtdePontosPlanoCarreira = Produto.qtdePontosPlanoCarreira.toDecimal(); PedidoProduto.ativo = "S"; PedidoProduto.flagExcluido = "N"; NovoPedido.listaProdutos.Add(PedidoProduto); } if (listaItensCarrinho.flagCalcularFrete()) { var OPedidoEntrega = new PedidoEntrega(); OPedidoEntrega.cepOrigem = ConfiguracaoEcommerce.cepOrigemFrete; OPedidoEntrega.cep = CarrinhoResumo.cepDestino; OPedidoEntrega.idTipoFrete = CarrinhoResumo.idTipoFrete; OPedidoEntrega.idTransportador = 1; OPedidoEntrega.logradouro = CarrinhoResumo.logradouroEntrega; OPedidoEntrega.numero = CarrinhoResumo.numeroEntrega; OPedidoEntrega.complemento = CarrinhoResumo.complementoEntrega; OPedidoEntrega.bairro = CarrinhoResumo.bairroEntrega; OPedidoEntrega.nomeCidade = CarrinhoResumo.nomeCidadeEntrega; OPedidoEntrega.idCidade = CarrinhoResumo.idCidadeEntrega; OPedidoEntrega.idEstado = CarrinhoResumo.idEstadoEntrega; OPedidoEntrega.idPais = "BRA"; OPedidoEntrega.dtCadastro = NovoPedido.dtCadastro; OPedidoEntrega.dtAlteracao = NovoPedido.dtCadastro; OPedidoEntrega.flagExcluido = "N"; NovoPedido.listaPedidoEntrega.Add(OPedidoEntrega); } db.Configuration.AutoDetectChangesEnabled = false; db.Configuration.ValidateOnSaveEnabled = false; db.Pedido.Add(NovoPedido); db.SaveChanges(); if (NovoPedido.id == 0) { return(UtilRetorno.newInstance(true, "Não foi possível registrar o seu pedido, tente novamente mais tarde!")); } eventoPedidoCriado.subscribe(new PedidoCadastradoHandler()); eventoPedidoCriado.publish(NovoPedido as object); return(UtilRetorno.newInstance(false, "", NovoPedido)); }