Exemplo n.º 1
0
        public void CancelPNR(Int64 PNRId, int userid)
        {
            PNRs result = _ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault();

            if (result != null)
            {
                result.TicketStatusId = 2;
                result.UpdatedBy      = userid;
                result.UpdatedDate    = GeneralRepository.CurrentDateTime();

                _ent.ApplyCurrentValues(result.EntityKey.EntitySetName, result);
                _ent.SaveChanges();
            }
            else
            {
                TBO_MasterPNRs tboResult = _ent.TBO_MasterPNRs.Where(x => x.MPNRId == PNRId).FirstOrDefault();
                if (tboResult != null)
                {
                    tboResult.TicketStatusId = 2;
                    tboResult.UpdatedBy      = userid;
                    tboResult.UpdatedDate    = GeneralRepository.CurrentDateTime();

                    _ent.ApplyCurrentValues(tboResult.EntityKey.EntitySetName, tboResult);
                    _ent.SaveChanges();
                }
            }
        }
Exemplo n.º 2
0
        public void CancelPNR(Int64?mPnrId)
        {
            var            obj         = SessionStore.GetTravelSession();
            TBO_MasterPNRs objToUpdate = new TBO_MasterPNRs();

            objToUpdate = entity.TBO_MasterPNRs.Where(m => m.MPNRId == mPnrId).FirstOrDefault();
            objToUpdate.TicketStatusId = 2;
            objToUpdate.UpdatedBy      = obj.AppUserId;
            objToUpdate.UpdatedDate    = DateTime.UtcNow;
            entity.ApplyCurrentValues(objToUpdate.EntityKey.EntitySetName, objToUpdate);
            entity.SaveChanges();
        }
