From e453524ea42b61b057df2faabf19828495b37bbb Mon Sep 17 00:00:00 2001
From: yxj <1qaz@123>
Date: 星期二, 25 十月 2022 13:32:32 +0800
Subject: [PATCH] 新增扫描托条码调用方法,卓力专用

---
 CLOUDWEB/WebService1.asmx.cs |  712 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 707 insertions(+), 5 deletions(-)

diff --git a/CLOUDWEB/WebService1.asmx.cs b/CLOUDWEB/WebService1.asmx.cs
index 67a6e35..20dcb0e 100644
--- a/CLOUDWEB/WebService1.asmx.cs
+++ b/CLOUDWEB/WebService1.asmx.cs
@@ -37364,13 +37364,30 @@
                     //鍒ゆ柇鏄惁鍚敤涓�閿壂鐮佹ā寮忥紝Y涓哄惎鐢紝鏈惎鐢ㄦ椂鍙壂鎻忕墿鏂欐潯鐮�
                     if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N")
                     {
-                        if (oSystemParameter.omodel.WMS_CampanyName == "鍗氭棩绉戞妧" || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏅鸿" || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏂帿灏�" || oSystemParameter.omodel.WMS_CampanyName == "濂ラ偊") //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
+                        if (oSystemParameter.omodel.WMS_CampanyName == "鍗氭棩绉戞妧" || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏅鸿"
+                            || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏂帿灏�" || oSystemParameter.omodel.WMS_CampanyName == "濂ラ偊"
+                            || oSystemParameter.omodel.WMS_CampanyName == "鍗撳姏") //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
                         {
                             DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
                             if (dal.GetInfoByNumber_View(sBarCode))
                             {
+                                //鎵樼洏鏉$爜  鍗撳姏
+                                if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜" && oSystemParameter.omodel.WMS_CampanyName == "鍗撳姏")
+                                {
+                                    //灏嗙墿鏂欐潯鐮佷俊鎭啓鍏ユ潯鐮佸嚭鍏ュ簱涓存椂琛�
+                                    oBar = get_SavePonderationBillMain_Temp_BarCode_Pack_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, SourceFlag, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameter.omodel, ref sErrMsg);
+                                    if (oBar == null)
+                                    {
+                                        sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛屽崟鎹甀D锛�" + HBillID + "锛涙壂鎻忓け璐ワ紒" + sErrMsg;
+                                        return null;
+                                    }
+                                    else
+                                    {
+                                        return oBar;
+                                    }
+                                }
                                 //濡傛灉鏄墭鐩樻潯鐮佸垎瑙e苟妯℃嫙鎵爜
-                                if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜")
+                                else if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜")
                                 {
                                     //鍒嗚В鎵樻潯鐮佸緱鍒版槑缁嗘潯鐮佷俊鎭啓鍏ュ嚭鍏ュ簱鏉$爜涓存椂琛�
                                     DataSet dsTBarCode;
@@ -37498,13 +37515,30 @@
                         //鏃犺繑鍥炴暟鎹垯涓虹墿鏂欐潯鐮�
                         if (Dss == null || Dss.Tables[0].Rows.Count == 0)
                         {
-                            if (oSystemParameter.omodel.WMS_CampanyName == "鍗氭棩绉戞妧" || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏅鸿" || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏂帿灏�" || oSystemParameter.omodel.WMS_CampanyName == "濂ラ偊") //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
+                            if (oSystemParameter.omodel.WMS_CampanyName == "鍗氭棩绉戞妧" || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏅鸿" 
+                                || oSystemParameter.omodel.WMS_CampanyName == "鏉窞鏂帿灏�" || oSystemParameter.omodel.WMS_CampanyName == "濂ラ偊"
+                            || oSystemParameter.omodel.WMS_CampanyName == "鍗撳姏") //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
                             {
                                 DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
                                 if (dal.GetInfoByNumber_View(sBarCode))
                                 {
+                                    //鎵樼洏鏉$爜  鍗撳姏
+                                    if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜" && oSystemParameter.omodel.WMS_CampanyName == "鍗撳姏")
+                                    {
+                                        //灏嗙墿鏂欐潯鐮佷俊鎭啓鍏ユ潯鐮佸嚭鍏ュ簱涓存椂琛�
+                                        oBar = get_SavePonderationBillMain_Temp_BarCode_Pack_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, SourceFlag, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameter.omodel, ref sErrMsg);
+                                        if (oBar == null)
+                                        {
+                                            sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛屽崟鎹甀D锛�" + HBillID + "锛涙壂鎻忓け璐ワ紒" + sErrMsg;
+                                            return null;
+                                        }
+                                        else
+                                        {
+                                            return oBar;
+                                        }
+                                    }
                                     //濡傛灉鏄墭鐩樻潯鐮佸垎瑙e苟妯℃嫙鎵爜
-                                    if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜")
+                                    else if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜")
                                     {
                                         //鍒嗚В鎵樻潯鐮佸緱鍒版槑缁嗘潯鐮佷俊鎭啓鍏ュ嚭鍏ュ簱鏉$爜涓存椂琛�
                                         DataSet dsTBarCode;
@@ -39190,6 +39224,383 @@
             {
                 sErrMsg = "鏃犳晥鏉$爜";
                 return false;
+            }
+        }
+
+        #endregion
+
+        #region 鎵弿鐗╂枡鏉$爜锛堟墭鐩樻潯鐮侊級    瀛樺叆鍑哄叆搴撴潯鐮佷复鏃惰〃  鍗撳姏涓撶敤  
+
+        //鎵弿鐗╂枡鏉$爜  瀛樺叆鏉$爜鍑哄叆搴撲复鏃惰〃
+        [WebMethod]
+        public Model.ClsKf_ICStockBill_WMS get_SavePonderationBillMain_Temp_BarCode_Pack_ZhuoLi(string sHBarCode_Pack, Int64 HInterID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, bool SourceFlag, string HSourceBillType, Int64 HStockOrgID, string HCustom1, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
+        {
+            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+            DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl();
+            Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp();
+            Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS();
+            DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
+
+            string HMaterNumber;            //鐗╂枡浠g爜
+            string sSourceBillCtl = "N";    //鏄惁杩涜婧愬崟淇℃伅鏍稿锛�'Y'涓烘牳瀵规簮鍗曚俊鎭級
+            string sBatchNoCtl = "N";       //鏄惁杩涜鎵瑰彿鏍稿锛�'Y'涓烘牳瀵规壒鍙凤級
+            string sMultilineCtl = "N";     //鏄惁瀛樺湪澶氳鐩稿悓鐗╂枡鏃惰嚜鍔ㄦ媶鍒嗘崲琛岋紙'Y'涓鸿嚜鍔ㄦ媶鍒嗭級
+            string sMustQtyCtl = "涓嶆帶鍒�";  //鎵爜鏁伴噺鑳藉惁鍙秴鍗曟嵁鏁伴噺鎺у埗锛堝皬浜庣瓑浜庡簲鏀躲�佸畬鍏ㄧ瓑浜庡簲鏀躲�佷笉鎺у埗锛�
+            string sMaterWHSPCtl = "N";     //鏄惁鍙栫墿鏂欓粯璁や粨搴撲粨浣嶏紙'Y'涓烘槸锛�
+            string sSourceWHSPCtl = "N";    //鏄惁鍙栨簮鍗曚腑浠撳簱浠撲綅锛�'Y'涓烘槸锛�
+            string sOneScanCtl = "N";       //涓�娆℃壂鐮佹帶鍒讹紙'Y'涓烘帶鍒讹級
+            string sFIFOCtl = "N";          //鍏堣繘鍏堝嚭鎺у埗锛�'Y'涓烘帶鍒讹級
+            string sMulSourceCtl = "N";     //鏄惁鍚敤澶氭簮鍗曟壂鐮佹ā寮忥紙'Y'涓哄惎鐢級
+            int sWHSPCtl = 0;               //鐣岄潰浠撳簱涓虹┖鏃讹紝鍊煎彉涓�1
+            string sBarCode = sHBarCode_Pack.Substring(0, sHBarCode_Pack.Length-2);//鎴帀鏉$爜鍚庝袱浣嶅瓧绗︿覆
+            double sRelQty = 0;
+
+            //鏍规嵁鍗曟嵁绫诲瀷锛岃幏鍙栧搴斿崟鎹郴缁熷弬鏁板��
+            if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg))
+            {
+
+            }
+
+            if (dal.GetInfoByBarCode_View(sBarCode))
+            {
+                if (dal.omodel_View.HStopflag)
+                {
+                    sErrMsg = "鎵樻潯鐮佸搴旀潯鐮侊細 " + sBarCode + " 宸茶绂佺敤锛屼笉鍏佽鎵弿锛�";
+                    return null;
+                }
+                else
+                {
+                    //钃濆瓧鍏ュ簱銆佹眹鎶ユā鍧楋紝闈炴棤婧愬崟鎵爜銆佹潯鐮佺被鍨嬩负 鍞竴鏉$爜 涓斾负鏈夋簮鍗曠敓鎴愮殑鐗╂枡鏉$爜锛屾壂鎻忔潯鐮佹椂鑷姩甯﹀嚭婧愬崟淇℃伅锛岀涓�娆℃壂鐮佹垨鍚敤澶氭簮鍗曟壂鐮佹ā寮�
+                    //閲囪喘鍏ュ簱锛�1201锛夈�佺敓浜у叆搴擄紙1202锛夈�佸叾浠栧叆搴擄紙1203锛夈�佸澶栧叆搴擄紙1210锛夈�佺敓浜ф眹鎶ワ紙3711锛�
+                    if (HSourceBillType != "-1" && dal.omodel_View.HBarCodeType == "鍞竴鏉$爜" && dal.omodel_View.HSourceBillNo != "" && (SourceFlag == false || sMulSourceCtl == "Y")
+                        && (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1210" || HBillType == "3711"))
+                    {
+                        Int64 HAccessFlag = 1;   //鏄惁鐗╂枡鏉$爜甯﹀嚭婧愬崟淇℃伅鏍囧織锛�0涓虹洿鎺ユ壂婧愬崟鏉$爜锛�1涓虹墿鏂欐潯鐮佸甫鍑烘簮鍗曚俊鎭級
+                        oBar = get_SourceBill_MaterBarCode(HInterID, HBillNo, HBillType, dal.omodel_View.HSourceBillNo, dal.omodel_View.HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg);
+                        if (oBar == null)
+                        {
+                            return null;
+                        }
+                        else
+                        {
+                            SourceFlag = true;
+                        }
+                    }
+                    else
+                    {
+                        //鏃犳簮鍗曠姸鎬侊紝璁剧疆婧愬崟绫诲瀷涓�-1
+                        if (SourceFlag == false)
+                        {
+                            //閿�鍞嚭搴撲笉鍏佽鏃犳簮鍗曞嚭搴�
+                            if (HBillType == "1205")
+                            {
+                                sErrMsg = "涓嶅厑璁告棤婧愬崟鍑哄簱锛岃鍏堟壂鎻忔簮鍗曪紒";
+                                return null;
+                            }
+                            HSourceBillType = "-1";
+                        }
+                    }
+
+                    //1銆侀娆℃壂鐮侀槻涓插崟鍒ゆ柇锛� 2銆佹簮鍗曠被鍨嬫槸鍚﹀湪婧愬崟鍒楄〃閲屽垽鏂紱 3銆佸敮涓�鏉$爜鏄惁瀛樺湪鐩稿悓鏉$爜鍒ゆ柇锛� 4銆佹湁婧愬崟锛岀墿鏂欐槸鍚﹀湪婧愬崟涓垽鏂�
+                    DataSet dsSource = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_SourceInterID_Pack_ZhuoLi " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + sHBarCode_Pack + "','" + HSourceBillType + "'," + HStockOrgID.ToString() + "," + DBUtility.ClsPub.BoolToString(SourceFlag) + "," + sSourceBillCtl + ",'" + sBatchNoCtl + "','" + sMultilineCtl + "','" + sMaterWHSPCtl + "','" + sSourceWHSPCtl + "'", "h_p_WMS_AddBarCode_SourceInterID_Pack_ZhuoLi");
+                    if (dsSource == null || dsSource.Tables[0].Rows.Count == 0)
+                    {
+                        sErrMsg = "鍒ゆ柇鎵�鎵潯鐮佹槸鍚﹀湪鍗曟嵁涓彂鐢熼敊璇紒";
+                        return null;
+                    }
+                    else
+                    {
+                        if (DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0][0]) == 0)
+                        {
+                            dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HMaterID"]);
+                            dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceInterID"]);
+                            dal.omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[0]["HSumQtyMust"]);   //HSumQtyMust涓烘簮鍗曠浉鍚岀墿鏂欏墿浣欏彲鎵暟閲�
+                            sRelQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[0]["HBarCodeQty_Sum"]);   //鎵樻潯鐮佹�绘暟閲�
+                            //鑾峰彇浠撳簱浠撲綅淇℃伅
+                            if (HWhID == 0)
+                            {
+                                HWhID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HWhID"]);
+                                HSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSPID"]);
+                                sWHSPCtl = 1;
+                            }
+                            HMaterNumber = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HMaterNumber"]);
+                        }
+                        else
+                        {
+                            sErrMsg = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HRemark"]);
+                            return null;
+                        }
+                    }
+
+                    //鏈夋簮鍗曟壂鐮侊紝鏍规嵁绯荤粺鍙傛暟 鎺у埗鎵爜鏁伴噺鑳藉惁鍙秴鍗曟嵁鏁伴噺锛堝皬浜庣瓑浜庡簲鏀躲�佸畬鍏ㄧ瓑浜庡簲鏀躲�佷笉鎺у埗锛�
+                    if (dal.omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "灏忎簬绛変簬搴旀敹" || sMustQtyCtl == "瀹屽叏绛変簬搴旀敹"))
+                    {
+                        if (dal.omodel_View.HSourceQty == 0)
+                        {
+                            sErrMsg = "鍚敤鏉$爜鎵弿鏁伴噺涓嶈兘瓒呮簮鍗曞彲鎵暟閲忥紝鎵�鎵墿鏂欏湪鍒楄〃涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
+                            return null;
+                        }
+                        else if (sRelQty > dal.omodel_View.HSourceQty)
+                        {
+                            sErrMsg = "鍚敤鏉$爜鎵弿鏁伴噺涓嶈兘瓒呮簮鍗曞彲鎵暟閲忥紝鎵�鎵弿鎵樻潯鐮佹�绘暟閲忎负 " + sRelQty.ToString() + " 澶т簬鍒楄〃涓墿浣欏彲鎵弿鏁伴噺" + dal.omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
+                            return null;
+                        }
+                    }
+
+                    //鐢熶骇棰嗘枡锛�1204锛夈�侀攢鍞嚭搴擄紙1205锛夈�佸叾浠栧嚭搴撹摑瀛楋紙1206锛夈�佸澶栧嚭搴擄紙1211锛夈�佺敓浜цˉ鏂欙紙1254锛�
+                    //澶栬喘閫�鏂欙紙1239锛夈�佷骇鍝侀��搴擄紙1245锛夈�佸叾浠栧叆搴撶孩瀛楋紙1248锛夈�佸澶栭��搴擄紙1246锛�
+                    //鍑哄簱銆佺孩瀛楀叆搴擄紝鍒ゆ柇鏉$爜搴撳瓨銆丒RP搴撳瓨
+                    if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" || HBillType == "1254"
+                        || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246")
+                    {
+                        double sERPQty = 0;     //ERP搴撳瓨鏁伴噺
+                        string sWhName = "";    //浠撳簱鍚嶇О
+                        string sSPName = "";    //浠撲綅鍚嶇О
+                        //搴撳瓨鎺у埗-WMS璐熷簱瀛樻帶鍒�     鍞竴鏉$爜銆佸惎鐢ㄦ潯鐮佸簱瀛橈紝浠撳簱浠撲綅鑾峰彇椤哄簭锛氱晫闈笂浠撳簱浠撲綅 > 鏉$爜搴撳瓨浠撳簱浠撲綅
+                        if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜" && oSystemParameterMain.WMS_WMSStockCtl == "Y")
+                        {
+                            //鍒ゆ柇鏉$爜搴撳瓨   杩斿洖鏉$爜搴撳瓨鏁伴噺
+                            DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi " + HInterID.ToString() + ",'" + HBillType + "','" + sHBarCode_Pack + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi");
+                            if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0)
+                            {
+                                sErrMsg = "鍒ゆ柇鏉$爜搴撳瓨鍙戠敓閿欒锛�";
+                                return null;
+                            }
+                            else
+                            {
+                                if (DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0][0]) == 1)
+                                {
+                                    sErrMsg = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HRemark"]);
+                                    return null;
+                                }
+                            }
+                        }
+
+                        //鍒ゆ柇浠撳簱銆佷粨浣嶆槸鍚︽湁鏁�
+                        if (HWhID == 0)
+                        {
+                            sErrMsg = "浠撳簱涓嶅厑璁镐负绌猴紝璇峰厛閫夋嫨浠撳簱锛�";
+                            return null;
+                        }
+                        else
+                        {
+                            //鏍规嵁浠撳簱ID锛屽垽鏂槸鍚﹀惎鐢ㄤ粨浣�
+                            DataSet dsWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse");
+                            if (dsWH == null || dsWH.Tables[0].Rows.Count == 0)
+                            {
+                                sErrMsg = "鎵�閫変粨搴撲笉灞炰簬褰撳墠鐧诲叆缁勭粐锛�";
+                                return null;
+                            }
+                            else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWH.Tables[0].Rows[0]["HSPFlag"]) == true)
+                            {
+                                sErrMsg = "鎵�閫変粨搴撳惎鐢ㄤ簡浠撲綅锛屼粨浣嶄笉鍏佽涓虹┖锛岃閫夋嫨瀵瑰簲浠撲綅锛�";
+                                return null;
+                            }
+                        }
+
+                        //搴撳瓨鎺у埗-ERP璐熷簱瀛樻帶鍒�
+                        if (oSystemParameterMain.WMS_ERPStockCtl == "Y")
+                        {
+                            //鍒ゆ柇ERP搴撳瓨   杩斿洖ERP搴撳瓨鏁伴噺
+                            DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HInterID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + dal.omodel_View.HAuxPropID.ToString() + ",'" + dal.omodel_View.HBatchNo + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory");
+                            if (DsERP == null || DsERP.Tables[0].Rows.Count == 0)
+                            {
+                                sErrMsg = "鎵�鎵弿鎵樻潯鐮佸搴旂墿鏂欎唬鐮侊細 " + HMaterNumber + " 锛屾棤閲戣澏搴撳瓨锛�";
+                                return null;
+                            }
+                            else
+                            {
+                                sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]);
+                                sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]);
+                                sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]);
+
+                                if (sERPQty <= 0)
+                                {
+                                    sErrMsg = "鎵�鎵弿鎵樻潯鐮佸搴旂墿鏂欎唬鐮侊細" + HMaterNumber + " 锛屽湪浠撳簱[ " + sWhName + " ]銆佷粨浣峓 " + sSPName + " ]涓紝鏃犻噾铦跺簱瀛橈紒";
+                                    return null;
+                                }
+                                //鍒ゆ柇鎵弿鏁伴噺涓庨噾铦跺簱瀛樻暟閲�
+                                else if (sRelQty > sERPQty)
+                                {
+                                    sErrMsg = "鎵�鎵弿鎵樻潯鐮佸搴旂墿鏂欎唬鐮侊細" + HMaterNumber + " 锛屽湪浠撳簱[ " + sWhName + " ]銆佷粨浣峓 " + sSPName + " ]涓紝閲戣澏浜戝簱瀛樻暟閲忎负 " + sERPQty.ToString() + " 灏忎簬鎵樻潯鐮佹�绘暟閲�" + sRelQty.ToString() + " 锛�";
+                                    return null;
+                                }
+                            }
+                        }
+
+                        //鍏堣繘鍏堝嚭鎺у埗
+                        if (sFIFOCtl == "Y")
+                        {
+                            DataSet dsFIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HInterID.ToString() + ",'" + HBillType + "','" + dal.omodel_View.HBatchNo + "','" + dal.omodel_View.HBarCode + "'," + dal.omodel_View.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode");
+                            if (dsFIFO == null || dsFIFO.Tables[0].Rows.Count == 0)
+                            {
+                                sErrMsg = "鍚敤鍏堣繘鍏堝嚭鎺у埗锛屾墍鎵潯鐮佷笉鍦ㄥ厛杩涘厛鍑哄垪琛ㄦ竻鍗曚腑锛�";
+                                return null;
+                            }
+                        }
+                    }
+                    //閲囪喘鍏ュ簱锛�1201锛夈�佷骇鍝佸叆搴擄紙1202锛夈�佸叾浠栧叆搴撹摑瀛楋紙1203锛夈�佸澶栧叆搴擄紙1210锛夈�佺敓浜ф眹鎶ワ紙3711锛�
+                    //鐢熶骇閫�鏂欙紙1244锛夈�侀攢鍞��搴擄紙1247锛夈�佸叾浠栧嚭搴撶孩瀛楋紙1249锛夈�佸澶栭��鏂欙紙1238锛�
+                    //鐢熶骇姹囨姤銆佽摑瀛楀叆搴撱�佺孩瀛楀嚭搴擄紝鑾峰彇鍞竴鏉$爜鍓╀綑鍙壂鎻忔暟閲�
+                    else
+                    {
+                        //鍒ゆ柇浠撳簱銆佷粨浣嶆槸鍚︽湁鏁�
+                        if (HWhID == 0)
+                        {
+                            sErrMsg = "浠撳簱涓嶅厑璁镐负绌猴紝璇峰厛閫夋嫨浠撳簱锛�";
+                            return null;
+                        }
+                        else
+                        {
+                            //鏍规嵁浠撳簱ID锛屽垽鏂槸鍚﹀惎鐢ㄤ粨浣�
+                            DataSet dsInWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse");
+
+                            if (sWHSPCtl == 1)
+                            {
+                                if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0)
+                                {
+                                    sErrMsg = "婧愬崟鎴栫墿鏂欓粯璁や粨搴撶淮鎶や俊鎭敊璇紝璇烽噸鏂扮淮鎶ゆ纭粨搴撲俊鎭紒";
+                                    return null;
+                                }
+                                else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true)
+                                {
+                                    sErrMsg = "婧愬崟鎴栫墿鏂欎腑鎵�缁存姢鐨勪粨搴撳惎鐢ㄤ簡浠撲綅锛屼絾娌℃湁缁存姢浠撲綅淇℃伅锛岃鍏堢淮鎶ゅソ浠撲綅淇℃伅锛�";
+                                    return null;
+                                }
+                            }
+                            else
+                            {
+                                if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0)
+                                {
+                                    sErrMsg = "鎵�閫変粨搴撲笉灞炰簬褰撳墠鐧诲叆缁勭粐锛�";
+                                    return null;
+                                }
+                                else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true)
+                                {
+                                    sErrMsg = "鎵�閫変粨搴撳惎鐢ㄤ簡浠撲綅锛屼粨浣嶄笉鍏佽涓虹┖锛岃閫夋嫨瀵瑰簲浠撲綅锛�";
+                                    return null;
+                                }
+                            }
+                        }
+
+                        //鑾峰彇鍞竴鏉$爜鍓╀綑鍙壂鎻忔暟閲�
+                        if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜")
+                        {
+                            DataSet DsInQty = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetInBill_Pack_ZhuoLi '" + sHBarCode_Pack + "','" + HBillType + "'", "h_p_WMS_AddBarCode_GetInBill_Pack_ZhuoLi");
+                            if (DsInQty == null || DsInQty.Tables[0].Rows.Count == 0)
+                            {
+                                sErrMsg = "鍒ゆ柇鏉$爜鍓╀綑鍙壂鎻忔暟閲忓彂鐢熼敊璇紒";
+                                return null;
+                            }
+                            else
+                            {
+                                if (DBUtility.ClsPub.isLong(DsInQty.Tables[0].Rows[0][0]) == 1)
+                                {
+                                    sErrMsg = DBUtility.ClsPub.isStrNull(DsInQty.Tables[0].Rows[0]["HRemark"]);
+                                    return null;
+                                }
+                            }
+                        }
+                    }
+
+                    //鍞竴鏉$爜锛屾槸鍚﹀惎鐢ㄤ竴娆℃壂鐮佹帶鍒讹紙'Y'涓哄惎鐢級
+                    if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜" && sOneScanCtl == "Y")
+                    {
+                        //涓�娆℃壂鐮佹帶鍒讹紝鍚屼竴鏉$爜銆佸悓涓�鍗曟嵁绫诲瀷锛屽湪WMS琛ㄥ拰TEMP琛ㄩ噷锛屽彧鍏佽杩涜涓�娆℃壂鐮�
+                        DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi '" + sHBarCode_Pack + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",0,0,'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi");
+                        if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0)
+                        {
+                        }
+                        else
+                        {
+                            if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1)
+                            {
+                                sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]);
+                                return null;
+                            }
+                        }
+                    }
+
+                    //璧嬪�硷紝鍐欏叆鍑哄叆搴撲复鏃惰〃
+                    //绾㈣摑鍗曟爣蹇�
+                    //鐢熶骇閫�鏂欙紙1244锛夈�侀攢鍞��搴擄紙1247锛夈�佸叾浠栧嚭搴撶孩瀛楋紙1249锛夈�佸澶栭��鏂欙紙1238锛�
+                    //澶栬喘閫�鏂欙紙1239锛夈�佷骇鍝侀��搴擄紙1245锛夈�佸叾浠栧叆搴撶孩瀛楋紙1248锛夈�佸澶栭��搴擄紙1246锛�
+                    if (HBillType == "1244" || HBillType == "1247" || HBillType == "1249" || HBillType == "1238"
+                        || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246")
+                    {
+                        oMain.HRedBlueFlag = true;
+                    }
+                    else
+                    {
+                        oMain.HRedBlueFlag = false;
+                    }
+
+                    //鏄惁澶氭簮鍗曟爣蹇楋紙0涓洪潪澶氭簮鍗曟ā寮忥紝1涓哄婧愬崟妯″紡锛�
+                    if (sMulSourceCtl == "Y")
+                    {
+                        oMain.HMulSourceBill = 1;
+                    }
+                    else
+                    {
+                        oMain.HMulSourceBill = 0;
+                    }
+
+                    if (HCustom1 == "宸ュ簭姹囨姤杞Щ鍗�")
+                    {
+                        oMain.HSubBillType = "1270";
+                        HCustom1 = "";
+                    }
+                    //鏉$爜绫诲瀷涓哄敮涓�鏉$爜锛屾壂鐮佸瓨鍏ユ椂 HRelationEntryID=1锛岀敤浜庡垽鏂埛鏂板垪琛ㄦ椂鍖哄垎鏄惁閲嶅鎵叆
+                    if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜")
+                    {
+                        oMain.HRelationEntryID = 1;
+                    }
+                    oMain.HInterID = HInterID;
+                    oMain.HBillNo = HBillNo;
+                    oMain.HBillType = HBillType;
+                    oMain.HMaker = HMaker;
+                    oMain.HMaterID = dal.omodel_View.HMaterID;
+                    oMain.HQtyMust = 0;
+                    oMain.HMTONo = dal.omodel_View.HMTONo;
+                    oMain.HWhID = HWhID;
+                    oMain.HStockPlaceID = HSPID;
+                    oMain.HSCWHID = 0;
+                    oMain.HOutStockPlaceID = 0;
+                    oMain.HPieceQty = 1;
+                    oMain.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceInterID"]);
+                    oMain.HSourceEntryID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceEntryID"]);
+                    oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HSourceBillNo"]);
+                    oMain.HSourceBillType = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HSourceBillType"]);
+                    oMain.HSTOCKORGID = HStockOrgID;
+                    oMain.HOWNERID = HStockOrgID;
+                    oMain.HCusBarCode = HCustom1;
+
+                    oCn.RunProc("Insert into KF_PonderationBillMain_Temp " +
+                    "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" +
+                    ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" +
+                    ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" +
+                    ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" +
+                    ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" +
+                    ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" +
+                    ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " +
+                    " select " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + ",HAuxPropID," + oMain.HProcID.ToString() +
+                    "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" +
+                    "," + oMain.HQtyMust.ToString() + ",HQty," + oMain.HPieceQty.ToString() + ",HBatchNo,HBarCode,''" +
+                    ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() +"," + oMain.HSourceEntryID.ToString() +",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" +
+                    "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" +
+                    "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','','" + oMain.HSubBillType + "'" +
+                    ",0,0,'" + oMain.HCusBarCode + "'," + oMain.HMulSourceBill.ToString() +
+                    "from  Gy_BarCodeBill with(nolock) where HBarCode_Pack= '" + sHBarCode_Pack + "' and HBarCodeType='鍞竴鏉$爜' order by HItemID"
+                    );
+
+                    oBar.HBarType = "鐗╂枡鏉$爜";
+                    return oBar;
+                }
+            }
+            else
+            {
+                sErrMsg = "鏉$爜妗f涓笉瀛樺湪璇ユ墭鏉$爜鎵�瀵瑰簲鏉$爜锛� " + sBarCode + " 锛岃纭璇ユ潯鐮佹槸鍚﹀凡琚垹闄わ紒";
+                return null;
             }
         }
 
