Browse Source

需求单No.139697 付款单 支持养殖户和供应商。

master
yibo 7 years ago
parent
commit
8cfba1cb97
5 changed files with 157 additions and 0 deletions
  1. +3
    -0
      B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj
  2. +125
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/PayEdit_Ext.cs
  3. +1
    -0
      B3QingDaoWanFu.Web/PluginClass.cs
  4. +1
    -0
      B3QingDaoWanFu/B3QingDaoWanFu.csproj
  5. +27
    -0
      B3QingDaoWanFu/TypeIOCs/PayBLTypeIoc.cs

+ 3
- 0
B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj View File

@ -155,6 +155,9 @@
<Compile Include="Pages\B3QingDaoWanFu\CustomerDeviceSet_\CustomerDeviceSetEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Overlays\PayEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\Overlays\SaleOutStoreEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>


+ 125
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/PayEdit_Ext.cs View File

@ -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();
}
}
}

+ 1
- 0
B3QingDaoWanFu.Web/PluginClass.cs View File

@ -21,6 +21,7 @@ namespace BWP.B3QingDaoWanFu
WpfPageFactory.RegisterPageOverlay(typeof(StatPayAnalyse).FullName, typeof(StatPayAnalyse_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(StatPayList).FullName, typeof(StatPayList_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(BWP.Web.Pages.B3ButcherManage.Bills.Pay_.PayEdit).FullName, typeof(PayEdit_Ext).FullName);
GlobalFlags.On(B3ButcherManageConsts.GlobalFlags.StatPayAddRewardWithButcherUseWeight);
GlobalFlags.On(B3SaleConsts.Flags.MarketingActivityEnableAdjustPrice);
GlobalFlags.On(B3SaleConsts.Flags.SendOutStoreNoAvailableStorage);


+ 1
- 0
B3QingDaoWanFu/B3QingDaoWanFu.csproj View File

@ -154,6 +154,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Rpc\GatheringRpc.cs" />
<Compile Include="Tasks\SyncSaleOutStoreInfoToMES.cs" />
<Compile Include="TypeIOCs\PayBLTypeIoc.cs" />
<Compile Include="TypeIOCs\SaleOutStoreBLTypeIoc.cs" />
<Compile Include="TypeIOCs\StatPayBLTypeIoc.cs" />
<Compile Include="Utils\WanFuOnlineConfig.cs" />


+ 27
- 0
B3QingDaoWanFu/TypeIOCs/PayBLTypeIoc.cs View File

@ -0,0 +1,27 @@
using BWP.B3ButcherManage.BL;
using BWP.B3ButcherManage.BO;
using BWP.B3ButcherManage.NamedValueTemplate;
using BWP.B3Frameworks;
using Forks.EnterpriseServices.BusinessInterfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3QingDaoWanFu.TypeIOCs
{
[TypeIOC(typeof(PayBL), typeof(PayBL.BillBLIOCs.BeforeCheck))]
public class PayBLTypeIoc : PayBL.BillBLIOCs.BeforeCheck
{
public void Invoke(IDmoContext context, Pay dmo)
{
if (dmo.PayTarget != .)
return;
var farmerMoney = dmo.FarmerDetails.Sum(x => x.Money.EToDecimal() ?? 0);
var tMoney = dmo.Details.Sum(x => x.Money.EToDecimal() ?? 0);
if (farmerMoney != tMoney)
throw new Exception("养殖户金额不等于本次付款金额");
}
}
}

Loading…
Cancel
Save