Esempio n. 1
0
        /// <summary>
        /// Agrega una promocion
        /// </summary>
        /// <param name="Promotions"></param>
        /// <param name="Hotel"></param>
        /// <param name="Folio"></param>
        /// <param name="Promotion"></param>
        /// <param name="GiftID"></param>
        /// <param name="ReceiptID"></param>
        /// <param name="User"></param>
        /// <param name="enumPromotionsSystem"></param>
        /// <history>
        /// [vipacheco] 27/Mayo/2016 Created
        /// [vipacheco] 23/Agosto/2016 Modified -> se cambio el tipo del parametro Promotions
        /// </history>
        public static void AddPromotion(ref List <GuardaPromocionForzadaRequest> Promotions, string Hotel, string Folio, string Promotion, string GiftID, int ReceiptID, string User, EnumPromotionsSystem enumPromotionsSystem)
        {
            GuardaPromocionForzadaRequest request = new GuardaPromocionForzadaRequest()
            {
                hotel            = Hotel,
                folio            = Folio,
                adicional        = (enumPromotionsSystem == EnumPromotionsSystem.PVP) ? "1" : "0",
                idpromo          = Promotion,
                GiftID           = GiftID,
                GiftsReceiptID   = $"{ReceiptID}",
                usralta          = User,
                fechaalta        = BRHelpers.GetServerDate(),
                idtipoasignacion = "CONT",
                status           = "A",
                tipomov          = "",
                usrmodif         = ""
            };

            Promotions.Add(request);
        }
Esempio n. 2
0
        /// <summary>
        /// Obtiene los regalos de promociones de Sistur
        /// </summary>
        /// <param name="ReceiptID"></param>
        /// <param name="ChangeBy"></param>
        /// <param name="UserID"></param>
        /// <param name="aGifts"></param>
        /// <param name="enumPromotionsSystem"></param>
        /// <returns></returns>
        /// <history>
        /// [vipacheco] 27/Mayo/2016 Created
        /// [vipacheco] 25/Julio/2016 Modified --> Se agreggo asyncronia
        /// </history>
        public async static Task <List <GuardaPromocionForzadaRequest> > GetGiftsPromotionsSistur(int ReceiptID, string ChangeBy, string UserID, List <GiftType> aGifts)
        {
            List <GuardaPromocionForzadaRequest> aPromotions = new List <GuardaPromocionForzadaRequest>();
            string Hotel = string.Empty;
            string Folio = string.Empty;
            //int Company = 0;
            string Application    = string.Empty;
            string MembershipType = string.Empty;

            // obtenemos las promociones de Sistur que no se han dado
            List <GiftsReceiptDetailPromotionsSistur> Result = await BRGiftsReceiptDetail.GetGiftsReceiptDetailPromotionsPVP(ReceiptID);

            // por default se van a guardar al sistema de Promociones de Sistur
            EnumPromotionsSystem enumPromotionsSystem = EnumPromotionsSystem.Sistur;

            if (Result.Count > 0)
            {
                GiftsReceiptDetailPromotionsSistur Detail = Result[0];

                // Si es inhouse
                if (Detail.lspg.Equals("IH"))
                {
                    // Si es una invitacion inhouse
                    if (Detail.guHReservID != null)
                    {
                        Hotel = Detail.gulsOriginal;
                        Folio = Detail.guHReservID;
                    }
                    // si es una invitacion externa
                    else
                    {
                        Hotel = Detail.lsPropertyOpera;
                        Folio = $"{ReceiptID}";
                    }

                    // Si el Lead Source usa sistur
                    if (Detail.lsUseSistur)
                    {
                        enumPromotionsSystem = EnumPromotionsSystem.Sistur;
                    }
                }
                // Si es outhouse
                else
                {
                    Hotel = Detail.srPropertyOpera;
                    Folio = $"{ReceiptID}";

                    // Si la sala de ventas usa sistur
                    if (Detail.srUseSistur)
                    {
                        enumPromotionsSystem = EnumPromotionsSystem.Sistur;
                    }
                }
                // si es una invitacion externa u outhouse
                if ((Detail.lspg.Equals("IH") && Detail.guHReservID == null) || Detail.lspg.Equals("OUT"))
                {
                    // guardamos la reservacion ficticia
                    WirePRHelper.Origos_reservas_ficticias_Guardar(Hotel, Convert.ToInt32(Folio), Detail.guFirstName1, Detail.guLastName1);
                }
            }

            for (int i = 0; i < Result.Count; i++)
            {
                GiftsReceiptDetailPromotionsSistur _Detail = Result[i];

                // preparamos los regalos con promociones que se guardaran en Sistur
                AddPromotion(ref aPromotions, Hotel, Folio, _Detail.giPVPPromotion, _Detail.gegi, ReceiptID, (!string.IsNullOrEmpty(ChangeBy) ? ChangeBy : UserID), enumPromotionsSystem);

                // preparamos los regalos con promociones que se guardaran en Origos
                GiftType typGift = new GiftType();
                typGift.ID                   = _Detail.gegi;
                typGift.Descripcion          = _Detail.giN;
                typGift.Quantity             = 0;
                typGift.Receipt              = ReceiptID;
                typGift.Promotion            = _Detail.giPVPPromotion;
                typGift.TransactionTypeOpera = "";

                // Agregamos a la lista
                aGifts.Add(typGift);
            }

            return(aPromotions);
        }