Beispiel #1
0
        public ActionResult Index()
        {
            _stores = new Stores();
            AllStores model = new AllStores();

            model.ListOfStores = _stores.GetAllStores();
            return(View(model));
        }
Beispiel #2
0
        /// <summary>
        /// Method for creating new stores and storing them in the database
        /// </summary>
        private async void Create()
        {
            if (CheckTextFields())
            {
                _store = new Store(Name, Address, Phone, SelectedManager.Id, SelectedStock.ID);
                var item = AllStores.SingleOrDefault(s =>
                                                     s.Name == Name && s.Address == Address && s.Phone == Phone && s.ManagerID == SelectedManager.Id && s.StockId == SelectedStock.ID);

                if (item == null)
                {
                    ErrorText = "";
                    Store postedStore = await APIHandler <Store> .PostOne("Stores", _store);
                }

                else
                {
                    ErrorText = "Store already exists";
                }
            }
        }
Beispiel #3
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            Warehouse = await _context.WarehouseStock.AsNoTracking().FirstOrDefaultAsync(m => m.Id == id);

            Supplier = await _context.Suppliers.AsNoTracking().FirstOrDefaultAsync(s => s.Id == Warehouse.SupplierId);

            Stores = _context.Stores.AsNoTracking().Where(s => s.StoreName != "Warehouse").Select(n => new SelectListItem
            {
                Value = n.Store_ID.ToString(),
                Text  = n.StoreName
            }).ToList();
            AllStores       = _context.Stores.AsNoTracking().ToList();
            ApplicationUser = await _userManager.GetUserAsync(User);

            if (await _userManager.IsInRoleAsync(ApplicationUser, "Admin"))
            {
                StockTransfers = _context.StockTransfers.AsNoTracking().Where(t => t.StockId == id && t.Approvals == "True" && t.FromStoreId == (AllStores.FirstOrDefault(s => s.StoreName == "Warehouse").Store_ID)).ToList();
            }
            AppMessage = "";
            Message    = "";

            return(Page());
        }
Beispiel #4
0
        public async Task <IActionResult> OnPostDeclinesAsync(int?id)
        {
            DbContextOptions <ApplicationDbContext> options = new DbContextOptions <ApplicationDbContext>();

            using (var context = new ApplicationDbContext(options))
            {
                Stores = context.Stores.AsNoTracking().Where(s => s.StoreName != "Warehouse").Select(n => new SelectListItem
                {
                    Value = n.Store_ID.ToString(),
                    Text  = n.StoreName
                }).ToList();
                if (await _userManager.IsInRoleAsync(ApplicationUser, "Admin"))
                {
                    StockTransfers = context.StockTransfers.AsNoTracking().Where(t => t.StockId == id && t.Approvals == "True" && t.FromStoreId == (AllStores.FirstOrDefault(s => s.StoreName == "Warehouse").Store_ID)).ToList();
                }
                StockTransfer st = new StockTransfer();
                st = context.StockTransfers.AsNoTracking().FirstOrDefault(t => t.Id == id);
                Store warehouseStore = context.Stores.AsNoTracking().FirstOrDefault(s => s.StoreName == "Warehouse");
                Warehouse       = context.WarehouseStock.AsNoTracking().FirstOrDefault(w => w.Id == st.StockId);
                StockItem       = context.Stock.AsNoTracking().FirstOrDefault(s => s.StockName == Warehouse.StockName);
                Supplier        = context.Suppliers.AsNoTracking().FirstOrDefault(s => s.Id == Warehouse.SupplierId);
                AllStores       = context.Stores.AsNoTracking().ToList();
                ApplicationUser = await _userManager.GetUserAsync(User);

                StockTransfer stockTransfer = new StockTransfer
                {
                    Id             = st.Id,
                    StockId        = st.StockId,
                    FromStoreId    = st.FromStoreId,
                    ToStoreId      = st.ToStoreId,
                    TransferDate   = st.TransferDate,
                    Quantity       = st.Quantity,
                    Approvals      = "False",
                    ApprovalStatus = "Declined",
                    Approver       = ApplicationUser.UserName,
                    DateApproved   = DateTime.Now,
                    Requester      = st.Requester
                };

                context.StockTransfers.Update(StockTransfer);
                try
                {
                    context.SaveChanges();
                    AppMessage = "Declined";
                    Message    = "";
                    List <InternetAddress> toEmailAddresses   = new List <InternetAddress>();
                    List <InternetAddress> fromEmailAddresses = new List <InternetAddress>();
                    MailboxAddress         toAddress          = new MailboxAddress("*****@*****.**");
                    toEmailAddresses.Add(toAddress);
                    MailboxAddress fromAddress = new MailboxAddress("*****@*****.**");
                    fromEmailAddresses.Add(fromAddress);
                    EmailMessage emailMessage = new EmailMessage()
                    {
                        ToAddresses   = toEmailAddresses,
                        FromAddresses = fromEmailAddresses,
                        Subject       = "Stock Approved.",
                        Content       = string.Format("Stock {0} was declined on {1}", Warehouse.StockName, stockTransfer.DateApproved)
                    };
                    _emailSender.SendMail(emailMessage);
                }
                catch (Exception ex)
                {
                }
            }
            return(Page());
        }
