Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }