Exemplo n.º 1
0
 public static void AdjustPoint(AdjustPointRequest adujstInfo, int userSysNo)
 {
     //1.做检查
     if (!adujstInfo.CustomerSysNo.HasValue || adujstInfo.CustomerSysNo.Value == 0)
     {
         throw new ArgumentException(L("用户编号不能为空"));
     }
     if (string.IsNullOrEmpty(adujstInfo.Source))
     {
         throw new BusinessException(L("积分调整来源系统不能为空"));
     }
     if (string.IsNullOrEmpty(adujstInfo.Memo))
     {
         throw new BusinessException(L("积分调整原因不能为空"));
     }
     CustomerDA.AdjustPoint(adujstInfo, userSysNo);
 }
Exemplo n.º 2
0
        /// <summary>
        /// 系统直接发放或者收回用户积分
        /// </summary>
        /// <param name="refundBalanceInfo"></param>
        private void TransferPointRefund(RefundBalanceInfo refundBalanceInfo)
        {
            int pointAmount = Convert.ToInt32(Decimal.Round(refundBalanceInfo.CashAmt.Value * pointExchangeRate, 0));

            if (pointAmount != 0)
            {
                AdjustPointRequest transferPointInfo = new AdjustPointRequest()
                {
                    CustomerSysNo = refundBalanceInfo.CustomerSysNo.Value,
                    Point         = pointAmount,
                    PointType     = (int)AdjustPointType.RefundCashToPoints,
                    Memo          = refundBalanceInfo.SysNo.ToString(),
                    SOSysNo       = refundBalanceInfo.OriginalSOSysNo,
                    OperationType = AdjustPointOperationType.AddOrReduce
                };
                ExternalDomainBroker.AdjustPoint(transferPointInfo);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 积分撤销操作
        /// </summary>
        /// <param name="refundInfo"></param>
        private void AbandonPoint(RefundBalanceInfo refundBalanceInfo)
        {
            int pointAmount = refundBalanceInfo.PointAmt.Value;

            if (refundBalanceInfo.PointAmt > 0)
            {
                AdjustPointRequest itemPointInfo = new AdjustPointRequest()
                {
                    CustomerSysNo = refundBalanceInfo.CustomerSysNo.Value,
                    Point         = pointAmount,
                    PointType     = (int)AdjustPointType.ReturnProductPoint,
                    Memo          = "RoBalanceRefundPointPart",
                    SOSysNo       = refundBalanceInfo.OriginalSOSysNo,
                    Source        = "RMA Domain",
                    OperationType = AdjustPointOperationType.Abandon
                };
                ExternalDomainBroker.AdjustPoint(itemPointInfo);
            }
        }
Exemplo n.º 4
0
 public virtual void Adjust(AdjustPointRequest adujstInfo)
 {
     //1.做检查
     if (!adujstInfo.CustomerSysNo.HasValue || adujstInfo.CustomerSysNo.Value == 0)
     {
         throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "CustomerSysNoIsNull"));
     }
     if (string.IsNullOrEmpty(adujstInfo.Source))
     {
         throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SourceIsNull"));
     }
     if (string.IsNullOrEmpty(adujstInfo.Memo))
     {
         throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "MemoIsNull"));
     }
     //2.执行调整操作
     //GetOperResult(ObjectFactory<IPointDA>.Instance.Adjust(adujstInfo));
     GetOperResult(ExternalDomainBroker.AdjustPoint(adujstInfo));
 }
Exemplo n.º 5
0
        public static object AdjustPoint(AdjustPointRequest adujstInfo, int userSysNo)
        {
            CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("AdjustPoint");

            cmd.SetParameterValue("@CustomerSysno", adujstInfo.CustomerSysNo);
            cmd.SetParameterValue("@Point", adujstInfo.Point);
            cmd.SetParameterValue("@PointType", adujstInfo.PointType);
            cmd.SetParameterValue("@Source", adujstInfo.Source);
            cmd.SetParameterValue("@Memo", adujstInfo.Memo);
            cmd.SetParameterValue("@InUser", userSysNo);
            cmd.SetParameterValue("@OperationType", adujstInfo.OperationType);
            cmd.SetParameterValue("@SoSysNo", adujstInfo.SOSysNo);
            cmd.SetParameterValue("@ExpireDate", adujstInfo.PointExpiringDate);
            cmd.CommandTimeout = 120;
            cmd.ExecuteNonQuery();
            object obj = cmd.GetParameterValue("@returnCode");

            return(obj);
        }
Exemplo n.º 6
0
        private static void ReturnProductPoint(RMARefundInfo refundInfo, int userSysNo)
        {
            int affectedPoint1 = -1 * (refundInfo.DeductPointFromAccount ?? 0) + (refundInfo.PointPay ?? 0);

            if (affectedPoint1 != 0)
            {
                AdjustPointRequest itemPointInfo = new AdjustPointRequest()
                {
                    Source        = "RMA",
                    CustomerSysNo = refundInfo.CustomerSysNo.Value,
                    Point         = affectedPoint1,
                    PointType     = (int)AdjustPointType.ReturnProductPoint,
                    Memo          = refundInfo.SysNo.ToString(),
                    OperationType = AdjustPointOperationType.Abandon,
                    SOSysNo       = refundInfo.SOSysNo
                };

                CustomerService.AdjustPoint(itemPointInfo, userSysNo);//item积分撤消
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 调整顾客积分预检查
        /// </summary>
        /// <param name="adujstInfo"></param>
        /// <returns></returns>
        public virtual object AdjustPointPreCheck(AdjustPointRequest adujstInfo)
        {
            CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("Invoice.AdjustPointPreCheck");

            cmd.AddInputParameter("@CustomerSysno", DbType.Int32, adujstInfo.CustomerSysNo);
            cmd.AddInputParameter("@Point", DbType.Int32, adujstInfo.Point);
            cmd.AddInputParameter("@PointType", DbType.Int32, adujstInfo.PointType);
            cmd.AddInputParameter("@Source", DbType.String, adujstInfo.Source);
            cmd.AddInputParameter("@Memo", DbType.String, adujstInfo.Memo);
            cmd.SetParameterValueAsCurrentUserSysNo("@InUser");
            cmd.AddInputParameter("@OperationType", DbType.Int32, adujstInfo.OperationType);
            cmd.AddInputParameter("@SoSysNo", DbType.Int32, adujstInfo.SOSysNo);
            cmd.AddInputParameter("@ExpireDate", DbType.DateTime, adujstInfo.PointExpiringDate);
            cmd.AddOutParameter("@returnCode", DbType.Int32, 0);
            cmd.CommandTimeout = 120;
            cmd.ExecuteNonQuery();
            object obj = cmd.GetParameterValue("@returnCode");

            return(obj);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 调整积分
        /// </summary>
        /// <param name="data"></param>
        /// <param name="callback"></param>
        public void AjustPoint(AdjustSysAccountPointVM vm, EventHandler <RestClientEventArgs <AdjustPointRequest> > callback)
        {
            AdjustPointRequest data = vm.ConvertVM <AdjustSysAccountPointVM, AdjustPointRequest>();

            data.OperationType     = AdjustPointOperationType.AddOrReduce;
            data.PointType         = (int)AdjustPointType.AddPointToSysAccounts;
            data.Source            = "Invoice Domain";
            data.PointExpiringDate = DateTime.Now.AddYears(2);
            data.Memo = string.Format("系统账户加积分{0}", string.IsNullOrEmpty(vm.Memo) ? string.Empty : string.Format(":{0}", vm.Memo));
            string relativeUrl = "/InvoiceService/SysAccount/AjustPoint";

            restClient.Update <AdjustPointRequest>(relativeUrl, data, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(obj, args);
            });
        }
Exemplo n.º 9
0
        public virtual void VerifyCustomerAddPointRequset(CustomerPointsAddRequest requset)
        {
            if (requset.SysNo <= 0)
            {
                throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "AuditRequest_SONotFound"));
            }
            //审核人和申请人不能相同
            //if (requset.ConfirmUserSysNo == requset.CreateUserSysNo)
            //{
            //    throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "AuditRequest_ComfirmEqualCreate"));
            //}
            if (requset.Status == CustomerPointsAddRequestStatus.AuditDenied)
            {
                string            to    = ExternalDomainBroker.GetUserInfoBySysNo(requset.CreateUserSysNo).EmailAddress;
                KeyValueVariables param = new KeyValueVariables();
                param.Add("RequestSysNo", requset.SysNo);
                param.Add("Reasion", requset.ConfirmNote);
                using (TransactionScope scope = new TransactionScope())
                {
                    ObjectFactory <IPointDA> .Instance.ConfirmRequest(requset);

                    ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(to, "CustomerPointAddRequest_AuditDenied", param, true);
                    scope.Complete();
                }
                return;
            }
            else if (requset.Status == CustomerPointsAddRequestStatus.AuditPassed)
            {
                if (requset.PointsItemList != null && requset.PointsItemList.Count > 0)
                {
                    SOBaseInfo soInfo = ExternalDomainBroker.GetSOBaseInfo(requset.SOSysNo.Value);
                    if (soInfo == null)
                    {
                        throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SOStatusNotFound"));
                    }

                    if (ExternalDomainBroker.GetAutoRMARefundCountBySOSysNo(requset.SOSysNo.Value) > 0)//出库后被物流拒收也视为未出库
                    {
                        throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SOStatusNotOutStock"));
                    }
                    SOIncomeInfo soincomeinfo = ExternalDomainBroker.GetConfirmedSOIncomeInfo(requset.SOSysNo.Value, SOIncomeOrderType.SO);
                    if (soincomeinfo == null)
                    {
                        throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SOIncomeNotComfirmed"));
                    }
                    if (soInfo.Status != SOStatus.OutStock && SOIncomeStatus.Confirmed != soincomeinfo.Status)
                    {
                        throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SOStatusNotOutStockAndSOIncomeNotComfirmed"));
                    }
                    else if (soInfo.Status != SOStatus.OutStock)
                    {
                        throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SOStatusNotOutStock"));
                    }
                    else if (soincomeinfo.Status != SOIncomeStatus.Confirmed)
                    {
                        throw new BizException(ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "SOIncomeNotComfirmed"));
                    }
                }
                using (TransactionScope scope = new TransactionScope())
                {
                    //1.为顾客加积分
                    AdjustPointRequest pointAdjust = new AdjustPointRequest();
                    pointAdjust.CustomerSysNo = requset.CustomerSysNo;
                    pointAdjust.Memo          = ResouceManager.GetMessageString("Customer.CustomerPointsAddRequest", "PointAddMemo_ManulAdjust");
                    pointAdjust.OperationType = AdjustPointOperationType.AddOrReduce;
                    pointAdjust.Point         = requset.Point;
                    pointAdjust.PointType     = requset.PointType;
                    pointAdjust.SOSysNo       = requset.SOSysNo;
                    pointAdjust.Source        = "CustomerMgmt";
                    Adjust(pointAdjust);
                    //1.将申请单审核通过
                    ObjectFactory <IPointDA> .Instance.ConfirmRequest(requset);

                    scope.Complete();
                }
            }
        }