Beispiel #5
0
        public async Task <IActionResult> OnPostApprovalsAsync(int?id)
        {
            Stores = _context.Stores.AsNoTracking().Where(s => s.StoreName != "Warehouse").Select(n => new SelectListItem
            {
                Value = n.Store_ID.ToString(),
                Text  = n.StoreName
            }).ToList();
            if (await _userManager.IsInRoleAsync(ApplicationUser, "Admin"))
            {
                StockTransfers = _context.StockTransfers.AsNoTracking().Where(t => t.StockId == id && t.Approvals == "True" && t.FromStoreId == (AllStores.FirstOrDefault(s => s.StoreName == "Warehouse").Store_ID)).ToList();
            }
            Store warehouseStore = await _context.Stores.AsNoTracking().FirstOrDefaultAsync(s => s.StoreName == "Warehouse");

            Supplier = await _context.Suppliers.AsNoTracking().FirstOrDefaultAsync(s => s.Id == Warehouse.SupplierId);

            AllStores       = _context.Stores.AsNoTracking().ToList();
            ApplicationUser = await _userManager.GetUserAsync(User);

            StockTransfer                = _context.StockTransfers.AsNoTracking().FirstOrDefault(st => st.Id == id);
            StockTransfer.Approver       = ApplicationUser.UserName;
            StockTransfer.ApprovalStatus = "Approved";
            StockTransfer.Approvals      = "False";
            StockTransfer.DateApproved   = DateTime.Now;
            await DoTransfers(StockTransfer);

            AppMessage = "Approved";
            Message    = "";
            return(Page());
        }
Beispiel #6
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            Stores = _context.Stores.AsNoTracking().Where(s => s.StoreName != "Warehouse").Select(n => new SelectListItem
            {
                Value = n.Store_ID.ToString(),
                Text  = n.StoreName
            }).ToList();
            Store warehouseStore = await _context.Stores.AsNoTracking().FirstOrDefaultAsync(s => s.StoreName == "Warehouse");

            Warehouse = await _context.WarehouseStock.AsNoTracking().FirstOrDefaultAsync(m => m.Id == id);

            Supplier = await _context.Suppliers.AsNoTracking().FirstOrDefaultAsync(s => s.Id == Warehouse.SupplierId);

            AllStores       = _context.Stores.AsNoTracking().ToList();
            ApplicationUser = await _userManager.GetUserAsync(User);

            if (await _userManager.IsInRoleAsync(ApplicationUser, "Admin"))
            {
                StockTransfers = _context.StockTransfers.AsNoTracking().Where(t => t.StockId == id && t.Approvals == "True" && t.FromStoreId == (AllStores.FirstOrDefault(s => s.StoreName == "Warehouse").Store_ID)).ToList();
            }
            if (!await _userManager.IsInRoleAsync(ApplicationUser, "Admin"))
            {
                StockTransfer stockTransfer = new StockTransfer
                {
                    StockId        = Warehouse.Id,
                    FromStoreId    = warehouseStore.Store_ID,
                    ToStoreId      = Convert.ToInt32(StoreId),
                    TransferDate   = DateTime.Now,
                    Quantity       = AmountToTransfer,
                    Requester      = ApplicationUser.UserName,
                    DateApproved   = DateTime.Now,
                    Approvals      = "True",
                    ApprovalStatus = "Waiting Approval"
                };
                Warehouse.TransferApprovals = "True";
                _context.WarehouseStock.Update(Warehouse);
                _context.SaveChanges();
                AppMessage = "";
                Message    = "Waiting Approvals";
                List <InternetAddress> toEmailAddresses   = new List <InternetAddress>();
                List <InternetAddress> fromEmailAddresses = new List <InternetAddress>();
                MailboxAddress         toAddress          = new MailboxAddress("*****@*****.**");
                toEmailAddresses.Add(toAddress);
                MailboxAddress fromAddress = new MailboxAddress("*****@*****.**");
                fromEmailAddresses.Add(fromAddress);
                EmailMessage emailMessage = new EmailMessage()
                {
                    ToAddresses   = toEmailAddresses,
                    FromAddresses = fromEmailAddresses,
                    Subject       = "Stock Approval Waiting.",
                    Content       = string.Format("Stock {0} is waiting approval since {1}", Warehouse.StockName, stockTransfer.TransferDate)
                };
                _emailSender.SendMail(emailMessage);
            }
            else
            {
                StockTransfer stockTransfer = new StockTransfer
                {
                    StockId        = Warehouse.Id,
                    FromStoreId    = warehouseStore.Store_ID,
                    ToStoreId      = Convert.ToInt32(StoreId),
                    TransferDate   = DateTime.Now,
                    Quantity       = AmountToTransfer,
                    Requester      = ApplicationUser.UserName,
                    Approver       = ApplicationUser.UserName,
                    DateApproved   = DateTime.Now,
                    Approvals      = "False",
                    ApprovalStatus = "Approved"
                };
                await DoTransfers(stockTransfer);

                AppMessage = "";
                Message    = "Approved";
            }

            return(Page());
        }
Beispiel #7
0
 public async Task DeleteStore(int id)
 {
     if (await JS.InvokeAsync <bool>("confirm", "Are you sure you want to mark this store as deleted?"))
     {
         if (await JS.InvokeAsync <bool>("exampleJsFunctions.deleteStoreDisplayNumber", AllStores.Where(x => x.Id == id).FirstOrDefault().StoreNumber))
         {
             await StoreInformationDataService.MarkAsDeleted(id);
         }
     }
     //StateHasChanged();
     NavigationManager.NavigateTo($"/storeinformation", forceLoad: true);
 }
Beispiel #8
0
        protected override async Task OnInitializedAsync()
        {
            AllStores = await StoreInformationDataService.GetAllStores();

            Columns = Helpers.GetPropertyNames(AllStores.FirstOrDefault());
        }