智云SRM-WEBAPI(目前客户通用API)
WebAPI/Controllers/POInStockController.cs
@@ -37,7 +37,7 @@
        {
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //写入 System_Log 操作日志表
                WebAPIController.Add_Log("送货单打印", CurUserName, "送货单打印");
                oCn.RunProc("exec H_p_SRM_POInStockBill_PrintQty " + msg.ToString());
@@ -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);
                //把表添加到dataset
@@ -256,7 +273,7 @@
            try
            {
                string sql = $"update Cg_POInStockBillMain  set  HDeliveryNo ='{HDeliveryNo}' where HInterID in ({HmainId})";
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                oCn.RunProc(sql);
                objJsonResult.code = "1";
@@ -283,13 +300,19 @@
        [HttpPost]
        public object SaverPOInStock([FromBody] JObject msg)
        {
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            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,17 +512,17 @@
        //送货单列表
        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();
                sw.Start();//开始计时
                string VsWhere = "";
                string PcWhere = "";
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                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");
@@ -639,9 +676,9 @@
        public object AuditPOInStockBill(string HInterID, string CurUserName, string HBillNo)
        {
            json objjson = new json();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            {
                //采购订单 生成送货单列表
                if (!String.IsNullOrEmpty(HBillNo))
                    HInterID = GetHinterIDByBillNo(HBillNo, "Aduit").ToString();
@@ -662,36 +699,73 @@
                //var HValue = oCn.RunProcReturn(parameterSql, "dt").Tables[0].Rows[0][0].ToString();
                string HValue = "Y";
                string CustomFields = "";//自定义字段
                oCn.BeginTran(); //开始事物
                if (HValue == "Y")
                {
                    if (FCusName == "夏宝电器")
                    //==================================== Begin 送货单审核前控制 Begin ====================================
                    DataSet ds;
                    string[] sArray = HInterID.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    for (int i = 0; i < sArray.Length; i++)
                    {
                        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);
                        ds = oCn.RunProcReturn("exec h_p_SRM_Cg_POInStockBill_BeforeCheckCtrl " + sArray[i] + ",'" + HBillNo + "','" + CurUserName + "'", "h_p_SRM_Cg_POInStockBill_BeforeCheckCtrl");
                        if (ds == null)
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核前判断失败!无数据返回";
                            objjson.data = null;
                            return objjson;
                        }
                        if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemarkBack"]);
                            objjson.data = null;
                            return objjson;
                        }
                    }
                    //====================================== 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
//,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)
@@ -749,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();
@@ -829,6 +904,7 @@
,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 
,isnull(VW.FNUMBER,'') AS FReceiverNUMBER,isnull(B.HKFDate,'') As FProduceDate,B.HTAXPRICE_T AS F_AAAA_PRICE1
,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
@@ -895,6 +971,11 @@
                                    //3厂
                                    if (dr["FBILLTYPEID"].ToString() == "83d822ca3e374b4ab01e5dd46a0062bd")
                                    {
                                        fTypeName = "SLD10_SYS";
                                    }
                                    //标准采购订单
                                    if (dr["FBILLTYPEID"].ToString() == "65a5124e3be263")
                                    {
                                        fTypeName = "SLD01_SYS";
                                    }
                                    model.Add("FReceiverId", new JObject() { ["Fnumber"] = dr["FReceiverNUMBER"].ToString() }); //收料员
@@ -928,10 +1009,7 @@
                                    FentityModel.Add("FSRCENTRYID", item["FENTRYID"].ToString());//源单分录内码
                                    FentityModel.Add("FORDERBILLNO", item["FBILLNO"].ToString());//源单单号
                                    FentityModel.Add("FPOORDERENTRYID", item["FENTRYID"].ToString());//源单分录内码
                                    FentityModel.Add("FSRMENTRYID", item["HENTRYID"].ToString());//SRM hentryid
                                    FentityModel.Add("FPrice", item["FPRICE"].ToString());//单价
                                    FentityModel.Add("FTaxPrice", item["FTAXPRICE"].ToString());//含税单价
                                    FentityModel.Add("FEntryTaxRate", item["FTAXRATE"].ToString());//税率
                                    FentityModel.Add("FSRMENTRYID", item["HENTRYID"].ToString());//SRM hentryid
                                    FentityModel.Add("FLot", new JObject() { ["Fnumber"] = item["HBatChNo"].ToString() }); // 批号   
                                    FentityModel.Add("FProduceDate", item["FProduceDate"].ToString());//生产日期
                                    FentityModel.Add("F_aaaa_Price1", item["F_aaaa_Price1"].ToString());//含税重量单价/吨
@@ -941,7 +1019,10 @@
                                    FentityModel.Add("FDescription", item["HRemark"].ToString());//表体备注 (瑞琪)
                                    FentityModel.Add("F_bsv_dhrq", item["HPlanArrivalDate"].ToString());//到货日期 (瑞琪)
                                    FentityModel.Add("F_bsv_xh", item["HBoxNumber"].ToString());//箱号 (瑞琪)
                                    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();
                                    FentityModel2.Add("FDetailEntity_Link_FRULEID", "PUR_PurchaseOrder-PUR_ReceiveBill");
@@ -1018,31 +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
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
 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)
                        {
@@ -1110,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();
@@ -1151,12 +1245,13 @@
                                    objjson.data = null;
                                    return objjson;
                                }
                                //LogService.Write("jsonRoot:" + jsonRoot.ToString());
                                LogService.Write("jsonRoot:" + jsonRoot.ToString());
                                var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString());                               
                                //LogService.Write(result);
                                if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE")
                                {
                                    LogService.Write("SRM-收料通知单审核失败JSON:" + jsonRoot.ToString());
                                    //更新送货单 主表 ERP单据号 以及 ERP主内玛
                                    string FBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
                                    string FID = JObject.Parse(result)["Result"]["Id"].ToString();
@@ -1174,6 +1269,8 @@
                                }
                                else
                                {
                                    LogService.Write("SRM-收料通知单审核失败JSON:" + jsonRoot.ToString() );
                                    objjson.code = "0";
                                    objjson.count = 0;
                                    objjson.Message = result;
@@ -1188,7 +1285,30 @@
                            LogService.Write("收料通知单审核无数据:" + sql);
                        }
                    }
                    //==================================== Begin 送货单审核后控制 Begin ====================================
                    for (int i = 0; i < sArray.Length; i++)
                    {
                        ds = oCn.RunProcReturn("exec h_p_SRM_Cg_POInStockBill_AfterCheckCtrl " + sArray[i] + ",'" + HBillNo + "','" + CurUserName + "'", "h_p_SRM_Cg_POInStockBill_AfterCheckCtrl");
                        if (ds == null)
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核后判断失败!无数据返回";
                            objjson.data = null;
                            return objjson;
                        }
                        if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                        {
                            oCn.RollBack(); //回滚事物
                            objjson.code = "0";
                            objjson.count = 0;
                            objjson.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemarkBack"]);
                            objjson.data = null;
                            return objjson;
                        }
                    }
                    //====================================== End 送货单审核后控制 End ======================================
                }
                ////更新物流字段 (瑞与琪)
