public static ExpenseRequisitionRespObj LoadExpenseRequisitions(ExpenseRequisitionSearchObj regObj, string username) { var response = new ExpenseRequisitionRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage(), }, }; try { var apiResponse = new APIHelper(APIEndpoints.LOAD_EXPENSE_REQUISITIONS_ENDPOINT, username, Method.POST).ProcessAPI <ExpenseRequisitionSearchObj, ExpenseRequisitionRespObj>(regObj, out var msg); if (msg.Code == 0 && string.IsNullOrEmpty(msg.TechMessage) && string.IsNullOrEmpty(msg.Message)) { return(apiResponse); } response.Status.Message.FriendlyMessage = msg.Message; response.Status.Message.TechnicalMessage = msg.TechMessage; return(response); } catch (Exception ex) { UtilTools.LogE(ex.StackTrace, ex.Source, ex.GetBaseException().Message); response.Status.Message.FriendlyMessage = "Error Occurred! Please try again later"; response.Status.Message.TechnicalMessage = "Error: " + ex.GetBaseException().Message; return(response); } }
public ActionResult AddWorkflowDetail(int WorkflowTaskId) { try { ViewBag.Error = ""; ViewBag.SessionError = ""; #region Client Product productItem Session Check var userClientSession = (AppSession)Session["_UserClientSession_"]; if (userClientSession == null || userClientSession.ClientId < 1 || userClientSession.ProductId < 1 || userClientSession.ProductItemId < 1) { return(RedirectToAction("Index", "Dashboard")); } #endregion #region current user check var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData(); if (userData.UserId < 1) { ViewBag.SessionError = "Your session has expired! Please re-login"; return(View(new RegWorkflowDetailObj())); } #endregion #region current Id check if (WorkflowTaskId < 1) { ViewBag.Error = "Invalid selection"; return(View(new RegWorkflowDetailObj())); } #endregion #region get current workflow task from service var searchObj = new WorkflowTaskSearchObj { AdminUserId = userData.UserId, WorkflowTaskId = 0, Status = -1000 }; var retVal = WorkflowTaskServices.LoadWorkflowTasks(searchObj, userData.Username); var WorkflowTaskList = retVal.WorkflowTasks.ToList(); var assigneeflowTask = WorkflowTaskList.Find(m => m.WorkflowTaskId == WorkflowTaskId); if (assigneeflowTask == null || assigneeflowTask.WorkflowTaskId < 1) { ViewBag.Error = "Error Occurred! Unable to process selected item"; return(View(new RegWorkflowDetailObj())); } Session["_CurrentSelWorkflowTask_"] = assigneeflowTask; #endregion #region extract app users name var searchObj2 = new UserSearchObj { AdminUserId = userData.UserId, Status = -2, StopDate = "", StartDate = "", UserId = 0, }; var retValForUsers = new PortalUserManager().LoadUsers(searchObj2, userData.Username); var userList = retValForUsers.Users.ToList(); Session["_UserList_"] = userList; #endregion #region get requisitions and extract beneficiaryId and general remark for this Task var searchObjForReq = new ExpenseRequisitionSearchObj { AdminUserId = userData.UserId, ExpenseRequisitionId = 0, Status = -1000 }; var retValForReq = ExpenseLookupServices.LoadExpenseRequisitions(searchObjForReq, userData.Username); if (retValForReq?.Status == null) { ViewBag.Error = "Error Occurred! Please try again later"; return(View(new RegWorkflowDetailObj())); } Session["_ExpenseRequisitionList_"] = retValForReq.ExpenseRequisitions.ToList(); var currentReq = retValForReq.ExpenseRequisitions.FirstOrDefault(m => m.ExpenseRequisitionId == assigneeflowTask.ExpenseRequisitionId); if (currentReq == null) { ViewBag.Error = "Error Occurred! Unable to process selected item"; return(View(new RegWorkflowDetailObj())); } var BeneficiaryId = currentReq.ExpenseRequisitionItems.FirstOrDefault().BeneficiaryId; #endregion #region get beneficiary from service and extract benficiary name using beneficiary id from requisitions var searchObjForBene = new BeneficiarySearchObj { AdminUserId = userData.UserId, BeneficiaryId = 0, Status = -1000 }; var retValForBene = BeneficiaryServices.LoadBeneficiaries(searchObjForBene, userData.Username); if (retValForBene.Beneficiaries.Count < 1) { ViewBag.Error = "Error Occurred! Unable to process selected item"; return(View(new RegWorkflowDetailObj())); } var beneficiaryName = retValForBene.Beneficiaries.FirstOrDefault(m => m.BeneficiaryId == BeneficiaryId); Session["_BeneficiaryList_"] = retValForBene.Beneficiaries.ToList(); #endregion return(View(new RegWorkflowDetailObj { GeeneralRemark = currentReq.GeneralRemark, BeneficiaryName = beneficiaryName.FirstName + " " + beneficiaryName.LastName })); } catch (Exception ex) { ViewBag.Error = "Error Occurred! Please try again later"; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new RegWorkflowDetailObj())); } }
public ActionResult Index(int?clientId, int?productId) { try { ViewBag.Error = ""; #region Client Product productItem Session Check var userClientSession = (AppSession)Session["_UserClientSession_"]; if (userClientSession == null || userClientSession.ClientId < 1 || userClientSession.ProductId < 1 || userClientSession.ProductItemId < 1) { return(RedirectToAction("Index", "Dashboard")); } var ClientId = clientId ?? userClientSession.ClientId; var ProductId = productId ?? userClientSession.ProductId; var ProductItemId = userClientSession.ProductItemId; #endregion #region Current user session check var userData = MvcApplication.GetUserData(User.Identity.Name); if (userData == null || userData.UserId < 1) { ViewBag.Error = "Session Has Expired! Please Re-Login"; return(View(new List <WorkflowTaskObj>())); } #endregion #region get the pending and updated tasks from workflow task endpoint var searchObj = new WorkflowTaskSearchObj { AdminUserId = userData.UserId, WorkflowTaskId = 0, Status = -2 }; var retVal = WorkflowTaskServices.LoadWorkflowTasks(searchObj, userData.Username); #endregion #region get some requisition properties from endpoint or session if (Session["_AExpenseRequisitionList_"] is List <ExpenseRequisitionObj> ExpenseRequisitionList && ExpenseRequisitionList.Any()) { Session["_AExpenseRequisitionList_"] = ExpenseRequisitionList.Where(s => s.ClientId == ClientId && s.ProductId == ProductId).ToList(); } else { var searchObjReq = new ExpenseRequisitionSearchObj { AdminUserId = userData.UserId, ExpenseRequisitionId = 0, Status = -1000 }; var searchObjForReqs = ExpenseLookupServices.LoadExpenseRequisitions(searchObjReq, userData.Username).ExpenseRequisitions.Where(s => s.ClientId == ClientId && s.ProductId == ProductId); var reqitems = searchObjForReqs.OrderBy(m => m.ExpenseRequisitionId).ToList(); Session["_AExpenseRequisitionList_"] = reqitems.ToList(); } #endregion #region response validations if (retVal?.Status == null) { ViewBag.Error = " WorkflowTask list is empty!"; return(View(new List <WorkflowTaskObj>())); } if (!retVal.Status.IsSuccessful) { ViewBag.Error = string.IsNullOrEmpty(retVal.Status.Message.FriendlyMessage) ? " WorkflowTask list is empty!" : retVal.Status.Message.FriendlyMessage; return(View(new List <WorkflowTaskObj>())); } if (retVal.WorkflowTasks == null || !retVal.WorkflowTasks.Any()) { ViewBag.Error = " WorkflowTask list is empty!"; return(View(new List <WorkflowTaskObj>())); } #endregion #region filtering task list var WorkflowTasks = retVal.WorkflowTasks.OrderBy(m => m.WorkflowTaskId).Where(m => m.Status == (int)TaskStatus.Pending || m.Status == (int)TaskStatus.Viewed); var taskBasedOnClientProd = WorkflowTasks.Where(m => m.ClientId == ClientId && m.ProductId == ProductId); var taskBasedOnAssignee = taskBasedOnClientProd.Where(x => x.AssigneeId == userData.UserId).ToList(); #endregion return(View(taskBasedOnAssignee)); } catch (Exception ex) { ViewBag.Error = ex.Message; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new List <WorkflowTaskObj>())); } }
public ActionResult AddDisbursement(int clientId, int productId, int productItemId, int ExpenseId, string BeneficiaryName) { try { ViewBag.Error = ""; ViewBag.SessionError = ""; var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData(); if (userData.UserId < 1) { ViewBag.SessionError = "Your session has expired! Please re-login"; return(View(new RegDisbursementObj())); } if (ExpenseId < 1) { ViewBag.SessionError = "Your session has expired! Please re-login"; return(View(new RegDisbursementObj())); } var searchObj = new ExpenseRequisitionSearchObj { AdminUserId = userData.UserId, ExpenseRequisitionId = 0, Status = -1000 }; var expenseSearchObj = new ExpenseSearchObj { ExpenseId = ExpenseId, AdminUserId = userData.UserId, StartDate = "", Status = -1000, StopDate = "" }; var expensesResponse = ExpenseRequisitionServices.LoadExpenses(expenseSearchObj, userData.Username); var expenseToDisburse = expensesResponse.Expenses.Find(m => m.ExpenseId == ExpenseId); if (expenseToDisburse == null) { ViewBag.SessionError = "Your session has expired! Please re-login"; return(RedirectToAction("Login", "Portal")); } var expensesReqResponse = ExpenseLookupServices.LoadExpenseRequisitions(searchObj, userData.Username); var expenseReqToDisburse = expensesReqResponse.ExpenseRequisitions.FirstOrDefault(m => m.ExpenseRequisitionId == expenseToDisburse.ExpenseRequisitionId).ExpenseRequisitionItems.Find(m => m.ExpenseRequisitionId == expenseToDisburse.ExpenseRequisitionId); #region Generate voucher nuber var voucherSouchObj = new VoucherNumberSearchObj { AdminUserId = userData.UserId, ClientId = expenseToDisburse.ClientId, ProductId = expenseToDisburse.ProductId }; ViewBag.VoucherNumber = VNServices.GenerateVoucherNumbers(voucherSouchObj).VoucherNumber; #endregion return(View(new RegDisbursementObj { ProductId = expenseToDisburse.ProductId, ClientId = expenseToDisburse.ClientId, ProductItemId = expenseToDisburse.ProductItemId, ExpenseId = Convert.ToInt32(expenseToDisburse.ExpenseId), AmountDisbursed = Convert.ToInt32(expenseToDisburse.AmountDisbursed), Title = expenseToDisburse.Title, WorkflowItemId = Convert.ToInt32(expenseToDisburse.WorkflowItemId), AmountApproved = expenseToDisburse.AmountApproved, RequestType = expenseToDisburse.RequestType, ExpenseRequisitionId = Convert.ToInt32(expenseToDisburse.ExpenseRequisitionId), Balance = expenseToDisburse.Balance, BeneficiaryId = expenseReqToDisburse.BeneficiaryId })); } catch (Exception ex) { ViewBag.Error = "Error Occurred! Please try again later"; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new RegDisbursementObj())); } }
public ActionResult GetRequisitions(int?clientId, int?productId, int?requestType, int?requestStatus, string start, string end, int?beneficiary, int?item, bool?printExcel) { try { #region Client Product productItem Session Check var userClientSession = (AppSession)Session["_UserClientSession_"]; if (userClientSession == null || userClientSession.ClientId < 1 || userClientSession.ProductId < 1 || userClientSession.ProductItemId < 1) { return(RedirectToAction("Index", "Dashboard")); } var ClientId = clientId ?? userClientSession.ClientId; var ProductId = productId ?? userClientSession.ProductId; var ProductItemId = userClientSession.ProductItemId; #endregion #region Current Session Check var userData = MvcApplication.GetUserData(User.Identity.Name); if (userData == null || userData.UserId < 1) { ViewBag.Error = "Session Has Expired! Please Re-Login"; return(View(new List <ExpenseRequisitionObj>())); } #endregion DateTime dateTimeStart = Convert.ToDateTime(start); DateTime dateTimeEnd = Convert.ToDateTime(end + " 23:59:59 PM"); List <ExpenseRequisitionObj> filteredReqs = null; if (Session["_ExpenseRequisitionList_"] is List <ExpenseRequisitionObj> ExpenseRequisition && ExpenseRequisition.Any()) { #region check if department session is empty else get from service if (Session["_DeptList_"] is List <DepartmentObj> DeptsList && DeptsList.Any()) { Session["_DeptList_"] = DeptsList; } else { var searchObj3 = new DepartmentSearchObj { AdminUserId = userData.UserId, DepartmentId = 0, Status = -2, StopDate = "", StartDate = "" }; var retValForDepartment = ExpenseLookUpServices.LoadDepartments(searchObj3, userData.Username); var Depts = retValForDepartment.Departments.OrderBy(m => m.DepartmentId).ToList(); Session["_DeptList_"] = Depts; } #endregion if (start != null && (start.Length > 0 || !string.IsNullOrEmpty(start) || start != "") || end != null && (end.Length > 0 || !string.IsNullOrEmpty(end) || end != "")) { var b = ExpenseRequisition.Select(m => Convert.ToDateTime(m.TimeStampRegistered.Replace('-', ' ').Trim())); filteredReqs = ExpenseRequisition.Where(m => Convert.ToDateTime(m.TimeStampRegistered.Replace('-', ' ').Trim()) >= dateTimeStart && Convert.ToDateTime(m.TimeStampRegistered.Replace('-', ' ').Trim()) <= dateTimeEnd).ToList(); List <ExpenseRequisitionObj> filtReqs; filtReqs = filteredReqs.Where(m => m.ClientId == ClientId && m.ProductId == ProductId).ToList(); ViewBag.BeneficiaryId = beneficiary; ViewBag.ExpenseItemId = item; ViewBag.GrandTotal = ExpenseRequisition.Where(x => x.ClientId == ClientId && x.ProductId == ProductId).Sum(x => x.TotalAmount); if (requestType != 0) { filteredReqs = filteredReqs.Where(m => m.RequestType == requestType).ToList(); } if (requestStatus >= -100) { filteredReqs = filteredReqs.Where(m => m.Status == requestStatus).ToList(); } if (beneficiary > 0 || item > 0) { var expenseItems = filteredReqs.SelectMany(m => m.ExpenseRequisitionItems).Where(x => x.ExpenseItemId == item && x.BeneficiaryId == beneficiary).ToList(); if (!expenseItems.Any()) { return(View(new List <ExpenseRequisitionObj>())); } else { filtReqs = filteredReqs.Where(m => m.ExpenseRequisitionItems.FirstOrDefault().BeneficiaryId == expenseItems.FirstOrDefault().BeneficiaryId && m.ExpenseRequisitionItems.FirstOrDefault().ExpenseItemId == expenseItems.FirstOrDefault().ExpenseItemId).ToList(); } } if (printExcel ?? false) { return(GenerateExcel(filtReqs)); } return(View(filtReqs)); } } #region request and response validations var searchObj = new ExpenseRequisitionSearchObj { AdminUserId = userData.UserId, ExpenseRequisitionId = 0, Status = requestStatus ?? -1000, }; var retVal = ExpenseLookupServices.LoadExpenseRequisitions(searchObj, userData.Username); if (retVal?.Status == null) { ViewBag.Error = " ExpenseRequisition list is empty!"; return(View(new List <ExpenseRequisitionObj>())); } if (!retVal.Status.IsSuccessful) { ViewBag.Error = string.IsNullOrEmpty(retVal.Status.Message.FriendlyMessage) ? " ExpenseRequisition list is empty!" : retVal.Status.Message.FriendlyMessage; return(View(new List <ExpenseRequisitionObj>())); } if (retVal.ExpenseRequisitions == null || !retVal.ExpenseRequisitions.Any()) { ViewBag.Error = " ExpenseRequisition list is empty!"; return(View(new List <ExpenseRequisitionObj>())); } #endregion var ExpenseRequisitions = retVal.ExpenseRequisitions.OrderBy(m => m.ExpenseRequisitionId).ToList();//.Where(m => ).ToList(); Session["_ExpenseRequisitionList_"] = ExpenseRequisitions.Where(m => m.ClientId == ClientId && m.ProductId == ProductId).ToList(); return(View(new List <ExpenseRequisitionObj>())); } catch (Exception ex) { ViewBag.Error = ex.Message; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new List <ExpenseRequisitionObj>())); } }
public ActionResult RetirementItems(int expenseRequisitionId) { try { ViewBag.Error = ""; ViewBag.SessionError = ""; #region Current User Session Check var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData(); if (userData.UserId < 1) { ViewBag.SessionError = "Your session has expired! Please re-login"; return(View(new List <ExpenseRequisitionObj>())); } #endregion #region Client Product productItem Session Check var userClientSession = (AppSession)Session["_UserClientSession_"]; if (userClientSession == null || userClientSession.ClientId < 1 || userClientSession.ProductId < 1 || userClientSession.ProductItemId < 1) { return(RedirectToAction("Index", "Dashboard")); } var ClientId = userClientSession.ClientId; var ProductId = userClientSession.ProductId; var ProductItemId = userClientSession.ProductItemId; #endregion #region Request to requisition endpoint to get it's Items if (expenseRequisitionId < 1) { expenseRequisitionId = 0; return(View(new List <ExpenseRequisitionObj>())); } var searchObj = new ExpenseRequisitionSearchObj { AdminUserId = userData.UserId, ExpenseRequisitionId = 0, Status = -1000 }; var retVal = ExpenseLookupServices.LoadExpenseRequisitions(searchObj, userData.Username); var ExpenseRequisitionList = retVal.ExpenseRequisitions.OrderBy(m => m.ExpenseRequisitionId).ToList(); var expenseRequisitionItems = ExpenseRequisitionList.SingleOrDefault(m => m.ExpenseRequisitionId == expenseRequisitionId); if (expenseRequisitionItems == null || expenseRequisitionItems.ExpenseRequisitionId < 1) { ViewBag.Error = "Error Occurred! Unable to process selected item"; return(View(new List <ExpenseRequisitionObj>())); } #endregion #region GET ITEM NAMES if (Session["_globalItems_"] is List <ExpenseItemObj> GlobItemlist && GlobItemlist.Any()) { Session["_globalItems_"] = GlobItemlist; } else { var itemSearchObj = new ExpenseItemSearchObj { AdminUserId = userData.UserId, ExpenseItemId = 0, Status = -1000, StartDate = "", StopDate = "", }; var itemRetVal = ExpenseLookUpServices.LoadExpenseItems(itemSearchObj, userData.Username); if (itemRetVal?.Status == null) { ViewBag.Error = "Error Occurred please try again later!"; return(View(new List <ExpenseRequisitionObj>())); } var globalItemList = itemRetVal.ExpenseItems.ToList(); Session["_globalItems_"] = globalItemList; } #endregion #region Generate voucher nuber var voucherSouchObj = new VoucherNumberSearchObj { AdminUserId = userData.UserId, ClientId = ClientId, ProductId = ProductId }; ViewBag.VoucherNumber = VNServices.GenerateVoucherNumbers(voucherSouchObj).VoucherNumber; #endregion return(View(expenseRequisitionItems)); } catch (Exception ex) { ViewBag.Error = "Error Occurred! Please try again later"; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new RegExpenseRequisitionItemObj())); } }