public void Salvar(NecessidadeCompraViewModel necessidadeCompraViewModel, int usuarioId)
        {
            var usuario           = _usuarioServico.BuscarPorId(usuarioId);
            var necessidadeCompra = Mapper.Map <NecessidadeCompra>(necessidadeCompraViewModel);

            _necessidadeCompraServico.Salvar(necessidadeCompra, usuario);
        }
        public void AtualizarStatus(List <RetiradaCofreViewModel> retiradasCofreViewModel, AcaoRetiradaCofre acao, int usuarioId)
        {
            var usuario        = _usuarioServico.BuscarPorId(usuarioId);
            var retiradasCofre = Mapper.Map <List <RetiradaCofre> >(retiradasCofreViewModel);

            _retiradaCofreServico.AtualizarStatus(retiradasCofre, acao, usuario);
        }
Example #3
0
        public void Salvar(PedidoCompraViewModel pedidoCompraViewModel, int usuarioId)
        {
            var usuario      = _usuarioServico.BuscarPorId(usuarioId);
            var pedidoCompra = Mapper.Map <PedidoCompra>(pedidoCompraViewModel);

            _pedidoCompraServico.Salvar(pedidoCompra, usuario);
        }
        public HttpResponseMessage Billings([FromBody] FaturamentoViewModel faturamentoViewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage));

                    if (string.IsNullOrEmpty(JsonResult.Message))
                    {
                        JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.Exception.Message));
                    }

                    return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult));
                }

                var unidade = _unidadeAplicacao.BuscarPorId(faturamentoViewModel.Estacionamento.Id);
                var usuario = _usuarioServico.BuscarPorId(faturamentoViewModel.Operador.Id);

                if (usuario == null)
                {
                    JsonResult.Message = "Usuário Não Existe";
                    return(Request.CreateResponse(HttpStatusCode.NotFound, JsonResult));
                }

                var mensagemDeErro = Validar(faturamentoViewModel.Id, unidade);
                if (mensagemDeErro != null)
                {
                    return(mensagemDeErro);
                }

                var faturamento = faturamentoViewModel.ToEntity();
                faturamento.Unidade = unidade;
                faturamento.Usuario = usuario;

                var faturamentoExistenteComIdSoftpark = faturamento.IdSoftpark.HasValue ? _faturamentoAplicacao
                                                        .PrimeiroPor(x => x.IdSoftpark.HasValue &&
                                                                     x.IdSoftpark.Value == faturamento.IdSoftpark.Value &&
                                                                     x.Unidade != null && faturamento.Unidade != null &&
                                                                     x.Unidade.Id == faturamento.Unidade.Id) : null;

                if (faturamentoExistenteComIdSoftpark != null)
                {
                    faturamento.Id = faturamentoExistenteComIdSoftpark.Id;
                }

                _faturamentoAplicacao.Salvar(faturamento);

                JsonResult.Status = true;
                JsonResult.Object = faturamento;
                return(Request.CreateResponse(HttpStatusCode.Created, JsonResult.Message = "Faturamento Cadastrado!"));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult.Message));
            }
        }
        public bool TemAcesso(Usuario usuario)
        {
            var dbUsuario = usuarioServico.BuscarPorId(usuario.Id);

            cartaoServico.DescriptografarCartoes(dbUsuario.Pessoa.Cartoes);

            var participante = new Participant().FromUsuario(dbUsuario);

            participante.catalogId = clubeSettings.Credentials.CatalogId;
            participante.clientId  = clubeSettings.Credentials.ClientId;
            participante.profileId = clubeSettings.Credentials.ProfileId;

            var premiarClube = new PremiarClubeProvider(clubeSettings);
            var authenticatedPremiarClube = premiarClube.Me(participante);

            var temAcesso = authenticatedPremiarClube.TemAcesso();

            if (!temAcesso)
            {
                premiarClube.Participantes.Criar(participante);

                var cartao = dbUsuario.Pessoa.Cartoes.FirstOrDefault();
                cartao.DadosClube = JsonConvert.SerializeObject(participante);
                cartaoServico.Criptografar(cartao);
                cartaoServico.Salvar(cartao);

                //CreditarPontos(participante);
                temAcesso = authenticatedPremiarClube.TemAcesso();
            }

            if (temAcesso)
            {
                throw new RedirectException(204, $"https://{clubeSettings.Credentials.CampaignName}.premmiar.com.br/#/auth?access_token={authenticatedPremiarClube.Participantes.Api.RawToken}");
            }

            return(temAcesso);
        }
        public void AtribuiStatus(int id, int status, int idUsuario)
        {
            var usuario = _usuarioServico.BuscarPorId(idUsuario);

            _pedidoServico.AtribuiStatus(id, status, usuario);
        }
        public HttpResponseMessage Movements([FromBody] MovimentacaoSoftparkViewModel movimentacaoVM)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.ErrorMessage));

                    if (string.IsNullOrEmpty(JsonResult.Message))
                    {
                        JsonResult.Message = String.Join(" ", ModelState.Values.SelectMany(value => value.Errors).Select(x => x.Exception.Message));
                    }

                    return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, JsonResult));
                }

                var unidade = _unidadeAplicacao.BuscarPorId(movimentacaoVM.Estacionamento.Id);
                var cliente = _clienteAplicacao.BuscarPorId(movimentacaoVM.ClienteId);
                var usuario = _usuarioServico.BuscarPorId(movimentacaoVM.Operador.Id);

                var validado = Validar(movimentacaoVM.Id, unidade, usuario);
                if (validado != null)
                {
                    return(validado);
                }

                var movimentacao = movimentacaoVM.ToEntity();
                movimentacao.Unidade = unidade;
                movimentacao.Usuario = usuario;
                movimentacao.Cliente = cliente;

                var movimentacaoExistenteComIdSoftpark = movimentacao.IdSoftpark.HasValue ? _movimentacaoAplicacao
                                                         .PrimeiroPor(x => x.IdSoftpark.HasValue &&
                                                                      x.IdSoftpark.Value == movimentacao.IdSoftpark.Value &&
                                                                      x.Unidade != null && movimentacao.Unidade != null &&
                                                                      x.Unidade.Id == movimentacao.Unidade.Id) : null;

                if (movimentacaoExistenteComIdSoftpark != null)
                {
                    movimentacao.Id = movimentacaoExistenteComIdSoftpark.Id;
                }

                if (movimentacao.Usuario != null)
                {
                    movimentacao.Usuario.Unidade        = movimentacao.Unidade;
                    movimentacao.Usuario.TemAcessoAoPDV = true;
                }

                if (movimentacao.MovimentacaoSelo != null && movimentacao.MovimentacaoSelo.Any())
                {
                    RegistrarSelo(movimentacao);
                }

                JsonResult.Status = true;
                _movimentacaoAplicacao.Salvar(movimentacao);
                return(Request.CreateResponse(HttpStatusCode.Created, JsonResult.Message = "Movimentação Cadastrada!"));
            }
            catch (Exception ex)
            {
                JsonResult.Status  = false;
                JsonResult.Message = ex.Message;
                return(Request.CreateResponse(HttpStatusCode.BadRequest, JsonResult));
            }
        }
        public void NegarConta(int id, string observacao, int usuarioId)
        {
            var usuario = _usuarioServico.BuscarPorId(usuarioId);

            _contaPagarServico.NegarConta(id, observacao, usuario);
        }
        public void Salvar(OrcamentoSinistro orcamentoSinistro, int usuarioId)
        {
            var usuario = _usuarioServico.BuscarPorId(usuarioId);

            _orcamentoSinistroServico.Salvar(orcamentoSinistro, usuario);
        }
        public void Salvar(EstoqueManual estoqueManual, int usuarioId, int materialId)
        {
            var usuario = _usuarioServico.BuscarPorId(usuarioId);

            _estoqueManualServico.Salvar(estoqueManual, usuario, materialId);
        }