Exemplo n.º 10
0
 public void AdjustPoint(AdjustPointRequest request)
 {
     ObjectFactory <InvoiceJobAppService> .Instance.AdjustPoint(request);
 }
Exemplo n.º 11
0
 public virtual void AdjustPoint(AdjustPointRequest info)
 {
     ObjectFactory <PointProcessor> .Instance.Adjust(info);
 }
Exemplo n.º 12
0
 public virtual void AdjustPointPreCheck(AdjustPointRequest info)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 13
0
 /// <summary>
 /// 调整用户积分
 /// </summary>
 /// <param name="adjustRequest"></param>
 public static void AdjustPoint(AdjustPointRequest adjustRequest)
 {
     ObjectFactory <ICustomerBizInteract> .Instance.AdjustPoint(adjustRequest);
 }
Exemplo n.º 14
0
 public void AdjustPoint(AdjustPointRequest request)
 {
     ObjectFactory <BalanceRefundProcessor> .Instance.AdjustPoint(request);
 }
Exemplo n.º 15
0
 public virtual object AdjustPointPreCheck(AdjustPointRequest adjustInfo)
 {
     return(m_BalanceRefundDA.AdjustPointPreCheck(adjustInfo));
 }
Exemplo n.º 16
0
        private void VoidTransferPostage2Point(RMARequestInfo request)
        {
            var customerRank = ExternalDomainBroker.GetCustomerRank(request.CustomerSysNo.Value);

            TriStatus?stat = null;

            DateTime oldMaxReceiveTime;

            if (!string.IsNullOrEmpty(AppSettingManager.GetSetting("RMA", "OldMaxReceiveTime")))
            {
                oldMaxReceiveTime = DateTime.Parse(AppSettingManager.GetSetting("RMA", "OldMaxReceiveTime"));
            }
            else
            {
                oldMaxReceiveTime = DateTime.Parse("2010-2-23 10:00:00");
            }

            if (request.ReceiveTime < oldMaxReceiveTime && (int)customerRank >= (int)CustomerRank.Golden)
            {
                request.PostageToPoint = 50;
                if (!(request.ShipViaCode.ToLower().Contains("ozzo") ||
                      request.ShipViaCode.ToLower().Contains("奥硕")))
                {
                    int point = 0 - request.PostageToPoint.Value;
                    AdjustPointRequest adjustInfo = new AdjustPointRequest();
                    adjustInfo.CustomerSysNo = request.CustomerSysNo.Value;
                    adjustInfo.Point         = point;
                    adjustInfo.PointType     = (int)AdjustPointType.RMAPostageManuToPoints;
                    adjustInfo.Source        = "RMA";
                    adjustInfo.Memo          = ResouceManager.GetMessageString("RMA.Request", "AdjustInfoMemo");
                    adjustInfo.OperationType = AdjustPointOperationType.Abandon;
                    adjustInfo.SOSysNo       = request.SysNo;
                    ExternalDomainBroker.AdjustPoint(adjustInfo);
                }
            }
            else if (request.ShipViaCode == RMAConst.ShipVia_PostOffice &&
                     request.PostageToPoint.HasValue &&
                     request.PostageToPoint.Value > 0)
            {
                try
                {
                    int re = ExternalDomainBroker.GetCustomerPointAddRequestStatus(request.SysNo.Value);
                    stat = (TriStatus)re;
                }
                catch (BizException e)
                {
                    //邮资转积分有可能关闭,此时将没有调整记录
                    if (string.Compare(e.Message, "Cannot find any matched AdjustPointRequest") == 0)
                    {
                        return;
                    }
                    else
                    {
                        throw e;
                    }
                }
                if (stat != null && stat.Value == TriStatus.Origin)
                {
                    ExternalDomainBroker.AbandonAdjustPointRequest(request.SysNo.Value);
                }
            }
        }
