public ActionResult CopyBudget(FormCollection frm) { DALBudgetEntry dal_BudgetEntry = new DALBudgetEntry(); DALCalendar dal_Calendar = new DALCalendar(); GL_BgdtMaster lst_ExistingBudgetMaster = new GL_BgdtMaster(); GL_BgdtMaster lst_NewBudgetMaster = new GL_BgdtMaster(); string ls_YearPrefix = "", ls_NewMasterId = "", ls_CurrentMasterId = "", ls_NewDetailId = "", ls_ApplicableOn = "", ls_InflateDeflate = ""; Int64 li_ReturnValue = 0, li_ApplicablePercent = 0; decimal ldec_BudgetTotalAmount = 0, ldec_BudgetMonthlyAmount = 0; try { ls_CurrentMasterId = frm["MasterId"]; ls_ApplicableOn = frm["rdo_BudgetActual"]; li_ApplicablePercent = Convert.ToInt32(frm["percentage"]); ls_InflateDeflate = frm["rdo_InflateDeflate"]; // Getting year prefix ls_YearPrefix = dal_Calendar.GetCalendarPrefix_ByCurrentDate(DateTime.Now); if (DALCommon.AutoCodeGeneration("GL_BgdtMaster") == 1) { ls_NewMasterId = DALCommon.GetMaxBudgetMasId(ls_YearPrefix); } // Retrieving existing master and detail records lst_ExistingBudgetMaster = dal_BudgetEntry.GetAllMasterRecords().Where(c => c.BgdtMas_Id.Equals(ls_CurrentMasterId)).SingleOrDefault(); List<GL_BgdtDetail> lst_ExistingBudgetDetail = dal_BudgetEntry.GetAllDetailRecords().Where(c => c.BgdtMas_Id.Equals(ls_CurrentMasterId)).ToList(); // Setting and saving of new budget master record lst_NewBudgetMaster.BgdtMas_Id = ls_NewMasterId; lst_NewBudgetMaster.BgdtMas_Code = ls_NewMasterId; lst_NewBudgetMaster.BgdtMas_Date = DateTime.Now; lst_NewBudgetMaster.BgdtMas_Status = "Pending"; lst_NewBudgetMaster.BgdtType_Id = lst_ExistingBudgetMaster.BgdtType_Id; lst_NewBudgetMaster.Cldr_Id = lst_ExistingBudgetMaster.Cldr_Id; lst_NewBudgetMaster.Loc_Id = lst_ExistingBudgetMaster.Loc_Id; lst_NewBudgetMaster.BgdtMas_Remarks = "Copy of " + lst_ExistingBudgetMaster.BgdtMas_Code + " - " + lst_ExistingBudgetMaster.BgdtMas_Remarks; lst_NewBudgetMaster.BgdtMas_EnteredDate = DateTime.Now; lst_NewBudgetMaster.BgdtMas_EnteredBy = ((SECURITY_User)Session["user"]).User_Title; li_ReturnValue = dal_BudgetEntry.SaveBudgetMaster(lst_NewBudgetMaster); if (li_ReturnValue > 0) { foreach (GL_BgdtDetail detail in lst_ExistingBudgetDetail) { GL_BgdtDetail lst_NewBudgetDetail = new GL_BgdtDetail(); if (DALCommon.AutoCodeGeneration("GL_BgdtDetail") == 1) { ls_NewDetailId = DALCommon.GetMaxBudgetDetId(ls_YearPrefix); } lst_NewBudgetDetail.BgdtDet_Id = ls_NewDetailId; lst_NewBudgetDetail.BgdtMas_Id = ls_NewMasterId; lst_NewBudgetDetail.ChrtAcc_Id = detail.ChrtAcc_Id; ldec_BudgetTotalAmount = 0; if (ls_ApplicableOn == "Budget") { ldec_BudgetTotalAmount = Convert.ToDecimal(detail.BgdtDet_TotalAmount.ToString()); } else { //li_BudgetTotalAmount = 7000; } if (ls_InflateDeflate == "Inflate") { ldec_BudgetTotalAmount = ldec_BudgetTotalAmount + ((ldec_BudgetTotalAmount * li_ApplicablePercent) / 100); } else { ldec_BudgetTotalAmount = ldec_BudgetTotalAmount - ((ldec_BudgetTotalAmount * li_ApplicablePercent) / 100); } ldec_BudgetMonthlyAmount = 0; ldec_BudgetMonthlyAmount = ldec_BudgetTotalAmount / 12; lst_NewBudgetDetail.BgdtDet_TotalAmount = ldec_BudgetTotalAmount; lst_NewBudgetDetail.BgdtDet_Month1 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month2 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month3 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month4 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month5 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month6 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month7 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month8 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month9 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month10 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month11 = ldec_BudgetMonthlyAmount; lst_NewBudgetDetail.BgdtDet_Month12 = ldec_BudgetTotalAmount - (ldec_BudgetMonthlyAmount * 11); lst_NewBudgetDetail.BgdtDet_Remarks = detail.BgdtDet_Remarks; dal_BudgetEntry.SaveBudgetDetail(lst_NewBudgetDetail); } } return RedirectToAction("Index", "BudgetConsole", new { }); } catch (Exception ex) { return null; } }