Example #11
0
 public void Salvar(OIS ois, int usuarioId)
 {
     ois.Usuario = _usuarioServico.BuscarPorId(usuarioId);
     _oisServico.Salvar(ois);
 }
Example #12
0
        public Resposta <PedidoModelView> Finalizar([FromBody] Pedido entity)
        {
            if (entity.ListaCompra != null)
            {
                entity.ListaCompra = _listaCompraServico.BuscarPorId(entity.ListaCompra.Id);
            }

            entity.Usuario = _usuarioServico.BuscarPorId(entity.Usuario.Id);

            Pessoa pedidoPessoa = entity.Usuario.Pessoa;

            var senhaCartao = entity.Cartao.Senha;
            var pedido      = _pedidoServico.ValidarESalvar(entity);

            pedido.Cartao = pedido.Cartao == null ? pedido.Cartao : _cartaoServico.DescriptografarCartao(pedido.Cartao);

            if (terminalCobrancaLojaServico.PrimeiroPor(t => t.Usuario.Id == entity.Usuario.Id) != null) //Usuário do pedido é um terminal
            {
                entity.Usuario.Pessoa = pedidoPessoa;
            }

            string retornoApi;
            var    retorno = new RespostaTransacaoCartaoModelView();

            if (ConfigurationManager.AppSettings["API_REALIZA_TRANSACAO"] == "0")
            {
                retornoApi = "sucesso";
            }
            else
            {
                pedido.Cartao.Decrypted = false;
                pedido.Cartao           = _cartaoServico.DescriptografarCartao(pedido.Cartao);

                switch (ConfigurationManager.AppSettings["API_REALIZA_TRANSACAO_FORMA_PAGAMENTO"])
                {
                case "0":
                {
                    //MobSeg
                    var cpf = entity.Usuario.Pessoa.Documentos.FirstOrDefault(x => x.Tipo == (int)TipoDocumento.Cpf)?.Numero;

                    retornoApi = _apiTransacaoCartao.RealizaTransacaoCartao(Convert.ToInt64(cpf?.Replace(".", "").Replace("-", "")), 0,
                                                                            pedido.Cartao?.NumeroSemMascara, pedido.Cartao?.Validade.Replace("/", ""), pedido.Cartao?.Cvv, pedido.ListaCompra.Total.ToString("######.00").Replace(",", "").Replace(".", ""));

                    retorno = new JavaScriptSerializer().Deserialize <RespostaTransacaoCartaoModelView>(retornoApi);
                }
                break;

                case "1":
                {
                    //PayZen
                    var retornoKeyValue = Aplicacao.apipayzen.ApiPayzenBase.CreatePayment(pedido);
                    retornoApi = retornoKeyValue.Value;
                    retorno    = new RespostaTransacaoCartaoModelView
                    {
                        CodigoResposta = retornoKeyValue.Key,
                        Mensagem       = retornoKeyValue.Value
                    };
                }
                break;

                case "2":
                {
                    //MeuVale
                    var cpf = entity.Usuario.Pessoa.Documentos.FirstOrDefault(x => x.Tipo == (int)TipoDocumento.Cpf)?.Numero;

                    pedido.CodEstabelecimentoInfox = pedido.Loja.CodigoInfox;
                    var pedidoModel = new Aplicacao.ApiInfox.Models.PedidoCompraModelView
                    {
                        Cliente = new Aplicacao.ApiInfox.Models.ClienteModelView
                        {
                            Id         = entity.Usuario.Pessoa.CodClienteInfox,
                            CodCliente = entity.Usuario.Pessoa.CodClienteInfox,
                            Pessoa     = new Aplicacao.ApiInfox.Models.PessoaModelView
                            {
                                Cpf            = cpf?.Replace(".", "").Replace("-", ""),
                                DataNascimento = entity.Usuario.Pessoa.DataNascimento
                            },
                            Cartao = new Aplicacao.ApiInfox.Models.CartaoModelView
                            {
                                NomeImpresso = pedido.Cartao?.NomeImpresso,
                                Numero       = pedido.Cartao?.NumeroSemMascara.ExtractLettersAndNumbers(),
                                Cvv          = pedido.Cartao?.Cvv,
                                Senha        = senhaCartao
                            }
                        },
                        ValorPedido        = pedido.Valor.ToString("F2").Replace(",", "").Replace(".", ""),
                        CodEstabelecimento = pedido.CodEstabelecimentoInfox
                    };
                    retornoApi = _apiTransacaoCartaoInfox.CompraAVista(new JavaScriptSerializer().Serialize(pedidoModel));

                    var responseJson = new JavaScriptSerializer().Deserialize <Aplicacao.ApiInfox.Models.ResponseModelView>(retornoApi);

                    pedido.NSURedeRXInfox = responseJson.NSU_RedeRX;

                    pedido.Cartao = _cartaoServico.Criptografar(_cartaoServico.BuscarPorId(pedido.Cartao.Id));
                    _pedidoServico.Salvar(pedido);

                    retorno = new RespostaTransacaoCartaoModelView
                    {
                        CodigoResposta = responseJson.CodResp,
                        Mensagem       = responseJson.StrResp
                    };

                    if (responseJson.Return > 0)
                    {
                        _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoNaoAprovado, pedido.Usuario, responseJson.StrResp, responseJson.Return.ToString());

                        //throw new BusinessRuleException($"Resultado: {responseJson.Return} - {responseJson.StrResp}");
                        return(new Resposta <PedidoModelView>
                            {
                                Mensagem = ($"Falha ao processar o pagamento: { responseJson.Return } - { responseJson.StrResp }"),
                                ObjetoRetorno = new PedidoModelView(pedido),
                                TipoMensagem = TipoModal.Danger
                            });
                    }

                    retorno = new RespostaTransacaoCartaoModelView
                    {
                        CodigoResposta = responseJson.CodResp,
                        Mensagem       = responseJson.StrResp
                    };

                    _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoAprovado, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta);

                    _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.AguardandoAvaliacao, pedido.Usuario, "Sua avaliação é muito importante para nós");

                    return(new Resposta <PedidoModelView>
                        {
                            Mensagem = responseJson.Return == 0 ? "Pagamento realizado com sucesso! Loja: " + pedido.Loja.Descricao + " Valor: R$ " + pedido.Valor.ToString("N2") : "Falha ao processar o pagamento com a operadora do cartão!",
                            ObjetoRetorno = new PedidoModelView(pedido),
                            TipoMensagem = responseJson.Return == 0 ? TipoModal.Success : TipoModal.Danger
                        });
                }

                case "3":
                {
                    //Ebanx
                    var retornoEbanx = _apiTransacaoEbanx.CompraDireta(pedido);
                    var retornoJson  = Newtonsoft.Json.JsonConvert.SerializeObject(retornoEbanx);

                    retornoApi = retornoJson;

                    pedido.Cartao = _cartaoServico.Criptografar(_cartaoServico.BuscarPorId(pedido.Cartao.Id));
                    _pedidoServico.Salvar(pedido);

                    retorno = new RespostaTransacaoCartaoModelView
                    {
                        CodigoResposta = retornoEbanx.Code,
                        Mensagem       = retornoEbanx.Message
                    };

                    if (retorno.CodigoResposta != "OK")
                    {
                        _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoNaoAprovado, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta);
                        throw new BusinessRuleException($"Resultado: {retorno.CodigoResposta} - {retorno.Mensagem}");
                    }

                    _pedidoServico.ModificaStatus(pedido.Id, StatusPedido.AguardandoPagamento, pedido.Usuario, codigoRetornoTransacao: retornoEbanx.payment?.hash);

                    return(new Resposta <PedidoModelView>
                        {
                            Mensagem = retorno.CodigoResposta == "OK" ? "Pagamento solicitado com sucesso!" : "Falha ao processar o pagamento com a operadora do cartão!",
                            ObjetoRetorno = new PedidoModelView(pedido),
                            TipoMensagem = retorno.CodigoResposta == "OK" ? TipoModal.Success : TipoModal.Danger
                        });
                }

                default:
                    retornoApi = "sucesso";
                    break;
                }

                pedido.Cartao = _cartaoServico.Criptografar(_cartaoServico.BuscarPorId(pedido.Cartao.Id));
            }

            if (retornoApi.Contains("sucesso"))
            {
                _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoAprovado, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta);

                _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.AguardandoConfirmacao, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta);
            }
            else
            {
                _pedidoServico.AtribuiStatus(pedido.Id, (int)StatusPedido.PagamentoNaoAprovado, pedido.Usuario, retorno.Mensagem, retorno.CodigoResposta);
            }

            var pedidoRetorno = _pedidoServico.BuscarPorId(pedido.Id);

            pedidoRetorno.ListaCompra = _listaCompraServico.AtribuiDescontoAListaCompra(pedidoRetorno.ListaCompra);

            pedidoRetorno.Cartao.Decrypted = false;
            pedidoRetorno.Cartao           = _cartaoServico.DescriptografarCartao(pedidoRetorno.Cartao);
            pedidoRetorno.AvaliacaoPedido  = new AvaliacaoPedido {
                ItensDeAcordoComAnuncio = false, NotaAplicativo = 0, NotaPedido = 0
            };

            return(new Resposta <PedidoModelView>
            {
                Mensagem = retornoApi.Contains("sucesso") ? "Compra realizada com sucesso!" : "Falha ao processar o pagamento com a operadora do cartão!",
                ObjetoRetorno = new PedidoModelView(pedidoRetorno),
                TipoMensagem = retornoApi.Contains("sucesso") ? TipoModal.Success : TipoModal.Danger
            });
        }