@@ -42826,8 +43237,19 @@
                             }
                             else
                             {
+                                //鎵樼洏鏉$爜  鍗撳姏
+                                if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜" && oSystemParameter.omodel.WMS_CampanyName == "鍗撳姏")
+                                {
+                                    //灏嗙墿鏂欐潯鐮佷俊鎭啓鍏ユ潯鐮佸嚭鍏ュ簱涓存椂琛�
+                                    if (!set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg))
+                                    {
+                                        sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛屽崟鎹甀D锛�" + HBillID + "锛涙壂鎻忕墿鏂欐墭鏉$爜澶辫触锛�" + sErrMsg;
+                                        return null;
+                                    }
+                                    return oBar;
+                                }
                                 //鍒ゆ柇鏉$爜绫诲瀷鏄惁涓烘墭鐩樻潯鐮侊紝濡傛灉鏄墭鐩樻潯鐮佸垯鍒嗚В骞舵ā鎷熸壂鐮�
-                                if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜")
+                                else if (dal.omodel_View.HBarCodeType == "鎵樼洏鏉$爜")
                                 {
                                     //鍒嗚В鎵樼洏鏉$爜寰楀埌鏄庣粏鏉$爜淇℃伅鍐欏叆鏉$爜鍑哄叆搴撲复鏃惰〃
                                     DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode");
@@ -43385,6 +43807,286 @@
             return true;
         }
 
