コード例 #1
0
        public ActionResult modalExcluirReceita(int?id)
        {
            var OTituloReceita = this.OTituloReceitaBL.carregar(id.toInt());

            if (OTituloReceita == null)
            {
                return(Json(new { flagErro = true, message = "A receita não pode ser localizada." }, JsonRequestBehavior.AllowGet));
            }

            if (FinanceiroHelper.receitasBloqueadas(OTituloReceita.idTipoReceita))
            {
                return(Json(new { flagErro = true, message = "A receita não pode ser removida por esse modulo." }, JsonRequestBehavior.AllowGet));
            }

            if (OTituloReceita.dtQuitacao.HasValue)
            {
                return(Json(new { flagErro = true, message = "Não é possível excluir uma receita quitada." }, JsonRequestBehavior.AllowGet));
            }

            if (OTituloReceita.listaTituloReceitaPagamento.Any(x => x.dtPagamento.HasValue))
            {
                return(Json(new { flagErro = true, message = "Não é possível excluir uma receita com baixa em algum pagamento." }, JsonRequestBehavior.AllowGet));
            }

            return(View(OTituloReceita));
        }
コード例 #2
0
        public ActionResult PublicarAgora(VagaViewModel vaga)
        {
            try
            {
                vaga.status     = 1;
                vaga.DataEvento = Convert.ToDateTime(vaga.Date);

                vaga.Numero = Convert.ToInt32(vaga.NumeroString);

                if (FinanceiroHelper.VerifcaSaldoCliente(vaga.Valor, PixCoreValues.UsuarioLogado))
                {
                    var op = SaveVaga(vaga);
                    if (op != null && op.ID > 0)
                    {
                        FinanceiroHelper.LancaTransacoes(op, PixCoreValues.UsuarioLogado);
                        return(Json("ok"));
                    }
                    else
                    {
                        return(Json("Desculpe, o sistema encontrou um erro ao efetuar sua solicitação." +
                                    " Entre em contato com nosso suporte técnico."));
                    }
                }
                else
                {
                    return(Json("Saldo insuficiente."));
                }
            }
            catch (Exception e)
            {
                return(Json(e));
            }
        }
コード例 #3
0
        public ActionResult Inserir(CreditoViewModel creditoViewModel)
        {
            try
            {
                creditoViewModel.Taxa = decimal.Parse(creditoViewModel.TaxaString, CultureInfo.GetCultureInfo("pt-BR"));

                var naturezas = GetNaturezas();
                var empresas  = GetEmpresas();

                ViewBag.Naturezas = new SelectList(naturezas.Select(n => n.Nome));
                ViewBag.Empresas  = new SelectList(empresas.Select(e => e.Nome));

                if (!string.IsNullOrEmpty(creditoViewModel.Empresa) &&
                    !string.IsNullOrEmpty(creditoViewModel.Natureza))
                {
                    var empresa = empresas.FirstOrDefault(e => e.Nome.Equals(creditoViewModel.Empresa));

                    creditoViewModel.EmpresaId  = empresa?.Id;
                    creditoViewModel.NaturezaId = naturezas.FirstOrDefault(e => e.Nome.Equals(creditoViewModel.Natureza))?.ID;

                    FinanceiroHelper.InserirSaldo(decimal.Parse(creditoViewModel.Valor, CultureInfo.GetCultureInfo("pt-BR")), "52",
                                                  creditoViewModel.EmpresaId.ToString(), (int)creditoViewModel.NaturezaId, 1,
                                                  creditoViewModel.Descricao, PixCoreValues.UsuarioLogado, empresa?.Email);

                    if (creditoViewModel.Taxa > 0)
                    {
                        var taxa  = creditoViewModel.Taxa / 100;
                        var valor = decimal.Parse(creditoViewModel.Valor, CultureInfo.GetCultureInfo("pt-BR")) * taxa;

                        FinanceiroHelper.LancaTransacoes(valor * -1, creditoViewModel.EmpresaId.ToString(),
                                                         3, creditoViewModel.EmpresaId.ToString(), 3, 8, 1, "Pagamento de taxa.", PixCoreValues.UsuarioLogado);

                        FinanceiroHelper.LancaTransacoes(valor, creditoViewModel.EmpresaId.ToString(),
                                                         3, "53", 2, 8, 1, "Pagamento de taxa.", PixCoreValues.UsuarioLogado);
                    }

                    ModelState.Clear();
                    TempData["Message"] = "Créditos inseridos com sucesso";
                    return(View("Index"));
                }

                TempData["Message"] = "Preencha todos os campos.";
                return(View("Index"));
            }
            catch (Exception e)
            {
                TempData["Message"] = "Não foi possível lançar os créditos.";
                return(View("Index"));
            }
        }