Exemplo n.º 17
0
 public static object AdjustPoint(AdjustPointRequest adjustInfo)
 {
     return(ObjectFactory <IInvoiceBizInteract> .Instance.AdjustPoint(adjustInfo));
 }
Exemplo n.º 18
0
 public virtual void AddCustomerPoint(AdjustPointRequest entity)
 {
     ObjectFactory <CustomerPointsAppService> .Instance.AddCustomerPoint(entity);
 }
Exemplo n.º 19
0
 /// <summary>
 /// 为顾客加积分
 /// </summary>
 public virtual void AddCustomerPoint(AdjustPointRequest entity)
 {
     ObjectFactory <PointProcessor> .Instance.Adjust(entity);
 }
Exemplo n.º 20
0
 public virtual object AdjustPoint(AdjustPointRequest adjustInfo)
 {
     return(ObjectFactory <BalanceRefundProcessor> .Instance.AdjustPoint(adjustInfo));
 }
Exemplo n.º 21
0
 public void AjustSysAccountPoint(AdjustPointRequest entity)
 {
     ObjectFactory <AjustSysAccountPointAppService> .Instance.AjustSysAccountPoint(entity);
 }
Exemplo n.º 22
0
 public void AjustSysAccountPoint(AdjustPointRequest entity)
 {
     CustomerBizInteract.AdjustPoint(entity);
 }
Exemplo n.º 23
0
 internal static void AdjustPoint(AdjustPointRequest info)
 {
     ObjectFactory <ICustomerBizInteract> .Instance.AdjustPoint(info);
 }