Exemple #1
0
        private IEnumerable <FlightDetailType> CreateFlightTypeForVolarisFlight(VolarisFlight flight)
        {
            var flightsDetails = new List <FlightDetailType>();

            if (flight != null && flight.Segments.GetAll().Any())
            {
                foreach (var segment in flight.Segments.GetAll().Cast <VolarisSegment>().ToList())
                {
                    var flightDetail = new FlightDetailType
                    {
                        AirlineCode    = "Y4",
                        FlightNumber   = segment.ID,
                        ClassOfService = segment.ClassOfService,
                        DepartureInfo  = new FlightDetailTypeDepartureInfo()
                        {
                            DepartureAirport  = segment.DepartureStation,
                            DepartureDateTime = segment.DepartureTime
                        },
                        ArrivalInfo = new FlightDetailTypeArrivalInfo()
                        {
                            ArrivalDateTimeSpecified     = true,
                            ArrivalAirport               = segment.ArrivalStation,
                            ArrivalDateTime              = segment.ArrivalTime,
                            FinalDestinationInd          = true,
                            FinalDestinationIndSpecified = true
                        }
                    };

                    flightsDetails.Add(flightDetail);
                }
            }
            return(flightsDetails.ToArray());
        }
 /// <summary>
 /// Sets the flight.
 /// </summary>
 /// <param name="flight">The flight.</param>
 public void SetFlight(VolarisFlight flight)
 {
     SetSegment(flight);
     if (!ShowOnlySegments)
     {
         SetPassangerFare(flight);
     }
 }
        /// <summary>
        /// Sets the passanger fare.
        /// </summary>
        /// <param name="flight">The flight.</param>
        private void SetPassangerFare(VolarisFlight flight)
        {
            int fareCounter = container.RowCount + 1;

            foreach (var fare in flight.PassangerFares.GetPassangerFares())
            {
                var newPassangerFareControl = new ucVolarisPreviousPassangerPricing();
                newPassangerFareControl.Dock = DockStyle.Top;
                newPassangerFareControl.SetFare(fare);
                container.Controls.Add(newPassangerFareControl, 0, fareCounter);
                fareCounter += 1;
            }
        }
Exemple #4
0
        public void Validate_ValidDepartureTime_ReturnNothing()
        {
            var flight = new VolarisFlight
            {
                ID = "120",
                DepartureStation = "MEX",
                ArrivalStation   = "CUN",
                DepartureTime    = DateTime.Now.AddHours(1),
                ArrivalTime      = DateTime.Now.AddHours(8),
                BasePrice        = 2000.00m,
                OwnerCompany     = "Volaris",
                Segments         = null
            };

            Assert.DoesNotThrow(flight.Validate);
        }
Exemple #5
0
        public void Validate_InvalidArrivalStation_ReturnException()
        {
            var flight = new VolarisFlight
            {
                ID = "120",
                DepartureStation = "MEX",
                ArrivalStation   = "",
                DepartureTime    = DateTime.Now.AddHours(1),
                ArrivalTime      = DateTime.Now.AddHours(8),
                BasePrice        = 2000.00m,
                OwnerCompany     = "Volaris",
                Segments         = null
            };

            Assert.Throws <Exception>(flight.Validate);
        }
        /// <summary>
        /// Sets the segment.
        /// </summary>
        /// <param name="flight">The flight.</param>
        private void SetSegment(VolarisFlight flight)
        {
            int segmentCounter = 0;

            if (container.RowCount != 1)
            {
                segmentCounter = container.RowCount;
            }
            foreach (var segment in flight.Segments.GetAll().Cast <VolarisSegment>())
            {
                var newSegmentControl = new ucVolarisPreviousSegmentPricing();
                newSegmentControl.Dock = DockStyle.Top;
                newSegmentControl.SetSegment(segment);
                container.Controls.Add(newSegmentControl, 0, segmentCounter);
                segmentCounter += 1;
            }
        }
        private IEnumerable <FlightDetailType> CreateFlightDetails(VolarisFlight flight)
        {
            return(flight.Segments.GetAll().Select(seg => new FlightDetailType
            {
                AirlineCode = "Y4",
                FlightNumber = seg.ID,
                ArrivalInfo = new FlightDetailTypeArrivalInfo
                {
                    ArrivalAirport = seg.ArrivalStation,
                    ArrivalDateTime = seg.ArrivalTime,
                    ArrivalDateTimeSpecified = true
                },
                DepartureInfo = new FlightDetailTypeDepartureInfo
                {
                    CurrentLocalDateTime = DateTime.Now,
                    DepartureAirport = seg.DepartureStation,
                    CurrentLocalDateTimeSpecified = true,

                    DepartureDateTime = seg.DepartureTime
                },
            }).ToArray());
        }
 private void SetFlightTitle(VolarisFlight flight)
 {
 }
