Esempio n. 1
0
        public async Task <IActionResult> Create(MaterialCreateViewModel materialViewModel)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            if (ModelState.IsValid)
            {
                AppUser newOwner = null;
                if (appUser.Id.Equals(materialViewModel.OwnerId))
                {
                    newOwner = appUser;
                }
                else
                {
                    AppUser probablyNewOwner = _context.Users.FirstOrDefault(p => p.Id.Equals(materialViewModel.OwnerId));
                    if (probablyNewOwner == null)
                    {
                        ModelState.AddModelError("OwnerId", "Hack attempt!");
                        ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                        return(View(materialViewModel));
                    }

                    if (_context.SickWardenRelations.Any(p => p.Warden.Equals(appUser) && p.Sick.Equals(probablyNewOwner) && p.IsAccepted.Equals(true)))
                    {
                        newOwner = probablyNewOwner;
                    }
                    else
                    {
                        ModelState.AddModelError("OwnerId", "Hack attempt!");
                        ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                        return(View(materialViewModel));
                    }
                }

                Material material = new Material
                {
                    Id            = materialViewModel.Id,
                    Name          = materialViewModel.Name,
                    Comment       = materialViewModel.Comment,
                    Owner         = newOwner,
                    LastPlaceLeft = materialViewModel.LastPlaceLeft,
                    LastUsedDate  = materialViewModel.LastUsedDate,
                    IsMedicine    = materialViewModel.IsMedicine,
                    Amount        = materialViewModel.Amount,
                    MedicineDose  = materialViewModel.MedicineDose,
                    Type          = materialViewModel.Type
                };

                _context.Add(material);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewBag.UserList = MakeAllowedUsersList(appUser, null);
            return(View(materialViewModel));
        }
Esempio n. 2
0
 public ActionResult CreateMaterial(MaterialCreateViewModel model)
 {
     if (ModelState.IsValid)
     {
         IMaterialService materialSvc = new MaterialService();
         materialSvc.CreateMaterial(model.Code, model.LargyCategory, model.SmallCategory, model.Describe, model.Unit, model.Note);
         return(RedirectToAction(nameof(MaterialList)));
     }
     ModelState.AddModelError("", @"您录入的信息有误");
     return(View());
 }
Esempio n. 3
0
        public ActionResult Create(MaterialCreateViewModel data)
        {
            try
            {
                // TODO: Add insert logic here
                //if (ModelState.IsValid)
                //{


                var plantIds = data.PlantId;
                foreach (var plant in plantIds)
                {
                    var model = Mapper.Map <MaterialDto>(data);


                    model.WERKS = plant;
                    if (model.MATERIAL_UOM != null)
                    {
                        foreach (var uom in model.MATERIAL_UOM)
                        {
                            uom.STICKER_CODE = model.STICKER_CODE;
                            uom.WERKS        = model.WERKS;
                            uom.MEINH        = HttpUtility.UrlDecode(uom.MEINH);
                        }
                    }
                    model.CREATED_BY   = CurrentUser.USER_ID;
                    model.CREATED_DATE = DateTime.Now;
                    model.HJE          = data.HjeStr == null ? 0 : Convert.ToDecimal(data.HjeStr);
                    model.TARIFF       = data.TariffStr == null ? 0 :  Convert.ToDecimal(data.TariffStr);


                    var output = _materialBll.Save(model, CurrentUser.USER_ID);
                    if (!output.Success)
                    {
                        AddMessageInfo(output.ErrorMessage, Enums.MessageInfoType.Error);
                    }
                    else
                    {
                        AddMessageInfo(Constans.SubmitMessage.Saved, Enums.MessageInfoType.Success);
                    }
                }
                return(RedirectToAction("Index"));
                //}

                //return RedirectToAction("Create");
            }
            catch (Exception ex)
            {
                InitCreateModel(data);
                return(View(data));
            }
        }
Esempio n. 4
0
        private MaterialCreateViewModel InitCreateModel(MaterialCreateViewModel model)
        {
            model.MainMenu    = _mainMenu;
            model.CurrentMenu = PageInfo;


            model.PlantList         = GlobalFunctions.GetVirtualPlantListMultiSelect();
            model.GoodTypeList      = GlobalFunctions.GetGoodTypeList(_goodTypeBll);
            model.BaseUOM           = GlobalFunctions.GetUomList(_unitOfMeasurementBll);
            model.CurrencyList      = GlobalFunctions.GetCurrencyList();
            model.ConversionUomList = GlobalFunctions.GetConversionUomList();
            return(model);
        }
