From 0fcc730fb3fa804c6e38f6f980eb15ee0a84eb33 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期三, 08 九月 2021 13:24:15 +0800
Subject: [PATCH] 送货计划保存删除 反写提料计划 服务插件
---
src/BLL/Demo.BillView/PRD/Pro_TlPush.cs | 479 +++++++++++++++++------------------------------------------
1 files changed, 137 insertions(+), 342 deletions(-)
diff --git a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
index 3b729e8..c93b0d0 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
@@ -1,376 +1,171 @@
锘縰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 = this.Model.GetEntityDataObject(entity);//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
+ int ret = entityRows.Where(x => Convert.ToDecimal(x["FHQty"]) - Convert.ToDecimal(x["FReciveCount"]) > 0).Count();
+ if (ret == 0)
{
- Id = "SCP_ReceiveBill"
- }, "fce8b1aca2144beeb3c6655eaf78bc34");
- if (!permissionAuthResult.Passed)
- {
- string msg = ResManager.LoadKDString("娌℃湁閫佽揣閫氱煡鍗曠殑鏂板鏉冮檺", "00444293030010485", SubSystemType.SCM, new object[0]);
- base.View.ShowErrMessage(msg, "", MessageBoxType.Notice);
+ this.View.ShowErrMessage("宸插叏閮ㄧ敓鎴愰�佽揣鍗�");
return;
}
- 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)
+ 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)
{
- base.View.ShowErrMessage(ex.InnerException.Message, "", MessageBoxType.Notice);
+ 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", Convert.ToDecimal(item["FHQty"]) - Convert.ToDecimal(item["FReciveCount"])); // 渚涘簲鍟嗛�佽揣鏁伴噺锛堟彁鏂欒鍒掓暟閲� - 宸茬敓鎴愰�佽揣鍗曟暟閲忥級
+ 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);
+ }
+ 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()
+ {
+ ["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", "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, "paez_PODemandPlan", "PUR_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