智云SRM-WEBAPI(目前客户通用API)
1
yusijie
2024-06-07 6d333439f8abe3f39de1ab393007009d570c6256
WebAPI/Controllers/POInStockController.cs
@@ -639,9 +639,9 @@
        public object AuditPOInStockBill(string HInterID, string CurUserName, string HBillNo)
        {
            json objjson = new json();
            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            try
            {
                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
            {
                //采购订单 生成送货单列表
                if (!String.IsNullOrEmpty(HBillNo))
                    HInterID = GetHinterIDByBillNo(HBillNo, "Aduit").ToString();
@@ -662,10 +662,42 @@
                //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++)
                    {
                        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,
@@ -829,6 +861,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 +928,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 +966,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 +976,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");
@@ -1188,7 +1226,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 +1262,9 @@
HCheckDate   = getdate()
where HInterID in ({1})", CurUserName, HInterID);
                oCn.RunProc(sql);
                oCn.Commit(); //提交事物
                objjson.code = "1";
                objjson.count = 1;
                objjson.Message = "操作成功";
@@ -1209,7 +1273,7 @@
            }
            catch (Exception ex)
            {
                oCn.RollBack(); //回滚事物
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "操作失败" + ex.Message.ToString();
@@ -1460,8 +1524,8 @@
        /// <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();
            string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo);
            if (FCusName == "夏宝电器" && mylist.Count > 1)
@@ -1474,11 +1538,39 @@
            }
            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")
                    {
                        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++)
                {
                    //更新关联数量
@@ -1503,6 +1595,9 @@
                        return objJsonResult;
                    }
                }
                oCn.Commit(); //提交事物
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "操作成功!";