コード例 #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 !");
        }