From df44ef7acaf24ff63662bf8a9b7e8fdd1a065366 Mon Sep 17 00:00:00 2001
From: yangle <admin@YINMOU>
Date: 星期三, 18 十月 2023 13:21:45 +0800
Subject: [PATCH] 1

---
 WebAPI/Controllers/POInStockController.cs |   95 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 83 insertions(+), 12 deletions(-)

diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs
index 897ddbf..d95f29e 100644
--- a/WebAPI/Controllers/POInStockController.cs
+++ b/WebAPI/Controllers/POInStockController.cs
@@ -10,6 +10,7 @@
 using System.Linq;
 using System.Net;
 using System.Net.Http;
+using System.Text.RegularExpressions;
 using System.Web;
 using System.Web.Http;
 using WebAPI.Code;
@@ -324,7 +325,7 @@
                     oItem.HMainSourceInterID = oItem.HInterID;
                     oItem.HInterID = 0;
                     //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
-                    if (FCusName == "瀹夌憺鍖荤枟") //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
+                    if (FCusName.Contains("瀹夌憺")) //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
                     {
                         if (DBUtility.ClsPub.isStrNull(oItem.HDHDate) == "")
                         {
@@ -358,8 +359,43 @@
                 int i = 0;
                 foreach (Model.ClsCg_POInStockBillSub oItemSub in ls)
                 {
-                    //鍒ゆ柇閲囪喘璁㈠崟鐘舵�� 
-                    objJsonResult = TestPOOrder(oItemSub.HPOOrderEntryID.ToString());
+                    if (FCusName.Contains("鍑礉濂堢壒")) //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
+                    {
+                        if (oItemSub.HBatChNo.Length < 8 || Regex.IsMatch(oItemSub.HBatChNo, @"^[0-9]+$") == false)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛� 鐢熶骇鏃ユ湡D/C 鏍煎紡閿欒鏃犳硶淇濆瓨锛佹纭牸寮忎负8浣嶆暟鐨勭函鏁板瓧鏃ユ湡";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                       
+                        //鑾峰彇骞存湀鏃�
+                        string year = oItemSub.HBatChNo.Substring(0, 4);
+                        string month = oItemSub.HBatChNo.Substring(4, 2);
+                        string day = oItemSub.HBatChNo.Substring(6, 2);
+
+                        //楠岃瘉鍚堟硶鎬�
+                        if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛� 鐢熶骇鏃ユ湡D/C 鏃ユ湡涓嶅悎娉曟棤娉曚繚瀛橈紒姝g‘鏍煎紡涓�8浣嶆暟鐨勭函鏁板瓧鏃ユ湡";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛� 鐢熶骇鏃ユ湡D/C 鏃ユ湡涓嶅悎娉曟棤娉曚繚瀛橈紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+
+                }
+                //鍒ゆ柇閲囪喘璁㈠崟鐘舵�� 
+                objJsonResult = TestPOOrder(oItemSub.HPOOrderEntryID.ToString());
                     if (objJsonResult.code == "0")
                         return objJsonResult;
                     //澧炲姞鍒ゆ柇 閫佽揣鏁伴噺瓒呭嚭閲囪喘璁㈠崟鏁伴噺
@@ -372,7 +408,7 @@
                         objJsonResult.data = 1;
                         return objJsonResult;
                     }
-                    if (oItemSub.HQty > oItemSub.HRQty)
+                    if (Convert.ToDecimal(oItemSub.HQty) > Convert.ToDecimal(oItemSub.HRQty))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
@@ -382,7 +418,7 @@
                     }
                     oItemSub.HEntryID = i;
                     oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
-                    oItemSub.HRemark = "";
+                    //oItemSub.HRemark = "";
                     oItemSub.HCloseMan = "";
                     oItemSub.HCloseType = false;
                     oBill.DetailColl.Add(oItemSub);
@@ -426,6 +462,7 @@
                 return objJsonResult;
             }
         }
+
         /// <summary>
         /// 閫佽揣鍗曞垪琛�
         /// </summary>
@@ -773,11 +810,13 @@
                     }
                     else
                     {
-                        sql = string.Format(@"
+                          //鐟炵惇瀛楁
+                          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
 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
@@ -827,6 +866,24 @@
                                     fTypeName = "SLD04_SYS";
                                     ywTypeName = "ZCCG";
                                 }
+                                if (FCusName == "鍑礉濂堢壒")
+                                {
+                                    //1鍘�
+                                    if (dr["FBILLTYPEID"].ToString() == "60cfe60fa16dd8")
+                                    {
+                                        fTypeName = "SLD08_SYS";
+                                    }
+                                    //2鍘�
+                                    if (dr["FBILLTYPEID"].ToString() == "60cfe634a1708f")
+                                    {
+                                        fTypeName = "SLD09_SYS";
+                                    }
+                                    //3鍘�
+                                    if (dr["FBILLTYPEID"].ToString() == "83d822ca3e374b4ab01e5dd46a0062bd")
+                                    {
+                                        fTypeName = "SLD01_SYS";
+                                    }
+                                }
                                 model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = fTypeName }); //鍗曟嵁绫诲瀷
                                 model.Add("FBusinessType", ywTypeName); //涓氬姟绫诲瀷
                                 model.Add("FBILLNO", dr["HBillNo"].ToString()); //鍗曟嵁缂栧彿
