Browse Source

需求单No.139697 客户又同意了这个方案。郁闷

master
yibo 7 years ago
parent
commit
f175809dd3
7 changed files with 204 additions and 14 deletions
  1. +3
    -0
      B3QingDaoWanFu.Web/B3QingDaoWanFu.Web.csproj
  2. +129
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Overlays/PayEdit_Ext.cs
  3. +12
    -13
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/PayInfoExport.cs
  4. +30
    -0
      B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/StatPayAnalyse.cs
  5. +2
    -1
      B3QingDaoWanFu.Web/PluginClass.cs
  6. +1
    -0
      B3QingDaoWanFu/B3QingDaoWanFu.csproj
  7. +27
    -0
      B3QingDaoWanFu/TypeIOCs/PayBLTypeIoc.cs

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

@ -170,6 +170,9 @@
<Compile Include="Pages\B3QingDaoWanFu\ExportUI\GoodsExportToMES.cs"> <Compile Include="Pages\B3QingDaoWanFu\ExportUI\GoodsExportToMES.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>
<Compile Include="Pages\B3QingDaoWanFu\Overlays\PayEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3QingDaoWanFu\TrustPay_\TrustPayList.cs"> <Compile Include="Pages\B3QingDaoWanFu\TrustPay_\TrustPayList.cs">
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </Compile>


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

@ -0,0 +1,129 @@
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);
if (CanSave)
{
dialogButton.BeforeClientClick += " var pt=__DFContainer.getValue('PayTarget'); if (pt == '') { alert('先选择付款对象');return false;}";
}
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();
}
}
}

+ 12
- 13
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/PayInfoExport.cs View File

