From 26e7644be352af722ea055d084b2e4a65efb382f Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期日, 28 二月 2021 10:08:05 +0800 Subject: [PATCH] 报表过滤框 --- src/BLL/Demo.BillView/PRD/Pro_TlPush.cs | 493 ++++++++++++++++-------------------------------------- 1 files changed, 145 insertions(+), 348 deletions(-) diff --git a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs index 142f471..feac37a 100644 --- a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs +++ b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs @@ -1,380 +1,177 @@ 锘縰sing System; -using System.Collections.Generic; -using System.Collections.ObjectModel; using System.ComponentModel; -using System.Data; -using System.Linq; -using System.Text; -using Demo.Model.Model; -using Kingdee.BOS; -using Kingdee.BOS.Core.Attachment; using Kingdee.BOS.Core.Bill; using Kingdee.BOS.Core.Bill.PlugIn; -using Kingdee.BOS.Core.Bill.PlugIn.Args; -using Kingdee.BOS.Core.CommonFilter; using Kingdee.BOS.Core.DynamicForm; -using Kingdee.BOS.Core.DynamicForm.DiffCompare; -using Kingdee.BOS.Core.DynamicForm.Operation; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; -using Kingdee.BOS.Core.List; using Kingdee.BOS.Core.Metadata; -using Kingdee.BOS.Core.Metadata.BarElement; -using Kingdee.BOS.Core.Metadata.ConvertElement; -using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs; -using Kingdee.BOS.Core.Metadata.FormElement; -using Kingdee.BOS.Core.Metadata.QueryElement; -using Kingdee.BOS.Core.Msg; -using Kingdee.BOS.Core.Permission; -using Kingdee.BOS.Log; -using Kingdee.BOS.Msg; -using Kingdee.BOS.Orm; +using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; -using Kingdee.BOS.Orm.Metadata.DataEntity; -using Kingdee.BOS.Resource; -using Kingdee.BOS.ServiceHelper; -using Kingdee.BOS.Util; -using Kingdee.K3.SCM.Business; -using Kingdee.K3.SCM.Core.SCP; -using Kingdee.K3.SCM.ServiceHelper; +using Newtonsoft.Json.Linq; +using ZD.Cloud.Logger; +using ZD.Cloud.WebApi; namespace Demo.BillView.PRD { - [Description("鎻愭枡涓嬫帹閫佽揣閫氱煡鍗�")] [Kingdee.BOS.Util.HotUpdate] public class Pro_TlPush : AbstractBillPlugIn { - private string InstockEntryTableNameAs; - private string ReturnEntryTableNameAs; - private string PoChangeEntryTableNameAs; + CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); public override void BarItemClick(BarItemClickEventArgs e) { - string a; - if ((a = e.BarItemKey.ToUpperInvariant()) != null) + try { - if (a == "TBPUSH") + string a; + if ((a = e.BarItemKey.ToUpperInvariant()) != null) { - try + if (a == "TBPUSH") { - PermissionAuthResult permissionAuthResult = PermissionServiceHelper.FuncPermissionAuth(base.Context, new BusinessObject + // 鑾峰彇鐖跺崟鎹綋 + Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑 + //DynamicObjectCollection entityRows = entity.DynamicProperty.GetValue(this.Model.DataObject) as DynamicObjectCollection;//鑾峰彇鐖跺崟鎹綋琛岄泦鍚� + DynamicObjectCollection entityRows = this.Model.GetEntityDataObject(entity);//鑾峰彇鐖跺崟鎹綋琛岄泦鍚� + // 1鍜�2鍧囧彲 + // 鍙栧綋鍓嶉〉闈㈠瓙鍗曟嵁浣� + //Entity subEntity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑 + //DynamicObjectCollection rows = this.Model.GetEntityDataObject(subEntity);//鑾峰緱瀛愬崟鎹綋琛岄泦鍚� + //鏋勫缓 model 涓昏〃 + JObject model = new JObject(); + model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SLD01_SYS" }); //鍗曟嵁绫诲瀷 + model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //閫氱煡鏃ユ湡 + model.Add("FStockOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); // 鏀舵枡缁勭粐 + model.Add("FPurOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); //閲囪喘缁勭粐 + model.Add("FSupplierId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSupplierID") as DynamicObject)?["Number"].ToString() ?? "" }); //渚涘簲鍟� + model.Add("FOwnerTypeIdHead", "BD_OwnerOrg");// 璐т富绫诲瀷 + model.Add("FOwnerIdHead", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" });//璐т富 + + + //model.Add("FPurchaserId", new JObject() { ["Fnumber"] = "" }); //閲囪喘鍛� + //model.Add("FReceiverId", new JObject() { ["Fnumber"] = "" }); //鏀舵枡鍛� + //model.Add("FSupplyAddress", ""); //渚涜揣鏂瑰湴鍧� + //model.Add("FConfirmerId", new JObject() { ["FUserID"] = "" }); // 纭浜� + //model.Add("FConfirmDate", "1900-01-01"); //纭鏃ユ湡 + //model.Add("FSupplyId", new JObject() { ["Fnumber"] = "" }); // 渚涜揣鏂� + //model.Add("FChargeId", new JObject() { ["Fnumber"] = "" }); // 鏀舵鏂� + //model.Add("FSettleId", new JObject() { ["Fnumber"] = "" }); // 缁撶畻鏂� + //model.Add("FIsInsideBill", "false"); // 澶栭儴鍗曟嵁 + //model.Add("FScanBox", "false"); // 搴忓垪鍙蜂笂浼� + + //瀛愯〃 鏁版嵁妯″瀷 + JArray Fentity = new JArray(); + foreach (var item in entityRows) { - Id = "SCP_ReceiveBill" - }, "fce8b1aca2144beeb3c6655eaf78bc34"); - if (!permissionAuthResult.Passed) - { - string msg = ResManager.LoadKDString("娌℃湁閫佽揣閫氱煡鍗曠殑鏂板鏉冮檺", "00444293030010485", SubSystemType.SCM, new object[0]); - base.View.ShowErrMessage(msg, "", MessageBoxType.Notice); - return; + JObject FentityModel = new JObject(); + FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = (item["FHMaterID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 鐗╂枡缂栫爜 + FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 鍗曚綅 + FentityModel.Add("FPreDeliveryDate", this.Model.GetValue("FHDate").ToString()); // 棰勮鍒拌揣鏃ユ湡 + FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 璁′环鍗曚綅 + FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 搴撳瓨鍗曚綅 + FentityModel.Add("FActReceiveQty", item["FHQty"].ToString()); // 渚涘簲鍟嗛�佽揣鏁伴噺 + FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");// 璐т富绫诲瀷 + FentityModel.Add("FOwnerID", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" });//璐т富 + FentityModel.Add("FSrcId", item["FHPOOrderInterID"].ToString());// 婧愬崟鍐呯爜 + FentityModel.Add("FSRCFORMID", "PUR_PurchaseOrder");// 婧愬崟绫诲瀷 + FentityModel.Add("FSrcBillNo", item["FHPOOrderBillNo"].ToString());// 婧愬崟鍗曞彿 + FentityModel.Add("FSRCENTRYID", item["FHPOOrderEntryID"].ToString());// 婧愬崟鍒嗗綍鍐呯爜 + FentityModel.Add("FORDERBILLNO", item["FHPOOrderBillNo"].ToString());// 婧愬崟鍗曞彿 + FentityModel.Add("FPOORDERENTRYID", item["FHPOOrderEntryID"].ToString());// 婧愬崟鍒嗗綍鍐呯爜 + FentityModel.Add("FTLId", this.View.Model.DataObject["Id"].ToString());// 鎻愭枡婧愬崟鍐呯爜 + FentityModel.Add("FTLentryId", item["Id"].ToString());// 鎻愭枡婧愬崟鍒嗗綍鍐呯爜 + FentityModel.Add("FTLOrderNo", this.Model.GetValue("FBillNo").ToString());// 鎻愭枡婧愬崟鍒嗗綍鍐呯爜 + + JArray Fentity2 = new JArray(); + JObject FentityModel2 = new JObject(); + FentityModel2.Add("FDetailEntity_Link_FRULEID", "a8c6b6e5-a8c0-4fc1-8592-6b76c2136cf9"); + FentityModel2.Add("FDetailEntity_Link_FSTableName", "t_PUR_POOrderEntry"); + FentityModel2.Add("FDetailEntity_Link_FSBillId", item["FHPOOrderInterID"].ToString()); + FentityModel2.Add("FDetailEntity_Link_FSId", item["FHPOOrderEntryID"].ToString()); + Fentity2.Add(FentityModel2); + FentityModel.Add("FDetailEntity_Link", Fentity2); + //鍗曟嵁杞崲鍏宠仈鍏崇郴 + //FentityModel.Add("FAuxPropId", new JObject() { }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FConfirmDeliQty", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FConfirmDeliDate", "1900-01-01"); // 鐗╂枡缂栫爜 + //FentityModel.Add("FConfirmInfo", ""); // 鐗╂枡缂栫爜 + //FentityModel.Add("FDescription", ""); // 鐗╂枡缂栫爜 + //FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FLot", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FSupplierLot", ""); // 鐗╂枡缂栫爜 + //FentityModel.Add("FPrice", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FTaxPrice", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FDiscountRate", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FEntryTaxRate", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FStockBaseQty", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FStockQty", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FTaxCombination", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FPriceBaseQty", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FStockInMaxQty", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FBaseStockInMaxQty", 0); // 鐗╂枡缂栫爜 + //FentityModel.Add("FCheckInComing", "false"); // 鐗╂枡缂栫爜 + //FentityModel.Add("FStockID", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FStockLocId", new JObject() { }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FStockStatusId", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜 + //FentityModel.Add("FProduceDate", "1900-01-01"); // 鐗╂枡缂栫爜 + //FentityModel.Add("FExpiryDate", "1900-01-01"); // 鐗╂枡缂栫爜 + + Fentity.Add(FentityModel); } - DynamicObjectCollection source = this.Model.DataObject["FEntity"] as DynamicObjectCollection; - string[] selEntryIds = (from p in source - select Convert.ToString(p["id"])).ToArray<string>(); - InvokePushToRec(base.View, selEntryIds); - return; - } - catch (Exception ex) - { - if (ex.InnerException != null) + model.Add("FDetailEntity", Fentity); //鏄庣粏淇℃伅 + + JObject _FentityModel = new JObject(); + _FentityModel.Add("FSettleOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); // 缁撶畻缁勭粐 + _FentityModel.Add("FSettleCurrId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSettleCurrId") as DynamicObject)?["Number"].ToString() ?? "" }); // 缁撶畻甯佸埆 + _FentityModel.Add("FPricePoint", 0); // 瀹氫环鏃剁偣 + //FPricePoint + model.Add("FinanceEntity ", _FentityModel);//璐㈠姟淇℃伅 + + //model.Add("FinanceEntity ", new JObject() { + //"FSettleOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }, + //"FSettleCurrId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSettleCurrId") as DynamicObject)?["Number"].ToString() ?? "" } + //}); + + JObject jsonRoot = new JObject() { - base.View.ShowErrMessage(ex.InnerException.Message, "", MessageBoxType.Notice); + ["Creator"] = "", + ["NeedUpDateFields"] = new JArray(), + ["NeedReturnFields"] = new JArray(), + ["IsDeleteEntry"] = "false", + ["SubSystemId"] = "", + ["IsVerifyBaseDataField"] = "false", + //["IsAutoSubmitAndAudit"] = true,//鑷姩璋冪敤鎻愪氦鍜屽鏍稿姛鑳� + ["Model"] = model + }; + + var result = cloudClient.Save("PUR_ReceiveBill", jsonRoot.ToString()); + JObject saveObj = JObject.Parse(result); + string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); + if (saveIsSuc == "TRUE") + { + // 鎵撳紑鍗曟嵁缁存姢鐣岄潰锛氫互鎵撳紑閿�鍞鍗�100001涓轰緥 + // using Kingdee.BOS.Core.Bill; + string pageId = Guid.NewGuid().ToString(); + BillShowParameter showParameter = new BillShowParameter(); + showParameter.FormId = "SCP_ReceiveBill"; + showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage; + showParameter.PageId = pageId; + showParameter.Status = OperationStatus.EDIT; + // 浼犲叆闇�瑕佷慨鏀圭殑閿�鍞鍗曞唴鐮侊紝婕旂ず浠g爜鐩存帴鍥哄畾鍐欐涓�100001 + showParameter.PKey = saveObj["Result"]["Id"].ToString(); + this.View.ShowForm(showParameter); } else { - base.View.ShowErrMessage(ex.Message, "", MessageBoxType.Notice); - } - return; - } - } - long num = Convert.ToInt64(this.Model.DataObject["id"]); - string arg = Convert.ToString(this.Model.GetValue("fbillno")); - ScpBillTrackInfo scpBillTrackInfo = new ScpBillTrackInfo(); - scpBillTrackInfo.IsUpTrack = false; - scpBillTrackInfo.BillName = ResManager.LoadKDString("渚涘簲鍟嗗崗鍚岄噰璐鍗�", "00444293030009441", SubSystemType.SCM, new object[0]); - TrackItem trackItem = new TrackItem(); - trackItem.FormId = "SCP_ReceiveBill"; - trackItem.FormName = ResManager.LoadKDString("閫佽揣閫氱煡鍗�", "00444293030009436", SubSystemType.SCM, new object[0]); - trackItem.Filter = string.Format(" FSRCFORMID='PUR_PurchaseOrder' AND FSRCID={0} ", num); - scpBillTrackInfo.TrackItems.Add(trackItem); - TrackItem trackItem2 = new TrackItem(); - trackItem2.FormId = "SCP_MRAPP"; - trackItem2.FormName = ResManager.LoadKDString("閫�鏂欓�氱煡鍗�", "00444293030010278", SubSystemType.SCM, new object[0]); - trackItem2.Filter = string.Format(" FSRCBILLTYPEID='PUR_PurchaseOrder' and FSRCBILLNO = '{0}' ", arg); - if (string.IsNullOrWhiteSpace(this.InstockEntryTableNameAs)) - { - FormMetadata formMetadata = (FormMetadata)MetaDataServiceHelper.Load(base.Context, "SCP_InStock", true); - SelectField selectField = formMetadata.BusinessInfo.GetQueryInfo().GetSelectField("FMATERIALID"); - this.InstockEntryTableNameAs = selectField.FullFieldName.Substring(0, selectField.FullFieldName.IndexOf('.')); - } - if (string.IsNullOrWhiteSpace(this.ReturnEntryTableNameAs)) - { - FormMetadata formMetadata2 = (FormMetadata)MetaDataServiceHelper.Load(base.Context, "SCP_MRB", true); - SelectField selectField2 = formMetadata2.BusinessInfo.GetQueryInfo().GetSelectField("FMATERIALID"); - this.ReturnEntryTableNameAs = selectField2.FullFieldName.Substring(0, selectField2.FullFieldName.IndexOf('.')); - } - if (string.IsNullOrWhiteSpace(this.PoChangeEntryTableNameAs)) - { - FormMetadata formMetadata3 = (FormMetadata)MetaDataServiceHelper.Load(base.Context, "SCP_POChange", true); - SelectField selectField3 = formMetadata3.BusinessInfo.GetQueryInfo().GetSelectField("FMATERIALID"); - this.PoChangeEntryTableNameAs = selectField3.FullFieldName.Substring(0, selectField3.FullFieldName.IndexOf('.')); - } - TrackItem trackItem3 = new TrackItem(); - trackItem3.FormId = "SCP_InStock"; - trackItem3.FormName = ResManager.LoadKDString("閲囪喘鍏ュ簱鍗�", "00444293030010276", SubSystemType.SCM, new object[0]); - TrackItem trackItem4 = new TrackItem(); - trackItem4.FormId = "SCP_MRB"; - trackItem4.FormName = ResManager.LoadKDString("閲囪喘閫�鏂欏崟", "00444293030010277", SubSystemType.SCM, new object[0]); - TrackItem trackItem5 = new TrackItem(); - trackItem5.FormId = "SCP_POChange"; - trackItem5.FormName = ResManager.LoadKDString("閲囪喘璁㈠崟鍙樻洿鍗�", "00444293030010132", SubSystemType.SCM, new object[0]); - List<long> list = new List<long>(); - list.Add(-1L); - List<long> list2 = new List<long>(); - list2.Add(-1L); - List<long> list3 = new List<long>(); - list3.Add(-1L); - string item = Convert.ToString(base.View.Model.DataObject["id"]); - List<string> list4 = new List<string> - { - item - }; - string[] trackIds = list4.ToArray(); - List<long> linkBillEntryIds = PurchaseNewServiceHelper.GetLinkBillEntryIds(base.Context, "T_STK_INSTOCKENTRY_lk", "t_PUR_POOrderEntry", trackIds, null, true); - List<long> linkBillEntryIds2 = PurchaseNewServiceHelper.GetLinkBillEntryIds(base.Context, "T_PUR_MRBENTRY_lk", "t_PUR_POOrderEntry", trackIds, null, true); - List<long> linkBillEntryIds3 = PurchaseNewServiceHelper.GetLinkBillEntryIds(base.Context, "T_PUR_POChangeEntry_LK", "t_PUR_POOrderEntry", trackIds, null, true); - trackItem3.Filter = string.Format(" {1}.fentryid in ({0}) ", string.Join<long>(",", linkBillEntryIds), this.InstockEntryTableNameAs); - trackItem4.Filter = string.Format(" {1}.fentryid in ({0}) ", string.Join<long>(",", linkBillEntryIds2), this.ReturnEntryTableNameAs); - trackItem5.Filter = string.Format(" {1}.fentryid in ({0}) ", string.Join<long>(",", linkBillEntryIds3), this.PoChangeEntryTableNameAs); - scpBillTrackInfo.TrackItems.Add(trackItem2); - scpBillTrackInfo.TrackItems.Add(trackItem3); - scpBillTrackInfo.TrackItems.Add(trackItem4); - scpBillTrackInfo.TrackItems.Add(trackItem5); - //base.View.ShowForm(scpBillTrackInfo); - - View.ShowForm(new DynamicFormShowParameter - { - Height = 500, - Width = 1000, - FormId = "SCP_ScpBillTracker", - SyncCallBackAction = true, - ParentPageId = View.PageId, - PageId = SequentialGuid.NewGuid().ToString(), - CustomComplexParams = - { - { - "ScpBillTrackInfo", - scpBillTrackInfo - } - } - }); - return; - } - } - - public static void InvokePushToRec(IDynamicFormView formView, string[] selEntryIds) - { - if (CheckPoHasPushRec(formView.Context, selEntryIds)) - { - formView.ShowWarnningMessage(ResManager.LoadKDString("閲囪喘璁㈠崟鏈夋殏瀛樼殑鍏宠仈閫佽揣鍗曟嵁锛屽啀娆$敓鎴愪細閫犳垚鍗曟嵁閲嶅涓嬫帹锛屾槸鍚︾户缁敓鎴愰�佽揣閫氱煡鍗曪紵", "00444293030037168", SubSystemType.SCM, new object[0]), "", MessageBoxOptions.YesNoCancel, delegate (MessageBoxResult selRst) - { - if (MessageBoxResult.Yes == selRst) - { - InnerInvokePushToRec(formView, selEntryIds); - } - }, MessageBoxType.Advise); - return; - } - InnerInvokePushToRec(formView, selEntryIds); - } - - public static bool CheckPoHasPushRec(Context ctx, string[] billEntryIds) - { - string strSql = string.Format("select 1 from T_PUR_RECEIVE TH\r\nINNER JOIN T_PUR_RECEIVEENTRY TE ON TE.FID=TH.FID\r\nINNER JOIN T_PUR_RECEIVEENTRY_LK TELK ON TE.FENTRYID=TELK.FENTRYID\r\ninner join (select /*+ cardinality(b1 {0})*/FID from TABLE(fn_StrSplit(@FID,',',1)) b1) b on TELK.FSID=b.fid \r\nwhere TH.FDOCUMENTSTATUS='Z' ", billEntryIds.Length); - int num = DBServiceHelper.ExecuteScalar<int>(ctx, strSql, 0, new List<SqlParam> - { - new SqlParam("@FID", KDDbType.udt_inttable, billEntryIds) - }.ToArray()); - return num == 1; - } - - public static void InnerInvokePushToRec(IDynamicFormView formView, string[] selEntryIds) - { - DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter(); - dynamicFormShowParameter.FormId = "SCP_PushParamFrom"; - dynamicFormShowParameter.ParentPageId = formView.PageId; - dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Modal; - //dynamicFormShowParameter.CustomComplexParams.Add("SrcFormId", "paez_PODemandPlan"); - //dynamicFormShowParameter.CustomComplexParams.Add("TargetFormId", "SCP_ReceiveBill"); - dynamicFormShowParameter.CustomComplexParams.Add("SrcFormId", "PUR_PurchaseOrder"); - dynamicFormShowParameter.CustomComplexParams.Add("TargetFormId", "PUR_ReceiveBill"); - - formView.ShowForm(dynamicFormShowParameter, delegate (FormResult results) - { - if (results != null && results.ReturnData != null) - { - DynamicObject dynamicObject = results.ReturnData as DynamicObject; - string CbConvertRule = Convert.ToString(dynamicObject["CbConvertRule"]); - List<ConvertRuleElement> convertRules = ConvertServiceHelper.GetConvertRules(formView.Context, "PUR_PurchaseOrder", "PUR_ReceiveBill"); - //List<ConvertRuleElement> convertRules = ConvertServiceHelper.GetConvertRules(formView.Context, "paez_PODemandPlan", "SCP_ReceiveBill"); - ConvertRuleElement rule = convertRules.FirstOrDefault((ConvertRuleElement t) => t.Id == CbConvertRule); - PushPurOrderToRec(formView, selEntryIds, rule); - } - }); - } - - public static void PushPurOrderToRec(IDynamicFormView formView, string[] billEntryIds, ConvertRuleElement rule) - { - ConvertPolicyElement convertPolicyElement = rule.Policies[6]; - Collection<BillTypeMapElement> billTypeMaps = ((BillTypeMapPolicyElement)convertPolicyElement).BillTypeMaps; - Dictionary<string, string> dictionary = new Dictionary<string, string>(); - foreach (BillTypeMapElement billTypeMapElement in billTypeMaps) - { - if (!dictionary.ContainsKey(billTypeMapElement.SourceBillTypeId)) - { - dictionary.Add(billTypeMapElement.SourceBillTypeId, billTypeMapElement.TargetBillTypeId); - } - } - List<ScpOrderPushInfo> list = new List<ScpOrderPushInfo>(); - string strSQL = string.Format(" select tr.FentryID, t.fbilltypeid,ts.FMASTERID as fsupmasterid,t.fbillNO,TR.FID AS FBILLID \r\n from Cg_PODemandPlanBillMain t\r\n inner join T_BD_SUPPLIER ts on ts.FSUPPLIERID=t.FSUPPLIERID\r\n inner join Cg_PODemandPlanBillSub TR ON TR.FID=T.FID \r\n inner join (select /*+ cardinality(b {0})*/ fid from table(fn_StrSplit(@FID, ',',1)) b) tb on TR.fentryid=tb.fid \r\n ", billEntryIds.Length); - List<SqlParam> list2 = new List<SqlParam> - { - new SqlParam("@FID", KDDbType.udt_inttable, billEntryIds) - }; - DynamicObjectCollection dynamicObjectCollection = DBServiceHelper.ExecuteDynamicObject(formView.Context, strSQL, null, null, CommandType.Text, list2.ToArray()); - if (dynamicObjectCollection == null || dynamicObjectCollection.Count == 0) - { - throw new KDException("", ResManager.LoadKDString("鍙楁簮鍗曟墍閫夊崟鎹被鍨嬮檺鍒讹紝涓嶅厑璁镐笅鎺ㄧ洰鏍囧崟锛�", "00444293030009439", SubSystemType.SCM, new object[0])); - } - long supplierMasterIdByUserId = SupplierServiceHelper.GetSupplierMasterIdByUserId(formView.Context, formView.Context.UserId); - string format = ResManager.LoadKDString("鎮ㄦ病鏈夋潈闄愭搷浣滃崟鎹畕0}", "00444293030009639", SubSystemType.SCM, new object[0]); - foreach (DynamicObject dynamicObject in dynamicObjectCollection) - { - if (supplierMasterIdByUserId != Convert.ToInt64(dynamicObject["fsupmasterid"])) - { - throw new KDException("", string.Format(format, Convert.ToString(dynamicObject["fbillNO"]))); - } - list.Add(new ScpOrderPushInfo - { - EntryId = Convert.ToString(dynamicObject["FentryID"]), - BillId = Convert.ToString(dynamicObject["FBILLID"]), - BilltypeId = Convert.ToString(dynamicObject["fbilltypeid"]) - }); - } - IEnumerable<IGrouping<string, ScpOrderPushInfo>> enumerable = from g in list - group g by g.BilltypeId; - List<DynamicObject> list3 = new List<DynamicObject>(); - StringBuilder stringBuilder = new StringBuilder(); - foreach (IGrouping<string, ScpOrderPushInfo> grouping in enumerable) - { - string key = grouping.Key; - List<ListSelectedRow> list4 = new List<ListSelectedRow>(); - int num = 0; - foreach (ScpOrderPushInfo scpOrderPushInfo in grouping) - { - list4.Add(new ListSelectedRow(scpOrderPushInfo.BillId, scpOrderPushInfo.EntryId, num++, "paez_PODemandPlan") - { - EntryEntityKey = "FEntity" - }); - } - ListSelectedRow[] selectedRows = list4.ToArray(); - PushArgs pushArgs = new PushArgs(rule, selectedRows); - if (dictionary.ContainsKey(key)) - { - pushArgs.TargetBillTypeId = dictionary[key]; - } - try - { - ConvertOperationResult convertOperationResult = ConvertServiceHelper.Push(formView.Context, pushArgs, false); - list3.AddRange(from p in convertOperationResult.TargetDataEntities - select p.DataEntity); - } - catch (Exception ex) - { - stringBuilder.AppendLine(ex.Message); - } - } - if (list3.Count == 0) - { - if (stringBuilder.Length > 0) - { - formView.ShowErrMessage(stringBuilder.ToString(), "", MessageBoxType.Notice); - return; - } - formView.ShowErrMessage(ResManager.LoadKDString("娌℃湁鍙笅鎺ㄦ暟鎹紒", "00444293030009360", SubSystemType.SCM, new object[0]), "", MessageBoxType.Notice); - return; - } - else - { - DynamicObject[] array = list3.ToArray(); - Dictionary<string, object> dictionary2 = new Dictionary<string, object>(); - dictionary2["CodeTime"] = 0; - dictionary2["UpdateMaxNum"] = 1; - FormMetadata formMetadata = (FormMetadata)MetaDataServiceHelper.Load(formView.Context, "PUR_ReceiveBill", true); - List<BillNoInfo> billNo = BusinessDataServiceHelper.GetBillNo(formView.Context, formMetadata.BusinessInfo, array, dictionary2, ""); - for (int i = 0; i < array.Count<DynamicObject>(); i++) - { - array[i]["BillNo"] = billNo[i].BillNo; - array[i]["IsInsideBill"] = true; - } - OperateOption option = OperateOption.Create(); - IOperationResult operationResult = BusinessDataServiceHelper.Draft(formView.Context, formMetadata.BusinessInfo, array, option, ""); - if (!operationResult.IsSuccess) - { - formView.ShowMessage(ResManager.LoadKDString("涓嬫帹澶辫触锛�", "00444293030009440", SubSystemType.SCM, new object[0]), MessageBoxType.Notice); - return; - } - if (operationResult.SuccessDataEnity.Count<DynamicObject>() == 1) - { - DynamicObject dynamicObject2 = operationResult.SuccessDataEnity.FirstOrDefault<DynamicObject>(); - formView.ShowForm(new BillShowParameter - { - FormId = "SCP_ReceiveBill", - PKey = Convert.ToString(dynamicObject2["id"]), - Status = OperationStatus.EDIT, - OpenStyle = - { - ShowType = ShowType.MainNewTabPage - }, - CustomComplexParams = - { - { - "FromScpOrderPushRecs", - true - } - } - }); - return; - } - DynamicObjectType dynamicObjectType = new DynamicObjectType("ScpRecBillDatas", null, null, DataEntityTypeFlag.Class, new object[0]); - dynamicObjectType.RegisterSimpleProperty("BillNo", typeof(string), null, false, new object[0]); - dynamicObjectType.RegisterSimpleProperty("DocumentStatus", typeof(string), null, false, new object[0]); - dynamicObjectType.RegisterSimpleProperty("BillId", typeof(long), null, false, new object[0]); - DynamicObjectCollection dynamicObjectCollection2 = new DynamicObjectCollection(dynamicObjectType, null); - foreach (DynamicObject dynamicObject3 in operationResult.SuccessDataEnity) - { - DynamicObject dynamicObject4 = new DynamicObject(dynamicObjectType); - dynamicObject4["BillNo"] = dynamicObject3["BillNo"]; - dynamicObject4["DocumentStatus"] = dynamicObject3["DocumentStatus"]; - dynamicObject4["BillId"] = dynamicObject3["id"]; - dynamicObjectCollection2.Add(dynamicObject4); - } - formView.ShowForm(new DynamicFormShowParameter - { - FormId = "SCP_GENRECRSTFORM", - PageId = SequentialGuid.NewGuid().ToString(), - OpenStyle = - { - ShowType = ShowType.MainNewTabPage - }, - CustomComplexParams = - { - { - "ScpRecBillDatas", - dynamicObjectCollection2 + LogHelper.Error(jsonRoot.ToString()); + this.View.ShowErrMessage(jsonRoot.ToString()); } } - }); - return; + } + } + catch (Exception ex) + { + throw ex; } } } } + -- Gitblit v1.9.1