Esempio n. 5
0
        //
        // GET: /Material/Create
        public ActionResult Create()
        {
            if (CurrentUser.UserRole == Enums.UserRole.Viewer || CurrentUser.UserRole == Enums.UserRole.Controller)
            {
                AddMessageInfo("Operation not allow", Enums.MessageInfoType.Error);
                return(RedirectToAction("Index"));
            }

            var model = new MaterialCreateViewModel();

            InitCreateModel(model);
            return(View(model));
        }
Esempio n. 6
0
        // GET: Materials/Edit/5
        public async Task <IActionResult> Edit(long?id)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            if (id == null)
            {
                return(NotFound());
            }

            var material = await _context.Materials.FindAsync(id);

            if (material == null)
            {
                return(NotFound());
            }

            await _context.Entry(material).Reference(p => p.Owner).LoadAsync();

            if (!material.Owner.Equals(appUser) & !_context.SickWardenRelations.Any(p => p.Warden.Equals(appUser) && p.Sick.Equals(material.Owner) && p.IsAccepted.Equals(true)))
            {
                return(NotFound());
            }

            ViewBag.UserList = MakeAllowedUsersList(appUser, material.Owner.Id);

            MaterialCreateViewModel materialViewModel = new MaterialCreateViewModel
            {
                Id            = material.Id,
                Name          = material.Name,
                Comment       = material.Comment,
                OwnerId       = material.Owner.Id,
                LastPlaceLeft = material.LastPlaceLeft,
                LastUsedDate  = material.LastUsedDate,
                IsMedicine    = material.IsMedicine.GetValueOrDefault(),
                Amount        = material.Amount,
                MedicineDose  = material.MedicineDose,
                Type          = material.Type
            };

            return(View(materialViewModel));
        }
Esempio n. 7
0
        public async Task <IActionResult> Edit(long id, MaterialCreateViewModel materialViewModel)
        {
            AppUser appUser = AuthExtender.GetLoggedInUser(this, _context);

            if (id != materialViewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                Material material = await _context.Materials.FindAsync(id);

                await _context.Entry(material).Reference(p => p.Owner).LoadAsync();

                if (!material.Owner.Equals(appUser) & !_context.SickWardenRelations.Any(p => p.Warden.Equals(appUser) && p.Sick.Equals(material.Owner) && p.IsAccepted.Equals(true)))
                {
                    return(NotFound());
                }

                if (!material.Owner.Id.Equals(materialViewModel.OwnerId))
                {
                    AppUser newOwner = null;
                    if (appUser.Id.Equals(materialViewModel.OwnerId))
                    {
                        newOwner = appUser;
                    }
                    else
                    {
                        AppUser probablyNewOwner = _context.Users.FirstOrDefault(p => p.Id.Equals(materialViewModel.OwnerId));
                        if (probablyNewOwner == null)
                        {
                            ModelState.AddModelError("OwnerId", "Hack attempt!");
                            ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                            return(View(materialViewModel));
                        }

                        if (_context.SickWardenRelations.Any(p => p.Warden.Equals(appUser) && p.Sick.Equals(probablyNewOwner) && p.IsAccepted.Equals(true)))
                        {
                            newOwner = probablyNewOwner;
                        }
                        else
                        {
                            ModelState.AddModelError("OwnerId", "Hack attempt!");
                            ViewBag.UserList = MakeAllowedUsersList(appUser, null);
                            return(View(materialViewModel));
                        }
                    }
                    material.Owner = newOwner;
                }

                material.Name          = materialViewModel.Name;
                material.Comment       = materialViewModel.Comment;
                material.LastUsedDate  = materialViewModel.LastUsedDate;
                material.LastPlaceLeft = materialViewModel.LastPlaceLeft;
                material.IsMedicine    = materialViewModel.IsMedicine;
                material.MedicineDose  = materialViewModel.MedicineDose;
                material.Amount        = materialViewModel.Amount;
                material.Type          = materialViewModel.Type;

                try
                {
                    _context.Update(material);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MaterialExists(material.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewBag.UserList = MakeAllowedUsersList(appUser, materialViewModel.OwnerId);
            return(View(materialViewModel));
        }