| @ -0,0 +1,28 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Web.UI; | |||
| using System.Web.UI.WebControls; | |||
| using TSingSoft.WebControls2; | |||
| namespace BWP.Web.Pages.B3_QiLianMuGe { | |||
| class Test : AppBasePage { | |||
| protected override void InitForm(System.Web.UI.HtmlControls.HtmlForm form) { | |||
| form.Controls.Add(new LiteralControl("<h1>测试</h1>")); | |||
| var vPanel = new VLayoutPanel(); | |||
| form.Controls.Add(vPanel); | |||
| var text = vPanel.Add(new DFTextBox()); | |||
| text.TextMode = TextBoxMode.MultiLine; | |||
| text.Width = 300; | |||
| text.Height = 150; | |||
| var submit = vPanel.Add(new TSButton()); | |||
| submit.Text = "测试"; | |||
| submit.Click += delegate { | |||
| // K3CloudHelper.Login(); | |||
| }; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,140 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Web.UI.WebControls; | |||
| using B3_QiLianMuGe.BL; | |||
| using BWP.B3ExportBase; | |||
| using BWP.B3ExportBase.Utils; | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3Frameworks.BO.NamedValueTemplate; | |||
| using BWP.B3Sale.BO; | |||
| using BWP.B3Sale.Utils; | |||
| using BWP.Web.Pages.B3ExportBase; | |||
| using BWP.Web.Utils; | |||
| using Forks.EnterpriseServices.BusinessInterfaces; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using Forks.EnterpriseServices.SqlDoms; | |||
| using Forks.Utils.Collections; | |||
| using TSingSoft.WebControls2; | |||
| namespace BWP.Web.Pages.B3_QiLianMuGe.ToK3Cloud | |||
| { | |||
| public class SaleOutStoreToK3CloudList : ExportBaseList<SaleOutStore, ISaleOutStoreToK3CloudBL> { | |||
| protected override string Caption { | |||
| get { return "销售出库单导金蝶云凭证"; } | |||
| } | |||
| public override string Url { | |||
| get { return "~/B3_QiLianMuGe/ToK3Cloud/SaleOutStoreToK3CloudList.aspx"; } | |||
| } | |||
| protected override string EditUrl { | |||
| get { | |||
| return "B3Sale/Bills/SaleOutStore_/SaleOutStoreEdit.aspx"; | |||
| } | |||
| } | |||
| 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) ); | |||
| 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 ChoiceBox _deliverGoodsLineID; | |||
| protected override void AddQueryControls(VLayoutPanel vPanel) { | |||
| vPanel.Add(CreateDefaultBillQueryControls((panel, config) => { | |||
| DFNamedValueInput<单据状态> billStateInput; | |||
| panel.Add("BillState", billStateInput = QueryCreator.一般单据状态(mDFInfo.Fields["BillState"])); | |||
| billStateInput.Value = 单据状态.已审核; | |||
| panel.Add("OrderDate", QueryCreator.DateRange(mDFInfo.Fields["OrderDate"], mQueryContainer, "MinOrderDate", "MaxOrderDate")); | |||
| panel.Add("LoadTime", QueryCreator.DateRange(mDFInfo.Fields["LoadTime"], mQueryContainer, "MinLoadTime", "MaxLoadTime")); | |||
| panel.Add("ArriveTime", QueryCreator.DateRange(mDFInfo.Fields["ArriveTime"], mQueryContainer, "MinArriveTime", "MaxArriveTime")); | |||
| panel.Add("Customer_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Customer_ID"], B3SaleDataSources.客户)); | |||
| panel.Add("AccountingUnit_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["AccountingUnit_ID"], B3FrameworksConsts.DataSources.授权会计单位全部)); | |||
| panel.Add("Department_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Department_ID"], B3FrameworksConsts.DataSources.授权部门全部)); | |||
| panel.Add("Employee_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Employee_ID"], B3FrameworksConsts.DataSources.授权员工全部)); | |||
| panel.Add("Store_ID", QueryCreator.DFChoiceBox(mDFInfo.Fields["Store_ID"], B3FrameworksConsts.DataSources.授权仓库全部)); | |||
| panel.Add("DeliverGoodsLine_ID", new SimpleLabel("送货线路排序"), _deliverGoodsLineID = new ChoiceBox() { DataKind = B3SaleDataSources.送货线路, Width = Unit.Empty, EnableTopItem = true, EnableInputArgument = true }); | |||
| panel["DeliverGoodsLine_ID"].NotAutoAddToContainer = true; | |||
| config.Add("OrderDate"); | |||
| config.Add("LoadTime"); | |||
| config.Add("ArriveTime"); | |||
| config.Add("Customer_ID"); | |||
| config.Add("AccountingUnit_ID"); | |||
| config.Add("Department_ID"); | |||
| config.Add("Employee_ID"); | |||
| config.Add("Store_ID"); | |||
| config.Add("DeliverGoodsLine_ID"); | |||
| config.Add("BillState"); | |||
| })); | |||
| } | |||
| protected override void AddDFBrowseGridColumn(DFBrowseGrid grid, string field) { | |||
| base.AddDFBrowseGridColumn(grid, field); | |||
| if (field == "BillState") { | |||
| AddDFBrowseGridColumn(grid, "Customer_Name"); | |||
| AddDFBrowseGridColumn(grid, "AccountingUnit_Name"); | |||
| AddDFBrowseGridColumn(grid, "Store_Name"); | |||
| AddDFBrowseGridColumn(grid, "Department_Name"); | |||
| AddDFBrowseGridColumn(grid, "Employee_Name"); | |||
| AddDFBrowseGridColumn(grid, "OrderDate"); | |||
| AddDFBrowseGridColumn(grid, "LoadTime"); | |||
| AddDFBrowseGridColumn(grid, "ArriveTime"); | |||
| AddDFBrowseGridColumn(grid, "AllUnitNum"); | |||
| mBrowseGrid.Columns.EAdd(new DFBrowseGridColumn("Money")).SumMode = SumMode.Sum; | |||
| AddDFBrowseGridColumn(grid, "DeliverGoodsLine_Name"); | |||
| } | |||
| } | |||
| protected override DQueryDom GetQueryDom() { | |||
| var dom = base.GetQueryDom(); | |||
| if (!string.IsNullOrEmpty(_deliverGoodsLineID.Value)) { | |||
| dom.OrderBy.Expressions.Clear(); | |||
| var deliverGoodsLineDetail = new JoinAlias(typeof(DeliverGoodsLine_Detail)); | |||
| dom.From.AddJoin(JoinType.Right, new DQDmoSource(deliverGoodsLineDetail), | |||
| DQCondition.And( | |||
| DQCondition.EQ(dom.From.RootSource.Alias, "Customer_ID", deliverGoodsLineDetail, "Customer_ID"), | |||
| DQCondition.EQ(deliverGoodsLineDetail, "DeliverGoodsLine_ID", _deliverGoodsLineID.Value))); | |||
| dom.OrderBy.Expressions.Add(DQOrderByExpression.Create(deliverGoodsLineDetail, "SequenceNumber", false)); | |||
| } | |||
| dom.EAddCheckedCondition(dom.From.RootSource.Alias); | |||
| 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; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,81 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <Select xmlns="urn:XDQuery"> | |||
| <Columns> | |||
| <Field name="ID"/> | |||
| </Columns> | |||
| <From> | |||
| <DmoClass class="BWP.B3Sale.BO.SaleOutStore, B3Sale"/> | |||
| </From> | |||
| <Where> | |||
| <And> | |||
| <EQ> | |||
| <Field name="ID"/> | |||
| <QBE paramName="ID"/> | |||
| </EQ> | |||
| <EQ> | |||
| <Field name="Customer_ID"/> | |||
| <QBE paramName="Customer_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="Store_ID"/> | |||
| <QBE paramName="Store_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="OrderDate"/> | |||
| <QBE paramName="MinOrderDate" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="OrderDate"/> | |||
| <QBE paramName="MaxOrderDate"/> | |||
| </LessThanOrEqual> | |||
| <GreaterThanOrEqual> | |||
| <Field name="LoadTime"/> | |||
| <QBE paramName="MinLoadTime" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="LoadTime"/> | |||
| <QBE paramName="MaxLoadTime"/> | |||
| </LessThanOrEqual> | |||
| <GreaterThanOrEqual> | |||
| <Field name="CreateTime"/> | |||
| <QBE paramName="MinCreateTime" /> | |||
| </GreaterThanOrEqual> | |||
| <LessThanOrEqual> | |||
| <Field name="CreateTime"/> | |||
| <QBE paramName="MaxCreateTime"/> | |||
| </LessThanOrEqual> | |||
| <EQ> | |||
| <Field name="BillState"/> | |||
| <QBE paramName ="BillState"/> | |||
| </EQ> | |||
| </And> | |||
| </Where> | |||
| </Select> | |||
| @ -0,0 +1,10 @@ | |||
| namespace B3_QiLianMuGe | |||
| { | |||
| public class B3QiLianMuGeConsts { | |||
| public static class ExportIDOffsets | |||
| { | |||
| public const byte SaleOutStoreToK3Cloud = 1; | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,72 @@ | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using BWP.B3ExportBase; | |||
| using BWP.B3ExportBase.BL; | |||
| using BWP.B3ExportBase.BL.K3Cloud; | |||
| using BWP.B3Frameworks; | |||
| using BWP.B3Sale.BO; | |||
| using BWP.B3UnitedInfos.BO; | |||
| using Forks.EnterpriseServices; | |||
| using Forks.EnterpriseServices.BusinessInterfaces; | |||
| using Forks.EnterpriseServices.DomainObjects2; | |||
| using Forks.EnterpriseServices.DomainObjects2.DQuery; | |||
| using TSingSoft.WebPluginFramework; | |||
| namespace B3_QiLianMuGe.BL | |||
| { | |||
| [BusinessInterface(typeof(SaleOutStoreToK3CloudBL))] | |||
| public interface ISaleOutStoreToK3CloudBL : IK3CloudVoucherBL<SaleOutStore> { | |||
| } | |||
| [LogicName("销售出库单导金蝶云凭证")] | |||
| [ExportID(B3FrameworksConsts.DmoTypeIDBases.B3_QiLianMuGe, B3QiLianMuGeConsts.ExportIDOffsets.SaleOutStoreToK3Cloud)] | |||
| public class SaleOutStoreToK3CloudBL : K3CloudVoucherBL<SaleOutStore>, ISaleOutStoreToK3CloudBL { | |||
| public override short GetMethodID() { | |||
| return B3FrameworksConsts.DmoTypeIDBases.B3_QiLianMuGe + B3QiLianMuGeConsts.ExportIDOffsets.SaleOutStoreToK3Cloud; | |||
| } | |||
| protected override Action<List<SaleOutStore>> FillDetail { | |||
| get { | |||
| return dmos => { | |||
| var dmoType = typeof(SaleOutStore_Detail); | |||
| var dom = new DQueryDom(new JoinAlias(dmoType)); | |||
| dom.Columns.Add(DQSelectColumn.Field("ID")); | |||
| foreach (string property in MinDetailProperties) { | |||
| dom.Columns.Add(DQSelectColumn.Field(property)); | |||
| } | |||
| var expressionList = new List<IDQExpression>(); | |||
| foreach (var dmo in dmos) | |||
| expressionList.Add(DQExpression.Value(dmo.ID)); | |||
| dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("SaleOutStore_ID"), | |||
| expressionList.ToArray())); | |||
| var details = new List<SaleOutStore_Detail>(); | |||
| details.Clear(); | |||
| using (IDQDataReader reader = Session.ExecuteReader(dom)) { | |||
| while (reader.Read()) { | |||
| var detail = new SaleOutStore_Detail { | |||
| ID = (long)reader[0] | |||
| }; | |||
| int i = 1; | |||
| foreach (var property in MinDetailProperties) { | |||
| dmoType.GetProperty(property).SetValue(detail, reader[i++], null); | |||
| } | |||
| details.Add(detail); | |||
| } | |||
| } | |||
| var groups = details.GroupBy(x => x.SaleOutStore_ID); | |||
| foreach (var gDetail in groups) { | |||
| var firstDmo = dmos.FirstOrDefault(x => x.ID == gDetail.Key); | |||
| if (firstDmo == null) | |||
| continue; | |||
| foreach (var billDetail in gDetail.OrderBy(x => x.ID)) { | |||
| firstDmo.Details.Add(billDetail); | |||
| } | |||
| } | |||
| }; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @ -0,0 +1,85 @@ | |||
| from BWP.B3ExportBase.BL.K3Cloud import Voucher ,VoucherEntity,FDetailid | |||
| from System.Collections.Generic import List ,Dictionary | |||
| from System import Int64 ,Object ,Convert | |||
| from BWP.B3ExportBase import B3ExportBaseConsts; | |||
| class BLMethodEvents(BLMethodEventsBase): | |||
| def before(self): | |||
| self.proxy.LoadFullDom = 0 | |||
| self.proxy.MinDmoProperties.Add("ID"); | |||
| self.proxy.MinDmoProperties.Add("Customer_ID"); | |||
| self.proxy.MinDmoProperties.Add("Customer_Name"); | |||
| self.proxy.MinDmoProperties.Add("Money"); | |||
| self.proxy.MinDmoProperties.Add("CheckTime"); | |||
| self.proxy.MinDetailProperties.Add("SaleOutStore_ID"); | |||
| self.proxy.MinDetailProperties.Add("SaleGoods_ID"); | |||
| self.proxy.MinDetailProperties.Add("UnitNum");#报价数量 | |||
| self.proxy.MinDetailProperties.Add("Price");#单价 | |||
| self.proxy.MinDetailProperties.Add("RebateMoney"); #不含税金额 | |||
| self.proxy.MinDetailProperties.Add("Money"); #金额 | |||
| def execute(self): | |||
| cusDmoType = B3ExportBaseConsts.DmoTypeID.客户; | |||
| goodsDmoType = B3ExportBaseConsts.DmoTypeID.存货; | |||
| i = 0 | |||
| for dmo in dmos: | |||
| ids = List[Int64](); | |||
| ids.Add(dmo.ID) | |||
| idsDic.Add(i,ids) | |||
| i = i + 1 | |||
| voucher = Voucher() | |||
| voucherContainer.Model.Add(voucher); | |||
| voucher.FAccountBookID.Add("FNumber", "001"); #账簿 | |||
| voucher.FVOUCHERGROUPID.Add("FNumber", "PRE001"); #凭证字 | |||
| voucher.FVOUCHERGROUPNO = "1"; #凭证号 默认 | |||
| voucher.FDocumentStatus = "Z"; | |||
| voucher.FYEAR = gToday.Year; #会计年度 | |||
| voucher.FPERIOD = gToday.Month; #期间 | |||
| #借方-------------------------------------------------------- | |||
| entry = VoucherEntity(); | |||
| entry.FEXPLANATION = "收" + dmo.Customer_Name + "货款 " + self.proxy.GetDateTime(dmo.CheckTime,"yyyy-MM-dd"); | |||
| entry.FACCOUNTID.Add("FNumber", "1122.01"); #会计科目 | |||
| entry.FCURRENCYID.Add("FNumber", "PRE001"); #币别 | |||
| entry.FEXCHANGERATETYPE.Add("FNumber", "HLTX01_SYS");#汇率类型 | |||
| entry.FEXCHANGERATE = 1.0; #汇率 | |||
| entry.FAMOUNTFOR = Convert.ToDecimal(dmo.Money) #原币金额 | |||
| entry.FDEBIT = Convert.ToDecimal(dmo.Money) #借方金额 | |||
| entry.FDetailID = FDetailid(); #核算维度 | |||
| cusNo = self.proxy.GetExtFieldByName(dmo.Customer_ID,cusDmoType ,"ExternalField1"); | |||
| entry.FDetailID.FDETAILID__FFLEX6 = Dictionary[str,Object](); | |||
| entry.FDetailID.FDETAILID__FFLEX6.Add("FNumber", cusNo); | |||
| voucher.FEntity.Add(entry); | |||
| #贷方------------------------------------------------------------ | |||
| for detail in dmo.Details: | |||
| entry2 = VoucherEntity(); | |||
| entry2.FEXPLANATION = "收" + dmo.Customer_Name + "货款 " + self.proxy.GetDateTime(dmo.CheckTime,"yyyy-MM-dd") | |||
| entry2.FACCOUNTID.Add("FNumber", "6001.01"); | |||
| entry2.FCURRENCYID.Add("FNumber", "PRE001"); | |||
| entry2.FEXCHANGERATETYPE.Add("FNumber", "HLTX01_SYS"); | |||
| entry2.FEXCHANGERATE = 1.0; | |||
| entry2.FAMOUNTFOR = Convert.ToDecimal(detail.RebateMoney) | |||
| entry2.FCREDIT = Convert.ToDecimal(detail.RebateMoney) | |||
| entry2.FPrice = Convert.ToDecimal(detail.Price) | |||
| entry2.FQty = Convert.ToDecimal( detail.UnitNum) | |||
| entry2.FUnitId.Add("FNUMBER", "kg"); #单位 | |||
| entry2.FDetailID = FDetailid(); #核算维度 | |||
| goodsNo = self.proxy.GetExtFieldByName(detail.SaleGoods_ID,goodsDmoType ,"ExternalField1"); | |||
| entry2.FDetailID.FDETAILID__FFLEX8 = Dictionary[str,Object](); | |||
| entry2.FDetailID.FDETAILID__FFLEX8.Add("FNumber", goodsNo); | |||
| voucher.FEntity.Add(entry2); | |||
| # 摘要:收【客户名】货款【审核日期】 | |||
| # 科目编号:1122.01 应收账款_应收货款 | |||
| # 核算维度:金蝶系统中客户编码/客户名称(对照) | |||
| # 借方金额:销售总金额 | |||
| # 摘要:收【客户名】货款【审核日期】 | |||
| # 科目编号:6001.01 主营业务收入_其他_冷鲜牛肉 | |||
| # 核算维度:金蝶系统中存货编码/存货名称(对照) | |||
| # 单位:千克 | |||
| # 单价:单价 | |||
| # 数量:报价数量 | |||
| # 贷方金额:金额 | |||