@ -1,5 +1,6 @@
using BWP.B3ButcherManage; using BWP.B3ButcherManage;
using BWP.B3ButcherManage.BO; using BWP.B3ButcherManage.BO;
using BWP.B3ButcherManage.NamedValueTemplate;
using BWP.B3Frameworks; using BWP.B3Frameworks;
using BWP.Web.Layout; using BWP.Web.Layout;
using BWP.Web.Utils; using BWP.Web.Utils;
@ -32,12 +33,14 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
queryPanel.ConditonPanel.EAdd(CreateExportTypePanel()); queryPanel.ConditonPanel.EAdd(CreateExportTypePanel());
} }
DFBoolComboBox payTarget;
DFNamedValueInput<> payTarget;
private HLayoutPanel CreateExportTypePanel() private HLayoutPanel CreateExportTypePanel()
{ {
var panel = new HLayoutPanel(); var panel = new HLayoutPanel();
panel.Add(new SimpleLabel("付款对象")); panel.Add(new SimpleLabel("付款对象"));
payTarget = panel.Add(new DFBoolComboBox() { TrueDisplayValue = "供应商", FalseDisplayValue = "养殖户" });
payTarget = panel.Add(QueryCreator.DFNameValueInput<>(mDFInfo.Fields["PayTarget"]));
payTarget.Value = .;
payTarget.EnableTopItem = false;
return panel; return panel;
} }
@ -71,22 +74,17 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
var t = string.Format(SubTitle, GetMinDate()); var t = string.Format(SubTitle, GetMinDate());
var query = base.GetQueryDom(); var query = base.GetQueryDom();
query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("ROW_NUMBER() OVER(order by [_bill].[ID])"), t + "序号")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("ROW_NUMBER() OVER(order by [_bill].[ID])"), t + "序号"));
if (!payTarget.Value.Value)
if (payTarget.Value == .)
{ {
var root = query.From.RootSource.Alias; var root = query.From.RootSource.Alias;
var detail = new JoinAlias(typeof(Pay_Detail));
var rel = new JoinAlias(typeof(Pay_Advance_Relate));
var adv = new JoinAlias(typeof(AdvancePay_Detail));
var detail = new JoinAlias(typeof(Pay_FarmerDetail));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "ID", detail, "Pay_ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "ID", detail, "Pay_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(rel), DQCondition.EQ(detail, "ID", rel, "Pay_Detail_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(adv), DQCondition.EQ(rel, "AdvancePay_Detail_ID", adv, "ID"));
query.Columns.Add(DQSelectColumn.Field("ID", root, t + "付款单号")); query.Columns.Add(DQSelectColumn.Field("ID", root, t + "付款单号"));
query.Columns.Add(DQSelectColumn.Field("Farmer_Bank", adv, t + "开户银行"));
query.Columns.Add(DQSelectColumn.Field("Farmer_BankAccount", adv, t + "卡号"));
query.Columns.Add(DQSelectColumn.Field("Farmer_Name", adv, t + "姓名"));
query.Columns.Add(DQSelectColumn.Field("Money", adv, t + "金额"));
query.Columns.Add(DQSelectColumn.Field("Farmer_Bank", detail, t + "开户银行"));
query.Columns.Add(DQSelectColumn.Field("Farmer_BankAccount", detail, t + "卡号"));
query.Columns.Add(DQSelectColumn.Field("Farmer_Name", detail, t + "姓名"));
query.Columns.Add(DQSelectColumn.Field("Money", detail, t + "金额"));
SumColumnNames.Add("Money"); SumColumnNames.Add("Money");
query.Where.Conditions.Add(DQCondition.IsNotNull(DQExpression.Field(adv, "ID")));
} }
else else
{ {
@ -98,6 +96,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
query.Columns.Add(DQSelectColumn.Field("Remark", t + "备注")); query.Columns.Add(DQSelectColumn.Field("Remark", t + "备注"));
if (!purchaseType.IsEmpty) if (!purchaseType.IsEmpty)
DetailTemp.AddPurchaseTypeCondition(query, long.Parse(purchaseType.Value)); DetailTemp.AddPurchaseTypeCondition(query, long.Parse(purchaseType.Value));
query.Where.Conditions.Add(DQCondition.EQ("PayTarget", payTarget.Value));
foreach (var c in query.Columns) foreach (var c in query.Columns)
ColumnNames.Add(c.Name); ColumnNames.Add(c.Name);
return query; return query;


+ 30
- 0
B3QingDaoWanFu.Web/Pages/B3QingDaoWanFu/Reports/StatPayAnalyse.cs View File

@ -1,7 +1,9 @@
using BWP.B3ButcherManage; using BWP.B3ButcherManage;
using BWP.B3ButcherManage.BO; using BWP.B3ButcherManage.BO;
using BWP.B3ButcherManage.NamedValueTemplate;
using BWP.B3Frameworks; using BWP.B3Frameworks;
using BWP.B3Frameworks.BO.MoneyTemplate; using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.Web.Layout; using BWP.Web.Layout;
using BWP.Web.Utils; using BWP.Web.Utils;
using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2;
@ -136,6 +138,7 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
mDisplayHelper.AddOptionItem("棚前头数", "_detail", "Number", false, true); mDisplayHelper.AddOptionItem("棚前头数", "_detail", "Number", false, true);
mDisplayHelper.AddOptionItem("棚前重量", "_detail", "ExeWeight", false, true); mDisplayHelper.AddOptionItem("棚前重量", "_detail", "ExeWeight", false, true);
mDisplayHelper.AddOptionItem("棚前金额", "_detail", "ExtMoney", false, true); mDisplayHelper.AddOptionItem("棚前金额", "_detail", "ExtMoney", false, true);
mDisplayHelper.AddOptionItem("付款对象", "_pay", "PayTarget", false);
AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames()); AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames());
base.AddQueryOptions(vPanel); base.AddQueryOptions(vPanel);
@ -148,15 +151,42 @@ namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
var root = query.From.RootSource.Alias; var root = query.From.RootSource.Alias;
var weight = new JoinAlias("_weight", typeof(WeighBill)); var weight = new JoinAlias("_weight", typeof(WeighBill));
var detail = new JoinAlias("_detail", typeof(Weigh_FarmerDetail)); var detail = new JoinAlias("_detail", typeof(Weigh_FarmerDetail));
var pay = new JoinAlias("_pay", typeof(PayTemp));
PayTemp.Register(query);
query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.EQ(root, "Weigh_ID", weight, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(weight), DQCondition.EQ(root, "Weigh_ID", weight, "ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "Weigh_ID", detail, "Weigh_ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "Weigh_ID", detail, "Weigh_ID"));
query.From.AddJoin(JoinType.Left, new DQDmoSource(pay), DQCondition.EQ(pay, "StatPay_ID", root, "ID"));
mDisplayHelper.AddAlias("_bill", root); mDisplayHelper.AddAlias("_bill", root);
mDisplayHelper.AddAlias("_weight", weight); mDisplayHelper.AddAlias("_weight", weight);
mDisplayHelper.AddAlias("_detail", detail); mDisplayHelper.AddAlias("_detail", detail);
mDisplayHelper.AddAlias("_pay", pay);
mDisplayHelper.AddSelectColumns(query, (name) => OptionIsSelected("选项", name), SumColumnNames, ColumnNames); mDisplayHelper.AddSelectColumns(query, (name) => OptionIsSelected("选项", name), SumColumnNames, ColumnNames);
query.Where.Conditions.Add(DQCondition.EQ(root, "Domain_ID", DomainContext.Current.ID)); query.Where.Conditions.Add(DQCondition.EQ(root, "Domain_ID", DomainContext.Current.ID));
return query; return query;
} }
class PayTemp
{
public long StatPay_ID { get; set; }
public NamedValue<>? PayTarget { get; set; }
public static void Register(DQueryDom root)
{
var payDetail = new JoinAlias(typeof(Pay_Detail));
var pay = new JoinAlias("_pay", typeof(Pay));
var query = new DQueryDom(pay);
query.From.AddJoin(JoinType.Inner, new DQDmoSource(payDetail), DQCondition.EQ(payDetail, "Pay_ID", pay, "ID"));
query.Columns.Add(DQSelectColumn.Field("StatPay_ID", payDetail));
query.Columns.Add(DQSelectColumn.Field("PayTarget"));
query.GroupBy.Expressions.Add(DQExpression.Field(payDetail, "StatPay_ID"));
query.GroupBy.Expressions.Add(DQExpression.Field("PayTarget"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThanOrEqual("BillState", .), DQCondition.EQ("Domain_ID", DomainContext.Current.ID)));
root.RegisterQueryTable(typeof(PayTemp), new string[] { "StatPay_ID", "PayTarget" }, query);
}
}
} }
} }

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

