|
|
using BWP.B3ButcherManage;
|
|
|
using BWP.B3ButcherManage.BO;
|
|
|
using BWP.B3Frameworks;
|
|
|
using BWP.Web.Layout;
|
|
|
using BWP.Web.Utils;
|
|
|
using Forks.EnterpriseServices.DomainObjects2;
|
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery;
|
|
|
using Forks.EnterpriseServices.SqlDoms;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using TSingSoft.WebControls2;
|
|
|
|
|
|
namespace BWP.Web.Pages.B3QingDaoWanFu.Reports
|
|
|
{
|
|
|
class PayInfoExport : DFGridReportPage<Pay>
|
|
|
{
|
|
|
protected override string AccessRoleName
|
|
|
{
|
|
|
get { return "B3QingDaoWanFu.报表.付款清单导出"; }
|
|
|
}
|
|
|
|
|
|
protected override string Caption
|
|
|
{
|
|
|
get { return "付款清单导出"; }
|
|
|
}
|
|
|
|
|
|
protected override void InitQueryPanel(WebControls.QueryPanel queryPanel)
|
|
|
{
|
|
|
base.InitQueryPanel(queryPanel);
|
|
|
queryPanel.ConditonPanel.EAdd(CreateExportTypePanel());
|
|
|
}
|
|
|
|
|
|
DFBoolComboBox payTarget;
|
|
|
private HLayoutPanel CreateExportTypePanel()
|
|
|
{
|
|
|
var panel = new HLayoutPanel();
|
|
|
panel.Add(new SimpleLabel("付款对象"));
|
|
|
payTarget = panel.Add(new DFBoolComboBox() { TrueDisplayValue = "供应商", FalseDisplayValue = "养殖户" });
|
|
|
return panel;
|
|
|
}
|
|
|
|
|
|
DFChoiceBox purchaseType;
|
|
|
protected override void AddQueryControls(VLayoutPanel vPanel)
|
|
|
{
|
|
|
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer);
|
|
|
layout.Add("AccountingUnit_ID", new SimpleLabel("会计单位"), QueryCreator.DFChoiceBox(mDFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.授权会计单位全部));
|
|
|
layout.Add("Supplier_ID", new SimpleLabel("供应商"), QueryCreator.DFChoiceBox(mDFInfo.Fields["Supplier_ID"], B3ButcherManageConsts.DataSources.供应商));
|
|
|
layout.Add("PurchaseType_ID", new SimpleLabel("收购类型"), purchaseType = QueryCreator.DFChoiceBox(mDFInfo.Fields["Supplier_ID"], B3ButcherManageConsts.DataSources.收购类型));
|
|
|
layout["PurchaseType_ID"].NotAutoAddToContainer = true;
|
|
|
layout.Add("Date", new SimpleLabel("付款日期"), QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate", DateTime.Today, null));
|
|
|
layout["Date"].NotAutoAddToContainer = true;
|
|
|
|
|
|
var config = new AutoLayoutConfig { Cols = 4 };
|
|
|
config.Add("Date");
|
|
|
config.Add("ID");
|
|
|
config.Add("AccountingUnit_ID");
|
|
|
config.Add("Supplier_ID");
|
|
|
config.Add("PurchaseType_ID");
|
|
|
config.Add("BillState");
|
|
|
|
|
|
layout.Config = config;
|
|
|
vPanel.Add(layout.CreateLayout());
|
|
|
}
|
|
|
|
|
|
const string SubTitle = "万福肉联厂委托银行付款打卡清单{0:yyyy年MM月dd日}(本日 表第 表)|";
|
|
|
|
|
|
protected override DQueryDom GetQueryDom()
|
|
|
{
|
|
|
var t = string.Format(SubTitle, GetMinDate());
|
|
|
var query = base.GetQueryDom();
|
|
|
query.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet<string>("ROW_NUMBER() OVER(order by [_bill].[ID])"), t + "序号"));
|
|
|
if (!payTarget.Value.Value)
|
|
|
{
|
|
|
var root = query.From.RootSource.Alias;
|
|
|
var detail = new JoinAlias(typeof(Pay_FarmerDetail));
|
|
|
query.From.AddJoin(JoinType.Left, new DQDmoSource(detail), DQCondition.EQ(root, "ID", detail, "Pay_ID"));
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID", root, 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");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
query.Columns.Add(DQSelectColumn.Field("Supplier_BankAccount", t + "卡号"));
|
|
|
query.Columns.Add(DQSelectColumn.Field("Supplier_Name", t + "姓名"));
|
|
|
query.Columns.Add(DQSelectColumn.Field("Money", t + "金额"));
|
|
|
SumColumnNames.Add("Money");
|
|
|
}
|
|
|
query.Columns.Add(DQSelectColumn.Field("Remark", t + "备注"));
|
|
|
if (!purchaseType.IsEmpty)
|
|
|
DetailTemp.AddPurchaseTypeCondition(query, long.Parse(purchaseType.Value));
|
|
|
foreach (var c in query.Columns)
|
|
|
ColumnNames.Add(c.Name);
|
|
|
return query;
|
|
|
}
|
|
|
|
|
|
DateTime GetMinDate()
|
|
|
{
|
|
|
var date = DateTime.Today;
|
|
|
var dateInput = mQueryContainer.GetControl<DFDateInput>("MinDate");
|
|
|
if (!dateInput.IsEmpty)
|
|
|
date = dateInput.Date;
|
|
|
return date;
|
|
|
}
|
|
|
|
|
|
protected override string ExportExcelName
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return string.Format("{0:yyyy年MM月dd日}{1}导出.xlsx", DateTime.Today, Caption);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
class DetailTemp
|
|
|
{
|
|
|
public long Pay_ID { get; set; }
|
|
|
|
|
|
public static void AddPurchaseTypeCondition(DQueryDom root, long purchaseTypeID)
|
|
|
{
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(Pay_Detail)));
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("StatPay_PurchaseType_ID", purchaseTypeID));
|
|
|
query.Columns.Add(DQSelectColumn.Field("Pay_ID"));
|
|
|
query.GroupBy.Expressions.Add(DQExpression.Field("Pay_ID"));
|
|
|
|
|
|
root.RegisterQueryTable(typeof(DetailTemp), new string[] { "Pay_ID" }, query);
|
|
|
var detail = new JoinAlias(typeof(DetailTemp));
|
|
|
root.From.AddJoin(JoinType.Inner, new DQDmoSource(detail), DQCondition.EQ(root.From.RootSource.Alias, "ID", detail, "Pay_ID"));
|
|
|
}
|
|
|
}
|
|
|
}
|