public JsonResult GetStudentPaymentDetails(Models.TransactionViewModel trDetails) { string dueDate = string.Empty; StatusDTO <TransactionMasterDTO> status = _trMaster.Select(trDetails.TransactionMasterId); if (status.IsSuccess) { StatusDTO <StudentDTO> studStatus = _studentSvc.GetStudentTransactionInfo(trDetails.StudentInfoId); TransactionRuleDTO rule = null; List <TransactionRuleDTO> rules = null; string isDiffTo = status.ReturnObj.IsDiffTo.ToUpper(); switch (isDiffTo) { case "NONE": rules = _trRule.GetNoneLevelRules(trDetails.TransactionMasterId); if (rules != null && rules.Count > 0) { rule = rules[0]; } break; case "USER": rules = _trRule.GetUserLevelRules(trDetails.TransactionMasterId, studStatus.ReturnObj.UserDetails.UserMasterId); if (rules != null && rules.Count > 0) { rule = rules[0]; } break; case "STANDARD": rules = _trRule.GetStandardLevelRules(trDetails.TransactionMasterId, studStatus.ReturnObj.StandardSectionMap.Standard.StandardId); if (rules != null && rules.Count > 0) { rule = rules[0]; } break; case "SECTION": rules = _trRule.GetStandardSectionLevelRules(trDetails.TransactionMasterId, studStatus.ReturnObj.StandardSectionMap.Standard.StandardId, studStatus.ReturnObj.StandardSectionMap.Section.SectionId); if (rules != null && rules.Count > 0) { rule = rules[0]; } break; case "CLASS-TYPE": rules = _trRule.GetClassTypeLevelRules(trDetails.TransactionMasterId, studStatus.ReturnObj.StandardSectionMap.Standard.ClassType.ClassTypeId); if (rules != null && rules.Count > 0) { rule = rules[0]; } break; } List <UserTransactionDTO> uTrans = _uTranSvc.GetUserTransactions(trDetails.TransactionMasterId, studStatus.ReturnObj.UserDetails.UserMasterId); if (uTrans != null && uTrans.Count > 0 && rule != null) { if (string.Equals(uTrans[0].GraceAmountIn, "ACTUAL", StringComparison.OrdinalIgnoreCase)) { rule.ActualAmount = rule.ActualAmount - uTrans[0].GraceAmount; } if (string.Equals(uTrans[0].GraceAmountIn, "PERCENT", StringComparison.OrdinalIgnoreCase)) { rule.ActualAmount = rule.ActualAmount - ((uTrans[0].GraceAmount * rule.ActualAmount) / 100); } } if (rule != null) { int?dueAfterDays = _trRule.GetFirstDueAfterDays(rule.TranRuleId); if (dueAfterDays.HasValue) { DateTime dtValid = new DateTime(); if (DateTime.TryParse(trDetails.TransactionDateString, out dtValid)) { dueDate = dtValid.AddDays(dueAfterDays.Value).ToString("dd-MMM-yyyy"); } else { dueDate = DateTime.Today.AddDays(dueAfterDays.Value).ToString("dd-MMM-yyyy"); } } } return(Json(new { status = true, message = "", ruleData = rule, tranMasterData = status.ReturnObj, dueDateString = dueDate })); } return(Json(new { status = false, message = "Failed to fetch data", ruleData = new TransactionRuleDTO(), tranMasterData = new TransactionMasterDTO(), dueDateString = dueDate })); }
private void AddSearchResult(ref TransactionRuleVM tranRule) { List <TransactionRuleDTO> searchResult = null; if (tranRule.TranMaster != null) { switch (tranRule.IsdifferentTo.ToUpper()) { case "NONE": if (tranRule.TranMaster.TranMasterId > 0) { searchResult = _trRule.GetNoneLevelRules(tranRule.TranMaster.TranMasterId); } else { searchResult = _trRule.GetNoneLevelRules(); } break; case "CLASS-TYPE": if (tranRule.ClassType != null && tranRule.ClassType.ClassTypeId > 0) { searchResult = _trRule.GetClassTypeLevelRules(tranRule.TranMaster.TranMasterId, tranRule.ClassType.ClassTypeId); } else { searchResult = _trRule.GetClassTypeLevelRules(tranRule.TranMaster.TranMasterId); } break; case "STANDARD": if (tranRule.Standard != null && tranRule.Standard.StandardId > 0) { searchResult = _trRule.GetStandardLevelRules(tranRule.TranMaster.TranMasterId, tranRule.Standard.StandardId); } else { searchResult = _trRule.GetStandardLevelRules(tranRule.TranMaster.TranMasterId); } break; case "SECTION": if (tranRule.Section != null && tranRule.Section.SectionId > 0) { searchResult = _trRule.GetStandardSectionLevelRules(tranRule.TranMaster.TranMasterId, tranRule.Standard.StandardId, tranRule.Section.SectionId); } else { searchResult = _trRule.GetStandardSectionLevelRules(tranRule.TranMaster.TranMasterId, tranRule.Standard.StandardId); } break; case "USER": searchResult = _trRule.GetUserLevelRules(tranRule.TranMaster.TranMasterId, tranRule.UserDTO.UserMasterId); break; } if (searchResult != null && searchResult.Count > 0) { tranRule.SearchedResult = new List <TransactionRuleVM>(); TransactionRuleVM item = null; foreach (TransactionRuleDTO trDto in searchResult) { item = new TransactionRuleVM(); item.TranRuleId = trDto.TranRuleId; item.TranMaster = trDto.TranMaster; item.RuleName = trDto.RuleName; item.ClassType = trDto.ClassType; item.UserDTO = trDto.UserDTO; item.Standard = trDto.Standard; item.Section = trDto.Section; item.ActualAmount = trDto.ActualAmount; tranRule.SearchedResult.Add(item); } } } }