Пример #1
0
        void GridMultiSelection(object sender, EventArgs e)
        {
            var billType = DmoTypeIDAttribute.GetID(typeof(ProductInStore_Temp));
            IList <ProductInStore_Temp> selectList = new List <ProductInStore_Temp>();

            _grid.GetFromUI();
            foreach (var row in _grid.GetSelectedItems())
            {
                var detail = new ProductInStore_Temp();
                detail.AccountingUnit_ID   = (long?)row["AccountingUnit_ID"];
                detail.AccountingUnit_Name = (string)row["AccountingUnit_Name"];
                detail.Department_ID       = (long?)row["Department_ID"];
                detail.Department_Name     = (string)row["Department_Name"];
                detail.Employee_ID         = (long?)row["Employee_ID"];
                detail.Employee_Name       = (string)row["Employee_Name"];
                detail.InStoreType_ID      = (long?)row["InStoreType_ID"];
                detail.InStoreType_Name    = (string)row["InStoreType_Name"];
                detail.Store_ID            = (long?)row["Store_ID"];
                detail.Store_Name          = (string)row["Store_Name"];
                detail.CheckEmployee_ID    = (long?)row["CheckEmployee_ID"];
                detail.CheckEmployee_Name  = (string)row["CheckEmployee_Name"];
                detail.CheckDate           = (DateTime?)row["CheckDate"];
                detail.InStoreDate         = (DateTime?)row["InStoreDate"];

                var temp = GetDetails((long)row["ID"]);
                foreach (var de in temp)
                {
                    var tempdetail = new ProductInStore_Temp_Detail();
                    tempdetail.Goods_ID       = de.Goods_ID;
                    tempdetail.Goods_Code     = de.Goods_Code;
                    tempdetail.Goods_Name     = de.Goods_Name;
                    tempdetail.Goods_Spec     = de.Goods_Spec;
                    tempdetail.BrandItem_ID   = de.BrandItem_ID;
                    tempdetail.BrandItem_Name = de.BrandItem_Name;
                    detail.Details.Add(tempdetail);
                }
                //detail.Goods_ID = (long)row["Goods_ID"];
                //detail.Goods_Name = (string)row["Goods_Name"];
                //detail.Goods_Code = (string)row["Goods_Code"];
                //detail.Goods_Spec = (string)row["Goods_Spec"];
                selectList.Add(detail);
            }
            DialogUtil.SetCachedObj(this, selectList);
        }
Пример #2
0
        private List <ProductInStore_Temp_Detail> GetDetails(long id)
        {
            var main   = new JoinAlias(typeof(ProductInStore_Temp));
            var detail = new JoinAlias(typeof(ProductInStore_Temp_Detail));
            var dom    = new DQueryDom(detail);

            dom.From.AddJoin(JoinType.Left, new DQDmoSource(main), DQCondition.EQ(main, "ID", detail, "ProductInStoreTemp_ID"));

            dom.Columns.Add(DQSelectColumn.Field("Goods_ID", detail));
            dom.Columns.Add(DQSelectColumn.Field("Goods_Name", detail));
            dom.Columns.Add(DQSelectColumn.Field("Goods_Code", detail));
            dom.Columns.Add(DQSelectColumn.Field("Goods_Spec", detail));
            dom.Columns.Add(DQSelectColumn.Field("BrandItem_ID", detail));
            dom.Columns.Add(DQSelectColumn.Field("BrandItem_Name", detail));
            dom.Where.Conditions.Add(DQCondition.EQ(detail, "ProductInStoreTemp_ID", id));
            var list = new List <ProductInStore_Temp_Detail>();

            using (var context = new TransactionContext())
            {
                using (var reader = context.Session.ExecuteReader(dom))
                {
                    while (reader.Read())
                    {
                        var tempdetail = new ProductInStore_Temp_Detail();
                        tempdetail.Goods_ID       = (long)reader[0];
                        tempdetail.Goods_Name     = (string)reader[1];
                        tempdetail.Goods_Code     = (string)reader[2];
                        tempdetail.Goods_Spec     = (string)reader[3];
                        tempdetail.BrandItem_ID   = (long?)reader[4];
                        tempdetail.BrandItem_Name = (string)reader[5];
                        list.Add(tempdetail);
                    }
                }
            }
            return(list);
        }