+        //鎵弿鐗╂枡鏉$爜锛堟墭鐩樻潯鐮侊級  瀛樺叆鏉$爜鍑哄叆搴撲复鏃惰〃      璋冩嫧    鍗撳姏涓撶敤  
+        [WebMethod]
+        public bool set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(string sHBarCode_Pack, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
+        {
+            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+            DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl();
+            Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp();
+            DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
+
+            string HMaterNumber;            //鐗╂枡浠g爜
+            string sSourceBillCtl = "N";    //鏄惁杩涜婧愬崟淇℃伅鏍稿锛�'Y'涓烘牳瀵规簮鍗曚俊鎭級
+            string sBatchNoCtl = "N";       //鏄惁杩涜鎵瑰彿鏍稿锛�'Y'涓烘牳瀵规壒鍙凤級
+            string sMultilineCtl = "N";     //鏄惁瀛樺湪澶氳鐩稿悓鐗╂枡鏃惰嚜鍔ㄦ媶鍒嗘崲琛岋紙'Y'涓鸿嚜鍔ㄦ媶鍒嗭級
+            string sMustQtyCtl = "涓嶆帶鍒�";  //鎵爜鏁伴噺鑳藉惁鍙秴鍗曟嵁鏁伴噺鎺у埗锛堝皬浜庣瓑浜庡簲鏀躲�佸畬鍏ㄧ瓑浜庡簲鏀躲�佷笉鎺у埗锛�
+            string sMaterWHSPCtl = "N";     //鏄惁鍙栫墿鏂欓粯璁や粨搴撲粨浣嶏紙'Y'涓烘槸锛�
+            string sSourceWHSPCtl = "N";    //鏄惁鍙栨簮鍗曚腑浠撳簱浠撲綅锛�'Y'涓烘槸锛�
+            string sOneScanCtl = "N";       //涓�娆℃壂鐮佹帶鍒讹紙'Y'涓烘帶鍒讹級
+            string sFIFOCtl = "N";          //鍏堣繘鍏堝嚭鎺у埗锛�'Y'涓烘帶鍒讹級
+            string sMulSourceCtl = "N";     //鏄惁鍚敤澶氭簮鍗曟壂鐮佹ā寮忥紙'Y'涓哄惎鐢級
+            string sBarCode = sHBarCode_Pack.Substring(0, sHBarCode_Pack.Length - 2);//鎴帀鏉$爜鍚庝袱浣嶅瓧绗︿覆
+            double sRelQty = 0;
+
+            //鏍规嵁鍗曟嵁绫诲瀷锛岃幏鍙栧搴斿崟鎹郴缁熷弬鏁板��
+            if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg))
+            {
+
+            }
+
+            //鍒ゆ柇璋冨叆浠撳簱銆佷粨浣嶆槸鍚︽湁鏁�
+            if (HWhID == 0)
+            {
+                sErrMsg = "璋冨叆浠撳簱娌℃湁閫夋嫨锛�";
+                return false;
+            }
+            else
+            {
+                //鏍规嵁浠撳簱ID锛屽垽鏂槸鍚﹀惎鐢ㄤ粨浣�
+                DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse");
+                if (dsWh == null || dsWh.Tables[0].Rows.Count == 0)
+                {
+                    sErrMsg = "鎵�閫夎皟鍏ヤ粨搴撲笉灞炰簬璇ヨ皟鍏ョ粍缁囷紒";
+                    return false;
+                }
+                else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true)
+                {
+                    sErrMsg = "璋冨叆浠撲綅娌℃湁閫夋嫨锛�";
+                    return false;
+                }
+            }
+            //鏃犳簮鍗曠姸鎬侊紝璁剧疆婧愬崟绫诲瀷涓�-1
+            if (SourceFlag == false)
+            {
+                HSourceBillType = "-1";
+            }
+
+            if (dal.GetInfoByBarCode_View(sBarCode))
+            {
+                if (dal.omodel_View.HStopflag)
+                {
+                    sErrMsg = "鎵樻潯鐮佸搴旀潯鐮侊細 " + sBarCode + " 宸茶绂佺敤锛屼笉鍏佽鎵弿锛�";
+                    return false;
+                }
+                else
+                {
+                    //1銆侀娆℃壂鐮侀槻涓插崟鍒ゆ柇锛� 2銆佹簮鍗曠被鍨嬫槸鍚﹀湪婧愬崟鍒楄〃閲屽垽鏂紱3銆佸敮涓�鏉$爜鏄惁瀛樺湪鐩稿悓鏉$爜鍒ゆ柇锛� 4銆佹湁婧愬崟锛岀墿鏂欐槸鍚﹀湪婧愬崟涓垽鏂�
+                    DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock_Pack_ZhuoLi '" + sHBarCode_Pack + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock_Pack_ZhuoLi");
+                    if (ds1 == null || ds1.Tables[0].Rows.Count == 0)
+                    {
+                        sErrMsg = "鍒ゆ柇鎵�鎵潯鐮佹槸鍚﹀湪鍗曟嵁涓彂鐢熼敊璇紒";
+                        return false;
+                    }
+                    else
+                    {
+                        if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0)
+                        {
+                            dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]);
+                            dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]);
+                            dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]);
+                            dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]);
+                            dal.omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]);     //婧愬崟鍙壂鏁伴噺
+                            sRelQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HBarCodeQty_Sum"]);   //鎵樻潯鐮佹�绘暟閲�
+                            HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]);
+                        }
+                        else
+                        {
+                            sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]);
+                            return false;
+                        }
+                    }
+
+                    //鏈夋簮鍗曟壂鐮侊紝鏍规嵁绯荤粺鍙傛暟 鎺у埗鎵爜鏁伴噺鑳藉惁鍙秴鍗曟嵁鏁伴噺锛堝皬浜庣瓑浜庡簲鏀躲�佸畬鍏ㄧ瓑浜庡簲鏀躲�佷笉鎺у埗锛�
+                    if (dal.omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "灏忎簬绛変簬搴旀敹" || sMustQtyCtl == "瀹屽叏绛変簬搴旀敹"))
+                    {
+                        if (dal.omodel_View.HSourceQty == 0)
+                        {
+                            sErrMsg = "鍚敤鏉$爜鎵弿鏁伴噺涓嶈兘瓒呮簮鍗曞彲鎵暟閲忥紝鎵�鎵墿鏂欏湪鍒楄〃涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
+                            return false;
+                        }
+                        else if (sRelQty > dal.omodel_View.HSourceQty)
+                        {
+                            sErrMsg = "鍚敤鏉$爜鎵弿鏁伴噺涓嶈兘瓒呮簮鍗曞彲鎵暟閲忥紝鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬鍒楄〃涓墿浣欏彲鎵弿鏁伴噺" + dal.omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
+                            return false;
+                        }
+                    }
+
+                    double sERPQty = 0;     //ERP搴撳瓨鏁伴噺
+                    string sWhName = "";    //浠撳簱鍚嶇О
+                    string sSPName = "";    //浠撲綅鍚嶇О
+                    if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜")
+                    {
+                        //鍒ゆ柇鏉$爜搴撳瓨    搴撳瓨鎺у埗-WMS璐熷簱瀛樻帶鍒�
+                        if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251")
+                        {
+                            //鍒ゆ柇鏉$爜搴撳瓨   杩斿洖鏉$爜搴撳瓨鏁伴噺
+                            DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi " + HBillID.ToString() + ",'" + HBillType + "','" + sHBarCode_Pack + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi");
+                            if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0)
+                            {
+                                sErrMsg = "鍒ゆ柇鏉$爜搴撳瓨鍙戠敓閿欒锛�";
+                                return false;
+                            }
+                            else
+                            {
+                                if (DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0][0]) == 1)
+                                {
+                                    sErrMsg = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HRemark"]);
+                                    return false;
+                                }
+                            }
+                        }
+                    }
+
+                    //鍒ゆ柇璋冨嚭浠撳簱銆佷粨浣嶆槸鍚︽湁鏁�
+                    if (HSCWHID == 0)
+                    {
+                        sErrMsg = "璋冨嚭浠撳簱娌℃湁閫夋嫨锛�";
+                        return false;
+                    }
+                    else
+                    {
+                        //鏍规嵁浠撳簱ID锛屽垽鏂槸鍚﹀惎鐢ㄤ粨浣�
+                        DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse");
+                        if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0)
+                        {
+                            sErrMsg = "鎵�閫夎皟鍑轰粨搴撲笉灞炰簬璇ヨ皟鍑虹粍缁囷紒";
+                            return false;
+                        }
+                        else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true)
+                        {
+                            sErrMsg = "璋冨嚭浠撲綅娌℃湁閫夋嫨锛�";
+                            return false;
+                        }
+                    }
+
+                    //鍒ゆ柇ERP搴撳瓨   搴撳瓨鎺у埗-ERP璐熷簱瀛樻帶鍒�
+                    if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && HBillType != "1251")
+                    {
+                        //鍒ゆ柇ERP搴撳瓨   杩斿洖ERP搴撳瓨鏁伴噺
+                        DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + dal.omodel_View.HAuxPropID.ToString() + ",'" + dal.omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory");
+                        if (DsERP == null || DsERP.Tables[0].Rows.Count == 0)
+                        {
+                            sErrMsg = "鎵�鎵弿鎵樻潯鐮佸搴旂墿鏂欎唬鐮侊細 " + HMaterNumber + " 锛屾棤閲戣澏搴撳瓨锛�";
+                            return false;
+                        }
+                        else
+                        {
+                            sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]);
+                            sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]);
+                            sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]);
+
+                            if (sERPQty <= 0)
+                            {
+                                sErrMsg = "鎵�鎵弿鎵樻潯鐮佸搴旂墿鏂欎唬鐮侊細" + HMaterNumber + " 锛屽湪浠撳簱[ " + sWhName + " ]銆佷粨浣峓 " + sSPName + " ]涓紝鏃犻噾铦跺簱瀛橈紒";
+                                return false;
+                            }
+                            //鍒ゆ柇鎵弿鏁伴噺涓庨噾铦跺簱瀛樻暟閲�
+                            else if (sRelQty > sERPQty)
+                            {
+                                sErrMsg = "鎵�鎵弿鎵樻潯鐮佸搴旂墿鏂欎唬鐮侊細" + HMaterNumber + " 锛屽湪浠撳簱[ " + sWhName + " ]銆佷粨浣峓 " + sSPName + " ]涓紝閲戣澏浜戝簱瀛樻暟閲忎负 " + sERPQty.ToString() + " 灏忎簬鎵樻潯鐮佹�绘暟閲�" + sRelQty.ToString() + " 锛�";
+                                return false;
+                            }
+                        }
+                    }
+
+                    if (HWhID == HSCWHID && HSPID == HSCSPID)
+                    {
+                        sErrMsg = "璋冨叆浠撳簱銆佷粨浣嶄笉鑳戒笌璋冨嚭浠撳簱銆佷粨浣嶇浉鍚岋紒";
+                        return false;
+                    }
+
+                    //鍞竴鏉$爜锛屾槸鍚﹀惎鐢ㄤ竴娆℃壂鐮佹帶鍒讹紙'Y'涓哄惎鐢級
+                    if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜" && sOneScanCtl == "Y")
+                    {
+                        //涓�娆℃壂鐮佹帶鍒讹紝鍚屼竴鏉$爜銆佸悓涓�鍗曟嵁绫诲瀷锛屽湪WMS琛ㄥ拰TEMP琛ㄩ噷锛屽彧鍏佽杩涜涓�娆℃壂鐮�
+                        DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi '" + sHBarCode_Pack + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi");
+                        if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0)
+                        {
+                        }
+                        else
+                        {
+                            if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1)
+                            {
+                                sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]);
+                                return false;
+                            }
+                        }
+                    }
+
+                    //鏄惁澶氭簮鍗曟爣蹇楋紙0涓洪潪澶氭簮鍗曟ā寮忥紝1涓哄婧愬崟妯″紡锛�
+                    if (sMulSourceCtl == "Y")
+                    {
+                        oMain.HMulSourceBill = 1;
+                    }
+                    else
+                    {
+                        oMain.HMulSourceBill = 0;
+                    }
+                    //鏉$爜绫诲瀷涓哄敮涓�鏉$爜锛屾壂鐮佸瓨鍏ユ椂 HRelationEntryID=1锛岀敤浜庡垽鏂埛鏂板垪琛ㄦ椂鍖哄垎鏄惁閲嶅鎵叆
+                    if (dal.omodel_View.HBarCodeType == "鍞竴鏉$爜")
+                    {
+                        oMain.HRelationEntryID = 1;
+                    }
+                    oMain.HInterID = HBillID;
+                    oMain.HBillNo = HBillNo;
+                    oMain.HBillType = HBillType;
+                    oMain.HMaker = HMaker;
+                    oMain.HMaterID = dal.omodel_View.HMaterID;
+                    oMain.HQtyMust = 0;
+                    oMain.HMTONo = dal.omodel_View.HMTONo;
+                    oMain.HWhID = HWhID;
+                    oMain.HStockPlaceID = HSPID;
+                    oMain.HSCWHID = HSCWHID;
+                    oMain.HOutStockPlaceID = HSCSPID;
+                    oMain.HSourceInterID = dal.omodel_View.HSourceInterID;
+                    oMain.HSourceEntryID = dal.omodel_View.HSourceEntryID;
+                    oMain.HSourceBillNo = dal.omodel_View.HSourceBillNo;
+                    oMain.HSourceBillType = HSourceBillType;
+                    oMain.HRedBlueFlag = false;
+                    oMain.HPieceQty = 1;
+                    oMain.HSTOCKORGID = HStockOutOrgID;
+                    oMain.HOWNERID = HStockInOrgID;
+
+                    //鍏堣繘鍏堝嚭鎺у埗
+                    if ((HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBill_FIFOCtl == "Y")      //绯荤粺鍙傛暟  鐩存帴璋冩嫧鍗�-鍏堣繘鍏堝嚭鎺у埗
+                        )
+                    {
+                        DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode");
+                        if (FIFO == null || FIFO.Tables[0].Rows.Count == 0)
+                        {
+                            sErrMsg = "鍚敤鍏堣繘鍏堝嚭鎺у埗锛屾墍鎵潯鐮佷笉鍦ㄥ厛杩涘厛鍑哄垪琛ㄦ竻鍗曚腑锛�";
+                            return false;
+                        }
+                    }
+
+                    oCn.RunProc("Insert into KF_PonderationBillMain_Temp " +
+                        "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" +
+                        ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" +
+                        ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" +
+                        ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" +
+                        ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" +
+                        ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" +
+                        ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " +
+                        " select " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + ",HAuxPropID," + oMain.HProcID.ToString() +
+                        "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" +
+                        "," + oMain.HQtyMust.ToString() + ",HQty," + oMain.HPieceQty.ToString() + ",HBatchNo,HBarCode,''" +
+                        ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" +
+                        "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" +
+                        "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','','" + oMain.HSubBillType + "'" +
+                        ",0,0,'" + oMain.HCusBarCode + "'," + oMain.HMulSourceBill.ToString() +
+                        "from  Gy_BarCodeBill with(nolock) where HBarCode_Pack= '" + sHBarCode_Pack + "' and HBarCodeType='鍞竴鏉$爜' order by HItemID"
+                    );
+                    return true;
+                }
+            }
+            else
+            {
+                sErrMsg = "鏉$爜妗f涓笉瀛樺湪璇ユ墭鏉$爜鎵�瀵瑰簲鏉$爜锛� " + sBarCode + " 锛岃纭璇ユ潯鐮佹槸鍚﹀凡琚垹闄わ紒";
+                return false;
+            }
+        }
+
         #endregion
 
 

--
Gitblit v1.9.1