/// <summary> /// Cancela una promocion /// </summary> /// <param name="hotel"></param> /// <param name="folio"></param> /// <param name="promotion"></param> /// <returns></returns> /// <history> /// [vipacheco] 27/Mayo/2016 Created /// </history> private async static Task <ActualizaEstatusPromoForzadaResponse> ActualizaEstatusPromoForzadaFolio(string hotel, string folio, string promotion) { return(await Task.Run(() => { try { ActualizaEstatusPromoForzadaRequest Request = new ActualizaEstatusPromoForzadaRequest(); ActualizaEstatusPromoForzadaResponse Response = null; // configuramos el request Request.hotel = hotel; Request.folio = folio; Request.promo = promotion; Request.estatus = "BAJA"; // Invocamos al servicio web Response = Current().ActualizaEstatusPromoForzadaFolio(Request); // si ocurrio un error if (Response.hasErrors) { throw new Exception(Response.errorInfo); } return Response; } catch (Exception) { throw; } })); }
/// <summary> /// Cancela una promoción de Sistur /// </summary> /// <param name="Gift"></param> /// <param name="Promotion"></param> /// <param name="GiftsCancelled"></param> /// <returns></returns> /// <history> /// [vipacheco] 26/Mayo/2016 Created /// [vipacheco] 25/Julio/2016 Modified --> se agrego asyncronia /// </history> public async static Task <bool> CancelPromotionSistur(string pGift, string Promotion, string Program, string LeadSource, string PropertyOpera, int ReceiptID, TextBox txtReservation, List <string> pGiftsCancelled) { try { ActualizaEstatusPromoForzadaResponse Response = new ActualizaEstatusPromoForzadaResponse(); string Hotel, Reservation; // si es inhouse if (Program == "IH") { // si es una invitacion inhouse if (!string.IsNullOrEmpty(txtReservation.Text)) { Hotel = LeadSource; Reservation = txtReservation.Text; } // si es una invitacion externa else { Hotel = PropertyOpera; Reservation = $"{ReceiptID}"; } } // Si es outhouse else { Hotel = PropertyOpera; Reservation = $"{ReceiptID}"; } // Si se puede cancelar la promocion de sistur if (await AllowCancelPromotionSistur(Hotel, Reservation, Promotion, pGift)) { // Se da de baja la promocion en el sistema de promociones Response = await ActualizaEstatusPromoForzadaFolio(Hotel, Reservation, Promotion); //Si ocurrio un error if (Response.hasErrors) { throw new Exception(Response.errorInfo); } // cancelamos el regalo en Origos await BRGiftsReceiptDetail.UpdateGiftsPromotionSisturCancel(ReceiptID, pGift); // Agregamos el regalo a la lista de regalos cancelados pGiftsCancelled.Add(pGift); return(true); } return(false); } catch (Exception) { throw; } }