| @ -0,0 +1,194 @@ | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3Frameworks.BO; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||
| using BWP.B3ProcurementInterface.BO; | |||
| using BWP.B3ProcurementInterface.Utils; | |||
| using BWP.B3SubstituteKill.BO; | |||
| using BWP.Web.Layout; | |||
| using BWP.Web.Utils; | |||
| using BWP.Web.WebControls; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using Forks.Utils; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Web.UI; | |||
| using System.Web.UI.WebControls; | |||
| using TSingSoft.WebControls2; | |||
| using TSingSoft.WebPluginFramework; | |||
| namespace BWP.Web.Pages.B3SubstituteKill.Reports.SubKillFromToAccountAnalyse_ | |||
| { | |||
| class SubKillFromToAccountAnalyse: DFBrowseGridReportPage<SubKillFromToAccountAnalyse_View> | |||
| { | |||
| protected override string AccessRoleName | |||
| { | |||
| get { return "B3SubstituteKill.报表.代宰往来账"; } | |||
| } | |||
| protected override string Caption | |||
| { | |||
| get { return "代宰往来账"; } | |||
| } | |||
| CheckBoxListWithReverseSelect _checkbox; | |||
| protected override void InitQueryPanel(QueryPanel queryPanel) | |||
| { | |||
| queryPanel.EAdd(new LiteralControl(string.Format("<a style='font-size:20px;color:#000000;margin-right:20px;' href ='{0}'>汇总查询</a>", AspUtil.AddTimeStampToUrl("SubKillFromToAccountSummaryAnalyse.aspx")))); | |||
| queryPanel.EAdd(new LiteralControl("<a style='font-size:20px;color:#FFFFFF;background-color:#42a3da;' href ='#'>明细查询</a>")); | |||
| base.InitQueryPanel(queryPanel); | |||
| var panel = queryPanel.CreateTab("显示字段"); | |||
| _checkbox = new CheckBoxListWithReverseSelect() { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal }; | |||
| //单据类型、单据号、日期、会计单位、销售部门、销售人员、购货客户、销售地区、客户分类、结账客户 | |||
| var showFields = new List<Tuple<string, string>>(); | |||
| showFields.Add(new Tuple<string, string>("BillType", "单据类型")); | |||
| showFields.Add(new Tuple<string, string>("BillID", "单据号")); | |||
| showFields.Add(new Tuple<string, string>("Date", "日期")); | |||
| showFields.Add(new Tuple<string, string>("AccountingUnit_Name", "会计单位")); | |||
| showFields.Add(new Tuple<string, string>("Supplier_Name", "供应商")); | |||
| showFields.Add(new Tuple<string, string>("借方", "借方")); | |||
| showFields.Add(new Tuple<string, string>("贷方", "贷方")); | |||
| showFields.Add(new Tuple<string, string>("余额", "余额")); | |||
| var section = mPageLayoutManager.AddSection("显示字段", "显示字段"); | |||
| section.ApplyLayout(showFields, mPageLayoutManager); | |||
| foreach (var item in showFields) | |||
| { | |||
| _checkbox.Items.Add(new ListItem(item.Item2, item.Item1)); | |||
| } | |||
| panel.EAdd(_checkbox); | |||
| queryPanel.ConditonPanel.EAdd(CreateDataRangePanel()); | |||
| mQueryControls.Add("显示字段", _checkbox); | |||
| mQueryControls.EnableHoldLastControlNames.Add("显示字段"); | |||
| } | |||
| Control CreateDataRangePanel() | |||
| { | |||
| var hPanel = new HLayoutPanel(); | |||
| hPanel.Add(new SimpleLabel("日期")); | |||
| hPanel.Add(QueryCreator.TimeRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate")); | |||
| return hPanel; | |||
| } | |||
| DFDropDownList downList; | |||
| protected override void AddQueryControls(VLayoutPanel vPanel) | |||
| { | |||
| var customPanel = new LayoutManager("Main", mDFInfo, mQueryContainer); | |||
| customPanel.Add("AccountingUnit_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountingUnit_ID"], mQueryContainer, "AccountingUnit_ID","授权会计单位")); | |||
| customPanel["AccountingUnit_ID"].NotAutoAddToContainer = true; | |||
| customPanel.Add("Supplier_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Supplier_ID"], mQueryContainer, "Supplier_ID", B3ProcurementInterfaceDataSources.供应商用于屠宰场)); | |||
| customPanel["Supplier_ID"].NotAutoAddToContainer = true; | |||
| downList = new DFDropDownList(); | |||
| downList.Items.Add(new ListItem("待宰结算", DmoTypeIDAttribute.GetID(typeof(StatPay)).ToString())); | |||
| downList.Items.Add(new ListItem("待宰收款", DmoTypeIDAttribute.GetID(typeof(SubKillGathering)).ToString())); | |||
| customPanel.Add("BillTypeID", downList); | |||
| customPanel["BillTypeID"].NotAutoAddToContainer = true; | |||
| var config = customPanel.CreateDefaultConfig(2); | |||
| config.Expand = false; | |||
| var section = mPageLayoutManager.AddSection("查询条件", "查询条件"); | |||
| section.ApplyLayout(customPanel, config, mPageLayoutManager, mDFInfo); | |||
| vPanel.Add(customPanel.CreateLayout()); | |||
| } | |||
| protected override DQueryDom GetQueryDom() | |||
| { | |||
| var minDate = mQueryContainer.GetControl<DFDateTimeInput>("MinDate").Value; | |||
| if (minDate == null) | |||
| minDate = new DateTime(2000, 1, 1, 12, 0, 0); | |||
| var query = base.GetQueryDom(); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| var rootAlias = query.From.RootSource.Alias; | |||
| if (downList.SelectedIndex > 0) | |||
| { | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillTypeID", downList.SelectedItem.Value)); | |||
| } | |||
| foreach (ListItem field in _checkbox.Items) | |||
| { | |||
| if (field.Selected) | |||
| { | |||
| switch (field.Value) | |||
| { | |||
| case "借方": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("BillTypeID", DmoTypeIDAttribute.GetID(typeof(StatPay))), DQExpression.Field("Money"), DQExpression.Value(0))), "借方")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| case "贷方": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("BillTypeID", DmoTypeIDAttribute.GetID(typeof(SubKillGathering))), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Money")), DQExpression.Value(0))), "贷方")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| case "余额": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQExpression.LessThan(DQExpression.Field("Date"), DQExpression.Value(minDate)), DQExpression.Field("Money"), DQExpression.Value(0))), "期初余额")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value("借方"), "余额方向")); | |||
| var initialBalance = GetInitialBalance(query); | |||
| IDQSelectColumn col = DQSelectColumn.SumUp(DQExpression.Sum(DQExpression.Field("Money")), "余额|期初:" + initialBalance); | |||
| query.Columns.Add(col); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| default: | |||
| query.Columns.Add(DQSelectColumn.Field(field.Value, rootAlias, field.Text)); | |||
| query.GroupBy.Expressions.Add(DQExpression.Field(rootAlias, field.Value)); | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| if (query.Columns.Count == 0) | |||
| throw new Exception("至少选择一条显示列"); | |||
| return query; | |||
| } | |||
| private Money<金额> GetInitialBalance(DQueryDom query) | |||
| { | |||
| var minDate = mQueryContainer.GetInput("MinDate"); | |||
| object beginDate = minDate ?? new DateTime(2014, 1, 1, 12, 0, 0); | |||
| Money<金额> result = 0; | |||
| var jie = GetJieMoney(Convert.ToDateTime(beginDate)); | |||
| var dai = GetDaiMoney(Convert.ToDateTime(beginDate)); | |||
| return jie - dai; | |||
| } | |||
| private Money<金额> GetDaiMoney(DateTime minDate) | |||
| { | |||
| var query = new DQueryDom(new JoinAlias(typeof(SubKillGathering))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| query.Where.Conditions.Add(DQCondition.LessThanOrEqual("Date", minDate)); | |||
| query.Columns.Add(DQSelectColumn.Sum("Money")); | |||
| return query.EExecuteScalar<Money<金额>?>() ?? 0; | |||
| } | |||
| private Money<金额> GetJieMoney(DateTime minDate) | |||
| { | |||
| var query = new DQueryDom(new JoinAlias(typeof(StatPay))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillState",单据状态.已审核)); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| query.Where.Conditions.Add(DQCondition.LessThanOrEqual("Date", minDate)); | |||
| query.Columns.Add(DQSelectColumn.Sum("ReceiveMoney")); | |||
| return query.EExecuteScalar<Money<金额>?>()??0; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,37 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3SubstituteKill.BO.SubKillFromToAccountAnalyse_View, B3SubstituteKill"/> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="AccountingUnit_ID"/> | |||
| <QBE paramName="AccountingUnit_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Supplier_ID"/> | |||
| <QBE paramName="Supplier_ID"/> | |||
| </EQ> | |||
| <GreaterThanOrEqual> | |||
| <Field name="Date"/> | |||
| <QBE paramName="MinDate" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="Date"/> | |||
| <QBE paramName="MaxDate"/> | |||
| </LessThanOrEqual> | |||
| </And> | |||
| </Where> | |||
| </Select> | |||
| @ -0,0 +1,194 @@ | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||
| using BWP.B3ProcurementInterface.Utils; | |||
| using BWP.B3SubstituteKill.BO; | |||
| using BWP.Web.Layout; | |||
| using BWP.Web.Utils; | |||
| using BWP.Web.WebControls; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using Forks.Utils; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Web.UI; | |||
| using System.Web.UI.WebControls; | |||
| using TSingSoft.WebControls2; | |||
| using TSingSoft.WebPluginFramework; | |||
| namespace BWP.Web.Pages.B3SubstituteKill.Reports.SubKillFromToAccountAnalyse_ | |||
| { | |||
| class SubKillFromToAccountSummaryAnalyse : DFBrowseGridReportPage<SubKillFromToAccountAnalyse_View> | |||
| { | |||
| protected override string AccessRoleName | |||
| { | |||
| get { return "B3SubstituteKill.报表.代宰往来账"; } | |||
| } | |||
| protected override string Caption | |||
| { | |||
| get { return "代宰往来账"; } | |||
| } | |||
| CheckBoxListWithReverseSelect _checkbox; | |||
| protected override void InitQueryPanel(QueryPanel queryPanel) | |||
| { | |||
| queryPanel.EAdd(new LiteralControl("<a style='font-size:20px;margin-right:20px;color:#FFFFFF;background-color:#42a3da;' href ='#'>汇总查询</a>")); | |||
| queryPanel.EAdd(new LiteralControl(string.Format("<a style='font-size:20px;color:#000000;' href ='{0}'>明细查询</a>", AspUtil.AddTimeStampToUrl("SubKillFromToAccountAnalyse.aspx")))); | |||
| base.InitQueryPanel(queryPanel); | |||
| var panel = queryPanel.CreateTab("显示字段"); | |||
| _checkbox = new CheckBoxListWithReverseSelect() { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal }; | |||
| //单据类型、单据号、日期、会计单位、销售部门、销售人员、购货客户、销售地区、客户分类、结账客户 | |||
| var showFields = new List<Tuple<string, string>>(); | |||
| showFields.Add(new Tuple<string, string>("AccountingUnit_Name", "会计单位")); | |||
| showFields.Add(new Tuple<string, string>("Supplier_Name", "供应商")); | |||
| showFields.Add(new Tuple<string, string>("期初余额", "期初余额")); | |||
| showFields.Add(new Tuple<string, string>("借方", "借方")); | |||
| showFields.Add(new Tuple<string, string>("贷方", "贷方")); | |||
| showFields.Add(new Tuple<string, string>("余额", "余额")); | |||
| var section = mPageLayoutManager.AddSection("显示字段", "显示字段"); | |||
| section.ApplyLayout(showFields, mPageLayoutManager); | |||
| foreach (var item in showFields) | |||
| { | |||
| _checkbox.Items.Add(new ListItem(item.Item2, item.Item1)); | |||
| } | |||
| panel.EAdd(_checkbox); | |||
| queryPanel.ConditonPanel.EAdd(CreateDataRangePanel()); | |||
| mQueryControls.Add("显示字段", _checkbox); | |||
| mQueryControls.EnableHoldLastControlNames.Add("显示字段"); | |||
| } | |||
| Control CreateDataRangePanel() | |||
| { | |||
| var hPanel = new HLayoutPanel(); | |||
| hPanel.Add(new SimpleLabel("日期")); | |||
| hPanel.Add(QueryCreator.TimeRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate")); | |||
| return hPanel; | |||
| } | |||
| DFDropDownList downList; | |||
| protected override void AddQueryControls(VLayoutPanel vPanel) | |||
| { | |||
| var customPanel = new LayoutManager("Main", mDFInfo, mQueryContainer); | |||
| customPanel.Add("AccountingUnit_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["AccountingUnit_ID"], mQueryContainer, "AccountingUnit_ID", "授权会计单位")); | |||
| customPanel["AccountingUnit_ID"].NotAutoAddToContainer = true; | |||
| customPanel.Add("Supplier_ID", QueryCreator.DFChoiceBoxEnableMultiSelection(mDFInfo.Fields["Supplier_ID"], mQueryContainer, "Supplier_ID", B3ProcurementInterfaceDataSources.供应商用于屠宰场)); | |||
| customPanel["Supplier_ID"].NotAutoAddToContainer = true; | |||
| downList = new DFDropDownList(); | |||
| downList.Items.Add(new ListItem("待宰结算", DmoTypeIDAttribute.GetID(typeof(StatPay)).ToString())); | |||
| downList.Items.Add(new ListItem("待宰收款", DmoTypeIDAttribute.GetID(typeof(SubKillGathering)).ToString())); | |||
| customPanel.Add("BillTypeID", downList); | |||
| customPanel["BillTypeID"].NotAutoAddToContainer = true; | |||
| var config = customPanel.CreateDefaultConfig(2); | |||
| config.Expand = false; | |||
| var section = mPageLayoutManager.AddSection("查询条件", "查询条件"); | |||
| section.ApplyLayout(customPanel, config, mPageLayoutManager, mDFInfo); | |||
| vPanel.Add(customPanel.CreateLayout()); | |||
| } | |||
| protected override DQueryDom GetQueryDom() | |||
| { | |||
| var minDate = mQueryContainer.GetControl<DFDateTimeInput>("MinDate").Value; | |||
| if (minDate == null) | |||
| minDate = new DateTime(2000, 1, 1, 12, 0, 0); | |||
| var maxDate = mQueryContainer.GetControl<DFDateTimeInput>("MaxDate").Value; | |||
| if (maxDate == null) | |||
| maxDate = new DateTime(2069, 1, 1, 12, 0, 0); | |||
| var query = base.GetQueryDom(); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| var rootAlias = query.From.RootSource.Alias; | |||
| if (downList.SelectedIndex > 0) | |||
| { | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillTypeID", downList.SelectedItem.Value)); | |||
| } | |||
| foreach (ListItem field in _checkbox.Items) | |||
| { | |||
| if (field.Selected) | |||
| { | |||
| switch (field.Value) | |||
| { | |||
| case "借方": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("BillTypeID", DmoTypeIDAttribute.GetID(typeof(StatPay))), DQExpression.Field("Money"), DQExpression.Value(0))), "借方")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| case "贷方": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQCondition.EQ("BillTypeID", DmoTypeIDAttribute.GetID(typeof(SubKillGathering))), DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Money")), DQExpression.Value(0))), "贷方")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| case "期初余额": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQExpression.LessThan(DQExpression.Field("Date"), DQExpression.Value(minDate)), DQExpression.Field("Money"), DQExpression.Value(0))), "期初余额")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| case "余额": | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value("借方"), "余额方向")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Sum(DQExpression.LogicCase(DQExpression.LessThanOrEqual(DQExpression.Field("Date"), DQExpression.Value(maxDate)), DQExpression.Field("Money"), DQExpression.Value(0))), "余额")); | |||
| SumColumnIndexs.Add(query.Columns.Count - 1); | |||
| break; | |||
| default: | |||
| query.Columns.Add(DQSelectColumn.Field(field.Value, rootAlias, field.Text)); | |||
| query.GroupBy.Expressions.Add(DQExpression.Field(rootAlias, field.Value)); | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| if (query.Columns.Count == 0) | |||
| throw new Exception("至少选择一条显示列"); | |||
| return query; | |||
| } | |||
| private Money<金额> GetInitialBalance(DQueryDom query) | |||
| { | |||
| var minDate = mQueryContainer.GetInput("MinDate"); | |||
| object beginDate = minDate ?? new DateTime(2014, 1, 1, 12, 0, 0); | |||
| Money<金额> result = 0; | |||
| var jie = GetJieMoney(Convert.ToDateTime(beginDate)); | |||
| var dai = GetDaiMoney(Convert.ToDateTime(beginDate)); | |||
| return jie - dai; | |||
| } | |||
| private Money<金额> GetDaiMoney(DateTime minDate) | |||
| { | |||
| var query = new DQueryDom(new JoinAlias(typeof(SubKillGathering))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| query.Where.Conditions.Add(DQCondition.LessThanOrEqual("Date", minDate)); | |||
| query.Columns.Add(DQSelectColumn.Sum("Money")); | |||
| return query.EExecuteScalar<Money<金额>?>() ?? 0; | |||
| } | |||
| private Money<金额> GetJieMoney(DateTime minDate) | |||
| { | |||
| var query = new DQueryDom(new JoinAlias(typeof(StatPay))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| query.Where.Conditions.Add(DQCondition.LessThanOrEqual("Date", minDate)); | |||
| query.Columns.Add(DQSelectColumn.Sum("ReceiveMoney")); | |||
| return query.EExecuteScalar<Money<金额>?>() ?? 0; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,27 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3SubstituteKill.BO.SubKillFromToAccountAnalyse_View, B3SubstituteKill"/> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="AccountingUnit_ID"/> | |||
| <QBE paramName="AccountingUnit_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Supplier_ID"/> | |||
| <QBE paramName="Supplier_ID"/> | |||
| </EQ> | |||
| </And> | |||
| </Where> | |||
| </Select> | |||
| @ -0,0 +1,120 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3Frameworks.BO; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||
| using BWP.B3ProcurementInterface.BO; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.DataForm; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using Forks.EnterpriseServices.SqlDoms; | |||
| using Forks.Utils; | |||
| using Forks.Utils.Data; | |||
| using TSingSoft.WebPluginFramework; | |||
| namespace BWP.B3SubstituteKill.BO | |||
| { | |||
| [MapToView] | |||
| [DFClass,Serializable] | |||
| public class SubKillFromToAccountAnalyse_View : ICreateView | |||
| { | |||
| public ISqlDom CreateView() | |||
| { | |||
| UnionItem statPayUnion = new UnionItem(StatPaySelectDom(), UnionType.Default); | |||
| UnionItem gatheringUnion = new UnionItem(GatheringSelectDom(), UnionType.All); | |||
| UnionDom unionDom = new UnionDom(); | |||
| unionDom.Items.Add(statPayUnion); | |||
| unionDom.Items.Add(gatheringUnion); | |||
| return unionDom; | |||
| } | |||
| private SelectDom GatheringSelectDom() | |||
| { | |||
| var query = new DQueryDom(new JoinAlias(typeof(SubKillGathering))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Domain_ID"), "Domain_ID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value<short>(DmoTypeIDAttribute.GetID(typeof(SubKillGathering))), "BillTypeID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value<string>("待宰收款"), "BillType")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("ID"), "BillID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Date"), "Date")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("AccountingUnit_ID"), "AccountingUnit_ID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Supplier_ID"), "Supplier_ID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Multiply(DQExpression.Value(-1), DQExpression.Field("Money")), "Money")); | |||
| return (SelectDom)query.Build(DbProviderType.SqlClient, DbmsType.SqlServer2005); | |||
| } | |||
| private SelectDom StatPaySelectDom() | |||
| { | |||
| var query = new DQueryDom(new JoinAlias(typeof(StatPay))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("BillState", 单据状态.已审核)); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Domain_ID"), "Domain_ID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value<short>(DmoTypeIDAttribute.GetID(typeof(StatPay))), "BillTypeID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Value<string>("待宰结算"), "BillType")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("ID"), "BillID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Date"), "Date")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("AccountingUnit_ID"), "AccountingUnit_ID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("Supplier_ID"), "Supplier_ID")); | |||
| query.Columns.Add(DQSelectColumn.Create(DQExpression.Field("ReceiveMoney"), "Money")); | |||
| return (SelectDom)query.Build(DbProviderType.SqlClient, DbmsType.SqlServer2005); | |||
| } | |||
| public long? Domain_ID { get; set; } | |||
| [LogicName("单据类型")] | |||
| public short BillTypeID { get; set; } | |||
| [LogicName("单据类型")] | |||
| public string BillType { get; set; } | |||
| [LogicName("单号")] | |||
| public long BillID { get; set; } | |||
| [LogicName("日期")] | |||
| public DateTime? Date { get; set; } | |||
| [LogicName("会计单位")] | |||
| public long? AccountingUnit_ID { get; set; } | |||
| [LogicName("会计单位")] | |||
| [ReferenceTo(typeof(AccountingUnit), "Name")] | |||
| [Join("AccountingUnit_ID", "ID")] | |||
| public string AccountingUnit_Name { get; set; } | |||
| [LogicName("供应商")] | |||
| public long? Supplier_ID { get; set; } | |||
| [LogicName("供应商")] | |||
| [ReferenceTo(typeof(Supplier), "Name")] | |||
| [Join("Supplier_ID", "ID")] | |||
| public string Supplier_Name { get; set; } | |||
| [LogicName("金额")] | |||
| public Money<金额>? Money { get; set; } | |||
| //[LogicName("借方")] | |||
| //public Money<金额>? JieMoney { get; set; } | |||
| //[LogicName("贷方")] | |||
| //public Money<金额>? DaiMoney { get; set; } | |||
| //[LogicName("余额")] | |||
| //public Money<金额>? LeftMoney { get; set; } | |||
| } | |||
| } | |||