/// <summary> /// Guarda en el sistema de Opera los cargos a habitacion /// </summary> /// <param name="ReceiptID"></param> /// <history> /// [vipacheco] 01/Junio/2016 Created /// </history> public static string SaveRoomChargesOpera(int ReceiptID, string ChargeTo) { CargoHabitacionTRNRequest Request = new CargoHabitacionTRNRequest(); RmmsttrnRowResponse Response = null; List <CargoHabitacionRequest> aRoomCharges = new List <CargoHabitacionRequest>(); List <GiftType> aGifts = new List <GiftType>(); // obtenemos los regalos con cargo a habitacion aRoomCharges = GetGiftsRoomCharges(ReceiptID, ref aGifts, ref Request, ChargeTo); // Si algun regalo tiene cargo a habitacion if (aRoomCharges.Count > 0) { // invocamos al servicio web para insertar cada regalo que se pretende asignar Response = InsertarCargoHabitacionTRN(Request); // actualizamos el consecutivo de cargos a habitacion BRRoomCharges.UpdateRoomChargeConsecutive(Request.Hotel, $"{Request.Folio}"); // actualizamos los regalos para identificarlos como que se guardaron en Opera foreach (GiftType _Gift in aGifts) { BRGiftsReceiptDetail.UpdateGiftsReceiptDetailRoomChargeOpera(_Gift.Receipt, _Gift.ID, _Gift.TransactionTypeOpera); } return("Gifts were successfully saved in Opera as Room Charges"); } return(string.Empty); }
/// <summary> /// Agrega un cargo a habitacion /// </summary> /// <param name="Request"></param> /// <param name="Error"></param> /// <returns></returns> /// <history> /// [vipacheco] 01/Junio/2016 Created /// </history> public static RmmsttrnRowResponse InsertarCargoHabitacionTRN(CargoHabitacionTRNRequest Request) { RmmsttrnRowResponse Response = null; // invocamos al servicio web Response = Current.InsertarCargoHabitacionTRN(Request); // Si ocurrio un error if (Response.HasErrors) { throw new Exception(Response.ExceptionInfo.Message); } return(Response); }
/// <summary> /// Obtiene los regalos de cargos a habitacion /// </summary> /// <param name="ReceiptID"></param> /// <param name="aGifts"></param> /// <param name="Request"></param> /// <param name="ChargeTo"></param> /// <returns></returns> /// <history> /// [vipacheco] 01/Junio/2016 Created /// </history> public static List <CargoHabitacionRequest> GetGiftsRoomCharges(int ReceiptID, ref List <GiftType> aGifts, ref CargoHabitacionTRNRequest Request, string ChargeTo) { List <CargoHabitacionRequest> aRoomCharges = new List <CargoHabitacionRequest>(); // obtenemos los cargos a habitacion de Opera que no se han dado List <GiftsReceiptDetailRoomChargesOpera> lstResult = BRGiftsReceiptDetail.GetGiftsReceiptDetailRoomChargesOpera(ReceiptID); if (lstResult.Count > 0) { GiftsReceiptDetailRoomChargesOpera First = lstResult[0]; // Configuramos el Request Request.Hotel = First.gulsOriginal; Request.Folio = Convert.ToInt32(First.guHReservID); Request.PostDate = BRHelpers.GetServerDate(); Request.Batch = First.rhConsecutive != null ? $"{First.rhConsecutive}" : ""; foreach (GiftsReceiptDetailRoomChargesOpera Current in lstResult) { // agregamos el cargo a habitacion AddRoomCharge(ref aRoomCharges, Current.gulsOriginal, Convert.ToInt32(Current.guHReservID), ChargeTo, ReceiptID, Current.giN, Current.gePriceA, Current.giOperaTransactionType); // preparamos los regalos con cargos a habitacion que se guardaran en Origos GiftType _Gift = new GiftType(); _Gift.ID = Current.gegi; _Gift.Descripcion = Current.giN; _Gift.Quantity = 0; _Gift.Receipt = ReceiptID; _Gift.Promotion = ""; _Gift.TransactionTypeOpera = Current.giOperaTransactionType; // Agregamos a la lista aGifts.Add(_Gift); } Request.CargosHabitacion = aRoomCharges.ToArray(); } return(aRoomCharges); }