Exemplo n.º 1
0
        private void InitCommand()
        {
            SalesRebateAmountRangeCreateCommand = new DelegateCommand((obj) =>
            {
                double lastMaxValue = SalesRebateAmountRangeLists.Count == 0 ? 0 : SalesRebateAmountRangeLists.Max(x => x.AmountUpper);
                SalesRebateAmountRangeCreateView view          = new SalesRebateAmountRangeCreateView(lastMaxValue);
                SalesRebateRecentParameterSonModel inputEntity = new SalesRebateRecentParameterSonModel()
                {
                    Guid = Entity.PGuid
                };

                (view.DataContext as SalesRebateAmountRangeCreateViewModel).WithParam(inputEntity, (type, outputEntity) =>
                {
                    view.Close();
                    if (type == 1)
                    {
                        var guid     = _salesRebateAmountRangeService.RecentSonParameterInsert(outputEntity, inputEntity.Guid);
                        Entity.PGuid = guid;
                        SalesRebateAmountRangeLists.Clear();
                        _salesRebateAmountRangeService.GetSalesRebateAmountRangeRecentParameterLists(Entity.PGuid).ForEach(x => SalesRebateAmountRangeLists.Add(x));
                    }
                });
                view.ShowDialog();
            });

            SalesRebateAmountRangeRemoveCommand = new DelegateCommand((obj) =>
            {
                //删除操作不能直接把分段表数据删除,因为计算结果表SJSalesRebate也引用了这个参数表,所以只能先复制一份然后再做增删改
                //var newGuid = _salesRebateAmountRangeService.RecentSonParameterClear();
                Entity.PGuid = Guid.Parse("00000000-0000-0000-0000-000000000000");
                SalesRebateAmountRangeLists.Clear();
            });

            RebatePctTypeSelectionChangedCommand = new DelegateCommand((obj) =>
            {
                if (Entity.RebatePctType == 2)
                {
                    Entity.RebatePctValue = null;
                    SalesRebateAmountRangeLists.Clear();
                    _salesRebateAmountRangeService.GetSalesRebateAmountRangeRecentParameterLists(Entity.PGuid).ForEach(x => SalesRebateAmountRangeLists.Add(x));
                }
                else
                {
                    Entity.AmountRangeCalculateType = -1;
                    Entity.PGuid = Guid.Parse("00000000-0000-0000-0000-000000000000");
                    SalesRebateAmountRangeLists.Clear();
                }
            });
        }
 public Guid RecentSonParameterInsert(SalesRebateRecentParameterSonModel model, Guid mainGuid)
 {
     if (mainGuid == Guid.Parse("00000000-0000-0000-0000-000000000000"))
     {
         string sql = @"declare @Guid1 uniqueidentifier = newid() ; insert into SJSalesRebateRecentParameterSon(AmountUpper,AmountLower,SalesRebatePctValue,Guid)
                     values(@AmountUpper,@AmountLower,@SalesRebatePctValue,@Guid1); select @Guid1 as r ";
         using (var connection = SqlDb.UpdateConnection)
         {
             return(Guid.Parse(Convert.ToString(connection.ExecuteScalar(sql, model))));
         }
     }
     else
     {
         string sql = $"insert into SJSalesRebateRecentParameterSon(AmountUpper,AmountLower,SalesRebatePctValue,Guid) values(@AmountUpper,@AmountLower,@SalesRebatePctValue,'{mainGuid}');";
         using (var connection = SqlDb.UpdateConnection)
         {
             connection.Execute(sql, model);
             return(mainGuid);
         }
     }
 }