//public IActionResult OnPost() //{ // return Content("fds"); //} public async Task <IActionResult> OnPostNewDicValue(DictionaryValue_Dto dicValue, Guid valueTypeId) { dicValue.Id = guidGenerator.Create(); dicValue.ValueType = null; try { DictionaryValueType valueType = dictionaryValueTypeAppService.Repository.WithDetails(x => x.Values).First(x => x.Id == valueTypeId); int curCount = valueType.Values.Count; dicValue.ValueTypeId = valueTypeId; string paddedCode = $"{valueType.ValueTypeCode}{(curCount + 1).ToString().PadLeft(3, '0')}"; int curRetryIndex = 2; while (dictionaryValueAppService.Repository.Any(x => x.Key == paddedCode)) { paddedCode = $"{valueType.ValueTypeCode}{(curCount + curRetryIndex).ToString().PadLeft(3, '0')}"; curRetryIndex++; } dicValue.Key = $"{paddedCode}"; //valueType.Values.Add(ObjectMapper.Map<DictionaryValue_Dto, DictionaryValue>(dicValue)); var value = await dictionaryValueAppService.CreateAsync(dicValue); value.ValueType = ObjectMapper.Map <DictionaryValueType, DictionaryValueType_Dto>(valueType); return(new OkObjectResult(value)); } catch (Exception ex) { return(new StatusCodeResult(500)); } }
private IActionResult GetPayrun(int month, int year) { Payrun_Dto payrun = null; if (year != 0 && month != 0) { payrun = ObjectMapper.Map <Payrun, Payrun_Dto>(PayrunAppService.Repository.WithDetails().SingleOrDefault(x => x.Year == year && x.Month == month)); } List <PayrunDetail_Dto> payrunDetails = payrun == null ? new List <PayrunDetail_Dto>() : payrun.PayrunDetails.ToList(); List <dynamic> dynamicDS = new List <dynamic>(); for (int i = 0; i < payrunDetails.Count; i++) { PayrunDetail_Dto payrunDetail = payrunDetails[i]; dynamic dynamicDSRow = new ExpandoObject(); dynamic employeeDynamic = new ExpandoObject(); dynamicDSRow.employeeId = payrunDetail.EmployeeId; dynamicDSRow.getEmployeeReferenceId = payrunDetail.Employee.GetReferenceId; dynamicDSRow.getEmployeeName = payrunDetail.Employee.Name; dynamicDSRow.getEmployeeDepartmentName = payrunDetail.Employee.Department.Name; dynamicDSRow.getEmployeePositionTitle = payrunDetail.Employee.Position.Title; dynamicDSRow.basicSalary = payrunDetail.BasicSalary; foreach (PayrunAllowanceSummary_Dto allowanceSummary in payrunDetail.PayrunAllowancesSummaries) { DictionaryValue_Dto allowance = allowanceSummary.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); DynamicHelper.AddProperty(dynamicDSRow, $"{camelCaseName}_Value", allowanceSummary.Value); } dynamicDSRow.grossEarnings = payrunDetail.GrossEarnings; dynamicDSRow.gosiValue = payrunDetail.GOSIAmount; dynamicDSRow.loansValue = payrunDetail.Loan; dynamicDSRow.leavesValue = payrunDetail.Leaves; dynamicDSRow.grossDeductions = payrunDetail.GrossDeductions; dynamicDSRow.netAmount = payrunDetail.NetAmount; dynamicDS.Add(dynamicDSRow); } if (payrunDetails == null || payrunDetails.Count == 0) { return(StatusCode(500)); } else { return(new JsonResult(new { dataSource = dynamicDS, isPosted = payrun.IsPosted })); } }
public async Task <IActionResult> OnPostNewAllowance(DictionaryValue_Dto allowance) { try { allowance.TenantId = CurrentUser.TenantId; var added = await DictionaryValuesRepo.InsertAsync(ObjectMapper.Map <DictionaryValue_Dto, DictionaryValue>(allowance)); return(new JsonResult(added)); } catch (Exception ex) { return(StatusCode(500)); } }
public async Task <IActionResult> OnDeleteDicValue(IList <DictionaryValue_Dto> dicValues) { try { for (int i = 0; i < dicValues.Count; i++) { DictionaryValue_Dto value = (DictionaryValue_Dto)dicValues[i]; value.ValueType = null; await dictionaryValueAppService.DeleteAsync(value.Id); } return(new OkResult()); } catch (Exception ex) { return(new StatusCodeResult(500)); } }
public async Task <IActionResult> OnPostDicValue(DictionaryValue_Dto dicValue) { dicValue.ValueType = null; try { var curDicValue = dictionaryValueAppService.Repository.First(x => x.Id == dicValue.Id); curDicValue.Value = dicValue.Value; var value = await dictionaryValueAppService.Repository.UpdateAsync(curDicValue); return(new OkResult()); } catch (Exception ex) { return(new StatusCodeResult(500)); } }
public async Task <IActionResult> OnPostAllowance(DictionaryValue_Dto allowance) { try { var toUpdate = await DictionaryValuesRepo.FindAsync(x => x.Id == allowance.Id); toUpdate.Value = allowance.Value; toUpdate.Dimension_1_Value = allowance.Dimension_1_Value; toUpdate.Dimension_2_Value = allowance.Dimension_2_Value; var updated = await DictionaryValuesRepo.UpdateAsync(toUpdate); return(new JsonResult(updated)); } catch (Exception ex) { return(StatusCode(500)); } }
public IActionResult OnGet(int P1Year, int P1Month, int P2Year, int P2Month, bool isAjax) { bool isOnGet = P1Year != 0 && P2Year != 0; if (!isOnGet) { return(Page()); } try { bool isPeriodValid = true; Payrun_Dto fromPayrun = null; Payrun_Dto toPayrun = null; fromPayrun = ObjectMapper.Map <Payrun, Payrun_Dto>(PayrunAppService.Repository.WithDetails().SingleOrDefault(x => x.Year == P1Year && x.Month == P1Month)); toPayrun = ObjectMapper.Map <Payrun, Payrun_Dto>(PayrunAppService.Repository.WithDetails().SingleOrDefault(x => x.Year == P2Year && x.Month == P2Month)); if (fromPayrun == null || toPayrun == null) { isPeriodValid = false; } if (!isPeriodValid) { return(BadRequest(new { type = "period" })); } List <dynamic> payrunReconSummaryDynamicDS = new List <dynamic>(); if (fromPayrun != null && toPayrun != null) { Allowances = DicValuesRepo.WithDetails(x => x.ValueType).Where(x => x.ValueType.ValueTypeFor == ValueTypeModules.AllowanceType).ToList(); List <PayrunDetail_Dto> fromPDetails = fromPayrun.PayrunDetails.ToList(); List <PayrunDetail_Dto> toPDetails = toPayrun.PayrunDetails.ToList(); List <(PayrunDetail_Dto fromPDetail, PayrunDetail_Dto toPDetail)> payrunReconDetails = new List <(PayrunDetail_Dto fromPDetail, PayrunDetail_Dto toPDetail)>(); var toExplicits = toPDetails.Where(x => !fromPDetails.Any(x1 => x1.EmployeeId == x.EmployeeId)) .Select(x => { return((PayrunDetail_Dto)null, x); }); payrunReconDetails.AddRange(toExplicits); payrunReconDetails.AddRange(fromPDetails.Select(x => { if (toPDetails.Exists(x1 => x1.EmployeeId == x.EmployeeId)) { return(x, toPDetails.Single(x1 => x1.EmployeeId == x.EmployeeId)); } else { return(x, null); } })); for (int i = 0; i < payrunReconDetails.Count; i++) { var reconDetail = payrunReconDetails[i]; PayrunDetail_Dto fromD = reconDetail.fromPDetail; PayrunDetail_Dto toD = reconDetail.toPDetail; dynamic payrunReconEmpDDSRow = new ExpandoObject(); if (fromD != null || toD != null) { bool isFromD = fromD != null; bool isToD = toD != null; bool both = isToD && isFromD; Employee_Dto emp = isFromD ? fromD.Employee : toD.Employee; payrunReconEmpDDSRow.getCompanyName = emp.Department.Company.CompanyName; payrunReconEmpDDSRow.getCompanyAddress = emp.Department.Company.CompanyLocations[0].Location.LocationName; payrunReconEmpDDSRow.getEmployeeReferenceId = emp.GetReferenceId; payrunReconEmpDDSRow.getEmployeeName = emp.Name; payrunReconEmpDDSRow.getEmployeeDepartmentName = emp.Department.Name; payrunReconEmpDDSRow.getEmployeePositionTitle = emp.Position.Title; if (both) { List <(PayrunAllowanceSummary_Dto fromAllowance, PayrunAllowanceSummary_Dto toAllowance)> allowancesReconDetails = new List <(PayrunAllowanceSummary_Dto fromAllowance, PayrunAllowanceSummary_Dto toAllowance)>(); var toAllowancesExplicits = toD.PayrunAllowancesSummaries.Where(x => !fromD.PayrunAllowancesSummaries.Any(x1 => x1.AllowanceTypeId == x.AllowanceTypeId)) .Select(x => { return((PayrunAllowanceSummary_Dto)null, x); }); allowancesReconDetails.AddRange(toAllowancesExplicits); allowancesReconDetails.AddRange(fromD.PayrunAllowancesSummaries.Select(x => { if (toD.PayrunAllowancesSummaries.Any(x1 => x1.AllowanceTypeId == x.AllowanceTypeId)) { return(x, toD.PayrunAllowancesSummaries.First(x1 => x1.AllowanceTypeId == x.AllowanceTypeId)); } else { return(x, null); } })); decimal bsDiffValue = (toD.BasicSalary - fromD.BasicSalary); string bsDiff = bsDiffValue < 0? $"({Math.Abs(bsDiffValue).ToString("N2")})" : bsDiffValue.ToString("N2"); DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"basicSalary", bsDiff); if (bsDiffValue > 0) { payrunReconEmpDDSRow.category = "Increment"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned);; payrunReconEmpDDSRow.category = ""; } else if (bsDiffValue < 0) { payrunReconEmpDDSRow.category = "Deduction"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); payrunReconEmpDDSRow.category = ""; } payrunReconEmpDDSRow.basicSalary = "—"; for (int j = 0; j < allowancesReconDetails.Count; j++) { PayrunAllowanceSummary_Dto fromAllowance = allowancesReconDetails[j].fromAllowance; PayrunAllowanceSummary_Dto toAllowance = allowancesReconDetails[j].toAllowance; bool isFromDAllowance = fromAllowance != null; bool isToDAllowance = toAllowance != null; bool bothAllowance = isFromDAllowance && isToDAllowance; if (bothAllowance) { DictionaryValue_Dto allowance = fromAllowance.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); double difference = (double)(toAllowance.Value - fromAllowance.Value); string difValue = difference >= 0 ? difference.ToString("N2") : $"({Math.Abs(difference).ToString("N2")})"; DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value", difValue); if (difference > 0) { payrunReconEmpDDSRow.category = $"{allowance.Value} Increased"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); DynamicHelper.RemoveProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value"); payrunReconEmpDDSRow.category = ""; } else if (difference < 0) { payrunReconEmpDDSRow.category = $"{allowance.Value} Decreased"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); DynamicHelper.RemoveProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value"); payrunReconEmpDDSRow.category = ""; } } else { if (isFromDAllowance) { DictionaryValue_Dto allowance = fromAllowance.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); double allowanceValue = (double)fromAllowance.Value; string value = $"({allowanceValue.ToString("N2")})"; DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value", value); payrunReconEmpDDSRow.category = $"{allowance.Value} Removed"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); DynamicHelper.RemoveProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value"); payrunReconEmpDDSRow.category = ""; } else if (isToDAllowance) { DictionaryValue_Dto allowance = toAllowance.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); double allowanceValue = (double)toAllowance.Value; string value = allowanceValue >= 0 ? allowanceValue.ToString("N2") : $"({allowanceValue.ToString("N2")})"; DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value", value); payrunReconEmpDDSRow.category = $"{allowance.Value} Added"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); DynamicHelper.RemoveProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value"); payrunReconEmpDDSRow.category = ""; } } } payrunReconEmpDDSRow.grossEarnings = toD.GrossEarnings - fromD.GrossEarnings; decimal gosiDiffValue = (toD.GOSIAmount - fromD.GOSIAmount); payrunReconEmpDDSRow.gosiValue = gosiDiffValue > 0? gosiDiffValue.ToString("N2") : $"({Math.Abs(gosiDiffValue).ToString("N2")})"; if (gosiDiffValue != 0) { payrunReconEmpDDSRow.category = gosiDiffValue > 0? "GOSI Increased" : "GOSI Decreased"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); payrunReconEmpDDSRow.gosiValue = "—"; payrunReconEmpDDSRow.category = ""; } decimal loansDiffValue = (toD.Loan - fromD.Loan); payrunReconEmpDDSRow.loansValue = loansDiffValue > 0? loansDiffValue.ToString("N2") : $"({Math.Abs(loansDiffValue).ToString("N2")})"; if (loansDiffValue != 0) { payrunReconEmpDDSRow.category = loansDiffValue > 0? "Loans Increased" : "Loans Decreased"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); payrunReconEmpDDSRow.gosiValue = "—"; payrunReconEmpDDSRow.category = ""; } decimal leavesDiffValue = (toD.Leaves - fromD.Leaves); payrunReconEmpDDSRow.leavesValue = leavesDiffValue > 0? leavesDiffValue.ToString("N2") : $"({Math.Abs(leavesDiffValue).ToString("N2")})"; if (loansDiffValue != 0) { payrunReconEmpDDSRow.category = leavesDiffValue > 0? "Leaves Increased" : "Leaves Decreased"; var cloned = JsonConvert.DeserializeObject <dynamic>(JsonConvert.SerializeObject(payrunReconEmpDDSRow)); payrunReconSummaryDynamicDS.Add(cloned); payrunReconEmpDDSRow.gosiValue = "—"; payrunReconEmpDDSRow.category = ""; } payrunReconEmpDDSRow.grossDeduction = toD.GrossDeductions - fromD.GrossDeductions; payrunReconEmpDDSRow.netAmount = (payrunReconEmpDDSRow.grossEarnings - payrunReconEmpDDSRow.grossDeduction).ToString("N2"); } else { if (isFromD) { string bs = fromD.BasicSalary.ToString("N2"); DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"basicSalary", bs); var fromAllowances = fromD.PayrunAllowancesSummaries.ToList(); for (int j = 0; j < fromAllowances.Count; j++) { PayrunAllowanceSummary_Dto fromAllowance = fromAllowances[i]; DictionaryValue_Dto allowance = fromAllowance.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); double allowanceValue = (double)fromAllowance.Value; string value = allowanceValue > 0 ? allowanceValue.ToString("N2") : $"({allowanceValue.ToString("N2")})"; DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value", value); } payrunReconEmpDDSRow.grossEarnings = fromD.GrossEarnings; payrunReconEmpDDSRow.gosiValue = fromD.GOSIAmount; payrunReconEmpDDSRow.loansValue = fromD.Loan; payrunReconEmpDDSRow.leavesValue = fromD.Leaves; payrunReconEmpDDSRow.grossDeduction = fromD.GrossDeductions; payrunReconEmpDDSRow.netAmount = (payrunReconEmpDDSRow.grossEarnings - payrunReconEmpDDSRow.grossDeduction).ToString("N2"); payrunReconEmpDDSRow.category = "Left"; payrunReconSummaryDynamicDS.Add(payrunReconEmpDDSRow); payrunReconEmpDDSRow.category = ""; } else if (isToD) { string bs = toD.BasicSalary.ToString("N2"); DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"basicSalary", bs); var toAllowances = toD.PayrunAllowancesSummaries.ToList(); for (int j = 0; j < toAllowances.Count; j++) { PayrunAllowanceSummary_Dto toAllowance = toAllowances[i]; DictionaryValue_Dto allowance = toAllowance.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); double allowanceValue = (double)toAllowance.Value; string value = allowanceValue > 0 ? allowanceValue.ToString("N2") : $"({allowanceValue.ToString("N2")})"; DynamicHelper.AddProperty(payrunReconEmpDDSRow, $"{camelCaseName}_Value", value); } payrunReconEmpDDSRow.grossEarnings = toD.GrossEarnings; payrunReconEmpDDSRow.gosiValue = toD.GOSIAmount; payrunReconEmpDDSRow.loansValue = toD.Loan; payrunReconEmpDDSRow.leavesValue = toD.Leaves; payrunReconEmpDDSRow.grossDeduction = toD.GrossDeductions; payrunReconEmpDDSRow.netAmount = (payrunReconEmpDDSRow.grossEarnings - payrunReconEmpDDSRow.grossDeduction).ToString("N2"); payrunReconEmpDDSRow.category = "New Employee"; payrunReconSummaryDynamicDS.Add(payrunReconEmpDDSRow); payrunReconEmpDDSRow.category = ""; } } } //if(payrunReconEmpDDSRow.netAmount != "0.00") // payrunReconSummaryDynamicDS.Add(payrunReconEmpDDSRow); } if (!isAjax) { ViewData["Payruns_DS"] = JsonSerializer.Serialize(payrunReconSummaryDynamicDS); return(Page()); } else { return(new JsonResult(payrunReconSummaryDynamicDS)); } } else { return(BadRequest(new { type = "payrun" })); } } catch (Exception ex) { return(BadRequest(new { type = "exception" })); } }
public void OnGet() { Allowances = DicValuesRepo.Where(x => x.ValueType.ValueTypeFor == ValueTypeModules.AllowanceType).ToList(); List <Payrun_Dto> payruns = ObjectMapper.Map <List <Payrun>, List <Payrun_Dto> >(PayrunAppService.Repository.WithDetails().ToList()); ViewData["Payruns_DS"] = JsonSerializer.Serialize(payruns); List <dynamic> payrunSummaryDynamicDS = new List <dynamic>(); for (int i = 0; i < payruns.Count; i++) { dynamic payrunSummaryDDSRow = new ExpandoObject(); payrunSummaryDDSRow.id = payruns[i].Id; List <PayrunDetail_Dto> payrunDetails = payruns[i].PayrunDetails.ToList(); payrunSummaryDDSRow.totalEmployees = payrunDetails.Count; payrunSummaryDDSRow.getBasicSalaries = payrunDetails.Sum(x => x.BasicSalary); foreach (PayrunAllowanceSummary_Dto allowanceSummary in payrunDetails[0].PayrunAllowancesSummaries) { DictionaryValue_Dto allowance = allowanceSummary.AllowanceType; string camelCaseName = allowance.Value; camelCaseName = camelCaseName.Replace(" ", ""); camelCaseName = char.ToLowerInvariant(camelCaseName[0]) + camelCaseName.Substring(1); DynamicHelper.AddProperty(payrunSummaryDDSRow, $"{camelCaseName}_Value", payrunDetails.Sum(x => x.PayrunAllowancesSummaries.Sum(x1 => x1.Value))); } payrunSummaryDDSRow.gosiValue = payrunDetails.Sum(x => x.GOSIAmount); payrunSummaryDDSRow.loansValue = payrunDetails.Sum(x => x.Loan); payrunSummaryDDSRow.leavesValue = payrunDetails.Sum(x => x.Leaves); payrunSummaryDDSRow.grossDeductions = payrunDetails.Sum(x => x.GrossDeductions); payrunSummaryDynamicDS.Add(payrunSummaryDDSRow); } SecondaryDetailsGrid = new Grid() { DataSource = payrunSummaryDynamicDS, QueryCellInfo = "QueryCellInfo", QueryString = "id", EditSettings = new Syncfusion.EJ2.Grids.GridEditSettings() { }, AllowExcelExport = true, //AllowGrouping = true, AllowPdfExport = true, HierarchyPrintMode = HierarchyGridPrintMode.All, AllowSelection = true, AllowFiltering = false, AllowSorting = true, AllowMultiSorting = true, AllowResizing = true, GridLines = GridLine.Both, SearchSettings = new GridSearchSettings() { }, //Toolbar = new List<object>() { "ExcelExport", "CsvExport", "Print", "Search",new { text = "Copy", tooltipText = "Copy", prefixIcon = "e-copy", id = "copy" }, new { text = "Copy With Header", tooltipText = "Copy With Header", prefixIcon = "e-copy", id = "copyHeader" } }, Columns = GetSecondaryGridColumns() }; }