예제 #1
0
        public ActionResult Create(int id)
        {
            KickoffCreateViewModel viewModel = new KickoffCreateViewModel();

            //判斷是否已開案
            Kickoff ki = db.Kickoffs.FirstOrDefault(m => m.ParentID == id);
            if (ki != null)
            {
                return ShowMsgThenRedirect("此單已開案", Url.Action("Index"));
            }

            if (ki == null)
            {
                //撈RDR主表資料、RDR其他資訊(db.RDRMain join CarMaker join RDRInfomation)
                viewModel = (from main in db.RDRMains
                             join car in db.CarMakers on main.CarMakerID equals car.ID
                             join infos in db.RDRInformations on main.ID equals infos.ParentID
                             where main.ID == id
                             select new KickoffCreateViewModel
                             {
                                 rdrMain = main,
                                 rdrInfo = infos,
                                 CarMakerName = car.Name
                             }).SingleOrDefault();

                //撈RDRModule
                viewModel.rdrModuleList = db.RDRModules.Where(p => p.ParentID == id).ToList();
            }
            return View(viewModel);
        }
예제 #2
0
        public ActionResult Create(KickoffCreateViewModel viewModel, FormCollection fc)
        {
            bool IsModuleOK = false;
            bool IsInfoOK = false;
            bool IsKickoffOK = false;
            bool IsKickoffDetailsOK = false;
            int kickoffID=0;

            IsInfoOK = SaveToRDRInformation(viewModel);
            IsModuleOK = SaveToRDRModule(viewModel,fc);

            if (IsInfoOK && IsModuleOK)
            {
                try
                {
                    //儲存 Kickoff
                    Kickoff kick = new Kickoff();

                    kick.KickoffNumber = viewModel.rdrMain.RDRNumber;
                    kick.ParentID = viewModel.rdrMain.ID;
                    kick.KickoffDate = viewModel.kickoff.KickoffDate;
                    kick.IsReliabilityTest = viewModel.kickoff.IsReliabilityTest;
                    kick.IsPPAP = viewModel.kickoff.IsPPAP;
                    kick.IsCustomerDocForm = viewModel.kickoff.IsCustomerDocForm;
                    kick.IsLiteonDocForm = viewModel.kickoff.IsLiteonDocForm;
                    kick.IsLiteonConFirm = viewModel.kickoff.IsLiteonConFirm;
                    kick.IsCustomerConFirm = viewModel.kickoff.IsCustomerConFirm;
                    kick.CreateTime = DateTime.Now;
                    kick.ModifyTime = DateTime.Now;
                    kick.Level = viewModel.kickoff.Level;

                    db.Kickoffs.Add(kick);
                    db.SaveChanges();

                    IsKickoffOK = true;
                    kickoffID = kick.ID;
                }
                catch (Exception ex)
                {
                    IsKickoffOK = false;
                }
            }

            if (IsKickoffOK)
            {
                try
                {
                    //儲存 KickoffDetails
                    string[] AllDesignVerify = fc["DDL_DesignVerify"].Split(',');
                    string[] AllRequireDate = fc["RequireDate"].Split(',');
                    string[] AllQuantity = fc["Quantity"].Split(',');
                    string[] AllDescription = fc["Description"].Split(',');

                    for (int i = 0; i < AllDesignVerify.Length; i++)
                    {
                        KickoffDetail kickDetails = new KickoffDetail();
                        kickDetails.ParentID = kickoffID;
                        kickDetails.CreateTime = DateTime.Now;
                        kickDetails.ModifyTime = DateTime.Now;

                        int designValue = 0;
                        int.TryParse(AllDesignVerify[i], out designValue);
                        kickDetails.Stage = APIS.Tools.EnumMapTool.GetDescription((APIS.Models.EnumDesignVerify)designValue);

                        kickDetails.RequireDate = Convert.ToDateTime(AllRequireDate[i]);

                        int Quantity = 0;
                        int.TryParse(AllQuantity[i], out Quantity);
                        kickDetails.Quantity = Quantity;
                        kickDetails.Description = AllDescription[i];

                        db.KickoffDetails.Add(kickDetails);
                        db.SaveChanges();
                        IsKickoffDetailsOK = true;
                    }

                }
                catch (Exception ex)
                {
                    //Delete Kickoff , 保持資訊一致
                    IsKickoffDetailsOK = false;
                }
            }

            //最後如果全都完成,記得回RDRMain修改 Status=2 (Kickoff)
            if (IsModuleOK && IsInfoOK && IsKickoffOK && IsKickoffDetailsOK)
            {
                return ShowMsgThenRedirect("新增成功", Url.Action("List", "Kickoff", new { id = kickoffID }));
            }

            return View(viewModel);
        }
예제 #3
0
        private bool SaveToRDRModule(KickoffCreateViewModel viewModel, FormCollection fc)
        {
            bool IsSaveOK = false;

            //儲存 RDRModule
            foreach (var item in viewModel.rdrModuleList)
            {
                int idx = viewModel.rdrModuleList.IndexOf(item);

                RDRModule module = db.RDRModules.Where(m => m.ID == item.ID).FirstOrDefault();
                if (module != null)
                {
                    try
                    {
                        module.IsAwarded = Convert.ToBoolean(fc["AwardedOrFail" + idx]); ;
                        module.Price = item.Price;
                        module.Reason = item.Reason;

                        db.Entry(module).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                        IsSaveOK = true;
                    }
                    catch (Exception ex)
                    {
                        IsSaveOK = false;
                    }
                }
                else
                {
                    IsSaveOK = false;
                }

            }
            return IsSaveOK;
        }
예제 #4
0
        private bool SaveToRDRInformation(KickoffCreateViewModel viewModel)
        {
            bool IsSaveOK = false;

            //儲存 RDRInformation
            RDRInformation info = db.RDRInformations.Where(m => m.ID == viewModel.rdrInfo.ID).FirstOrDefault();
            if (info != null)
            {
                try
                {
                    info.IsSpec = viewModel.rdrInfo.IsSpec;
                    info.IsGERBER = viewModel.rdrInfo.IsGERBER;
                    info.IsWireDwg = viewModel.rdrInfo.IsWireDwg;
                    info.IsSample = viewModel.rdrInfo.IsSample;
                    info.IsBOM = viewModel.rdrInfo.IsBOM;
                    info.IsAssemblyDwg = viewModel.rdrInfo.IsAssemblyDwg;
                    info.IsDChart = viewModel.rdrInfo.IsDChart;
                    info.IsCKT = viewModel.rdrInfo.IsCKT;
                    info.Is2D = viewModel.rdrInfo.Is2D;
                    info.IsROHS = viewModel.rdrInfo.IsROHS;
                    info.IsELV = viewModel.rdrInfo.IsELV;
                    info.IsVLS = viewModel.rdrInfo.IsVLS;
                    info.Is3D = viewModel.rdrInfo.Is3D;

                    db.Entry(info).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                    IsSaveOK = true;
                }
                catch (Exception ex)
                {
                    IsSaveOK = false;
                }
            }
            return IsSaveOK;
        }