public ActionResult MissingItemList()
        {
            using (LibraryEntities db = new LibraryEntities())
            {
                try
                {
                    ItemStatusViewModel AccountItemsCheckout = new ItemStatusViewModel();

                    List <Item> ItemList    = db.Items.ToList();
                    List <Item> NewItemList = new List <Item>();

                    foreach (var item in ItemList)
                    {
                        Item listItem   = ItemList.Where(x => x.ItemId == item.ItemId).Last();
                        byte lastStatus = listItem.ItemStatusLogs.Select(f => f.ItemStatusTypeId).Last();
                        if (lastStatus == 3)
                        {
                            NewItemList.Add(listItem);
                        }
                    }
                    AccountItemsCheckout.MissingItemList = NewItemList;
                    AccountItemsCheckout.ItemStatusText  = db.ItemStatusTypes.Where(x => x.ItemStatusTypeId == 3).Select(x => x.ItemStatusName).FirstOrDefault();

                    return(View("MissingItemList", AccountItemsCheckout));
                }
                catch
                {
                    return(null);
                }
            }
        }
        public ActionResult CheckoutItem()
        {
            using (LibraryEntities db = new LibraryEntities())
            {
                try
                {
                    //TODO: get the last item status and not all of the item status
                    ItemStatusViewModel AccountItemsCheckout = new ItemStatusViewModel();
                    List <Item>         ItemList             = db.ItemStatusLogs.Select(f => f.Item).ToList();
                    List <Item>         NewItemList          = new List <Item>();

                    foreach (var item in ItemList)
                    {
                        Item listItem   = ItemList.Where(x => x.ItemId == item.ItemId).Last();
                        byte lastStatus = listItem.ItemStatusLogs.Select(f => f.ItemStatusTypeId).Last();
                        if (lastStatus == 1)
                        {
                            NewItemList.Add(listItem);
                        }
                    }
                    List <Account> AccountList = db.Accounts.Where(x => x.IsLibrarian == false).ToList();
                    AccountItemsCheckout.ItemList    = NewItemList;
                    AccountItemsCheckout.AccountList = AccountList;
                    AccountItemsCheckout.ItemID      = -1;
                    AccountItemsCheckout.AccountID   = -1;
                    return(View(AccountItemsCheckout));
                }
                catch
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
                }
            }
        }
