public ActionResult Create([Bind(Include = "Cost_Timing_Id,Department_Id,Class_Prog_Id,Entry_Year_Id,Cost_Item_Id,Entry_Period_Type_Id,Payment_Order,Term_Year_Id,Due_Date,Amount,Created_By,Created_Date,Modified_By,Modified_Date")] Fnc_Cost_Timing fnc_Cost_Timing, string SAmount)
        {
            fnc_Cost_Timing.Amount = (int)decimal.Parse(Regex.Replace(SAmount, @"[^\d.]", ""));

            if (ModelState.IsValid)
            {
                db.Fnc_Cost_Timing.Add(fnc_Cost_Timing);
                db.SaveChanges();
                return(RedirectToAction("Index", new { Entry_Year_Id = fnc_Cost_Timing.Entry_Year_Id, Entry_Period_Type_Id = fnc_Cost_Timing.Entry_Period_Type_Id }));
            }

            int             JmlMaxAngsuranDPP = Convert.ToByte(WebConfigurationManager.AppSettings["JmlMaxAngsuranNonDPP"]);
            List <angsuran> payment_order     = new List <angsuran>();

            for (short i = 1; i <= JmlMaxAngsuranDPP; i++)
            {
                payment_order.Add(new angsuran {
                    Stage_Id = i
                });
            }
            ViewBag.PaymentOrders     = payment_order;
            ViewBag.Departments       = db.Mstr_Department.OrderBy(d => d.Department_Id).ToList();
            ViewBag.ClassProgs        = db.Mstr_Class_Program.OrderBy(cp => cp.Class_Prog_Id).ToList();
            ViewBag.Entry_Year        = db.Mstr_Entry_Year.Where(ey => ey.Entry_Year_Id == fnc_Cost_Timing.Entry_Year_Id).First();
            ViewBag.Entry_Period_Type = db.Mstr_Entry_Period_Type.Where(ept => ept.Entry_Period_Type_Id == fnc_Cost_Timing.Entry_Period_Type_Id).First();
            ViewBag.Term_Year_Id      = new SelectList(db.Mstr_Term_Year.OrderByDescending(ty => ty.Term_Year_Id), "Term_Year_Id", "Term_Year_Name");

            return(View(fnc_Cost_Timing));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Fnc_Cost_Timing        fnc_Cost_Timing        = db.Fnc_Cost_Timing.Find(id);
            Mstr_Entry_Period_Type mstr_Entry_Period_Type = db.Mstr_Entry_Period_Type.Where(ept => ept.Entry_Period_Type_Id == fnc_Cost_Timing.Entry_Period_Type_Id).First();

            db.Fnc_Cost_Timing.Remove(fnc_Cost_Timing);
            db.SaveChanges();
            return(RedirectToAction("Index", new { Entry_Year_Id = fnc_Cost_Timing.Entry_Year_Id, Entry_Period_Type_Id = mstr_Entry_Period_Type.Entry_Period_Type_Id }));
        }
        public ActionResult Edit([Bind(Include = "Cost_Timing_Id,Department_Id,Class_Prog_Id,Entry_Year_Id,Cost_Item_Id,Entry_Period_Type_Id,Payment_Order,Term_Year_Id,Due_Date,Amount,Created_By,Created_Date,Modified_By,Modified_Date")] Fnc_Cost_Timing fnc_Cost_Timing, string SAmount)
        {
            fnc_Cost_Timing.Amount = (int)decimal.Parse(Regex.Replace(SAmount, @"[^\d.]", ""));

            if (ModelState.IsValid)
            {
                db.Entry(fnc_Cost_Timing).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index", new { Entry_Year_Id = fnc_Cost_Timing.Entry_Year_Id, Entry_Period_Type_Id = fnc_Cost_Timing.Entry_Period_Type_Id }));
            }

            return(View(fnc_Cost_Timing));
        }
        // GET: CostRegDPP/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Fnc_Cost_Timing fnc_Cost_Timing = db.Fnc_Cost_Timing.Find(id);

            if (fnc_Cost_Timing == null)
            {
                return(HttpNotFound());
            }
            return(View(fnc_Cost_Timing));
        }
        // GET: CostRegDPP/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Fnc_Cost_Timing fnc_Cost_Timing = db.Fnc_Cost_Timing.Find(id);

            if (fnc_Cost_Timing == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Term_Year_Id = new SelectList(db.Mstr_Term_Year.OrderByDescending(ty => ty.Term_Year_Id), "Term_Year_Id", "Term_Year_Name", fnc_Cost_Timing.Term_Year_Id);

            return(View(fnc_Cost_Timing));
        }
        public ActionResult CopyData(short Entry_Year_Id, short Entry_Period_Type_Id, short EntryYearId, short EntryPeriodTypeId)
        {
            //Sumber Data untuk diCopy
            var dataSource = db.Fnc_Cost_Timing.Where(ct => ct.Entry_Year_Id == Entry_Year_Id && ct.Entry_Period_Type_Id == Entry_Period_Type_Id).ToList();

            if (dataSource.Count() != 0)
            {
                //Delete Data Lama
                db.Fnc_Cost_Timing.Where(cr => cr.Entry_Year_Id == EntryYearId && cr.Entry_Period_Type_Id == EntryPeriodTypeId).Delete();

                foreach (var item in dataSource)
                {
                    Fnc_Cost_Timing objNew = new Fnc_Cost_Timing();
                    objNew.Department_Id        = item.Department_Id;
                    objNew.Class_Prog_Id        = item.Class_Prog_Id;
                    objNew.Entry_Year_Id        = EntryYearId;
                    objNew.Cost_Item_Id         = item.Cost_Item_Id;
                    objNew.Entry_Period_Type_Id = EntryPeriodTypeId;
                    objNew.Payment_Order        = item.Payment_Order;
                    objNew.Term_Year_Id         = item.Term_Year_Id;
                    objNew.Due_Date             = item.Due_Date;
                    objNew.Amount = item.Amount;

                    //Insert New Data
                    db.Fnc_Cost_Timing.Add(objNew);
                }
                db.SaveChanges();
            }
            else
            {
                TempData["shortMessage"] = "Sumber Data yang Anda pilih untuk diCopy, Kosong!";
                return(RedirectToAction("CopyData", new { Entry_Year_Id = EntryYearId, Entry_Period_Type_Id = EntryPeriodTypeId }));
            }

            return(RedirectToAction("Index", new { Entry_Year_Id = EntryYearId, Entry_Period_Type_Id = EntryPeriodTypeId }));
        }