Пример #1
0
        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);
            }
        }