Example #1
0
        public async Task <IActionResult> Submit(SubmitSelected model)
        {
            //checked if data have changed
            SettlementTypes CurSettl = _context.SettlementTypes
                                       .Where(c => c.ID.Equals(model.SettlementType))
                                       .SingleOrDefault();

            if (CurSettl == null)
            {
                return(NotFound(HttpStatusCode.NoContent + "\nΣφάλμα\nΔεν έχετε επιλέξει υπαρκτό τύπο διακανονισμού!"));
            }

            if (model.MaxNoOfInstallments == 0 || model.MaxNoOfInstallments > CurSettl.MaxNoInstallments)
            {
                return(NotFound(HttpStatusCode.NoContent + "\nΣφάλμα!\nΟ αριθμός δόσεων δεν συνάδει με αυτόν που προβλέπει ο διακανονισμός !"));
            }

            Settlements NewSettlement = new Settlements();

            NewSettlement.RequestDate      = DateTime.Now;
            NewSettlement.AnswerDate       = DateTime.ParseExact("19000101", "yyyyMMdd", CultureInfo.InvariantCulture);
            NewSettlement.DownPayment      = CurSettl.DownPaymentPercentage;
            NewSettlement.Installments     = model.MaxNoOfInstallments;
            NewSettlement.Interest         = CurSettl.Interest;
            NewSettlement.IsAccepted       = 0;
            NewSettlement.SettlementTypeId = model.SettlementType;
            _context.Settlements.Add(NewSettlement);
            await _context.SaveChangesAsync();

            int NewSettlementId = NewSettlement.ID;

            string[] BillIds;
            BillIds = model.BillsStr.Split(',');


            for (var i = 0; i < BillIds.Length - 1; i++)
            {
                var cols = _context.Bills
                           .Where(w => w.ID == Int32.Parse(BillIds[i]));

                foreach (var b in cols)
                {
                    b.Status       = 2;
                    b.SettlementId = NewSettlementId;
                }
                await _context.SaveChangesAsync();
            }
            return(DDAjaxBack(model));
        }
Example #2
0
        public IActionResult DDAjax2(SubmitSelected model)
        {
            SettlementTypes CurSettl = _context.SettlementTypes
                                       .Where(c => c.ID.Equals(model.SettlementType))
                                       .SingleOrDefault();

            model.Interest = CurSettl.Interest;

            model.DownPayment      = CurSettl.DownPaymentPercentage;
            model.DownPaymentValue = Math.Round(model.TotalAmount * CurSettl.DownPaymentPercentage / 100, 2);
            model.Monthly          = Math.Round(MonthlyInstallments(model.TotalAmount, model.SettlementType, model.MaxNoOfInstallments), 2);
            model.SettlText        = "Βάσει των επιλογών σας ο διακανονισμός προβλέπει προκαταβολή " + model.DownPaymentValue + "€ και " + model.MaxNoOfInstallments + " μηνιαίες δόσεις ποσού " + model.Monthly + "€.";

            return(DDAjaxBack(model));
        }
Example #3
0
        public async Task <JsonResult> DDAjax1(SubmitSelected model)
        {
            var SType = await _context.SettlementTypes
                        .Where(c => c.ID.Equals(model.SettlementType))
                        .SingleOrDefaultAsync();


            List <int> NoInstallments = new List <int>();

            NoInstallments.Add(0);
            for (var m = 3; m <= SType.MaxNoInstallments; m += 3)
            {
                NoInstallments.Add(m);
            }

            return(Json(NoInstallments));
        }
Example #4
0
        public async Task <IActionResult> SubmitSelected(BillSelectionViewModel model)
        {
            var selectedIds = model.getSelectedIds();

            var userid = _userManager.GetUserId(User);
            var user   = GetCurrentUserAsync();

            var applicationDbContext = _context.Bills.Include(b => b.ApplicationUser)
                                       .Include(b => b.PaymentMethods)
                                       .Include(b => b.Settlement)
                                       .Where(b => b.UserId == userid);


            var db = await applicationDbContext.ToListAsync();

            if (db.Count() == 0)
            {
                return(NotFound(HttpStatusCode.NoContent + "\nΣφάλμα\nΔεν έχετε εκκρεμείς λογαριασμούς!</b>"));
            }
            decimal amount       = 0;
            var     selectedBill = from x in db
                                   where selectedIds.Contains(x.ID)
                                   select x;

            if (selectedBill.Count() == 0)
            {
                return(NotFound(HttpStatusCode.NoContent + "\nΣφάλμα\nΔεν έχετε επιλέξει λογαριασμούς!"));
            }


            foreach (var bill in selectedBill)
            {
                amount += bill.Amount;

                System.Diagnostics.Debug.WriteLine(bill.ID + " " + bill.Bill_description + "  " + bill.Amount.ToString());
            }

            model.TotalAmount = amount;
            System.Diagnostics.Debug.WriteLine(model.TotalAmount.ToString());


            var SetTypeDD = _context.SettlementTypes
                            .OrderBy(c => c.Code)
                            .Select(x => new { Id = x.ID, Value = x.Code });
            // .Select(x => new { Id = x.ID, Value = x.Code+ " " +x.Interest+" " +x.MaxNoInstallments });


            List <int> Installments = new List <int>()
            {
            };

            SubmitSelected model2 = new SubmitSelected
            {
                Bills       = selectedBill,
                TotalAmount = model.TotalAmount,
                Interest    = 0,
                IsAccepted  = 0,
                DownPayment = 0
            };

            foreach (var i in selectedIds)
            {
                model2.BillsStr = model2.BillsStr + i + ",";
            }


            model2.SettlementTypes     = new SelectList(SetTypeDD, "Id", "Value");
            model2.Installments        = new SelectList(Installments);
            model2.SettlementTypesEnum = _context.SettlementTypes
                                         .OrderBy(c => c.Code)
                                         .AsEnumerable();

            return(View(model2));
        }
Example #5
0
 private JsonResult DDAjaxBack(SubmitSelected model)
 {
     return(Json(model));
 }