@@ -860,6 +917,13 @@
                                     FentityModel.Add("FPrice", item["FPRICE"].ToString());//鍗曚环
                                     FentityModel.Add("FTaxPrice", item["FTAXPRICE"].ToString());//鍚◣鍗曚环
                                     FentityModel.Add("FEntryTaxRate", item["FTAXRATE"].ToString());//绋庣巼
+                                    FentityModel.Add("FLot", new JObject() { ["Fnumber"] = item["HBatChNo"].ToString() }); // 鎵瑰彿   
+
+                                    FentityModel.Add("F_bsv_Text1", item["HExpressSupplierSub"].ToString());//鐗╂祦鍗曚綅 (鐟炵惇)
+                                    FentityModel.Add("F_bsv_Text2", item["HExpressNumberSub"].ToString());//鐗╂祦鍗曞彿 (鐟炵惇)
+                                    FentityModel.Add("FDescription", item["HRemark"].ToString());//琛ㄤ綋澶囨敞 (鐟炵惇)
+                                    FentityModel.Add("F_bsv_dhrq", item["HPlanArrivalDate"].ToString());//鍒拌揣鏃ユ湡 (鐟炵惇)
+                                    FentityModel.Add("F_bsv_xh", item["HBoxNumber"].ToString());//绠卞彿 (鐟炵惇)
 
                                     JArray Fentity2 = new JArray();
                                     JObject FentityModel2 = new JObject();
@@ -899,7 +963,8 @@
                                     return objjson;
                                 }
                                 //LogService.Write("jsonRoot:" + jsonRoot.ToString());
-                                var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString());
+                                var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString());                               
+
                                 //LogService.Write(result);
                                 if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
                                 {
@@ -936,6 +1001,10 @@
                     }
 
                 }
+
+                ////鏇存柊鐗╂祦瀛楁 锛堢憺涓庣惇锛�
+                //oCn.RunProc("exec h_p_Cg_LocalToKingDee_POInStock " + HBillNo + "," + HInterID);
+
                 //鏇存柊涓昏〃鐘舵�� 瀹℃牳
                 sql = string.Format(@"update Cg_POInStockBillMain set 
 HBillStatus = 2 ,
@@ -984,8 +1053,8 @@
             SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
             int HInterID = 0;
             string sql = "select HInterID from CG_POINSTOCKBILLMAIN where HBILLNO = '" + HBillNo + "'";
-            if (type == "Print")
-                sql += " and HBillStatus = '2' ";//鎵撳嵃鍒ゆ柇鏄惁瀹℃牳
+            //if (type == "Print")
+            //    sql += " and HBillStatus = '2' ";//鎵撳嵃鍒ゆ柇鏄惁瀹℃牳
             DataTable dt = oCn.RunProcReturn(sql, "HInterID").Tables[0];
             if (dt.Rows.Count > 0)
                 HInterID = Convert.ToInt32(dt.Rows[0]["HInterID"]);
@@ -1192,17 +1261,19 @@
                     var HinterID = mylist[i].ToString();
                     oCn.RunProc($"exec h_p_SRM_UpDatePPBomRelationQty {HinterID}");
                 }
+
                 //鍒ゆ柇鏈叧鑱旀暟閲忔槸鍚︿负0
-                DataSet ds = oCn.RunProcReturn($"select * from H_v_SRM_POOrderBillList where hsubid in ({string.Join(", ", entryList)}) ", "H_v_SRM_POOrderBillList");
+                //瀹夌憺锛欰IS20220914133941   鐟炰笌鐞細AIS20220308151944  鏈湴锛欰IS20210811135644  澶忓疂锛欰IS20211130140219  鍑礉锛欰IS20210820164804
+                DataSet ds = oCn.RunProcReturn($"select T1.hqty-T1.hrelationqty+q.FMRBQTY as hqty,鍗曟嵁鍙�,鐗╂枡缂栫爜 from H_v_SRM_POOrderBillList t1 left join AIS20210820164804..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID  where hentryid in ({string.Join(", ", entryList)}) ", "H_v_SRM_POOrderBillList");
                 DataTable dt = ds.Tables[0];
                 if (dt.Rows.Count > 0)
                 {
-                    DataRow[] dr = dt.Select("鏈叧鑱旀暟閲� = " + 0);
+                    DataRow[] dr = dt.Select("hqty  <=" + 0);
                     if (dr.Count() > 0)
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = $"璇锋鏌ユ暟鎹紝鍗曟嵁鍙凤細{dr[0]["鍗曟嵁鍙�"]},鐗╂枡浠g爜锛歿dr[0]["鐗╂枡浠g爜"]},鏈叧鑱旀暟閲忎负0锛屽凡鍏ㄩ儴鐢熸垚閫佽揣鍗曪紒";
+                        objJsonResult.Message = $"璇锋鏌ユ暟鎹紝鍗曟嵁鍙凤細{dr[0]["鍗曟嵁鍙�"]},鐗╂枡缂栫爜锛歿dr[0]["鐗╂枡缂栫爜"]},鍙互鍙戣揣鏁伴噺涓�0锛屽凡鍏ㄩ儴鐢熸垚閫佽揣鍗曪紒";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }

--
Gitblit v1.9.1