Exemplo n.º 1
0
        public IMessageProvider Save()
        {
            TransactionHelper.BeginTransaction();
            var serialNo    = SerialNoHelper.Create();
            var pointRebate = PointRebateService.GetById(this.PointRebate);

            if (pointRebate == null)
            {
                AddError(LogTypes.AccountRebate, "NoPointRebate");
                return(this);
            }
            var account = AccountService.GetById(AccountId);

            if (account == null || account.Point < pointRebate.Point)
            {
                AddError(LogTypes.AccountRebate, "NoPointRebate");
                return(this);
            }

            var accountLevel =
                AccountLevelPolicyService.Query().FirstOrDefault(
                    x => x.State == AccountLevelPolicyStates.Normal && x.Level == account.AccountLevel && x.AccountTypeId == account.AccountTypeId);

            var owner        = (AccountUser)(_innerObject.OwnerId.HasValue ? this.MembershipService.GetUserById(_innerObject.OwnerId.Value) : null);
            var pointRebates = PointRebateService.Query().Where(x => x.IsFor(account, owner, accountLevel, DateTime.Now) && x.Point < account.Point).ToList();

            if (pointRebates.Count == 0)
            {
                AddError(LogTypes.AccountRebate, "NoPointRebate");
                return(this);
            }

            if (!pointRebates.Any(x => x.PointRebateId == pointRebate.PointRebateId))
            {
                AddError(LogTypes.AccountRebate, "NoPointRebate");
                return(this);
            }

            account.Amount += pointRebate.Amount;
            account.Point  -= pointRebate.Point;

            AccountService.Update(account);
            var dealLog = new DealLog(serialNo, DealTypes.Rebate, -pointRebate.Amount, -pointRebate.Point, null, null, account, null, pointRebate.PointRebateId);

            DealLogService.Create(dealLog);
            SystemDealLogService.Create(new SystemDealLog(serialNo, SecurityHelper.GetCurrentUser())
            {
                Amount = pointRebate.Amount, DealType = SystemDealLogTypes.Rebate, Addin = dealLog.DealLogId.ToString()
            });
            Logger.LogWithSerialNo(LogTypes.AccountRebate, serialNo, account.AccountId, account.Name, pointRebate.DisplayName);
            PointRebateLogService.Create(new PointRebateLog(serialNo, account, SecurityHelper.GetCurrentUser().CurrentUser, pointRebate));
            AddMessage("success", pointRebate.Amount, pointRebate.Point);
            return(TransactionHelper.CommitAndReturn(this));
        }
Exemplo n.º 2
0
        public void Delete(int id)
        {
            var item = this.PointRebateService.GetById(id);

            if (item != null)
            {
                PointRebateService.Delete(item);

                Logger.LogWithSerialNo(LogTypes.PointRebateDelete, SerialNoHelper.Create(), id, item.DisplayName);
                AddMessage("delete.success", item.DisplayName);
            }
        }
Exemplo n.º 3
0
        public void Resume(int id)
        {
            var item = this.PointRebateService.GetById(id);

            if (item != null && item.State == PointRebateStates.Invalid)
            {
                item.State = PointRebateStates.Normal;
                PointRebateService.Update(item);

                Logger.LogWithSerialNo(LogTypes.PointRebateResume, SerialNoHelper.Create(), id, item.DisplayName);
                AddMessage("resume.success", item.DisplayName);
            }
        }
Exemplo n.º 4
0
        public void Query()
        {
            var query = PointRebateService.Query();

            if (State != States.All)
            {
                query = query.Where(x => x.State == State);
            }
            if (AccountLevel != Globals.All)
            {
                query = query.Where(x => x.IncludeLevel(AccountLevel));
            }
            this.List = query.ToList(this, x => new ListPointRebate(x));
        }
Exemplo n.º 5
0
        public IMessageProvider Create()
        {
            var serialNo = SerialNoHelper.Create();

            InnerObject.State = PointRebateStates.Normal;

            TransactionHelper.BeginTransaction();
            OnSave(InnerObject);
            PointRebateService.Create(InnerObject);

            AddMessage("success", DisplayName);
            Logger.LogWithSerialNo(LogTypes.PointRebateCreate, serialNo, InnerObject.PointRebateId, DisplayName);

            return(TransactionHelper.CommitAndReturn(this));
        }
Exemplo n.º 6
0
        public void Ready()
        {
            var accountLevel =
                AccountLevelPolicyService.Query().FirstOrDefault(
                    x => x.State == AccountLevelPolicyStates.Normal && x.Level == _innerObject.AccountLevel && x.AccountTypeId == _innerObject.AccountTypeId);

            var owner  = (AccountUser)(_innerObject.OwnerId.HasValue ? this.MembershipService.GetUserById(_innerObject.OwnerId.Value) : null);
            var levels = PointRebateService.Query().Where(x => x.IsFor(_innerObject, owner, accountLevel, DateTime.Now) && x.Point < _innerObject.Point)
                         .Select(x => new IdNamePair()
            {
                Key = x.PointRebateId, Name = x.DisplayName
            });

            PointRebate.Bind(levels);
        }
Exemplo n.º 7
0
        public void Save()
        {
            var serialNo = SerialNoHelper.Create();
            var item     = PointRebateService.GetById(PointRebateId);

            if (item != null)
            {
                TransactionHelper.BeginTransaction();
                item.DisplayName = DisplayName;
                item.Point       = Point;

                item.Amount      = Amount;
                item.DisplayName = DisplayName;
                OnSave(item);
                PointRebateService.Update(item);


                AddMessage("success", DisplayName);
                Logger.LogWithSerialNo(LogTypes.PointRebateEdit, serialNo, item.PointRebateId, DisplayName);

                TransactionHelper.Commit();
            }
        }
Exemplo n.º 8
0
        public void Read(int id)
        {
            var pointRebate = PointRebateService.GetById(id);

            this.SetInnerObject(pointRebate);
        }