public ActionResult post_to_poyroll(int?id) { try { if (id != null) { var punishment = dbcontext.Discipline_PunishmentTransaction.FirstOrDefault(m => m.ID == id); var stats = dbcontext.status.FirstOrDefault(m => m.ID == punishment.stat_ID); if (stats.statu == check_status.Approved && punishment.Posted_to_payroll == false) { var details = dbcontext.Discipline_PunishmentTransaction_Detail.Where(m => m.Transaction_Number == punishment.Transaction_Number).ToList(); foreach (var item in details) { var ID_pen = int.Parse(item.PenaltyItem_Code); var header_penality = dbcontext.Discipline_PenaltyItem_Header.FirstOrDefault(m => m.ID == ID_pen); if (header_penality.LinkToPayroll == true) { //var salary_items = dbcontext.Discipline_PenaltyItem_Detail.Where(m => m.PenaltyItem_Code == header_penality.ID.ToString()).ToList(); var Header_group_id = int.Parse(header_penality.CodeGroupID); var Salcode_header = dbcontext.SalaryCodeGroup_Header.FirstOrDefault(a => a.ID == Header_group_id); var Salcode = dbcontext.SalaryCodeGroup_Detail.Where(a => a.CodeGroupID == Salcode_header.CodeGroupID).ToList(); foreach (var item2 in Salcode) { ///////salary item var new_Record = new Employee_Payroll_Transactions(); var stru = dbcontext.StructureModels.FirstOrDefault(m => m.All_Models == ChModels.Payroll).Structure_Code; var model_ = dbcontext.Employee_Payroll_Transactions.ToList(); if (model_.Count() == 0) { new_Record.TransactionNumber = stru + "1"; } else { new_Record.TransactionNumber = stru + (model_.LastOrDefault().ID + 1).ToString(); } //============================================================================================ var emp_id = int.Parse(punishment.Employee_Code); var emp = dbcontext.Employee_Profile.FirstOrDefault(a => a.ID == emp_id); new_Record.Employee_Code = emp.Code; var salary_item = dbcontext.salary_code.FirstOrDefault(a => a.SalaryCodeID == item2.SalaryCodeID); new_Record.SalaryCodeID = item2.SalaryCodeID; //============================================================================================== new_Record.TransactionDate = punishment.Transaction_Date; string Transaction = punishment.Transaction_Date.ToString(); new_Record.TransactionMonth = DateTime.Parse(Transaction).Month; new_Record.TransactionYear = DateTime.Parse(Transaction).Year; new_Record.EffectiveDate = punishment.Event_Date; string Effective = punishment.Event_Date.ToString(); new_Record.EffectiveMonth = DateTime.Parse(Effective).Month; new_Record.EffectiveYear = DateTime.Parse(Effective).Year; new_Record.TransactionValue = (double?)item2.DefaultValue; ///// new_Record.JournalName_BatchCode = model.Employee_Payroll_Transactions.JournalName_BatchCode; new_Record.CreatedDate = DateTime.Now.Date; new_Record.CreatedBy = User.Identity.Name; new_Record.SourceDocumentType = Payment_Type_Source_Document.penalites.GetHashCode(); new_Record.SourceDocumentRefrence = punishment.Transaction_Number; var details_punishment = dbcontext.Discipline_PunishmentTransaction_Detail.FirstOrDefault(m => m.Transaction_Number == punishment.Transaction_Number); new_Record.SourceDocumentDescription = details_punishment.penal_des; new_Record.SourceDocumentNotes = details_punishment.penal_des + '/' + punishment.Transaction_Number; /////new_Record.TransactionNotes = model.Employee_Payroll_Transactions.TransactionNotes; // new_Record.CostCenterCode = emp.CostCenterCode; new_Record.CostCenterCode = "88"; if ((bool)salary_item.EnableExtendedFields) { new_Record.ExtendedFields_Code = salary_item.ExtendedFields_Code; } else { new_Record.ExtendedFields_Code = null; } // new_Record.Contract_Number = model.Employee_Payroll_Transactions.Contract_Number; new_Record.TransactionStatus = check_status.created.GetHashCode(); new_Record.check_status = HR.Models.Infra.check_status.created; new_Record.name_state = nameof(check_status.created); var username = User.Identity.Name; var Date = Convert.ToDateTime("1/1/1900"); var s = new status { statu = HR.Models.Infra.check_status.created, created_by = username, Type = Models.Infra.Type.Employee_Payroll_Transactions, approved_bydate = Date, cancaled_bydate = Date, created_bydate = DateTime.Now.Date, Rejected_bydate = Date, return_to_reviewdate = Date }; var st = dbcontext.status.Add(s); dbcontext.SaveChanges(); new_Record.statID = s.ID; var Header = dbcontext.Employee_Payroll_Transactions.Add(new_Record); dbcontext.SaveChanges(); //============================================================================================= } } } punishment.PostedBy = User.Identity.Name; punishment.PostedDate = DateTime.Now; punishment.Posted_to_payroll = true; dbcontext.SaveChanges(); TempData["Message"] = "post to payroll successfully"; return(RedirectToAction("index")); } else { TempData["Message"] = "post to payroll faild"; return(RedirectToAction("index")); } } else { var punishment = dbcontext.Discipline_PunishmentTransaction.Where(m => m.Posted_to_payroll == false && m.stat.statu == check_status.Approved).ToList(); foreach (var item1 in punishment) { var stats = dbcontext.status.FirstOrDefault(m => m.ID == item1.stat_ID); if (stats.statu == check_status.Approved && item1.Posted_to_payroll == false) { var details = dbcontext.Discipline_PunishmentTransaction_Detail.Where(m => m.Transaction_Number == item1.Transaction_Number).ToList(); foreach (var item in details) { var ID_pen = int.Parse(item.PenaltyItem_Code); var header_penality = dbcontext.Discipline_PenaltyItem_Header.FirstOrDefault(m => m.ID == ID_pen); if (header_penality.LinkToPayroll == true) { var Header_group_id = int.Parse(header_penality.CodeGroupID); var Salcode_header = dbcontext.SalaryCodeGroup_Header.FirstOrDefault(a => a.ID == Header_group_id); var Salcode = dbcontext.SalaryCodeGroup_Detail.Where(a => a.CodeGroupID == Salcode_header.CodeGroupID).ToList(); foreach (var item2 in Salcode) { ///////salary item var new_Record = new Employee_Payroll_Transactions(); var stru = dbcontext.StructureModels.FirstOrDefault(m => m.All_Models == ChModels.Payroll).Structure_Code; var model_ = dbcontext.Employee_Payroll_Transactions.ToList(); if (model_.Count() == 0) { new_Record.TransactionNumber = stru + "1"; } else { new_Record.TransactionNumber = stru + (model_.LastOrDefault().ID + 1).ToString(); } //============================================================================================ var emp_id = int.Parse(item1.Employee_Code); var emp = dbcontext.Employee_Profile.FirstOrDefault(a => a.ID == emp_id); new_Record.Employee_Code = emp.Code; var salary_item = dbcontext.salary_code.FirstOrDefault(a => a.SalaryCodeID == item2.SalaryCodeID); new_Record.SalaryCodeID = item2.SalaryCodeID; //============================================================================================== new_Record.TransactionDate = item1.Transaction_Date; string Transaction = item1.Transaction_Date.ToString(); new_Record.TransactionMonth = DateTime.Parse(Transaction).Month; new_Record.TransactionYear = DateTime.Parse(Transaction).Year; new_Record.EffectiveDate = item1.Event_Date; string Effective = item1.Event_Date.ToString(); new_Record.EffectiveMonth = DateTime.Parse(Effective).Month; new_Record.EffectiveYear = DateTime.Parse(Effective).Year; new_Record.TransactionValue = (double?)item2.DefaultValue; ///// new_Record.JournalName_BatchCode = model.Employee_Payroll_Transactions.JournalName_BatchCode; new_Record.CreatedDate = DateTime.Now.Date; new_Record.CreatedBy = User.Identity.Name; new_Record.SourceDocumentType = Payment_Type_Source_Document.penalites.GetHashCode(); new_Record.SourceDocumentRefrence = item1.Transaction_Number; var details_punishment = dbcontext.Discipline_PunishmentTransaction_Detail.FirstOrDefault(m => m.Transaction_Number == item1.Transaction_Number); new_Record.SourceDocumentDescription = details_punishment.penal_des; new_Record.SourceDocumentNotes = details_punishment.penal_des + '/' + item1.Transaction_Number; /////new_Record.TransactionNotes = model.Employee_Payroll_Transactions.TransactionNotes; // new_Record.CostCenterCode = emp.CostCenterCode; new_Record.CostCenterCode = "88"; if ((bool)salary_item.EnableExtendedFields) { new_Record.ExtendedFields_Code = salary_item.ExtendedFields_Code; } else { new_Record.ExtendedFields_Code = null; } // new_Record.Contract_Number = model.Employee_Payroll_Transactions.Contract_Number; new_Record.TransactionStatus = check_status.created.GetHashCode(); new_Record.check_status = HR.Models.Infra.check_status.created; new_Record.name_state = nameof(check_status.created); var username = User.Identity.Name; var Date = Convert.ToDateTime("1/1/1900"); var s = new status { statu = HR.Models.Infra.check_status.created, created_by = username, Type = Models.Infra.Type.Employee_Payroll_Transactions, approved_bydate = Date, cancaled_bydate = Date, created_bydate = DateTime.Now.Date, Rejected_bydate = Date, return_to_reviewdate = Date }; var st = dbcontext.status.Add(s); dbcontext.SaveChanges(); new_Record.statID = s.ID; var Header = dbcontext.Employee_Payroll_Transactions.Add(new_Record); dbcontext.SaveChanges(); //============================================================================================= } item1.PostedBy = User.Identity.Name; item1.PostedDate = DateTime.Now; item1.Posted_to_payroll = true; dbcontext.SaveChanges(); } } } } TempData["Message"] = "post to payroll successfully"; return(RedirectToAction("index")); } } catch (Exception) { return(RedirectToAction("index")); } }
public ActionResult Create(Employee_Payroll_Transactions model, FormCollection form, string[] joblevelgrade, string[] JoblevelClass, string[] JobClass) { try { var Month = form["Month"].Split(','); var Year = form["Year"].Split(','); var percentage = form["percentage"].Split(','); if (joblevelgrade[0] == "1") { var Joblevelgrade = dbcontext.Job_level_gradee.ToList(); foreach (var item in Joblevelgrade) { int ID = item.ID; var min_basic_salary = item.min_basic_salary; double year = double.Parse(Year[0]); double month = double.Parse(Month[0]); double Percentage = double.Parse(percentage[0]); var Allowance = (min_basic_salary * Percentage) / 100; double newsalary = (Allowance + min_basic_salary); var new_details = new special_allowance_job_level_grade { Job_level_gradeID = ID, Year = year, Month = month, Percentage = Percentage, Allowance_amount = Allowance, pervious_basic = min_basic_salary, new_basic_sallary = newsalary }; dbcontext.special_allowance_job_level_grade.Add(new_details); dbcontext.SaveChanges(); item.min_basic_salary = newsalary; dbcontext.SaveChanges(); } } if (JoblevelClass[0] == "1") { var jobleveclass = dbcontext.Job_level_class.ToList(); foreach (var item in jobleveclass) { int ID = item.ID; var min_basic_salary = item.min_basic_salary; double year = double.Parse(Year[0]); double month = double.Parse(Month[0]); double Percentage = double.Parse(percentage[0]); var Allowance = (min_basic_salary * Percentage) / 100; double newsalary = (Allowance + min_basic_salary); var new_details = new special_allowance_job_level_class { Job_level_classID = ID, Year = year, Month = month, Percentage = Percentage, Allowance_amount = Allowance, pervious_basic = min_basic_salary, new_basic_sallary = newsalary }; dbcontext.special_allowance_job_level_class.Add(new_details); dbcontext.SaveChanges(); item.min_basic_salary = newsalary; dbcontext.SaveChanges(); } } if (JobClass[0] == "1") { var joblevelsetup = dbcontext.job_level_setup.ToList(); foreach (var item in joblevelsetup) { int ID = item.ID; var min_basic_salary = item.min_basic_salary; double year = double.Parse(Year[0]); double month = double.Parse(Month[0]); double Percentage = double.Parse(percentage[0]); var Allowance = (min_basic_salary * Percentage) / 100; double newsalary = (Allowance + min_basic_salary); var new_details = new special { job_level_setupID = ID, Year = year, Month = month, Percentage = Percentage, Allowance_amount = Allowance, pervious_basic = min_basic_salary, new_basic_sallary = newsalary }; dbcontext.special.Add(new_details); dbcontext.SaveChanges(); item.min_basic_salary = newsalary; dbcontext.SaveChanges(); } } return(RedirectToAction("index")); } catch (Exception e) { return(View(model)); } }