示例#1
0
        PurchaseLimitationGroup restructCotor(DbOperator dbOperator, string sql)
        {
            PurchaseLimitationGroup view         = null;
            List <Guid>             limitationId = null;

            using (var reader = dbOperator.ExecuteReader(sql))
            {
                while (reader.Read())
                {
                    Guid currentLimitationGroupId = reader.GetGuid(0);
                    if (view == null || view.Id != currentLimitationGroupId)
                    {
                        view = new PurchaseLimitationGroup(reader.GetGuid(0));
                        if (!reader.IsDBNull(0))
                        {
                            view.Id = reader.GetGuid(0);
                        }
                        view.IsGlobal   = reader.GetBoolean(1);
                        view.Limitation = new List <PurchaseLimitation>();
                        limitationId    = new List <Guid>();
                    }
                    Guid currentLimitationId = reader.GetGuid(2);
                    if (!limitationId.Contains(currentLimitationId))
                    {
                        var limitation = new PurchaseLimitation()
                        {
                            Id                = reader.GetGuid(2),
                            Airlines          = reader.GetString(3),
                            Departures        = reader.GetString(4),
                            LimitationGroupId = reader.GetGuid(5),
                            Rebate            = new List <PurchaseLimitationRebate>()
                        };
                        view.Limitation.Add(limitation);
                        limitationId.Add(currentLimitationId);
                    }
                    Guid currentRebateLimitationId  = reader.GetGuid(6);
                    PurchaseLimitationRateType type = (PurchaseLimitationRateType)reader.GetByte(7);
                    var currentLimitation           = view.Limitation.Where(limit => limit.Id == currentRebateLimitationId).FirstOrDefault();
                    if (currentLimitation.Rebate.Count() == 0 ||
                        currentLimitation.Rebate.All(it => it.LimitationId == currentRebateLimitationId && it.Type != type))
                    {
                        var rebate = new PurchaseLimitationRebate()
                        {
                            LimitationId  = currentRebateLimitationId,
                            Type          = type,
                            AllowOnlySelf = reader.GetBoolean(8)
                        };
                        if (!reader.IsDBNull(9))
                        {
                            rebate.Rebate = reader.GetDecimal(9);
                        }
                        currentLimitation.Rebate.Add(rebate);
                    }
                }
            }
            return(view);
        }
示例#2
0
        /// <summary>
        /// 修改公司组
        /// </summary>
        /// <param name="company">当前公司Id</param>
        /// <param name="companyGroup">公司组Id</param>
        /// <param name="companyGroupView">公司组信息</param>
        /// <param name="operatorAccount">操作员账号</param>
        public static void UpdateCompanyGroup(Guid company, Guid companyGroup, CompanyGroupView companyGroupView, string operatorAccount)
        {
            var model = new CompanyGroup(companyGroup);

            model.Company              = company;
            model.Description          = companyGroupView.Description;
            model.Name                 = companyGroupView.Name;
            model.UpdateAccount        = operatorAccount;
            model.UpdateTime           = DateTime.Now;
            model.PurchaseMyPolicyOnly = companyGroupView.PurchaseMyPolicyOnly;
            if (companyGroupView.Limitations != null)
            {
                foreach (var item in companyGroupView.Limitations)
                {
                    var limitationItem = new PurchaseLimitation();
                    limitationItem.Airlines = item.Airlines;
                    limitationItem.DefaultRebateForNonePolicy = item.DefaultRebateForNonePolicy;
                    limitationItem.Departures = item.Departures;
                    limitationItem.PurchaseMyPolicyOnlyForNonePolicy = item.PurchaseMyPolicyOnlyForNonePolicy;
                    model.AppendLimitaion(limitationItem);
                }
            }
            var reposity = Factory.CreateCompanyGroupRepository();

            reposity.UpdateCompanyGroup(model);
            // 记录日志
            var    view            = QueryCompanyGroup(companyGroup);
            string originalContent = string.Format("公司组Id:{0},组别名称:{1},组别描述:{2},是否采购其他代理政策:{3},公司Id:{4},限制信息集合:",
                                                   companyGroup, view.Name, view.Description, view.PurchaseMyPolicyOnly, company);

            if (view.Limitations != null)
            {
                foreach (var item in companyGroupView.Limitations)
                {
                    originalContent += string.Format("受限航空公司{0},限制出港城市{1},未发布政策时,是否只能采购自己的政策{2},未发布政策时,设置默认返点{3};", item.Airlines,
                                                     item.Departures, item.PurchaseMyPolicyOnlyForNonePolicy, item.DefaultRebateForNonePolicy);
                }
            }
            string newContent = string.Format("公司组Id:{0},组别名称:{1},组别描述:{2},是否采购其他代理政策:{3},更新操作者账号:{4},更新时间:{5},公司Id:{6},限制信息集合:",
                                              model.Id, model.Name, model.Description, model.PurchaseMyPolicyOnly, model.UpdateAccount, model.UpdateTime.Value.Date.ToString("yyyy-MM-dd HH:mm:ss"), model.Company);

            if (companyGroupView.Limitations != null)
            {
                foreach (var item in companyGroupView.Limitations)
                {
                    newContent += string.Format("受限航空公司{0},限制出港城市{1},未发布政策时,是否只能采购自己的政策{2},未发布政策时,设置默认返点{3};", item.Airlines,
                                                item.Departures, item.PurchaseMyPolicyOnlyForNonePolicy, item.DefaultRebateForNonePolicy);
                }
            }
            saveUpdateLog("公司组", originalContent, newContent, "公司Id:" + company.ToString() + "公司组Id:" + companyGroup.ToString(), operatorAccount);
        }
