diff --git a/BWP.B3_YunKen.Web/Pages/B3YunKen/Bill/GoodsPackageSet.cs b/BWP.B3_YunKen.Web/Pages/B3YunKen/Bill/GoodsPackageSet.cs index 2a3615a..bb20b7b 100644 --- a/BWP.B3_YunKen.Web/Pages/B3YunKen/Bill/GoodsPackageSet.cs +++ b/BWP.B3_YunKen.Web/Pages/B3YunKen/Bill/GoodsPackageSet.cs @@ -23,6 +23,7 @@ using Forks.Utils.Collections; using BWP.B3Sale.Utils; using BWP.B3Frameworks; using BWP.B3UnitedInfos; +using BWP.B3Frameworks.BO.NamedValueTemplate; namespace BWP.Web.Pages.B3YunKen.Bill @@ -33,6 +34,7 @@ namespace BWP.Web.Pages.B3YunKen.Bill private DFChoiceBox _accountingUnitDfc; private DFChoiceBox _goodsDfc; private DFBrowseGrid _grid; + private DFBrowseGrid _gridNew; protected override void InitForm(HtmlForm form) { @@ -95,6 +97,52 @@ namespace BWP.Web.Pages.B3YunKen.Bill row.Cells[0].InnerHtml = "" + row.Cells[0].InnerHtml + ""; }; + _gridNew = vPanel.Add(new DFBrowseGrid(new DFDataTableEditor()), new VLayoutOption(HorizontalAlign.Center)); + _gridNew.Width = Unit.Percentage(50); + _gridNew.Add(new DFBrowseGridAutoColumn("Goods_ID")); + _gridNew.DFGridSetEnabled = false; + _gridNew.OnDetailDataBound = (row, obj, index) => + { + var dataRow = obj as DFDataRow; + if (dataRow == null) + { + return; + } + var goodsID = dataRow["Goods_ID"]; + var url = AspUtil.UpdateUrlParam("GoodsPackageDetailSet.aspx", "goodsID", goodsID.ToString()); + if (!string.IsNullOrEmpty(_accountingUnitDfc.Value)) + { + url = AspUtil.UpdateUrlParam(url, "accID", _accountingUnitDfc.Value); + } + row.Cells[0].InnerHtml = "" + row.Cells[0].InnerHtml + ""; + }; + + _gridNew.Columns.EAdd(new DFGridCustomExtColumn(delegate(object obj, HtmlTableCell cell, int rowIndex) + { + DFDataRow dr = obj as DFDataRow; + if (dr != null) + { + + string accName = (string)dr["会计单位"] ?? ""; + var smallPackNum = int.Parse((dr["内包装物数量"] == null ? "0" : dr["内包装物数量"].ToString())); + string name1 = (string)dr["封口"] ?? ""; + string name2 = (string)dr["外包装"] ?? ""; + string name3 = (string)dr["箱子"] ?? ""; + string name4 = (string)dr["内包装"] ?? ""; + + var price1 = GetWrappageUnitPrice(accName, name1) ?? 0; + var price2 = GetWrappageUnitPrice(accName, name2) ?? 0; + var price3 = GetWrappageUnitPrice(accName, name3) ?? 0; + var price4 = GetWrappageUnitPrice(accName, name4) ?? 0; + var price = price1 + price2 + price3 + price4 * smallPackNum; + + var lb = new Label(); + lb.Text = price.ToString(); + cell.Controls.Add(lb); + } + })).HeaderText = "价格"; + + } @@ -129,16 +177,31 @@ namespace BWP.Web.Pages.B3YunKen.Bill } } + private void GridDataBind(bool configured = false) { - _grid.Query = GetDQueryDom(configured); - _grid.CurrentPageIndex = 0; - _grid.DataBind(); + if (configured) + { + _gridNew.Query = GetDQueryDom(configured); + _gridNew.CurrentPageIndex = 0; + _gridNew.DataBind(); + _gridNew.Visible = true; + _grid.Visible = false; + } + else + { + _grid.Query = GetDQueryDom(configured); + _grid.CurrentPageIndex = 0; + _grid.DataBind(); + _gridNew.Visible = false; + _grid.Visible = true; + } } public void DoGridDataBind() { _grid.DataBind(); + _gridNew.DataBind(); } private DQueryDom GetDQueryDom(bool configured = false) @@ -275,5 +338,25 @@ namespace BWP.Web.Pages.B3YunKen.Bill } + + //根据会计单位和包装物名称 得到 包装物单价 + private decimal? GetWrappageUnitPrice(string accName, string wrappageName) + { + JoinAlias main = new JoinAlias(typeof(WrappageUnitPrice)); + JoinAlias detail = new JoinAlias(typeof(WrappageUnitPrice_Detail)); + DQueryDom dom = new DQueryDom(main); + dom.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(main, "ID", detail, "WrappageUnitPrice_ID")); + //dom.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.Field(detail, "OldPrice")), "OldPrice")); + dom.Columns.Add(DQSelectColumn.Field("OldPrice", detail)); + + dom.Where.Conditions.Add(DQCondition.EQ(main, "BillState", 单据状态.已审核)); + dom.Where.Conditions.Add(DQCondition.EQ(main, "AccountingUnit_Name", accName)); + dom.Where.Conditions.Add(DQCondition.EQ(detail, "Wrappage_Name", wrappageName)); + var price = (decimal?)dom.EExecuteScalar(); + + return price; + } + + } }