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; } }
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); }
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) { }
/// <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); }
/// <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); }
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()); }