Exemplo n.º 3
0
        public TBO_MasterPNRs GetTicketStatusIdByMPNRId(long MPNRId)
        {
            TBO_MasterPNRs masterpnrs = ent.TBO_MasterPNRs.Where(x => x.MPNRId == MPNRId).FirstOrDefault();

            if (masterpnrs != null)
            {
                return(masterpnrs);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        public void RevertCancel(Int64 MPNRId)
        {
            PNRs pnrResult = ent.PNRs.Where(x => x.PNRId == MPNRId).FirstOrDefault();

            if (pnrResult != null)
            {
                pnrResult.TicketStatusId = 31;
                ent.ApplyCurrentValues(pnrResult.EntityKey.EntitySetName, pnrResult);
                ent.SaveChanges();
            }
            else
            {
                TBO_MasterPNRs result = ent.TBO_MasterPNRs.Where(x => x.MPNRId == MPNRId).FirstOrDefault();

                result.TicketStatusId = 31;

                ent.ApplyCurrentValues(result.EntityKey.EntitySetName, result);
                ent.SaveChanges();
            }
        }
Exemplo n.º 5
0
        public void Close(long Id, int userid)
        {
            PNRs result = ent.PNRs.Where(x => x.PNRId == Id).FirstOrDefault();

            if (result != null)
            {
                result.TicketStatusId = 9;
                result.UpdatedBy      = userid;
                result.UpdatedDate    = DateTime.UtcNow;

                ent.ApplyCurrentValues(result.EntityKey.EntitySetName, result);
                ent.SaveChanges();
            }
            else
            {
                TBO_MasterPNRs tboResult = ent.TBO_MasterPNRs.Where(x => x.MPNRId == Id).FirstOrDefault();
                tboResult.TicketStatusId = 9;
                tboResult.UpdatedBy      = userid;
                tboResult.UpdatedDate    = DateTime.UtcNow;

                ent.ApplyCurrentValues(tboResult.EntityKey.EntitySetName, tboResult);
                ent.SaveChanges();
            }
        }
Exemplo n.º 6
0
        public FareModel GetFare(int PNRId)
        {
            FareModel      model     = new FareModel();
            TBO_MasterPNRs newResult = null;

            var result = _ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault();

            if (result != null)
            {
                int    TicketStatusId = result.TicketStatusId;
                var    collection     = _ent.Passengers.Where(x => x.PNRId == PNRId).ToList();
                double Fare           = 0;
                double discount       = 0;
                double Tax            = 0;
                double ServiceCharge  = 0;
                foreach (var item in collection)
                {
                    Fare          += item.Fare + item.MarkupAmount + item.FSC;
                    discount      += item.DiscountAmount;
                    Tax           += item.TaxAmount;
                    ServiceCharge += item.ServiceCharge;
                }

                model.Fare          = Fare;
                model.Discount      = discount;
                model.Tax           = Tax;
                model.ServiceCharge = ServiceCharge;
            }
            else if ((newResult = _ent.TBO_MasterPNRs.Where(x => x.MPNRId == PNRId).FirstOrDefault()) != null)
            {
                int    TicketStatusId = newResult.TicketStatusId;
                var    collection     = _ent.TBO_PNRTickets.Where(x => x.MPNRId == PNRId).ToList();
                double Fare           = 0;
                double discount       = 0;
                double Tax            = 0;
                double ServiceCharge  = 0;
                foreach (var item in collection)
                {
                    Fare          += item.BaseFare + item.MarkupAmount + item.FSC;
                    discount      += item.DiscountAmount;
                    Tax           += item.SellingTax;
                    ServiceCharge += item.ServiceCharge;
                }

                model.Fare          = Fare;
                model.Discount      = discount;
                model.Tax           = Tax;
                model.ServiceCharge = ServiceCharge;
            }



            //if (TicketStatusId == 12)
            // {
            //     Int64 VoucherNo = _ent.GL_VoucherNumber.Where(x => x.TranId == PNRId).OrderByDescending(x=>x.VoucherNumber).FirstOrDefault().VoucherNumber;
            //     int Agentid = _ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault().AgentId;
            //     Int64 AgentLedgerId = _ent.GL_Ledgers.Where(x => x.AccTypeId == 2 && x.Id == Agentid).FirstOrDefault().LedgerId;

            //     if(_ent.GL_Transactions.Where(x => x.VoucherNo == VoucherNo && x.LedgerId == AgentLedgerId && x.Dr_Cr == "D")!=null)
            //         model.Fare = _ent.GL_Transactions.Where(x => x.VoucherNo == VoucherNo && x.LedgerId == AgentLedgerId && x.Dr_Cr == "D").FirstOrDefault().Amount;
            //     if(_ent.GL_Transactions.Where(x => x.VoucherNo == VoucherNo && x.LedgerId == AgentLedgerId && x.Dr_Cr == "C").FirstOrDefault()!=null)
            //         model.Discount = _ent.GL_Transactions.Where(x => x.VoucherNo == VoucherNo && x.LedgerId == AgentLedgerId && x.Dr_Cr == "C").FirstOrDefault().Amount;
            // }
            return(model);
        }
        public ServiceResponse Save(OfflineBookViewModel models)
        {
            try
            {
                int    confirmTicketstatus = 24;
                var    model     = models;
                long   masterpnr = 0;
                string bookingref;
                using (var ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    ATLTravelPortal.Areas.Airline.Repository.GeneralProvider generalProvider = new GeneralProvider();
                    var  agent = generalProvider.GetAgents(model.UserDetail.AgentId);
                    bool isByPassDealByBranch      = generalProvider.GetBranchSettings(agent.BranchOfficeId, 12);
                    bool isByPassDealByDistrubutor = generalProvider.GetDistributorSettings(agent.DistributorId, 13);

                    System.Data.Objects.ObjectParameter BranchaDeal     = new System.Data.Objects.ObjectParameter("Amount", 0);
                    System.Data.Objects.ObjectParameter DistributorDeal = new System.Data.Objects.ObjectParameter("Amount", 0);

                    var    currency        = generalProvider.GetCurrencyByCode("NPR");
                    double totalFareAmount = models.PNRDetails[0].PassengerDetail[0].FareDetail.SellingBaseFare + models.PNRDetails[0].PassengerDetail[0].FareDetail.SellingFSC - models.PNRDetails[0].PassengerDetail[0].FareDetail.DiscountAmount;

                    var branchDealAmount = _entity.Air_GetBranchDeal
                                               (agent.DistributorId,
                                               model.PNRDetails[0].SegmentDetail.FirstOrDefault().AirlineId, model.PNRDetails[0].SegmentDetail.FirstOrDefault().DepartCityId,
                                               model.PNRDetails[0].SegmentDetail.FirstOrDefault().ArrivalCityId, false, totalFareAmount, currency.CurrencyId, model.PNRDetails[0].SegmentDetail.FirstOrDefault().BIC, BranchaDeal);


                    var distributorDealAmount = _entity.Air_GetBranchDeal
                                                    (agent.AgentId,
                                                    model.PNRDetails[0].SegmentDetail.FirstOrDefault().AirlineId, model.PNRDetails[0].SegmentDetail.FirstOrDefault().DepartCityId,
                                                    model.PNRDetails[0].SegmentDetail.FirstOrDefault().ArrivalCityId, false, totalFareAmount + (double)BranchaDeal.Value + branchDealAmount, currency.CurrencyId, model.PNRDetails[0].SegmentDetail.FirstOrDefault().BIC, DistributorDeal);



                    var mpnrDetail = new TBO_MasterPNRs
                    {
                        SessionId         = model.UserDetail.SessionId.ToString(),
                        AgentId           = model.UserDetail.AgentId,
                        ServiceProviderId = 5,
                        Prefix            = model.PNRDetails[0].PassengerDetail[0].Prefix.ToString(),
                        FirstName         = model.PNRDetails[0].PassengerDetail[0].FirstName.ToUpper(),
                        MiddleName        = model.PNRDetails[0].PassengerDetail[0].MiddleName,
                        LastName          = model.PNRDetails[0].PassengerDetail[0].LastName.ToUpper(),
                        TicketStatusId    = confirmTicketstatus,
                        Email             = "*****@*****.**",
                        Phone             = model.PNRDetails[0].PassengerDetail[0].Phone,
                        Address           = "104 Level 1 The Chamber, Mumbai",
                        CreatedBy         = model.UserDetail.AppUserId,
                        CreatedDate       = DateTime.UtcNow,
                        IssuedDate        = DateTime.UtcNow,
                        DispatchedDate    = null,
                        //  BookingReference = "AH" + RandomGenerator.GenerateRandomAlphanumeric()
                        isBranchByPassDeal      = isByPassDealByBranch,
                        isDistributorByPassDeal = isByPassDealByDistrubutor
                    };

                    _entity.AddToTBO_MasterPNRs(mpnrDetail);
                    _entity.SaveChanges();

                    mpnrDetail.BookingReference = "AH" + RandomGenerator.GenerateRandomAlphanumeric() + mpnrDetail.MPNRId;
                    _entity.ApplyCurrentValues(mpnrDetail.EntityKey.EntitySetName, mpnrDetail);
                    _entity.SaveChanges();


                    masterpnr  = mpnrDetail.MPNRId;
                    bookingref = mpnrDetail.BookingReference;

                    foreach (var pnrData in model.PNRDetails)
                    {
                        var pnrDetail = new TBO_PNRs
                        {
                            MPNRId         = mpnrDetail.MPNRId,
                            BookingId      = 0,
                            TicketStatusId = confirmTicketstatus,
                            RecLoc         = pnrData.PNR.ToUpper(),
                            // BookingSource = pnrData.BookingSource,
                        };

                        _entity.AddToTBO_PNRs(pnrDetail);
                        _entity.SaveChanges();

                        var sectorDetail = new TBO_PNRsectors
                        {
                            MPNRId            = mpnrDetail.MPNRId,
                            PNRId             = pnrDetail.PNRId,
                            PlatingCarrierId  = pnrData.SegmentDetail.FirstOrDefault().AirlineId,
                            DepartCityId      = pnrData.SegmentDetail.FirstOrDefault().DepartCityId,
                            DepartDate        = pnrData.SegmentDetail.FirstOrDefault().DepartDate.Value,
                            DepartTime        = pnrData.SegmentDetail.FirstOrDefault().DepartTime.Value,
                            DestinationCityId = pnrData.SegmentDetail.Last().ArrivalCityId,
                            ArriveDate        = pnrData.SegmentDetail.LastOrDefault().ArrivalDate.Value,
                            ArriveTime        = pnrData.SegmentDetail.FirstOrDefault().ArrivalTime.Value,
                            StartTerminal     = pnrData.SegmentDetail.FirstOrDefault().StartTerminal,
                            EndTerminal       = pnrData.SegmentDetail.LastOrDefault().EndTerminal,
                        };
                        _entity.AddToTBO_PNRsectors(sectorDetail);
                        _entity.SaveChanges();

                        foreach (var seg in pnrData.SegmentDetail)
                        {
                            var segmentDetail = new TBO_PNRsegments
                            {
                                MPNRId           = mpnrDetail.MPNRId,
                                PNRId            = pnrDetail.PNRId,
                                SectorId         = sectorDetail.SectorId,
                                AirlineId        = seg.AirlineId,
                                FlightNumber     = seg.FlightNumber,
                                DepartCityId     = seg.DepartCityId,
                                DepartDate       = seg.DepartDate.Value,
                                DepartTime       = seg.DepartTime.Value,
                                ArrivalCityId    = seg.ArrivalCityId,
                                ArrivalDate      = seg.ArrivalDate.Value,
                                ArrivalTime      = seg.ArrivalTime.Value,
                                BIC              = seg.BIC,
                                StartTerminal    = seg.StartTerminal,
                                EndTerminal      = seg.EndTerminal,
                                AirlineRefNumber = seg.AirlineRefNumber.ToUpper(),
                                VndRemarks       = seg.VndRemarks,
                                FlightDuration   =
                                    String.IsNullOrEmpty(seg.Duration)
                                        ? (seg.FlightDuration.Hours.ToString() + ":" +
                                           seg.FlightDuration.Minutes.ToString())
                                        : seg.Duration,
                                Baggage   = Baggage.No.ToString(),
                                FareBasis = null,
                                FlightKey = null,
                                NVB       = null,
                                NVA       = null
                            };

                            _entity.AddToTBO_PNRsegments(segmentDetail);
                            _entity.SaveChanges();
                        }

                        foreach (var paxData in pnrData.PassengerDetail)
                        {
                            var paxDetail = new TBO_Passengers();
                            paxDetail.PNRId      = pnrDetail.PNRId;
                            paxDetail.MPNRId     = mpnrDetail.MPNRId;
                            paxDetail.Prefix     = paxData.Prefix.ToString();
                            paxDetail.FirstName  = paxData.FirstName.ToUpper();
                            paxDetail.MiddleName = paxData.MiddleName;
                            paxDetail.LastName   = paxData.LastName.ToUpper();
                            paxDetail.Gender     = "N/A";
                            if (!string.IsNullOrEmpty(paxData.DOB.Trim()))
                            {
                                paxDetail.DOB = Convert.ToDateTime(paxData.DOB);
                            }
                            paxDetail.Nationality     = paxData.NationalityId;
                            paxDetail.Country         = paxData.PassportIssuedCountryId;
                            paxDetail.PassportNumber  = paxData.PassportNumber;
                            paxDetail.PassportExpDate = paxData.PassportExpDate;

                            paxDetail.Phone           = paxData.Phone;
                            paxDetail.Email           = "*****@*****.**";
                            paxDetail.PassengerTypeId = (int)paxData.PaxType;
                            paxDetail.FFAirline       = paxData.FrequentFlyerAirlineCode != null ? (int?)_entity.Airlines.Where(
                                x => x.AirlineCode == paxData.FrequentFlyerAirlineCode).
                                                        Select(y => y.AirlineId).FirstOrDefault()
                                    : null;
                            paxDetail.FFNumber       = paxData.FrequentFlyerNo != "" ? paxData.FrequentFlyerNo : null;
                            paxDetail.DOCA           = "2nd Floor, Buddha Complex, Swayambhu, Kathmandu, Nepal";
                            paxDetail.SSR            = paxData.Meal != null ? paxData.Meal.Code : null;
                            paxDetail.SSRDescription =
                                paxData.Meal != null
                                    ? paxData.Meal.Description = paxData.Meal.Code
                                    : null;
                            paxDetail.SeatName        = paxData.Seat != null ? paxData.Seat.Code : null;
                            paxDetail.SeatDescription =
                                paxData.Seat != null ? paxData.Seat.Description : null;
                            paxDetail.UpdatedBy   = 1;
                            paxDetail.UpdatedDate = DateTime.UtcNow;

                            _entity.AddToTBO_Passengers(paxDetail);
                            _entity.SaveChanges();

                            var fareDetail = new TBO_PNRTickets
                            {
                                PNRId            = pnrDetail.PNRId,
                                MPNRId           = mpnrDetail.MPNRId,
                                PassengerId      = paxDetail.PassengerId,
                                TicketNumber     = paxData.FareDetail.TicketNumber.ToUpper(),
                                AdditionalTxnFee = paxData.FareDetail.SellingAdditionalTxnFee,
                                AirlineTransFee  = paxData.FareDetail.AirlineTransFee,
                                BaseFare         = paxData.FareDetail.SellingBaseFare,
                                Tax               = paxData.FareDetail.SellingTax,
                                OtherCharges      = paxData.FareDetail.SellingOtherCharges,
                                ServiceTax        = paxData.FareDetail.SellingServiceTax,
                                MarkupAmount      = paxData.FareDetail.MarkupAmount,
                                CommissionAmount  = 0,
                                DiscountAmount    = paxData.FareDetail.CommissionAmount,
                                Currency          = "NPR",
                                FSC               = paxData.FareDetail.SellingFSC,
                                TicketStatusId    = confirmTicketstatus,
                                TktId             = paxData.FareDetail.TicketId,
                                TourCode          = paxData.FareDetail.TourCode,
                                ValidatingAirline = paxData.FareDetail.ValidatingAirline,
                                Remarks           = paxData.FareDetail.Remarks,
                                CorporateCode     = paxData.FareDetail.CorporateCode,
                                EndorseMent       = paxData.FareDetail.Endorsement,
                                //value with Rounding
                                SellingAdditionalTxnFee =
                                    Math.Ceiling(paxData.FareDetail.SellingAdditionalTxnFee),
                                SellingAirlineTransFee =
                                    Math.Ceiling(paxData.FareDetail.SellingAirlineTransFee),
                                SellingBaseFare     = Math.Ceiling(paxData.FareDetail.SellingBaseFare),
                                SellingTax          = Math.Ceiling(paxData.FareDetail.SellingTax),
                                SellingOtherCharges =
                                    Math.Ceiling(paxData.FareDetail.SellingOtherCharges),
                                SellingServiceTax =
                                    Math.Ceiling(paxData.FareDetail.SellingServiceTax),
                                SellingFSC            = Math.Ceiling(paxData.FareDetail.SellingFSC),
                                BranchDealAmount      = (double)BranchaDeal.Value,
                                DistrubutorDealAmount = (double)DistributorDeal.Value
                            };

                            _entity.AddToTBO_PNRTickets(fareDetail);
                            _entity.SaveChanges();
                        }
                    }

                    ts.Complete();
                }
                IssueTicket(masterpnr, model.UserDetail.AppUserId);

                _entity.SaveChanges();
                _entity.Air_UpdateTicketStatusId(masterpnr, "ISSUEPNR", false, model.UserDetail.AppUserId);

                _response = new ServiceResponse("Record successfully created!! \n Your Booking Reference No is :" + bookingref, MessageType.Success, true, "Save");


                return(_response);
            }
            catch (Exception ex)
            {
                _response = new ServiceResponse(ex.Message, MessageType.Exception, false, "Save");
                return(_response);
            }
        }
Exemplo n.º 8
0
        public int GetTBOAgentIdbyPNRId(long PNRid)
        {
            TBO_MasterPNRs pnrs = ent.TBO_MasterPNRs.Where(x => x.MPNRId == PNRid).FirstOrDefault();

            return(pnrs.AgentId);
        }