コード例 #4
0
        private void GeraMultasPorCancelamento(LoginViewModel usuario, OportunidadeViewModel op, object resut)
        {
            var profissionais = GetProfissionaisQueFizeramCheckIn(op.ID);

            foreach (var item in profissionais)
            {
                if (Convert.ToBoolean(resut))
                {
                    var horas = op.DataCriacao - DateTime.UtcNow;
                    if (horas.TotalHours <= 12)
                    {
                        FinanceiroHelper.LancaTransacoes((op.Valor * -1), usuario.idEmpresa.ToString(), 3, usuario.idEmpresa.ToString(), 3, 10, 2,
                                                         $"Pagamento de multa por cancelamento da oportunidade: { op.ID } - { op.Nome }", usuario, op.ID, Status.Aprovado);

                        FinanceiroHelper.LancaTransacoes(op.Valor, usuario.idEmpresa.ToString(), 3, item.Id.ToString(), 1, 10, 2,
                                                         $"Pagamento de multa por cancelamento da oportunidade: { op.ID } - { op.Nome }", usuario, op.ID, Status.Aprovado);
                    }
                    else if (horas.TotalHours > 12 && horas.TotalHours <= 36)
                    {
                        var valor = op.Valor / 2;
                        FinanceiroHelper.LancaTransacoes((valor * -1), usuario.idEmpresa.ToString(), 3, usuario.idEmpresa.ToString(), 3, 10, 2,
                                                         $"Pagamento de multa por cancelamento da oportunidade: { op.ID } - { op.Nome }", usuario, op.ID, Status.Aprovado);

                        FinanceiroHelper.LancaTransacoes(op.Valor, usuario.idEmpresa.ToString(), 3, item.Id.ToString(), 1, 10, 2,
                                                         $"Pagamento de multa por cancelamento da oportunidade: { op.ID } - { op.Nome }", usuario, op.ID, Status.Aprovado);
                    }
                    else if (horas.TotalHours > 36 && horas.TotalHours <= 72)
                    {
                        var valor = op.Valor / 5;
                        FinanceiroHelper.LancaTransacoes((valor * -1), usuario.idEmpresa.ToString(), 3, usuario.idEmpresa.ToString(), 3, 10, 2,
                                                         $"Pagamento de multa por cancelamento da oportunidade: { op.ID } - { op.Nome }", usuario, op.ID, Status.Aprovado);

                        FinanceiroHelper.LancaTransacoes(op.Valor, usuario.idEmpresa.ToString(), 3, item.Id.ToString(), 1, 10, 2,
                                                         $"Pagamento de multa por cancelamento da oportunidade: { op.ID } - { op.Nome }", usuario, op.ID, Status.Aprovado);
                    }
                }
            }
        }
