/// <summary> /// To Save :Reject Booking Request from Revenue /// </summary> /// <param name="travelRequestApprovalModels"></param> /// <returns></returns> public int RejectSodBookingRequest_Revenue(TravelRequestApprovalModels trApprovalModels) { var s = 0; var updateItem = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId).ToList(); if (updateItem.Count() > 0) { foreach (var p in updateItem) { p.RevenueApprovedStatus = trApprovalModels.RevenueApprovedStatus; p.ApprovedByEmpId = trApprovalModels.ApprovedByEmpId; p.RevenueApprovedDate = System.DateTime.Now; p.Comment = trApprovalModels.Comment; } s = _context.SaveChanges(); //Change Travel Request Master Status var updateItems = _context.TravelRequestMasterModel.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId); foreach (var m in updateItems) { m.BookingStatus = "Rejected"; m.StatusDate = System.DateTime.Now; } s = _context.SaveChanges(); } return(s); }
/// <summary> /// To save Approved/Reject Booking Request /// </summary> /// <param name="travelRequestApprovalModels"></param> /// <returns></returns> public int ApproveOnlyHotelSodBookingRequest(TravelRequestApprovalModels travelRequestApprovalModels) { var c = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == travelRequestApprovalModels.TravelRequestId).ToList(); if (c.Count() > 0) { return(0); } _context.TravelRequestApprovalModels.Add(travelRequestApprovalModels); var s = _context.SaveChanges(); return(s); }
/// <summary> /// Update Booking Request :Revenue Approval /// </summary> /// <param name="trApprovalModels"></param> /// <returns></returns> public int UpdateSodBookingRequest_Revenue(TravelRequestApprovalModels trApprovalModels) { var s = 0; var updateItem = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId).ToList(); foreach (var p in updateItem) { p.RevenueApprovedDate = System.DateTime.Now; p.RevenueApprovedStatus = trApprovalModels.RevenueApprovedStatus; p.Comment = trApprovalModels.Comment; } s = _context.SaveChanges(); return(s); }
/// <summary> /// Update Booking Request :CXO Approval Level -2 /// </summary> /// <param name="trApprovalModels"></param> /// <returns></returns> public int UpdateSodBookingRequestCXO_Level2(TravelRequestApprovalModels trApprovalModels) { var s = 0; var updateItem = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId); foreach (var p in updateItem) { p.ApprovalStatusCLevel2 = trApprovalModels.ApprovalStatusCLevel2; p.ApprovedByEmpIdCLevel2 = trApprovalModels.ApprovedByEmpIdCLevel2; p.CLevelAppDate2 = System.DateTime.Now; p.CLevelComment2 = trApprovalModels.CLevelComment2; } s = _context.SaveChanges(); return(s); }
/// <summary> /// Rollback approval status by HOD /// </summary> /// <param name="trApprovalModels"></param> /// <returns></returns> public int RollBackApprovalByHOD(TravelRequestApprovalModels trApprovalModels) { //Booking Request approval rollback status var rollbackItem = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId).ToList(); if (rollbackItem.Count() > 0) { foreach (var p in rollbackItem) { p.ApprovalStatus = trApprovalModels.ApprovalStatus; p.ApprovedByEmpId = 0; p.Comment = trApprovalModels.Comment; } } return(_context.SaveChanges()); }
/// <summary> /// Rollback approval status by CXO 2 /// </summary> /// <param name="trApprovalModels"></param> /// <returns></returns> public int RollBackApprovalByCXO_Level2(TravelRequestApprovalModels trApprovalModels) { //Booking Request approval rollback status var rollbackItem = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId).ToList(); if (rollbackItem.Count() > 0) { foreach (var p in rollbackItem) { p.ApprovedByEmpIdCLevel2 = 0; p.ApprovalStatusCLevel2 = 0; p.CLevelComment2 = trApprovalModels.CLevelComment1; p.CLevelAppDate2 = trApprovalModels.CLevelAppDate1; p.CLevelAppDate2 = System.DateTime.Now; } } return(_context.SaveChanges()); }
public JsonResult ApproveSodBookingRequest(string travelReqId) { var jsonmsg = string.Empty; var s = 0; var reqType = travelReqId.Split(',')[2].Trim().ToUpper(); var bookingfor = travelReqId.Split(',')[3].Trim(); TempData["requestData"] = travelReqId; //Check Duplicate PNR var chkpnr = Services.ADO.SodCommonServices.CheckDuplicatePNR(Convert.ToInt64(travelReqId.Split(',')[0]), 1); if (!chkpnr.Equals("0")) { return(Json("Sorry : PNR has been already generated for this Booking Request ID." + travelReqId.Split(',')[0] + "Existing PNR No. :" + chkpnr, JsonRequestBehavior.AllowGet)); } //Initialize list for updating revenue status var approvalList = new TravelRequestApprovalModels() { TravelRequestId = Convert.ToInt64(travelReqId.Split(',')[0]), ApprovedByEmpId = Convert.ToInt32(Session["EmpId"].ToString()), RevenueApprovedStatus = 1, RevenueApprovedDate = System.DateTime.Now, Comment = "Approved from Revenue Dept." }; ////Non-Sod Confirm booking if (reqType.Equals("NON-SOD") && bookingfor.Equals("Confirm")) { //Update Revenue Status & Send to C-Level s = _sodApproverRepositorty.UpdateSodBookingRequest_Revenue(approvalList); if (s >= 1) { jsonmsg = "SOD Booking Request ID :" + reqType + "-" + travelReqId.Split(',')[0] + "\n Booking Type :Confirm \n\n Approval Process has been completed successfully.\n For the final PNR approval Request has been sent to CXO panel."; } else { jsonmsg = "Error : Error found in Request Processing."; } } return(Json(s >= 1 ? jsonmsg : string.Empty, JsonRequestBehavior.AllowGet)); }
/// <summary> /// To save Approved/Reject Booking Request /// </summary> /// <param name="travelRequestApprovalModels"></param> /// <returns></returns> public int ApproveSodBookingRequest(TravelRequestApprovalModels travelRequestApprovalModels) { var c = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == travelRequestApprovalModels.TravelRequestId).ToList(); if (c.Count() > 0) { return(1); } _context.TravelRequestApprovalModels.Add(travelRequestApprovalModels); var s = _context.SaveChanges(); var data = _context.TravelRequestMasterModel.Where(o => o.TravelRequestId == travelRequestApprovalModels.TravelRequestId && o.IsHotelRequired == true).ToList(); if (data.Count > 0) { UpdateHotelApprovalStatus(travelRequestApprovalModels.TravelRequestId); } return(s); }
/// <summary> /// To save Reject Booking Request /// </summary> /// <param name="travelRequestApprovalModels"></param> /// <returns></returns> public int RejectSodBookingRequest(TravelRequestApprovalModels trApprovalModels) { var s = 0; //For Travel Request Approval var updateItem = _context.TravelRequestApprovalModels.Where(o => o.TravelRequestId == trApprovalModels.TravelRequestId).ToList(); if (updateItem.Count() > 0) { foreach (var p in updateItem) { p.ApprovalStatus = trApprovalModels.ApprovalStatus; p.ApprovedByEmpId = trApprovalModels.ApprovedByEmpId; p.ApprovalDate = System.DateTime.Now; p.Comment = trApprovalModels.Comment; } } else { _context.TravelRequestApprovalModels.Add(trApprovalModels); } return(_context.SaveChanges()); }
/// <summary> /// Reject Sod Booking Request /// </summary> /// <returns></returns> public JsonResult RejectSodBookingRequest(string travelReqId) { var jsonmsg = string.Empty; var bookingType = string.Empty; var strHoldPNR = string.Empty; if ((travelReqId.Split(',')[0] == "undefined") || (travelReqId.Split(',')[0] == "")) { return(Json("Invalid record.", JsonRequestBehavior.AllowGet)); } var approvalList = new TravelRequestApprovalModels() { TravelRequestId = Convert.ToInt64(travelReqId.Split(',')[0]), ApprovedByEmpId = Convert.ToInt32(Session["EmpId"].ToString()), RevenueApprovedStatus = 2,//for reject RevenueApprovedDate = System.DateTime.Now, Comment = travelReqId.Split(',')[4] }; //Check Duplicate PNR var chkpnr = Services.ADO.SodCommonServices.CheckDuplicatePNR(Convert.ToInt64(travelReqId.Split(',')[0]), 1); if (!chkpnr.Equals("0")) { return(Json("Sorry : PNR has been already generated for this Booking Request ID-" + travelReqId.Split(',')[0] + ".Rejection is not allowed.\n Existing PNR No. :" + chkpnr, JsonRequestBehavior.AllowGet)); } //Get Data to show for rejection var sodRequestsList = new List <TravelRequestMasterModels>(); var sodflightList = new List <FlightDetailModels>(); var passengerList = new List <PassengerDetailModels>(); var approvalInfoList = new List <TravelRequestApprovalModels>(); var passengerMealsList = new List <PassengerMealAllocationModels>(); var hotelList = new List <TravelRequestHotelDetailModels>(); var s = _sodApproverRepositorty.RejectSodBookingRequest_Revenue(approvalList); if (s >= 1) { var dicList = new Dictionary <string, object>(); dicList = _sodApproverRepositorty.GetSodBookingInfoForPNR(Convert.ToInt64(travelReqId.Split(',')[0])); sodRequestsList = dicList["bookingInfo"] as List <TravelRequestMasterModels>; sodflightList = dicList["flightInfo"] as List <FlightDetailModels>; passengerList = dicList["passInfo"] as List <PassengerDetailModels>; approvalInfoList = dicList["approvalInfo"] as List <TravelRequestApprovalModels>; passengerMealsList = dicList["mealsInfo"] as List <PassengerMealAllocationModels>; hotelList = dicList["hotelInfo"] as List <TravelRequestHotelDetailModels>; bookingType = sodRequestsList[0].SodBookingTypeId == 1 ? "SOD" : "NON-SOD"; //by lata (to gnerate standby PNR and send Email notification if (travelReqId.Split(',')[5] == "1") { sodRequestsList[0].BookingFor = "standby"; var pnr = NavitaireServices.Generate_PNR(sodRequestsList, sodflightList, passengerList, passengerMealsList); pnr = pnr + "|0001.11"; var pnrc = "Your Standby PNR is :" + pnr.Split('|')[0]; //insert value in sodtravelrequestmaster_reject with standbyPNR SaveRejectwithStandByPNR(sodRequestsList[0], pnr); sendNotification_RejectStandby(sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0], pnrc); } //Hold PNR if (sodRequestsList[0].IsAmountPaidByTraveller.Equals(true)) { strHoldPNR = ConfigurationManager.AppSettings["strHOLDPNRPassenger"].Trim(); } else { strHoldPNR = ""; } //Send Rejection Email Notification var emailSubject = bookingType + " " + "Booking Request Notification Rejection through Revenue and Itinerary :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss"); var emailTemplateName = "SodBookingRequest_Rejection_User.html"; var emailCredentials = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0].ToString(), strHoldPNR); if (approvalInfoList[0].IsMandatoryTravel == 1) { emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[Team]", "Revenue Dept. and forwarded to C-Level Approval."); } else if (approvalInfoList[0].IsMandatoryTravel == 0) { emailCredentials.TemplateFilePath = emailCredentials.TemplateFilePath.Replace("[Team]", "Revenue Dept. and the booking request has been closed."); } TempData["emailData"] = emailCredentials; TempData["emailId"] = sodRequestsList[0].EmailId.Trim(); //Check If Mandatory for send email if (approvalInfoList[0].IsMandatoryTravel == 1) { emailSubject = bookingType + " " + "Booking Request Notification Rejection through Revenue and Itinerary :" + System.DateTime.Now.ToString("dd-MMM-yyyy-hh:mm:ss"); emailTemplateName = "SodBookingRequestNotificationTemplate_HOD.html"; //Send Notification to C-Level: Need C- Level Approval Email Template var counter = 0; var emailids = _sodApproverRepositorty.GetCXOMailId(sodRequestsList[0].CLevelApprover1, sodRequestsList[0].CLevelApprover2); string[] arr = emailids.Split('|'); if (arr.Length == 2) { counter = 1; } else if (arr.Length == 4) { counter = 2; } for (int i = 0; i <= counter; i++) { var skey = new StringBuilder(); skey.Append(sodRequestsList[0].TravelRequestId.ToString() + ","); skey.Append(sodRequestsList[0].EmailId.Trim() + ","); skey.Append(sodRequestsList[0].SodBookingTypeId.ToString() + ","); skey.Append(sodRequestsList[0].BookingFor.Trim() + ","); skey.Append(arr[i] + ","); skey.Append(sodRequestsList[0].IsMandatoryTravel.ToString() + ",RN"); var uri1 = ConfigurationManager.AppSettings["emailApprovalPathcxo"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=a"); var uri2 = ConfigurationManager.AppSettings["emailApprovalPathcxo"].Trim() + "?str=" + CipherURL.Encrypt(skey + "&type=r"); var approvaltype = "Please help to accord your Acceptance or Rejection."; var appLink = "<table><tr style='font-family:Arial;'><td style='width:110px; height:25px; background-color:#04B431;text-align:center;border-radius:5px'><a name='app' style='color:#fff; text-decoration:none;' href='" + uri1 + "'>Acceptance</a></td> <td> </td> <td style='width:110px; height:25px; background-color:#b33;text-align:center;border-radius:5px'><a name='rej' style='color:#fff; text-decoration:none;' href='" + uri2 + "'>Rejection</a> </td></tr></table>"; //Wrap link in template emailCredentials = EmailCredentials(emailSubject, emailTemplateName, sodRequestsList, sodflightList, passengerList, passengerMealsList, hotelList, travelReqId.Split(',')[0].ToString(), strHoldPNR); var templateData = emailCredentials.TemplateFilePath; var hodName = "Sir/Madam"; templateData = templateData.Replace("[approvaltype]", approvaltype); templateData = templateData.Replace("[appLink]", appLink); templateData = templateData.Replace("[hodName]", hodName); emailCredentials.TemplateFilePath = templateData; i = i + 1; EmailNotifications.SendBookingRequestNotificationTo_Requester(emailCredentials, arr[i]); } jsonmsg = bookingType + " " + "booking request has been rejected and has been sent to CXO Panel."; } else if (approvalInfoList[0].IsMandatoryTravel == 0) { //This methos also can be used by Revenue dept to close the Booking Request var trRequestMaster = new TravelRequestMasterModels() { TravelRequestId = Convert.ToInt64(travelReqId.Split(',')[0]), BookingStatus = "Close", StatusDate = System.DateTime.Now }; var c = _sodApproverRepositorty.CloseSodBookingRequest_HOD(trRequestMaster); jsonmsg = bookingType + " " + "booking request has been rejected and the request has been closed."; } } return(Json(s >= 1 ? jsonmsg : string.Empty, JsonRequestBehavior.AllowGet)); }