Пример #3
0
        private void CreateDetailPanel(TitlePanel titlePanel)
        {
            var hPanel = titlePanel.EAdd(new HLayoutPanel());

            hPanel.Add(new LiteralControl("<h2>入库清单:</h2>"));
            if (CanSave)
            {
                hPanel.Add(new SimpleLabel("选择存货"));
                var selectGoods = hPanel.Add(new ChoiceBox(B3ButcheryDataSource.存货带编号)
                {
                    Width = Unit.Pixel(130), EnableMultiSelection = true, EnableInputArgument = true, AutoPostBack = true
                });
                selectGoods.SelectedValueChanged += delegate
                {
                    detailGrid.GetFromUI();
                    if (!selectGoods.IsEmpty)
                    {
                        foreach (var item in selectGoods.GetValues())
                        {
                            var d = new ProductInStore_Temp_Detail()
                            {
                                Goods_ID = long.Parse(item)
                            };
                            DmoUtil.RefreshDependency(d, "Goods_ID");
                            Dmo.Details.Add(d);
                        }
                    }
                    selectGoods.Clear();
                    detailGrid.DataBind();
                };

                var addGoodsbt = hPanel.Add(new DialogButton
                {
                    Text = "选择存货",
                });
                addGoodsbt.Url    = "/B3Butchery/Dialogs/SelectGoodsDialog.aspx";
                addGoodsbt.Click += delegate
                {
                    detailGrid.GetFromUI();
                    var details = DialogUtil.GetCachedObj <TemGoodsDetail>(this);
                    foreach (var temGoodsDetail in details)
                    {
                        var detail = new ProductInStore_Temp_Detail();
                        detail.Goods_ID = temGoodsDetail.Goods_ID;
                        DmoUtil.RefreshDependency(detail, "Goods_ID");
                        Dmo.Details.Add(detail);
                    }
                    detailGrid.DataBind();
                };
            }
            var detailGridEditor = new DFCollectionEditor <ProductInStore_Temp_Detail>(() => Dmo.Details);

            detailGridEditor.AllowDeletionFunc = () => CanSave;
            detailGridEditor.CanDeleteFunc     = (detail) => CanSave;
            detailGridEditor.IsEditableFunc    = (field, detail) => CanSave;
            detailGrid = titlePanel.EAdd(new DFEditGrid(detailGridEditor)
            {
                Width = Unit.Percentage(100)
            });
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Name"));
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Code"));
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Spec"));
            new MainToSecondConvertRowManger(detailGrid);
            var section = mPageLayoutManager.AddSection("DetailColumns", "明细列");

            section.ApplyLayout(detailGrid, mPageLayoutManager, DFInfo.Get(typeof(ProductInStore_Temp_Detail)));
            titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name);
            var hPanel2 = new HLayoutPanel()
            {
                Align = HorizontalAlign.Left
            };

            titlePanel.Controls.Add(detailGrid);
        }
