public ActionResult CreateTemporary(TraCrfItemViewModel model) { bool isSuccess = false; try { TemporaryDto item = new TemporaryDto(); var csfData = _CRFBLL.GetDataById(model.Detail.TraCrfId); if (csfData == null) { return(HttpNotFound()); } item = AutoMapper.Mapper.Map <TemporaryDto>(csfData); item.CREATED_BY = CurrentUser.USER_ID; item.CREATED_DATE = DateTime.Now; item.DOCUMENT_STATUS = Enums.DocumentStatus.Draft; item.START_DATE = model.DetailTemporary.StartDate; item.END_DATE = model.DetailTemporary.EndDate; item.REASON_ID = model.DetailTemporary.ReasonId.Value; item.BODY_TYPE = csfData.Body; var fleetData = _fleetBLL.GetVehicleByEmployeeId(csfData.EMPLOYEE_ID, csfData.VEHICLE_TYPE); var settingData = _settingBLL.GetSetting().FirstOrDefault(x => x.SettingGroup == "VEHICLE_TYPE" && x.SettingName == csfData.VEHICLE_TYPE); var employeeData = _employeeBLL.GetByID(csfData.EMPLOYEE_ID); item.COLOR = fleetData.Color; item.POLICE_NUMBER = csfData.POLICE_NUMBER; if (settingData != null) { item.VEHICLE_TYPE = settingData.MstSettingId.ToString(); } item.VENDOR_MANUFACTURER = null; item.VENDOR_MODEL = null; item.VENDOR_SERIES = null; item.VENDOR_BODY_TYPE = null; item.GROUP_LEVEL = employeeData.GROUP_LEVEL; var tempData = _CRFBLL.SaveTemp(item, model.Detail.ExpectedDate.Value, CurrentUser); isSuccess = true; } catch (Exception ex) { AddMessageInfo(ex.Message, Enums.MessageInfoType.Error); } if (!isSuccess) { return(RedirectToAction("Details", "TraCrf", new { id = model.Detail.TraCrfId, isPersonalDashboard = model.IsPersonalDashboard })); } AddMessageInfo("Success Add Temporary Data", Enums.MessageInfoType.Success); return(RedirectToAction("Edit", "TraCrf", new { id = model.Detail.TraCrfId, isPersonalDashboard = model.IsPersonalDashboard })); }
public TemporaryDto SaveTemp(TemporaryDto item, DateTime expectedDate, Login CurrentUser) { TRA_TEMPORARY model; if (item == null) { throw new Exception("Invalid Data Entry"); } try { if (item.TRA_TEMPORARY_ID > 0) { //update model = _temporaryService.GetTemporaryById(item.TRA_TEMPORARY_ID); if (model == null) { throw new BLLException(ExceptionCodes.BLLExceptions.DataNotFound); } Mapper.Map <TemporaryDto, TRA_TEMPORARY>(item, model); } else { var inputDoc = new GenerateDocNumberInput(); inputDoc.Month = DateTime.Now.Month; inputDoc.Year = DateTime.Now.Year; inputDoc.DocType = (int)Enums.DocumentType.TMP; item.DOCUMENT_NUMBER_TEMP = _docNumberService.GenerateNumber(inputDoc); item.IS_ACTIVE = true; model = Mapper.Map <TRA_TEMPORARY>(item); } _temporaryService.saveTemporary(model, CurrentUser); var data = _CrfService.GetByNumber(item.DOCUMENT_NUMBER_RELATED); data.EXPECTED_DATE = expectedDate; _CrfService.SaveCrf(data, null); _uow.SaveChanges(); } catch (Exception exception) { throw exception; } return(Mapper.Map <TemporaryDto>(model)); }
public bool CheckTempOpenExists(TemporaryDto item) { var isExist = false; var benefitType = _settingService.GetSetting().Where(x => x.SETTING_NAME.ToUpper() == "BENEFIT").FirstOrDefault().MST_SETTING_ID.ToString(); var existDataOpen = _TemporaryService.GetAllTemp().Where(x => x.EMPLOYEE_ID == item.EMPLOYEE_ID && x.DOCUMENT_STATUS != Enums.DocumentStatus.Cancelled && x.DOCUMENT_STATUS != Enums.DocumentStatus.Completed && x.VEHICLE_TYPE == benefitType).ToList(); if (existDataOpen.Count > 0) { isExist = true; } return(isExist); }
public bool CheckTempExistsInFleet(TemporaryDto item) { var isExist = false; var vehicleType = _settingService.GetSettingById(Convert.ToInt32(item.VEHICLE_TYPE)).SETTING_VALUE.ToUpper(); var existData = _fleetService.GetFleet().Where(x => x.IS_ACTIVE && x.EMPLOYEE_ID == item.EMPLOYEE_ID && x.VEHICLE_TYPE == vehicleType && item.START_DATE <= x.END_CONTRACT && x.SUPPLY_METHOD == "TEMPORARY").ToList(); if (existData.Count > 0) { isExist = true; } return(isExist); }
private TempMailNotification ProsesMailNotificationBody(TemporaryDto tempData, TempWorkflowDocumentInput input) { var bodyMail = new StringBuilder(); var rc = new TempMailNotification(); var settingData = _settingService.GetSetting().ToList(); var vehTypeBenefit = settingData.Where(x => x.SETTING_GROUP == "VEHICLE_TYPE" && x.SETTING_NAME == "BENEFIT").FirstOrDefault().MST_SETTING_ID; var vendorData = _vendorService.GetByShortName(tempData.VENDOR_NAME); var vendorEmail = vendorData == null ? string.Empty : vendorData.EMAIL_ADDRESS; var vendorName = vendorData == null ? "Vendor" : vendorData.VENDOR_NAME; var isBenefit = tempData.VEHICLE_TYPE == vehTypeBenefit.ToString() ? true : false; var webRootUrl = ConfigurationManager.AppSettings["WebRootUrl"]; var typeEnv = ConfigurationManager.AppSettings["Environment"]; var serverIntranet = ConfigurationManager.AppSettings["ServerIntranet"]; var employeeData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID); var creatorData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID_CREATOR); var fleetApprovalData = _employeeService.GetEmployeeById(tempData.EMPLOYEE_ID_FLEET_APPROVAL); var employeeDataEmail = employeeData == null ? string.Empty : employeeData.EMAIL_ADDRESS; var creatorDataEmail = creatorData == null ? string.Empty : creatorData.EMAIL_ADDRESS; var fleetApprovalDataEmail = fleetApprovalData == null ? string.Empty : fleetApprovalData.EMAIL_ADDRESS; var employeeDataName = employeeData == null ? string.Empty : employeeData.FORMAL_NAME; var creatorDataName = creatorData == null ? string.Empty : creatorData.FORMAL_NAME; var fleetApprovalDataName = fleetApprovalData == null ? string.Empty : fleetApprovalData.FORMAL_NAME; var hrList = string.Empty; var fleetList = string.Empty; var hrEmailList = new List <string>(); var fleetEmailList = new List <string>(); var hrRole = settingData.Where(x => x.SETTING_GROUP == EnumHelper.GetDescription(Enums.SettingGroup.UserRole) && x.SETTING_VALUE.Contains("HR")).FirstOrDefault().SETTING_VALUE; var fleetRole = settingData.Where(x => x.SETTING_GROUP == EnumHelper.GetDescription(Enums.SettingGroup.UserRole) && x.SETTING_VALUE.Contains("FLEET")).FirstOrDefault().SETTING_VALUE; var hrQuery = "SELECT 'PMI\\' + sAMAccountName AS sAMAccountName FROM OPENQUERY(ADSI, 'SELECT employeeID, sAMAccountName, displayName, name, givenName, whenCreated, whenChanged, SN, manager, distinguishedName, info FROM ''LDAP://DC=PMINTL,DC=NET'' WHERE memberOf = ''CN = " + hrRole + ", OU = ID, OU = Security, OU = IMDL Managed Groups, OU = Global, OU = Users & Workstations, DC = PMINTL, DC = NET''') "; var fleetQuery = "SELECT 'PMI\\' + sAMAccountName AS sAMAccountName FROM OPENQUERY(ADSI, 'SELECT employeeID, sAMAccountName, displayName, name, givenName, whenCreated, whenChanged, SN, manager, distinguishedName, info FROM ''LDAP://DC=PMINTL,DC=NET'' WHERE memberOf = ''CN = " + fleetRole + ", OU = ID, OU = Security, OU = IMDL Managed Groups, OU = Global, OU = Users & Workstations, DC = PMINTL, DC = NET''') "; if (typeEnv == "VTI") { hrQuery = "SELECT 'PMI\\' + LOGIN AS LOGIN FROM LOGIN_FOR_VTI WHERE AD_GROUP = '" + hrRole + "'"; fleetQuery = "SELECT 'PMI\\' + LOGIN AS LOGIN FROM LOGIN_FOR_VTI WHERE AD_GROUP = '" + fleetRole + "'"; } EntityConnectionStringBuilder e = new EntityConnectionStringBuilder(ConfigurationManager.ConnectionStrings["FMSEntities"].ConnectionString); string connectionString = e.ProviderConnectionString; SqlConnection con = new SqlConnection(connectionString); con.Open(); SqlCommand query = new SqlCommand(hrQuery, con); SqlDataReader reader = query.ExecuteReader(); while (reader.Read()) { var hrLogin = "******" + reader[0].ToString() + "',"; hrList += hrLogin; } hrList = hrList.TrimEnd(','); query = new SqlCommand(fleetQuery, con); reader = query.ExecuteReader(); while (reader.Read()) { var fleetLogin = "******" + reader[0].ToString() + "',"; fleetList += fleetLogin; } fleetList = fleetList.TrimEnd(','); var hrQueryEmail = "SELECT EMAIL FROM " + serverIntranet + ".[dbo].[tbl_ADSI_User] WHERE FULL_NAME IN (" + hrList + ")"; var fleetQueryEmail = "SELECT EMAIL FROM " + serverIntranet + ".[dbo].[tbl_ADSI_User] WHERE FULL_NAME IN (" + fleetList + ")"; if (typeEnv == "VTI") { hrQueryEmail = "SELECT EMAIL FROM EMAIL_FOR_VTI WHERE FULL_NAME IN (" + hrList + ")"; fleetQueryEmail = "SELECT EMAIL FROM EMAIL_FOR_VTI WHERE FULL_NAME IN (" + fleetList + ")"; } query = new SqlCommand(hrQueryEmail, con); reader = query.ExecuteReader(); while (reader.Read()) { hrEmailList.Add(reader[0].ToString()); } query = new SqlCommand(fleetQueryEmail, con); reader = query.ExecuteReader(); while (reader.Read()) { fleetEmailList.Add(reader[0].ToString()); } reader.Close(); con.Close(); switch (input.ActionType) { case Enums.ActionType.Submit: //if submit from FLEET for wtc if (tempData.CREATED_BY == input.UserId && !isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Vendor Information Temporary Car"; bodyMail.Append("Dear " + vendorName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("You have new car request. Please check attached file<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); //if vendor exists if (!string.IsNullOrEmpty(vendorEmail)) { foreach (var item in input.Attachments) { rc.Attachments.Add(item); } rc.To.Add(vendorEmail); } foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } //if submit from HR for benefit if (tempData.CREATED_BY == input.UserId && isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Temporary Car Request"; bodyMail.Append("Dear Fleet Team,<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("new temporary car has been recorded as " + tempData.DOCUMENT_NUMBER_TEMP + "<br />"); bodyMail.AppendLine(); bodyMail.Append("Please submit detail vehicle information <a href='" + webRootUrl + "/TraTemporary/Edit/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=False" + "'>HERE</a><br /><br />"); bodyMail.AppendLine(); bodyMail.Append("For any assistance please contact " + creatorDataName + "<br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("HR Team"); bodyMail.AppendLine(); foreach (var item in fleetEmailList) { rc.To.Add(item); } foreach (var item in hrEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } rc.IsCCExist = true; break; case Enums.ActionType.Approve: //if Fleet Approve for benefit if (input.UserRole == Enums.UserRole.Fleet && isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Vendor Information Temporary Car"; bodyMail.Append("Dear " + vendorName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("You have new car request. Please check attached file<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); //if vendor exists if (!string.IsNullOrEmpty(vendorEmail)) { foreach (var item in input.Attachments) { rc.Attachments.Add(item); } rc.To.Add(vendorEmail); } rc.To.Add(creatorDataEmail); foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } rc.IsCCExist = true; break; case Enums.ActionType.Reject: //if Fleet Reject Benefit if (input.UserRole == Enums.UserRole.Fleet && isBenefit) { rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Temporary Car Request"; bodyMail.Append("Dear " + creatorDataName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been rejected by " + fleetApprovalDataName + " for below reason : " + _remarkService.GetRemarkById(input.Comment.Value).REMARK + "<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Please revised and re-submit your request <a href='" + webRootUrl + "/TraTemporary/Edit/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=False" + "'>HERE</a><br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); rc.To.Add(creatorDataEmail); foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.CC.Add(employeeDataEmail); } rc.IsCCExist = true; break; case Enums.ActionType.Completed: rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Completed Document"; bodyMail.Append("Dear " + creatorDataName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been completed by system<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Click <a href='" + webRootUrl + "/TraTemporary/Detail/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=True" + "'>HERE</a> to monitor your request<br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); rc.To.Add(creatorDataEmail); rc.CC.Add(employeeDataEmail); rc.CC.Add(fleetApprovalDataEmail); rc.IsCCExist = true; break; case Enums.ActionType.Cancel: rc.Subject = tempData.DOCUMENT_NUMBER_TEMP + " - Cancelled Document"; bodyMail.Append("Dear " + employeeDataName + ",<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Your temporary car request " + tempData.DOCUMENT_NUMBER_TEMP + " has been cancelled by " + creatorDataName + "<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Click <a href='" + webRootUrl + "/TraTemporary/Detail/" + tempData.TRA_TEMPORARY_ID + "?isPersonalDashboard=True" + "'>HERE</a> to monitor your request<br />"); bodyMail.AppendLine(); bodyMail.Append("Thanks<br /><br />"); bodyMail.AppendLine(); bodyMail.Append("Regards,<br />"); bodyMail.AppendLine(); bodyMail.Append("Fleet Team"); bodyMail.AppendLine(); rc.To.Add(employeeDataEmail); rc.CC.Add(creatorDataEmail); foreach (var item in fleetEmailList) { rc.CC.Add(item); } rc.IsCCExist = true; break; } rc.Body = bodyMail.ToString(); return(rc); }
public TemporaryDto Save(TemporaryDto item, Login userLogin) { TRA_TEMPORARY model; if (item == null) { throw new Exception("Invalid Data Entry"); } try { bool changed = false; if (item.TRA_TEMPORARY_ID > 0) { //update model = _TemporaryService.GetTemporaryById(item.TRA_TEMPORARY_ID); if (model == null) { throw new BLLException(ExceptionCodes.BLLExceptions.DataNotFound); } Mapper.Map <TemporaryDto, TRA_TEMPORARY>(item, model); changed = true; } else { var inputDoc = new GenerateDocNumberInput(); inputDoc.Month = DateTime.Now.Month; inputDoc.Year = DateTime.Now.Year; inputDoc.DocType = (int)Enums.DocumentType.TMP; item.DOCUMENT_NUMBER_TEMP = _docNumberService.GenerateNumber(inputDoc); item.IS_ACTIVE = true; item.EMPLOYEE_ID_CREATOR = userLogin.EMPLOYEE_ID; model = Mapper.Map <TRA_TEMPORARY>(item); } _TemporaryService.saveTemporary(model, userLogin); _uow.SaveChanges(); //set workflow history var input = new TempWorkflowDocumentInput() { DocumentId = model.TRA_TEMPORARY_ID, ActionType = Enums.ActionType.Modified, UserId = userLogin.USER_ID }; if (changed) { AddWorkflowHistory(input); } _uow.SaveChanges(); } catch (Exception exception) { throw exception; } return(Mapper.Map <TemporaryDto>(model)); }