You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

138 lines
5.0 KiB

using BWP.B3ButcherManage;
using BWP.B3ButcherManage.BO;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO.MoneyTemplate;
using BWP.Web.Layout;
using BWP.Web.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebControls2;
using TSingSoft.WebPluginFramework;
namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
{
class StatPayAnalyse : DFGridReportPage<StatPay>
{
protected override string AccessRoleName
{
get { return "B3QingDaoWanFu.报表.结算单分析"; }
}
protected override string Caption
{
get { return "结算单分析"; }
}
protected override string QueryOptionsTabName
{
get
{
return "显示字段";
}
}
protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form)
{
base.InitForm(form);
mDFGrid.AllowRowGroup = true;
}
public override Forks.EnterpriseServices.DataForm.PagedDFDataTable GetPagedDFDataTable(TSingSoft.WebControls2.DFGrids.QuerySettings settings)
{
var result = base.GetPagedDFDataTable(settings);
if (ColumnNames.Contains("实付金额"))
result.Data.SumRow["实付金额"] = GetTotalActualMoney();
return result;
}
Money<>? GetTotalActualMoney()
{
var query = base.GetQueryDom();
var n = new DQueryDom(new JoinAlias(typeof(StatPay)));
n.Where.Conditions.Add(DQCondition.And(query.Where.Conditions));
n.Columns.Add(DQSelectColumn.Sum("ActualMoney"));
return n.EExecuteScalar<Money<>?>();
}
public override Forks.EnterpriseServices.DataForm.DFDataTable GetDFDataTable(TSingSoft.WebControls2.DFGrids.QuerySettings settings)
{
var result = base.GetDFDataTable(settings);
if (ColumnNames.Contains("实付金额"))
result.SumRow["实付金额"] = GetTotalActualMoney();
return result;
}
protected override void InitQueryPanel(WebControls.QueryPanel queryPanel)
{
base.InitQueryPanel(queryPanel);
queryPanel.ConditonPanel.EAdd(CreateDatePanel());
}
private HLayoutPanel CreateDatePanel()
{
var panel = new HLayoutPanel();
panel.Add(new SimpleLabel("核算日期"));
panel.Add(QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate", DateTime.Today, null));
return panel;
}
protected override void AddQueryControls(VLayoutPanel vPanel)
{
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer);
var config = new AutoLayoutConfig { Cols = 4 };
config.Add("ID");
config.Add("BillState");
config.Add("Supplier_ID");
config.Add("Employee_ID");
config.Add("PurchaseType_ID");
config.Add("Weigh_ID");
config.Add("WeighTime");
layout.Config = config;
vPanel.Add(layout.CreateLayout());
}
ReportDisplayOptionHelper mDisplayHelper = new ReportDisplayOptionHelper();
protected override void AddQueryOptions(VLayoutPanel vPanel)//显示字段
{
mDisplayHelper.AddOptionItem("结算单号", "_bill", "ID", false);
mDisplayHelper.AddOptionItem("结算日期", "_bill", "Date", false);
mDisplayHelper.AddOptionItem("过磅单号", "_bill", "Weigh_ID", false);
mDisplayHelper.AddOptionItem("过磅日期", "_bill", "WeighTime", false);
mDisplayHelper.AddOptionItem("实付金额", "_bill", "ActualMoney", false);
mDisplayHelper.AddOptionItem("养殖户", "_detail", "Farmer_Name", false);
mDisplayHelper.AddOptionItem("身份证号", "_detail", "Farmer_IDCard", false);
mDisplayHelper.AddOptionItem("地址", "_detail", "Farmer_Address", false);
mDisplayHelper.AddOptionItem("电话", "_detail", "Farmer_Tel", false);
mDisplayHelper.AddOptionItem("棚前头数", "_detail", "Number", false, true);
mDisplayHelper.AddOptionItem("棚前重量", "_detail", "ExeWeight", false, true);
mDisplayHelper.AddOptionItem("棚前金额", "_detail", "ExtMoney", false, true);
AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames());
base.AddQueryOptions(vPanel);
}
protected override DQueryDom GetQueryDom()
{
var query = base.GetQueryDom();
var root = query.From.RootSource.Alias;
var detail = new JoinAlias("_detail", typeof(Weigh_FarmerDetail));
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "Weigh_ID", detail, "Weigh_ID"));
mDisplayHelper.AddAlias("_bill", JoinAlias.Create("_bill"));
mDisplayHelper.AddAlias("_detail", JoinAlias.Create("_detail"));
mDisplayHelper.AddSelectColumns(query, (name) => OptionIsSelected("选项", name), SumColumnNames, ColumnNames);
query.Where.Conditions.Add(DQCondition.EQ(root, "Domain_ID", DomainContext.Current.ID));
return query;
}
}
}