| @ -0,0 +1,156 @@ | |||
| using BWP.B3SheepButcherManage.BL.Bill.PayBL; | |||
| using BWP.B3SheepButcherManage.BO; | |||
| using BWP.Web.CustomPageLayout; | |||
| using BWP.Web.Layout; | |||
| using BWP.Web.WebControls; | |||
| using Forks.EnterpriseServices.DataForm; | |||
| 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 Forks.Utils.Collections; | |||
| using BWP.Web.Utils; | |||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.Pay_ | |||
| { | |||
| class PayEdit : DepartmentWorkFlowBillEditPage<Pay, IPayBL> | |||
| { | |||
| private DFEditGrid _detailGrid; | |||
| //private DFEditGrid _advanceDetailGrid; | |||
| protected override void BuildBody(Control control) | |||
| { | |||
| base.BuildBody(control); | |||
| AddDetails(control.EAdd(new TitlePanel("付款明细", "付款明细"))); | |||
| } | |||
| protected override void BuildBasePropertiesEditor(TitlePanel titlePanel, PageLayoutSection pageLayoutSection) | |||
| { | |||
| var layoutManager = new LayoutManager("", mDFInfo, mDFContainer); | |||
| var config = new AutoLayoutConfig(); | |||
| layoutManager.Config = config; | |||
| config.Add("AccountingUnit_ID"); | |||
| config.Add("Supplier_ID"); | |||
| config.Add("Department_ID"); | |||
| config.Add("Employee_ID"); | |||
| config.Add("Date"); | |||
| config.Add("Account_ID"); | |||
| config.Add("Account_BankAccountNumber"); | |||
| config.Add("PaySupplier_ID"); | |||
| config.Add("PaySupplier_AccountNo"); | |||
| config.Add("Remark"); | |||
| pageLayoutSection.SetRequired("AccountingUnit_ID", "Department_ID"); | |||
| pageLayoutSection.ApplyLayout(layoutManager, config, mPageLayoutManager, mDFInfo); | |||
| titlePanel.Controls.Add(layoutManager.CreateLayout()); | |||
| if (layoutManager.Contains("PaySupplier_ID")) | |||
| { | |||
| var paySupplierInput = layoutManager["PaySupplier_ID"].InputControl as DFChoiceBox; | |||
| if (paySupplierInput != null) | |||
| { | |||
| var script = @" | |||
| var txtValue =parseInt(__DFContainer.getValue('PaySupplier_ID')); | |||
| simpleRestCall('/MainSystem/B3CowButcherManage/Rpcs/SupplierRpc/GetBySupplierID',[txtValue,['AccountNo']], | |||
| function(result){ | |||
| if(typeof(result.AccountNo)!='undefined') | |||
| { | |||
| __DFContainer.setValue('PaySupplier_AccountNo',result.AccountNo); | |||
| } | |||
| else | |||
| { | |||
| __DFContainer.setValue('PaySupplier_AccountNo',''); | |||
| } | |||
| },{ });"; | |||
| paySupplierInput.OnClientSelected = script; | |||
| } | |||
| } | |||
| } | |||
| private void AddDetails(TitlePanel titlePanel) | |||
| { | |||
| var vPanel = titlePanel.EAdd(new VLayoutPanel()); | |||
| AddToolsBar(vPanel); | |||
| var editor = new DFCollectionEditor<Pay_Detail>(() => Dmo.Details); | |||
| editor.AllowDeletionFunc = () => CanSave; | |||
| editor.CanDeleteFunc = detail => CanSave; | |||
| editor.IsEditableFunc = (field, detail) => CanSave; | |||
| _detailGrid = new DFEditGrid(editor); | |||
| _detailGrid.DFGridSetEnabled = false; | |||
| _detailGrid.Width = Unit.Percentage(100); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("StatPay_ID")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("StatPay_Date")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("Weigh_ID")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("WeighTime")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("StatPay_Money")); | |||
| // _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("PaidMoney")); | |||
| _detailGrid.Columns.Add(new DFEditGridColumn<DFValueLabel>("AlreadyPaidMoney")); | |||
| _detailGrid.Columns.EAdd(new DFEditGridColumn("Money")).SumMode = SumMode.Sum;//本次 | |||
| _detailGrid.Columns.Add(new DFEditGridColumn("Remark")); | |||
| mDFContainer.AddNonDFControl(_detailGrid, "$detailGrid"); | |||
| var section = mPageLayoutManager.AddSection("DetaiColumns", "明细列"); | |||
| titlePanel.SetPageLayoutSetting(mPageLayoutManager, section.Name); | |||
| section.ApplyLayout(_detailGrid, mPageLayoutManager, DFInfo.Get(typeof(Pay_Detail))); | |||
| vPanel.Add(_detailGrid); | |||
| } | |||
| private void AddToolsBar(VLayoutPanel vPanel) | |||
| { | |||
| if (!CanSave) | |||
| return; | |||
| var hPanel = vPanel.Add(new HLayoutPanel(), new VLayoutOption(HorizontalAlign.Left)); | |||
| var dialogButton = hPanel.Add(new DialogButton | |||
| { | |||
| Text = "选择结算单", | |||
| Url = "SelectStatPayDialog.aspx?" | |||
| }); | |||
| dialogButton.BeforeClientClick = "var sid=__DFContainer.getValue('Supplier_ID'); if (sid == '') { alert('先选择供应商');return false;}"; | |||
| dialogButton.ClientDynamicParamGetter = "return 'Supplier_ID=' + __DFContainer.getValue('Supplier_ID')"; | |||
| dialogButton.Click += delegate | |||
| { | |||
| _detailGrid.GetFromUI(); | |||
| var details = DialogUtil.GetCachedObj<Pay_Detail>(this); | |||
| foreach (Pay_Detail detail in details) | |||
| { | |||
| if (Dmo.Details.Any(x => x.StatPay_ID == detail.StatPay_ID)) | |||
| continue; | |||
| Dmo.Details.Add(detail); | |||
| } | |||
| _detailGrid.DataBind(); | |||
| }; | |||
| } | |||
| public override void AppToUI() | |||
| { | |||
| base.AppToUI(); | |||
| _detailGrid.DataBind(); | |||
| // mDFContainer.MakeReadonly("PaySupplier_AccountNo",true); | |||
| } | |||
| public override void GetFromUI() | |||
| { | |||
| base.GetFromUI(); | |||
| _detailGrid.GetFromUI(); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,56 @@ | |||
| using BWP.B3SheepButcherManage.BL.Bill.PayBL; | |||
| using BWP.B3SheepButcherManage.BO; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using TSingSoft.WebControls2; | |||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.Pay_ | |||
| { | |||
| class PayList : DomainBillListPage<Pay, IPayBL> | |||
| { | |||
| protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field) | |||
| { | |||
| base.AddDFBrowseGridColumn(grid, field); | |||
| if (field == "ID") | |||
| { | |||
| AddDFBrowseGridColumn(grid, "AccountingUnit_Name"); | |||
| } | |||
| if (field == "BillState") | |||
| { | |||
| AddDFBrowseGridColumn(grid, "Date"); | |||
| AddDFBrowseGridColumn(grid, "Supplier_Name"); | |||
| AddDFBrowseGridColumn(grid, "Account_Name"); | |||
| AddDFBrowseGridColumn(grid, "PaySupplier_Name"); | |||
| AddDFBrowseGridColumn(grid, "PaySupplier_AccountNo"); | |||
| } | |||
| } | |||
| protected override void AddQueryControls(VLayoutPanel vPanel) | |||
| { | |||
| vPanel.Add(CreateDefaultBillQueryControls((panel, config) => | |||
| { | |||
| config.AddAfter("Account_ID", "BillState"); | |||
| config.AddAfter("Supplier_ID", "BillState"); | |||
| config.AddAfter("Employee_ID", "BillState"); | |||
| config.AddAfter("Department_ID", "BillState"); | |||
| config.AddAfter("AccountingUnit_ID", "BillState"); | |||
| config.AddAfter("Date", "BillState"); | |||
| config.AddAfter("PaySupplier_ID", "BillState"); | |||
| })); | |||
| } | |||
| protected override void InitToolBar(HLayoutPanel toolbar) | |||
| { | |||
| base.InitToolBar(toolbar); | |||
| if (!CheckDefaultRole("数据分析", true)) | |||
| return; | |||
| var button = new TSButton("数据分析") { UseSubmitBehavior = false }; | |||
| button.OnClientClick = "preventEventDefault(event);OpenUrlInTopTab('B3SheepButcherManage/Reports/PayAnalyse.aspx','数据分析');"; | |||
| toolbar.Add(button); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,80 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| <Field name="ID"/> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3SheepButcherManage.BO.Pay, B3SheepButcherManage"/> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="ID"/> | |||
| <QBE paramName="ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Supplier_ID"/> | |||
| <QBE paramName="Supplier_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Account_ID"/> | |||
| <QBE paramName="Account_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="AccountingUnit_ID"/> | |||
| <QBE paramName="AccountingUnit_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Department_ID"/> | |||
| <QBE paramName="Department_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="PaySupplier_ID"/> | |||
| <QBE paramName="PaySupplier_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Employee_ID"/> | |||
| <QBE paramName="Employee_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="IsLocked"/> | |||
| <QBE paramName="IsLocked"/> | |||
| </EQ> | |||
| <Contains> | |||
| <Field name="Remark"/> | |||
| <QBE paramName="Remark"/> | |||
| </Contains> | |||
| <Contains> | |||
| <Field name="CreateUser_Name"/> | |||
| <QBE paramName="CreateUser_Name"/> | |||
| </Contains> | |||
| <Contains> | |||
| <Field name="CheckUser_Name"/> | |||
| <QBE paramName="CheckUser_Name"/> | |||
| </Contains> | |||
| <GreaterThanOrEqual> | |||
| <Field name="CreateTime"/> | |||
| <QBE paramName="MinCreateTime" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="CreateTime"/> | |||
| <QBE paramName="MaxCreateTime"/> | |||
| </LessThanOrEqual> | |||
| <GreaterThanOrEqual> | |||
| <Field name="Date"/> | |||
| <QBE paramName="MinDate" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="Date"/> | |||
| <QBE paramName="MaxDate"/> | |||
| </LessThanOrEqual> | |||
| <EQ> | |||
| <Field name="BillState"/> | |||
| <QBE paramName ="BillState"/> | |||
| </EQ> | |||
| </And> | |||
| </Where> | |||
| </Select> | |||
| @ -0,0 +1,20 @@ | |||
| using BWP.B3SheepButcherManage.BL.Bill.PayBL; | |||
| using BWP.B3SheepButcherManage.BO; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.Pay_ | |||
| { | |||
| class PayPrint : DomainTemplatePrintPage<Pay, IPayBL> | |||
| { | |||
| protected override void AddParameters(IDictionary<string, object> dic) | |||
| { | |||
| dic.Add("$ID", Dmo.ID); | |||
| dic.Add("$Details", Dmo.Details); | |||
| dic.Add("$DetailType", typeof(Pay_Detail)); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,83 @@ | |||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||
| using BWP.B3SheepButcherManage.BO; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using TSingSoft.WebControls2; | |||
| using TSingSoft.WebPluginFramework; | |||
| using Forks.Utils.Collections; | |||
| using Forks.Utils; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using BWP.B3Frameworks; | |||
| using BWP.Web.Utils; | |||
| namespace BWP.Web.Pages.B3SheepButcherManage.Bills.Pay_ | |||
| { | |||
| class SelectStatPayDialog : DmoMultiSelectDialog<StatPay, Pay_Detail> | |||
| { | |||
| long _supplierID; | |||
| protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form) | |||
| { | |||
| _supplierID = Convert.ToInt64(Request.QueryString["Supplier_ID"]); | |||
| base.InitForm(form); | |||
| } | |||
| protected override DQueryDom GetQueryDom() | |||
| { | |||
| var query = mQueryContainer.Build(); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Supplier_ID", _supplierID)); | |||
| query.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ("BillState", 单据状态.已审核), DQCondition.EQ("BillState", 单据状态.已完毕))); | |||
| query.Where.Conditions.Add(DQCondition.GreaterThan(DQExpression.Field("Money"), DQExpression.IfNull(DQExpression.Field("PaidMoney"), DQExpression.ConstValue(0)))); | |||
| query.Where.Conditions.Add(DQCondition.EQ("Domain_ID", DomainContext.Current.ID)); | |||
| return query; | |||
| } | |||
| protected override void CreateQueryGridColumns(DFBrowseGrid grid) | |||
| { | |||
| grid.Columns.EAdd(new DFBrowseGridColumn("ID")).HeaderText = "结算单"; | |||
| grid.Columns.EAdd(new DFBrowseGridColumn("Supplier_Name")); | |||
| grid.Columns.EAdd(new DFBrowseGridColumn("Date")).HeaderText = "结算日期"; | |||
| grid.Columns.Add(new DFBrowseGridColumn("WeightBill_ID")); | |||
| grid.Columns.Add(new DFBrowseGridColumn("WeighTime")); | |||
| grid.Columns.Add(new DFBrowseGridColumn("ActualMoney")); | |||
| grid.Columns.Add(new DFBrowseGridColumn("PaidMoney")); | |||
| grid.Columns.Add(new DFBrowseGridColumn("Remark")); | |||
| } | |||
| protected override void SetResultFromDFDataRow(Pay_Detail dmo, Forks.EnterpriseServices.DataForm.DFDataRow row) | |||
| { | |||
| dmo.StatPay_ID = (long?)row["ID"]; | |||
| dmo.Weigh_ID = (long?)row["WeightBill_ID"]; | |||
| dmo.WeighTime = (DateTime?)row["WeighTime"]; | |||
| dmo.StatPay_Date = (DateTime?)row["Date"]; | |||
| dmo.StatPay_Money = (Money<金额>?)row["ActualMoney"]; | |||
| // dmo.PaidMoney = (Money<金额>?)row["PaidMoney"]; | |||
| // dmo.Money = (dmo.StatPay_Money ?? 0) - (dmo.PaidMoney ?? 0); | |||
| dmo.AlreadyPaidMoney = (Money<金额>?)row["PaidMoney"]; | |||
| dmo.Money = (dmo.StatPay_Money ?? 0) - (dmo.AlreadyPaidMoney ?? 0); | |||
| } | |||
| protected override void CreateQuery(VLayoutPanel vPanel) | |||
| { | |||
| var tablePanel = new TableLayoutPanel(10, 1); | |||
| tablePanel.Add(0, 1, 0, 1, new SimpleLabel("过磅单号")); | |||
| tablePanel.Add(1, 2, 0, 1, mQueryContainer.Add(new DFTextBox(mDFInfo.Fields["WeightBill_ID"]), "WeightBill_ID")); | |||
| tablePanel.Add(2, 3, 0, 1, new SimpleLabel("结算单号")); | |||
| tablePanel.Add(3, 4, 0, 1, mQueryContainer.Add(new DFTextBox(mDFInfo.Fields["ID"]), "ID")); | |||
| tablePanel.Add(4, 5, 0, 1, new SimpleLabel("结算日期")); | |||
| tablePanel.Add(5, 6, 0, 1, QueryCreator.DateRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate")); | |||
| vPanel.Add(tablePanel); | |||
| base.CreateQuery(vPanel); | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,76 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| <Field name="ID"/> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3SheepButcherManage.BO.StatPay, B3SheepButcherManage"/> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="ID"/> | |||
| <QBE paramName="ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Supplier_ID"/> | |||
| <QBE paramName="Supplier_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="AccountingUnit_ID"/> | |||
| <QBE paramName="AccountingUnit_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Department_ID"/> | |||
| <QBE paramName="Department_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Employee_ID"/> | |||
| <QBE paramName="Employee_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="IsLocked"/> | |||
| <QBE paramName="IsLocked"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="WeightBill_ID"/> | |||
| <QBE paramName="WeightBill_ID"/> | |||
| </EQ> | |||
| <Contains> | |||
| <Field name="Remark"/> | |||
| <QBE paramName="Remark"/> | |||
| </Contains> | |||
| <Contains> | |||
| <Field name="CreateUser_Name"/> | |||
| <QBE paramName="CreateUser_Name"/> | |||
| </Contains> | |||
| <Contains> | |||
| <Field name="CheckUser_Name"/> | |||
| <QBE paramName="CheckUser_Name"/> | |||
| </Contains> | |||
| <GreaterThanOrEqual> | |||
| <Field name="CreateTime"/> | |||
| <QBE paramName="MinCreateTime" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="CreateTime"/> | |||
| <QBE paramName="MaxCreateTime"/> | |||
| </LessThanOrEqual> | |||
| <GreaterThanOrEqual> | |||
| <Field name="Date"/> | |||
| <QBE paramName="MinDate" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="Date"/> | |||
| <QBE paramName="MaxDate"/> | |||
| </LessThanOrEqual> | |||
| <EQ> | |||
| <Field name="BillState"/> | |||
| <QBE paramName ="BillState"/> | |||
| </EQ> | |||
| </And> | |||
| </Where> | |||
| </Select> | |||
| @ -0,0 +1,84 @@ | |||
| using BWP.B3CowButcherManage; | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3SheepButcherManage.BO; | |||
| using BWP.Web.Layout; | |||
| using BWP.Web.Utils; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using TSingSoft.WebControls2; | |||
| namespace BWP.Web.Pages.B3SheepButcherManage.Reports.PayAnalyse_ | |||
| { | |||
| class PayAnalyse : DFBrowseGridReportPage<Pay> | |||
| { | |||
| protected override string Caption | |||
| { | |||
| get { return "付款单分析"; } | |||
| } | |||
| protected override string QueryOptionsTabName | |||
| { | |||
| get | |||
| { | |||
| return "显示字段"; | |||
| } | |||
| } | |||
| protected override string AccessRoleName | |||
| { | |||
| get { return "B3SheepButcherManage.付款单.数据分析"; } | |||
| } | |||
| 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"], B3CowButcherManageConsts.DataSources.供应商)); | |||
| layout.Add("Money"); | |||
| layout.Add("Date", new SimpleLabel("付款日期"), QueryCreator.TimeRange(mDFInfo.Fields["Date"], mQueryContainer, "MinDate", "MaxDate")); | |||
| layout["Date"].NotAutoAddToContainer = true; | |||
| var config = new AutoLayoutConfig { Cols = 2 }; | |||
| config.Add("ID"); | |||
| config.Add("AccountingUnit_ID"); | |||
| config.Add("Supplier_ID"); | |||
| config.Add("Money"); | |||
| config.Add("Date"); | |||
| 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", "AccountingUnit_Name", false); | |||
| mDisplayHelper.AddOptionItem("供应商", "bill", "Supplier_Name", false); | |||
| mDisplayHelper.AddOptionItem("付款日期", "bill", "Date", false); | |||
| mDisplayHelper.AddOptionItem("付款金额", "bill", "Money", false, true); | |||
| AddQueryOption("选项", mDisplayHelper.GetAllDisplayNames(), mDisplayHelper.GetDefaultSelelectedDisplayNames()); | |||
| base.AddQueryOptions(vPanel); | |||
| } | |||
| protected override DQueryDom GetQueryDom() | |||
| { | |||
| var dom = base.GetQueryDom(); | |||
| //dom.Columns.Add(DQSelectColumn.Field("Supplier_ID")); | |||
| //dom.Columns.Add(DQSelectColumn.Field("Supplier_Name")); | |||
| var bill = dom.From.RootSource.Alias; | |||
| mDisplayHelper.AddAlias("bill", JoinAlias.Create("bill")); | |||
| //mDisplayHelper.AddAlias("bill", JoinAlias.Create("supplier")); | |||
| mDisplayHelper.AddSelectColumns(dom, (name) => OptionIsSelected("选项", name), SumColumnIndexs); | |||
| return dom; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,46 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3SheepButcherManage.BO.Pay, B3SheepButcherManage" alias="bill"/> | |||
| <!--<DmoClass class="BWP.B3ProcurementInterface.BO.Supplier, B3ProcurementInterface" alias="supplier"/> | |||
| <Condition> | |||
| <EQ> | |||
| <Field name="Supplier_ID" alias="bill"/> | |||
| <Field name="ID" alias="supplier"/> | |||
| </EQ> | |||
| </Condition>--> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="ID" alias="bill"/> | |||
| <QBE paramName="ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="AccountingUnit_ID" alias="bill"/> | |||
| <QBE paramName="AccountingUnit_ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Money" alias="bill"/> | |||
| <QBE paramName="Money"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Supplier_ID" alias="bill"/> | |||
| <QBE paramName="Supplier_ID"/> | |||
| </EQ> | |||
| <GreaterThanOrEqual> | |||
| <Field name="Date" alias="bill"/> | |||
| <QBE paramName="MinDate" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="Date" alias="bill"/> | |||
| <QBE paramName="MaxDate"/> | |||
| </LessThanOrEqual> | |||
| </And> | |||
| </Where> | |||
| </Select> | |||
| @ -0,0 +1,83 @@ | |||
| using BWP.B3Frameworks.BL; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||
| using BWP.B3SheepButcherManage.BO; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.BusinessInterfaces; | |||
| 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.WebPluginFramework; | |||
| namespace BWP.B3SheepButcherManage.BL.Bill.PayBL | |||
| { | |||
| [BusinessInterface(typeof(PayBL))] | |||
| [LogicName("羊付款单")] | |||
| public interface IPayBL : IDepartmentWorkFlowBillBL<Pay> | |||
| { } | |||
| public class PayBL : DepartmentWorkFlowBillBL<Pay>, IPayBL | |||
| { | |||
| protected override void doCheck(Pay dmo) | |||
| { | |||
| foreach (var detail in dmo.Details) | |||
| { | |||
| var notPayMoney = (detail.StatPay_Money ?? 0) - (detail.AlreadyPaidMoney ?? 0); | |||
| if ((detail.Money ?? 0) > notPayMoney) | |||
| { | |||
| throw new ApplicationException(string.Format("结算单No.{0} 本次付款金额{1}大于未付款金额{2}", detail.StatPay_ID, detail.Money, notPayMoney)); | |||
| } | |||
| else | |||
| { | |||
| detail.AlreadyPaidMoney = detail.AlreadyPaidMoney + detail.Money; | |||
| } | |||
| } | |||
| base.doCheck(dmo); | |||
| UpdateStatPayMoney(dmo); | |||
| } | |||
| protected override void doUnCheck(Pay dmo) | |||
| { | |||
| base.doUnCheck(dmo); | |||
| UpdateStatPayMoney(dmo); | |||
| } | |||
| private void UpdateStatPayMoney(Pay dmo) | |||
| { | |||
| var statPayIds = dmo.Details.Select(x => x.StatPay_ID).ToList(); | |||
| var detail = new JoinAlias(typeof(Pay_Detail)); | |||
| var bill = new JoinAlias(typeof(Pay)); | |||
| var dom = new DQueryDom(detail); | |||
| dom.From.AddJoin(JoinType.Inner, new DQDmoSource(bill), DQCondition.EQ(bill, "ID", detail, "Pay_ID")); | |||
| dom.Where.Conditions.Add(DQCondition.Or(DQCondition.EQ(bill, "BillState", 单据状态.已审核), DQCondition.EQ(bill, "BillState", 单据状态.已完毕))); | |||
| dom.Where.Conditions.EFieldInList("StatPay_ID", statPayIds); | |||
| dom.Columns.Add(DQSelectColumn.Sum(detail, "Money")); | |||
| dom.Columns.Add(DQSelectColumn.Field("StatPay_ID", detail)); | |||
| dom.Columns.Add(DQSelectColumn.Sum(detail, "AlreadyPaidMoney")); | |||
| dom.GroupBy.Expressions.Add(DQExpression.Field(detail, "StatPay_ID")); | |||
| var tupleList = dom.EExecuteList<Money<金额>?, long, Money<金额>?>(Session); | |||
| foreach (var statPayId in statPayIds) | |||
| { | |||
| var money = tupleList.Sum(x => x.Item2 == statPayId ? ((x.Item1 ?? 0).Value + (x.Item3 ?? 0).Value) : 0m); | |||
| var update = new DQUpdateDom(typeof(StatPay)); | |||
| update.Columns.Add(new DQUpdateColumn("PaidMoney", money)); | |||
| update.Columns.Add(new DQUpdateColumn("RowVersion", | |||
| DQExpression.Add(DQExpression.Field("RowVersion"), DQExpression.ConstValue(1)))); | |||
| update.Where.Conditions.Add(DQCondition.EQ("ID", statPayId)); | |||
| Session.ExecuteNonQuery(update); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,111 @@ | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3Frameworks.BO; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using BWP.B3ProcurementInterface.BO; | |||
| using BWP.B3ProcurementInterface.Utils; | |||
| using BWP.B3UnitedInfos; | |||
| using BWP.B3UnitedInfos.BO; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.DataForm; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.Utils; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| namespace BWP.B3SheepButcherManage.BO | |||
| { | |||
| [Serializable] | |||
| [DFClass] | |||
| [LogicName("羊付款单")] | |||
| [BillAccountTarget(typeof(Supplier))] | |||
| [DmoTypeID(B3FrameworksConsts.DmoTypeIDBases.B3SheepButcherManage, B3SheepButcherManageConsts.DmoTypeIDOffsets.Pay)] | |||
| public class Pay : DepartmentWorkFlowBill | |||
| { | |||
| [LogicName("供应商")] | |||
| [DFDataKind(B3ProcurementInterfaceDataSources.供应商)] | |||
| [DFExtProperty(B3FrameworksConsts.DFExtProperties.DisplayField, "Supplier_Name")] | |||
| [DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3ProcurementInterfaceDataSources.供应商全部)] | |||
| public long? Supplier_ID { get; set; } | |||
| private DateTime? mDate = DateTime.Today; | |||
| [LogicName("付款日期")] | |||
| public DateTime? Date | |||
| { | |||
| get { return mDate; } | |||
| set { mDate = value; } | |||
| } | |||
| [LogicName("付款账户")] | |||
| [DFDataKind(B3UnitedInfosConsts.DataSources.账户)] | |||
| [DFExtProperty(B3FrameworksConsts.DFExtProperties.DisplayField, "Account_Name")] | |||
| public long? Account_ID { get; set; } | |||
| [LogicName("付款金额")] | |||
| public Money<金额>? Money { get; set; } | |||
| [LogicName("付款对象")] | |||
| [DFDataKind(B3ProcurementInterfaceDataSources.供应商)] | |||
| [DFExtProperty(B3FrameworksConsts.DFExtProperties.DisplayField, "PaySupplier_Name")] | |||
| [DFExtProperty(B3FrameworksConsts.DFExtProperties.QueryDataKind, B3ProcurementInterfaceDataSources.供应商全部)] | |||
| public long? PaySupplier_ID { get; set; } | |||
| [LogicName("付款对象")] | |||
| [ReferenceTo(typeof(Supplier), "Name")] | |||
| [Join("PaySupplier_ID", "ID")] | |||
| public string PaySupplier_Name { get; set; } | |||
| [LogicName("支付账户")] | |||
| [ReferenceTo(typeof(Supplier), "AccountNo")] | |||
| [Join("PaySupplier_ID", "ID")] | |||
| public string PaySupplier_AccountNo { get; set; } | |||
| private Pay_DetailCollection mDetails = new Pay_DetailCollection(); | |||
| [OneToMany(typeof(Pay_Detail), "ID")] | |||
| [Join("ID", "Pay_ID")] | |||
| public Pay_DetailCollection Details | |||
| { | |||
| get | |||
| { | |||
| return mDetails; | |||
| } | |||
| } | |||
| #region ReferenceTo | |||
| [LogicName("供应商")] | |||
| [ReferenceTo(typeof(Supplier), "Name")] | |||
| [Join("Supplier_ID", "ID")] | |||
| public string Supplier_Name { get; set; } | |||
| [LogicName("付款账户")] | |||
| [ReferenceTo(typeof(Account), "Name")] | |||
| [Join("Account_ID", "ID")] | |||
| public string Account_Name { get; set; } | |||
| [ReferenceTo(typeof(Account), "BankAccountNumber")] | |||
| [Join("Account_ID", "ID")] | |||
| [DFPrompt("银行账号")] | |||
| public string Account_BankAccountNumber { get; set; } | |||
| #endregion | |||
| public IList<BaseDetailAccountInfo> CreateBillAccount() | |||
| { | |||
| var list = new List<BaseDetailAccountInfo>(); | |||
| var target = new BaseDetailAccountInfo(); | |||
| var dateTime = Date; | |||
| if (dateTime != null) | |||
| target.Date = dateTime.Value.Date; | |||
| //target.Money = Money ?? 0; | |||
| target.TargetID = Supplier_ID ?? 0; | |||
| target.TargetTypeID = DmoTypeIDAttribute.GetID(typeof(Supplier)); | |||
| list.Add(target); | |||
| return list; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,58 @@ | |||
| using BWP.B3Frameworks.BO; | |||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.DataDictionary; | |||
| using Forks.EnterpriseServices.DataForm; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.Utils; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| namespace BWP.B3SheepButcherManage.BO | |||
| { | |||
| [LogicName("付款明细")] | |||
| [DFClass, Serializable] | |||
| public class Pay_Detail : Base | |||
| { | |||
| [LogicName("付款单号"), DbColumn(Index = IndexType.Normal)] | |||
| public long Pay_ID { get; set; } | |||
| [LogicName("结算单")] | |||
| public long? StatPay_ID { get; set; } | |||
| [LogicName("备注")] | |||
| public string Remark { get; set; } | |||
| [LogicName("本次付款金额")] | |||
| public Money<金额>? Money { get; set; } | |||
| [LogicName("结算日期")] | |||
| [ReferenceTo(typeof(StatPay), "Date")] | |||
| [Join("StatPay_ID", "ID")] | |||
| public DateTime? StatPay_Date { get; set; } | |||
| [LogicName("过磅时间")] | |||
| [ReferenceTo(typeof(StatPay), "WeighTime")] | |||
| [Join("StatPay_ID", "ID")] | |||
| public DateTime? WeighTime { get; set; } | |||
| [LogicName("过磅单")] | |||
| [ReferenceTo(typeof(StatPay), "WeightBill_ID")] | |||
| [Join("StatPay_ID", "ID")] | |||
| public long? Weigh_ID { get; set; } | |||
| [LogicName("应付金额")] | |||
| [ReferenceTo(typeof(StatPay), "ActualMoney")] | |||
| [Join("StatPay_ID", "ID")] | |||
| public Money<金额>? StatPay_Money { get; set; } | |||
| [LogicName("已付金额")] | |||
| public Money<金额>? AlreadyPaidMoney { get; set; } | |||
| } | |||
| [Serializable] | |||
| public class Pay_DetailCollection : DmoCollection<Pay_Detail> | |||
| { } | |||
| } | |||
| @ -0,0 +1,32 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <BillReports xmlns="urn:BillReports" version="1.0" displayName="羊付款单" phyName="羊付款单"> | |||
| <Report phyName="标准格式"> | |||
| <BillReport xmlns="urn:BillReport" version="1" displayName="标准格式" > | |||
| <Bands> | |||
| <TextBand fontName="黑体" fontSize="15" align="Center">羊付款单№$Dmo.ID</TextBand> | |||
| <DFInfoBand object="$Dmo" cols="4"> | |||
| <Field name="AccountingUnit_Name" lblWidth="4"/> | |||
| <Field name="Department_Name" lblWidth="4"/> | |||
| <Field name="Employee_Name" lblWidth="4"/> | |||
| <Field name="Store_Name" lblWidth="4"/> | |||
| <Field name="Date" lblWidth="4"/> | |||
| <Field name="Remark" lblWidth="4"/> | |||
| </DFInfoBand> | |||
| <HtmlBand> | |||
| <![CDATA[<h2>付款明细</h2>]]> | |||
| </HtmlBand> | |||
| <DFListBand collection="$Details" itemType="$DetailType" enablePaging="true" > | |||
| <Field name="StatPay_ID"/> | |||
| <Field name="StatPay_Date"/> | |||
| <Field name="Weigh_ID" /> | |||
| <Field name="WeighTime" /> | |||
| <Field name="StatPay_Money" sum="true"/> | |||
| <Field name="AlreadyPaidMoney" sum="true"/> | |||
| <Field name="Money" sum="true"/> | |||
| <Field name="Remark"/> | |||
| </DFListBand> | |||
| </Bands> | |||
| </BillReport> | |||
| </Report> | |||
| </BillReports> | |||