Пример #4
0
        private void CreateDetailPanel(TitlePanel titlePanel)
        {
            var hPanel = titlePanel.EAdd(new HLayoutPanel());

            hPanel.Add(new LiteralControl("<h2>入库清单:</h2>"));
            if (CanSave)
            {
                hPanel.Add(new SimpleLabel("选择存货"));
                var selectGoods = hPanel.Add(new ChoiceBox(B3ButcheryDataSource.存货带编号)
                {
                    Width = Unit.Pixel(130), EnableMultiSelection = true, EnableInputArgument = true, AutoPostBack = true
                });
                selectGoods.SelectedValueChanged += delegate
                {
                    detailGrid.GetFromUI();
                    if (!selectGoods.IsEmpty)
                    {
                        foreach (var item in selectGoods.GetValues())
                        {
                            var d = new ProductInStore_Temp_Detail()
                            {
                                Goods_ID = long.Parse(item), ProductionDate = DateTime.Today, Price = 0
                            };
                            DmoUtil.RefreshDependency(d, "Goods_ID");
                            Dmo.Details.Add(d);
                        }
                    }
                    selectGoods.Clear();
                    detailGrid.DataBind();
                };

                var addGoodsbt = hPanel.Add(new DialogButton
                {
                    Text = "选择存货",
                });
                addGoodsbt.Url    = "/B3Butchery/Dialogs/SelectGoodsDialog.aspx";
                addGoodsbt.Click += delegate
                {
                    detailGrid.GetFromUI();
                    var details = DialogUtil.GetCachedObj <TemGoodsDetail>(this);
                    foreach (var temGoodsDetail in details)
                    {
                        var detail = new ProductInStore_Temp_Detail();
                        detail.Goods_ID = temGoodsDetail.Goods_ID;
                        DmoUtil.RefreshDependency(detail, "Goods_ID");
                        detail.TaxRate      = detail.Goods_TaxRate;
                        detail.Number       = temGoodsDetail.Number;
                        detail.SecondNumber = temGoodsDetail.SecondNumber;
                        Dmo.Details.Add(detail);
                    }
                    detailGrid.DataBind();
                };

                var updateButton = hPanel.Add(new TSButton("更新生产计划号", delegate
                {
                    GetFromUI();
                    foreach (var item in Dmo.Details)
                    {
                        item.ProductPlan_ID   = Dmo.ProductPlan_ID;
                        item.ProductPlan_Name = Dmo.ProductPlan_Name;
                    }
                    detailGrid.DataBind();
                }));
            }


            var detailGridEditor = new DFCollectionEditor <ProductInStore_Temp_Detail>(() => Dmo.Details);

            detailGridEditor.AllowDeletionFunc = () => CanSave;
            detailGridEditor.CanDeleteFunc     = (detail) => CanSave;
            detailGridEditor.IsEditableFunc    = (field, detail) => CanSave;
            detailGrid = titlePanel.EAdd(new DFEditGrid(detailGridEditor)
            {
                Width = Unit.Percentage(100)
            });
            detailGrid.Columns.Add(new DFEditGridColumn("ProductionDate"));
            var productPlanCol = new DFEditGridColumn <DFChoiceBox>("ProductPlan_ID");

            productPlanCol.InitEditControl += delegate(object sender, InitEditControlEventArgs <DFChoiceBox> e)
            {
                e.Control.DataKind            = B3ButcheryDataSource.计划号;
                e.Control.DFDisplayField      = "ProductPlan_Name";
                e.Control.EnableInputArgument = true;
                e.Control.EnableTopItem       = true;
                e.Control.Width = Unit.Pixel(120);
            };
            detailGrid.Columns.Add(productPlanCol);
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Name"));
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Code"));
            var script = @"
var id =parseInt(this.front.value);
simpleRestCall('/MainSystem/B3Butchery/Rpcs/GoodsBatchRpc/Get',
[id,['ProductionDate','QualityDays']],
function(result,dfContainer){
  dfContainer.setValue('ProductionDate',getDateTime(result.ProductionDate));
  dfContainer.setValue('QualityDays',result.QualityDays );
},{context:this.dfContainer});";

            detailGrid.Columns.EAdd(new DFEditGridColumn <DFChoiceBox>("GoodsBatch_ID")).InitEditControl += (sender, e) =>
            {
                e.Control.EnableTopItem    = true;
                e.Control.OnBeforeDrop     = "this.codeArgument = dfContainer.getValue('Goods_ID');this.dialogArguments='Goods_ID=' + this.codeArgument+'&TaxRate='+dfContainer.getValue('TaxRate')+'&TmpTaxRate='+dfContainer.getValue('TmpTaxRate')";
                e.Control.DataKind         = B3UnitedInfosConsts.DataSources.存货批次;
                e.Control.DFDisplayField   = "GoodsBatch_Name";
                e.Control.DialogUrl        = WpfPageUrl.ToGlobal("~/B3Butchery/Dialogs/GoodsBatchEdit.aspx?IsNewDialog=1");
                e.Control.OnClientSelected = script;
                e.Control.Width            = Unit.Pixel(160);
            };
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Spec"));
            detailGrid.Columns.EAdd(new DFEditGridColumn <DFTextBox>("Number")).SumMode = SumMode.Sum;;
            detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_MainUnit"));
            detailGrid.Columns.EAdd(new DFEditGridColumn <DFTextBox>("SecondNumber")).SumMode = SumMode.Sum;;
            detailGrid.Columns.Add(new DFEditGridColumn <DFTextBox>("Price"));
            detailGrid.Columns.EAdd(new DFEditGridColumn <DFTextBox>("Money")).SumMode = SumMode.Sum;;
            detailGrid.Columns.Add(new DFEditGridColumn <DFTextBox>("Remark"));
            detailGrid.ValueColumns.Add("Goods_ID");
            detailGrid.ValueColumns.Add("Goods_UnitConvertDirection");
            detailGrid.ValueColumns.Add("Goods_MainUnitRatio");
            detailGrid.ValueColumns.Add("Goods_SecondUnitRatio");
            new MainToSecondConvertRowManger(detailGrid);
            var section = mPageLayoutManager.AddSection("DetailColumns", "明细列");

            section.ApplyLayout(detailGrid, mPageLayoutManager, DFInfo.Get(typeof(ProductInStore_Temp_Detail)));
            titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name);
            var hPanel2 = new HLayoutPanel()
            {
                Align = HorizontalAlign.Left
            };

            titlePanel.Controls.Add(detailGrid);
        }