Exemple #9
0
        /// <summary>
        /// Gets the passanger fares.
        /// </summary>
        /// <param name="itinerary">The itinerary.</param>
        /// <param name="volarisFlight"> </param>
        /// <returns></returns>
        private VolarisPassangerFares GetPassangerFares(OTA_AirLowFareSearchRSPricedItinerary itinerary, VolarisFlight volarisFlight)
        {
            var passangerFares = new VolarisPassangerFares();

            if (AvailabilityRequest.HasAdults)
            {
                SetPassangerFare(itinerary, passangerFares.Adult, "ADT", volarisFlight.IsInternational);
            }

            if (AvailabilityRequest.HasChild)
            {
                SetPassangerFare(itinerary, passangerFares.Child, "CNN", volarisFlight.IsInternational);
            }
            if (AvailabilityRequest.HasInfant)
            {
                passangerFares.Infant.Iva.Total      = 0;
                passangerFares.Infant.Tua.Total      = 0;
                passangerFares.Infant.Extra.Total    = 0;
                passangerFares.Infant.Total          = 0;
                passangerFares.Infant.Discount.Total = 0;
                passangerFares.Infant.PassangerType  = VolarisPassangerType.Infant;
                passangerFares.Infant.Count          = AvailabilityRequest.Pasengers.Infant.Count;
                //SetPassangerFare(itinerary, passangerFares.Infant, "INF", volarisFlight.IsInternational);passangerFares.Infant
            }
            return(passangerFares);
        }
Exemple #10
0
        /// <summary>
        /// Gets the flight and segment.
        /// </summary>
        /// <param name="itinerary">The itinerary.</param>
        /// <returns></returns>
        private VolarisFlight GetFlightAndSegment(OTA_AirLowFareSearchRSPricedItinerary itinerary)
        {
            var volarisFlight = new VolarisFlight();

            volarisFlight.OwnerCompany     = "Volaris";
            volarisFlight.DepartureStation = AvailabilityRequest.DepartureStation;
            volarisFlight.ArrivalStation   = AvailabilityRequest.ArrivalStation;
            volarisFlight.TotalPrice       = itinerary.TotalAmount;
            if (itinerary.AirItinerary != null)
            {
                var originsAndDestionations = itinerary.AirItinerary.OriginDestinationOptions;
                if (originsAndDestionations.Any())
                {
                    var pricingInfo =
                        itinerary.AirItineraryPricingInfo.FirstOrDefault(i => i.PassengerTypeQuantity.Code.Equals("ADT"));

                    if (pricingInfo != null)
                    {
                        if (pricingInfo.ItinTotalFare.EquivFare != null)
                        {
                            volarisFlight.BasePrice       = Convert.ToDecimal(pricingInfo.ItinTotalFare.EquivFare.Amount);
                            volarisFlight.IsInternational = true;
                        }
                        else
                        {
                            volarisFlight.BasePrice = Convert.ToDecimal(pricingInfo.ItinTotalFare.BaseFare.Amount);
                        }
                    }
                    var segments = originsAndDestionations.SelectMany(o => o.FlightSegment);
                    if (segments.Any())
                    {
                        if (segments.Count() == 1)
                        {
                            var flightNumber = segments.FirstOrDefault().FlightNumber;
                            volarisFlight.ID = flightNumber;
                        }
                        foreach (var segment in segments)
                        {
                            if (DateTime.Now.Month - (Convert.ToInt32(segment.DepartureDateTime.Substring(0, 2))) <= 0)
                            {
                                volarisFlight.Segments.Add(new VolarisSegment
                                {
                                    ArrivalStation   = segment.DestinationLocation.LocationCode,
                                    ArrivalTime      = DateTime.ParseExact(segment.ArrivalDateTime, "MM-ddTHH:mm:ss", new CultureInfo("es-MX")),
                                    DepartureStation = segment.OriginLocation.LocationCode,
                                    DepartureTime    = DateTime.ParseExact(segment.DepartureDateTime, "MM-ddTHH:mm:ss", new CultureInfo("es-MX")),
                                    ID             = segment.FlightNumber,
                                    ClassOfService = segment.ResBookDesigCode,
                                    NumberInParty  = AvailabilityRequest.TotalOfPassangers,
                                    Type           = SegmentType.Normal,
                                });
                            }
                            else
                            {
                                volarisFlight.Segments.Add(new VolarisSegment
                                {
                                    ArrivalStation   = segment.DestinationLocation.LocationCode,
                                    ArrivalTime      = DateTime.ParseExact(segment.ArrivalDateTime, "MM-ddTHH:mm:ss", new CultureInfo("es-MX")).AddYears(1),
                                    DepartureStation = segment.OriginLocation.LocationCode,
                                    DepartureTime    = (DateTime.ParseExact(segment.DepartureDateTime, "MM-ddTHH:mm:ss", new CultureInfo("es-MX"))).AddYears(1),
                                    ID             = segment.FlightNumber,
                                    ClassOfService = segment.ResBookDesigCode,
                                    NumberInParty  = AvailabilityRequest.TotalOfPassangers,
                                    Type           = SegmentType.Normal,
                                });
                            }
                        }
                    }
                }
            }

            return(volarisFlight);
        }
