Ejemplo n.º 1
0
        public IActionResult Withdraw()
        {
            var user = HttpContext.Session.GetObjectFromJson <User>("User");

            if (user != null)
            {
                ViewData["Saldo"] = user.AccountBalance;
                var bills      = HttpContext.Session.GetObjectFromJson <CaixaModel>("Notas");
                var caixaModel = new CaixaModel
                {
                    N100 = bills.N100,
                    N50  = bills.N50,
                    N20  = bills.N20,
                    N10  = bills.N10,
                    N5   = bills.N5,
                    N2   = bills.N2,
                    User = user
                };
                return(View(caixaModel));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 2
0
        protected void btnFiltrar_Click(object sender, EventArgs e)
        {
            CaixaModel oCaixa = new CaixaModel();

            oCaixa.Data    = DateTime.Parse(cmbMes.SelectedValue);
            oCaixa.DataFim = DateTime.Parse(cmbMes.SelectedValue).AddMonths(1);

            List <CaixaModel> oList = new List <CaixaModel>();

            oList = new CaixaNegocios().Listar(oCaixa);

            decimal R_Venda       = 0;
            decimal R_Atendimento = 0;
            decimal D_Compra      = 0;
            decimal D_Atendimento = 0;
            decimal D_Funcionario = 0;

            foreach (CaixaModel c in oList)
            {
                switch (c.Origem)
                {
                case 1:
                    R_Venda += (decimal)c.Valor;
                    break;

                case 2:
                    R_Atendimento += (decimal)c.Valor;
                    break;

                case 3:
                    D_Compra += (decimal)c.Valor;
                    break;

                case 4:
                    D_Atendimento += (decimal)c.Valor;
                    break;

                case 5:
                    D_Funcionario += (decimal)c.Valor;
                    break;
                }
            }

            ReceitaVendas.Text       = R_Venda.ToString("0.00");
            ReceitaAtendimentos.Text = R_Atendimento.ToString("0.00");
            DespesaCompras.Text      = D_Compra.ToString("0.00");
            DespesaAtendimentos.Text = D_Atendimento.ToString("0.00");
            DespesaSalarios.Text     = D_Funcionario.ToString("0.00");

            if (oList.Count > 0)
            {
                Rpt.DataSource = oList;
                Rpt.DataBind();
            }
        }
Ejemplo n.º 3
0
        public IHttpActionResult SalvaCaixa(CaixaModel model)
        {
            var retorno = _fluxoCaixaService.SalvaCaixa(model);

            if (!retorno.Status)
            {
                return(new InvalidListMessageResult(retorno.Message));
            }

            return(Ok(retorno));
        }
Ejemplo n.º 4
0
        public IActionResult Index(string login, string psw)
        {
            var findUser = repo.FindUser(login);

            if (findUser == null)
            {
                @ViewData["LoginError"] = "Usuário não encontrado";
                return(View());
            }
            else if (findUser.Login == login && findUser.Password == psw)
            {
                var resultN    = Caixa.GeraNotas();
                var caixaModel = new CaixaModel
                {
                    N100 = resultN.Item1,
                    N50  = resultN.Item2,
                    N20  = resultN.Item3,
                    N10  = resultN.Item4,
                    N5   = resultN.Item5,
                    N2   = resultN.Item6
                };
                HttpContext.Session.SetObjectAsJson("Notas", caixaModel);

                var log = new LogModel
                {
                    UserId  = findUser.Id,
                    Details = "Usuário acessou o sistema",
                    Date    = DateTime.Now
                };
                repo.SaveLog(log);

                var user = new User
                {
                    AccountBalance = findUser.AccountBalance,
                    Id             = findUser.Id,
                    Login          = findUser.Login,
                    Password       = findUser.Password
                };
                caixaModel.User = user;
                HttpContext.Session.SetObjectAsJson("User", user);

                return(Redirect("Home/Options"));
            }
            else
            {
                ViewData["LoginError"] = "Senha incorreta";
                return(View());
            }
        }
Ejemplo n.º 5
0
        public IActionResult Deposit()
        {
            var bills = HttpContext.Session.GetObjectFromJson <CaixaModel>("Notas");
            var user  = HttpContext.Session.GetObjectFromJson <User>("User");

            if (user != null)
            {
                ViewData["Saldo"] = user.AccountBalance;
                var caixaModel = new CaixaModel();
                return(View(caixaModel));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 6
0
        public IActionResult DepositAjax(double value)
        {
            var bills = HttpContext.Session.GetObjectFromJson <CaixaModel>("Notas");
            var user  = HttpContext.Session.GetObjectFromJson <User>("User");

            var result = Caixa.Deposit(value, user.AccountBalance, bills);
            var possib = result.Item2;

            var caixaModel = new CaixaModel
            {
                N100    = result.Item3.Item1,
                N50     = result.Item3.Item2,
                N20     = result.Item3.Item3,
                N10     = result.Item3.Item4,
                N5      = result.Item3.Item5,
                N2      = result.Item3.Item6,
                Deposit = result.Item3.Item7,
                User    = user
            };

            if (Convert.ToString(value) == String.Empty || value <= 0)
            {
                caixaModel.Deposit = "Valor inválido";
                return(Json(caixaModel));
            }

            else if (possib)
            {
                var log = new LogModel
                {
                    UserId  = user.Id,
                    Details = string.Format("Valor depositado R$ {0}", value),
                    Date    = DateTime.Now
                };
                repo.SaveLog(log);
                repo.Update(user.Id, result.Item1);
                user.AccountBalance = result.Item1;
            }

            ViewData["Saldo"] = user.AccountBalance;
            HttpContext.Session.SetObjectAsJson("Notas", caixaModel);
            HttpContext.Session.SetObjectAsJson("User", user);

            return(Json(caixaModel));
        }
Ejemplo n.º 7
0
        public IActionResult WithdrawAjax(double valor)
        {
            var bills = HttpContext.Session.GetObjectFromJson <CaixaModel>("Notas");
            var user  = HttpContext.Session.GetObjectFromJson <User>("User");

            var result = Caixa.CaixaEletronico(valor, bills, user.AccountBalance);

            var caixaModel = new CaixaModel
            {
                N100      = result.Item2.Item1,
                N50       = result.Item2.Item2,
                N20       = result.Item2.Item3,
                N10       = result.Item2.Item4,
                N5        = result.Item2.Item5,
                N2        = result.Item2.Item6,
                Resultado = result.Item2.Item7,
                User      = user
            };

            if (Convert.ToString(valor) == String.Empty || valor <= 0)
            {
                caixaModel.Resultado = "Valor inválido";
                return(Json(caixaModel));
            }
            else
            {
                user.AccountBalance = result.Item1;

                repo.Update(user.Id, user.AccountBalance);

                HttpContext.Session.SetObjectAsJson("Notas", caixaModel);
                HttpContext.Session.SetObjectAsJson("User", user);
                ViewData["Saldo"] = user.AccountBalance;

                var log = new LogModel
                {
                    UserId  = user.Id,
                    Details = string.Format("Valor sacado R$ {0}", valor),
                    Date    = DateTime.Now
                };
                repo.SaveLog(log);

                return(Json(caixaModel));
            }
        }
Ejemplo n.º 8
0
        public static Tuple <double, Tuple <int, int, int, int, int, int, string> > CaixaEletronico(double valor, CaixaModel not, double saldo)
        {
            int n100 = not.N100, n50 = not.N50, n20 = not.N20, n10 = not.N10, n5 = not.N5, n2 = not.N2;

            int n100t = 0, n50t = 0, n20t = 0, n10t = 0, n5t = 0, n2t = 0;

            string notas = "";

            bool suficiente = true;

            int somaNotas = (100 * n100) + (50 * n50) + (20 * n20) + (10 * n10) + (5 * n5) + (2 * n2);

            if (valor > somaNotas)
            {
                suficiente = false;
            }
            else
            {
                while (valor % 5 != 0 && n2 > 0 && saldo > 0)
                {
                    valor  = valor - 2;
                    saldo -= 2;
                    n2t++;
                }
                if (valor % 5 != 0 || saldo - valor < 0)
                {
                    suficiente = false;
                }
                else
                {
                    while (valor > 0)
                    {
                        if (valor % 100 == 0 && n100 > 0 && saldo - 100 >= 0)
                        {
                            saldo -= 100;
                            valor  = valor - 100;
                            n100t++;
                        }
                        else if (valor % 50 == 0 && n50 > 0 && saldo - 50 >= 0)
                        {
                            saldo -= 50;
                            valor  = valor - 50;
                            n50t++;
                        }
                        else if (valor % 20 == 0 && n20 > 0 && saldo - 20 >= 0)
                        {
                            saldo -= 20;
                            valor  = valor - 20;
                            n20t++;
                        }
                        else if (valor % 10 == 0 && n10 > 0 && saldo - 10 >= 0)
                        {
                            saldo -= 10;
                            valor  = valor - 10;
                            n10t++;
                        }
                        else if (valor % 5 == 0 && n5 > 0 && saldo - 5 >= 0)
                        {
                            saldo -= 5;
                            valor  = valor - 5;
                            n5t++;
                        }
                        else if (valor % 2 == 0 && n2 > 0 && saldo - 2 >= 0)
                        {
                            saldo -= 2;
                            valor  = valor - 2;
                            n2t++;
                        }
                        else
                        {
                            suficiente = false;
                            break;
                        }
                    }
                }
            }

            if (suficiente)
            {
                n100 -= n100t; n50 -= n50t; n20 -= n20t; n10 -= n10t; n5 -= n5t; n2 -= n2t;
                notas = "Notas sacadas: Notas 100: " + n100t +
                        " / Notas 50: " + n50t +
                        " / Notas 20: " + n20t +
                        " / Notas 10: " + n10t +
                        " / Notas 5: " + n5t +
                        " / Notas 2: " + n2t;
            }
            else
            {
                notas = "Notas insuficientes :(";
            }

            var ret = new Tuple <int, int, int, int, int, int, string>(n100, n50, n20, n10, n5, n2, notas);

            var retorno = new Tuple <double, Tuple <int, int, int, int, int, int, string> >(saldo, ret);

            return(retorno);
        }
Ejemplo n.º 9
0
        public static Tuple <double, bool, Tuple <int, int, int, int, int, int, string> > Deposit(double value, double balance, CaixaModel bills)
        {
            int n100 = bills.N100, n50 = bills.N50, n20 = bills.N20, n10 = bills.N10, n5 = bills.N5, n2 = bills.N2;
            int n100t = 0, n50t = 0, n20t = 0, n10t = 0, n5t = 0, n2t = 0;

            string depo   = "";
            bool   possib = true;

            if (value % 5 != 0)
            {
                while (value % 5 != 0 && value > 0)
                {
                    value   -= 2;
                    balance += 2;
                    n2t     += 1;
                    if (value < 0)
                    {
                        possib = false;
                        break;
                    }
                }
            }
            if (value - 2 > 0)
            {
                while (value > 0)
                {
                    if (value % 100 == 0)
                    {
                        value   -= 100;
                        balance += 100;
                        n100t   += 1;
                    }
                    else if (value % 50 == 0)
                    {
                        value   -= 50;
                        balance += 50;
                        n50t    += 1;
                    }
                    else if (value % 20 == 0)
                    {
                        value   -= 20;
                        balance += 20;
                        n20t    += 1;
                    }
                    else if (value % 10 == 0)
                    {
                        value   -= 10;
                        balance += 10;
                        n10t    += 1;
                    }
                    else if (value % 5 == 0)
                    {
                        value   -= 5;
                        balance += 5;
                        n5t     += 1;
                    }
                    else if (value % 2 == 0)
                    {
                        value   -= 2;
                        balance += 2;
                        n2t     += 1;
                    }
                    else
                    {
                        possib = false;
                    }
                }
            }

            if (possib)
            {
                n100 += n100t; n50 += n50t; n20 += n20t; n10 += n10t; n5 += n5t; n2 += n2t;
                depo  = "Deposito efetuado com sucesso!";
            }
            else
            {
                depo = "Depósito inválido :(";
            }

            var ret = new Tuple <int, int, int, int, int, int, string>(n100, n50, n20, n10, n5, n2, depo);

            var retorno = new Tuple <double, bool, Tuple <int, int, int, int, int, int, string> >(balance, possib, ret);

            return(retorno);
        }
Ejemplo n.º 10
0
 public Result <bool> SalvaCaixa(CaixaModel model)
 {
     return(AsyncContext.Run(() =>
                             _apiClient.PostWithReturnAsync <CaixaModel, Result <bool> >($"{apiRoute}SalvaCaixa", model)));
 }