|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Web.UI;
|
|
|
using System.Web.UI.HtmlControls;
|
|
|
using System.Web.UI.WebControls;
|
|
|
using BWP.B3Frameworks;
|
|
|
using BWP.B3Frameworks.BO;
|
|
|
using BWP.B3Frameworks.BO.NamedValueTemplate;
|
|
|
using BWP.B3Frameworks.Utils;
|
|
|
using BWP.B3Sale.BL;
|
|
|
using BWP.B3Sale.BO;
|
|
|
using BWP.B3Sale.Utils;
|
|
|
using BWP.Web.Layout;
|
|
|
using BWP.Web.Utils;
|
|
|
using BWP.Web.WebControls;
|
|
|
using Forks.EnterpriseServices;
|
|
|
using Forks.EnterpriseServices.BusinessInterfaces;
|
|
|
using Forks.EnterpriseServices.DataForm;
|
|
|
using Forks.EnterpriseServices.DomainObjects2;
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery;
|
|
|
using Forks.EnterpriseServices.SqlDoms;
|
|
|
using Forks.Utils;
|
|
|
using Forks.Utils.Collections;
|
|
|
using TSingSoft.WebControls2;
|
|
|
using TSingSoft.WebPluginFramework;
|
|
|
using TSingSoft.WebPluginFramework.Controls;
|
|
|
using TSingSoft.WebPluginFramework.Security;
|
|
|
|
|
|
namespace BWP.Web.Pages.B3YunKen {
|
|
|
|
|
|
class B3YunKenSaleOutStoreToCustomerAccept : AppBasePage {
|
|
|
|
|
|
QueryContainer _queryContainer;
|
|
|
readonly DFInfo _dFInfo = DFInfo.Get(typeof(SaleOutStore));
|
|
|
DFBrowseGrid _grid;
|
|
|
private DFCheckBox _hideFinishedBill;
|
|
|
private DFEditGrid _detailGrid;
|
|
|
|
|
|
private int ActiveTabIndex {
|
|
|
get {
|
|
|
if (string.IsNullOrEmpty(Request.QueryString["index"]))
|
|
|
return 0;
|
|
|
return int.Parse(Request.QueryString["index"]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
SaleOutStore Dmo {
|
|
|
get { return (SaleOutStore)ViewState["Dmo"]; }
|
|
|
set { ViewState["Dmo"] = value; }
|
|
|
}
|
|
|
|
|
|
protected override void FrameworkInitialize() {
|
|
|
if (!BLContext.User.IsInRole("B3Sale.客户验收.新建"))
|
|
|
throw new AppSecurityException("你没有权限访问此页面");
|
|
|
base.FrameworkInitialize();
|
|
|
}
|
|
|
|
|
|
protected override void InitForm(HtmlForm form) {
|
|
|
var type = GetType();
|
|
|
_queryContainer = QueryContainer.FromResource(type.FullName + ".xml", type.Assembly);
|
|
|
form.EAdd(new PageTitle("销售出库转验收单"));
|
|
|
_moneyLabel = new Label();
|
|
|
var vPanel = new VLayoutPanel();
|
|
|
_pageView = new ClientPageView {
|
|
|
TabPosition = TabPosition.Top,
|
|
|
};
|
|
|
vPanel.Add(_pageView);
|
|
|
_pageView.Tabs.Add(CreateSaleOutStoreTab());
|
|
|
_pageView.Tabs.Add(CreateCustomerAcceptTab());
|
|
|
|
|
|
form.Controls.Add(vPanel);
|
|
|
|
|
|
}
|
|
|
|
|
|
private Control CreateSaleOutStoreTab() {
|
|
|
var result = new ClientTab("销售出库列表");
|
|
|
CreateQueryPanel(result);
|
|
|
CreateSaleOutStoreList(result.EAdd(new TitlePanel("销售出库列表")));
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private Control CreateCustomerAcceptTab() {
|
|
|
var result = new ClientTab("转验收信息");
|
|
|
|
|
|
CustomerAcceptInfo(result);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private DFChoiceBox _cusInput;
|
|
|
private ClientPageView _pageView;
|
|
|
private readonly DFContainer<SaleOutStore> _dFContainer = new DFContainer<SaleOutStore>();
|
|
|
|
|
|
|
|
|
private Label _moneyLabel;
|
|
|
private void CustomerAcceptInfo(ClientTab clinetTab) {
|
|
|
var titlePanel1 = new TitlePanel("基础信息");
|
|
|
var titlePanel2 = new TitlePanel("验收明细");
|
|
|
clinetTab.Controls.Add(titlePanel1);
|
|
|
clinetTab.Controls.Add(titlePanel2);
|
|
|
var vPanel = new VLayoutPanel();
|
|
|
titlePanel1.EAdd(vPanel);
|
|
|
var layoutManager = new LayoutManager("main", _dFInfo, _dFContainer);
|
|
|
var config = new AutoLayoutConfig { Cols = 6 };
|
|
|
config.Add("Code");
|
|
|
config.Add("Customer_ID");
|
|
|
config.Add("AccountCustomer_Name");
|
|
|
config.Add("CustomerDealer_Name");
|
|
|
config.Add("Department_ID");
|
|
|
config.Add("OrderDate");
|
|
|
config.Add("AccountingUnit_ID");
|
|
|
config.Add("Employee_ID");
|
|
|
config.Add("LoadTime");
|
|
|
config.Add("Store_ID");
|
|
|
//config.Add("TotalTurnAccepMoney");
|
|
|
config.Add("Remark");
|
|
|
layoutManager.Config = config;
|
|
|
_dFContainer.Readonly = true;
|
|
|
var section = mPageLayoutManager.AddSection("CustomerAccept", "基本信息");
|
|
|
section.ApplyLayout(layoutManager, config, mPageLayoutManager, _dFInfo);
|
|
|
titlePanel1.SetPageLayoutSetting(mPageLayoutManager, section.Name);
|
|
|
|
|
|
|
|
|
vPanel.Add(layoutManager.CreateLayout());
|
|
|
|
|
|
_moneyLabel.ID = "moneyLabel";
|
|
|
_moneyLabel.Font.Size = 12;
|
|
|
_moneyLabel.Font.Bold = true;
|
|
|
|
|
|
|
|
|
|
|
|
var buildButton = new TSButton();
|
|
|
buildButton.Text = "创建客户验收单";
|
|
|
|
|
|
var hPanel = vPanel.Add(new HLayoutPanel());
|
|
|
|
|
|
hPanel.Add(buildButton);
|
|
|
|
|
|
hPanel.Add(new SimpleLabel("验收日期"));
|
|
|
var dateInput = hPanel.Add(new DFDateInput());
|
|
|
dateInput.Value = BLContext.Today;
|
|
|
|
|
|
hPanel.Add(new SimpleLabel("客户"));
|
|
|
|
|
|
_cusInput = hPanel.Add(new DFChoiceBox());
|
|
|
_cusInput.EnableInputArgument = true;
|
|
|
_cusInput.DataKind = B3SaleDataSources.经销商所属客户;
|
|
|
_cusInput.EnableTopItem = true;
|
|
|
_cusInput.Width = 150;
|
|
|
hPanel.Add(_moneyLabel);
|
|
|
|
|
|
buildButton.Click += delegate {
|
|
|
var selectedItems = _detailGrid.GetSelectedItems();
|
|
|
if (selectedItems.Count <= 0)
|
|
|
throw new ApplicationException("没有选择验收明细");
|
|
|
_detailGrid.GetFromUI();
|
|
|
Dmo.Customer_ID = long.Parse(_cusInput.Value);
|
|
|
var customer = SaleUtil.GetDmoByID<Customer>(Dmo.Customer_ID.Value, "AccountCustomer_ID", "AccountCustomer_Name");
|
|
|
Dmo.AccountCustomer_ID = customer.AccountCustomer_ID;
|
|
|
Dmo.AccountCustomer_Name = customer.AccountCustomer_Name;
|
|
|
|
|
|
var details = new List<SaleOutStore_Detail>();
|
|
|
foreach (SaleOutStore_Detail detail in _detailGrid.GetSelectedItems()) {
|
|
|
if (detail.AcceptUnitNum > detail.UnitNum)
|
|
|
throw new ApplicationException("【"+detail.Goods_Name+"】转验收报价数量不能大于报价数量");
|
|
|
detail.UnitNum = detail.AcceptUnitNum;
|
|
|
detail.SecondNumber = detail.AcceptSecondNumber;
|
|
|
details.Add(detail);
|
|
|
}
|
|
|
|
|
|
BIFactory.Create<ISaleOutStoreBL>().CreateCustomerAccept(Dmo,details,false);
|
|
|
AspUtil.Alert(this, BIFactory.GetLastMessage());
|
|
|
InitDmo();
|
|
|
_pageView.ActiveTabIndex = 0;
|
|
|
};
|
|
|
var vPanel2 = new VLayoutPanel();
|
|
|
titlePanel2.EAdd(vPanel2);
|
|
|
var detailEditor = new DFCollectionEditor<SaleOutStore_Detail>(() => Dmo.Details);
|
|
|
detailEditor.IsEditableFunc = (field, detail) => true;
|
|
|
detailEditor.CanSelectFunc = (detail) => true;
|
|
|
_detailGrid = vPanel2.Add(new DFEditGrid(detailEditor) { Width = Unit.Percentage(100) });
|
|
|
_detailGrid.ShowLineNo = true;
|
|
|
_detailGrid.MultiSelectionEnabled = true;
|
|
|
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("BrandItem_Name"));
|
|
|
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Name"));
|
|
|
|
|
|
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_Spec"));
|
|
|
|
|
|
_detailGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("SecondNumber")).SumMode = SumMode.Sum;
|
|
|
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Goods_SecondUnit"));
|
|
|
_detailGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("UnitNum")).SumMode = SumMode.Sum;
|
|
|
var unitColumn = new DFEditGridColumn<DFValueLabel>("Unit");
|
|
|
_detailGrid.Columns.Add(unitColumn);
|
|
|
_detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Price"));
|
|
|
_detailGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("Money")).SumMode = SumMode.Sum;
|
|
|
|
|
|
_detailGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("AlreadyAcceptSecondNumber")).SumMode = SumMode.Sum;
|
|
|
_detailGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("AlreadyAcceptUnitNum")).SumMode = SumMode.Sum;
|
|
|
|
|
|
//_detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("AcceptSecondNumber")).SumMode = SumMode.Sum;
|
|
|
var accSecond = new DFEditGridColumn<DFTextBox>("AcceptSecondNumber");
|
|
|
accSecond.SumMode = SumMode.Sum;
|
|
|
_detailGrid.Columns.Add(accSecond);
|
|
|
|
|
|
//_detailGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("AcceptUnitNum")).SumMode = SumMode.Sum;
|
|
|
var accMain = new DFEditGridColumn<DFTextBox>("AcceptUnitNum");
|
|
|
accMain.SumMode = SumMode.Sum;
|
|
|
_detailGrid.Columns.Add(accMain);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_detailGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("AcceptMoney")).SumMode = SumMode.Sum;
|
|
|
|
|
|
_detailGrid.ValueColumns.Add("SaleGoods_ID");
|
|
|
_detailGrid.ValueColumns.Add("Goods_UnitConvertDirection");
|
|
|
_detailGrid.ValueColumns.Add("Goods_MainUnitRatio");
|
|
|
_detailGrid.ValueColumns.Add("Goods_SecondUnitRatio");
|
|
|
_detailGrid.ValueColumns.Add("LeftRatio");
|
|
|
_detailGrid.ValueColumns.Add("RightRatio");
|
|
|
var section2 = mPageLayoutManager.AddSection("DetailColumns_DetailGrid", "客户验收明细列");
|
|
|
section2.ApplyLayout(_grid, mPageLayoutManager, DFInfo.Get(typeof(SaleOutStore)));
|
|
|
titlePanel2.SetPageLayoutSetting(mPageLayoutManager, section2.Name);
|
|
|
new MainToSecondConvertRowMangerWithMoneyChange(_detailGrid, "AcceptUnitNum", "AcceptSecondNumber", "AcceptMoney");
|
|
|
accSecond.InitEditControl += (sender, e) => {
|
|
|
var str = e.Control.Attributes["onchange"] ?? string.Empty;
|
|
|
e.Control.Attributes["onchange"] = str + "_SumMoney();";
|
|
|
};
|
|
|
accMain.InitEditControl += (sender, e) => {
|
|
|
var str = e.Control.Attributes["onchange"] ?? string.Empty;
|
|
|
e.Control.Attributes["onchange"] = str + "_SumMoney();";
|
|
|
};
|
|
|
}
|
|
|
|
|
|
private void InitDmo() {
|
|
|
Dmo = new SaleOutStore();
|
|
|
_dFContainer.DFObject = Dmo;
|
|
|
_dFContainer.ApplyToUI();
|
|
|
_detailGrid.DataBind();
|
|
|
_grid.DataBind();
|
|
|
}
|
|
|
|
|
|
private void CreateSaleOutStoreList(TitlePanel titlePanel) {
|
|
|
var vPanel = new VLayoutPanel();
|
|
|
titlePanel.Controls.Add(vPanel);
|
|
|
var buildButton = new TSButton();
|
|
|
buildButton.Text = "将选中单据创建客户验收单";
|
|
|
|
|
|
var hPanel = vPanel.Add(new HLayoutPanel());
|
|
|
hPanel.Add(new SimpleLabel("验收日期"));
|
|
|
var dateInput = hPanel.Add(new DFDateInput());
|
|
|
dateInput.Value = BLContext.Today;
|
|
|
hPanel.Add(new SimpleLabel("发货时间"));
|
|
|
var loadTimeInput = hPanel.Add(new DFDateTimeInput());
|
|
|
loadTimeInput.Value = BLContext.Now;
|
|
|
hPanel.Add(new SimpleLabel("订货时间"));
|
|
|
var orderTimeInput = hPanel.Add(new DFDateTimeInput());
|
|
|
orderTimeInput.Value = BLContext.Now;
|
|
|
var hPanel2 = vPanel.Add(new HLayoutPanel());
|
|
|
hPanel2.Add(new SimpleLabel("送货地址"));
|
|
|
var deliverAddressInput = hPanel2.Add(new DFTextBox() { Width=300});
|
|
|
hPanel2.Add(buildButton);
|
|
|
buildButton.Click += delegate {
|
|
|
var items = _grid.GetSelectedItems().Select(row => new Tuple<long, string, bool>((long)row["ID"], (string)row["Code"], (bool)row["IsSplitCreatedCustomerAccept"]));
|
|
|
if (!items.Any())
|
|
|
throw new ApplicationException("请选择单据!");
|
|
|
var resultList = items.Where(x => x.Item3);
|
|
|
if (resultList.Count() > 0)
|
|
|
throw new ApplicationException("出库单"+string.Join("、",resultList.Select(x=>x.Item2))+"已经拆分过,不得勾选");
|
|
|
BIFactory.Create<ISaleOutStoreBL>().CreateCustomerAccept(items.Select(x=>x.Item1), dateInput.Value, loadTimeInput.Value, orderTimeInput.Value, deliverAddressInput.Text);
|
|
|
AspUtil.Alert(this, BIFactory.GetLastMessage());
|
|
|
_grid.DataBind();
|
|
|
};
|
|
|
_grid = titlePanel.EAdd(new DFBrowseGrid(new DFDataTableEditor()) {
|
|
|
Width = Unit.Percentage(100),
|
|
|
MultiSelectionEnabled = true
|
|
|
});
|
|
|
//_grid.Columns.Add(new DFBrowseGridColumn("ID"));
|
|
|
_grid.Columns.Add(new DFBrowseGridColumn("Code"));
|
|
|
//_grid.Columns.EAdd(new DFBrowseGridColumn("Order_ID"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("OrderDate"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("LoadTime"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("AccountingUnit_Name"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("Customer_Name"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("Department_Name"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("Employee_Name"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("SaleKind_Name"));
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("Store_Name"));
|
|
|
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("AllUnitNum")).SumMode = SumMode.Sum;
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("Money")).SumMode = SumMode.Sum;
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("已验收数量")).SumMode = SumMode.Sum;
|
|
|
_grid.Columns.EAdd(new DFBrowseGridColumn("Remark"));
|
|
|
_grid.ValueColumns.Add("ID");
|
|
|
_grid.ValueColumns.Add("IsSplitCreatedCustomerAccept");
|
|
|
_grid.ValueColumns.Add("Order_ID");
|
|
|
|
|
|
_grid.SingleSelection += GridSingleSelection;
|
|
|
|
|
|
var section = mPageLayoutManager.AddSection("DetailColumns_Grid", "销售出库明细列");
|
|
|
section.ApplyLayout(_grid, mPageLayoutManager, DFInfo.Get(typeof(SaleOutStore)));
|
|
|
titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name);
|
|
|
}
|
|
|
|
|
|
private void GridSingleSelection(object sender, DFBrowseGridItemEventArgs e) {
|
|
|
var bl = BIFactory.Create<ISaleOutStoreBL>();
|
|
|
var id = (long)e.Row["ID"];
|
|
|
Dmo = bl.Load(id);
|
|
|
var dom = new DmoQuery(typeof(SaleOutStore_DetailToCustomerAcceptNumber));
|
|
|
dom.Where.Conditions.Add(DQCondition.EQ("SaleOutStore_ID", id));
|
|
|
var list = dom.EExecuteList();
|
|
|
foreach (SaleOutStore_DetailToCustomerAcceptNumber d in list) {
|
|
|
var detail = Dmo.Details.FirstOrDefault(x => x.ID == d.SaleOutStore_Detail_ID);
|
|
|
if (detail != null) {
|
|
|
detail.AlreadyAcceptUnitNum = d.AlreadyAcceptUnitNum;
|
|
|
detail.AlreadyAcceptNumber = d.AlreadyAcceptNumber;
|
|
|
detail.AlreadyAcceptSecondNumber = d.AlreadyAcceptSecondNumber;
|
|
|
}
|
|
|
}
|
|
|
foreach (var detail in Dmo.Details) {
|
|
|
detail.AcceptNumber = detail.Number - (detail.AlreadyAcceptNumber ?? 0);
|
|
|
detail.AcceptUnitNum = detail.UnitNum - (detail.AlreadyAcceptUnitNum ?? 0);
|
|
|
detail.AcceptSecondNumber = detail.SecondNumber - (detail.AlreadyAcceptSecondNumber ?? 0);
|
|
|
detail.AcceptMoney = detail.UnitNum * detail.Price;
|
|
|
}
|
|
|
_cusInput.Value = Dmo.Customer_ID.ToString();
|
|
|
_cusInput.DisplayValue = Dmo.Customer_Name;
|
|
|
_cusInput.CodeArgument = Dmo.Customer_ID.ToString();
|
|
|
_dFContainer.DFObject = Dmo;
|
|
|
_dFContainer.ApplyToUI();
|
|
|
_pageView.ActiveTabIndex = 1;
|
|
|
_detailGrid.DataBind();
|
|
|
}
|
|
|
|
|
|
private void CreateQueryPanel(ClientTab clinetTab) {
|
|
|
var titlePanel1 = new TitlePanel("查询条件");
|
|
|
|
|
|
clinetTab.Controls.Add(titlePanel1);
|
|
|
var vPanel = new VLayoutPanel();
|
|
|
titlePanel1.EAdd(vPanel);
|
|
|
var layer = new LayoutManager("", _dFInfo, _queryContainer);
|
|
|
//layer.Add("ID", QueryCreator.DFTextBox(_dFInfo.Fields["ID"]));
|
|
|
layer.Add("Code", QueryCreator.DFTextBox(_dFInfo.Fields["Code"]));
|
|
|
layer.Add("OrderDate", QueryCreator.TimeRange(_dFInfo.Fields["OrderDate"], _queryContainer, "MinOrderDate", "MaxOrderDate"));
|
|
|
layer.Add("LoadTime", QueryCreator.TimeRange(_dFInfo.Fields["LoadTime"], _queryContainer, "MinLoadTime", "MaxLoadTime"));
|
|
|
DFChoiceBox accInput;
|
|
|
layer.Add("AccountingUnit_ID", accInput = QueryCreator.DFChoiceBox(_dFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.授权会计单位全部));
|
|
|
layer.Add("Department_ID", QueryCreator.DFChoiceBox(_dFInfo.Fields["Department_ID"], B3FrameworksConsts.DataSources.授权部门全部));
|
|
|
layer.Add("Employee_ID", QueryCreator.DFChoiceBox(_dFInfo.Fields["Employee_ID"], B3FrameworksConsts.DataSources.授权员工全部));
|
|
|
layer.Add("Customer_ID", QueryCreator.DFChoiceBox(_dFInfo.Fields["Customer_ID"], B3SaleDataSources.客户全部));
|
|
|
DFChoiceBox storeInput;
|
|
|
layer.Add("Store_ID", storeInput = QueryCreator.DFChoiceBox(_dFInfo.Fields["Store_ID"], B3FrameworksConsts.DataSources.授权仓库全部));
|
|
|
storeInput.CodeArgumentReferenceTo = accInput;
|
|
|
layer.Add("Car", QueryCreator.DFTextBox(_dFInfo.Fields["Car"]));
|
|
|
|
|
|
var config = layer.CreateDefaultConfig(8);
|
|
|
vPanel.Add(layer.CreateLayout());
|
|
|
|
|
|
|
|
|
|
|
|
var section = mPageLayoutManager.AddSection("SaleOutStoreQuery", "查询条件");
|
|
|
section.ApplyLayout(layer, config, mPageLayoutManager, _dFInfo);
|
|
|
titlePanel1.SetPageLayoutSetting(mPageLayoutManager, section.Name);
|
|
|
|
|
|
var hPanel = vPanel.Add(new HLayoutPanel());
|
|
|
_hideFinishedBill = new DFCheckBox {
|
|
|
Text = "隐藏已转单据",
|
|
|
Checked = true
|
|
|
};
|
|
|
|
|
|
hPanel.Add(new TSButton("开始查询", delegate { StartQuery(); }));
|
|
|
hPanel.Add(new RedirectTSButton("清除条件"));
|
|
|
hPanel.Add(_hideFinishedBill);
|
|
|
}
|
|
|
|
|
|
private void StartQuery() {
|
|
|
_grid.Reset();
|
|
|
_grid.Query = GetQueryDom();
|
|
|
_grid.DataBind();
|
|
|
}
|
|
|
|
|
|
private DQueryDom GetQueryDom() {
|
|
|
var query = _queryContainer.Build();
|
|
|
var aready = new JoinAlias(typeof(AreadyTo));
|
|
|
var bill = query.From.RootSource.Alias;
|
|
|
var acc = new JoinAlias(typeof(AccountingUnit));
|
|
|
query.RegisterQueryTable(typeof(AreadyTo), new string[] { "ID", "AlreadyAcceptUnitNum" }, AreadyTo.Get());
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(aready), DQCondition.EQ(bill, "ID", aready, "ID"));
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(acc), DQCondition.EQ(bill, "AccountingUnit_ID", acc, "ID"));
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(aready, "AlreadyAcceptUnitNum"), "已验收数量"));
|
|
|
|
|
|
if (_hideFinishedBill.Checked) {
|
|
|
query.Where.Conditions.Add(
|
|
|
DQCondition.LessThan(
|
|
|
DQExpression.IfNull(DQExpression.Field(aready, "AlreadyAcceptUnitNum"), DQExpression.ConstValue(0)),
|
|
|
DQExpression.Field(bill, "AllUnitNum")));
|
|
|
} else {
|
|
|
query.Columns.Add(DQSelectColumn.Field("CustomerAcceptID"));
|
|
|
}
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID",bill));
|
|
|
query.Columns.Add(DQSelectColumn.Field("Order_ID", bill));
|
|
|
query.Columns.Add(DQSelectColumn.Field("IsSplitCreatedCustomerAccept", bill));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID));
|
|
|
OrganizationUtil.AddOrganizationLimit(query, typeof(AccountingUnit), acc);
|
|
|
return query;
|
|
|
}
|
|
|
protected override void OnPreRender(EventArgs e)
|
|
|
{
|
|
|
base.OnPreRender(e);
|
|
|
if (true)
|
|
|
{
|
|
|
string script = @"var defaultGrid=document.all." + _detailGrid.ClientID + @";
|
|
|
$(function(){
|
|
|
var grid = defaultGrid.behind;
|
|
|
var itemEndIndex = grid.mItemEndIndex - 1;
|
|
|
for (i = 0; i <= itemEndIndex; i++) {
|
|
|
var row = grid.front.rows[i];
|
|
|
var chkbox = row.cells[0].getElementsByTagName(""INPUT"")[0];
|
|
|
if (chkbox) {
|
|
|
if(i==0)
|
|
|
$(chkbox).change(function() {
|
|
|
_SumMoney(this.checked?'1':'0');
|
|
|
});
|
|
|
else
|
|
|
$(chkbox).change(function() {
|
|
|
_SumMoney();
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
function _SumMoney(allCheck)
|
|
|
{
|
|
|
var grid = defaultGrid.behind;
|
|
|
var itemEndIndex = grid.mItemEndIndex - 1;
|
|
|
var sumM = 0.0;
|
|
|
for (i = 1; i <= itemEndIndex; i++) {
|
|
|
var row = grid.front.rows[i];
|
|
|
var chkbox = row.cells[0].getElementsByTagName(""INPUT"")[0];
|
|
|
if (!chkbox)
|
|
|
continue;
|
|
|
|
|
|
if (allCheck){
|
|
|
if(allCheck == '0')
|
|
|
continue;
|
|
|
} else{
|
|
|
if (!chkbox.checked)
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
var m = row.dfContainer.getValue('AcceptMoney');
|
|
|
if (m != null && m != '') {
|
|
|
sumM = sumM + 1 * m;
|
|
|
}
|
|
|
}
|
|
|
var label = document.getElementById('{selectMoneyLabel}')
|
|
|
label.innerText = sumM.toFixed(2);
|
|
|
|
|
|
} ";
|
|
|
script = script.Replace("{selectMoneyLabel}", _moneyLabel.ClientID);
|
|
|
Page.ClientScript.RegisterStartupScript(GetType(), "Startup", script, true);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
protected override void OnLoad(EventArgs e) {
|
|
|
base.OnLoad(e);
|
|
|
if (!IsPostBack)
|
|
|
StartQuery();
|
|
|
}
|
|
|
|
|
|
class AreadyTo {
|
|
|
public long ID { get; set; }
|
|
|
|
|
|
[LogicName("已转验收报价数量")]
|
|
|
public Money<decimal>? AlreadyAcceptUnitNum { get; set; }
|
|
|
|
|
|
public static DQueryDom Get() {
|
|
|
var dom = new DQueryDom(new JoinAlias(typeof(SaleOutStore_DetailToCustomerAcceptNumber)));
|
|
|
dom.Columns.Add(DQSelectColumn.Field("SaleOutStore_ID"));
|
|
|
dom.GroupBy.Expressions.Add(DQExpression.Field("SaleOutStore_ID"));
|
|
|
dom.Columns.Add(DQSelectColumn.Sum("AlreadyAcceptUnitNum"));
|
|
|
return dom;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|