public async Task <ActionResult> Edit(CollectionTmp collectionTmp)
        {
            var disbusedLoan = db.DisbursedLoans.Where(d => d.DisbursedLoanId == collectionTmp.DisbursedLoanId).FirstOrDefault();

            var view = new CollectionTmp
            {
                CollectionId    = collectionTmp.CollectionId,
                CompanyId       = collectionTmp.CompanyId,
                WarehouseId     = collectionTmp.WarehouseId,
                DisbursedLoanId = collectionTmp.DisbursedLoanId,
                UserName        = User.Identity.Name,
                LoanStateId     = collectionTmp.LoanStateId,
                CollectionDate  = collectionTmp.CollectionDate,
                Payment         = collectionTmp.Payment,
                CurrentBalance  = disbusedLoan.Balance - collectionTmp.Payment,
            };


            if (ModelState.IsValid)
            {
                db.Entry(view).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }


            return(View(collectionTmp));
        }
        //TODO esto esta pendiente
        public async Task <ActionResult> DetailsCollection(int?id)
        {
            CollectionTmp collectionTmp = await db.CollectionTmps.FindAsync(id);

            var detail = db.Collections.Where(d => d.DisbursedLoanId == collectionTmp.DisbursedLoanId).ToList();

            ViewBag.Details = detail;
            return(View());
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            CollectionTmp collectionTmp = await db.CollectionTmps.FindAsync(id);

            db.CollectionTmps.Remove(collectionTmp);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        // GET: CollectionTmps/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CollectionTmp collectionTmp = await db.CollectionTmps.FindAsync(id);

            if (collectionTmp == null)
            {
                return(HttpNotFound());
            }
            return(View(collectionTmp));
        }
        // GET: CollectionTmps/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CollectionTmp collectionTmp = await db.CollectionTmps.FindAsync(id);

            var detail = db.Collections.Where(d => d.DisbursedLoanId == collectionTmp.DisbursedLoanId).ToList();

            ViewBag.Details = detail;
            if (collectionTmp == null)
            {
                return(HttpNotFound());
            }
            return(PartialView(collectionTmp));
        }
        public ActionResult Create(CollectionTmp collectionTmp)
        {
            var response       = MovementsHelper.NewCollection(User.Identity.Name);
            var responseUpdate = MovementsHelper.UpdateInventories(User.Identity.Name);

            // var errors = ModelState.Where(x => x.Value.Errors.Count > 0)
            //.Select(x => new { x.Key, x.Value.Errors })
            //.ToArray();

            if (ModelState.IsValid)
            {
                //db.CollectionTmps.Add(collectionTmp);
                //await db.SaveChangesAsync();
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }
示例#7
0
        public static Response NewCollectionTmp(OpenDay view, string userName)
        {
            using (var transacction = db.Database.BeginTransaction())
            {
                try
                {
                    var user           = db.Users.Where(u => u.UserName == userName).FirstOrDefault();
                    var mainWareHouses = db.MainWarehouses.Where(w => w.CompanyId == user.CompanyId).ToList();
                    var wareHouses     = db.Warehouses.Where(w => w.CompanyId == view.CompanyId).ToList();

                    var disbursedLoans = db.DisbursedLoans.Where(wH => wH.CompanyId == view.CompanyId).Where(cA => cA.StateId == 2).ToList();

                    //var lastOpenDay = db.OpenDays.Where(od => od.CompanyId == view.CompanyId).Where(of => of.OnOff == true).FirstOrDefault();
                    //lastOpenDay.OnOff = false;
                    //db.Entry(lastOpenDay).State = EntityState.Modified;

                    var openDay = new OpenDay
                    {
                        OpenDate  = DateTime.Today,
                        CompanyId = user.CompanyId,
                        UserName  = user.UserName,
                        OnOff     = true,
                    };
                    db.OpenDays.Add(openDay);
                    db.SaveChanges();

                    foreach (MainWarehouse mainWarehouse in mainWareHouses)
                    {
                        var mainInventory = new MainInventory
                        {
                            MainWarehouseId       = mainWarehouse.MainWarehouseId,
                            CompanyId             = view.CompanyId,
                            Date                  = openDay.OpenDate,
                            Collection            = 0,
                            Pettycash             = 0,
                            Administrativeexpense = 0,
                            Subtotal              = 0,
                            Renewedcredit         = 0,
                            Total                 = 0,
                            WareHouseInitialLoan  = 0,
                            WareHouseTotalLoan    = 0,
                            WareHouseTotalBalance = 0,
                        };
                        db.MainInventories.Add(mainInventory);
                    }

                    foreach (Warehouse warehouse in wareHouses)
                    {
                        var inventory = new Inventory
                        {
                            WarehouseId           = warehouse.WarehouseId,
                            CompanyId             = view.CompanyId,
                            Date                  = openDay.OpenDate,
                            Collection            = 0,
                            Pettycash             = 0,
                            Administrativeexpense = 0,
                            Subtotal              = 0,
                            Renewedcredit         = 0,
                            Total                 = 0,
                            InitialLoan           = 0,
                            TotalLoan             = 0,
                            TotalBalance          = 0,
                        };
                        db.Inventories.Add(inventory);
                    }

                    foreach (DisbursedLoan detailDL in disbursedLoans)
                    {
                        var collectionTmp = new CollectionTmp
                        {
                            CompanyId       = detailDL.CompanyId,
                            WarehouseId     = detailDL.WarehouseId,
                            DisbursedLoanId = detailDL.DisbursedLoanId,
                            UserName        = userName,
                            LoanState       = detailDL.LoanState,
                            CollectionDate  = openDay.OpenDate,
                            Payment         = 0,
                            CurrentBalance  = detailDL.Balance,
                        };
                        db.CollectionTmps.Add(collectionTmp);
                    }

                    db.SaveChanges();

                    transacction.Commit();
                    return(new Response {
                        Succeeded = true,
                    });
                }
                catch (Exception ex)
                {
                    transacction.Rollback();
                    return(new Response
                    {
                        Message = ex.Message,
                        Succeeded = false,
                    });
                }
            }
        }