| @ -0,0 +1,169 @@ | |||||
| using BWP.B3ButcherManage.BO; | |||||
| using BWP.B3ButcherManageExport.BL; | |||||
| using BWP.B3ExportBase; | |||||
| using BWP.B3ExportBase.Utils; | |||||
| using BWP.B3Frameworks; | |||||
| using BWP.B3Frameworks.BO.MoneyTemplate; | |||||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||||
| using BWP.Web.Pages.B3ExportBase; | |||||
| 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.Web.UI.WebControls; | |||||
| using TSingSoft.WebControls2; | |||||
| namespace BWP.Web.Pages.B3ButcherManageExport.NC_.StatPayToNc_ | |||||
| { | |||||
| public class StatPayToNcList : ExportBaseList<StatPay, IStatPayToNcBL> | |||||
| { | |||||
| protected override string DoExport(List<long> idList) | |||||
| { | |||||
| if (idList.Count == 0) | |||||
| { | |||||
| throw new ApplicationException("请选择单据!"); | |||||
| } | |||||
| if (_dfcUrl.IsEmpty) | |||||
| { | |||||
| throw new ApplicationException("请选择外部系统!"); | |||||
| } | |||||
| BL.Export(idList, long.Parse(_dfcUrl.Value), _billDate.Value); | |||||
| return BIFactory.GetLastMessage(); | |||||
| } | |||||
| private ChoiceBox _dfcUrl; | |||||
| private DFDateInput _billDate; | |||||
| protected override void AddExportControl(HLayoutPanel hbox) | |||||
| { | |||||
| hbox.Add(new SimpleLabel("外部系统")); | |||||
| _dfcUrl = hbox.Add(new ChoiceBox()); | |||||
| _dfcUrl.DataKind = B3ExportBaseConsts.DataSources.外部系统; | |||||
| _dfcUrl.EnableInputArgument = true; | |||||
| _dfcUrl.SmartOrderEnabled = false; | |||||
| _dfcUrl.EnableTopItem = true; | |||||
| _dfcUrl.Width = 130; | |||||
| hbox.Add(new SimpleLabel("日期")); | |||||
| _billDate = hbox.Add(new DFDateInput()); | |||||
| _billDate.Value = DateTime.Today; | |||||
| base.AddExportControl(hbox); | |||||
| } | |||||
| private DropDownList payStateSelect; | |||||
| protected override void AddQueryControls(VLayoutPanel vPanel) | |||||
| { | |||||
| vPanel.Add(CreateDefaultBillQueryControls((panel, config) => | |||||
| { | |||||
| panel.Add("Weigh_ID", new DFTextBox(mDFInfo.Fields["Weigh_ID"])); | |||||
| panel.Add("PayState", new SimpleLabel("付款状态"), payStateSelect = new DropDownList()); | |||||
| panel["PayState"].NotAutoAddToContainer = true; | |||||
| payStateSelect.Items.Add(""); | |||||
| payStateSelect.Items.Add("已付款"); | |||||
| payStateSelect.Items.Add("未付款"); | |||||
| payStateSelect.Items.Add("部分付款"); | |||||
| config.Add("Date"); | |||||
| config.Add("AccountingUnit_ID"); | |||||
| config.Add("Department_ID"); | |||||
| config.Add("Employee_ID"); | |||||
| config.Add("Supplier_ID"); | |||||
| config.Add("Weigh_ID"); | |||||
| config.Add("PayState"); | |||||
| })); | |||||
| } | |||||
| protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field) | |||||
| { | |||||
| base.AddDFBrowseGridColumn(grid, field); | |||||
| if (field == "BillState") | |||||
| { | |||||
| AddDFBrowseGridColumn(grid, "Weigh_ID"); | |||||
| AddDFBrowseGridColumn(grid, "AccountingUnit_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Department_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Supplier_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Employee_Name"); | |||||
| AddDFBrowseGridColumn(grid, "CheckUser_Name"); | |||||
| AddDFBrowseGridColumn(grid, "Remark"); | |||||
| } | |||||
| } | |||||
| protected override DQueryDom GetQueryDom() | |||||
| { | |||||
| var dom = base.GetQueryDom(); | |||||
| dom.EAddCheckedCondition(dom.From.RootSource.Alias); | |||||
| if (payStateSelect.SelectedIndex != 0) | |||||
| { | |||||
| PayTemp.Register(dom); | |||||
| var temp = new JoinAlias(typeof(PayTemp)); | |||||
| dom.From.AddJoin(JoinType.Left, new DQDmoSource(temp), DQCondition.EQ(dom.From.RootSource.Alias, "ID", temp, "StatPayID")); | |||||
| switch (payStateSelect.SelectedIndex) | |||||
| { | |||||
| case 1: | |||||
| dom.Where.Conditions.Add(DQCondition.GreaterThanOrEqual(DQExpression.Field(temp, "Money"), DQExpression.Field("ActualMoney"))); | |||||
| break; | |||||
| case 2: | |||||
| dom.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(temp, "StatPayID"))); | |||||
| break; | |||||
| default: | |||||
| dom.Where.Conditions.Add(DQCondition.LessThan(DQExpression.Field(temp, "Money"), DQExpression.Field("ActualMoney"))); | |||||
| break; | |||||
| } | |||||
| } | |||||
| return dom; | |||||
| } | |||||
| protected override void OnLoad(EventArgs e) | |||||
| { | |||||
| base.OnLoad(e); | |||||
| if (!IsPostBack) | |||||
| { | |||||
| var tuple = ExportConfigUtil.LoadDefaultExtSystems(MethodID); | |||||
| if (tuple != null) | |||||
| { | |||||
| _dfcUrl.Value = tuple.Item1.ToString(); | |||||
| _dfcUrl.DisplayValue = tuple.Item2; | |||||
| } | |||||
| } | |||||
| } | |||||
| public override string Url | |||||
| { | |||||
| get { return "~/B3ButcherManageExport/NC_/StatPayToNc_/StatPayToNcList.aspx"; } | |||||
| } | |||||
| protected override string EditUrl | |||||
| { | |||||
| get | |||||
| { | |||||
| return "B3ButcherManage/Bills/StatPay_/StatPayEdit.aspx"; | |||||
| } | |||||
| } | |||||
| protected override string Caption | |||||
| { | |||||
| get { return "结算单导NC凭证"; } | |||||
| } | |||||
| } | |||||
| class PayTemp | |||||
| { | |||||
| public long StatPayID { get; set; } | |||||
| public Money<金额>? Money { get; set; } | |||||
| public static void Register(DQueryDom root) | |||||
| { | |||||
| var main = new JoinAlias(typeof(Pay)); | |||||
| var detail = new JoinAlias(typeof(Pay_Detail)); | |||||
| var query = new DQueryDom(detail); | |||||
| query.From.AddJoin(JoinType.Left, new DQDmoSource(main), DQCondition.EQ(main, "ID", detail, "Pay_ID")); | |||||
| query.Columns.Add(DQSelectColumn.Field("StatPay_ID")); | |||||
| query.Columns.Add(DQSelectColumn.Sum("Money")); | |||||
| query.GroupBy.Expressions.Add(DQExpression.Field("StatPay_ID")); | |||||
| query.Where.Conditions.Add(DQCondition.And(DQCondition.GreaterThanOrEqual(main, "BillState", 单据状态.已审核), DQCondition.EQ(main, "Domain_ID", DomainContext.Current.ID))); | |||||
| root.RegisterQueryTable(typeof(PayTemp), new string[] { "StatPayID", "Money" }, query); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,75 @@ | |||||
| <?xml version="1.0" encoding="utf-8" ?> | |||||
| <Select xmlns="urn:XDQuery"> | |||||
| <Columns> | |||||
| <Field name="ID"/> | |||||
| </Columns> | |||||
| <From> | |||||
| <DmoClass class="BWP.B3ButcherManage.BO.StatPay, B3ButcherManage"/> | |||||
| </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="Weigh_ID"/> | |||||
| <QBE paramName="Weigh_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,61 @@ | |||||
| using BWP.B3ButcherManage.BO; | |||||
| using BWP.B3ExportBase; | |||||
| using BWP.B3ExportBase.BL; | |||||
| using BWP.B3ExportBase.BO; | |||||
| using BWP.B3Frameworks; | |||||
| using Forks.EnterpriseServices; | |||||
| using Forks.EnterpriseServices.BusinessInterfaces; | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using TSingSoft.WebPluginFramework; | |||||
| using TSingSoft.WebPluginFramework.BIPlugins.BLEvents; | |||||
| namespace BWP.B3ButcherManageExport.BL | |||||
| { | |||||
| [BusinessInterface(typeof(StatPayToNcBL))] | |||||
| public interface IStatPayToNcBL : INcBL<StatPay> | |||||
| { | |||||
| void Export(List<long> idList, long p, DateTime? nullable); | |||||
| } | |||||
| [LogicName("结算单导NC凭证")] | |||||
| [BindToFeature("B3ButcherManageExport.0008")] | |||||
| [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport, B3ButcherManageExportConsts.ExportIDOffsets.StatPayToNc)] | |||||
| public class StatPayToNcBL : NcBL<StatPay>, IStatPayToNcBL | |||||
| { | |||||
| public readonly List<string> MinPreDetailProperties = new List<string>(); | |||||
| protected override NcUfinterface CreateUfinterface(IList<StatPay> dmos) | |||||
| { | |||||
| var scriptHelper = new PythonScriptHelper(string.Empty, Config.Script, this); | |||||
| scriptHelper.AddLocalVar("dmos", dmos); | |||||
| if (Version == "6.3") | |||||
| { | |||||
| { | |||||
| var bills = BO.NcVouchers.New(); | |||||
| scriptHelper.AddLocalVar("vouchers", bills); | |||||
| scriptHelper.Execute(); | |||||
| var i = 0; | |||||
| foreach (var bill in bills.Bills) | |||||
| { | |||||
| BillIDs.Add(i, bill.B2BillIDs); | |||||
| i++; | |||||
| } | |||||
| return bills; | |||||
| } | |||||
| } | |||||
| throw new Exception("未实现导出方法"); | |||||
| } | |||||
| public override short GetMethodID() | |||||
| { | |||||
| return B3FrameworksConsts.DmoTypeIDBases.B3ButcherManageExport + B3ButcherManageExportConsts.ExportIDOffsets.StatPayToNc; | |||||
| } | |||||
| public DateTime Date { get; set; } | |||||
| public void Export(List<long> dmoIDs, long extSystemID, DateTime? date) | |||||
| { | |||||
| Date = date ?? BLContext.Today; | |||||
| Export(dmoIDs, extSystemID); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,93 @@ | |||||
| from BWP.B3ButcherManageExport.BO import NcVoucher; | |||||
| from BWP.B3ButcherManageExport.BO import NcVoucherEntry; | |||||
| from BWP.B3ButcherManageExport.BO import Items; | |||||
| from BWP.B3ButcherManageExport.BO import Otheruserdata; | |||||
| from System import Convert; | |||||
| class BLMethodEvents(BLMethodEventsBase): | |||||
| def before(self): | |||||
| self.proxy.MinDmoProperties.Add("Date"); | |||||
| self.proxy.MinDmoProperties.Add("Supplier_Name"); | |||||
| self.proxy.MinDmoProperties.Add("AccountingUnit_ID"); | |||||
| self.proxy.MinDmoProperties.Add("AccountingUnit_Name"); | |||||
| self.proxy.MinDmoProperties.Add("Employee_Name"); | |||||
| self.proxy.MinDmoProperties.Add("RealNumber");#收购头数 | |||||
| self.proxy.MinDmoProperties.Add("RealWeight");#收购重量 | |||||
| self.proxy.MinDmoProperties.Add("RawPrice");#毛重单价 | |||||
| self.proxy.MinDmoProperties.Add("Money");#应付金额 | |||||
| self.proxy.MinDmoProperties.Add("ActualMoney");#实付金额 | |||||
| def execute(self): | |||||
| self.proxy.CheckAccountingUnit(dmos); | |||||
| voucher2 = NcVoucher(); | |||||
| for dmo in dmos: | |||||
| voucher2.B2BillIDs.Add(dmo.ID); | |||||
| voucher2.Head.Company = dmo.AccountingUnit_Name; | |||||
| if dmo.AccountingUnit_ID==5: | |||||
| voucher2.Head.VoucherType = "QHC凭证"; | |||||
| else: | |||||
| voucher2.Head.VoucherType = "记账凭证"; | |||||
| voucher2.Head.FiscalYear = self.proxy.GetDateTime(gToday,"yyyy"); | |||||
| voucher2.Head.AccountingPeriod = self.proxy.GetDateTime(gToday,"MM"); | |||||
| voucher2.Head.Date = self.proxy.GetDateTime(gToday,"yyyy-MM-dd"); | |||||
| voucher2.Head.Signature = "Y"; | |||||
| voucher2.Head.VoucherMakingSystem = "总账"; | |||||
| voucher2.Head.Reserve2 = "N"; | |||||
| voucher2.Head.Enter = gUser.Name; | |||||
| voucher2.Head.VoucherId = "0"; | |||||
| voucher2.Head.AttachmentNumber = "0"; | |||||
| vouchers.Bills.Add(voucher2); | |||||
| entryid = 0; | |||||
| num = str(dmo.RealNumber); | |||||
| weight = str(dmo.RealWeight); | |||||
| abstract = self.proxy.GetDateTime(dmo.Date,"yyyy-MM-dd")+dmo.Supplier_Name +"购买生猪"+ num + "头"+ weight +"KG"; | |||||
| for dmo in dmos: | |||||
| if dmo.AccountingUnit_ID == 1: | |||||
| entryid = entryid + 1; | |||||
| entry = NcVoucherEntry(); | |||||
| voucher2.Body.Entrys.Add(entry); | |||||
| entry.EntryId = str(entryid); | |||||
| entry.AccountCode = "原材料\生猪" ; | |||||
| entry.Abstract = abstract; | |||||
| entry.Currency = "CNY"; | |||||
| entry.ExchangeRate2 = "1" ; | |||||
| entry.PrimaryDebitAmount = str(dmo.Money); | |||||
| entry.NaturalDebitCurrency = str(dmo.Money); | |||||
| entry.DebitQuantity = weight; | |||||
| entry.UnitPrice = str(dmo.RawPrice); | |||||
| for dmo in dmos: | |||||
| if dmo.AccountingUnit_ID == 1: | |||||
| entryid = entryid + 1; | |||||
| entry = NcVoucherEntry(); | |||||
| voucher2.Body.Entrys.Add(entry); | |||||
| entry.EntryId = str(entryid); | |||||
| entry.AccountCode = "预付账款\集团外预付账款\其他预付生猪款" ; | |||||
| entry.Abstract = abstract; | |||||
| entry.Currency = "CNY"; | |||||
| entry.ExchangeRate2 = "1" ; | |||||
| entry.PrimaryCreditAmount = str(dmo.Money); | |||||
| entry.NaturalCreditCurrency = str(dmo.Money); | |||||
| item =Items(); | |||||
| item.Name = "供应商辅助核算"; | |||||
| item.Value = dmo.Supplier_Name; | |||||
| entry.Accountings.Items.Add(item); | |||||
| for dmo in dmos: | |||||
| if dmo.AccountingUnit_ID == 1: | |||||
| entryid = entryid + 1; | |||||
| entry = NcVoucherEntry(); | |||||
| voucher2.Body.Entrys.Add(entry); | |||||
| entry.EntryId = str(entryid); | |||||
| entry.AccountCode = "应付账款\集团外应付账款\应付生猪款"; | |||||
| entry.Abstract = abstract; | |||||
| entry.Currency = "CNY"; | |||||
| entry.ExchangeRate2 = "1" ; | |||||
| entry.PrimaryCreditAmount = str(dmo.ActualMoney); | |||||
| entry.NaturalCreditCurrency = str(dmo.ActualMoney); | |||||
| item =Items(); | |||||
| item.Name = "供应商辅助核算"; | |||||
| item.Value = dmo.Supplier_Name; | |||||
| entry.Accountings.Items.Add(item); | |||||