public ActionResult Detail(string id)
        {
            var plant = _plantBll.GetId(id);

            if (plant == null)
            {
                return(HttpNotFound());
            }

            var detail = Mapper.Map <DetailPlantT1001W>(plant);

            var model = new PlantFormModel
            {
                MainMenu     = _mainMenu,
                CurrentMenu  = PageInfo,
                Nppbkc       = new SelectList(_nppbkcBll.GetAll(), "NPPBKC_ID", "NPPBKC_ID", plant.NPPBKC_ID),
                NppbkcImport = new SelectList(_nppbkcBll.GetAll(), "NPPBKC_ID", "NPPBKC_ID", plant.NPPBKC_IMPORT_ID),
                Detail       = detail
            };

            model.Detail.IsNo             = !model.Detail.IsMainPlant;
            model.Detail.IsYes            = model.Detail.IsMainPlant;
            model.Detail.ReceiveMaterials = GetPlantReceiveMaterial(model.Detail);
            model.ChangesHistoryList      =
                Mapper.Map <List <ChangesHistoryItemModel> >(
                    _changesHistoryBll.GetByFormTypeAndFormId(Enums.MenuList.MasterPlant, id));

            return(View(model));
        }
        public ActionResult Edit(string id)
        {
            if (CurrentUser.UserRole == Enums.UserRole.Viewer || CurrentUser.UserRole == Enums.UserRole.Controller)
            {
                return(RedirectToAction("Detail", new { id }));
            }

            var plant = _plantBll.GetId(id);

            //NPPBKC Import for the dropdown dikosongkan default value

            plant.NPPBKC_IMPORT_ID = !string.IsNullOrEmpty(plant.NPPBKC_IMPORT_ID) ? plant.NPPBKC_IMPORT_ID : string.Empty;
            if (plant == null)
            {
                return(HttpNotFound());
            }

            var detail = Mapper.Map <DetailPlantT1001W>(plant);

            var model = new PlantFormModel
            {
                Detail = detail
            };

            return(InitialEdit(model));
        }
        public ActionResult InitialEdit(PlantFormModel model)
        {
            var dataNppbkc = _nppbkcBll.GetAll().Where(x => x.IS_DELETED != true).ToList();

            model.MainMenu         = _mainMenu;
            model.CurrentMenu      = PageInfo;
            model.Nppbkc           = new SelectList(dataNppbkc, "NPPBKC_ID", "NPPBKC_ID", model.Detail.NPPBKC_ID);
            model.NppbkcImport     = new SelectList(dataNppbkc, "NPPBKC_ID", "NPPBKC_ID", model.Detail.NPPBKC_IMPORT_ID);
            model.IsMainPlantExist = IsMainPlantAlreadyExist(model.Detail.NPPBKC_ID, model.Detail.IsMainPlant,
                                                             model.Detail.Werks);
            model.Detail.ReceiveMaterials = GetPlantReceiveMaterial(model.Detail);
            return(View("Edit", model));
        }
        public ActionResult Edit(PlantFormModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors       = ModelState.Values.SelectMany(x => x.Errors);
                var errorMessage = errors.Aggregate("", (current, error) => current + (error.ErrorMessage + "\n"));
                AddMessageInfo(errorMessage, Enums.MessageInfoType.Error);

                return(InitialEdit(model));
            }
            var isAlreadyExistMainPlant = IsMainPlantAlreadyExist(model.Detail.NPPBKC_ID, model.Detail.IsMainPlant,
                                                                  model.Detail.Werks);

            if (isAlreadyExistMainPlant)
            {
                AddMessageInfo("Main Plant Already Set", Enums.MessageInfoType.Warning);
                return(InitialEdit(model));
            }

            if (model.Detail.NPPBKC_ID == model.Detail.NPPBKC_IMPORT_ID)
            {
                AddMessageInfo("NPPBKC domestic cannot be the same as NPPBKC Import", Enums.MessageInfoType.Warning);
                return(InitialEdit(model));
            }
            try
            {
                var receiveMaterial = model.Detail.ReceiveMaterials.Where(c => c.IsChecked).ToList();
                model.Detail.ReceiveMaterials = receiveMaterial;
                var t1001w = Mapper.Map <Plant>(model.Detail);
                if (t1001w.PLANT_RECEIVE_MATERIAL != null)
                {
                    var tempRecieveMaterial = t1001w.PLANT_RECEIVE_MATERIAL;
                    foreach (var rm in tempRecieveMaterial)
                    {
                        rm.ZAIDM_EX_GOODTYP = _goodTypeBll.GetById(rm.EXC_GOOD_TYP);
                    }
                    t1001w.PLANT_RECEIVE_MATERIAL = tempRecieveMaterial;
                }

                _plantBll.save(t1001w, CurrentUser.USER_ID);
                AddMessageInfo(Constans.SubmitMessage.Saved, Enums.MessageInfoType.Success);
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                AddMessageInfo(ex.Message, Enums.MessageInfoType.Error);

                return(InitialEdit(model));
            }
        }