@@ -1201,6 +1321,9 @@
HCheckDate   = getdate()
where HInterID in ({1})", CurUserName, HInterID);
                oCn.RunProc(sql);
                oCn.Commit(); //提交事物
                objjson.code = "1";
                objjson.count = 1;
                objjson.Message = "操作成功";
@@ -1209,7 +1332,7 @@
            }
            catch (Exception ex)
            {
                oCn.RollBack(); //回滚事物
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "操作失败" + ex.Message.ToString();
@@ -1237,9 +1360,46 @@
            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.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            int HInterID = 0;
            string sql = "select HInterID from CG_POINSTOCKBILLMAIN where HBILLNO = '" + HBillNo + "'";
            //if (type == "Print")
@@ -1257,11 +1417,11 @@
            try
            {
                DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill();
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //获取客户名称
                string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
                //夏宝需要先在金蝶删除收料通知单后才能在供应商协同平台删除送货单
                if (FCusName == "夏宝电器")
                if (FCusName == "夏宝电器" || FCusName == "添康科技")
                {
                    string sqlBeforeDel = $"exec h_p_SRM_POInStockBeforeDelCtrl " + HInterID;
@@ -1460,9 +1620,12 @@
        /// <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());
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
            if (FCusName == "夏宝电器" && mylist.Count > 1)
            {
@@ -1474,28 +1637,66 @@
            }
            try
            {
                DataSet ds2;
                oCn.BeginTran(); //开始事物
                //采购订单下推生成送货单 时候 判断是否有生成采购订单变更单 如果有且变更单状态不为已审核 限制下推
                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;
                //}
                for (int i = 0;i < mylist.Count;i++)
                {
                    //采购订单下推生成送货单前控制
                    string sql = "exec h_p_SRM_POOrderBill_BeforePushDownCtrl " + mylist[i] + "," + entryList[i];
                    ds2 = oCn.RunProcReturn(sql, "h_p_SRM_POOrderBill_BeforePushDownCtrl");
                    if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
                    {
                        LogService.Write("送货数量同步进入回滚");
                        oCn.RollBack(); //回滚事物
                        objjson.code = "0";
                        objjson.count = 0;
                        objjson.Message = "审核前判断失败!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HRemarkBack"]);
                        objjson.data = null;
                        return objjson;
                    }
                }
                for (int i = 0; i < mylist.Count; i++)
                {
                    //更新关联数量
                    var HinterID = mylist[i].ToString();
                    var HEntryID = entryList[i].ToString();
                    LogService.Write("送货数量同步: exec h_p_SRM_UpDatePPBomRelationQty" + HinterID + "," + HEntryID);
                    oCn.RunProc($"exec h_p_SRM_UpDatePPBomRelationQty {HinterID},{HEntryID},{i+1}");
                }
                //判断未关联数量是否为0
                //安瑞:AIS20220914133941   瑞与琪:AIS20220308151944  本地:AIS20210811135644  夏宝:AIS20211130140219  凯贝:AIS20210820164804
                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 AIS20210820164804..T_PUR_POORDERENTRY_R q on q.FENTRYID=t1.HEntryID  where hentryid in ({string.Join(", ", entryList)})", "H_v_SRM_POOrderBillList");
                //安瑞:AIS20220914133941   瑞与琪:AIS20220308151944  本地:AIS20210811135644  夏宝:srv_lnk.AIS20211130140219.dbo.  凯贝:AIS20210820164804 添康:AIS20240809105013
                //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")}";
@@ -1503,6 +1704,9 @@
                        return objJsonResult;
                    }
                }
                oCn.Commit(); //提交事物
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "操作成功!";
@@ -1526,20 +1730,39 @@
        /// <returns></returns>
        public JsonResult TestPOOrder(string entryids)
        {
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            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)
                {
@@ -1550,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)
                {
@@ -1572,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)
                {
@@ -1622,7 +1882,7 @@
        {
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn(" exec h_p_SRM_POInStockBillMain_ForWeb " + lngBillKey.ToString() + ",'" + HBillType + "'", "h_p_SRM_POInStockBillMain_ForWeb");
@@ -1655,7 +1915,7 @@
            string s = "";
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn(" exec h_p_SRM_POInStockBillSub_ForWeb '" + lngBillKey2 + "','" + HBillType + "'", "h_p_SRM_POInStockBillSub_ForWeb");
@@ -1674,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
    }
}