private void ResetPrices(OTA_AirPriceRS response) { Reservation.Itinerary.UseFinalItineraryPrice = true; if (response.PricedItinerary != null) { var pricedItinerary = response.PricedItinerary; //Reservation.Itinerary.TotalFare.TotalAmount = pricedItinerary.TotalAmount; var airPriceInfo = pricedItinerary.AirItineraryPricingInfo.FirstOrDefault(); if (airPriceInfo != null) { int totalPassangers = Convert.ToInt32(airPriceInfo.PassengerTypeQuantity.Quantity); Reservation.Itinerary.TotalFinalPrice = pricedItinerary.TotalAmount; Reservation.Itinerary.TotalFinalTaxes = airPriceInfo.ItinTotalFare.Taxes.Sum(t => t.Amount) * totalPassangers; Reservation.Itinerary.BaseFare.TotalAmount = Convert.ToDecimal(airPriceInfo.ItinTotalFare.TotalFare.Amount); //Busca el iva y tua internacional if (Reservation.Itinerary.IsInternational) { Reservation.Itinerary.TotalFinalBasePrice = Convert.ToDecimal(airPriceInfo.ItinTotalFare.EquivFare.Amount) * totalPassangers; Reservation.Itinerary.BaseFare.Iva = GetTaxes(new[] { "XO" }, airPriceInfo); Reservation.Itinerary.BaseFare.Tua = GetTaxes(new[] { "XD", "US2" }, airPriceInfo); Reservation.Itinerary.BaseFare.ExtraTaxes = GetExtraTaxes(new[] { "XO", "XD", "US2", "SOV", "SNV", "SCV", "SBV" }, airPriceInfo); Reservation.Itinerary.BaseFare.TotalBasePrice = Convert.ToDecimal(airPriceInfo.ItinTotalFare.EquivFare.Amount); Reservation.Itinerary.BaseFare.IVAMonto11 = GetTax("SOV", airPriceInfo); Reservation.Itinerary.BaseFare.IVA11 = GetTax("SNV", airPriceInfo); Reservation.Itinerary.BaseFare.IVAMonto16 = GetTax("SCV", airPriceInfo); Reservation.Itinerary.BaseFare.IVA16 = GetTax("SBV", airPriceInfo); } else { //Busca el iva y tua nacional Reservation.Itinerary.TotalFinalBasePrice = Convert.ToDecimal(airPriceInfo.ItinTotalFare.BaseFare.Amount) * totalPassangers; Reservation.Itinerary.BaseFare.Iva = GetTax("MX", airPriceInfo); Reservation.Itinerary.BaseFare.Tua = GetTax("XV", airPriceInfo); Reservation.Itinerary.BaseFare.ExtraTaxes = GetExtraTaxes(new[] { "MX", "XV", "SOV", "SNV", "SCV", "SBV" }, airPriceInfo); Reservation.Itinerary.BaseFare.TotalBasePrice = Convert.ToDecimal(airPriceInfo.ItinTotalFare.BaseFare.Amount); Reservation.Itinerary.BaseFare.IVAMonto11 = GetTax("SOV", airPriceInfo); Reservation.Itinerary.BaseFare.IVA11 = GetTax("SNV", airPriceInfo); Reservation.Itinerary.BaseFare.IVAMonto16 = GetTax("SCV", airPriceInfo); Reservation.Itinerary.BaseFare.IVA16 = GetTax("SBV", airPriceInfo); } } } }
public static DataSet GetDatasetSabreAir(OTA_AirPriceRS objOTA_AirLowFareSearchRS) { /*CREAMOS EL SERIALIZADOR DEL OBJETO*/ XmlSerializer xmlSerial = new XmlSerializer(typeof(OTA_AirPriceRS)); StringWriter sWriter = new StringWriter(); xmlSerial.Serialize(sWriter, objOTA_AirLowFareSearchRS); XmlDocument xmlDocumento = new XmlDocument(); /*AGREGAMOS EL STRING DEL OBJETO SERIALIZADO A UN DOCUMENTO XML */ xmlDocumento.LoadXml(sWriter.ToString()); DataSet dsDataset = new DataSet(); /*LEEMOS EL DOCUMENTO XML Y LO AGREGAMOS AL LECTOR XML*/ XmlTextReader txtReader = new XmlTextReader(new StringReader(xmlDocumento.OuterXml)); try { dsDataset.ReadXmlSchema(Get_XSD_Clase(typeof(OTA_AirPriceRS), "http://webservices.sabre.com/sabreXML/2003/07")); /*LEEMOS EL XML Y LO AGREGAMOS AL DATASET*/ try { dsDataset.ReadXml(txtReader, XmlReadMode.Auto); } catch { } /*CERRAMO EL LECTOR DEL XML*/ txtReader.Close(); dsDataset.Dispose(); /*ACEPTAMOS L0S CAMBIOS EN EL DATASET*/ dsDataset.AcceptChanges(); /*RETORNAMOS EL DATASET*/ return(dsDataset); } catch (Exception Ex) { /*SI OCURRE UNA EXCEPCION CUALQUIERA*/ clsParametros cParametros = new clsParametros(); cParametros.Id = 0; cParametros.Message = Ex.Message; cParametros.Metodo = Ex.TargetSite.Name; cParametros.Source = Ex.Source; cParametros.StackTrace = Ex.StackTrace; cParametros.Severity = clsSeveridad.Alta; cParametros.Tipo = clsTipoError.WebServices; ExceptionHandled.Publicar(cParametros); txtReader.Close(); return(null); } }