/// <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 bool InsertPNR(OTATravelItineraryObjectHotel objItineraryHotel, string connectionName) { bool insert = false; Database db = DatabaseFactory.CreateDatabase(connectionName); DbCommand dbComand = db.GetStoredProcCommand(Resources.InsertItneraryHotel.SP_INSERTDETAILSPNRHOTEL); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_RECORD, DbType.String, objItineraryHotel.Record); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CONFIRMATION_NUMBER, DbType.String, objItineraryHotel.Confirmation_Number); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_HOTEL, DbType.String, objItineraryHotel.Hotel); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PROVID_DIREC_PAY, DbType.Boolean, objItineraryHotel.Prov_Direct_Pay); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_DK, DbType.String, objItineraryHotel.DK); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PHONE, DbType.String, objItineraryHotel.Phone); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_RFC, DbType.String, objItineraryHotel.RFC); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_MAIL, DbType.String, objItineraryHotel.Mail); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_REQUEST, DbType.String, objItineraryHotel.Request); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PAYMENT_FORM, DbType.String, objItineraryHotel.Payment_Form); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CAR_NUMBER, DbType.Int32, objItineraryHotel.Car_Number); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_SALES_SOURCE, DbType.String, objItineraryHotel.Sales_Source); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_OPERATIONAL_UNIT, DbType.String, objItineraryHotel.Operational_Unit == null ? string.Empty : objItineraryHotel.Operational_Unit); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_USER, DbType.String, objItineraryHotel.User); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_SERVICE_TYPE, DbType.String, objItineraryHotel.Service_Type); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PROVIDER, DbType.String, objItineraryHotel.Provider); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_SITE, DbType.String, objItineraryHotel.Site); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_IN_DATE, DbType.Date, objItineraryHotel.In_Date != DateTime.MinValue ? objItineraryHotel.In_Date : DateTime.Now); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_OUT_DATE, DbType.Date, objItineraryHotel.Out_Date != DateTime.MinValue ? objItineraryHotel.Out_Date : DateTime.Now); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CITY, DbType.String, objItineraryHotel.City); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_ROOM, DbType.String, objItineraryHotel.Room); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_ROOM_TYPE, DbType.String, objItineraryHotel.Room_Type); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_MEAL_PLAN, DbType.String, objItineraryHotel.Meal_Plan); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_NUMBER_NIGHTS, DbType.Double, objItineraryHotel.Number_Nights); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PASSENGER_NAME, DbType.String, objItineraryHotel.Passenger_Name); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PASSENGER_NUM, DbType.Int32, objItineraryHotel.Passenger_Num); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_SURNAME, DbType.String, objItineraryHotel.Surname); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_TITLE, DbType.String, objItineraryHotel.Title); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PASSENGER_TYPE, DbType.String, objItineraryHotel.Passenger_Type == null ? string.Empty : objItineraryHotel.Passenger_Type.TrimStart('|')); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_RATE, DbType.String, objItineraryHotel.Rate); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CURRENCY, DbType.String, objItineraryHotel.Currency); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PROVIDER_COMMISSION, DbType.String, objItineraryHotel.Provider_Commission); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_COST, DbType.Double, objItineraryHotel.Cost); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PRICE, DbType.Double, objItineraryHotel.Price); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_TAXES, DbType.Double, objItineraryHotel.IVA); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CREATED_DATE, DbType.DateTime, objItineraryHotel.C_Date != DateTime.MinValue ? objItineraryHotel.C_Date : DateTime.Now); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_TIME_LIMIT, DbType.Date, objItineraryHotel.Time_Limit != DateTime.MinValue ? objItineraryHotel.Time_Limit : DateTime.Today.AddDays(1)); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_STATUS, DbType.String, objItineraryHotel.Status); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CANCEL_NUMBER, DbType.String, objItineraryHotel.Cancel_Number == null ? string.Empty : objItineraryHotel.Cancel_Number); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CHAIN_CODE, DbType.String, objItineraryHotel.ChainCode); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_CHANGE_TYPE, DbType.Double, objItineraryHotel.ChangeType); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_ORG_ID, DbType.Int32, objItineraryHotel.OrgId); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_PCC, DbType.String, objItineraryHotel.Pcc); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_REMAKS_STRING, DbType.String, objItineraryHotel.Remarks); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_USER_NAME, DbType.String, objItineraryHotel.UserName); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_GEAERRORMSG, DbType.String, objItineraryHotel.errorWSSabre); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_DESCRIPTION, DbType.String, objItineraryHotel.Description); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_IN_CITY, DbType.String, objItineraryHotel.In_City); db.AddInParameter(dbComand, Resources.InsertItneraryHotel.PARAM_OUT_CITY, DbType.String, objItineraryHotel.Out_City); db.ExecuteNonQuery(dbComand); insert = true; return(insert); }
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); }
private OTATravelItineraryObjectHotel GetCars(TravelItinerary.TravelItineraryReadRSTravelItineraryItineraryInfoItemVehicle car, string commission, string dk, string phone, string rfc, string agent, string mail, string sixReceived, string passengerType, int passengerNum, string passengerName, string title, string passengerSurname, string lastStatus, List <string> cancelNumberList) { OTATravelItineraryObjectHotel obj = new OTATravelItineraryObjectHotel(); obj.Provider_Commission = commission; obj.Prov_Direct_Pay = true; obj.DK = dk; obj.Phone = phone; obj.RFC = rfc; obj.User = agent; obj.Mail = mail; obj.Request = sixReceived; obj.CancelNumberList = cancelNumberList; obj.StatusSabre = car.Status; string typeCar = string.Empty; typeCar = car.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.GuaranteeInd == null ? string.Empty : car.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.GuaranteeInd.Replace("DPST", string.Empty); if (!string.IsNullOrEmpty(typeCar)) { obj.Payment_Form = typeCar.Substring(0, 2).ToUpper(); obj.Car_Number = Convert.ToInt32(typeCar.Substring(typeCar.IndexOf("EXP") - 4, 4)); } else { obj.Payment_Form = string.Empty; obj.Car_Number = 0; } obj.Sales_Source = car.VehRentalCore.LocationDetails.LocationCode.ToUpper(); obj.Provider = "3318"; //OBTENER DE CONSULTA obj.Site = "5475"; //OBTENER DE CONSULTA double total = 0d; double semanal = 0d; foreach (TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemVehicleVehVendorAvailVehResCoreVehicleChargesVehicleChargeApproximateTotalCharge chargeDetails in car.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails == null ? new TravelItinerary2.TravelItineraryReadRSTravelItineraryItineraryInfoItemVehicleVehVendorAvailVehResCoreVehicleChargesVehicleChargeApproximateTotalCharge[0] : car.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.ChargeDetails) { if (chargeDetails.RateType == "APPROXIMATE TOTAL PRICE") { //obj.Number_Nights = Convert.ToInt32(chargeDetails.NumDays); total = Convert.ToDouble(chargeDetails.Amount); } if (chargeDetails.RateType == "DAILY RATE") { obj.Cost = Convert.ToDouble(chargeDetails.Amount); } if (chargeDetails.RateType == "WEEKLY RATE") { semanal = Convert.ToDouble(chargeDetails.Amount); } } obj.Number_Nights = (total / 1.16) / obj.Cost; obj.City = car.VehRentalCore.LocationDetails.LocationCode.ToUpper(); obj.In_Date = DateTime.ParseExact(car.VehRentalCore.PickUpDateTime, car.VehRentalCore.PickUpDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture); obj.Out_Date = DateTime.ParseExact(car.VehRentalCore.ReturnDateTime, car.VehRentalCore.ReturnDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture); if (obj.Cost.Equals(0)) { if (semanal.Equals(0)) { TimeSpan timespan = obj.Out_Date - obj.In_Date; obj.Number_Nights = timespan.TotalDays; obj.Cost = (total / 1.16) / obj.Number_Nights; } else { obj.Cost = semanal / 7; obj.Number_Nights = (total / 1.16) / obj.Cost; } } else { obj.Number_Nights = (total / 1.16) / obj.Cost; } string codeCityIti = string.Empty; codeCityIti = car.VehRentalCore.LocationDetails.LocationCode; List <ListItem> lstCodCity = new List <ListItem>(); lstCodCity = CatCitiesBL.GetCodeCities(codeCityIti); string country = GetCountryBL.GetCountryByCity(lstCodCity[0].Value); string codeCityDB = string.Empty; if (country.Equals("MX")) { codeCityDB = "AU"; } else { codeCityDB = "AI"; } obj.Service_Type = codeCityDB.ToUpper(); obj.Passenger_Type = passengerType.ToUpper(); obj.Passenger_Num = passengerNum; obj.Passenger_Name = passengerName.ToUpper(); obj.Title = title.ToUpper(); obj.Surname = passengerSurname; obj.Room = "1"; status = car.VehVendorAvail.Vendor.Code.ToUpper(); if (string.IsNullOrEmpty(car.VehRentalCore.LocationDetails.LocationName)) { obj.Hotel = string.Concat(car.VehRentalCore.LocationDetails.LocationCode.ToUpper(), car.VehVendorAvail.Vendor.Code.ToUpper(), "|", GetVendorByCodeBL.GetVendorByCode(car.VehVendorAvail.Vendor.Code.ToUpper()).ToUpper()); } else { string cit = car.VehRentalCore.LocationDetails.LocationName.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)[0].Substring(0, 3); if (car.VehRentalCore.LocationDetails.LocationName.Length > 3) { string cod = car.VehRentalCore.LocationDetails.LocationName.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)[0].Substring(3, 1); int numcod = Int32.Parse(Int32.TryParse(car.VehRentalCore.LocationDetails.LocationName.Split( new string[] { " " }, StringSplitOptions.RemoveEmptyEntries )[0].Substring( 4, car.VehRentalCore.LocationDetails.LocationName.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)[0].Length - 4 ), out numcod) ? car.VehRentalCore.LocationDetails.LocationName.Split( new string[] { " " }, StringSplitOptions.RemoveEmptyEntries )[0].Substring( 4, car.VehRentalCore.LocationDetails.LocationName.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)[0].Length - 4 ) : "0"); obj.Hotel = string.Concat(cit, car.VehVendorAvail.Vendor.Code.ToUpper(), cod, numcod.ToString("000"), "|", GetVendorByCodeBL.GetVendorByCode(car.VehVendorAvail.Vendor.Code.ToUpper()).ToUpper()); } else { obj.Hotel = string.Concat(cit, car.VehVendorAvail.Vendor.Code.ToUpper(), "|", GetVendorByCodeBL.GetVendorByCode(car.VehVendorAvail.Vendor.Code.ToUpper()).ToUpper()); } } obj.Rate = "VENTA"; obj.Currency = car.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.Mileage != null?car.VehVendorAvail.VehResCore.VehicleCharges.VehicleCharge.Mileage.CurrencyCode.ToUpper() : string.Empty; obj.Price = obj.Cost * Convert.ToInt32(obj.Number_Nights); obj.Status = lastStatus; obj.P_Rate = "N/A"; obj.P_Currency = "N/A"; obj.P_IVA = "N/A"; obj.P_ISH = "N/A"; obj.P_Total = "N/A"; if (car.ConfirmationNumber != null) { if (!string.IsNullOrEmpty(car.ConfirmationNumber.ToString())) { obj.Confirmation_Number = car.ConfirmationNumber.ToString().ToUpper(); } } obj.ChainCode = car.VehVendorAvail.Vendor.Code.ToUpper(); DateTime DateIn = DateTime.ParseExact(car.VehRentalCore.PickUpDateTime, car.VehRentalCore.PickUpDateTime.Length > 5 ? "MM-ddTHH:mm" : "MM-dd", System.Globalization.CultureInfo.CurrentCulture); TimeSpan ts = new TimeSpan(); if (DateIn == DateTime.Now) { obj.Time_Limit = DateTime.Now; } else { ts = TimeSpan.FromDays(2); } obj.Time_Limit = DateIn.Subtract(ts); obj.In_City = car.VehVendorAvail.VehResCore.CollectionDeliveryInfo != null? car.VehVendorAvail.VehResCore.CollectionDeliveryInfo.CollectionInfo.Address.CityName.ToUpper() : obj.City; obj.Out_City = car.VehVendorAvail.VehResCore.CollectionDeliveryInfo != null? car.VehVendorAvail.VehResCore.CollectionDeliveryInfo.DeliveryInfo.Address.CityName.ToUpper() : obj.City; string description = string.Empty; string tipoVehiculo = GetTypesCarByCodeBL.GetTypesCarByCode(car.VehVendorAvail.VehResCore.RentalRate.Vehicle.VehType); string equipo = string.Empty; string arrendadora = obj.Hotel.Split('|')[1]; string in_City = GetCityNameBL.GetCityName(obj.In_City); string out_City = GetCityNameBL.GetCityName(obj.Out_City); if (car.VehVendorAvail.VehResCore.PricedEquip.Equipment.SpecialEquipConfirmed == "Y") { equipo = GetEquipmentCarByCodeBL.GetEquipmentCarByCode(car.VehVendorAvail.VehResCore.PricedEquip.Equipment.SpecialEquip).ToUpper(); } description = string.Concat(tipoVehiculo, "|", equipo, "|", arrendadora, "|", in_City, "|", obj.In_Date.ToString(@"dd \de MMMM yyyy HH:mm \HRS", new System.Globalization.CultureInfo("es-MX")), "|", out_City, "|", obj.Out_Date.ToString(@"dd \de MMMM yyyy HH:mm \HRS", new System.Globalization.CultureInfo("es-MX"))); //description = string.Concat("RENTA DE ", !tipoVehiculo.Contains("AUTO") ? "AUTO " : string.Empty, tipoVehiculo, !string.IsNullOrEmpty(equipo) ? " CON " : string.Empty, equipo, " EN ", arrendadora, "); //description = string.Concat(description, "RECIBE: \t", obj.In_Date.ToString(@"dd \de MMMM yyyy HH:mm \HRS", new System.Globalization.CultureInfo("es-MX")), " EN ", arrendadora, " ", in_City, "\n"); //description = string.Concat(description, "ENTREGA:\t", obj.Out_Date.ToString(@"dd \de MMMM yyyy HH:mm \HRS", new System.Globalization.CultureInfo("es-MX")), " EN ", arrendadora, " ", out_City); obj.Description = description.ToUpper(); return(obj); }
private OTATravelItineraryObjectHotel GetHotel(TravelItinerary.TravelItineraryReadRSTravelItineraryItineraryInfoItemHotel hotel, string commission, string dk, string phone, string rfc, string agent, string mail, string sixReceived, string passengerType, int passengerNum, string passengerName, string title, string passengerSurname, string lastStatus, List <string> cancelNumberList) { OTATravelItineraryObjectHotel itineraryObject = new OTATravelItineraryObjectHotel(); itineraryObject.Provider_Commission = commission; itineraryObject.Prov_Direct_Pay = true; itineraryObject.DK = dk; itineraryObject.Phone = phone.ToUpper(); itineraryObject.RFC = rfc; itineraryObject.User = agent; itineraryObject.Mail = mail; itineraryObject.Request = sixReceived; itineraryObject.Passenger_Type = passengerType; itineraryObject.Passenger_Num = passengerNum; itineraryObject.Passenger_Name = passengerName; itineraryObject.Title = title; itineraryObject.Surname = passengerSurname; itineraryObject.CancelNumberList = cancelNumberList; itineraryObject.StatusSabre = hotel.Status; string typeCar = string.Empty; typeCar = hotel.Guarantee.Replace("DPST", string.Empty); itineraryObject.Payment_Form = typeCar.Length > 2 ? typeCar.Substring(0, 2) : string.Empty; itineraryObject.Car_Number = Convert.ToInt32(typeCar.Length > 2 ? typeCar.Substring(typeCar.IndexOf("EXP") - 4, 4) : "0"); itineraryObject.Sales_Source = hotel.BasicPropertyInfo.HotelCityCode; itineraryObject.Provider = "3318"; //OBTENER DE CONSULTA itineraryObject.Site = "5475"; //OBTENER DE CONSULTA itineraryObject.Room = hotel.NumberOfUnits; itineraryObject.City = hotel.BasicPropertyInfo.HotelCityCode; itineraryObject.In_Date = DateTime.ParseExact(hotel.TimeSpan.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); itineraryObject.Out_Date = DateTime.ParseExact(hotel.TimeSpan.End, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); if (itineraryObject.Passenger_Num > 1) { itineraryObject.Room_Type = "Double"; } else { itineraryObject.Room_Type = "Single"; } string codeCityIti = string.Empty; codeCityIti = hotel.BasicPropertyInfo.HotelCityCode; List <ListItem> lstCodCity = new List <ListItem>(); lstCodCity = CatCitiesBL.GetCodeCities(codeCityIti); string country = GetCountryBL.GetCountryByCity(lstCodCity.Count > 0 ? lstCodCity[0].Value : string.Empty); string codeCityDB = string.Empty; if (country.Equals("MX") || string.IsNullOrEmpty(country)) { codeCityDB = "H1"; } else { codeCityDB = "H2"; } itineraryObject.Service_Type = codeCityDB; itineraryObject.Number_Nights = Convert.ToInt32(hotel.TimeSpan.Duration ?? 1.ToString()); status = hotel.BasicPropertyInfo.HotelCode; itineraryObject.Hotel = hotel.BasicPropertyInfo.HotelCode + "|" + hotel.BasicPropertyInfo.HotelName; itineraryObject.Rate = "VENTA"; itineraryObject.Currency = hotel.RoomRates.Rate.CurrencyCode; itineraryObject.Cost = Convert.ToDouble(hotel.RoomRates.Rate.Amount.Substring(0, hotel.RoomRates.Rate.Amount.IndexOf('.') + 3)); itineraryObject.Price = itineraryObject.Cost * Convert.ToInt32(itineraryObject.Number_Nights); itineraryObject.Status = lastStatus; itineraryObject.P_Rate = "N/A"; itineraryObject.P_Currency = "N/A"; itineraryObject.P_IVA = "N/A"; itineraryObject.P_ISH = "N/A"; itineraryObject.P_Total = "N/A"; if (hotel.BasicPropertyInfo.ConfirmationNumber != null) { if (!string.IsNullOrEmpty(hotel.BasicPropertyInfo.ConfirmationNumber[0].ToString())) { itineraryObject.Confirmation_Number = hotel.BasicPropertyInfo.ConfirmationNumber[0].ToString(); } } itineraryObject.ChainCode = hotel.BasicPropertyInfo.ChainCode; DateTime DateIn = DateTime.ParseExact(hotel.TimeSpan.Start, "MM-dd", System.Globalization.CultureInfo.CurrentCulture); TimeSpan ts = new TimeSpan(); if (DateIn == DateTime.Now) { itineraryObject.Time_Limit = DateTime.Now; } else { ts = TimeSpan.FromDays(2); } itineraryObject.Time_Limit = DateIn.Subtract(ts); itineraryObject = (itineraryObject != null) ? itineraryObject : new OTATravelItineraryObjectHotel(); return(itineraryObject); }