/// <summary> /// Determina si se puede cancelar una promocion de Sistur /// </summary> /// <param name="Hotel"></param> /// <param name="Reservation"></param> /// <param name="Promotion"></param> /// <param name="Gift"></param> /// <param name="enumPromotionsSystem"></param> /// <returns></returns> /// <history> /// [vipacheco] 27/Mayo/2016 Created /// </history> private async static Task <bool> AllowCancelPromotionSistur(string Hotel, string Reservation, string Promotion, string Gift) { OstdtpromosResponse[] Details; bool blnAllow = false; OstpromosResponse Header = null; float Used = 0; Details = await ObtenerDetalleEstadoCuenta(Hotel, Reservation, Promotion); // si no tiene detalle if (Details == null) { blnAllow = true; } else if ((Details.Length == 0)) { blnAllow = true; } // si tiene detalle else { Header = ObtenerCabeceraEstadoCuenta(Hotel, Convert.ToInt32(Reservation), Promotion); // si ocurrio un error al consultar el detalle del estado de cuenta // calculamos el monto usado del detalle foreach (OstdtpromosResponse Detail in Details) { if (Detail.idpromo == Promotion) { if (Detail.operacion.Equals("C")) { Used += Detail.monto; } else { Used -= Detail.monto; } } } } return(blnAllow); }
/// <summary> /// Consulta el encabezado del estado de cuenta de una promocion /// </summary> /// <param name="hotel"></param> /// <param name="folio"></param> /// <param name="promotion"></param> /// <param name="error"></param> /// <returns></returns> /// <history> /// [vipacheco] 27/Mayo/2016 Created /// </history> private static OstpromosResponse ObtenerCabeceraEstadoCuenta(string hotel, int folio, string promotion) { BeneficiosxFolioRequest Request = new BeneficiosxFolioRequest(); OstpromosResponse[] Response = null; OstpromosResponse Header = null; // Configuramos el request Request.hotel = hotel; Request.folio = folio; Request.idpromo = promotion; // invocamos al servicio web Response = Current().ObtenerCabeceraEstadoCuenta(Request); if (Response != null) { Header = Response[0]; } return(Header); }