//public ActionResult Index()
        //{
        //    List<talabiBharpai> talabis = new List<talabiBharpai>();
        //    var objFiscalYear = db.fisYears.FirstOrDefault(m => m.status == true);
        //    ViewBag.fyId = new SelectList(db.fisYears, "fyId", "nepFy", objFiscalYear.fyId);
        //    return View(talabis);
        //}
        //[HttpPost]
        //public ActionResult Index(FormCollection col)
        //{
        //    int fyId = Convert.ToInt32(col["fyId"]);
        //    int mn = Convert.ToInt32(col["month"]);
        //    string year = getYear(fyId, mn);
        //    ViewBag.fyId = new SelectList(db.fisYears, "fyId", "nepFy", fyId);
        //    var objYearMonth = db.yearMonths.FirstOrDefault(m => (m.fyId == fyId) && (m.monthIndex == mn));
        //    if (objYearMonth == null)
        //    {
        //        ViewBag.ErrorMessage = "No Record Found";
        //        List<talabiBharpai> talabis = new List<talabiBharpai>();
        //        return View(talabis);
        //    }
        //    List<talabiBharpai> talabiBharpais = db.talabiBharpais.Include(m => m.officer).Include(m => m.yearMonth).OrderBy(m=>m.officerId).ToList();
        //    int yearMonthId = db.yearMonths.FirstOrDefault(m => m.fyId == fyId && m.monthIndex == mn).yearMonthId;
        //    var filTalaBhiBharpais = talabiBharpais.Where(m => m.yearMonthId == yearMonthId);
        //    return View(filTalaBhiBharpais.ToList());
        //}
        //public ActionResult Create()
        //{
        //    List<talabiBharpai> talabi = new List<talabiBharpai>();
        //    decimal grade, suruScaleGrade, kaSaKoThap, suruBimaTotal, talabiBhattaTotal, kaSaKoKatti, naLaKos, pariKar, kattiTotal, pauneTotal, saSuKar;
        //    if (db.officers.ToList().Count > 0)
        //    {

        //        var listOfficer = db.officers.Where(m=>m.status=="कार्यरत").OrderBy(m => m.serialNo).ToList();

        //        foreach (officer offr in listOfficer)
        //        {
        //            grade = offr.gradeSankhya * offr.gradeDar;
        //            suruScaleGrade = offr.suruScale+ grade;
        //            kaSaKoThap = 0;
        //            if (offr.jobType == "स्थाई")
        //            {
        //                kaSaKoThap = suruScaleGrade * offr.kaSaKos / 100;
        //            }
        //            suruBimaTotal = suruScaleGrade + offr.bima +kaSaKoThap;
        //            talabiBhattaTotal = suruBimaTotal + offr.mahangiBhatta + offr.jokhimBhatta;
        //            kaSaKoKatti = 2 *  kaSaKoThap ;
        //            naLaKos =offr.naLaKos*(suruScaleGrade)/100;
        //            saSuKar = offr.saSukar;
        //            pariKar = offr.paKar;
        //           // pariKar = CalculatePariKar(talabiBhattaTotal);
        //            kattiTotal =2*kaSaKoThap + pariKar +naLaKos + 2 * offr.bima + saSuKar;
        //            pauneTotal = talabiBhattaTotal - kattiTotal;
        //            talabi.Add(new talabiBharpai { talabiId = 0, officer = offr,pariKar=pariKar, officerId = offr.officerId, suruScaleGrade = suruScaleGrade, kaSaKoThap = kaSaKoThap, suruBimaTotal = suruBimaTotal, talabiBhattaTotal = talabiBhattaTotal, kaSaKoKatti = kaSaKoKatti, sapati = 0, naLaKos = naLaKos, saSuKar = saSuKar, kattiTotal = kattiTotal, pauneTotal = pauneTotal, yearMonthId = 1 ,fyId=1});
        //        }
        //    }
        //    else
        //    {
        //        ViewBag.ErrorMessage = "No Record found";
        //        return RedirectToAction("Create", "officer");
        //    }
        //    var objFiscalYear = db.fisYears.FirstOrDefault(m=>m.status==true);
        //    ViewBag.fyId = new SelectList(db.fisYears,"fyId","nepFy",objFiscalYear.fyId);
        //    return View(talabi);

        //}
        //[HttpPost]
        //public ActionResult Create(List<talabiBharpai> talabi, FormCollection col)
        //{
        //    decimal grade, suruScaleGrade, kaSaKoThap, suruBimaTotal, talabiBhattaTotal, kaSaKoKatti, naLaKos, pariKar, kattiTotal, pauneTotal, saSuKar;
        //    if (ModelState.IsValid)
        //    {
        //        int mn = Convert.ToInt32(col["month"]);
        //        int fyId = Convert.ToInt32(col["fyId"]);
        //        string nepYear = getYear(fyId, mn);
        //        var objYearMonth = new yearMonth();
        //        if (db.yearMonths==null)
        //        {
        //            db.yearMonths.Add(new yearMonth {fyId=fyId,year=nepYear, month = ((month)mn).ToString(),date=col["nepDate"],monthIndex=mn });
        //            db.SaveChanges();
        //            objYearMonth = db.yearMonths.FirstOrDefault(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId)&&(m.date==col["nepDate"]));
        //        }
        //        else
        //        {
        //            var objym = db.yearMonths.FirstOrDefault(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId)&&(m.monthIndex==mn));
        //            if (objym == null)
        //            {
        //                db.yearMonths.Add(new yearMonth { fyId=fyId, year = nepYear, month = ((month)mn).ToString(), date = col["nepDate"] ,monthIndex=mn});
        //                db.SaveChanges();
        //            }

        //            else
        //            {
        //                var query = db.yearMonths.FirstOrDefault(m=>(m.month == ((month)mn).ToString()) && (m.fyId == fyId) && (m.monthIndex == mn));

        //                    query.year = nepYear;
        //                    query.month = ((month)mn).ToString();
        //                    query.monthIndex = mn;
        //                    query.date = col["nepDate"];
        //                db.SaveChanges();
        //            }
        //            objYearMonth = db.yearMonths.ToList().First(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId) && (m.date == col["nepDate"])&&(m.monthIndex==mn));

        //        }
        //        var talabis = db.talabiBharpais.Where(m => (m.yearMonthId == objYearMonth.yearMonthId) && (m.fyId==fyId)).ToList();
        //        foreach (talabiBharpai item in talabis)
        //        {
        //            db.talabiBharpais.Remove(item);
        //            db.SaveChanges();
        //        }
        //        int j = 0;
        //        int yearMonthId = objYearMonth.yearMonthId;
        //        foreach (talabiBharpai tb in talabi)
        //        {
        //            var objOfficer = db.officers.Find(tb.officerId);
        //            grade = objOfficer.gradeSankhya * objOfficer.gradeDar;
        //            suruScaleGrade = objOfficer.suruScale + grade;
        //            kaSaKoThap = tb.kaSaKoThap;
        //            suruBimaTotal = suruScaleGrade + objOfficer.bima + tb.kaSaKoThap;
        //            talabiBhattaTotal = suruBimaTotal + objOfficer.mahangiBhatta + objOfficer.jokhimBhatta;
        //            kaSaKoKatti = 2 *kaSaKoThap;
        //            naLaKos =  tb.naLaKos;
        //            saSuKar = objOfficer.saSukar;
        //            pariKar = tb.pariKar;
        //            kattiTotal = kaSaKoKatti + pariKar +  tb.naLaKos + 2 * objOfficer.bima + saSuKar+tb.sapati;
        //            pauneTotal = talabiBhattaTotal - kattiTotal;

        //            talabiBharpai objTalabi = new talabiBharpai();
        //              objTalabi.officerId = tb.officerId;
        //              objTalabi.suruScaleGrade = suruScaleGrade;
        //              objTalabi.kaSaKoThap = kaSaKoThap;
        //              objTalabi.suruBimaTotal = suruBimaTotal;
        //              objTalabi.talabiBhattaTotal = talabiBhattaTotal;
        //              objTalabi.kaSaKoKatti = kaSaKoKatti;
        //              objTalabi.sapati = tb.sapati;
        //              objTalabi.naLaKos = naLaKos;
        //              objTalabi.pariKar = tb.pariKar;
        //              objTalabi.saSuKar = saSuKar;
        //              objTalabi.kattiTotal = kattiTotal;
        //              objTalabi.pauneTotal = pauneTotal;
        //              objTalabi.yearMonthId = yearMonthId;
        //              objTalabi.fyId = fyId;
        //              db.talabiBharpais.Add(objTalabi);

        //            //db.talabiBharpais.Add(new talabiBharpai {
        //            //    officerId = tb.officerId,
        //            //    suruScaleGrade = tb.suruScaleGrade,
        //            //    kaSaKoThap = tb.kaSaKoThap,
        //            //    suruBimaTotal = tb.suruBimaTotal,
        //            //    talabiBhattaTotal = tb.talabiBhattaTotal,
        //            //    kaSaKoKatti = tb.kaSaKoKatti,
        //            //    sapati = tb.sapati,
        //            //    naLaKos = tb.naLaKos,
        //            //    pariKar = CalculatePariKar(tb.talabiBhattaTotal),
        //            //    saSuKar = tb.saSuKar,
        //            //    kattiTotal = (tb.kattiTotal + tb.sapati+tb.naLaKos),
        //            //    pauneTotal = (tb.pauneTotal - tb.sapati-tb.naLaKos),
        //            //    yearMonthId = yearMonthId ,
        //            //    fyId=fyId
        //            //});
        //            j++;
        //        }
        //        db.SaveChanges();
        //        return RedirectToAction("Index");
        //    }
        //    var objFiscalYear = db.fisYears.FirstOrDefault(m => m.status == true);
        //    ViewBag.fyId = new SelectList(db.fisYears, "fyId", "nepFy", objFiscalYear.fyId);
        //    return View(talabi);
        //}
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            talabiBharpai        objTalabi      = db.talabiBharpais.Find(id);
            List <talabiBharpai> talabibharpais = db.talabiBharpais.Where(m => m.yearMonthId == objTalabi.yearMonthId).ToList();

            if (talabibharpais == null)
            {
                return(HttpNotFound());
            }
            else
            {
                var yearMonth = db.yearMonths.Find(objTalabi.yearMonthId);

                try
                {
                    foreach (var item in talabibharpais)
                    {
                        db.talabiBharpais.Remove(item);
                    }
                    db.yearMonths.Remove(yearMonth);
                    db.SaveChanges();
                    TempData["Message"] = "Record Deleted Successfully.";
                    return(RedirectToAction("Index", "talabiBharpai"));
                }
                catch
                {
                    TempData["ErrorMessage"] = "No Record Deleted.";
                    return(RedirectToAction("Index", "talabiBharpai"));
                }
            }
        }
        public ActionResult Create(List <VMTalabiBharpai> talabi, FormCollection col)
        {
            decimal grade, suruScaleGrade, kaSaKoThap, suruBimaTotal, talabiBhattaTotal, kaSaKoKatti, naLaKos, pariKar, kattiTotal, pauneTotal, saSuKar;

            if (ModelState.IsValid)
            {
                int    mn           = Convert.ToInt32(col["month"]);
                int    fyId         = Convert.ToInt32(col["fyId"]);
                string nepYear      = getYear(fyId, mn);
                var    objYearMonth = new yearMonth();
                if (db.yearMonths == null)
                {
                    db.yearMonths.Add(new yearMonth {
                        fyId = fyId, year = nepYear, month = ((month)mn).ToString(), date = col["nepDate"], monthIndex = mn
                    });
                    db.SaveChanges();
                    objYearMonth = db.yearMonths.FirstOrDefault(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId) && (m.date == col["nepDate"]));
                }
                else
                {
                    var objym = db.yearMonths.FirstOrDefault(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId) && (m.monthIndex == mn));
                    if (objym == null)
                    {
                        db.yearMonths.Add(new yearMonth {
                            fyId = fyId, year = nepYear, month = ((month)mn).ToString(), date = col["nepDate"], monthIndex = mn
                        });
                        db.SaveChanges();
                    }

                    else
                    {
                        var query = db.yearMonths.FirstOrDefault(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId) && (m.monthIndex == mn));

                        query.year       = nepYear;
                        query.month      = ((month)mn).ToString();
                        query.monthIndex = mn;
                        query.date       = col["nepDate"];
                        db.SaveChanges();
                    }
                    objYearMonth = db.yearMonths.ToList().First(m => (m.month == ((month)mn).ToString()) && (m.fyId == fyId) && (m.date == col["nepDate"]) && (m.monthIndex == mn));
                }
                var talabis = db.talabiBharpais.Where(m => (m.yearMonthId == objYearMonth.yearMonthId) && (m.fyId == fyId)).ToList();
                foreach (talabiBharpai item in talabis)
                {
                    db.talabiBharpais.Remove(item);
                    db.SaveChanges();
                }
                int j           = 0;
                int yearMonthId = objYearMonth.yearMonthId;
                foreach (VMTalabiBharpai tb in talabi)
                {
                    var objOfficer = db.officers.Find(tb.officerId);
                    grade             = tb.gradeRakam;                                      // objOfficer.gradeSankhya * objOfficer.gradeDar;
                    suruScaleGrade    = tb.suruScale + tb.gradeRakam;                       // objOfficer.suruScale + grade;
                    kaSaKoThap        = tb.kaSaKoThap;
                    suruBimaTotal     = suruScaleGrade + tb.bima + tb.kaSaKoThap;           // suruScaleGrade + objOfficer.bima + tb.kaSaKoThap;
                    talabiBhattaTotal = suruBimaTotal + tb.mahangiBhatta + tb.jokhimBhatta; // suruBimaTotal + objOfficer.mahangiBhatta + objOfficer.jokhimBhatta;
                    kaSaKoKatti       = 2 * kaSaKoThap;
                    naLaKos           = tb.naLaKos;
                    saSuKar           = tb.saSuKar;                                                             // objOfficer.saSukar;
                    pariKar           = tb.pariKar;
                    kattiTotal        = kaSaKoKatti + pariKar + tb.naLaKos + 2 * tb.bima + saSuKar + tb.sapati; //kaSaKoKatti + pariKar + tb.naLaKos + 2 * objOfficer.bima + saSuKar + tb.sapati;
                    pauneTotal        = talabiBhattaTotal - kattiTotal;

                    talabiBharpai objTalabi = new talabiBharpai();
                    objTalabi.officerId         = tb.officerId;
                    objTalabi.suruScaleGrade    = suruScaleGrade;
                    objTalabi.kaSaKoThap        = kaSaKoThap;
                    objTalabi.suruBimaTotal     = suruBimaTotal;
                    objTalabi.talabiBhattaTotal = talabiBhattaTotal;
                    objTalabi.kaSaKoKatti       = kaSaKoKatti;
                    objTalabi.sapati            = tb.sapati;
                    objTalabi.naLaKos           = naLaKos;
                    objTalabi.pariKar           = tb.pariKar;
                    objTalabi.saSuKar           = saSuKar;
                    objTalabi.kattiTotal        = kattiTotal;
                    objTalabi.pauneTotal        = pauneTotal;
                    objTalabi.yearMonthId       = yearMonthId;
                    objTalabi.fyId          = fyId;
                    objTalabi.suruScale     = tb.suruScale;//Modified
                    objTalabi.gradeRakam    = tb.gradeRakam;
                    objTalabi.bima          = tb.bima;
                    objTalabi.mahangiBhatta = tb.mahangiBhatta;
                    objTalabi.jokhimBhatta  = tb.jokhimBhatta;
                    db.talabiBharpais.Add(objTalabi);

                    //db.talabiBharpais.Add(new talabiBharpai {
                    //    officerId = tb.officerId,
                    //    suruScaleGrade = tb.suruScaleGrade,
                    //    kaSaKoThap = tb.kaSaKoThap,
                    //    suruBimaTotal = tb.suruBimaTotal,
                    //    talabiBhattaTotal = tb.talabiBhattaTotal,
                    //    kaSaKoKatti = tb.kaSaKoKatti,
                    //    sapati = tb.sapati,
                    //    naLaKos = tb.naLaKos,
                    //    pariKar = CalculatePariKar(tb.talabiBhattaTotal),
                    //    saSuKar = tb.saSuKar,
                    //    kattiTotal = (tb.kattiTotal + tb.sapati+tb.naLaKos),
                    //    pauneTotal = (tb.pauneTotal - tb.sapati-tb.naLaKos),
                    //    yearMonthId = yearMonthId ,
                    //    fyId=fyId
                    //});
                    j++;
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            var objFiscalYear = db.fisYears.FirstOrDefault(m => m.status == true);

            ViewBag.fyId = new SelectList(db.fisYears, "fyId", "nepFy", objFiscalYear.fyId);
            return(View(talabi));
        }