/// <summary> /// Gets the num cancel rec close. /// </summary> /// <param name="resp">The resp.</param> /// <param name="itineraryObject">The itinerary object.</param> /// <param name="recLog">The rec log.</param> public void getNumCancelRecClose(TravelItinerary.TravelItineraryReadRS resp, OTATravelItineraryObjectHotel itineraryObject, string recLog) { List <string> lstCancelRecClose = new List <string>(); for (int k = 0; k < (resp.TravelItinerary.SpecialServiceInfo != null ? resp.TravelItinerary.SpecialServiceInfo.Length : 0); k++) { if (resp.TravelItinerary.SpecialServiceInfo[k].Service.Text.Length > 7) { if (resp.TravelItinerary.SpecialServiceInfo[k].Service.Text[0].Substring(3, 3).ToString() == "HHL") { if (resp.TravelItinerary.SpecialServiceInfo[k].Service.SSR_Code == "OSI") { index = resp.TravelItinerary.SpecialServiceInfo[k].Service.Text[0].IndexOf("/CX-"); } if (index > 0) { chainCodeCancel = resp.TravelItinerary.SpecialServiceInfo[k].Service.Text[0].Split(' ')[2].ToString(); itineraryObject.Status = "1"; itineraryObject.CancelNumberList.Add(chainCodeCancel + "/" + resp.TravelItinerary.SpecialServiceInfo[k].Service.Text[0].Split('/')[1].ToString()); itineraryObject.Record = string.IsNullOrEmpty(resp.TravelItinerary.ItineraryRef.ID) ? recLog : resp.TravelItinerary.ItineraryRef.ID; } } } } itineraryObject.Status = "1"; itineraryObject.Record = string.IsNullOrEmpty(resp.TravelItinerary.ItineraryRef.ID) ? recLog : resp.TravelItinerary.ItineraryRef.ID; }
public List <SCDCBoleto> getBoleto(string convid, string ipcc, string securitytoken, string RecLoc, string pcc) { List <SCDCBoleto> boletos = new List <SCDCBoleto>(); try { TravelItinerary2.TravelItineraryReadRS resp = getResponseService(convid, ipcc, securitytoken, RecLoc); foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoTicketing ticketing in resp.TravelItinerary.ItineraryInfo.Ticketing) { if (!string.IsNullOrEmpty(ticketing.eTicketNumber)) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItinerarySpecialServiceInfo specialServiceInfo in resp.TravelItinerary.SpecialServiceInfo) { if (specialServiceInfo.Service.SSR_Type == "TKNE") { if (specialServiceInfo.Service.Text[0].Contains(ticketing.eTicketNumber.Split(' ')[1].Split('-')[0].Split('/')[0])) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItem reservationItem in resp.TravelItinerary.ItineraryInfo.ReservationItems) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemFlightSegment flightSegment in reservationItem.FlightSegment != null ? reservationItem.FlightSegment : new TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemFlightSegment[0]) { if (Int32.Parse(flightSegment.FlightNumber) == Int32.Parse(specialServiceInfo.Service.Text[0].Split(' ')[1].Substring(6, 4))) { SCDCBoleto boleto = new SCDCBoleto(); boleto.RecLoc = resp.TravelItinerary.ItineraryRef.ID; boleto.FechaCreacion = DateTime.ParseExact(resp.TravelItinerary.ItineraryRef.Source.CreateDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); boleto.Segmento = Int32.Parse(flightSegment.SegmentNumber).ToString(); boleto.NumeroBoleto = ticketing.eTicketNumber.Split(' ')[1].Split('-')[0].Split('/')[0]; boleto.Nombre = ticketing.eTicketNumber.Split(' ')[2]; boleto.Fecha = DateTime.ParseExact(ticketing.eTicketNumber.Split(' ')[4].Substring(0, 10), "HHmm/ddMMM", new System.Globalization.CultureInfo("en-US")); boleto.FechaEmision = boleto.Fecha; boleto.BoletoElectronico = ticketing.eTicketNumber.Split(' ')[0] == "TE" ? "y" : "n"; boleto.Indicador = ticketing.eTicketNumber.Split(' ')[0]; boleto.Pais = ticketing.eTicketNumber.Split(' ')[1].Split('-')[1]; boleto.Indicador2 = ticketing.eTicketNumber.Split(' ').Length == 5 ? ticketing.eTicketNumber.Split(' ')[4].Split('*')[1] : ticketing.eTicketNumber.Split(' ')[5]; boleto.Pcc = ticketing.eTicketNumber.Split(' ')[3].Split('*')[0]; boletos.Add(boleto); } } } } } } } } } catch { } return(boletos); }
private TravelItinerary.TravelItineraryReadRS getResponseService(string convid, string ipcc, string securitytoken, string RecLoc) { #region ====== Connection with web service ====== //itineraryObject.Status = true; DateTime dt = DateTime.UtcNow; string tstamp = dt.ToString("s") + "Z"; TravelItinerary.MessageHeader msgHeader = new TravelItinerary.MessageHeader(); msgHeader.ConversationId = convid; // Put ConversationId in req header TravelItinerary.From from = new TravelItinerary.From(); TravelItinerary.PartyId fromPartyId = new TravelItinerary.PartyId(); TravelItinerary.PartyId[] fromPartyIdArr = new TravelItinerary.PartyId[1]; fromPartyId.Value = "99999"; fromPartyIdArr[0] = fromPartyId; from.PartyId = fromPartyIdArr; msgHeader.From = from; TravelItinerary.To to = new TravelItinerary.To(); TravelItinerary.PartyId toPartyId = new TravelItinerary.PartyId(); TravelItinerary.PartyId[] toPartyIdArr = new TravelItinerary.PartyId[1]; toPartyId.Value = "123123"; toPartyIdArr[0] = toPartyId; to.PartyId = toPartyIdArr; msgHeader.To = to; msgHeader.CPAId = ipcc; msgHeader.Action = "TravelItineraryReadLLSRQ"; TravelItinerary.Service service = new TravelItinerary.Service(); service.Value = "Travel Itinerary Read"; msgHeader.Service = service; TravelItinerary.MessageData msgData = new TravelItinerary.MessageData(); msgData.MessageId = "mid:[email protected]"; msgData.Timestamp = tstamp; msgHeader.MessageData = msgData; TravelItinerary.Security1 security = new TravelItinerary.Security1(); security.BinarySecurityToken = securitytoken; // Put BinarySecurityToken in req header //Create the request object req and the value for the IPCC in the payload of the request. string GEAServices = ConfigurationManager.AppSettings["ServiciosGEA"]; TravelItinerary.TravelItineraryReadRQMessagingDetails messagingDetails = new TravelItinerary2.TravelItineraryReadRQMessagingDetails(); messagingDetails.Transaction = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction[1]; messagingDetails.Transaction[0] = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction(); messagingDetails.Transaction[0].Code = TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransactionCode.PNR; //for (int i = 0; i < GEAServices.Split('|').Length; i++) //{ // if (GEAServices.Split('|')[i] == "HOT") // { // messagingDetails.Transaction[i] = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction(); // messagingDetails.Transaction[i].Code = TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransactionCode.HOT; // } // else if (GEAServices.Split('|')[i] == "CAR") // { // messagingDetails.Transaction[i] = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction(); // messagingDetails.Transaction[i].Code = TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransactionCode.CAR; // } //} TravelItinerary.TravelItineraryReadRQ req = new TravelItinerary.TravelItineraryReadRQ(); //TravelItinerary.OTA_TravelItineraryReadRQPOS pos = new TravelItinerary.OTA_TravelItineraryReadRQPOS(); //TravelItinerary.OTA_TravelItineraryReadRQPOSSource source = new TravelItinerary.OTA_TravelItineraryReadRQPOSSource(); //source.PseudoCityCode = ipcc; //pos.Source = source; //req.POS = pos; req.TimeStamp = DateTime.Now; req.TimeStampSpecified = true; req.MessagingDetails = messagingDetails; req.Version = "2.2.0"; // Specify the service version //TravelItinerary.OTA_TravelItineraryReadRQTPA_Extensions tpa = new TravelItinerary.OTA_TravelItineraryReadRQTPA_Extensions(); //TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails msj = new TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails(); //TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset code = new TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset(); //code.Code = "PN43"; //msj.MDRSubset = code; //tpa.MessagingDetails = msj; //req.TPA_Extensions = tpa; TravelItinerary.TravelItineraryReadRQUniqueID uniqueID = new TravelItinerary.TravelItineraryReadRQUniqueID(); uniqueID.ID = RecLoc; req.UniqueID = uniqueID; TravelItinerary.TravelItineraryReadService serviceObj = new TravelItinerary.TravelItineraryReadService(); serviceObj.MessageHeaderValue = msgHeader; serviceObj.Security = security; //System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(req.GetType()); //System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\RESP\otatravelItineraryHotelReq " + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".xml"); //writer.Serialize(file, req); //file.Close(); //Call the service and assign the response object. TravelItinerary.TravelItineraryReadRS resp = serviceObj.TravelItineraryReadRQ(req); // Send the request. //Retrieve data from the resp object, such as flight number and airline code, and display //it on standard output. the client can retrieve other data from the response the same wayi. #endregion return(resp); }
public SCDCResumen getResumen(string convid, string ipcc, string securitytoken, string RecLoc, string pcc) { SCDCResumen resumen = null; string errorMessage = string.Empty; try { TravelItinerary2.TravelItineraryReadRS resp = getResponseService(convid, ipcc, securitytoken, RecLoc); if (resp.ApplicationResults.Error == null) { resumen = new SCDCResumen(); resumen.RecLoc = RecLoc; resumen.FechaCreacion = DateTime.ParseExact(resp.TravelItinerary.ItineraryRef.Source.CreateDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); resumen.FechaTrans = DateTime.Now; resumen.Apellido = resp.TravelItinerary.CustomerInfo.PersonName[0].Surname; resumen.Nombre = resp.TravelItinerary.CustomerInfo.PersonName[0].GivenName; resumen.BsgEspaciosLibres = Int32.Parse(resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo != null ? resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo.NumSeatsRemaining : "0"); resumen.BsgGrupo = resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo != null ? "y" : "n"; resumen.BsgNombre = resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo != null ? resp.TravelItinerary.CustomerInfo.PersonName[0].GroupInfo.Name : string.Empty; resumen.Dk = resp.TravelItinerary.ItineraryRef.CustomerIdentifier ?? string.Empty; resumen.FechaInicio = DateTime.Now.AddYears(3); DateTime fechaFin = DateTime.Now.AddYears(-3); List <string> departure = new List <string>(); List <string> arrival = new List <string>(); #region Busqueda de fechafin y fechainicio foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItem item in resp.TravelItinerary.ItineraryInfo.ReservationItems) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemFlightSegment flightSegment in item.FlightSegment == null ? new TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemFlightSegment[0] : item.FlightSegment) { departure.Add(flightSegment.OriginLocation.LocationCode); arrival.Add(flightSegment.DestinationLocation.LocationCode); if (resumen.FechaInicio >= DateTime.ParseExact(flightSegment.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) { resumen.FechaInicio = DateTime.ParseExact(flightSegment.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); } if (fechaFin <= DateTime.ParseExact(flightSegment.ArrivalDateTime, "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) { fechaFin = DateTime.ParseExact(flightSegment.ArrivalDateTime, "MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); } } //if (item.AirTaxi != null) //{ // if (resumen.FechaInicio >= DateTime.ParseExact(item.AirTaxi.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) // { // resumen.FechaInicio = DateTime.ParseExact(item.AirTaxi.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); // } // if (fechaFin <= DateTime.ParseExact(item.AirTaxi.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) // { // fechaFin = DateTime.ParseExact(item.AirTaxi.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); // resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); // } //} if (item.Hotel != null) { departure.Add(item.Hotel.BasicPropertyInfo.ChainCode); arrival.Add(item.Hotel.BasicPropertyInfo.ChainCode); if (resumen.FechaInicio >= DateTime.ParseExact(item.Hotel.TimeSpan.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) { resumen.FechaInicio = DateTime.ParseExact(item.Hotel.TimeSpan.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); } if (fechaFin <= DateTime.ParseExact(item.Hotel.TimeSpan.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) { fechaFin = DateTime.ParseExact(item.Hotel.TimeSpan.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); } } //if (item.Insurance != null) //{ // if (resumen.FechaInicio >= DateTime.ParseExact(item.Insurance.InsuranceDetails.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) // { // resumen.FechaInicio = DateTime.ParseExact(item.Insurance.InsuranceDetails.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); // } // if (fechaFin <= DateTime.ParseExact(item.Insurance.InsuranceDetails.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) // { // fechaFin = DateTime.ParseExact(item.Insurance.InsuranceDetails.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); // resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); // } //} //if (item.MiscSegment != null) //{ // if (resumen.FechaInicio >= DateTime.ParseExact(item.MiscSegment.DepartureDateTime, "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) // { // resumen.FechaInicio = DateTime.ParseExact(item.MiscSegment.DepartureDateTime, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); // } // if (fechaFin <= DateTime.ParseExact(item.MiscSegment.DepartureDateTime, "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) // { // fechaFin = DateTime.ParseExact(item.MiscSegment.DepartureDateTime, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); // resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); // } //} //if (item.Surface != null) //{ // if (resumen.FechaInicio >= DateTime.ParseExact(item.Surface.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) // { // resumen.FechaInicio = DateTime.ParseExact(item.Surface.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); // } // if (fechaFin <= DateTime.ParseExact(item.Surface.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) // { // fechaFin = DateTime.ParseExact(item.Surface.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); // resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); // } //} //if (item.Tour != null) //{ // if (resumen.FechaInicio >= DateTime.ParseExact(item.Tour.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) // { // resumen.FechaInicio = DateTime.ParseExact(item.Tour.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); // } // if (fechaFin <= DateTime.ParseExact(item.Tour.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture)) // { // fechaFin = DateTime.ParseExact(item.Tour.DepartureDateTime, "yyyy-MM-ddTHH:mm", System.Globalization.CultureInfo.CurrentCulture); // resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); // } //} if (item.Vehicle != null) { departure.Add(item.Vehicle.VehVendorAvail.Vendor.Code); arrival.Add(item.Vehicle.VehVendorAvail.Vendor.Code); if (resumen.FechaInicio >= DateTime.ParseExact(item.Vehicle.VehRentalCore.PickUpDateTime, item.Vehicle.VehRentalCore.PickUpDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) { resumen.FechaInicio = DateTime.ParseExact(item.Vehicle.VehRentalCore.PickUpDateTime, item.Vehicle.VehRentalCore.PickUpDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture); } if (fechaFin <= DateTime.ParseExact(item.Vehicle.VehRentalCore.ReturnDateTime, item.Vehicle.VehRentalCore.ReturnDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture)) { fechaFin = DateTime.ParseExact(item.Vehicle.VehRentalCore.ReturnDateTime, item.Vehicle.VehRentalCore.ReturnDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture); resumen.FechaFin = fechaFin.ToString("MMM dd yyyy HH:mm tt", new System.Globalization.CultureInfo("es-MX")); } } } #endregion for (int i = 0; i < departure.Count; i++) { if (string.IsNullOrEmpty(resumen.Ruta)) { resumen.Ruta = string.Concat(departure[i], '-', arrival[i]); } else if ((departure[i] != arrival[i - 1]) && departure[i].Length <= 3) { resumen.Ruta = string.Concat(resumen.Ruta, '-', departure[i], '-', arrival[i]); } else { resumen.Ruta = string.Concat(resumen.Ruta, '-', arrival[i]); } } if (string.IsNullOrEmpty(resumen.Ruta)) { resumen.Ruta = "NA"; } int cantPax = 0; resumen.TarifaBase = 0.ToString(); resumen.Impuestos = 0.ToString(); resumen.TarifaTotal = 0.ToString(); resumen.LcTarifaBase = 0.ToString(); resumen.LcImpuesto1 = 0.ToString(); resumen.LcImpuesto2 = "0"; resumen.LcImpuesto3 = "0"; resumen.LcComision = 0.ToString(); resumen.TarifaMoneda = "MXN"; if (resp.TravelItinerary.ItineraryInfo.ItineraryPricing != null) { TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricing itineraryPricing = resp.TravelItinerary.ItineraryInfo.ItineraryPricing; foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPriceQuote priceQuote in itineraryPricing.PriceQuote) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPriceQuotePricedItinerary pricedItinerary in priceQuote.PricedItinerary) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPriceQuotePricedItineraryAirItineraryPricingInfoPassengerTypeQuantity passengerTypeQuantity in pricedItinerary.AirItineraryPricingInfo.PassengerTypeQuantity) { cantPax += Int32.Parse(passengerTypeQuantity.Quantity); } foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPriceQuotePricedItineraryAirItineraryPricingInfoItinTotalFare itinTotalFare in pricedItinerary.AirItineraryPricingInfo.ItinTotalFare ?? new TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPriceQuotePricedItineraryAirItineraryPricingInfoItinTotalFare[0]) { resumen.TarifaBase = (float.Parse(string.IsNullOrEmpty(resumen.TarifaBase) ? "0" : resumen.TarifaBase) + float.Parse(itinTotalFare.BaseFare.Amount)).ToString(); resumen.Impuestos = (float.Parse(string.IsNullOrEmpty(resumen.Impuestos) ? "0" : resumen.Impuestos) + float.Parse(itinTotalFare.Taxes.Tax.Amount)).ToString(); resumen.TarifaTotal = (float.Parse(string.IsNullOrEmpty(resumen.TarifaTotal) ? "0" : resumen.TarifaTotal) + float.Parse(itinTotalFare.TotalFare.Amount)).ToString(); resumen.LcTarifaBase = (float.Parse(string.IsNullOrEmpty(resumen.LcTarifaBase) ? "0" : resumen.LcTarifaBase) + float.Parse(itinTotalFare.Totals != null ? itinTotalFare.Totals.TotalFare.Amount : itinTotalFare.TotalFare.Amount)).ToString(); resumen.LcImpuesto1 = (float.Parse(string.IsNullOrEmpty(resumen.LcImpuesto1) ? "0" : resumen.LcImpuesto1) + float.Parse(itinTotalFare.Totals != null ? itinTotalFare.Totals.Taxes.Tax.Amount : itinTotalFare.Taxes.Tax.Amount)).ToString(); resumen.LcImpuesto2 = "0"; resumen.LcImpuesto3 = "0"; resumen.TarifaMoneda = itinTotalFare.TotalFare.CurrencyCode; } } } foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPhaseIVInfo phaseIVInfo in itineraryPricing.PhaseIVInfo != null ? itineraryPricing.PhaseIVInfo : new TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItineraryPricingPhaseIVInfo[0]) { resumen.LcComision = (float.Parse(string.IsNullOrEmpty(resumen.LcComision) ? "0" : resumen.LcComision) + float.Parse(phaseIVInfo.Record.ItinTotalFare.Commission.Amount)).ToString(); } } resumen.Boleto = "n"; resumen.CantPax = cantPax.ToString("00"); foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryAccountingInfo accountInfo in resp.TravelItinerary.AccountingInfo != null ? resp.TravelItinerary.AccountingInfo : new TravelItinerary2.TravelItineraryReadRSTravelItineraryAccountingInfo[0]) { resumen.Boleto = string.IsNullOrEmpty(accountInfo.TicketingInfo.OriginalTicketNumber != null ? accountInfo.TicketingInfo.OriginalTicketNumber[0] : string.Empty) ? "n" : "y"; break; } resumen.FechaMod = DateTime.Now; resumen.Hotel = "n"; resumen.Auto = "n"; resumen.Millas = 0; foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItem reservationItem in resp.TravelItinerary.ItineraryInfo.ReservationItems) { if (reservationItem.Hotel != null) { resumen.Hotel = "y"; continue; } else if (reservationItem.Vehicle != null) { resumen.Auto = "y"; continue; } else if (reservationItem.FlightSegment != null) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemFlightSegment flightSegment in reservationItem.FlightSegment) { if (resumen.Vuelos == null) { resumen.Vuelos = new List <SCDCVuelo>(); } resumen.Vuelos.Add(MappingVuelo(flightSegment)); resumen.Millas += string.IsNullOrEmpty(flightSegment.AirMilesFlown) ? 0 : Int32.Parse(flightSegment.AirMilesFlown); } } else if (reservationItem.Seats != null) { foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemSeat seat in reservationItem.Seats) { for (int i = 0; i < resumen.Vuelos.Count; i++) { if (resumen.Vuelos[i].Segmento == Int32.Parse(seat.SegmentNumber)) { resumen.Vuelos[i].Asientos = "Y"; break; } } } continue; } else { continue; } } resumen.Internacional = "."; foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoTicketing ticketing in resp.TravelItinerary.ItineraryInfo.Ticketing ?? new TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoTicketing[0]) { if (string.IsNullOrEmpty(ticketing.eTicketNumber)) { resumen.Internacional = "."; } else if (!ticketing.eTicketNumber.Contains("-MX")) { resumen.Internacional = "I"; } else { resumen.Internacional = "N"; break; } } resumen.LinContAerea = "n"; if (resumen.Internacional != ".") { resumen.LinContAerea = "y"; } resumen.Recibido = resp.TravelItinerary.ItineraryRef.Source.ReceivedFrom; resumen.PccCrea = resp.TravelItinerary.ItineraryRef.Source.HomePseudoCityCode; resumen.PccFirma = resp.TravelItinerary.ItineraryRef.Source.PseudoCityCode; resumen.PccLectura = resp.TravelItinerary.ItineraryRef.Source.AAA_PseudoCityCode; //resumen.LastDay = null; resumen.Agente = resp.TravelItinerary.ItineraryRef.Source.CreationAgent.Substring(1); resumen.VuelosHist = string.Empty; resumen.Revision = "CTS"; resumen.QueueLectura = string.Empty; foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryPlacement queueInfo in resp.TravelItinerary.QueueInfo != null ? resp.TravelItinerary.QueueInfo : new TravelItinerary2.TravelItineraryReadRSTravelItineraryPlacement[0]) { resumen.QueueLectura = queueInfo.Value.Split('/')[1].Split('-')[1]; resumen.LastDay = DateTime.ParseExact(queueInfo.Value.Split('/')[0].Substring(3), "ddMMM", new System.Globalization.CultureInfo("en-US")); break; } if (resumen.LastDay == new DateTime(1, 1, 1)) { resumen.LastDay = resumen.FechaInicio.AddDays(-1); } resumen.TxCasilla1 = "0.00"; resumen.TxCasilla2 = "0.00"; resumen.TxCasilla3 = resumen.Impuestos; } } catch { } return(resumen); }
public List <OTATravelItineraryObjectHotel> getHotelValues(string convid, string ipcc, string securitytoken, string RecLoc, string sixReceived, string agente, string mail, string RFC, List <string> lstcommission, string PNRDataHotel, string PNRDataCar) { List <OTATravelItineraryObjectHotel> myObect = new List <OTATravelItineraryObjectHotel>(); OTATravelItineraryObjectHotel itineraryObject = null; string errorMessage = string.Empty; try { #region ====== Connection with web service ====== //itineraryObject.Status = true; DateTime dt = DateTime.UtcNow; string tstamp = dt.ToString("s") + "Z"; TravelItinerary.MessageHeader msgHeader = new TravelItinerary.MessageHeader(); msgHeader.ConversationId = convid; // Put ConversationId in req header TravelItinerary.From from = new TravelItinerary.From(); TravelItinerary.PartyId fromPartyId = new TravelItinerary.PartyId(); TravelItinerary.PartyId[] fromPartyIdArr = new TravelItinerary.PartyId[1]; fromPartyId.Value = "99999"; fromPartyIdArr[0] = fromPartyId; from.PartyId = fromPartyIdArr; msgHeader.From = from; TravelItinerary.To to = new TravelItinerary.To(); TravelItinerary.PartyId toPartyId = new TravelItinerary.PartyId(); TravelItinerary.PartyId[] toPartyIdArr = new TravelItinerary.PartyId[1]; toPartyId.Value = "123123"; toPartyIdArr[0] = toPartyId; to.PartyId = toPartyIdArr; msgHeader.To = to; msgHeader.CPAId = ipcc; msgHeader.Action = "TravelItineraryReadLLSRQ"; TravelItinerary.Service service = new TravelItinerary.Service(); service.Value = "Travel Itinerary Read"; msgHeader.Service = service; TravelItinerary.MessageData msgData = new TravelItinerary.MessageData(); msgData.MessageId = "mid:[email protected]"; msgData.Timestamp = tstamp; msgHeader.MessageData = msgData; TravelItinerary.Security1 security = new TravelItinerary.Security1(); security.BinarySecurityToken = securitytoken; // Put BinarySecurityToken in req header //Create the request object req and the value for the IPCC in the payload of the request. string GEAServices = ConfigurationManager.AppSettings["ServiciosGEA"]; TravelItinerary.TravelItineraryReadRQMessagingDetails messagingDetails = new TravelItinerary2.TravelItineraryReadRQMessagingDetails(); messagingDetails.Transaction = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction[1]; messagingDetails.Transaction[0] = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction(); messagingDetails.Transaction[0].Code = TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransactionCode.PNR; //for (int i = 0; i < GEAServices.Split('|').Length; i++) //{ // if (GEAServices.Split('|')[i] == "HOT") // { // messagingDetails.Transaction[i] = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction(); // messagingDetails.Transaction[i].Code = TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransactionCode.HOT; // } // else if (GEAServices.Split('|')[i] == "CAR") // { // messagingDetails.Transaction[i] = new TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransaction(); // messagingDetails.Transaction[i].Code = TravelItinerary2.TravelItineraryReadRQMessagingDetailsTransactionCode.CAR; // } //} TravelItinerary.TravelItineraryReadRQ req = new TravelItinerary.TravelItineraryReadRQ(); //TravelItinerary.OTA_TravelItineraryReadRQPOS pos = new TravelItinerary.OTA_TravelItineraryReadRQPOS(); //TravelItinerary.OTA_TravelItineraryReadRQPOSSource source = new TravelItinerary.OTA_TravelItineraryReadRQPOSSource(); //source.PseudoCityCode = ipcc; //pos.Source = source; //req.POS = pos; req.TimeStamp = DateTime.Now; req.TimeStampSpecified = true; req.MessagingDetails = messagingDetails; req.Version = "2.2.0"; // Specify the service version //TravelItinerary.OTA_TravelItineraryReadRQTPA_Extensions tpa = new TravelItinerary.OTA_TravelItineraryReadRQTPA_Extensions(); //TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails msj = new TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetails(); //TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset code = new TravelItinerary.OTA_TravelItineraryReadRQTPA_ExtensionsMessagingDetailsMDRSubset(); //code.Code = "PN43"; //msj.MDRSubset = code; //tpa.MessagingDetails = msj; //req.TPA_Extensions = tpa; TravelItinerary.TravelItineraryReadRQUniqueID uniqueID = new TravelItinerary.TravelItineraryReadRQUniqueID(); uniqueID.ID = RecLoc; req.UniqueID = uniqueID; TravelItinerary.TravelItineraryReadService serviceObj = new TravelItinerary.TravelItineraryReadService(); serviceObj.MessageHeaderValue = msgHeader; serviceObj.Security = security; //System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(req.GetType()); //System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\RESP\otatravelItineraryHotelReq " + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".xml"); //writer.Serialize(file, req); //file.Close(); //Call the service and assign the response object. TravelItinerary.TravelItineraryReadRS resp = serviceObj.TravelItineraryReadRQ(req); // Send the request. XmlDocument doc = Serialize(resp); doc = Serialize(req); //Retrieve data from the resp object, such as flight number and airline code, and display //it on standard output. the client can retrieve other data from the response the same wayi. #endregion string typeCar = string.Empty;; string codeCityIti = string.Empty; string codeCityDB = string.Empty; chainCodeCancel = string.Empty; TimeSpan ts = new TimeSpan(); ////////////////////////////////////////////////////////////// //Validacion de errores en al conexion del web service// ////////////////////////////////////////////////////////////// if (resp.ApplicationResults.Error == null) { ////////////////////////////////////////////////////////////// //Se obtine infomacion del PNR// ////////////////////////////////////////////////////////////// if (resp.TravelItinerary.ItineraryInfo.ReservationItems != null) { for (int i = 0; i < resp.TravelItinerary.ItineraryInfo.ReservationItems.Length; i++) { itineraryObject = new OTATravelItineraryObjectHotel(); itineraryObject.CancelNumberList = new List <string>(); getNumCancelRecClose(resp, itineraryObject, string.IsNullOrEmpty(resp.TravelItinerary.ItineraryRef.ID) ? RecLoc : resp.TravelItinerary.ItineraryRef.ID); string commision = string.Empty; if (lstcommission.Count > 1) { commision = lstcommission[i]; } else { commision = "10"; } itineraryObject.Prov_Direct_Pay = true; string dk = string.Empty; dk = resp.TravelItinerary.ItineraryRef.CustomerIdentifier.ToUpper(); string phone = string.Empty; foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryCustomerInfoContactNumber contactNumber in resp.TravelItinerary.CustomerInfo.ContactNumbers) { if (!string.IsNullOrEmpty(phone)) { phone = string.Concat(phone, ", "); } phone = string.Concat(phone, contactNumber.Phone); } string passengerType = string.Empty; int passengerNum = 0; for (int cusNum = 0; cusNum < resp.TravelItinerary.CustomerInfo.PersonName.Length; cusNum++) { if (!string.IsNullOrEmpty(resp.TravelItinerary.CustomerInfo.PersonName[cusNum].PassengerType)) { if (resp.TravelItinerary.CustomerInfo.PersonName[cusNum].PassengerType.Length > 0) { passengerType = "|" + resp.TravelItinerary.CustomerInfo.PersonName[cusNum].PassengerType; passengerNum = cusNum + 1; } else { passengerType = string.Empty; //numero de pasajeros } } else { passengerType = string.Empty; } } string passengerName = string.Empty; string title = string.Empty; divide = resp.TravelItinerary.CustomerInfo.PersonName[0].GivenName.Split("".ToCharArray()); if (divide.Length > 1) { passengerName = resp.TravelItinerary.CustomerInfo.PersonName[0].GivenName.Substring(0, resp.TravelItinerary.CustomerInfo.PersonName[0].GivenName.Length - 3); title = divide[divide.Length - 1]; } else { passengerName = resp.TravelItinerary.CustomerInfo.PersonName[0].GivenName; title = string.Empty; } string passengerSurname = string.Empty; passengerSurname = resp.TravelItinerary.CustomerInfo.PersonName[0].Surname; if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel != null && string.IsNullOrEmpty(PNRDataHotel)) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.Status == "HK" || resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.Status == "GK") { itineraryObject = GetHotel(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel, commision, dk, phone, RFC, agente, mail, sixReceived, passengerType, passengerNum, passengerName, title, passengerSurname, itineraryObject.Status, itineraryObject.CancelNumberList); itineraryObject.Record = string.IsNullOrEmpty(resp.TravelItinerary.ItineraryRef.ID) ? string.Concat(RecLoc, "|HOTEL") : string.Concat(resp.TravelItinerary.ItineraryRef.ID, "|HOTEL"); } else { errorMessage = string.Concat("Error MyCTS: Segmento ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.SegmentNumber, " en status ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel.Status); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle != null && string.IsNullOrEmpty(PNRDataCar)) { if (resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.Status == "HK" || resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.Status == "GK") { itineraryObject = GetCars(resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle, commision, dk, phone, RFC, agente, mail, sixReceived, passengerType, passengerNum, passengerName, title, passengerSurname, itineraryObject.Status, itineraryObject.CancelNumberList); itineraryObject.Record = string.IsNullOrEmpty(resp.TravelItinerary.ItineraryRef.ID) ? string.Concat(RecLoc, "|CAR") : string.Concat(resp.TravelItinerary.ItineraryRef.ID, "|CAR"); } else { errorMessage = string.Concat("Error MyCTS: Segmento ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.SegmentNumber, " en status ", resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle.Status); } } else { if (itineraryObject != null) { if (itineraryObject.CancelNumberList.Count < 0) //cuando el records es nuevo y no tiene cancelaciones { if (!string.IsNullOrEmpty(itineraryObject.Confirmation_Number)) //valida si la clave de confirmacion del hotel no fue asignada al segmento { myObect.Add(itineraryObject); } } else if (myObect.Count == 0) //itinerario basio solo para leera el estatus y los numeros de cancelacion { if (!string.IsNullOrEmpty(itineraryObject.Confirmation_Number)) { myObect.Add(itineraryObject); } } } } if (resp.TravelItinerary.ItineraryInfo.ReservationItems.Length > 0 &&//cuando el record tiene cancelaciones resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Hotel != null) { if (!string.IsNullOrEmpty(itineraryObject.Confirmation_Number)) { myObect.Add(itineraryObject); } } else if (resp.TravelItinerary.ItineraryInfo.ReservationItems.Length > 0 &&//cuando el record tiene cancelaciones resp.TravelItinerary.ItineraryInfo.ReservationItems[i].Vehicle != null) { if (!string.IsNullOrEmpty(itineraryObject.Confirmation_Number)) { myObect.Add(itineraryObject); } } } } } else { foreach (TravelItinerary2.ProblemInformation error in resp.ApplicationResults.Error) { foreach (TravelItinerary2.SystemSpecificResults systemSpecificResults in error.SystemSpecificResults) { foreach (TravelItinerary2.MessageCondition message in systemSpecificResults.Message) { if (!string.IsNullOrEmpty(errorMessage)) { errorMessage = string.Concat(errorMessage, ", "); } else { errorMessage = "Error MyCTS: "; } errorMessage = string.Concat(errorMessage, message.Value); } } } } if (!string.IsNullOrEmpty(errorMessage)) { itineraryObject = new OTATravelItineraryObjectHotel(); itineraryObject.errorWSSabre = errorMessage; myObect.Add(itineraryObject); } } catch (Exception e) { itineraryObject = new OTATravelItineraryObjectHotel(); itineraryObject.errorWSSabre = string.Concat("Error MyCTS: ", e.ToString()); myObect.Add(itineraryObject); } return(myObect); }