/// <summary> /// Approve Booking Request for HOD /// </summary> /// <param name="travelReqId"></param> /// <returns></returns> public string ApproveSod_BulkBookingRequest(string travelReqId) { var jsonmsg = string.Empty; var s = 0; var approvalList = new List <BulkBookingRequestApprovalModels>(); var IsRestList = new List <BulkUploadModels>(); int AddNo = Convert.ToInt32(travelReqId.Split('&')[2].Split('=')[1]); //int AddNo = Convert.ToInt32(travelReqId.Split('&')[2]); IsRestList = _bulkUploadRepository.IsEmpRestForApproval(int.Parse(travelReqId.Split(',')[0]), AddNo); var vlist = new List <long>(); if (IsRestList.Count > 0) { for (var i = 0; i < IsRestList.Count; i++) { //Check Duplicate PNR var appStatus = Services.ADO.SodCommonServices.CheckDuplicatePNR_edit(Convert.ToInt64(travelReqId.Split(',')[0]), 2, AddNo, Convert.ToInt32(IsRestList[0].BReqId)); if (appStatus.Equals("1")) { return("Sorry : Approval Process has been already completed."); } if (appStatus.Equals("2")) { return("Sorry : Rejection Process has been already completed."); } BulkBookingRequestApprovalModels model = new BulkBookingRequestApprovalModels(); model.TrRequestId = Convert.ToInt64(travelReqId.Split(',')[0]);//Travel Request var dfh = Session["EmpId"]; var dfjk = Convert.ToInt32(travelReqId.Split(',')[1].ToString().Trim()); //model.ApprovedByEmpId = (Session["EmpId"] != null && int.Parse(Session["EmpId"].ToString()) > 0 ) ? Convert.ToInt32(Session["EmpId"].ToString().Trim()) : Convert.ToInt32(travelReqId.Split(',')[1].ToString().Trim()); // added by soni 16 sep 2019 model.ApprovedByEmpId = Session["EmpId"] == null?Convert.ToInt32(travelReqId.Split(',')[1].ToString().Trim()) : Convert.ToInt32(Session["EmpId"].ToString().Trim()); model.ApprovalStatus = 1; model.IsMandatoryTravel = 0;//Is Mandatory Travel model.ApprovalDate = System.DateTime.Now; model.Comment = "Approved from HOD"; model.ApprovedByEmpIdCLevel1 = 0; model.ApprovedByEmpIdCLevel2 = 0; model.ApprovalStatusCLevel1 = 0; model.ApprovalStatusCLevel2 = 0; model.CLevelComment1 = ""; model.CLevelComment2 = ""; model.CLevelAppDate1 = DateTime.Parse("01/01/1900"); model.CLevelAppDate2 = DateTime.Parse("01/01/1900"); model.RevenueApprovedStatus = 0; model.RevenueApprovedDate = DateTime.Parse("01/01/1900"); model.AddNo = IsRestList[i].AddNo; model.BReqId = IsRestList[i].BReqId; approvalList.Add(model); vlist.Add(IsRestList[i].BReqId); } ; } else { return("Sorry : Approval Process has been already completed."); } s = _bulkUploadRepository.ApproveBulkSodBookingRequestSelective(approvalList); //Check Duplicate PNR if (s >= 1) { var countflightRequired = IsRestList.Where(x => x.IsHotelRequired == true).ToList().Count();//added by soni 16 sep var pnrList = new List <BulkEmployeeList>(); pnrList = GeneratePNR_BulkApproval_Selective(vlist, travelReqId.Split(',')[0].ToString().Trim()); var counter = 0; var trr = "<table class='table' style='width:30%;'>"; trr = trr + "<thead style='background-color:#EE1D23'><tr><th scope=col>Employee Code</th><th scope=col>PNR</th></tr></thead> <tbody>"; foreach (var pnr in pnrList) { if (pnr.PNRStatus.Split('|')[0].ToString() == "ERR001") { counter++; } trr = trr + "<tr><td>" + pnr.EmpCode + "</td><td>" + pnr.PNRStatus.Split('|')[0] + "</td></tr>"; } //if (counter.Equals(pnrList.Count())) //commented by soni 16 sep 2019 if (counter.Equals(countflightRequired)) { trr = trr + "<tr><td colspan='2'> PNR Error : ERR001 PNR generation fail for Bulk Booking Request No.- SOD BULK-" + travelReqId.Split(',')[0] + " <img src='../img/rejected.png' height='20px' width='20px'></td></tr>"; var approvalListrollback = new BulkBookingRequestApprovalModels() { TrRequestId = Convert.ToInt64(travelReqId.Split(',')[0]), ApprovalStatus = 0, Comment = "" }; _bulkUploadRepository.RollBackApprovalByHOD(approvalListrollback); } else { trr = trr + "<tr><td colspan='2'> PNR generation process has been completed successfully for Bulk Booking Request No.-SOD BULK-" + travelReqId.Split(',')[0] + " <img src='../img/right.png' height='20px' width='20px'></td></tr>"; } trr = trr + "</tbody></table>"; jsonmsg = trr; if (!counter.Equals(countflightRequired) && pnrList.Count > 0) { SendMailToUSer_AfterApprovalfromHOD(vlist, travelReqId.Split(',')[0]); } } return(s >= 1 ? jsonmsg.ToString() : "PNR Error BK-ERR002: Please contect to helpdesk !"); }