Exemple #1
0
        public ResultModel Update(UserModel user, Model.Pricing pricing, List<Model.PricingDetail> pricingDetails)
        {
            ResultModel result = new ResultModel();
            DAL.PricingDetailDAL pricingDetailDAL = new PricingDetailDAL();
            DAL.PricingApplyDAL pricingApplyDAL = new PricingApplyDAL();

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    result = pricingDAL.Get(user, pricing.PricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.Pricing resPricing = result.ReturnValue as Model.Pricing;
                    if (resPricing == null || resPricing.PricingId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "验证数据失败";
                        return result;
                    }

                    //获取点价申请
                    result = pricingApplyDAL.Get(user, pricing.PricingApplyId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.PricingApply pricingApply = result.ReturnValue as Model.PricingApply;
                    if (pricingApply == null || pricingApply.PricingApplyId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "对应点价申请不存在";
                        return result;
                    }

                    result = pricingDAL.IsWeightCanPricing(user, pricing.PricingApplyId, pricing.FuturesCodeId, pricingApply.PricingWeight, pricing.PricingWeight, true, resPricing.PricingWeight);
                    if (result.ResultStatus != 0)
                        return result;

                    resPricing.PricingWeight = pricing.PricingWeight;
                    resPricing.MUId = pricing.MUId;
                    resPricing.ExchangeId = pricing.ExchangeId;
                    resPricing.FuturesCodeEndDate = pricing.FuturesCodeEndDate;
                    resPricing.FuturesCodeId = pricing.FuturesCodeId;
                    resPricing.SpotQP = pricing.SpotQP;
                    resPricing.DelayFee = pricing.DelayFee;
                    resPricing.Spread = pricing.Spread;
                    resPricing.OtherFee = pricing.OtherFee;
                    resPricing.AvgPrice = pricing.AvgPrice;
                    resPricing.PricingTime = pricing.PricingTime;
                    resPricing.CurrencyId = pricing.CurrencyId;
                    resPricing.Pricinger = pricing.Pricinger;
                    resPricing.AssertId = pricing.AssertId;
                    resPricing.FinalPrice = pricing.FinalPrice;

                    result = pricingDAL.Update(user, resPricing);
                    if (result.ResultStatus != 0)
                        return result;

                    result = pricingDetailDAL.InvalidAll(user, pricing.PricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    foreach (Model.PricingDetail detail in pricingDetails)
                    {
                        detail.PricingId = pricing.PricingId;
                        detail.DetailStatus = StatusEnum.已生效;
                        detail.PricingApplyId = resPricing.PricingApplyId;

                        result = pricingDetailDAL.Insert(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (result.ResultStatus != 0)
                    this.Log.ErrorFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue);
                else if (this.Log.IsInfoEnabled)
                    this.Log.InfoFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue);
            }

            return result;
        }
Exemple #2
0
        public ResultModel Complete(UserModel user, int pricingId)
        {
            ResultModel result = new ResultModel();

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    result = pricingDAL.Get(user, pricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.Pricing resultObj = result.ReturnValue as Pricing;
                    if (resultObj == null || resultObj.PricingId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "该数据不存在,不能进行执行完成操作";
                        return result;
                    }

                    //执行完成
                    result = pricingDAL.Complete(user, resultObj);
                    if (result.ResultStatus != 0)
                        return result;

                    //加载明细
                    DAL.PricingDetailDAL pricingDetailDAL = new PricingDetailDAL();
                    result = pricingDetailDAL.Load(user, resultObj.PricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    List<Model.PricingDetail> details = result.ReturnValue as List<Model.PricingDetail>;
                    if (details == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "获取点价明细失败";
                        return result;
                    }

                    foreach (Model.PricingDetail detail in details)
                    {
                        result = pricingDetailDAL.Complete(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (result.ResultStatus != 0)
                    log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue);
                else if (log.IsInfoEnabled)
                    log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue);
            }

            return result;
        }
Exemple #3
0
        public ResultModel Create(UserModel user, Model.Pricing pricing, List<Model.PricingDetail> pricingDetails)
        {
            ResultModel result = new ResultModel();
            DAL.PricingDetailDAL pricingDetailDAL = new PricingDetailDAL();
            DAL.PricingApplyDAL pricingApplyDAL = new PricingApplyDAL();
            DAL.PricingApplyDetailDAL applyDetail = new PricingApplyDetailDAL();

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //获取点价申请
                    result = pricingApplyDAL.Get(user, pricing.PricingApplyId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.PricingApply pricingApply = result.ReturnValue as Model.PricingApply;
                    if (pricingApply == null || pricingApply.PricingApplyId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "对应点价申请不存在";
                        return result;
                    }

                    if (pricing.AvgPrice < pricingApply.MinPrice || pricing.AvgPrice > pricingApply.MaxPrice)
                    {
                        result.ResultStatus = -1;
                        result.Message = "期货成交价不在点价申请价格范围内";
                        return result;
                    }

                    result = pricingDAL.IsWeightCanPricing(user, pricing.PricingApplyId, pricing.FuturesCodeId, pricingApply.PricingWeight, pricing.PricingWeight, false, 0);
                    if (result.ResultStatus != 0)
                        return result;

                    pricing.PricingDirection = pricingApply.PricingDirection;
                    pricing.PricingStatus = StatusEnum.已录入;
                    result = pricingDAL.Insert(user, pricing);

                    if (result.ResultStatus != 0)
                        return result;
                    int pricingId = (int)result.ReturnValue;

                    foreach (Model.PricingDetail detail in pricingDetails)
                    {
                        detail.PricingId = pricingId;
                        detail.DetailStatus = StatusEnum.已生效;
                        result = pricingDetailDAL.Insert(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (result.ResultStatus != 0)
                    this.Log.ErrorFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue);
                else if (this.Log.IsInfoEnabled)
                    this.Log.InfoFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue);
            }

            return result;
        }
Exemple #4
0
        public ResultModel Invalid(UserModel user, int pricingId)
        {
            ResultModel result = new ResultModel();

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    result = pricingDAL.Get(user, pricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.Pricing pricing = result.ReturnValue as Model.Pricing;
                    if (pricing == null)
                    {
                        result.Message = "不存在点价信息";
                        result.ResultStatus = -1;
                        return result;
                    }

                    result = pricingDAL.Invalid(user, pricing);
                    if (result.ResultStatus != 0)
                        return result;

                    DAL.PricingDetailDAL pricingDetailDAL = new PricingDetailDAL();
                    result = pricingDetailDAL.InvalidAll(user, pricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (result.ResultStatus != 0)
                    log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue);
                else if (log.IsInfoEnabled)
                    log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue);
            }

            return result;
        }
Exemple #5
0
        public ResultModel CompleteCancel(UserModel user, int pricingId)
        {
            ResultModel result = new ResultModel();

            try
            {
                DAL.PricingDetailDAL pricingDetailDAL = new PricingDetailDAL();
                DAL.PricingApplyDAL pricingApplyDAL = new PricingApplyDAL();
                Operate.DAL.ApplyDAL applyDAL = new Operate.DAL.ApplyDAL();

                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    //验证点价
                    result = pricingDAL.Get(user, pricingId);
                    if (result.ResultStatus != 0)
                        return result;

                    Model.Pricing pricing = result.ReturnValue as Pricing;
                    if (pricing == null || pricing.PricingId <= 0)
                    {
                        result.ResultStatus = -1;
                        result.Message = "该数据不存在,不能进行执行完成取消操作";
                        return result;
                    }

                    //点价完成取消
                    result = pricingDAL.CompleteCancel(user, pricing);
                    if (result.ResultStatus != 0)
                        return result;

                    //获取已完成点价明细
                    result = pricingDetailDAL.Load(user, pricing.PricingId, Common.StatusEnum.已完成);
                    if (result.ResultStatus != 0)
                        return result;
                    List<Model.PricingDetail> details = result.ReturnValue as List<Model.PricingDetail>;
                    if (details == null)
                    {
                        result.ResultStatus = -1;
                        result.Message = "获取点价明细错误";
                        return result;
                    }

                    //将所有已完成点价明细更新至已生效
                    foreach (Model.PricingDetail detail in details)
                    {
                        result = pricingDetailDAL.CompleteCancel(user, detail);
                        if (result.ResultStatus != 0)
                            return result;
                    }

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }

            return result;
        }