private void CreateFrozenOutStore(WorkShopPackBill dmo) { var bl = BIFactory.Create <IFrozenOutStoreBL>(Session); var bo = new FrozenOutStore(); bl.InitNewDmo(bo); bo.AccountingUnit_ID = dmo.AccountingUnit_ID; bo.Department_ID = dmo.Department_ID; bo.WorkBill_ID = dmo.ID; bo.Date = dmo.Date; var group = dmo.Details.GroupBy(x => new { x.PlanNumber_ID, x.Goods_ID }); foreach (var one in group) { var de = new FrozenOutStore_Detail(); de.Goods2_ID = one.Key.Goods_ID; de.Goods_ID = GetBanChengPinByGoodsID(one.Key.Goods_ID) ?? 0; DmoUtil.RefreshDependency(de, "Goods_ID", "Goods2_ID"); de.PlanNumber_ID = one.Key.PlanNumber_ID; de.Number = one.Sum(x => (x.Number ?? 0).Value); if (de.Goods_SecondUnitII_MainUnitRatio != null && de.Goods_SecondUnitII_MainUnitRatio != 0) { de.SecondNumber2 = de.Number / de.Goods_SecondUnitII_MainUnitRatio * de.Goods_SecondUnitII_SecondUnitRatio; } if (de.Goods_MainUnitRatio != null && de.Goods_MainUnitRatio != 0) { de.SecondNumber = de.Number / de.Goods_MainUnitRatio * de.Goods_SecondUnitRatio; } bo.Details.Add(de); } bl.Insert(bo); }
private void AddDetails(TitlePanel titlePanel) { var vPanel = titlePanel.EAdd(new VLayoutPanel()); if (CanSave) { var hPanel = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left)); 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 FrozenOutStore_Detail { Goods_ID = long.Parse(item) }; var goods = WebBLUtil.GetSingleDmo <Goods>("ID", long.Parse(item)); d.Goods_MainUnit = goods.MainUnit; d.Goods_Name = goods.Name; d.Goods_Code = goods.Code; d.Goods_UnitConvertDirection = goods.UnitConvertDirection; 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 FrozenOutStore_Detail { Goods_ID = temGoodsDetail.Goods_ID }; //DmoUtil.RefreshDependency(detail, "Goods_ID"); var goods = WebBLUtil.GetSingleDmo <Goods>("ID", temGoodsDetail.Goods_ID); detail.Goods_MainUnit = goods.MainUnit; detail.Goods_Name = goods.Name; detail.Goods_Code = goods.Code; detail.Goods_UnitConvertDirection = goods.UnitConvertDirection; Dmo.Details.Add(detail); } _detailGrid.DataBind(); }; } var editor = new DFCollectionEditor <FrozenOutStore_Detail>(() => Dmo.Details) { AllowDeletionFunc = () => CanSave, CanDeleteFunc = detail => true, IsEditableFunc = (field, detail) => CanSave }; _detailGrid = new DFEditGrid(editor) { DFGridSetEnabled = false, Width = Unit.Percentage(100) }; 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.EAdd(new DFEditGridColumn <DFValueLabel>("Goods_Name")).HeaderText = "半成品名称"; _detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_Code")); _detailGrid.Columns.EAdd(new DFEditGridColumn <DFValueLabel>("Goods2_Name")).HeaderText = "成品名称"; _detailGrid.Columns.Add(new DFEditGridColumn <DFTextBox>("Number")); _detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_MainUnit")); _detailGrid.Columns.EAdd(new DFEditGridColumn <DFTextBox>("SecondNumber")); _detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_SecondUnit")); _detailGrid.Columns.EAdd(new DFEditGridColumn <DFTextBox>("SecondNumber2")); _detailGrid.Columns.Add(new DFEditGridColumn <DFValueLabel>("Goods_SecondUnit2")); _detailGrid.Columns.Add(new DFEditGridColumn <DFTextBox>("Remark")); new Main_Second2_ConvertRatioRowManager(_detailGrid, "Number", "SecondNumber2"); mDFContainer.AddNonDFControl(_detailGrid, "$DetailGrid"); var section = mPageLayoutManager.AddSection("DetaiColumns", "明细列"); titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name); section.ApplyLayout(_detailGrid, mPageLayoutManager, DFInfo.Get(typeof(FrozenOutStore_Detail))); vPanel.Add(_detailGrid); }