public RespuestaDTO AnulaReserva(string strReserva) { bool bolEmitidoCorrectamente = false; //LVQ 20160404 se agrega detalle a la respuesta RespuestaDTO TheRespuesta = new RespuestaDTO(); //Verificamos que el usuario este validado ServiceAuthHeaderValidation.Validate(CustomSoapHeader); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Ingresando"); if (String.IsNullOrEmpty(strReserva)) { Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "No hay reserva."); TheRespuesta.Estado = "Error"; TheRespuesta.Mensaje = "Error interno"; return(TheRespuesta); } string strRespuesta; string strUsuario; string strClave; string strPCC; string strTAEmision; //Asignamos credenciales Sabre strUsuario = System.Configuration.ConfigurationManager.AppSettings["UsuarioSabreVOL"]; strClave = System.Configuration.ConfigurationManager.AppSettings["ClaveSabreVOL"]; strPCC = System.Configuration.ConfigurationManager.AppSettings["PCCSabreVOL"]; strTAEmision = System.Configuration.ConfigurationManager.AppSettings["TAEmisionVOL"]; ClsSabre csSabre = new ClsSabre(strUsuario, strClave, strPCC); //wsSabreReadPNR.TravelItineraryReadRS RS = new wsSabreReadPNR.TravelItineraryReadRS(); wsSabreReadPNR_RQ.TravelItineraryReadRS RS = new wsSabreReadPNR_RQ.TravelItineraryReadRS(); bool bolContinuar = true; if (csSabre.CrearSesion()) { try { //Bitacora, Inicio de sesion correcta Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Sesion creada"); RS = csSabre.ConsultarPNR_New(strReserva); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Obteniendo Reserva"); for (int i = 0; i < RS.TravelItinerary.ItineraryInfo.ReservationItems.Length; i++) { if (RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment != null) { if (RS.TravelItinerary.ItineraryInfo.Ticketing[0].TicketTimeLimit.Substring(0, 2) == "T-") { Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Reserva tiene items emitidos"); bolContinuar = false; break; } } } if (bolContinuar) { //Para prevenir duplicidad de cambios strRespuesta = csSabre.ConsultarComando("IR"); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Respuesta IR: " + strRespuesta); strRespuesta = csSabre.ConsultarComando("XI"); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Respuesta XI: " + strRespuesta); strRespuesta = csSabre.ConsultarComando("6VOLTC"); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Respuesta 6: " + strRespuesta); //Para prevenir duplicidad de cambios strRespuesta = csSabre.ConsultarComando("E"); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Respuesta E: " + strRespuesta); if (strRespuesta.Substring(0, 2) == "OK") { bolEmitidoCorrectamente = true; } } } catch (Exception ex) { Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Error: " + ex.Message); } finally { //Cerramos la sesion Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Cerrando sesion"); csSabre.CerrarSesion(); Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Sesion cerrada"); } } if (bolEmitidoCorrectamente) { Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Se entrega mensaje de anulacion OK"); TheRespuesta.Estado = "Anulada"; TheRespuesta.Mensaje = "Anulación OK"; } else { Log.grabaLog("wsSabre_bolAnulaReserva", strReserva, "Se entrega mensaje de error de anulacion"); TheRespuesta.Estado = "Error"; TheRespuesta.Mensaje = "Error interno"; } //return bolEmitidoCorrectamente; return(TheRespuesta); //LVQ.. }
public RespuestaDTO EmiteReserva(string strReserva, string strTipoReserva, string strDestinoComision) { bool bolEmitidoCorrectamente = false; string responseTicketIssue = ""; bool NoMsgexisteError = true; //Verificamos que el usuario este validado ServiceAuthHeaderValidation.Validate(CustomSoapHeader); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "////////////////////////////////////////////////////////////////////////////////"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "////////////////// COMIENZA EMISION ///////////////"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "////////////////////////////////////////////////////////////////////////////////"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Ingresando"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, string.Format("Datos de entrada. strReserva:{0}, strTipoReserva:{1}, strDestinoComision:{2}", strReserva, strTipoReserva, strDestinoComision)); try { string strUsuario; string strClave; string strPCC; string strTAEmision; strUsuario = System.Configuration.ConfigurationManager.AppSettings["UsuarioSabreVOL"]; strClave = System.Configuration.ConfigurationManager.AppSettings["ClaveSabreVOL"]; strPCC = System.Configuration.ConfigurationManager.AppSettings["PCCSabreVOL"]; strTAEmision = System.Configuration.ConfigurationManager.AppSettings["TAEmisionVOL"]; ClsSabre csSabre = new ClsSabre(strUsuario, strClave, strPCC); clsWSSabre csWSSabre = new clsWSSabre(); wsSabreReadPNR_RQ.TravelItineraryReadRS RS = new wsSabreReadPNR_RQ.TravelItineraryReadRS(); wsSabreReadPNR_RQ.TravelItineraryReadRS RSRespuesta = new wsSabreReadPNR_RQ.TravelItineraryReadRS(); decimal decComisionBase; decimal decOverAgencia; decimal decComisionEjecutiva; decimal decComisionFinal; string strLineaAerea = ""; string strLineaAereaOriginal = ""; string strClase = ""; string strOrigen = ""; //string strDestino = ""; string strTipoPax = ""; DateTime dteFechaInicio = Convert.ToDateTime(null); DateTime dteFechaTermino = Convert.ToDateTime(null); string strLineaAereaSegmento; string strRespuesta; bool bolTieneKP = false; bool bolContinuar = true; DateTime datSalidaSegAnt = DateTime.Now; DateTime datLlegadaSegAnt = DateTime.Now; TimeSpan ts; StringBuilder stbComandoEmision = new StringBuilder(); if (csSabre.CrearSesion()) { try { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Sesion creada"); //Bitacora, Inicio de sesion correctastrDestinoComision Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Sesion creada"); //Se cambia de metodo al migrado. //DortizD //10-06-2018 RS = csSabre.ConsultarPNR_New(strReserva); ItinerarioPQ DataPQ = new ItinerarioPQ(); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Obteniendo Reserva"); //Para prevenir duplicidad de cambios strRespuesta = csSabre.ConsultarComando("IR"); if (strRespuesta.IndexOf("WARNING - PNR MODIFICATION IN PROGRESS") > -1) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva con modificación en progreso"); bolContinuar = false; } if (RS.TravelItinerary == null) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Itinerario no encontrado. PNR inválido."); bolContinuar = false; } //Revisamos si tiene items la reserva, si es asi, entonces guardamos linea aerea, clase, origen //del primer tramo if (bolContinuar) { //Si el itineraria es menor igual que cero esto quiere decir que no hay itinerario //DortizD //10-06-2018 if (RS.TravelItinerary.ItineraryInfo.ReservationItems.Length <= 0) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Itinerario en null, existe la reserva?"); bolContinuar = false; } else {//Se obtiene data de pq //DortizD //10-06-2018 DataPQ.colPQItinerarios = new List <PQ>(); DataPQ = csSabre.GedataPQ(strReserva); } if (bolContinuar) { //Cambio Obtencion PriceQuote Data //DortizD //10-06-2018 if (RS.TravelItinerary.ItineraryInfo.ReservationItems.Length > 0) { //DortizD //10-06-2018 if (DataPQ != null) { //DortizD //10-06-2018 if (DataPQ.colPQItinerarios.Count > 0) { //DortizD //10-06-2018 if (DataPQ.colPQItinerarios[0].TotalTarifa != null) { //DortizD //10-06-2018 if (Convert.ToDouble(DataPQ.colPQItinerarios[0].TotalTarifa) > 0) { strLineaAerea = DataPQ.colPQItinerarios[0].Aerolinea; strLineaAereaOriginal = strLineaAerea; } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "No se puede obtener linea aerea del PQ (B)"); } } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "No se puede obtener linea aerea del PQ (C)"); bolContinuar = false; } } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "No se puede obtener linea aerea del PQ (A)"); bolContinuar = false; } } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "PQ en nulo"); bolContinuar = false; } if (bolContinuar) { //REVISAMOS SI LA LINEA AEREA PERMITE EMISION AUTOMATICA if (!csWSSabre.bolLineaAereaEmiteAutomaticamente(strLineaAerea)) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Linea aerea no permite emision automatica [" + strLineaAerea + "]"); bolContinuar = false; } } if (bolContinuar) { for (int i = 0; i < RS.TravelItinerary.ItineraryInfo.ReservationItems.Length; i++) { if (RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment != null) { if (RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].Status.ToString() != "HK") { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva tiene items distinto de HK"); bolContinuar = false; break; } if (RS.TravelItinerary.ItineraryInfo.Ticketing[0].TicketTimeLimit.Substring(0, 2) == "T-") { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva tiene items emitidos"); bolContinuar = false; break; } } } if (bolContinuar) { //obtenemos la fecha de termino for (int i = 0; i < RS.TravelItinerary.ItineraryInfo.ReservationItems.Length; i++) { if (RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment != null) { DateTime datFechaInicio; DateTime datFechaTermino; datFechaInicio = Convert.ToDateTime(RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].DepartureDateTime.ToString()); datFechaTermino = Convert.ToDateTime(datFechaInicio.Year.ToString() + "-" + RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ArrivalDateTime.ToString()); ts = datFechaTermino - datFechaInicio; if (ts.TotalHours < 0) { datFechaTermino = Convert.ToDateTime((datFechaInicio.Year + 1).ToString() + "-" + RS.TravelItinerary.ItineraryInfo.ReservationItems[i].FlightSegment[0].ArrivalDateTime.ToString()); } dteFechaTermino = datFechaTermino; } } } } } else //Si no tiene items de reserva entonces no emite { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva no tiene items de reserva"); bolContinuar = false; } } } //REALIZAMOS VALIDACIONES PARA LAS "EXCEPCIONES" //Excepción 1, si es GOL y tiene child, entonces no emite //Amarillo: Se comenta debido a que GOL es participante de Sabre y ya no tiene restricciones //if (bolContinuar) //{ // if (strLineaAerea == "G3") // { // for (int i = 0; i < RS.TravelItinerary.CustomerInfo.PersonName.Length; i++) // { // strTipoPax = RS.TravelItinerary.CustomerInfo.PersonName[i].PassengerType; // if (strTipoPax == "C01" || strTipoPax == "C02" || strTipoPax == "C03" // || strTipoPax == "C04" || strTipoPax == "C05" || strTipoPax == "C06" // || strTipoPax == "C07" || strTipoPax == "C08" || strTipoPax == "C09" // || strTipoPax == "C10" || strTipoPax == "C11" || strTipoPax == "C12") // { // Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva linea aérea GOL con Pax tipo child, excepción 1."); // bolContinuar = false; // break; // } // } // } //} //Excepción 2, si existe un infante y NO pertenece a una linea aérea que permite emitir infantes, //entonces no la emite if (bolContinuar) { for (int i = 0; i < RS.TravelItinerary.CustomerInfo.PersonName.Length; i++) { strTipoPax = RS.TravelItinerary.CustomerInfo.PersonName[i].PassengerType; if (strTipoPax == "INF") { //Validamos si la linea aerea no permite emitir infantes //if (!csWSSabre.bolLineaAereaEmisionInf(strLineaAerea)) //{ // Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva tiene pasajero infante y linea aerea no permite emisión aut., excepción 2."); // bolContinuar = false; // break; //} } } } //Excepción 3, Emisión Remota //Excepción 4, tarifas que no originan en SCL //Amarillo: Se comenta debido a que GOL es participante de Sabre y ya no tiene restricciones //if (bolContinuar) //{ // if (strOrigen != "SCL") // { // Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Reserva tiene origen distinto de SCL, excepción 4."); // bolContinuar = false; // } //} if (bolContinuar) { //Revisamos si la ejecutiva ingreso KP, si es asi guardamos la comision bolTieneKP = true; //Vamos a ver lo de los PQ's si hay dos pax adultos será PQ1, si además hay dos child de distinta edad, PQ1-3. //si fuesen dos child con igual edad seria PQ1-2 ///DT 23-11-2016 Se agregan tipos de pasajeros PFA, CNN para Tarifas Privadas Copa string strPQ; int intCanAdl = 0, intCanInf = 0, intCanChd; int intCanChd01 = 0, intCanChd02 = 0, intCanChd03 = 0, intCanChd04 = 0, intCanChd05 = 0, intCanChd06 = 0; int intCanChd07 = 0, intCanChd08 = 0, intCanChd09 = 0, intCanChd10 = 0, intCanChd11 = 0; for (int i = 0; i < RS.TravelItinerary.CustomerInfo.PersonName.Length; i++) { strTipoPax = RS.TravelItinerary.CustomerInfo.PersonName[i].PassengerType; ///Adult if (strTipoPax == "ADT" && intCanAdl == 0) { intCanAdl++; } if (strTipoPax == "PFA" && intCanAdl == 0) { intCanAdl++; } ///Child if (strTipoPax == "C01" && intCanChd01 == 0) { intCanChd01++; } if (strTipoPax == "C02" && intCanChd02 == 0) { intCanChd02++; } if (strTipoPax == "C03" && intCanChd03 == 0) { intCanChd03++; } if (strTipoPax == "C04" && intCanChd04 == 0) { intCanChd04++; } if (strTipoPax == "C05" && intCanChd05 == 0) { intCanChd05++; } if (strTipoPax == "C06" && intCanChd06 == 0) { intCanChd06++; } if (strTipoPax == "C07" && intCanChd07 == 0) { intCanChd07++; } if (strTipoPax == "C08" && intCanChd08 == 0) { intCanChd08++; } if (strTipoPax == "C09" && intCanChd09 == 0) { intCanChd09++; } if (strTipoPax == "C10" && intCanChd10 == 0) { intCanChd10++; } if (strTipoPax == "C11" && intCanChd11 == 0) { intCanChd11++; } if (strTipoPax == "CNN" && intCanChd11 == 0) { intCanChd11++; } ///Infant if (strTipoPax == "INF" && intCanInf == 0) { intCanInf++; } } intCanChd = intCanChd01 + intCanChd02 + intCanChd03 + intCanChd04 + intCanChd05 + intCanChd06; intCanChd += intCanChd07 + intCanChd08 + intCanChd09 + intCanChd10 + intCanChd11; if (intCanChd > 0) { ///Se modifica por solicitud realizada en el soporte 0068446 ///Fecha: 10/10/2012 ///Autor: MDS //intCanChd = 1; } int intTotalTiposPax = intCanAdl + intCanChd + intCanInf; if (intTotalTiposPax == 1) { strPQ = "PQ1"; } else { strPQ = "PQ1-" + intTotalTiposPax.ToString(); } //switch (intCanAdl + intCanChd + intCanInf) //{ // case 1: // strPQ = "PQ1"; // break; // case 2: // strPQ = "PQ1-2"; // break; // default: // strPQ = "PQ1"; // break; //} Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Se emitira con PQ: " + strPQ); //Si tiene KP entonces emitimos como esta if (bolTieneKP) { stbComandoEmision.Append("W¥" + strPQ); } //Loguea impresora ticket strRespuesta = csSabre.ConsultarComando("W*CL"); //Print para impresion strRespuesta = csSabre.ConsultarComando("PTR/" + strTAEmision); //Agregamos forma de pago CASH stbComandoEmision.Append("¥FCA"); //Agregamos Código de Moneda TODO: Sacar letra M del config y agregarla al code behind if (Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["UseCurrencyCode"]) == true) { stbComandoEmision.Append("¥" + System.Configuration.ConfigurationManager.AppSettings["CurrencyCode"]); } //EJECUTAMOS COMANDO DE EMISION!!!!! Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "COMANDO EMISIÓN: " + stbComandoEmision); ////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// strRespuesta = csSabre.ConsultarComando(stbComandoEmision.ToString()); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Mensaje enviado por SABRE: " + strRespuesta); responseTicketIssue = strRespuesta; //Comentar //strRespuesta = "100 - CITY DOES NOT MATCH EXACT ITINERARY IN ETR AIRLINE SYSTEM"; ////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// if (strRespuesta.IndexOf("CONTINUE TO TICKET?") > -1) { ///DToledo 20160512 Se corrige Mask Handling strRespuesta = csSabre.ConsultarComando("CO<Y>"); //EJECUTAMOS Confirmación de Emisión!!!!! Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Confirmamos Emisión: <Y>"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Mensaje enviado por SABRE: " + strRespuesta); responseTicketIssue = strRespuesta; } if (csWSSabre.bolExisteMsjError(strReserva, strRespuesta)) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Error enviado por SABRE emitiendo: " + strRespuesta); strRespuesta = csSabre.ConsultarComando("I"); } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Grabando reserva, 6TKTROBOT"); strRespuesta = csSabre.ConsultarComando("6TKTROBOT"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Respuesta Grabando reserva: " + strRespuesta); //Se agrega 5 intentos para realizar un ET y ver que esté emitido ok. for (int i = 0; i < 5; i++) { strRespuesta = csSabre.ConsultarComando("ET"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Respuesta ET(" + i.ToString() + "): " + strRespuesta); // if (strRespuesta.IndexOf("ETR MESSAGE PROCESSED") > -1 || strRespuesta.IndexOf("TTY REQ PEND") > -1 || strRespuesta.IndexOf("INVOICED") > -1) if (strRespuesta.IndexOf("OK ", 0, 4) > -1) { bolEmitidoCorrectamente = true; Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Respuesta ET OK"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Recuperando PNR " + strReserva); RSRespuesta = csSabre.ConsultarPNR_New(strReserva); if (RSRespuesta.TravelItinerary != null) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "PNR Recuperado OK"); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Enviando EM, TripCase"); strRespuesta = csSabre.ConsultarComando("6TKTROBOT"); strRespuesta = csSabre.ConsultarComando("EM"); if (strRespuesta.IndexOf("EMAIL REQUEST ACCEPTED") > -1) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + strRespuesta + ", Respuesta EM Ok, Se envía TripCase."); //MAN-1978 Emisión Automatica VOL - Error en OK de Emisión Automática NoMsgexisteError = false; } else if (strRespuesta.IndexOf("SIMULTANEOUS CHANGES") > -1) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + strRespuesta); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Cambios simultáneos detectados, se reintenta envío de TripCase. "); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Ignorando y recuperando "); strRespuesta = csSabre.ConsultarComando("I"); RSRespuesta = csSabre.ConsultarPNR_New(strReserva); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + strRespuesta); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Enviando EM. TripCase "); strRespuesta = csSabre.ConsultarComando("6TKTROBOT"); strRespuesta = csSabre.ConsultarComando("EM"); if (strRespuesta.IndexOf("EMAIL REQUEST ACCEPTED") > -1) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + strRespuesta + ", Respuesta EM Ok, Se envía TripCase."); //MAN-1978 Emisión Automatica VOL - Error en OK de Emisión Automática NoMsgexisteError = false; } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + strRespuesta + " Error respuesta EM, No se envía TripCase"); //MAN-1978 Emisión Automatica VOL - Error en OK de Emisión Automática NoMsgexisteError = false; strRespuesta = csSabre.ConsultarComando("I"); } } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + strRespuesta + " Error respuesta EM, No se envía TripCase"); //MAN-1978 Emisión Automatica VOL - Error en OK de Emisión Automática NoMsgexisteError = false; strRespuesta = csSabre.ConsultarComando("I"); } } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, " " + RSRespuesta.ApplicationResults.Error.ToString() + ", No se pudo recuperar el PNR, No se envía TripCase"); //MAN-1978 Emisión Automatica VOL - Error en OK de Emisión Automática NoMsgexisteError = false; } break; } } } } } catch (Exception ex) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Error: " + ex.Message); } finally { //MAN-2340 Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Ingresando en revalidacion emison ticket en sabre."); if (!NoMsgexisteError) { //MAN-2340 //MAN-1978 Emisión Automatica VOL - Error en OK de Emisión Automática //Validacion Emision OK RSRespuesta = csSabre.ConsultarPNR_New(strReserva); string strRes = csSabre.ConsultarComando("*T"); //MAN-2340 Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Respuesta emision : " + strRes); if (strRes.Contains(".TE ")) { bolEmitidoCorrectamente = true; Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Revalidacion emision ok : " + bolEmitidoCorrectamente.ToString()); } else { bolEmitidoCorrectamente = false; Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Revalidacion emision ok : " + bolEmitidoCorrectamente.ToString()); } } //Cerramos la sesion Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Cerrando sesion"); csSabre.CerrarSesion(); Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Sesion cerrada"); } } else { //Bitacora, error creando sesion Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Error creando sesión"); } } catch (Exception ex) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Error: " + ex.Message); } //LVQ 20160404 se agrega detalle a la respuesta RespuestaDTO TheRespuesta = new RespuestaDTO(); if (bolEmitidoCorrectamente) { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Se entrega mensaje de emision OK"); TheRespuesta.Estado = "Emitido"; TheRespuesta.Mensaje = "Emisión OK"; TheRespuesta.Texto = responseTicketIssue; } else { Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "Se entrega mensaje de error de emisión"); TheRespuesta.Estado = "Error"; TheRespuesta.Mensaje = "Error interno"; TheRespuesta.Texto = responseTicketIssue; } Log.grabaLog("wsSabre_bolEmiteReserva", strReserva, "////////////////////////////// FIN EMISION ///////////////////////////////////"); //return bolEmitidoCorrectamente; return(TheRespuesta); //LVQ. }