public ActionResult GetClaimApprovedList([DataSourceRequest] DataSourceRequest request, FIN_ApprovedClaimSearchModel model) { var baseService = new BaseService(); FIN_ClaimService service = new FIN_ClaimService(); var result = service.GetClaimApprovedList(model.UserApproveID.Value); if (model.IsExport) { var fullPath = ExportService.Export(result, model.ValueFields.Split(',')); return Json(fullPath); } request.Page = 1; var dataSourceResult = result.ToDataSourceResult(request); dataSourceResult.Total = result.Count() <= 0 ? 0 : result.FirstOrDefault().TotalRow; return new JsonResult { Data = dataSourceResult, MaxJsonLength = Int32.MaxValue }; }
public string ProcessRejectCashAdvance(string host, Guid LoginID, Guid userApprovedID, Guid recordID, string type) { DataErrorCode status = DataErrorCode.Success; string stt = string.Empty; var Services = new BaseService(); using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var claimServices = new FIN_ClaimService(); var result = ApprovedCashAdvance(recordID, LoginID, type); if (result == "Success") { status = SendMaToPreReject(host, recordID, userApprovedID, LoginID); } return status.ToString(); } }
public ActionResult ActionSendMailClaim(List<Guid> selectedIds, Guid userId, string host) { //List<Guid> lstHoldSalaryIDs = selectedIds.Split(',').Select(x => Guid.Parse(x)).ToList(); var services = new FIN_ClaimService(); var status = services.ProcessSendMailForFirstApprove(host, userId, selectedIds[0]); return Json(""); }
public string ProcessRejectClaim(string host, Guid LoginID, Guid userApprovedID, Guid recordID, string type) { DataErrorCode status = DataErrorCode.Success; string stt = string.Empty; var Services = new BaseService(); using (var context = new VnrHrmDataContext()) { var services = new FIN_ClaimItemService(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoClaim = new CustomBaseRepository<FIN_Claim>(unitOfWork); var claimEntity = repoClaim.FindBy(s => s.IsDelete == null && s.ID == recordID).FirstOrDefault(); var claimServices = new FIN_ClaimService(); var result = ApprovedClaim(recordID, LoginID, type); List<Guid> lstId = new List<Guid>(); if (claimEntity != null) { lstId.Add(claimEntity.ID); } if (result == "Success") { status = SendMaToPreReject(host, recordID, userApprovedID, LoginID); } return status.ToString(); } }
public string ProcessSendMailForFirstApprove(string host, Guid userId, Guid recordID) { DataErrorCode status = DataErrorCode.Success; using (var context = new VnrHrmDataContext()) { var Services = new BaseService(); string statusMess = string.Empty; var UserLogin = string.Empty; string type = ApproveType.E_FIN_TravelRequest.ToString(); //string typeApprover1 = FinApproverType.FIN_TravelRequest_Domestic.ToString(); //string typeApprover2 = FinApproverType.FIN_TravelRequest_External.ToString(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoSys_UserApprove = new CustomBaseRepository<Sys_UserApprove>(unitOfWork); var repo_JobTitle = new CustomBaseRepository<Cat_JobTitle>(unitOfWork); var lstJobTitle = repo_JobTitle.GetAll().Where(s => s.IsDelete == null).ToList(); var repoOrg = new CustomBaseRepository<Cat_OrgStructure>(unitOfWork); var lstOrg = repoOrg.GetAll().Where(s => s.IsDelete == null).ToList(); var repoSys_UserInfo = new CustomBaseRepository<Sys_UserInfo>(unitOfWork); var lstUserInfo = repoSys_UserInfo.GetAll().Where(s => s.IsDelete == null).ToList(); var userInfoEntity = lstUserInfo.Where(s => userId == s.ID).FirstOrDefault(); var repoProfile = new CustomBaseRepository<Hre_Profile>(unitOfWork); var lstProfile = repoProfile.GetAll().Where(s => s.IsDelete == null).ToList(); var repoFIN_TravelRequest = new CustomBaseRepository<FIN_TravelRequest>(unitOfWork); var record = repoFIN_TravelRequest.FindBy(s => s.ID == recordID).FirstOrDefault(); if (record != null) { List<Guid> lstIds = new List<Guid>(); lstIds.Add(record.ID); var claimServices = new FIN_ClaimService(); ActionApprovedAll(lstIds, "E_REQUEST", userId); } var repoFin_Approver = new CustomBaseRepository<FIN_ApproverECLAIM>(unitOfWork); var lstApprover = repoFin_Approver.GetAll().Where(s => s.IsDelete == null).ToList(); var repoSys_TemplateSendMail = new CustomBaseRepository<Sys_TemplateSendMail>(unitOfWork); string _typeTemplate = EnumDropDown.EmailType.E_REQUEST_TRAVELREQUEST.ToString(); var template = repoSys_TemplateSendMail.FindBy(s => s.Type == _typeTemplate).FirstOrDefault(); if (userInfoEntity != null) { var profileInfoEntity = lstProfile.Where(s => s.ID == userInfoEntity.ProfileID.Value).FirstOrDefault(); var jobTitleEntity = lstJobTitle.Where(s => profileInfoEntity.JobTitleID != null && s.ID == profileInfoEntity.JobTitleID.Value).FirstOrDefault(); var orgEntity = lstOrg.Where(s => profileInfoEntity.OrgStructureID != null && s.ID == profileInfoEntity.OrgStructureID.Value).FirstOrDefault(); var lstApproverByClaim = lstApprover.Where(s => record.Type != null && s.ProfileID == userInfoEntity.ProfileID && s.ApprovedType == record.Type && s.ApprovedID != null).OrderBy(s => s.OrderNo).ToList(); var approvedEntity = new FIN_ApproverECLAIM(); var firstApprover = lstApproverByClaim.FirstOrDefault(); foreach (var item in lstApproverByClaim) { if (firstApprover.OrderNo == item.OrderNo) { continue; } approvedEntity = item; break; } var userIdSecondApprover = lstApprover.Where(s => s.ID == approvedEntity.ID).FirstOrDefault(); //var firstApprover = lstApprover.Where(s => s.ProfileID == userInfoEntity.ProfileID && (s.ApprovedType == typeApprover1 || s.ApprovedType == typeApprover2)).OrderBy(s => s.OrderNo).FirstOrDefault(); //var userIdSecondApprover = lstApprover.Where(s => s.ProfileID == userInfoEntity.ProfileID && (s.ApprovedType == typeApprover1 || s.ApprovedType == typeApprover2) && s.OrderNo == 2).FirstOrDefault(); if (firstApprover != null) { var userEnityByProfileID = lstUserInfo.Where(s => s.ID == firstApprover.ApprovedID.Value).FirstOrDefault(); var profileEntity = GetData<Hre_ProfileEntity>(Common.DotNetToOracle(userEnityByProfileID.ProfileID.ToString()), ConstantSql.hrm_hr_sp_get_ProfileById, UserLogin, ref statusMess).FirstOrDefault(); if (profileEntity != null) { if (userIdSecondApprover != null) { if (template != null) { string MailTo = profileEntity.Email; string urlClickHere = host + "#Hrm_Main_Web/Fin_ApprovedTravelRequest/DetailTravelRequest/" + recordID + "#NewTab"; string linkcontent = string.Empty; string linkcontentReject = string.Empty; var temp = lstUserInfo.Where(s => s.ID == userIdSecondApprover.ApprovedID.Value).FirstOrDefault(); var name = temp.UserInfoName != null ? temp.UserInfoName : temp.UserLogin; linkcontent += "Nhấn vào " + "<a href='" + host + "Fin_ApprovedTravelRequest/ProcessApprovedPage" + "?loginID=" + firstApprover.ApprovedID + "&userApprovedID=" + userIdSecondApprover.ID + "&recordID=" + recordID + "'>đây" + "</a>" + " để đồng ý."; linkcontentReject += "Nhấn vào " + "<a href='" + host + "Fin_ApprovedTravelRequest/ProcessRejectPage" + "?loginID=" + firstApprover.ApprovedID + "&userApprovedID=" + userIdSecondApprover.ID + "&recordID=" + recordID + "'>đây" + "<a/>" + " để từ chối."; #region magreData string[] strsParaKey = null; string[] strsParaValues = null; strsParaKey = new string[] { EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_PROFILENAME.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_JOBTITLE.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_AREA.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_USERINFONAME.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_TRAVELREQUESTNAME.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_TRAVELREQUESTCODE.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_DENIES.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_LINKCONTENT.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_REJECTLINK.ToString(), EnumDropDown.EmailType_APPROVED_TRAVELREQUEST.E_ISBOOKINGHOTEL.ToString(), }; strsParaValues = new string[] { profileEntity.ProfileName, jobTitleEntity != null ? jobTitleEntity.JobTitleName : string.Empty, orgEntity != null ? orgEntity.OrgStructureName : string.Empty, userInfoEntity.UserInfoName, record.TravelRequestName, record.TravelRequestCode, "", linkcontent, linkcontentReject, "" }; string body = LibraryService.ReplaceContentFile(template.Content, strsParaKey, strsParaValues); #endregion string titleMail = template.Subject; bool isSuccess = Services.SendMail(titleMail, MailTo, body, string.Empty); } } } } } return status.ToString(); } }
public string ProcessApprovedTravelRequest(string host, Guid LoginID, Guid userApprovedID, Guid recordID, string type) { DataErrorCode status = DataErrorCode.Success; string stt = string.Empty; var Services = new BaseService(); using (var context = new VnrHrmDataContext()) { var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoTravelRequest = new CustomBaseRepository<FIN_TravelRequest>(unitOfWork); var travelEntity = repoTravelRequest.FindBy(s => s.IsDelete == null && s.ID == recordID).FirstOrDefault(); List<Guid> lstId = new List<Guid>(); if (travelEntity != null) { lstId.Add(travelEntity.ID); } var claimServices = new FIN_ClaimService(); var result = claimServices.ApprovedTravelRequest(recordID, LoginID,type); if(result == "Success") { ActionApprovedAll(lstId,"E_APPROVED",LoginID); } if (result == "Success") { status = SendMaToNextApproved(host,recordID,userApprovedID); } return status.ToString(); } }
public FIN_ClaimModel Post([Bind]FIN_ClaimModel model) { #region Validate string message = string.Empty; var checkValidate = HRM.Business.Main.Domain.ValidatorService.OnValidateData<FIN_ClaimModel>(model, "FIN_Claim", ref message); if (!checkValidate) { model.ActionStatus = message; return model; } #endregion ActionService service = new ActionService(UserLogin); string status = string.Empty; var baseService = new BaseService(); var clainService = new FIN_ClaimService(); var claimEntity = new FIN_ClaimEntity(); claimEntity = model.CopyData<FIN_ClaimEntity>(); clainService.Add(claimEntity); var clainItemServices = new FIN_ClaimItemService(); var lstClaimItem = new List<FIN_ClaimItemEntity>(); var objs = new List<object>(); if(model.TravelRequestID != null){ objs.Add(model.TravelRequestID.Value); var lstRequestItemByRequestID = baseService.GetData<FIN_TravelRequestItemModel>(objs, ConstantSql.hrm_hr_sp_get_TravelRequestItemByTravelRequestID,UserLogin, ref status); if (lstRequestItemByRequestID != null) { foreach (var item in lstRequestItemByRequestID) { FIN_ClaimItemEntity entity = new FIN_ClaimItemEntity { ClaimID = claimEntity.ID, Date = item.Date.Value, Amount = item == null ? 0 : item.Amount.Value, Description = item.Description, }; lstClaimItem.Add(entity); } model.ActionStatus = clainItemServices.Add(lstClaimItem); return model; } } return service.UpdateOrCreate<FIN_ClaimEntity, FIN_ClaimModel>(model); }
public ActionResult ApprovedClaim(Guid claimId, Guid userId, string type) { var status = string.Empty; var message = string.Empty; var services = new FIN_ClaimService(); message = services.ApprovedClaim(claimId, userId, type); return Json(message, JsonRequestBehavior.AllowGet); }