@ -22,7 +22,8 @@ namespace BWP.B3QingDaoWanFu
WpfPageFactory.RegisterPageOverlay(typeof(StatPayEdit).FullName, typeof(StatPayEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(StatPayEdit).FullName, typeof(StatPayEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(StatPayAnalyse).FullName, typeof(StatPayAnalyse_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(StatPayAnalyse).FullName, typeof(StatPayAnalyse_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName); WpfPageFactory.RegisterPageOverlay(typeof(SaleOutStoreEdit).FullName, typeof(SaleOutStoreEdit_Ext).FullName);
WpfPageFactory.RegisterPageOverlay(typeof(StatPayList).FullName, typeof(StatPayList_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(B3ButcherManageConsts.GlobalFlags.StatPayAddRewardWithButcherUseWeight);
GlobalFlags.On(B3SaleConsts.Flags.MarketingActivityEnableAdjustPrice); GlobalFlags.On(B3SaleConsts.Flags.MarketingActivityEnableAdjustPrice);
GlobalFlags.On(B3SaleConsts.Flags.SendOutStoreNoAvailableStorage); GlobalFlags.On(B3SaleConsts.Flags.SendOutStoreNoAvailableStorage);


+ 1
- 0
B3QingDaoWanFu/B3QingDaoWanFu.csproj View File

@ -172,6 +172,7 @@
<Compile Include="Tasks\RecheckTrustPayTask.cs" /> <Compile Include="Tasks\RecheckTrustPayTask.cs" />
<Compile Include="Tasks\SyncSaleOutStoreInfoToMES.cs" /> <Compile Include="Tasks\SyncSaleOutStoreInfoToMES.cs" />
<Compile Include="TypeIOCs\GoodsBLTypeIoc.cs" /> <Compile Include="TypeIOCs\GoodsBLTypeIoc.cs" />
<Compile Include="TypeIOCs\PayBLTypeIoc.cs" />
<Compile Include="TypeIOCs\SaleOutStoreBLTypeIoc.cs" /> <Compile Include="TypeIOCs\SaleOutStoreBLTypeIoc.cs" />
<Compile Include="TypeIOCs\StatPayBLTypeIoc.cs" /> <Compile Include="TypeIOCs\StatPayBLTypeIoc.cs" />
<Compile Include="Utils\B3QingDaoWanFuConsts.cs" /> <Compile Include="Utils\B3QingDaoWanFuConsts.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