示例#3
0
        /// <summary>
        /// 添加公司组
        /// </summary>
        /// <param name="company">当前公司Id</param>
        /// <param name="companyGroupView">公司组信息</param>
        /// <param name="operatorAccount">操作员账号</param>
        public static void RegisterCompanyGroup(Guid company, CompanyGroupView companyGroupView, string operatorAccount)
        {
            var model = new ChinaPay.B3B.Service.SystemSetting.Domain.CompanyGroup();

            model.Name = companyGroupView.Name;
            model.PurchaseMyPolicyOnly = companyGroupView.PurchaseMyPolicyOnly;
            model.Description          = companyGroupView.Description;
            model.Company = company;
            if (companyGroupView.Limitations != null)
            {
                foreach (var item in companyGroupView.Limitations)
                {
                    var limitationItem = new PurchaseLimitation();
                    limitationItem.Airlines = item.Airlines;
                    limitationItem.DefaultRebateForNonePolicy = item.DefaultRebateForNonePolicy;
                    limitationItem.Departures = item.Departures;
                    limitationItem.PurchaseMyPolicyOnlyForNonePolicy = item.PurchaseMyPolicyOnlyForNonePolicy;
                    model.AppendLimitaion(limitationItem);
                }
            }
            model.RegisterAccount = operatorAccount;
            model.RegisterTime    = DateTime.Now;
            var repository = Factory.CreateCompanyGroupRepository();

            repository.RegisterCompanyGroup(model);
            string strContent = string.Format("公司组Id:{0},组别名称:{1},组别描述:{2},是否采购其他代理政策:{3},操作者账号:{4},创建时间:{5},公司Id:{6},受限航空公司集合:",
                                              model.Id, model.Name, model.Description, model.PurchaseMyPolicyOnly, model.RegisterAccount, model.RegisterTime.Date.ToString("yyyy-MM-dd HH:mm:ss"), model.Company);

            if (companyGroupView.Limitations != null)
            {
                foreach (var item in companyGroupView.Limitations)
                {
                    strContent += string.Format("受限航空公司:{0},限制出港城市:{1},未发布政策时,是否只能采购自己的政策:{2},未发布政策时,设置默认返点:{3};", item.Airlines,
                                                item.Departures, item.PurchaseMyPolicyOnlyForNonePolicy, item.DefaultRebateForNonePolicy);
                }
            }
            saveAddLog("公司组", strContent, "公司Id:" + company.ToString() + "公司组Id:" + model.Id.ToString(), operatorAccount);
        }