Пример #1
0
        /// <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] + "&nbsp;<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] + "&nbsp;<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 !");
        }
Пример #2
0
        /// <summary>
        /// Approveonly hotel Bulk Booking Request for HOD
        /// </summary>
        /// <param name="travelReqId"></param>
        /// <returns></returns>
        public string ApproveOnlyHHotel_BulkBookingRequest(string travelReqId)
        {
            var jsonmsg      = string.Empty;
            var s            = 0;
            var approvalList = new List <BulkBookingRequestApprovalModels>();
            var IsRestList   = new List <BulkUploadModels>();
            int AddNo        = Int32.Parse(Request.QueryString[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
                    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)
            {
                jsonmsg = "Approval Process has been completed successfully for OAT HOTEL Booking Request No.-OAT Request No-" + travelReqId.Split(',')[0] + "&nbsp;<img src='../img/right.png' height='20px' width='20px'>";
                SendMailToUSer_AfterApprovalfromHOD(vlist, travelReqId.Split(',')[0]);
            }
            return(s >= 1 ? jsonmsg.ToString() : "Some error occured, Please try again.");
        }
Пример #3
0
        /// <summary>
        /// Reject Bulk Booking
        /// </summary>
        /// <param name="travelReqId"></param>
        /// <returns></returns>
        public string RejectSod_BulkBookingRequest(string travelReqId)
        {
            var jsonmsg      = string.Empty;
            var s            = 0;
            var approvalList = new List <BulkBookingRequestApprovalModels>();
            var IsRestList   = new List <BulkUploadModels>();

            if ((travelReqId.Split(',')[0] == "undefined") || (travelReqId.Split(',')[0] == ""))
            {
                return("Invalid record.");
            }
            int AddNo = Int32.Parse(Request.QueryString[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
                    //model.ApprovedByEmpId = Convert.ToInt32(Session["EmpId"].ToString().Trim());
                    model.ApprovedByEmpId = Session["EmpId"] == null?Convert.ToInt32(travelReqId.Split(',')[1].ToString().Trim()) : Convert.ToInt32(Session["EmpId"].ToString().Trim());

                    model.ApprovalStatus         = 2;
                    model.IsMandatoryTravel      = 0;//Is Mandatory Travel
                    model.ApprovalDate           = System.DateTime.Now;
                    model.Comment                = "Rejected 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 : Request Approval/Rejection Process has been already completed.Please go to selective option.");
            }
            s = _bulkUploadRepository.ApproveBulkSodBookingRequestSelective(approvalList);
            if (s >= 1)
            {
                var B       = string.Empty;
                var dicList = new Dictionary <string, object>();
                dicList = _bulkUploadRepository.GetBulkBookingInfoForPNRGenerationSelective(vlist);
                //update rejection Pnr status in bulk booking
                var c = _bulkUploadRepository.UpdateStatusOnRejection(vlist, travelReqId, B);
                //EMail Noitification
                var bulkDetailModel = new List <BulkUploadModels>();
                bulkDetailModel = dicList["bulkDetailInfoSelective"] as List <BulkUploadModels>;
                //var c = _bulkUploadRepository.RejectionCloseBulkBookingRequest(Convert.ToInt64(travelReqId.Split(',')[0]), 1);
                //Bulk Booking Requested User Info
                var bulkUserInfo = GetBulkBookingUserInfo(Convert.ToInt64(travelReqId.Split(',')[0]));
                var reqName      = bulkUserInfo[2] == "M" ? "Mr." : "Ms." + " " + bulkUserInfo[1];
                //Send Email Notification to spoc
                var emailSubject      = "SOD Bulk Booking Rejection Notification from HOD :" + System.DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt");
                var emailTemplateName = "SodBulkBookingRequest_Rejection_User.html";
                var emailCredentials  = EmailCredentials(emailSubject, emailTemplateName, bulkDetailModel, travelReqId.Split(',')[0], reqName);
                TempData["emailData"] = emailCredentials;
                TempData["emailId"]   = bulkUserInfo[3];
                jsonmsg = "Rejection process has been completed successfully for Bulk Booking Request No. -" + travelReqId.Split(',')[0];
                //sendEmailNotification();
            }
            else
            {
                jsonmsg = "Error :Rejection process has not been completed successfully.";
            }
            return(s >= 1 ? jsonmsg : string.Empty);
        }
Пример #4
0
        ///bulk hotel booking
        public string OnlyhotelBulkBooking(List <OATTravelRequestMasterModal> personalInfo, List <OATTravelRequestPassengerDetailModal> passangerInfo, List <OATTravelRequestFlightDetailModal> flightInfo, List <BulkUploadModels> hotelDetailList)
        {
            var    jsonmsg       = string.Empty;
            var    TrnId         = 0;
            var    bulkMaster    = new BulkUploadMasterModels();
            var    bulkList      = new List <BulkUploadModels>();
            var    empList       = new List <string>();
            var    bulkhotelList = new List <BulkTravelRequestHotelDetailModels>();
            var    time          = System.DateTime.Now.ToString("yyyyMMddHHss");
            string hodEmailId    = "";

            try
            {
                foreach (var i in hotelDetailList)
                {
                    var empcode   = (i.EmpCode.Length == 6) ? ("00" + i.EmpCode) : i.EmpCode;
                    var checkin   = i.CheckInDate;
                    var hotelcity = i.HotelCity;
                    var result    = _transportRepository.FindDuplicateDataHotel(empcode, checkin, hotelcity);
                    if (result == true)
                    {
                        jsonmsg             = "AlreadyExist";
                        TempData["jsonmsg"] = jsonmsg;
                        return(jsonmsg);
                    }
                }

                //Bulk Upload Master
                bulkMaster.FileName    = "OAT View Detail_" + time;
                bulkMaster.FilePath    = "../UploadFile/";
                bulkMaster.CreatedById = Session["EmpCode"].ToString().Trim();
                var UserName = Session["UserInfo"].ToString().Replace("Welcome : ", "").Split('|')[0].ToString();
                bulkMaster.CreatedByName   = UserName;
                bulkMaster.CreatedDate     = DateTime.Now;
                bulkMaster.TransactionDate = DateTime.Now;
                bulkMaster.DepartmentId    = Convert.ToInt32(Session["DeptIdCR"]);
                bulkMaster.VerticalCode    = Session["VerticalId"].ToString();
                bulkMaster.FileStatus      = "Open";
                bulkMaster.BookingType     = "OAT";
                Int32 n = 0;
                //Get HOD Details
                if (personalInfo[0].BookingFor != "Self" && personalInfo[0].BookingFor != "Others (On Behalf of Employee / Non-Employee)")
                {
                    hodEmailId = personalInfo[0].EmailId;
                }
                else
                {
                    hodEmailId = SOD.Services.ADO.SodCommonServices.GetHodEmailDetails(Session["EmpId"].ToString().Trim(), 2);
                }
                foreach (var lst in hotelDetailList)
                {
                    var list = passangerInfo.Where(p => p.EmployeeCode.Contains(lst.EmpCode)).ToList();
                    foreach (var l in list)
                    {
                        lst.SrNo        = n + 1;
                        lst.EmpCode     = (l.EmployeeCode.Length == 6) ? ("00" + l.EmployeeCode):l.EmployeeCode;
                        lst.Title       = l.Gender;
                        lst.FirstName   = l.FirstName;
                        lst.LastName    = l.LastName;
                        lst.Designation = l.Designation;
                        lst.Department  = l.Department;
                        lst.MobileNo    = l.PhoneNo;
                        lst.EmailId     = l.EmailId;
                        lst.CreatedDate = DateTime.Now;
                        lst.PNR         = "";
                        if (personalInfo[0].BookingFor != "Self" && personalInfo[0].BookingFor != "Others (On Behalf of Employee / Non-Employee)")
                        {
                            lst.PNR        = "ERR001";
                            lst.PNR_Status = 1;
                        }
                    }
                    n++;
                }

                if (hodEmailId.Length > 0)
                {
                    bulkMaster.ApproverEmailID = hodEmailId.Split(',')[0].ToString();
                    if (personalInfo[0].TravelRequestId != 0)
                    {
                        hotelDetailList[0].TrnId = personalInfo[0].TravelRequestId;
                        _bulkUploadRepository.saveBulk_newRow(hotelDetailList);
                        TrnId = Convert.ToInt32(personalInfo[0].TravelRequestId);
                    }
                    else
                    {
                        TrnId = _bulkUploadRepository.SaveBulkUploadTemp(bulkMaster, hotelDetailList);
                    }
                }
                else
                {
                    return(TrnId.ToString());
                }
                //Logged User Info
                if (personalInfo[0].BookingFor != "Self" && personalInfo[0].BookingFor != "Others (On Behalf of Employee / Non-Employee)")
                {
                    var approvalList = new List <BulkBookingRequestApprovalModels>();
                    BulkBookingRequestApprovalModels model = new BulkBookingRequestApprovalModels();
                    model.TrRequestId            = TrnId;//Travel Request
                    model.ApprovedByEmpId        = personalInfo[0].RequestedEmpId;
                    model.ApprovalStatus         = 1;
                    model.IsMandatoryTravel      = 0;//Is Mandatory Travel
                    model.ApprovalDate           = System.DateTime.Now;
                    model.Comment                = "SELF APPROVED";
                    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  = hotelDetailList[0].AddNo;
                    model.BReqId = 0;
                    approvalList.Add(model);
                    var s1 = _bulkUploadRepository.ApproveBulkSodBookingRequestSelective(approvalList);
                    if (s1 == 0)
                    {
                        jsonmsg = "Fail";
                    }
                    else
                    {
                        jsonmsg = TrnId.ToString();
                    }
                }
                else if (hodEmailId.Length > 0)
                {
                    var bulkController = DependencyResolver.Current.GetService <bulkController>();
                    var loggedUserInfo = bulkController.GetLoginUserInfo(Session["EmpId"].ToString().Trim());
                    var hodName        = hodEmailId.Split(',')[1];

                    //var reqName = loggedUserInfo[2] == "M" ? "Mr." : "Ms." + " " + loggedUserInfo[1];
                    //Send Email Notification to  Hod
                    var emailSubject = "OAT Hotel Booking Approval Notification :" + System.DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt");
                    //List<TravelRequestHotelDetailModels> hoteldetails = new List<TravelRequestHotelDetailModels>();
                    List <TravelRequestMasterModels> bookingInfo = new List <TravelRequestMasterModels>();
                    List <FlightDetailModels>        flightinfo  = new List <FlightDetailModels>();
                    var emailTemplateName_hod = "OATRequestNotificationTemplate_HOD.html";
                    var emailCredentials      = EmailCredentialsHotelHod(emailSubject, emailTemplateName_hod, personalInfo, bulkList, TrnId.ToString(), hodName, hotelDetailList, bookingInfo, flightinfo);


                    var skey = new StringBuilder();
                    skey.Append(TrnId.ToString() + ",");
                    skey.Append(hodEmailId.Split(',')[2] + ",");

                    var uri1    = ConfigurationManager.AppSettings["emailBulkApprovalPath"].Trim() + "?str=" + skey + "&type=Ha" + "&edit=" + hotelDetailList[0].AddNo;
                    var uri2    = ConfigurationManager.AppSettings["emailBulkApprovalPath"].Trim() + "?str=" + skey + "&type=Hr" + "&edit=" + hotelDetailList[0].AddNo;
                    var essurl  = ConfigurationManager.AppSettings["essportalUrl"].Trim();
                    var appLink = string.Empty;
                    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>";
                    appLink = appLink + "<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>";

                    var templateData = emailCredentials.TemplateFilePath;
                    //var hodName = hodEmailId.Split(',')[1];

                    templateData = templateData.Replace("[appLink]", appLink);
                    //templateData = templateData.Replace("[hodName]", hodName);
                    emailCredentials.TemplateFilePath = templateData;

                    TempData["emailData_Hod"] = emailCredentials;
                    TempData["emailId_Hod"]   = hodEmailId.Split(',')[0];
                    jsonmsg = TrnId.ToString();
                }
            }
            catch (Exception ex)
            {
                jsonmsg = "Fail";
            }
            return(jsonmsg);
        }