コード例 #5
0
 public ActionResult PublicarMaisTarde(VagaViewModel vaga)
 {
     vaga.Numero = Convert.ToInt32(vaga.NumeroString);
     vaga.status = 2;
     if (FinanceiroHelper.VerifcaSaldoCliente(vaga.Valor, PixCoreValues.UsuarioLogado))
     {
         var op = SaveVaga(vaga);
         if (op != null && op.ID > 0)
         {
             FinanceiroHelper.LancaTransacoes(op, PixCoreValues.UsuarioLogado);
             return(RedirectToAction("Gerenciar"));
         }
         else
         {
             return(Json("Desculpe, o sistema encontrou um erro ao efetuar sua solicitação. Entre em contato" +
                         " com nosso suporte técnico."));
         }
     }
     else
     {
         return(Json("Saldo insuficiente."));
     }
 }
コード例 #6
0
        public string Match(UserXOportunidade userXOportunidade)
        {
            try
            {
                var usuario = PixCoreValues.UsuarioLogado;
                var keyUrl  = ConfigurationManager.AppSettings["UrlAPI"].ToString();
                var url     = keyUrl + "/Seguranca/WpOportunidades/CanditarOportunidade/" + usuario.idCliente + "/" + usuario.IdUsuario;

                var pServico = GetProfissionais(new List <int>()
                {
                    userXOportunidade.UserId
                }).SingleOrDefault();
                var user = GetUsers(new List <int>()
                {
                    pServico.Profissional.IdUsuario
                }).SingleOrDefault();
                var op = GetOportunidade(userXOportunidade.OportunidadeId);

                var candidatos       = GetProfissionaisByOpt(userXOportunidade.OportunidadeId);
                var qtdCandAprovados = candidatos.Where(c => c.OportunidadeId.Equals(op.Id) && c.StatusID == 1).Count();

                if (op.Qtd > qtdCandAprovados && userXOportunidade.StatusID != 3)
                {
                    if (!FinanceiroHelper.VerifcaSaldoCliente(op.Valor, PixCoreValues.UsuarioLogado))
                    {
                        return("Saldo insuficiente para a contratação.");
                    }

                    var empresa = GetEmpresa(usuario.idEmpresa);

                    userXOportunidade.NomeContratado   = pServico.Profissional.Nome;
                    userXOportunidade.EmailContratado  = pServico.Profissional.Email;
                    userXOportunidade.EmailContratante = empresa.Email;
                    var envio = new
                    {
                        userXOportunidade,
                    };

                    var helper = new ServiceHelper();
                    var o      = helper.Post <object>(url, envio);

                    if (userXOportunidade.StatusID == 1) //Aprovado
                    {
                        FinanceiroHelper.LancaTransacoes(op.Valor * -1, "52", 3,
                                                         "52", 3, 2, 2, "Pagando contratado.", PixCoreValues.UsuarioLogado, op.Id);

                        FinanceiroHelper.LancaTransacoes(op.Valor, "52", 3,
                                                         pServico.Profissional.IdUsuario.ToString(), 1, 2, 1, "Pagando contratado.", PixCoreValues.UsuarioLogado, op.Id, Status.Bloqueado);
                    }

                    return(JsonConvert.SerializeObject(new ProfissionalViewModel(pServico.Profissional.ID, user.Nome, pServico.Servico.Nome, pServico.Profissional.Telefone.Numero,
                                                                                 pServico.Profissional.Telefone.ID, pServico.Profissional.DataNascimento.ToShortDateString(), pServico.Profissional.Email, pServico.Profissional.IdUsuario, pServico.Profissional.Endereco)
                    {
                        Valor = op.Valor,
                        Avaliacao = pServico.Profissional.Avaliacao,
                    }));
                }

                //Reprovando os demais profissionais
                var profissionais = candidatos.Where(c => c.OportunidadeId.Equals(op.Id) && c.StatusID == 2);
                foreach (var item in profissionais)
                {
                    item.StatusID = 3;

                    var envio = new
                    {
                        userXOportunidade = item,
                    };

                    var helper = new ServiceHelper();
                    var o      = helper.Post <object>(url, envio);
                }


                return("Não é possível aprovar mais profissionais para essa vaga.");
            }
            catch (Exception e)
            {
                return("Não foi possível completar a operação.");
            }
        }