Esempio n. 3
0
        public ItemStatusViewModel GetItemStatusByItemId(int itemId, DateTime date, int fiscalYearId)
        {
            ItemStatusViewModel model = new ItemStatusViewModel();
            string data = reportService.GetRemainingItemDetailByDate(itemId, date, fiscalYearId);
            var    item = itemRepository.GetById(itemId);

            if (item != null)
            {
                model.Id            = item.Id;
                model.Code          = item.Code;
                model.Name          = item.Name;
                model.ItemGroupId   = (int)item.ItemGroupId;
                model.ItemGroupName = item.ItemGroup.Name;
                model.ItemUnitId    = (int)item.ItemUnitId;
                model.UnitName      = item.ItemUnit.Name;
                if (!string.IsNullOrEmpty(data))
                {
                    string[] value = data.Split('-');//zero index :- Remaining Quantity
                    model.InStockQuantity = Convert.ToInt32(value[0]);
                }
            }
            return(model);
        }
        public ActionResult UpdateItemStatus(ItemStatusViewModel itemstatusviewmodel)
        {
            using (LibraryEntities db = new LibraryEntities())
            {
                try
                {
                    if (itemstatusviewmodel.itemStatusTypeID == 2)
                    {
                        var currentStatus = db.ItemStatusLogs
                                            .Where(x => x.ItemId == itemstatusviewmodel.ItemID)
                                            .OrderByDescending(x => x.LogDateTime)
                                            .Select(x => x.ItemStatusTypeId)
                                            .FirstOrDefault();

                        if (currentStatus == 2)
                        {
                            return(null);
                        }
                    }

                    Item           item           = db.Items.Find(itemstatusviewmodel.ItemID);
                    Account        account        = db.Accounts.Find(itemstatusviewmodel.AccountID);
                    ItemStatusType itemStatusType = db.ItemStatusTypes.Find(itemstatusviewmodel.itemStatusTypeID);

                    ItemStatusLog itemStatusLog = new ItemStatusLog
                    {
                        Item             = item,
                        ItemId           = item.ItemId,
                        Account          = account,
                        AccountId        = account.AccountId,
                        ItemStatusTypeId = itemStatusType.ItemStatusTypeId,
                        LogDateTime      = DateTime.Now
                    };
                    if (itemStatusLog.ItemStatusTypeId == 4)
                    {
                        DateTime Now     = DateTime.Now;
                        DateTime Duedate = Now.AddDays(3);
                        itemStatusLog.ReturnItemDueDate = Duedate;
                        db.ItemStatusLogs.Add(itemStatusLog);
                        db.SaveChanges();

                        return(notification.CheckoutSuccess(Duedate));
                    }
                    if (itemStatusLog.ItemStatusTypeId == 2)
                    {
                        DateTime Now      = DateTime.Now;
                        DateTime HoldDate = Now.AddDays(1);
                        itemStatusLog.ReturnItemDueDate = HoldDate;
                        db.ItemStatusLogs.Add(itemStatusLog);
                        db.SaveChanges();

                        return(notification.ReserveItemSuccess(HoldDate));
                    }
                    else
                    {
                        db.ItemStatusLogs.Add(itemStatusLog);
                        db.SaveChanges();

                        return(notification.UpdateItemSuccess());
                    }
                }
                catch
                {
                    return(notification.UpdateItemFailure());
                }
            }
        }
        public ActionResult UpdateItemStatus(int id)
        {
            using (LibraryEntities db = new LibraryEntities())
            {
                if (id == 1)
                {
                    ItemStatusViewModel AccountItemsCheckout = new ItemStatusViewModel();
                    List <Item>         ItemList             = db.ItemStatusLogs.Select(f => f.Item).ToList();
                    List <Item>         NewItemList          = new List <Item>();

                    foreach (var item in ItemList)
                    {
                        Item listItem   = ItemList.Where(x => x.ItemId == item.ItemId).Last();
                        byte lastStatus = listItem.ItemStatusLogs.Select(f => f.ItemStatusTypeId).Last();
                        if (lastStatus != 1)
                        {
                            NewItemList.Add(listItem);
                        }
                    }
                    var activeAccount = (AccountAdapter)System.Web.HttpContext.Current.Session["activeAccount"];
                    AccountItemsCheckout.ItemList  = NewItemList;
                    AccountItemsCheckout.ItemID    = -1;
                    AccountItemsCheckout.AccountID = activeAccount.AccountNumber;
                    return(View("CheckInItem", AccountItemsCheckout));
                }
                if (id == 2)
                {
                    ItemStatusViewModel AccountItemsCheckout = new ItemStatusViewModel();
                    List <Item>         ItemList             = db.ItemStatusLogs.Select(f => f.Item).ToList();
                    List <Item>         NewItemList          = new List <Item>();

                    foreach (var item in ItemList)
                    {
                        Item listItem   = ItemList.Where(x => x.ItemId == item.ItemId).Last();
                        byte lastStatus = listItem.ItemStatusLogs.Select(f => f.ItemStatusTypeId).Last();
                        if (lastStatus == 1)
                        {
                            NewItemList.Add(listItem);
                        }
                    }
                    var activeAccount = (AccountAdapter)System.Web.HttpContext.Current.Session["activeAccount"];
                    AccountItemsCheckout.ItemList  = NewItemList;
                    AccountItemsCheckout.ItemID    = -1;
                    AccountItemsCheckout.AccountID = activeAccount.AccountNumber;
                    return(View("ReserveItem", AccountItemsCheckout));
                }
                if (id == 3)
                {
                    ItemStatusViewModel AccountItemsCheckout = new ItemStatusViewModel();
                    var         activeAccount = (AccountAdapter)System.Web.HttpContext.Current.Session["activeAccount"];
                    List <Item> accountItems  = db.ItemStatusLogs.Where(x => x.AccountId == activeAccount.AccountNumber).Select(f => f.Item).ToList();
                    List <Item> NewItemList   = new List <Item>();

                    foreach (var item in accountItems)
                    {
                        Item listItem   = accountItems.Where(x => x.ItemId == item.ItemId).Last();
                        byte lastStatus = listItem.ItemStatusLogs.Select(f => f.ItemStatusTypeId).Last();
                        if (lastStatus == 4)
                        {
                            NewItemList.Add(listItem);
                        }
                    }
                    AccountItemsCheckout.ItemList  = accountItems;
                    AccountItemsCheckout.ItemID    = -1;
                    AccountItemsCheckout.AccountID = activeAccount.AccountNumber;

                    return(View("MissingItem", AccountItemsCheckout));
                }
                return(View());
            }
        }