|
|
|
@ -0,0 +1,125 @@ |
|
|
|
using BWP.B3ButcherManage.BO; |
|
|
|
using BWP.Web.Layout; |
|
|
|
using BWP.Web.Pages.B3ButcherManage.Bills.Pay_; |
|
|
|
using BWP.Web.WebControls; |
|
|
|
using Forks.EnterpriseServices.DataForm; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Web.UI.WebControls; |
|
|
|
using TSingSoft.WebControls2; |
|
|
|
using Forks.Utils.Collections; |
|
|
|
using BWP.B3ButcherManage.NamedValueTemplate; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery; |
|
|
|
using Forks.EnterpriseServices.DomainObjects2; |
|
|
|
using Forks.EnterpriseServices.SqlDoms; |
|
|
|
|
|
|
|
namespace BWP.Web.Pages.B3QingDaoWanFu.Overlays |
|
|
|
{ |
|
|
|
class PayEdit_Ext : PayEdit |
|
|
|
{ |
|
|
|
protected override void CustomerAddBasePropertys(Layout.LayoutManager layoutManager) |
|
|
|
{ |
|
|
|
base.CustomerAddBasePropertys(layoutManager); |
|
|
|
((AutoLayoutConfig)layoutManager.Config).Add("PayTarget"); |
|
|
|
} |
|
|
|
|
|
|
|
protected override void BuildBody(System.Web.UI.Control control) |
|
|
|
{ |
|
|
|
base.BuildBody(control); |
|
|
|
AddFarmerDetails(control.EAdd(new TitlePanel("养殖户明细", "养殖户明细"))); |
|
|
|
} |
|
|
|
|
|
|
|
DFEditGrid _farmerGrid; |
|
|
|
private void AddFarmerDetails(TitlePanel titlePanel) |
|
|
|
{ |
|
|
|
var vPanel = titlePanel.EAdd(new VLayoutPanel()); |
|
|
|
var editor = new DFCollectionEditor<Pay_FarmerDetail>(() => Dmo.FarmerDetails); |
|
|
|
editor.AllowDeletionFunc = () => CanSave; |
|
|
|
editor.CanSelectFunc = (detail) => CanSave; |
|
|
|
editor.CanDeleteFunc = detail => CanSave; |
|
|
|
editor.IsEditableFunc = (field, detail) => CanSave; |
|
|
|
|
|
|
|
_farmerGrid = titlePanel.EAdd(new DFEditGrid(editor) { Width = Unit.Percentage(100) }); |
|
|
|
|
|
|
|
_farmerGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Farmer_Name")); |
|
|
|
_farmerGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Farmer_IDCard")); |
|
|
|
_farmerGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Farmer_BankAccount")); |
|
|
|
_farmerGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("Number")).SumMode = SumMode.Sum; |
|
|
|
_farmerGrid.Columns.EAdd(new DFEditGridColumn<DFValueLabel>("Weight")).SumMode = SumMode.Sum; |
|
|
|
_farmerGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Money")).SumMode = SumMode.Sum; |
|
|
|
|
|
|
|
var section = mPageLayoutManager.AddSection("FarmerDetaiColumns", "养殖户明细"); |
|
|
|
titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name); |
|
|
|
section.ApplyLayout(_farmerGrid, mPageLayoutManager, DFInfo.Get(typeof(Pay_FarmerDetail))); |
|
|
|
} |
|
|
|
|
|
|
|
protected override void AfterSelectedStatPay(IList<Pay_Detail> payDetails) |
|
|
|
{ |
|
|
|
_farmerGrid.GetFromUI(); |
|
|
|
mDFContainer.GetFromUIParitially("PayTarget"); |
|
|
|
if (Dmo.PayTarget != 付款对象.养殖户) |
|
|
|
return; |
|
|
|
var ids = payDetails.Select(x => x.StatPay_ID).Where(x => x.HasValue); |
|
|
|
if (ids.Count() == 0) |
|
|
|
return; |
|
|
|
AddFarmerDetails(ids); |
|
|
|
_farmerGrid.DataBind(); |
|
|
|
} |
|
|
|
|
|
|
|
void AddFarmerDetails(IEnumerable<long?> statpayIDs) |
|
|
|
{ |
|
|
|
var stat = new JoinAlias(typeof(StatPay)); |
|
|
|
var detail = new JoinAlias(typeof(Weigh_FarmerDetail)); |
|
|
|
var query = new DQueryDom(stat); |
|
|
|
query.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(stat, "Weigh_ID", detail, "Weigh_ID")); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID", stat)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Farmer_ID", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Number", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ExeWeight", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ExtMoney", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Farmer_Name", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Farmer_IDCard", detail)); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("Farmer_BankAccount", detail)); |
|
|
|
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"), statpayIDs.Select(x => DQExpression.Value(x)).ToArray())); |
|
|
|
using (var session = Forks.EnterpriseServices.DomainObjects2.Dmo.NewSession()) |
|
|
|
{ |
|
|
|
using (var reader = session.ExecuteReader(query)) |
|
|
|
{ |
|
|
|
while (reader.Read()) |
|
|
|
{ |
|
|
|
var did = (long)reader[1]; |
|
|
|
if (Dmo.FarmerDetails.Any(x => x.Weight_FarmerDetail_ID == did)) |
|
|
|
continue; |
|
|
|
|
|
|
|
var entity = new Pay_FarmerDetail(); |
|
|
|
entity.StatPay_ID = (long)reader[0]; |
|
|
|
entity.Weight_FarmerDetail_ID = did; |
|
|
|
entity.Farmer_ID = (long?)reader[2]; |
|
|
|
entity.Number = (int?)reader[3]; |
|
|
|
entity.Weight = (decimal?)reader[4]; |
|
|
|
entity.Money = (decimal?)reader[5]; |
|
|
|
entity.Farmer_Name = (string)reader[6]; |
|
|
|
entity.Farmer_IDCard = (string)reader[7]; |
|
|
|
entity.Farmer_BankAccount = (string)reader[8]; |
|
|
|
Dmo.FarmerDetails.Add(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public override void GetFromUI() |
|
|
|
{ |
|
|
|
base.GetFromUI(); |
|
|
|
_farmerGrid.GetFromUI(); |
|
|
|
} |
|
|
|
|
|
|
|
public override void AppToUI() |
|
|
|
{ |
|
|
|
base.AppToUI(); |
|
|
|
_farmerGrid.DataBind(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |