public static decimal GetretiredAmountByRequisitionId(long ExpenseRequisitionId) { try { #region Current Session Check var user = System.Web.HttpContext.Current.User.Identity.Name; var userData = MvcApplication.GetUserData(user); if (userData == null || userData.UserId < 1) { return(decimal.Zero); } #endregion var searchObj = new RetirementSearchObj { AdminUserId = userData.UserId, RetirementId = 0, StartDate = "", StopDate = "", VoucheNumber = "", Status = -1000 }; var retVal = RetirementServices.LoadRetirements(searchObj, userData.Username); if (retVal?.Status == null) { return(decimal.Zero); } if (retVal.Retirements == null || !retVal.Retirements.Any()) { return(decimal.Zero); } var retirement = retVal.Retirements.SingleOrDefault(x => x.ExpenseRequisitionId == ExpenseRequisitionId); if (retirement == null) { return(decimal.Zero); } return(retirement.AmountRetired); } catch (Exception ex) { return(decimal.Zero); } }
public ActionResult _Receipt(int ExpenseRequisitionId) { 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 = userClientSession.ClientId; var 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 <RegReceiptObj>())); } #endregion #region current Id check if (ExpenseRequisitionId < 1) { ViewBag.Error = "Invalid selection"; return(View(new List <RegReceiptObj>())); } #endregion #region Request and response validations var searchObj = new RetirementSearchObj { AdminUserId = userData.UserId, RetirementId = 0, StartDate = "", StopDate = "", VoucheNumber = "", Status = -1000 }; var retVal = RetirementServices.LoadRetirements(searchObj, userData.Username); if (retVal?.Status == null) { ViewBag.Error = "Error Occurred! Please try again later"; return(View(new List <RegReceiptObj>())); } if (retVal.Retirements == null || !retVal.Retirements.Any()) { return(View(new List <RegReceiptObj>())); } var ReqReceipt = retVal.Retirements.SelectMany(x => x.Receipts).Where(c => c.ExpenseRequisitionId == ExpenseRequisitionId); if (ReqReceipt == null) { ViewBag.Error = "Error Occurred! Unable to process selected item"; return(View(new List <RegReceiptObj>())); } Session["_ReqReceipt_"] = ReqReceipt; return(View(ReqReceipt)); #endregion } catch (Exception) { throw; } }
public JsonResult ProcessAddRetirementRequest(ExpenseRequisitionObj model, List <HttpPostedFileBase> ImageFile) { try { #region current User session check var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData(); //if (userData.UserId < 1) //{ // //return Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }); // return RedirectToAction("RetirementModule", new { clientId = model.ClientId, productId = model.ProductId, productItemId = model.ProductItemId, msg = "Your session has expired" }); //} #endregion #region model Validation if (model.ExpenseRequisitionId < 1) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Unable to process item" })); } if (string.IsNullOrEmpty(model.RecievedItemIds)) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Recieved Item not found" })); } if (string.IsNullOrEmpty(model.AmountRetired)) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Amount Retired" })); } if (string.IsNullOrEmpty(model.AmountSpent)) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Amount Spent" })); } if (model.RetirementMode < 1) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Retirement Mode" })); } if (string.IsNullOrEmpty(model.VoucherNumber)) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Voucher Number" })); } #endregion #region Get Expense Disbursed from Disbursement Service var searchObjForDis = new DisbursementSearchObj { AdminUserId = userData.UserId, DisbursementId = 0, StartDate = "", Status = 2, StopDate = "", VoucheNumber = "" }; var retValForDis = DisbursementServices.LoadDisbursements(searchObjForDis, userData.Username); if (retValForDis.Status == null) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Unable to process item" })); } var disbursementList = retValForDis.Disbursements.OrderBy(x => x.DisbursementId).ToList(); var expenseDisbursed = disbursementList.SingleOrDefault(m => m.ExpenseRequisitionId == model.ExpenseRequisitionId); if (expenseDisbursed == null) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Unable to process item" })); } #endregion #region Get Expense form Expense Service var searchExpObj = new ExpenseSearchObj { AdminUserId = userData.UserId, ExpenseId = 0, Status = -1000, StartDate = " ", StopDate = " ", }; var retValExp = ExpenseRequisitionServices.LoadExpenses(searchExpObj, userData.Username); var thisExpense = retValExp.Expenses.SingleOrDefault(m => m.ExpenseId == expenseDisbursed.ExpenseId); if (thisExpense == null) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Unable to process item" })); } #endregion #region Build Retirement Request Object List <RegReceiptObj> recs = new List <RegReceiptObj>(); foreach (var file in ImageFile) { var rec = new RegReceiptObj() { ExpenseId = expenseDisbursed.ExpenseId, ExpenseRequisitionId = expenseDisbursed.ExpenseRequisitionId, ReceiptDocument = GetBytesFromFile(file), ReceiptNunber = model.RecievedItemIds, ReceiptFileName = Path.GetFileName(file.FileName), ExpenseRequisitionItemId = model.RecievedItemIds, }; recs.Add(rec); } var requestObj = new RegRetirementObj { ClientId = expenseDisbursed.ClientId, ProductId = expenseDisbursed.ProductId, AdminUserId = userData.UserId, ProductItemId = expenseDisbursed.ProductItemId, RequestType = expenseDisbursed.RequestType, Title = expenseDisbursed.Title, BeneficiaryType = expenseDisbursed.BeneficiaryType, AmountRetired = Convert.ToDecimal(model.AmountRetired), BeneficiaryId = expenseDisbursed.BeneficiaryId, ExpenseId = expenseDisbursed.ExpenseId, ExpenseRequisitionId = Convert.ToInt32(model.ExpenseRequisitionId), RetiredBy = userData.UserId, RetirementMode = model.RetirementMode, TimeStampRetired = UtilTools.CurrentTimeStamp(), VoucherNumber = model.VoucherNumber, WorkflowItemId = Convert.ToInt32(expenseDisbursed.WorkflowItemId), DisbursementId = expenseDisbursed.DisbursementId, RecievedItemIds = model.RecievedItemIds, RetirementType = model.RetirementMode, Receipts = recs, }; #endregion #region Response and Validations var response = RetirementServices.AddRetirement(requestObj, userData.Username); if (response?.Status == null) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" })); } if (!response.Status.IsSuccessful) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to Process Data" : response.Status.Message.TechnicalMessage })); } #endregion #region Request and Response Validations var searchObj = new DisbursementSearchObj { AdminUserId = userData.UserId, DisbursementId = 0, StartDate = "", Status = (int)DisbursementStatus.Awaiting_Retirement, StopDate = "", VoucheNumber = "" }; var retVal = DisbursementServices.LoadDisbursements(searchObj, userData.Username); if (retVal?.Status == null) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to Process Data" : response.Status.Message.TechnicalMessage })); } if (retVal.Disbursements == null || !retVal.Disbursements.Any()) { return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to Process Data" : response.Status.Message.TechnicalMessage })); } Session["_currentExpenseDisbursement_"] = retVal.Disbursements.Where(x => x.ClientId == model.ClientId && x.ProductId == model.ProductId).ToList(); #endregion Session["_ListOfExpReqItems_"] = null; return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = true, Error = "" })); } catch (Exception ex) { UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" })); } }