From cd1c62ccfd8cf9c582686b6aec02d394a9f4528e Mon Sep 17 00:00:00 2001 From: yusijie <ysj@hz-kingdee.com> Date: 星期日, 29 六月 2025 19:00:15 +0800 Subject: [PATCH] 保存送货单方法外取消事务;生成送货单前校验完善实物回滚;验证采购订单方法添加防死锁;采购订单列表分页查询;物料标准包装模块; --- WebAPI/Controllers/POInStockController.cs | 420 ++++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 308 insertions(+), 112 deletions(-) diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs index fb1547c..3e2bb42 100644 --- a/WebAPI/Controllers/POInStockController.cs +++ b/WebAPI/Controllers/POInStockController.cs @@ -68,6 +68,8 @@ try { DataSet ds = new DataSet(); + DataSet da = new DataSet(); + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; @@ -85,20 +87,35 @@ return objjson; } string HBillNo, HInnerBillNo, HDate; + string HInterID = "-1"; HBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo, true); HInnerBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("777", ref DBUtility.ClsPub.sExeReturnInfo, true);//閫佽揣鍗曞彿 HDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")); + + da = oCn.RunProcReturn("exec h_p_Xt_GetMaxBillID '" + 1103 + "'", "h_p_Xt_GetMaxBillID"); + if (da == null || da.Tables[0].Rows.Count == 0) + { + HInterID = "1"; + } + else + { + HInterID = ClsPub.isStrNull(da.Tables[0].Rows[0]["HBillNo"]); + } + + //HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo); //鍒涘缓涓存椂琛� DataTable dt = new DataTable(); //鍒涘缓琛ㄤ腑鐨勫垪 dt.Columns.Add("HBillNo", typeof(string));//娣诲姞鍒� dt.Columns.Add("HInnerBillNo", typeof(string));//娣诲姞鍒� dt.Columns.Add("HDate", typeof(string));//娣诲姞鍒� + dt.Columns.Add("HInterID", typeof(string));//娣诲姞鍒� DataRow row = dt.NewRow(); //缁欏垪璧嬪�� row["HBillNo"] = HBillNo; row["HInnerBillNo"] = HInnerBillNo; row["HDate"] = HDate; + row["HInterID"] = HInterID; //鎶婃湁鍊肩殑鍒楁坊鍔犲埌琛� dt.Rows.Add(row); //鎶婅〃娣诲姞鍒癲ataset @@ -290,6 +307,12 @@ string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string UserName = ""; + string HOpType = ""; + if (sArray.Length > 2) + { + HOpType = sArray[2].ToString(); + } + ListModels oListModels = new ListModels(); try { @@ -300,9 +323,11 @@ msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); + + /* 娣诲姞缂栬緫鍔熻兘鍚庡睆钄� string billno = lsmain[0].HBillNo; string yzsql = $"select count(*) as rows from Cg_POInStockBillMain where HBillNo = '{billno}'"; - DataTable yzdt = oCn.RunProcReturn(yzsql, "yzds").Tables[0]; + DataTable yzdt = oCn.RunProcReturn(yzsql, "yzds").Tables[0]; if (Convert.ToInt32(yzdt.Rows[0][0]) > 0) { objJsonResult.code = "0"; @@ -311,6 +336,8 @@ objJsonResult.data = 1; return objJsonResult; } + */ + //鏍规嵁鏀舵枡閫氱煡鍗曞彿鏍¢獙鏄惁宸茬敓鎴� //string jysql = $"select * from ": foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) @@ -323,7 +350,7 @@ oItem.HCurID = 1; oItem.HExRate = 1; oItem.HMainSourceInterID = oItem.HInterID; - oItem.HInterID = 0; + //oItem.HInterID = 0; //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo); if (FCusName.Contains("瀹夌憺")) //绯荤粺鍙傛暟 瀹㈡埛瀹氬埗鍖栧悕绉� 绌虹櫧涓洪�氱敤 { @@ -394,8 +421,10 @@ // } //} - //鍒ゆ柇閲囪喘璁㈠崟鐘舵�� - objJsonResult = TestPOOrder(oItemSub.HPOOrderEntryID.ToString()); + + //鍒ゆ柇閲囪喘璁㈠崟鐘舵�� + objJsonResult = TestPOOrder(oItemSub.HPOOrderEntryID.ToString()); + if (objJsonResult.code == "0") return objJsonResult; //澧炲姞鍒ゆ柇 閫佽揣鏁伴噺瓒呭嚭閲囪喘璁㈠崟鏁伴噺 @@ -427,16 +456,21 @@ //淇濆瓨 //淇濆瓨瀹屾瘯鍚庡鐞� bool bResult; - if (oBill.omodel.HInterID == 0) - { - bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); - } - else + + //oCn.BeginTran(); //寮�濮嬩簨鐗� + + if (HOpType.ToString() == "edit"/*oBill.omodel.HInterID != 0 && oBill.omodel.HInterID.ToString() != null && oBill.omodel.HInterID.ToString() != "undefined"*/) { bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } + else + { + bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); + } if (bResult) { + //oCn.Commit(); //鎻愪氦浜嬬墿 + objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "淇濆瓨鎴愬姛锛�"; @@ -446,6 +480,8 @@ } else { + //oCn.RollBack(); //鍥炴粴浜嬬墿 + objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo; @@ -455,6 +491,7 @@ } catch (Exception e) { + //oCn.RollBack(); //鍥炴粴浜嬬墿 objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString(); @@ -475,7 +512,7 @@ //閫佽揣鍗曞垪琛� public object GetPOInStockBill([FromBody] JObject msg) { - string HSupNo = msg["HSupNo"].ToString(); string sqlWhere = msg["sqlWhere"].ToString(); + string HSupIDs = msg["HSupIDs"].ToString(); string sqlWhere = msg["sqlWhere"].ToString(); try { Stopwatch sw = new Stopwatch(); @@ -485,7 +522,7 @@ SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds; //鍏朵粬杩囨护 - string sql = " Where hsupid in (select HSupID from h_v_Gy_UserSupplierList where 鐢ㄦ埛 =^^" + HSupNo.Trim() + "^^) " + sqlWhere; + string sql = " Where hsupid in (" + HSupIDs.Trim() + ")" + sqlWhere; //杞崲鐗规畩瀛楃 if (Common.SQLtoChange(sql, ref VsWhere, ref PcWhere) == false) { @@ -496,7 +533,7 @@ return objjson; } //鑾峰彇鎬昏鏁� - Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo); + //Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo); //鑾峰彇杩斿洖鏁版嵁 ds = oCn.RunProcReturn("exec H_p_SRM_POInStockBillList '" + PcWhere + "'", "H_p_SRM_POInStockBillList"); @@ -698,32 +735,37 @@ //====================================== End 閫佽揣鍗曞鏍稿墠鎺у埗 End ====================================== if (FCusName == "澶忓疂鐢靛櫒") { - sql = string.Format(@" -SELECT T3.FNAME AS FTYPENAME,M.HBILLNO,B.HINTERID,B.HENTRYID,C.FID,C.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER -,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER AS FSETTLEORGNUMBER, -E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID -,CU.FNUMBER AS FUNITNUMBER,D.F_XBKF_COMBO1,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE,D.FPURCHASERID,isnull(T4.FNUMBER,'') AS FPURCHASERNUMBER,D.F_XBKF_BASE1,isnull(T5.FNUMBER,'') AS FRECEIVEMENNUMBER -FROM CG_POINSTOCKBILLSUB B -JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID -JOIN {0}..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID -LEFT JOIN {0}..T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMATERIALID -LEFT JOIN {0}..T_BD_UNIT CU ON C.FUNITID =CU.FUNITID -JOIN {0}..T_PUR_POORDERENTRY_D CD ON C.FENTRYID = CD.FENTRYID -LEFT JOIN {0}..T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID -JOIN {0}..T_PUR_POORDERENTRY_F CR ON C.FENTRYID = CR.FENTRYID -LEFT JOIN {0}..T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID -LEFT JOIN {0}..T_PUR_POORDER D ON C.FID =D.FID -LEFT JOIN {0}..T_BAS_BILLTYPE T2 ON D.FBILLTYPEID = T2.FBILLTYPEID -LEFT JOIN {0}..T_BAS_BILLTYPE_L T3 ON T2.FBILLTYPEID = T3.FBILLTYPEID and FLOCALEID = 2052 -LEFT JOIN {0}..V_BD_BUYER T4 ON D.FPURCHASERID =T4.FID -LEFT JOIN {0}..T_HR_EMPINFO T5 ON D.F_XBKF_BASE1 = T5.FID -LEFT JOIN {0}..T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID -LEFT JOIN {0}..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID -JOIN {0}..T_PUR_POORDERFIN E ON C.FID =E.FID -LEFT JOIN {0}..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID - WHERE b.hinterid in ({1}) and M.HERPInterID = 0 -", kdTbaleName, HInterID); +// sql = string.Format(@" +//SELECT T3.FNAME AS FTYPENAME,M.HBILLNO,B.HINTERID,B.HENTRYID,C.FID,C.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER +//,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER AS FSETTLEORGNUMBER, +//E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID +//,CU.FNUMBER AS FUNITNUMBER,D.F_XBKF_COMBO1,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE,D.FPURCHASERID,isnull(T4.FNUMBER,'') AS FPURCHASERNUMBER,D.F_XBKF_BASE1,isnull(T5.FNUMBER,'') AS FRECEIVEMENNUMBER +//,C.FGiveAway AS FGiveAway +//FROM CG_POINSTOCKBILLSUB B +//JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID +//JOIN {0}.T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID +//LEFT JOIN {0}.T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMATERIALID +//LEFT JOIN {0}.T_BD_UNIT CU ON C.FUNITID =CU.FUNITID +//JOIN {0}.T_PUR_POORDERENTRY_D CD ON C.FENTRYID = CD.FENTRYID +//LEFT JOIN {0}.T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID +//JOIN {0}.T_PUR_POORDERENTRY_F CR ON C.FENTRYID = CR.FENTRYID +//LEFT JOIN {0}.T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID +//LEFT JOIN {0}.T_PUR_POORDER D ON C.FID =D.FID +//LEFT JOIN {0}.h_v_T_BAS_BILLTYPE T2 ON D.FBILLTYPEID = T2.FBILLTYPEID +//LEFT JOIN {0}.T_BAS_BILLTYPE_L T3 ON T2.FBILLTYPEID = T3.FBILLTYPEID and FLOCALEID = 2052 +//LEFT JOIN {0}.V_BD_BUYER T4 ON D.FPURCHASERID =T4.FID +//LEFT JOIN {0}.T_HR_EMPINFO T5 ON D.F_XBKF_BASE1 = T5.FID +//LEFT JOIN {0}.T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID +//LEFT JOIN {0}.T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID +//JOIN {0}.T_PUR_POORDERFIN E ON C.FID =E.FID +//LEFT JOIN {0}.T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID +// WHERE b.hinterid in ({1}) and M.HERPInterID = 0 +//", kdTbaleName, HInterID); +// dt = oCn.RunProcReturn(sql, "sltz").Tables[0]; + + sql = string.Format($"exec h_p_Cg_POInStock_GetInfoToERP '{HInterID}'"); dt = oCn.RunProcReturn(sql, "sltz").Tables[0]; + if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) @@ -781,6 +823,7 @@ FentityModel.Add("FPrice", item["FPRICE"].ToString());//鍗曚环 FentityModel.Add("FTaxPrice", item["FTAXPRICE"].ToString());//鍚◣鍗曚环 FentityModel.Add("FEntryTaxRate", item["FTAXRATE"].ToString());//绋庣巼 + FentityModel.Add("FGiveAway", item["FGiveAway"].ToString());//鏄惁璧犲搧 JArray Fentity2 = new JArray(); JObject FentityModel2 = new JObject(); @@ -1056,34 +1099,37 @@ } else { - sql = string.Format(@" -SELECT T3.FNAME AS FTYPENAME,M.HBILLNO,B.HINTERID,B.HENTRYID,C.FID,C.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER -,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER AS FSETTLEORGNUMBER, -E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID -,CU.FNUMBER AS FUNITNUMBER,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE,D.FPURCHASERID,isnull(T4.FNUMBER,'') AS FPURCHASERNUMBER -,B.HExpressNumberSub,B.HExpressSupplierSub,B.HRemark,B.HPlanArrivalDate,B.HBoxNumber,B.HBatChNo,D.FBILLTYPEID -,CU2.FNUMBER AS FPRICEUNITNUMBER -FROM CG_POINSTOCKBILLSUB B -JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID -JOIN {0}..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID -LEFT JOIN {0}..T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMATERIALID -LEFT JOIN {0}..T_BD_UNIT CU ON C.FUNITID =CU.FUNITID -JOIN {0}..T_PUR_POORDERENTRY_D CD ON C.FENTRYID = CD.FENTRYID -LEFT JOIN {0}..T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID -JOIN {0}..T_PUR_POORDERENTRY_F CR ON C.FENTRYID = CR.FENTRYID -LEFT JOIN {0}..T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID -LEFT JOIN {0}..T_PUR_POORDER D ON C.FID =D.FID -LEFT JOIN {0}..T_BAS_BILLTYPE T2 ON D.FBILLTYPEID = T2.FBILLTYPEID -LEFT JOIN {0}..T_BAS_BILLTYPE_L T3 ON T2.FBILLTYPEID = T3.FBILLTYPEID and FLOCALEID = 2052 -LEFT JOIN {0}..V_BD_BUYER T4 ON D.FPURCHASERID =T4.FID -LEFT JOIN {0}..T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID -LEFT JOIN {0}..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID -JOIN {0}..T_PUR_POORDERFIN E ON C.FID =E.FID -LEFT JOIN {0}..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID -LEFT JOIN {0}..T_PUR_POORDERENTRY_F CF ON C.FID = CF.FID AND C.FENTRYID = CF.FENTRYID -LEFT JOIN {0}..T_BD_UNIT CU2 ON CF.FPRICEUNITID =CU2.FUNITID - WHERE b.hinterid in ({1}) and M.HERPInterID = 0 -", kdTbaleName, HInterID, CustomFields); +// sql = string.Format(@" +//SELECT T3.FNAME AS FTYPENAME,M.HBILLNO,B.HINTERID,B.HENTRYID,C.FID,C.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER +//,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER AS FSETTLEORGNUMBER, +//E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID +//,CU.FNUMBER AS FUNITNUMBER,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE,D.FPURCHASERID,isnull(T4.FNUMBER,'') AS FPURCHASERNUMBER +//,B.HExpressNumberSub,B.HExpressSupplierSub,case when B.HRemark = 'CLOUD瀵煎叆' then '' else B.HRemark end HRemark,B.HPlanArrivalDate,B.HBoxNumber,B.HBatChNo,D.FBILLTYPEID +//,CU2.FNUMBER AS FPRICEUNITNUMBER +//,C.FGiveAway AS FGiveAway +//FROM CG_POINSTOCKBILLSUB B +//JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID +//JOIN {0}..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID +//LEFT JOIN {0}..T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMATERIALID +//LEFT JOIN {0}..T_BD_UNIT CU ON C.FUNITID =CU.FUNITID +//JOIN {0}..T_PUR_POORDERENTRY_D CD ON C.FENTRYID = CD.FENTRYID +//LEFT JOIN {0}..T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID +//JOIN {0}..T_PUR_POORDERENTRY_F CR ON C.FENTRYID = CR.FENTRYID +//LEFT JOIN {0}..T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID +//LEFT JOIN {0}..T_PUR_POORDER D ON C.FID =D.FID +//LEFT JOIN {0}..T_BAS_BILLTYPE T2 ON D.FBILLTYPEID = T2.FBILLTYPEID +//LEFT JOIN {0}..T_BAS_BILLTYPE_L T3 ON T2.FBILLTYPEID = T3.FBILLTYPEID and FLOCALEID = 2052 +//LEFT JOIN {0}..V_BD_BUYER T4 ON D.FPURCHASERID =T4.FID +//LEFT JOIN {0}..T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID +//LEFT JOIN {0}..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID +//JOIN {0}..T_PUR_POORDERFIN E ON C.FID =E.FID +//LEFT JOIN {0}..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID +//LEFT JOIN {0}..T_PUR_POORDERENTRY_F CF ON C.FID = CF.FID AND C.FENTRYID = CF.FENTRYID +//LEFT JOIN {0}..T_BD_UNIT CU2 ON CF.FPRICEUNITID =CU2.FUNITID +// WHERE b.hinterid in ({1}) and M.HERPInterID = 0 +//", kdTbaleName, HInterID, CustomFields); + + sql = string.Format($"exec h_p_Cg_POInStock_GetInfoToERP '{HInterID}'"); dt = oCn.RunProcReturn(sql, "sltz").Tables[0]; if (dt.Rows.Count > 0) { @@ -1131,7 +1177,7 @@ FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMATERIALNUMBER"].ToString() }); // 鐗╂枡缂栫爜 FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 鍗曚綅 FentityModel.Add("FPreDeliveryDate", DateTime.Now.ToString("yyyy-MM-dd")); //棰勮鍒拌揣鏃ユ湡 - FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FPRICEUNITNUMBER"].ToString() }); // 璁′环鍗曚綅 + FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 璁′环鍗曚綅 FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 搴撳瓨鍗曚綅 FentityModel.Add("FStockID", new JObject() { ["Fnumber"] = "BJCK-SH.01.005" }); // 搴撳瓨鍗曚綅 FentityModel.Add("FActReceiveQty", Convert.ToDecimal(item["HQTY"])); // 渚涘簲鍟嗛�佽揣鏁伴噺锛堟彁鏂欒鍒掓暟閲� - 宸茬敓鎴愰�佽揣鍗曟暟閲忥級 @@ -1151,9 +1197,16 @@ FentityModel.Add("F_bsv_Text1", item["HExpressSupplierSub"].ToString());//鐗╂祦鍗曚綅 (鐟炵惇) FentityModel.Add("F_bsv_Text2", item["HExpressNumberSub"].ToString());//鐗╂祦鍗曞彿 (鐟炵惇) - FentityModel.Add("FDescription", item["HRemark"].ToString());//琛ㄤ綋澶囨敞 (鐟炵惇) + FentityModel.Add("FDescription", item["HRemark"].ToString());//琛ㄤ綋鎻忚堪 (鐟炵惇) + + if (FCusName == "娣诲悍绉戞妧") + { + FentityModel.Add("F_RXSD_TEXT_QTR", item["HPOOREntryRemark"].ToString());//琛ㄤ綋澶囨敞 + } + FentityModel.Add("F_bsv_dhrq", item["HPlanArrivalDate"].ToString());//鍒拌揣鏃ユ湡 (鐟炵惇) FentityModel.Add("F_bsv_xh", item["HBoxNumber"].ToString());//绠卞彿 (鐟炵惇) + FentityModel.Add("FGiveAway", item["FGiveAway"].ToString());//鏄惁璧犲搧 JArray Fentity2 = new JArray(); JObject FentityModel2 = new JObject(); @@ -1307,6 +1360,43 @@ objjson.data = HinterID; return objjson; } + + [Route("DeAuditPOInStockBill")] + [HttpGet] + public object DeAuditPOInStockBill(string HInterID,string HBillNo, string CurUserName) + { + json objjson = new json(); + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + + //==================================== Begin 鍙嶅鏍搁�佽揣鍗� Begin ==================================== + DataSet ds; + + ds = oCn.RunProcReturn("exec h_p_SRM_Cg_POInStockBill_DeAudit " + HInterID + ",'" + HBillNo + "','" + CurUserName + "'", "h_p_SRM_Cg_POInStockBill_DeAudit"); + if (ds == null) + { + objjson.code = "0"; + objjson.count = 0; + objjson.Message = "鍙嶅鏍稿墠鍒ゆ柇澶辫触锛佹棤鏁版嵁杩斿洖"; + objjson.data = null; + return objjson; + } + if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") + { + objjson.code = "0"; + objjson.count = 0; + objjson.Message = "鍙嶅鏍稿け璐ワ紒" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemarkBack"]); + objjson.data = null; + return objjson; + } + //====================================== End 鍙嶅鏍搁�佽揣鍗� End ====================================== + + objjson.code = "1"; + objjson.count = 1; + objjson.Message = "鎿嶄綔鎴愬姛"; + objjson.data = ""; + return objjson; + } + public int GetHinterIDByBillNo(string HBillNo, string type) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); @@ -1331,7 +1421,7 @@ //鑾峰彇瀹㈡埛鍚嶇О string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); //澶忓疂闇�瑕佸厛鍦ㄩ噾铦跺垹闄ゆ敹鏂欓�氱煡鍗曞悗鎵嶈兘鍦ㄤ緵搴斿晢鍗忓悓骞冲彴鍒犻櫎閫佽揣鍗� - if (FCusName == "澶忓疂鐢靛櫒") + if (FCusName == "澶忓疂鐢靛櫒" || FCusName == "娣诲悍绉戞妧") { string sqlBeforeDel = $"exec h_p_SRM_POInStockBeforeDelCtrl " + HInterID; @@ -1530,8 +1620,11 @@ /// <returns></returns> public object TestSaverPOInStock(string ids, string entryids) { - List<string> mylist = new List<string>(ids.Split(','));//.Distinct() - List<string> entryList = new List<string>(entryids.Split(','));//.Distinct() + //List<string> mylist = new List<string>(ids.Split(','));//.Distinct() + //List<string> entryList = new List<string>(entryids.Split(','));//.Distinct() + + List<string> mylist = new List<string>(ids.Split(',').Distinct()); + List<string> entryList = new List<string>(entryids.Split(',').Distinct()); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); if (FCusName == "澶忓疂鐢靛櫒" && mylist.Count > 1) @@ -1551,15 +1644,15 @@ objJsonResult = TestPOOrder(entryids); if (objJsonResult.code == "0") return objJsonResult; - - if (mylist.Count != entryList.Count) - { - objJsonResult.code = "0"; - objJsonResult.count = 0; - objJsonResult.Message = "涓诲唴鐮佷笌瀛愬唴鐮佹暟閲忎笉涓�鑷达紒"; - objJsonResult.data = null; - return objJsonResult; - } + + //if (mylist.Count != entryList.Count) + //{ + // objJsonResult.code = "0"; + // objJsonResult.count = 0; + // objJsonResult.Message = "涓诲唴鐮佷笌瀛愬唴鐮佹暟閲忎笉涓�鑷达紒"; + // objJsonResult.data = null; + // return objJsonResult; + //} for (int i = 0;i < mylist.Count;i++) { //閲囪喘璁㈠崟涓嬫帹鐢熸垚閫佽揣鍗曞墠鎺у埗 @@ -1588,14 +1681,22 @@ } //鍒ゆ柇鏈叧鑱旀暟閲忔槸鍚︿负0 - //瀹夌憺锛欰IS20220914133941 鐟炰笌鐞細AIS20220308151944 鏈湴锛欰IS20210811135644 澶忓疂锛欰IS20211130140219 鍑礉锛欰IS20210820164804 娣诲悍锛欰IS20240809105013 - DataSet ds = oCn.RunProcReturn($"select T1.hqty-T1.hrelationqty+q.FMRBQTY as hqty,q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺,T1.hrelationqty as 宸插彂璐ф暟閲�,T1.hqty as 璁㈠崟鏁伴噺,鍗曟嵁鍙�,鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList t1 left join AIS20240809105013..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID where hentryid in ({string.Join(", ", entryList)})", "H_v_SRM_POOrderBillList"); + //瀹夌憺锛欰IS20220914133941 鐟炰笌鐞細AIS20220308151944 鏈湴锛欰IS20210811135644 澶忓疂锛歴rv_lnk.AIS20211130140219.dbo. 鍑礉锛欰IS20210820164804 娣诲悍锛欰IS20240809105013 + //DataSet ds = oCn.RunProcReturn($"select T1.hqty-T1.hrelationqty+q.FMRBQTY as hqty,q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺,T1.hrelationqty as 宸插彂璐ф暟閲�,T1.hqty as 璁㈠崟鏁伴噺,鍗曟嵁鍙�,鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList t1 left join AIS20210811135644..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID where hentryid in ({string.Join(", ", entryList)})", "H_v_SRM_POOrderBillList"); + + var kdTbaleName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DataBaseName"); + + string sql2 = string.Format(@"select T1.hqty - T1.hrelationqty + q.FMRBQTY as hqty, q.FRemainReceiveQty as 鍓╀綑鏀舵枡鏁伴噺, T1.hrelationqty as 宸插彂璐ф暟閲�, T1.hqty as 璁㈠崟鏁伴噺, 鍗曟嵁鍙�, 鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList_JY t1 left join {0}.T_PUR_POORDERENTRY_R q with(nolock) on q.FENTRYID = t1.HEntryID where hentryid in ({1})", kdTbaleName, string.Join(", ", entryList)); + + DataSet ds = oCn.RunProcReturn(sql2, "H_v_SRM_POOrderBillList"); + DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { DataRow[] dr = dt.Select("hqty <=" + 0); if (dr.Count() > 0) { + oCn.RollBack();//鍥炴粴浜嬪姟 objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"璇锋鏌ユ暟鎹紝鍗曟嵁鍙凤細{dr[0]["鍗曟嵁鍙�"]},鐗╂枡缂栫爜锛歿dr[0]["鐗╂枡缂栫爜"]},鍙互鍙戣揣鏁伴噺涓�0锛屽凡鍏ㄩ儴鐢熸垚閫佽揣鍗曪紒,璁㈠崟鏁伴噺锛歿Convert.ToDouble(dr[0]["璁㈠崟鏁伴噺"]).ToString("f2")},宸插彂璐ф暟閲忥細{Convert.ToDouble(dr[0]["宸插彂璐ф暟閲�"]).ToString("f2")},鍓╀綑鏀舵枡鏁伴噺锛歿Convert.ToDouble(dr[0]["鍓╀綑鏀舵枡鏁伴噺"]).ToString("f2")}"; @@ -1629,20 +1730,39 @@ /// <returns></returns> public JsonResult TestPOOrder(string entryids) { - SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { + //鑾峰彇绯荤粺鍙傛暟--瀹㈡埛鍚嶇О + string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); var kdTbaleName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DataBaseName"); + string sql = ""; //楠岃瘉閲戣澏閲囪喘璁㈠崟鏄惁瀛樺湪 - string sql = string.Format(@" -select M.HBillNo,B.HMaterID,E.HNumber,E.HName -FROM Cg_POOrderBillSub B -JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID -JOIN Gy_Material E ON B.HMaterID = E.HItemID -LEFT JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID -WHERE ISNULL(C.FENTRYID,0) = 0 -AND B.HEntryID in ({0})" - , entryids, kdTbaleName); + if (FCusName == "澶忓疂鐢靛櫒") + { + sql = string.Format(@" + select M.HBillNo,B.HMaterID,E.HNumber,E.HName + FROM Cg_POOrderBillSub B with(nolock) + JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID + JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID + LEFT JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID + WHERE ISNULL(C.FENTRYID,0) = 0 + AND B.HEntryID in ({0})" + , entryids, kdTbaleName); + } + else + { + sql = string.Format(@" + select M.HBillNo,B.HMaterID,E.HNumber,E.HName + FROM Cg_POOrderBillSub B with(nolock) + JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID + JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID + LEFT JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID + WHERE ISNULL(C.FENTRYID,0) = 0 + AND B.HEntryID in ({0})" + , entryids, kdTbaleName); + } + DataSet ds = oCn.RunProcReturn(sql, "temp"); if (ds.Tables[0].Rows.Count > 0) { @@ -1653,18 +1773,37 @@ return objJsonResult; } + //閲囪喘璁㈠崟涓嬫帹鐢熸垚閫佽揣鍗� 鏃跺�� 鍒ゆ柇鏄惁鏈夌敓鎴愰噰璐鍗曞彉鏇村崟 濡傛灉鏈変笖鍙樻洿鍗曠姸鎬佷笉涓哄凡瀹℃牳 闄愬埗涓嬫帹 - sql = string.Format(@" -select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO -FROM Cg_POOrderBillSub B -JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID -JOIN Gy_Material E ON B.HMaterID = E.HItemID -JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID -LEFT join {1}..T_PUR_POCHANGEENTRY D ON C.FENTRYID = D.FOFENTRYID -LEFT join {1}..T_PUR_POCHANGE F ON D.FID = F.FID -where b.HEntryID in ({0}) -and F.FDOCUMENTSTATUS <> 'C'" - , entryids, kdTbaleName); + if (FCusName == "澶忓疂鐢靛櫒") + { + sql = string.Format(@" + select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO + FROM Cg_POOrderBillSub B with(nolock) + JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID + JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID + JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID + LEFT join {1}.T_PUR_POCHANGEENTRY D with(nolock) ON C.FENTRYID = D.FOFENTRYID + LEFT join {1}.T_PUR_POCHANGE F with(nolock) ON D.FID = F.FID + where b.HEntryID in ({0}) + and F.FDOCUMENTSTATUS <> 'C'" + , entryids, kdTbaleName); + } + else + { + sql = string.Format(@" + select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO + FROM Cg_POOrderBillSub B with(nolock) + JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID + JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID + JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID + LEFT join {1}..T_PUR_POCHANGEENTRY D with(nolock) ON C.FENTRYID = D.FOFENTRYID + LEFT join {1}..T_PUR_POCHANGE F with(nolock) ON D.FID = F.FID + where b.HEntryID in ({0}) + and F.FDOCUMENTSTATUS <> 'C'" + , entryids, kdTbaleName); + } + ds = oCn.RunProcReturn(sql, "temp"); if (ds.Tables[0].Rows.Count > 0) { @@ -1675,17 +1814,35 @@ return objJsonResult; } + //閲囪喘璁㈠崟涓嬫帹鐢熸垚閫佽揣鍗� 鏃跺�� 鍒ゆ柇鏄惁鏈夌敓鎴愰噰璐鍗曟柊鍙樻洿鍗� 濡傛灉鏈変笖鍙樻洿鍗曠姸鎬佷笉涓哄凡瀹℃牳 闄愬埗涓嬫帹 - sql = string.Format(@" -select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO -FROM Cg_POOrderBillSub B -JOIN Cg_POOrderBillMAIN M ON B.HINTERID = M.HINTERID -JOIN Gy_Material E ON B.HMaterID = E.HItemID -JOIN {1}..T_PUR_POORDERENTRY C ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID -LEFT join {1}..t_PUR_XPOOrderENTRY D ON C.FENTRYID = D.FPKIDX -LEFT join {1}..t_PUR_XPOOrder F ON D.FID = F.FID -where F.FDOCUMENTSTATUS <> 'C' and b.HEntryID in ({0}) " - , entryids, kdTbaleName); + if (FCusName == "澶忓疂鐢靛櫒") + { + sql = string.Format(@" + select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO + FROM Cg_POOrderBillSub B with(nolock) + JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID + JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID + JOIN {1}.T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID + LEFT join {1}.t_PUR_XPOOrderENTRY D with(nolock) ON C.FENTRYID = D.FPKIDX + LEFT join {1}.t_PUR_XPOOrder F with(nolock) ON D.FID = F.FID + where F.FDOCUMENTSTATUS <> 'C' and b.HEntryID in ({0}) " + , entryids, kdTbaleName); + } + else + { + sql = string.Format(@" + select M.HBillNo,B.HMaterID,E.HNumber,E.HName,F.FBILLNO + FROM Cg_POOrderBillSub B with(nolock) + JOIN Cg_POOrderBillMAIN M with(nolock) ON B.HINTERID = M.HINTERID + JOIN Gy_Material E with(nolock) ON B.HMaterID = E.HItemID + JOIN {1}..T_PUR_POORDERENTRY C with(nolock) ON B.HInterID = C.FID AND B.HEntryID = C.FENTRYID + LEFT join {1}..t_PUR_XPOOrderENTRY D with(nolock) ON C.FENTRYID = D.FPKIDX + LEFT join {1}..t_PUR_XPOOrder F with(nolock) ON D.FID = F.FID + where F.FDOCUMENTSTATUS <> 'C' and b.HEntryID in ({0}) " + , entryids, kdTbaleName); + } + ds = oCn.RunProcReturn(sql, "temp"); if (ds.Tables[0].Rows.Count > 0) { @@ -1777,6 +1934,45 @@ } } + #region 閫佽揣鍗曠紪杈戣幏鍙栧崟鎹暟鎹� + [Route("Cg_POInStockBill/cx")] + [HttpGet] + public object Cg_POInStockBill_cx(long HInterID) + { + try + { + //鏌ヨ涓昏〃 + DataSet ds; + SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); + + ds = oCn.RunProcReturn("select * from h_v_SRM_POInStockBillEdit where hmainid =" + HInterID, "h_v_SRM_POInStockBillEdit"); + if (ds == null || ds.Tables[0].Rows.Count == 0) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "false锛佹病鏈夎繑鍥為�佽揣鍗曚俊鎭紝璇锋牳瀵归�佽揣鍗曟槸鍚﹀瓨鍦�"; + objJsonResult.data = null; + return objJsonResult; + } + else + { + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = "Sucess锛�"; + objJsonResult.data = ds.Tables[0]; + return objJsonResult; + } + } + catch (Exception e) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "鑾峰彇閫佽揣鍗曚俊鎭紓甯�" + e.ToString(); + objJsonResult.data = null; + return objJsonResult; + } + } + #endregion } } \ No newline at end of file -- Gitblit v1.9.1