diff --git a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs index 21bd1a1..b66d85a 100644 --- a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs +++ b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs @@ -32,306 +32,34 @@ namespace Pilot_KD_Parino.Sal_Order base.AfterBarItemClick(e); { - // //备货组织操作备货组织的发货出库单跨组织下推 - // if (e.BarItemKey.Equals("tbPushSalOut111", StringComparison.OrdinalIgnoreCase)) - // { - - // var FEntity = this.View.Model.DataObject; - // var id = FEntity["id"]; - // string formid = FEntity["FFormId"].ToString(); - // //var detailList = (FEntity["SAL_DELIVERYNOTICEENTRY"]); - - // //发货通知单或者发货出库单 - // string getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.T_{formid}ENTRY_LK - // WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_{formid}ENTRY WHERE FID = {id})"; - // var dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // if (dt == null || dt.Count == 0) - // { - // this.View.ShowMessage("没有上查关联的发货通知单"); - // } - // int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - // string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - // int xiaoFid = 0; - // //找到采购订单 - // for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_PUR_POORDERENTRY"; kk++) - // { - // ////发货通知单 - // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - // string tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk - // WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; - // //dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // //if (dt == null || dt.Count == 0) - // //{ - // // this.View.ShowMessage("没有上查关联的销售单"); - // //} - // ////共享的采购订单 - // //tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - // //tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - // //getSourceSql = $@"/*dialect*/ SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk - // // WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - - // if (dt == null || dt.Count == 0) - // { - // break; - // //this.View.ShowMessage("没有上查关联的跨组织的采购订单"); - - // } - // else - // { - // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - // } - - // } - // if (tablename.ToUpper() != "T_PUR_POORDERENTRY") - // { - // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_PUR_POORDERENTRY_LK - // WHERE FSBILLID= {tempFid}"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // if (dt == null || dt.Count == 0) - // { - // throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); - // } - // else - // { - // xiaoFid = tempFid; - // //tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - // //tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - - // var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList(); - // string ids = string.Join(",", FENTRYIDList); - // getSourceSql = $@"/*dialect*/ SELECT FID FROM T_PUR_POORDERENTRY WHERE FENTRYID IN({ids})"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // if (dt == null || dt.Count == 0) - // { - // throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); - // } - // else - // { - // tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); - // } - - // } - - // } - - // int stockId = 0; - // IOperationResult result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId); - - - // var sheet = result.SuccessDataEnity.FirstOrDefault(); - // string jsonsheet = JsonHelper.ToJson(sheet); - // //Logger.Error("推送采购入库单",jsonsheet,null); - // if (sheet != null) - // { - - // result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f", ref stockId); - // //sheet = result.SuccessDataEnity.FirstOrDefault(); - // //result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f"); - // } - - // //找到最开始的销售订单 - // for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid == 0; kk++) - // { - // ////发货通知单 - // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - // string tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk - // WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - - // if (dt == null || dt.Count == 0) - // { - - // this.View.ShowMessage("没有上查关联的跨组织的采购订单"); - // return; - // } - // else - // { - // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - - // } - // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - // } - // if (tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid == 0) - // { - - // throw new KDBusinessException("", "推送销售发货通知单失败,没有上查关联的跨组织的销售订单:" + tablename); - - // } - // if (xiaoFid > 0) - // tempFid = xiaoFid; - // getSourceSql = $@"/*dialect*/ SELECT FSALEORGID FROM T_SAL_ORDER WHERE fid ={tempFid}"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // string saleorgid = ""; - // if (dt != null && dt.Count > 0) - // { - // saleorgid =dt.FirstOrDefault()["FSALEORGID"].ToString(); - // } - // //如果源头销售订单是珠海派诺或者珠海兴诺的销售订单,只推送到采购入库就行了。 找到最开始的销售发货通知单 - // if(saleorgid!="100302" && saleorgid != "100303") - // { - // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_SAL_DELIVERYNOTICEENTRY_LK - // WHERE FSBILLID= {tempFid}"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // if (dt == null || dt.Count == 0) - // { - // result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId); - // sheet = result.SuccessDataEnity.FirstOrDefault(); - // tempFid = int.Parse(sheet["id"].ToString()); - // //throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); - // } - // else - // { - - // var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList(); - // string ids = string.Join(",", FENTRYIDList); - // getSourceSql = $@"/*dialect*/ SELECT FID FROM T_SAL_DELIVERYNOTICEENTRY WHERE FENTRYID IN({ids})"; - // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - // if (dt == null || dt.Count == 0) - // { - // throw new KDBusinessException("", "没有上查关联的跨组织的发货通知单:" + tablename); - // } - // else - // { - // tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); - // } - - // } - // result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", tempFid.ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId); - // } - // //result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId); - // //sheet = result.SuccessDataEnity.FirstOrDefault(); - - - // this.View.ShowMessage("跨组织下推订单完成"); - - - // } - } - - //备货组织操作销售组织的销售出库单跨组织下推 - //A的销售出库单-->A的发货通知单-->A的销售订单-->B的销售订单(分两种情况)-->B的销售发货通知单-->B的销售出库单 - if (e.BarItemKey.Equals("tbPushSalOut111", StringComparison.OrdinalIgnoreCase)) - { - - var FEntity = this.View.Model.DataObject; - var id = FEntity["id"]; - string formid = FEntity["FFormId"].ToString(); - //var detailList = (FEntity["SAL_DELIVERYNOTICEENTRY"]); - string AxiaoId = ""; - string BxiaoId = ""; - string caiGouId = ""; //采购订单ID - string ruKuId = ""; - string AfaHuoId = ""; - string BfaHuoId = ""; - //发货通知单或者发货出库单 - string getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.T_{formid}ENTRY_LK - WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_{formid}ENTRY WHERE FID = {id})"; - var dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) + //备货组织操作备货组织的发货出库单跨组织下推 + if (e.BarItemKey.Equals("tbPushSalOut111", StringComparison.OrdinalIgnoreCase)) { - this.View.ShowMessage("没有上查关联的发货通知单"); - } - int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - int xiaoFid = 0; - AfaHuoId = tempFid.ToString(); - getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM T_SAL_DELIVERYNOTICEENTRY_LK - WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_SAL_DELIVERYNOTICEENTRY WHERE FID = {id})"; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) - { - //throw new KDBusinessException("", "没有找到源头销售订单:" ); - return; - } - tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - AxiaoId = tempFid.ToString(); - //销售订单找到跨组织的销售订单 - getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK - WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' "; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - //throw new KDBusinessException("", "1:" + getSourceSql); - string fentryid = ""; - if (dt == null || dt.Count == 0) - { - //如果不是小公司的订单,是珠海派诺--珠海兴诺的订单,则按 销售订单--采购申请单--采购订单--兴诺的销售订单 逻辑找订单 - //采购申请单 - getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_PUR_ReqEntry_LK - WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' "; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + var FEntity = this.View.Model.DataObject; + var id = FEntity["id"]; + string formid = FEntity["FFormId"].ToString(); + //var detailList = (FEntity["SAL_DELIVERYNOTICEENTRY"]); + + //发货通知单或者发货出库单 + string getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.T_{formid}ENTRY_LK + WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_{formid}ENTRY WHERE FID = {id})"; + var dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); if (dt == null || dt.Count == 0) { - throw new KDBusinessException("", "没有找到跨组织的采购申请单:" + getSourceSql); - return; + this.View.ShowMessage("没有上查关联的发货通知单"); } - else - { - //采购申请单 - tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - fentryid = dt.Select(t => t["FENTRYID"]).FirstOrDefault().ToString(); - getSourceSql = $@"/*dialect*/ SELECT FID FROM T_PUR_ReqEntry WHERE FENTRYID ={fentryid}"; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); - - getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM t_PUR_POOrderEntry_LK - WHERE FSBILLID = {tempFid} and FSTABLENAME='T_PUR_ReqEntry' "; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) - { - throw new KDBusinessException("", "没有找到跨组织的采购订单:" + getSourceSql); - return; - } - else - { - //兴诺的采购订单 - tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - fentryid = dt.Select(t => t["FENTRYID"]).FirstOrDefault().ToString(); - getSourceSql = $@"/*dialect*/ SELECT FID FROM t_PUR_POOrderEntry WHERE FENTRYID ={fentryid}"; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); - caiGouId = tempFid.ToString(); - //兴诺的销售订单 - getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK - WHERE FSBILLID = {tempFid} and FSTABLENAME='t_PUR_POOrderEntry' "; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) - { - throw new KDBusinessException("", "没有找到跨组织的销售订单:" + getSourceSql); - return; - } - tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - fentryid = dt.Select(t => t["FENTRYID"]).FirstOrDefault().ToString(); - getSourceSql = $@"/*dialect*/ SELECT FID FROM T_SAL_ORDERENTRY WHERE FENTRYID ={fentryid}"; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - BxiaoId = tempFid.ToString(); - } - } - //throw new KDBusinessException("", "没有找到跨组织的销售订单:"+ getSourceSql); - - } - else - { - tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); - BxiaoId = tempFid.ToString(); + int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + int xiaoFid = 0; //找到采购订单 for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_PUR_POORDERENTRY"; kk++) { - ////发货通知单 + ////发货通知单 + tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); string tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk - WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; - + WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; //dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); //if (dt == null || dt.Count == 0) //{ @@ -343,6 +71,7 @@ namespace Pilot_KD_Parino.Sal_Order //getSourceSql = $@"/*dialect*/ SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk // WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + if (dt == null || dt.Count == 0) { break; @@ -351,20 +80,15 @@ namespace Pilot_KD_Parino.Sal_Order } else { - tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); - if (tempTable == "T_PUR_POORDERENTRY") - { - caiGouId = tempFid.ToString(); - } } } if (tablename.ToUpper() != "T_PUR_POORDERENTRY") { getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_PUR_POORDERENTRY_LK - WHERE FSBILLID= {tempFid}"; + WHERE FSBILLID= {tempFid}"; dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); if (dt == null || dt.Count == 0) { @@ -392,60 +116,341 @@ namespace Pilot_KD_Parino.Sal_Order } } - } - int stockId = 0; - IOperationResult result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", caiGouId, "7cd93c259999489c97798063f2f7bd70", ref stockId); - var sheet = result.SuccessDataEnity.FirstOrDefault(); - string jsonsheet = JsonHelper.ToJson(sheet); - //Logger.Error("推送采购入库单",jsonsheet,null); - if (sheet != null) - { + int stockId = 0; + IOperationResult result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId); - result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f", ref stockId); + + var sheet = result.SuccessDataEnity.FirstOrDefault(); + string jsonsheet = JsonHelper.ToJson(sheet); + //Logger.Error("推送采购入库单",jsonsheet,null); + if (sheet != null) + { + + result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f", ref stockId); + //sheet = result.SuccessDataEnity.FirstOrDefault(); + //result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f"); + } + + //找到最开始的销售订单 + for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid == 0; kk++) + { + ////发货通知单 + tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + string tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk + WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; + dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + + if (dt == null || dt.Count == 0) + { + + this.View.ShowMessage("没有上查关联的跨组织的采购订单"); + return; + } + else + { + tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + + } + tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + } + if (tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid == 0) + { + + throw new KDBusinessException("", "推送销售发货通知单失败,没有上查关联的跨组织的销售订单:" + tablename); + + } + if (xiaoFid > 0) + tempFid = xiaoFid; + //getSourceSql = $@"/*dialect*/ SELECT FSALEORGID FROM T_SAL_ORDER WHERE fid ={tempFid}"; + //dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + //string saleorgid = ""; + //if (dt != null && dt.Count > 0) + //{ + // saleorgid = dt.FirstOrDefault()["FSALEORGID"].ToString(); + //} + + //if (saleorgid != "100302" && saleorgid != "100303") + //{ + getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_SAL_DELIVERYNOTICEENTRY_LK + WHERE FSBILLID= {tempFid}"; + dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + if (dt == null || dt.Count == 0) + { + result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId); + sheet = result.SuccessDataEnity.FirstOrDefault(); + tempFid = int.Parse(sheet["id"].ToString()); + //throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); + } + else + { + + var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList(); + string ids = string.Join(",", FENTRYIDList); + getSourceSql = $@"/*dialect*/ SELECT FID FROM T_SAL_DELIVERYNOTICEENTRY WHERE FENTRYID IN({ids})"; + dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + if (dt == null || dt.Count == 0) + { + throw new KDBusinessException("", "没有上查关联的跨组织的发货通知单:" + tablename); + } + else + { + tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); + } + + } + result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", tempFid.ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId); + //} + //result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId); //sheet = result.SuccessDataEnity.FirstOrDefault(); - //result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f"); - } - // 找到备货组织B的发货通知单 - getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_SAL_DELIVERYNOTICEENTRY_LK - WHERE FSBILLID= {BxiaoId}"; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) - { - result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", BxiaoId, "193822715afc48aa9fa6d6beca7700ab", ref stockId); - sheet = result.SuccessDataEnity.FirstOrDefault(); - tempFid = int.Parse(sheet["id"].ToString()); - BfaHuoId = tempFid.ToString(); - //throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); - } - else - { - var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList(); - string ids = string.Join(",", FENTRYIDList); - getSourceSql = $@"/*dialect*/ SELECT FID FROM T_SAL_DELIVERYNOTICEENTRY WHERE FENTRYID IN({ids})"; - dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) - { - throw new KDBusinessException("", "没有上查关联的跨组织的发货通知单:" + tablename); - } - else - { - tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); - BfaHuoId = tempFid.ToString(); - } + this.View.ShowMessage("跨组织下推订单完成"); + } - result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", BfaHuoId, "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId); + } - //result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId); - //sheet = result.SuccessDataEnity.FirstOrDefault(); + { + + ////备货组织操作销售组织的销售出库单跨组织下推 + ////A的销售出库单-->A的发货通知单-->A的销售订单-->B的销售订单(分两种情况)-->B的销售发货通知单-->B的销售出库单 + //if (e.BarItemKey.Equals("tbPushSalOut111", StringComparison.OrdinalIgnoreCase)) + //{ + + // var FEntity = this.View.Model.DataObject; + // var id = FEntity["id"]; + // string formid = FEntity["FFormId"].ToString(); + // //var detailList = (FEntity["SAL_DELIVERYNOTICEENTRY"]); + // string AxiaoId = ""; + // string BxiaoId = ""; + // string caiGouId = ""; //采购订单ID + // string ruKuId = ""; + // string AfaHuoId = ""; + // string BfaHuoId = ""; + // //发货通知单或者发货出库单 + // string getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.T_{formid}ENTRY_LK + // WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_{formid}ENTRY WHERE FID = {id})"; + // var dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // this.View.ShowMessage("没有上查关联的发货通知单"); + // } + // int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // int xiaoFid = 0; + // AfaHuoId = tempFid.ToString(); + + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM T_SAL_DELIVERYNOTICEENTRY_LK + // WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_SAL_DELIVERYNOTICEENTRY WHERE FID = {id})"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // //throw new KDBusinessException("", "没有找到源头销售订单:" ); + // return; + // } + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // AxiaoId = tempFid.ToString(); + // //销售订单找到跨组织的销售订单 + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK + // WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' "; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // //throw new KDBusinessException("", "1:" + getSourceSql); + // string fentryid = ""; + // if (dt == null || dt.Count == 0) + // { + // //如果不是小公司的订单,是珠海派诺--珠海兴诺的订单,则按 销售订单--采购申请单--采购订单--兴诺的销售订单 逻辑找订单 + // //采购申请单 + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_PUR_ReqEntry_LK + // WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' "; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // throw new KDBusinessException("", "没有找到跨组织的采购申请单:" + getSourceSql); + // return; + // } + // else + // { + // //采购申请单 + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // fentryid = dt.Select(t => t["FENTRYID"]).FirstOrDefault().ToString(); + // getSourceSql = $@"/*dialect*/ SELECT FID FROM T_PUR_ReqEntry WHERE FENTRYID ={fentryid}"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); + + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM t_PUR_POOrderEntry_LK + // WHERE FSBILLID = {tempFid} and FSTABLENAME='T_PUR_ReqEntry' "; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // throw new KDBusinessException("", "没有找到跨组织的采购订单:" + getSourceSql); + // return; + // } + // else + // { + // //兴诺的采购订单 + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // fentryid = dt.Select(t => t["FENTRYID"]).FirstOrDefault().ToString(); + // getSourceSql = $@"/*dialect*/ SELECT FID FROM t_PUR_POOrderEntry WHERE FENTRYID ={fentryid}"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); + // caiGouId = tempFid.ToString(); + // //兴诺的销售订单 + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK + // WHERE FSBILLID = {tempFid} and FSTABLENAME='t_PUR_POOrderEntry' "; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // throw new KDBusinessException("", "没有找到跨组织的销售订单:" + getSourceSql); + // return; + // } + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // fentryid = dt.Select(t => t["FENTRYID"]).FirstOrDefault().ToString(); + // getSourceSql = $@"/*dialect*/ SELECT FID FROM T_SAL_ORDERENTRY WHERE FENTRYID ={fentryid}"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // BxiaoId = tempFid.ToString(); + // } + // } + // //throw new KDBusinessException("", "没有找到跨组织的销售订单:"+ getSourceSql); + + // } + // else + // { + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // BxiaoId = tempFid.ToString(); + // //找到采购订单 + // for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_PUR_POORDERENTRY"; kk++) + // { + // ////发货通知单 + // string tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk + // WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; + + // //dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // //if (dt == null || dt.Count == 0) + // //{ + // // this.View.ShowMessage("没有上查关联的销售单"); + // //} + // ////共享的采购订单 + // //tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // //tempTable = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // //getSourceSql = $@"/*dialect*/ SELECT FSTABLENAME,FSBILLID FROM dbo.{tempTable}_lk + // // WHERE FENTRYID IN ( SELECT FENTRYID FROM {tempTable} WHERE FID = {tempFid})"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // break; + // //this.View.ShowMessage("没有上查关联的跨组织的采购订单"); + + // } + // else + // { + + // tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + // if (tempTable == "T_PUR_POORDERENTRY") + // { + // caiGouId = tempFid.ToString(); + // } + // } + + // } + // if (tablename.ToUpper() != "T_PUR_POORDERENTRY") + // { + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_PUR_POORDERENTRY_LK + // WHERE FSBILLID= {tempFid}"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); + // } + // else + // { + // xiaoFid = tempFid; + // //tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString(); + // //tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString()); + + // var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList(); + // string ids = string.Join(",", FENTRYIDList); + // getSourceSql = $@"/*dialect*/ SELECT FID FROM T_PUR_POORDERENTRY WHERE FENTRYID IN({ids})"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); + // } + // else + // { + // tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); + // } + + // } + + // } + // } + // int stockId = 0; + // IOperationResult result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", caiGouId, "7cd93c259999489c97798063f2f7bd70", ref stockId); + + // var sheet = result.SuccessDataEnity.FirstOrDefault(); + // string jsonsheet = JsonHelper.ToJson(sheet); + // //Logger.Error("推送采购入库单",jsonsheet,null); + // if (sheet != null) + // { + + // result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f", ref stockId); + // //sheet = result.SuccessDataEnity.FirstOrDefault(); + // //result = Invoke("PUR_ReceiveBill", "STK_InStock", sheet["id"].ToString(), "a1ff32276cd9469dad3bf2494366fa4f"); + // } + + // // 找到备货组织B的发货通知单 + // getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_SAL_DELIVERYNOTICEENTRY_LK + // WHERE FSBILLID= {BxiaoId}"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", BxiaoId, "193822715afc48aa9fa6d6beca7700ab", ref stockId); + // sheet = result.SuccessDataEnity.FirstOrDefault(); + // tempFid = int.Parse(sheet["id"].ToString()); + // BfaHuoId = tempFid.ToString(); + // //throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); + // } + // else + // { + + // var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList(); + // string ids = string.Join(",", FENTRYIDList); + // getSourceSql = $@"/*dialect*/ SELECT FID FROM T_SAL_DELIVERYNOTICEENTRY WHERE FENTRYID IN({ids})"; + // dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); + // if (dt == null || dt.Count == 0) + // { + // throw new KDBusinessException("", "没有上查关联的跨组织的发货通知单:" + tablename); + // } + // else + // { + // tempFid = int.Parse(dt.FirstOrDefault()["FID"].ToString()); + // BfaHuoId = tempFid.ToString(); + // } + + // } + // result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", BfaHuoId, "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId); + + // //result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId); + // //sheet = result.SuccessDataEnity.FirstOrDefault(); - this.View.ShowMessage("跨组织下推订单完成"); + // this.View.ShowMessage("跨组织下推订单完成"); + //} + + } } diff --git a/Pilot_KD_Parino/bin/Debug/Microsoft.Dynamic.dll b/Pilot_KD_Parino/bin/Debug/Microsoft.Dynamic.dll deleted file mode 100644 index 20ae62b..0000000 Binary files a/Pilot_KD_Parino/bin/Debug/Microsoft.Dynamic.dll and /dev/null differ diff --git a/Pilot_KD_Parino/bin/Debug/Microsoft.Scripting.dll b/Pilot_KD_Parino/bin/Debug/Microsoft.Scripting.dll deleted file mode 100644 index e768906..0000000 Binary files a/Pilot_KD_Parino/bin/Debug/Microsoft.Scripting.dll and /dev/null differ diff --git a/组织间单据自动生成流程图.vsdx b/组织间单据自动生成流程图.vsdx index d65a8d3..f54b51e 100644 Binary files a/组织间单据自动生成流程图.vsdx and b/组织间单据自动生成流程图.vsdx differ