Exemple #11
0
        private string[] GetSabreCommandVolaris(List <VolarisFlight> flights)
        {
            int infante = 1;

            if (VolarisSession.PagoVolaris.MetodoDePago == "MC")
            {
                VolarisSession.PagoVolaris.MetodoDePago = "CA";
            }
            VolarisSession.ContAdult          = VolarisSession.contAdult;
            VolarisSession.BaseTotalPayAdult  = 0;
            VolarisSession.IVATotalPayAdult   = 0;
            VolarisSession.TUATotalPayAdult   = 0;
            VolarisSession.OtrosTotalPayAdult = 0;

            VolarisSession.BaseTotalPayAdult  = (VolarisSession.baseTotalPayAdult * VolarisSession.contAdult);
            VolarisSession.IVATotalPayAdult   = (VolarisSession.ivaTotalPayAdult * VolarisSession.contAdult);
            VolarisSession.TUATotalPayAdult   = (VolarisSession.tuaTotalPayAdult * VolarisSession.contAdult);
            VolarisSession.OtrosTotalPayAdult = (VolarisSession.otrosTotalPayAdult * VolarisSession.contAdult);
            VolarisSession.AdditionalAdult    = VolarisSession.additionalAdult;
            //quitar
            string comando = string.Empty;

            var commands = new List <string>();

            for (int i = 0; i < flights.Count; i++)
            {
                string        currentFlightID = "0" + 1;
                VolarisFlight theFlight       = flights.FirstOrDefault();

                if (VolarisSession.ContAdult > 0)
                {
                    var adultCountingLine = new
                    {
                        TotalBasePriceSum = ((VolarisSession.BaseTotalPayAdult - VolarisSession.DiscountTotalPayAdult) / VolarisSession.ContAdult),
                        TotalIVASuma      = (VolarisSession.IVATotalPayAdult / VolarisSession.ContAdult),
                        TotalTuaSum       = (VolarisSession.TUATotalPayAdult / VolarisSession.ContAdult),
                        TotalExtraSum     = (VolarisSession.OtrosTotalPayAdult / VolarisSession.ContAdult)
                    };
                    foreach (InterJetPassanger pax in VolarisSession.InterJetPassangers)
                    {
                        if (pax.IsAdult)
                        {
                            //boleto = LogTicketsBL.LogTicketsVolaris("7916309061"); //solo para pruebas
                            boleto = LogTicketsBL.LogTicketsVolaris(pax.UniqueID + currentFlightID[1]);
                            if (!string.IsNullOrEmpty(boleto.TicketNumber))
                            {
                                NewTicketVolais(boleto.TicketNumber);
                            }
                            else
                            {
                                boleto.TicketNumber = pax.UniqueID + currentFlightID[1];
                            }

                            LogTicketsBL.LogTicketsVolarisInsert(boleto.TicketNumber, DateTime.Now, VolarisSession.PNR, string.Empty);

                            string command = string.Format("AC/Y4/{0}/P01/{1}/{2}/D{3}/D{7}/ONE/{4} {5}/1/{6}",
                                                           boleto.TicketNumber,
                                                           decimal.Truncate(adultCountingLine.TotalBasePriceSum),
                                                           decimal.Truncate(adultCountingLine.TotalTuaSum),
                                                           decimal.Truncate(adultCountingLine.TotalIVASuma),
                                                           "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                           pax.AccountLineParameter,
                                                           VolarisSession.IsInternational ? "F" : "D",
                                                           decimal.Truncate(
                                                               adultCountingLine.TotalExtraSum));
                            string commandt = command.Trim();
                            commands.Add("" + commandt + "");
                            //quitar la linea
                            comando = comando + commandt;

                            decimal C11 = adultCountingLine.TotalBasePriceSum + adultCountingLine.TotalIVASuma + adultCountingLine.TotalTuaSum + adultCountingLine.TotalExtraSum;
                            amountC11[cont] = amountC11[cont] + C11;
                            amountC16[cont] = amountC16[cont] + adultCountingLine.TotalBasePriceSum;
                            cont++;
                            foreach (AdditionalAccountingLine add in VolarisSession.AdditionalAdult)
                            {
                                if (add.Description == "11" && add.Amount > 0)
                                {
                                    string command11Percent = string.Format("AC/Y4/{0}/P0/{1}/{2}/D{3}/D{7}/ONE/{4} {5}/1/{6}/E-V-Y4/P-SAL",
                                                                            string.Format("{0}{1}", "88", boleto.TicketNumber.Substring(2, 8)),
                                                                            decimal.Truncate((add.Amount * 100)),
                                                                            decimal.Truncate(0),
                                                                            decimal.Truncate((add.Iva * 100)),
                                                                            "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                                            pax.AccountLineParameter,
                                                                            VolarisSession.IsInternational ? "F" : "D",
                                                                            decimal.Truncate(0));
                                    commands.Add(command11Percent);
                                    comando = comando + "  " + command11Percent;
                                }
                                if (add.Description == "16" && add.Amount > 0)
                                {
                                    string command16Percent = string.Format("AC/Y4/{0}/P0/{1}/{2}/D{3}/D{7}/ONE/{4} {5}/1/{6}/E-V-Y4/P-SAL",
                                                                            string.Format("{0}{1}", "99", boleto.TicketNumber.Substring(2, 8)),
                                                                            decimal.Truncate((add.Amount * 100)),
                                                                            decimal.Truncate(0),
                                                                            decimal.Truncate((add.Iva * 100)),
                                                                            "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                                            pax.AccountLineParameter,
                                                                            VolarisSession.IsInternational ? "F" : "D",
                                                                            decimal.Truncate(0));
                                    commands.Add(command16Percent);
                                    comando = comando + "  " + command16Percent;
                                }

                                if (VolarisSession.ContInfant > 0 && infante <= VolarisSession.ContInfant)
                                {
                                    string command11Percent = string.Format("AC/Y4/{0}/P0/{1}/{2}/D{3}/D{7}/ONE/{4} {5}/1/{6}/E-V-Y4/P-SAL",
                                                                            string.Format("{0}{1}", "88", boleto.TicketNumber.Substring(2, 8)),
                                                                            decimal.Truncate(((VolarisSession.Extra / VolarisSession.ContInfant) * 100)),
                                                                            decimal.Truncate(0),
                                                                            decimal.Truncate((0)),
                                                                            "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                                            pax.AccountLineParameter,
                                                                            VolarisSession.IsInternational ? "F" : "D",
                                                                            decimal.Truncate(0));
                                    commands.Add(command11Percent);
                                    comando = comando + "  " + command11Percent;
                                    infante++;
                                }
                            }
                        }
                    }
                }

                if (VolarisSession.ContChild > 0)
                {
                    VolarisSession.ContChild          = VolarisSession.contChild;
                    VolarisSession.BaseTotalPayChild  = 0;
                    VolarisSession.IVATotalPayChild   = 0;
                    VolarisSession.TUATotalPayChild   = 0;
                    VolarisSession.OtrosTotalPayChild = 0;

                    VolarisSession.BaseTotalPayChild  = (VolarisSession.baseTotalPayChild * VolarisSession.ContChild);
                    VolarisSession.IVATotalPayChild   = (VolarisSession.ivaTotalPayChild * VolarisSession.ContChild);
                    VolarisSession.TUATotalPayChild   = (VolarisSession.tuaTotalPayChild * VolarisSession.ContChild);
                    VolarisSession.OtrosTotalPayChild = (VolarisSession.otrosTotalPayChild * VolarisSession.ContChild);
                    VolarisSession.AdditionalChild    = VolarisSession.additionalChild;


                    var childCountingLine = new
                    {
                        TotalBasePriceSum = ((VolarisSession.BaseTotalPayChild - VolarisSession.DiscountTotalPayChild) / VolarisSession.ContChild),
                        TotalIVASuma      = (VolarisSession.IVATotalPayChild / VolarisSession.ContChild),
                        TotalTuaSum       = (VolarisSession.TUATotalPayChild / VolarisSession.ContChild),
                        TotalExtraSum     = (VolarisSession.OtrosTotalPayChild / VolarisSession.ContChild)
                    };

                    foreach (InterJetPassanger pax in VolarisSession.InterJetPassangers)
                    {
                        if (pax.IsChild)
                        {
                            boleto = LogTicketsBL.LogTicketsVolaris(pax.UniqueID + currentFlightID[1]);
                            if (!string.IsNullOrEmpty(boleto.TicketNumber))
                            {
                                NewTicketVolais(boleto.TicketNumber);
                            }
                            else
                            {
                                boleto.TicketNumber = pax.UniqueID + currentFlightID[1];
                            }

                            LogTicketsBL.LogTicketsVolarisInsert(boleto.TicketNumber, DateTime.Now, VolarisSession.PNR, string.Empty);

                            string command = string.Format(InterJetAddAccountingLineCommand.ACCOUNT_LINE_STRING_TEMPLATE_VOLARIS,
                                                           boleto.TicketNumber,
                                                           decimal.Truncate(childCountingLine.TotalBasePriceSum),
                                                           decimal.Truncate(childCountingLine.TotalTuaSum),
                                                           decimal.Truncate(childCountingLine.TotalIVASuma),
                                                           "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                           pax.AccountLineParameter,
                                                           VolarisSession.IsInternational ? "F" : "D",
                                                           decimal.Truncate(childCountingLine.TotalExtraSum));
                            commands.Add(command);
                            decimal C11 = childCountingLine.TotalBasePriceSum + childCountingLine.TotalIVASuma + childCountingLine.TotalTuaSum + childCountingLine.TotalExtraSum;
                            amountC11[cont] = amountC11[cont] + C11;
                            amountC16[cont] = amountC16[cont] + childCountingLine.TotalBasePriceSum;
                            cont++;
                            //quitar la linea
                            comando = comando + "  " + command;

                            foreach (AdditionalAccountingLine add in VolarisSession.AdditionalChild)
                            {
                                if (add.Description == "11" && add.Amount > 0)
                                {
                                    string command11Percent = string.Format("AC/Y4/{0}/P0/{1}/{2}/D{3}/D{7}/ONE/{4} {5}/1/{6}/E-V-Y4/P-SAL",
                                                                            string.Format("{0}{1}", "88", boleto.TicketNumber.Substring(2, 8)),
                                                                            decimal.Truncate((add.Amount * 100)),
                                                                            decimal.Truncate(0),
                                                                            decimal.Truncate((add.Iva * 100)),
                                                                            "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                                            pax.AccountLineParameter,
                                                                            VolarisSession.IsInternational ? "F" : "D",
                                                                            decimal.Truncate(0));
                                    commands.Add(command11Percent);
                                    comando = comando + "  " + command11Percent;
                                }
                                if (add.Description == "16" && add.Amount > 0)
                                {
                                    string command16Percent = string.Format("AC/Y4/{0}/P0/{1}/{2}/D{3}/D{7}/ONE/{4} {5}/1/{6}/E-V-Y4/P-SAL",
                                                                            string.Format("{0}{1}", "99", boleto.TicketNumber.Substring(2, 8)),
                                                                            decimal.Truncate((add.Amount * 100)),
                                                                            decimal.Truncate(0),
                                                                            decimal.Truncate((add.Iva * 100)),
                                                                            "CC" + VolarisSession.PagoVolaris.MetodoDePago + VolarisSession.PagoVolaris.NumeroTarjeta,
                                                                            pax.AccountLineParameter,
                                                                            VolarisSession.IsInternational ? "F" : "D",
                                                                            decimal.Truncate(0));
                                    commands.Add(command16Percent);
                                    comando = comando + "  " + command16Percent;
                                }
                            }
                        }
                    }
                }
            }
            //quitar
            ImpuestosBajoCosto.LineaContable = comando;
            ImpuestosBajoCostoBL.UpdateImpuestosBajoCosto(ImpuestosBajoCosto.Id, ImpuestosBajoCosto.ImpuestosObtenidos, VolarisSession.PNR, ImpuestosBajoCosto.ImpuestosMostrados, ImpuestosBajoCosto.LineaContable, string.Empty);
            return(commands.ToArray());
        }