|  |  | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  | using Model; | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  | using Pub_Class; | 
 |  |  | using System; | 
 |  |  | using System.Collections; | 
 |  |  | 
 |  |  |     //采购订单Controller | 
 |  |  |     public class Cg_POOrderBillController : ApiController | 
 |  |  |     { | 
 |  |  |         //获取系统参数 | 
 |  |  |         Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); | 
 |  |  |         public DBUtility.ClsPub.Enum_BillStatus BillStatus; | 
 |  |  |  | 
 |  |  |         private json objJsonResult = new json(); | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //判断是否有采购经理权限 | 
 |  |  |                 //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 //if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  |                 //{ | 
 |  |  |                 //    objJsonResult.code = "0"; | 
 |  |  |                 //    objJsonResult.count = 0; | 
 |  |  |                 //    objJsonResult.Message = "无权限查看!"; | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |                 //string sql = "select * from h_v_IF_POOrderBillList where 1 = 1 "; | 
 |  |  |  | 
 |  |  |                 //if (sWhere=="" || sWhere == null) | 
 |  |  |                 //{ | 
 |  |  |                 //    ds = oCN.RunProcReturn(sql+ " order by hmainid desc", "h_v_IF_POOrderBillList"); | 
 |  |  |                 //} | 
 |  |  |                 //else | 
 |  |  |                 //{ | 
 |  |  |                 //    ds = oCN.RunProcReturn(sql + sWhere+ " order by hmainid desc", "h_v_IF_POOrderBillList"); | 
 |  |  |                 //} | 
 |  |  |  | 
 |  |  |                 //判断是否有采购经理权限(安瑞) | 
 |  |  |                 bool isCgjl = Security_Log("Cg_POOrderBill_PurchasManager", 1, true, user); | 
 |  |  |                 if (!isCgjl) | 
 |  |  |                 { | 
 |  |  |                     sWhere += " and HEmpID in (select HEmpID from Gy_Czygl where Czymc='Admin' )"; | 
 |  |  |                     sWhere += $" and HEmpID in (select HEmpID from Gy_Czygl where Czymc='{user}' and HEmpID >0  )"; | 
 |  |  |                 } | 
 |  |  |                 string sql = "select * from h_v_IF_POOrderBillList where 1 = 1 " + sWhere; | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList"); | 
 |  |  |  | 
 |  |  |                 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 = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         [Route("Cg_POOrderBill/list3")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object list3(string sWhere, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<string> optionList = new List<string>(); | 
 |  |  |                 string sql = "select top 1 * from h_v_IF_POOrderBillList where 1 = 1 "; | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList"); | 
 |  |  |                 if (ds != null) | 
 |  |  |                 { | 
 |  |  |                     foreach (DataColumn item in ds.Tables[0].Columns) | 
 |  |  |                     { | 
 |  |  |                         optionList.Add(@"{ field: 'hmainid', title: '" + item.ToString() + "', sort: true, hide: false }"); | 
 |  |  |                     } | 
 |  |  |                     string option = string.Join(",", optionList); | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "Sucess!"; | 
 |  |  |                     objJsonResult.data = optionList.ToArray(); | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "初始化表格失败!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 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 = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         [Route("Cg_POOrderBill/list2")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object list2(string sWhere, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<OptionListModel> optionList = new List<OptionListModel>(); | 
 |  |  |                 string sql = "select top 1 * from h_v_IF_POOrderBillList where 1 = 1 "; | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList"); | 
 |  |  |                 if (ds != null) | 
 |  |  |                 { | 
 |  |  |                     foreach (DataColumn item in ds.Tables[0].Columns) | 
 |  |  |                     { | 
 |  |  |                         optionList.Add(new OptionListModel | 
 |  |  |                         { | 
 |  |  |                             field = item.ToString(), | 
 |  |  |                             title = item.ToString(), | 
 |  |  |                             sort = true, | 
 |  |  |                             hide = false, | 
 |  |  |                         }); | 
 |  |  |                     } | 
 |  |  |                     string option = string.Join(",", optionList); | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "Sucess!"; | 
 |  |  |                     objJsonResult.data = optionList; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "初始化表格失败!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 采购订单重新同步 | 
 |  |  |         ///参数:string sql。 | 
 |  |  |         ///返回值:object。 | 
 |  |  |         /// </summary> | 
 |  |  |         [Route("Cg_POOrderBill/Resynchronize")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object Resynchronize(string HBillNo, string HBillType) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |                 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); | 
 |  |  |                 DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + HBillNo + "','" + HBillType + "'", "h_p_WMS_ERPSourceBillToLocal"); | 
 |  |  |                 if (DS == null) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "单据同步失败"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "ERP中不存在该单据号"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "1"; | 
 |  |  |                         objJsonResult.count = 1; | 
 |  |  |                         objJsonResult.Message = "单据同步成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         [Route("POOrderBack")] | 
 |  |  |         [HttpGet] | 
 |  |  |         /// <summary> | 
 |  |  | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         [Route("AuditPOInStockBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object AuditPOInStockBill(string HInterID, string CurUserName) | 
 |  |  |         { | 
 |  |  |             json objjson = new json(); | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); | 
 |  |  |  | 
 |  |  |                 string kdTbaleName = "AIS20210811135644"; | 
 |  |  |                 string sql = string.Format(@" | 
 |  |  |  SELECT B.HINTERID,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 FROM  | 
 |  |  |    CG_POINSTOCKBILLSUB B   | 
 |  |  |  JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID | 
 |  |  |  JOIN AIS20210811135644..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMASTERID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_BD_UNIT CU ON C.FUNITID =CU.FUNITID | 
 |  |  |  JOIN AIS20210811135644..T_PUR_POORDERENTRY_D CD ON    C.FENTRYID = CD.FENTRYID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID | 
 |  |  |  JOIN AIS20210811135644..T_PUR_POORDERENTRY_F CR ON    C.FENTRYID = CR.FENTRYID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID | 
 |  |  |  JOIN AIS20210811135644..T_PUR_POORDER D ON C.FID =D.FID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID | 
 |  |  |  JOIN AIS20210811135644..T_PUR_POORDERFIN E ON C.FENTRYID =E.FENTRYID | 
 |  |  |  LEFT JOIN AIS20210811135644..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID   | 
 |  |  |  WHERE b.hinterid in ({1}) and M.HERPInterID = 0 | 
 |  |  | ", kdTbaleName, HInterID); | 
 |  |  |                 DataTable dt = oCn.RunProcReturn(sql, "sltz").Tables[0]; | 
 |  |  |                 List<string> fidList = new List<string>(); | 
 |  |  |                 if (dt.Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     foreach (DataRow dr in dt.Rows) | 
 |  |  |                     { | 
 |  |  |                         if (fidList.Contains(dr["FID"].ToString() + dr["HINTERID"].ToString())) | 
 |  |  |                             continue; | 
 |  |  |                         else | 
 |  |  |                             fidList.Add(dr["FID"].ToString() + dr["HINTERID"].ToString()); | 
 |  |  |  | 
 |  |  |                         DataRow[] drs = dt.Select("FID = " + dr["FID"].ToString() + " and HINTERID = " + dr["HINTERID"].ToString()); | 
 |  |  |  | 
 |  |  |                         JObject model = new JObject(); | 
 |  |  |                         model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SLD01_SYS" }); //单据类型 | 
 |  |  |                         model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //通知日期 | 
 |  |  |                         model.Add("FStockOrgId", new JObject() { ["Fnumber"] = dr["FRECEIVENUMBER"].ToString() }); // 收料组织  | 
 |  |  |                         model.Add("FPurOrgId", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() }); //采购组织 | 
 |  |  |                         model.Add("FSupplierId", new JObject() { ["Fnumber"] = dr["FSUPPLIERNUMBER"].ToString() }); //供应商 | 
 |  |  |                         model.Add("FOwnerTypeIdHead", "BD_OwnerOrg");//  货主类型 | 
 |  |  |                         model.Add("FOwnerIdHead", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() });//货主  | 
 |  |  |                         JArray Fentity = new JArray(); | 
 |  |  |                         foreach (var item in drs) | 
 |  |  |                         { | 
 |  |  |                             JObject FentityModel = new JObject(); | 
 |  |  |                             FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMATERIALNUMBER"].ToString() }); // 物料编码    | 
 |  |  |                             FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 单位    | 
 |  |  |                             FentityModel.Add("FPreDeliveryDate", DateTime.Now.ToString("yyyy-MM-dd")); //预计到货日期    | 
 |  |  |                             FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 计价单位    | 
 |  |  |                             FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); //  库存单位    | 
 |  |  |                             FentityModel.Add("FActReceiveQty", Convert.ToDecimal(item["HQTY"])); // 供应商送货数量(提料计划数量 - 已生成送货单数量) | 
 |  |  |                             FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//货主类型 | 
 |  |  |                             FentityModel.Add("FOwnerID", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() });//货主  | 
 |  |  |                             FentityModel.Add("FSrcId", item["FID"].ToString());//源单内码 | 
 |  |  |                             FentityModel.Add("FSRCFORMID", "PUR_PurchaseOrder");//源单类型 | 
 |  |  |                             FentityModel.Add("FSrcBillNo", item["FBILLNO"].ToString());//源单单号 | 
 |  |  |                             FentityModel.Add("FSRCENTRYID", item["FENTRYID"].ToString());//源单分录内码 | 
 |  |  |                             FentityModel.Add("FORDERBILLNO", item["FBILLNO"].ToString());//源单单号 | 
 |  |  |                             FentityModel.Add("FPOORDERENTRYID", item["FENTRYID"].ToString());//源单分录内码 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                             JArray Fentity2 = new JArray(); | 
 |  |  |                             JObject FentityModel2 = new JObject(); | 
 |  |  |                             FentityModel2.Add("FDetailEntity_Link_FRULEID", "PUR_PurchaseOrder-PUR_ReceiveBill"); | 
 |  |  |                             FentityModel2.Add("FDetailEntity_Link_FSTableName", "t_PUR_POOrderEntry"); | 
 |  |  |                             FentityModel2.Add("FDetailEntity_Link_FSBillId", item["FID"].ToString()); | 
 |  |  |                             FentityModel2.Add("FDetailEntity_Link_FSId", item["FEntryID"].ToString()); | 
 |  |  |                             Fentity2.Add(FentityModel2); | 
 |  |  |                             FentityModel.Add("FDetailEntity_Link", Fentity2); | 
 |  |  |                             Fentity.Add(FentityModel); | 
 |  |  |                         } | 
 |  |  |                         model.Add("FDetailEntity", Fentity); //明细信息 | 
 |  |  |  | 
 |  |  |                         JObject _FentityModel = new JObject(); | 
 |  |  |                         _FentityModel.Add("FSettleOrgId", new JObject() { ["Fnumber"] = dr["FSETTLEORGNUMBER"].ToString() }); //  结算组织   | 
 |  |  |                         _FentityModel.Add("FSettleCurrId", new JObject() { ["Fnumber"] = dr["FSETTLECURRNUMBER"].ToString() }); //  结算币别 | 
 |  |  |                         _FentityModel.Add("FPricePoint", 0); //  定价时点 | 
 |  |  |                         model.Add("FinanceEntity ", _FentityModel);//财务信息 | 
 |  |  |                         JObject jsonRoot = new JObject() | 
 |  |  |                         { | 
 |  |  |                             ["Creator"] = "", | 
 |  |  |                             ["NeedUpDateFields"] = new JArray(), | 
 |  |  |                             ["NeedReturnFields"] = new JArray(), | 
 |  |  |                             ["IsDeleteEntry"] = "false", | 
 |  |  |                             ["SubSystemId"] = "", | 
 |  |  |                             ["IsVerifyBaseDataField"] = "false", | 
 |  |  |                             ["Model"] = model | 
 |  |  |                         }; | 
 |  |  |                         LogService.Write(JsonConvert.SerializeObject(jsonRoot)); | 
 |  |  |                         var loginRet = InvokeHelper.Login(); | 
 |  |  |                         var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); | 
 |  |  |                         if (isSuccess == 0) | 
 |  |  |                         { | 
 |  |  |                             objjson.code = "0"; | 
 |  |  |                             objjson.count = 0; | 
 |  |  |                             objjson.Message = loginRet; | 
 |  |  |                             objjson.data = null; | 
 |  |  |                             return objjson; | 
 |  |  |                         } | 
 |  |  |                         var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString()); | 
 |  |  |                         LogService.Write(result); | 
 |  |  |                         if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE") | 
 |  |  |                         { | 
 |  |  |                             //更新送货单 主表 ERP单据号 以及 ERP主内玛 | 
 |  |  |                             string FBillNo = JObject.Parse(result)["Result"]["Number"].ToString(); | 
 |  |  |                             string FID = JObject.Parse(result)["Result"]["Id"].ToString(); | 
 |  |  |  | 
 |  |  |                             string updateSql = string.Format(@" | 
 |  |  |  update a set  | 
 |  |  |  a.HERPInterID = {0} , | 
 |  |  |  a.HERPBillNO   ='{1}' | 
 |  |  |  from Cg_POInStockBillMain a | 
 |  |  |  join Cg_POInStockBillSub b on a.hinterid = b.hinterid | 
 |  |  |  where b.HInterID in ({2}) | 
 |  |  |  and b. HSOURCEINTERID = {3} | 
 |  |  |  and a.HERPInterID = 0 | 
 |  |  | ", FID, FBillNo, dr["HINTERID"].ToString(), dr["FID"].ToString()); | 
 |  |  |                             oCn.RunProc(updateSql); | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             objjson.code = "0"; | 
 |  |  |                             objjson.count = 0; | 
 |  |  |                             objjson.Message = result; | 
 |  |  |                             objjson.data = null; | 
 |  |  |                             return objjson; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 sql = string.Format(@"update Cg_POInStockBillMain set  | 
 |  |  | HBillStatus = 2 , | 
 |  |  | HChecker   ='{0}', | 
 |  |  | HCheckDate   = getdate() | 
 |  |  | where HInterID in ({1})", CurUserName, HInterID); | 
 |  |  |  | 
 |  |  |                 oCn.RunProc(sql); | 
 |  |  |  | 
 |  |  |                 objjson.code = "1"; | 
 |  |  |                 objjson.count = 1; | 
 |  |  |                 objjson.Message = "操作成功"; | 
 |  |  |                 objjson.data = null; | 
 |  |  |                 return objjson; | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) | 
 |  |  |             { | 
 |  |  |  | 
 |  |  |                 objjson.code = "0"; | 
 |  |  |                 objjson.count = 0; | 
 |  |  |                 objjson.Message = "操作失败" + ex.Message.ToString(); | 
 |  |  |                 objjson.data = null; | 
 |  |  |                 return objjson; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         //判断是否存在权限,并写入日志 | 
 |  |  |         public static bool Security_Log(string gnsy, int LogTF, bool Msg, string CurUserName) | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // | 
 |  |  |         #region 采购订单 保存/编辑功能 | 
 |  |  |         [Route("Cg_POOrderBill/POOrderBillEdit")] | 
 |  |  |         [HttpPost] | 
 |  |  |         public object POOrderBillEdit([FromBody] JObject sMainSub) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 var _value = sMainSub["sMainSub"].ToString(); | 
 |  |  |                 string msg1 = _value.ToString(); | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |                 //保存主表 | 
 |  |  |                 objJsonResult = AddBillMain(msg1); | 
 |  |  |                 if (objJsonResult.code == "0") | 
 |  |  |                 { | 
 |  |  |                     oCN.RollBack(); | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = objJsonResult.Message; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 oCN.Commit(); | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "单据保存成功!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "保存失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public json AddBillMain(string msg1) | 
 |  |  |         { | 
 |  |  |             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
 |  |  |             string msg2 = sArray[0].ToString(); //主表数据 | 
 |  |  |             string msg3 = sArray[1].ToString(); //子表数据 | 
 |  |  |             int OperationType = int.Parse(sArray[2].ToString()); // 数据类型 1添加 3修改 | 
 |  |  |             string user = sArray[3].ToString(); | 
 |  |  |             string msg_allVal = sArray[4].ToString(); //主表+子表所有数据 | 
 |  |  |  | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 msg2 = "[" + msg2.ToString() + "]"; | 
 |  |  |                 List<ClsCg_POOrderBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillMain>>(msg2); | 
 |  |  |  | 
 |  |  |                 long HInterID = mainList[0].HInterID;//递入type得到的单据ID | 
 |  |  |                 string HBillNo = mainList[0].HBillNo;//递入type得到的单据号 | 
 |  |  |                 long HPRDORGID = mainList[0].HPRDORGID;//组织 | 
 |  |  |                 DateTime HDate = mainList[0].HDate;//日期 | 
 |  |  |                 string HRemark = mainList[0].HRemark;//备注 | 
 |  |  |                 long HSupID = mainList[0].HSupID;//供应商 | 
 |  |  |                 long HEmpID = mainList[0].HEmpID;//业务员 | 
 |  |  |                 long HDeptID = mainList[0].HDeptID;//部门 | 
 |  |  |                 long HCurID = mainList[0].HCurID;//币别 | 
 |  |  |                 Single HExRate = mainList[0].HExRate;//汇率 | 
 |  |  |                 long HManagerID = mainList[0].HManagerID;//主管 | 
 |  |  |                 long HPSStyleID = mainList[0].HPSStyleID;//采购方式 | 
 |  |  |                 long HSSID = mainList[0].HSSID;//结算方式 | 
 |  |  |                 DateTime HSSDate = mainList[0].HSSDate;//结算日期 | 
 |  |  |                 string HMaker = user;//制单人 | 
 |  |  |                 string HAddress = mainList[0].HAddress;//地址 | 
 |  |  |                 string HExplanation = mainList[0].HExplanation;//摘要 | 
 |  |  |                 string HInnerBillNo = mainList[0].HInnerBillNo;//内部单据号  | 
 |  |  |  | 
 |  |  |                 List<ClsCg_POOrderBillMain> mainList2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillMain>>(msg2); | 
 |  |  |                 DateTime dt = DateTime.Now; | 
 |  |  |  | 
 |  |  |                 long HYear = mainList2[0].HYear == null ? 0 : mainList2[0].HYear; | 
 |  |  |                 long HPeriod = mainList2[0].HPeriod == null ? 0 : mainList2[0].HPeriod; | 
 |  |  |                 string HBillType = mainList2[0].HBillType == null ? "''" : mainList2[0].HBillType; | 
 |  |  |                 string HBillSubType = mainList2[0].HBillSubType == null ? "''" : mainList2[0].HBillSubType; | 
 |  |  |                 long HBillStatus = mainList2[0].HBillStatus == null ? 0 : mainList2[0].HBillStatus; | 
 |  |  |                 string HChecker = mainList2[0].HChecker == null ? "''" : mainList2[0].HChecker; | 
 |  |  |                 string HCheckDate = mainList2[0].HCheckDate == null ? "''" : mainList2[0].HCheckDate; | 
 |  |  |                 string HMakeDate = mainList2[0].HMakeDate == null ? "''" : mainList2[0].HMakeDate; | 
 |  |  |                 long HERPInterID = mainList2[0].HERPInterID == null ? 0 : mainList2[0].HERPInterID; | 
 |  |  |                 string HERPBillType = mainList2[0].HERPBillType == null ? "''" : mainList2[0].HERPBillType; | 
 |  |  |                 long HPURCHASEORGID = mainList2[0].HPURCHASEORGID == null ? 0 : mainList2[0].HPURCHASEORGID; | 
 |  |  |  | 
 |  |  |                 long HPURCHASERGROUPID = mainList2[0].HPURCHASERGROUPID == null ? 0 : mainList2[0].HPURCHASERGROUPID;   //采购组 | 
 |  |  |                 long HPROVIDERID = mainList2[0].HPROVIDERID == null ? 0 : mainList2[0].HPROVIDERID;   //供货方 | 
 |  |  |                 long HSETTLEID = mainList2[0].HSETTLEID == null ? 0 : mainList2[0].HSETTLEID;//结算方 | 
 |  |  |                 long HCHARGEID = mainList2[0].HCHARGEID == null ? 0 : mainList2[0].HCHARGEID;//收款方 | 
 |  |  |                 string HBUSINESSTYPE = mainList2[0].HBUSINESSTYPE == null ? "''" : mainList2[0].HBUSINESSTYPE; //业务类型 | 
 |  |  |                 string HPROVIDERADDRESS = mainList2[0].HPROVIDERADDRESS == null ? "''" : mainList2[0].HPROVIDERADDRESS;   //供货方地址 | 
 |  |  |                 long HCORRESPONDORGID = mainList2[0].HCORRESPONDORGID == null ? 0 : mainList2[0].HCORRESPONDORGID;   //对应组织 | 
 |  |  |                 long HPROVIDERCONTACTID = mainList2[0].HPROVIDERCONTACTID == null ? 0 : mainList2[0].HPROVIDERCONTACTID;//供货方联系人 | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList"); | 
 |  |  |  | 
 |  |  |                 if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增 | 
 |  |  |                 { | 
 |  |  |                     DataSet Ds; | 
 |  |  |                     Int64 NewHInterID = 1; | 
 |  |  |                     Ds = oCN.RunProcReturn("select MAX(HInterID)HInterID from Cg_POOrderBillMain", "Cg_POOrderBillMain"); | 
 |  |  |                     if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0) | 
 |  |  |                     { | 
 |  |  |                         NewHInterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()); | 
 |  |  |                         NewHInterID += 1; | 
 |  |  |                     } | 
 |  |  |                     //主表 | 
 |  |  |                     oCN.RunProc(@"Insert Into Cg_POOrderBillMain    | 
 |  |  |                         (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus | 
 |  |  |                        ,HAddress,HSSID,HSSDate,HPSStyleID,HSupID,HCurID | 
 |  |  |                        ,HExRate,HEmpID,HManagerID,HDeptID,HExplanation,HRemark,HInnerBillNo | 
 |  |  |                        ,HChecker,HCheckDate,HMaker,HMakeDate | 
 |  |  |                        ,HERPInterID,HERPBillType,HPURCHASEORGID | 
 |  |  |                         ,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID) | 
 |  |  |                         values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1102 + "','" + | 
 |  |  |                     HBillSubType + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress + | 
 |  |  |                     "'," + HSSID + ",'" + HSSDate + "'," + HPSStyleID + "," + HSupID + "," + HCurID + | 
 |  |  |                     "," + HExRate + "," + HEmpID + "," + HManagerID + "," + HDeptID + ",'" + HExplanation + "','" + HRemark + "','" + HInnerBillNo + "','" + HChecker + "','" + HCheckDate + "','" + HMaker + "','" + | 
 |  |  |                     HMakeDate + "'," + HERPInterID + ",'" + HERPBillType + "'," + HPURCHASEORGID + "," + HPURCHASERGROUPID + "," | 
 |  |  |                     + HPROVIDERID + "," + HSETTLEID + "," + HCHARGEID + ",'" + HBUSINESSTYPE + "','" + HPROVIDERADDRESS + "'," | 
 |  |  |                     + HCORRESPONDORGID + "," + HPROVIDERCONTACTID + ")"); | 
 |  |  |                 } | 
 |  |  |                 else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0) | 
 |  |  |                 { //修改 | 
 |  |  |                     oCN.RunProc("update Cg_POOrderBillMain  set " + | 
 |  |  |                                 "HRemark='" + HRemark + "', HChecker='" + HMaker + "', HCheckDate=getdate()" + | 
 |  |  |                                  ",HSSID=" + HSSID + ",HPSStyleID=" + HPSStyleID + ",HSupID=" + HSupID + ",HCurID=" + HCurID | 
 |  |  |                                  + ",HExRate=" + HExRate + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID | 
 |  |  |                                  + ",HAddress='" + HAddress + "',HSSDate='" + HSSDate + "' where HInterID=" + HInterID); | 
 |  |  |  | 
 |  |  |                     //删除子表 | 
 |  |  |                     oCN.RunProc("delete from Cg_POOrderBillSub where HInterID='" + HInterID + "'"); | 
 |  |  |                 } | 
 |  |  |                 //保存子表 | 
 |  |  |                 objJsonResult = AddBillSub(msg3, HInterID, OperationType); | 
 |  |  |  | 
 |  |  |                 if (objJsonResult.code == "0") | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = objJsonResult.Message; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = null; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public json AddBillSub(string msg3, long HInterID, int OperationType) | 
 |  |  |         { | 
 |  |  |             List<ClsCg_POOrderBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(msg3); | 
 |  |  |  | 
 |  |  |             List<ClsCg_POOrderBillSub> DetailColl2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(msg3); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             string HSourceBillNo = DetailColl2[0].HSourceBillNo == null ? "''" : DetailColl2[0].HSourceBillNo; | 
 |  |  |             string HSourceBillType = DetailColl2[0].HSourceBillType == null ? "''" : DetailColl2[0].HSourceBillType; | 
 |  |  |             double HRelationQty = DetailColl2[0].HRelationQty == null ? 0 : DetailColl2[0].HRelationQty; | 
 |  |  |             double HBackRelationQty = DetailColl2[0].HBackRelationQty == null ? 0 : DetailColl2[0].HBackRelationQty; | 
 |  |  |             long HPropertyID = DetailColl2[0].HPropertyID == null ? 0 : DetailColl2[0].HPropertyID; | 
 |  |  |             string HBatChNo = DetailColl2[0].HBatChNo == null ? "''" : DetailColl2[0].HBatChNo; | 
 |  |  |             long HAuxPropID = DetailColl2[0].HAuxPropID == null ? 0 : DetailColl2[0].HAuxPropID; | 
 |  |  |             string HMTONo = DetailColl2[0].HMTONo == null ? "''" : DetailColl2[0].HMTONo; | 
 |  |  |             long HERPInterID = DetailColl2[0].HERPInterID == null ? 0 : DetailColl2[0].HERPInterID; | 
 |  |  |             long HERPEntryID = DetailColl2[0].HERPEntryID == null ? 0 : DetailColl2[0].HERPEntryID; | 
 |  |  |  | 
 |  |  |             string HSeOrderBillNo = DetailColl2[0].HSeOrderBillNo == null ? "''" : DetailColl2[0].HSeOrderBillNo; | 
 |  |  |             string HRemark = DetailColl2[0].HRemark == null ? "''" : DetailColl2[0].HRemark; | 
 |  |  |             string HSourceInterID = DetailColl2[0].HSourceInterID == null ? "''" : DetailColl2[0].HSourceInterID; | 
 |  |  |             string HSourceEntryID = DetailColl2[0].HSourceEntryID == null ? "''" : DetailColl2[0].HSourceEntryID; | 
 |  |  |  | 
 |  |  |             long HSEQ = DetailColl2[0].HSEQ == null ? 0 : DetailColl2[0].HSEQ;//行号 | 
 |  |  |             long HRECEIVEDEPTID = DetailColl2[0].HRECEIVEDEPTID == null ? 0 : DetailColl2[0].HRECEIVEDEPTID;//收料部门 | 
 |  |  |             string HSUPPLIERLOT = DetailColl2[0].HSUPPLIERLOT == null ? "''" : DetailColl2[0].HSUPPLIERLOT;//供应商批号 | 
 |  |  |             long HBOMID = DetailColl2[0].HBOMID == null ? 0 : DetailColl2[0].HBOMID;//BOM版本 | 
 |  |  |             long HSTOCKUNITID = DetailColl2[0].HSTOCKUNITID == null ? 0 : DetailColl2[0].HSTOCKUNITID;//库存单位 | 
 |  |  |             long HBASEUNITID = DetailColl2[0].HBASEUNITID == null ? 0 : DetailColl2[0].HBASEUNITID;//基本单位 | 
 |  |  |             string HBFLOWID = DetailColl2[0].HBFLOWID == null ? "''" : DetailColl2[0].HBFLOWID; //业务流程 | 
 |  |  |             long HGIVEAWAY = DetailColl2[0].HGIVEAWAY == null ? 0 : DetailColl2[0].HGIVEAWAY;   //是否赠品 | 
 |  |  |             string HROWTYPE = DetailColl2[0].HROWTYPE == null ? "''" : DetailColl2[0].HROWTYPE;//产品类型 | 
 |  |  |             double HBASEUNITQTY = DetailColl2[0].HBASEUNITQTY == null ? 0 : DetailColl2[0].HBASEUNITQTY;//基本单位数量 | 
 |  |  |             double HSTOCKBASEQTY = DetailColl2[0].HSTOCKBASEQTY == null ? 0 : DetailColl2[0].HSTOCKBASEQTY; //库存基本数量 | 
 |  |  |             string HREQTRACENO = DetailColl2[0].HREQTRACENO == null ? "''" : DetailColl2[0].HREQTRACENO;//需求跟踪号 | 
 |  |  |             double HTAXNETPRICE = DetailColl2[0].HTAXNETPRICE == null ? 0 : DetailColl2[0].HTAXNETPRICE; //含税净价 | 
 |  |  |             double HPRICECOEFFICIENT = DetailColl2[0].HPRICECOEFFICIENT == null ? 0 : DetailColl2[0].HPRICECOEFFICIENT;//价格系数 | 
 |  |  |             long HTAXCOMBINATION = DetailColl2[0].HTAXCOMBINATION == null ? 0 : DetailColl2[0].HTAXCOMBINATION;//税组合 | 
 |  |  |             long HPRICEUNITID = DetailColl2[0].HPRICEUNITID == null ? 0 : DetailColl2[0].HPRICEUNITID;//计价单位 | 
 |  |  |             long HPRICELISTENTRY = DetailColl2[0].HPRICELISTENTRY == null ? 0 : DetailColl2[0].HPRICELISTENTRY;//分录价目表 | 
 |  |  |             long HPAYORGID = DetailColl2[0].HPAYORGID == null ? 0 : DetailColl2[0].HPAYORGID;//付款组织 | 
 |  |  |             long HSETTLEMODEID = DetailColl2[0].HSETTLEMODEID == null ? 0 : DetailColl2[0].HSETTLEMODEID;//结算方式 | 
 |  |  |             long HSETTLECURRID = DetailColl2[0].HSETTLECURRID == null ? 0 : DetailColl2[0].HSETTLECURRID;//结算币别 | 
 |  |  |             long HEXCHANGETYPEID = DetailColl2[0].HEXCHANGETYPEID == null ? 0 : DetailColl2[0].HEXCHANGETYPEID;//汇率类型 | 
 |  |  |             long HPAYCONDITIONID = DetailColl2[0].HPAYCONDITIONID == null ? 0 : DetailColl2[0].HPAYCONDITIONID;//付款条件 | 
 |  |  |             double HEXCHANGERATE = DetailColl2[0].HEXCHANGERATE == null ? 0 : DetailColl2[0].HEXCHANGERATE;//汇率 | 
 |  |  |             long HLOCALCURRID = DetailColl2[0].HLOCALCURRID == null ? 0 : DetailColl2[0].HLOCALCURRID;//本位币 | 
 |  |  |             long HISINCLUDEDTAX = DetailColl2[0].HISINCLUDEDTAX == null ? 0 : DetailColl2[0].HISINCLUDEDTAX;//是否含税 | 
 |  |  |             long HISPRICEEXCLUDETAX = DetailColl2[0].HISPRICEEXCLUDETAX == null ? 0 : DetailColl2[0].HISPRICEEXCLUDETAX;//价外税 | 
 |  |  |             long HTAXRATEID = DetailColl2[0].HTAXRATEID == null ? 0 : DetailColl2[0].HTAXRATEID;//税率名称 | 
 |  |  |             double HCOSTPERCENT = DetailColl2[0].HCOSTPERCENT == null ? 0 : DetailColl2[0].HCOSTPERCENT;//计入成本比例% | 
 |  |  |             double HCOSTAMOUNT = DetailColl2[0].HCOSTAMOUNT == null ? 0 : DetailColl2[0].HCOSTAMOUNT;//计入成本金额 | 
 |  |  |             long HVAT = DetailColl2[0].HVAT == null ? 0 : DetailColl2[0].HVAT;//增值税 | 
 |  |  |             long HSELLERWITHHOLDING = DetailColl2[0].HSELLERWITHHOLDING == null ? 0 : DetailColl2[0].HSELLERWITHHOLDING;//卖方代扣代缴 | 
 |  |  |             long HBUYERWITHHOLDING = DetailColl2[0].HBUYERWITHHOLDING == null ? 0 : DetailColl2[0].HBUYERWITHHOLDING;//买方代扣代缴 | 
 |  |  |             string HMATERIALDESC = DetailColl2[0].HMATERIALDESC == null ? "''" : DetailColl2[0].HMATERIALDESC; //物料说明 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             int i = 0; | 
 |  |  |             foreach (ClsCg_POOrderBillSub oSub in DetailColl) | 
 |  |  |             { | 
 |  |  |                 i++; | 
 |  |  |                 if (oSub.HQty <= 0 || oSub.HQty == null) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "第" + i + "行,数量不能为0或者小于0"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (oSub.HMaterID == 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "第" + i + "行,物料不能为空"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 //if (oSub.HSourceID == 0) | 
 |  |  |                 //{ | 
 |  |  |                 //    objJsonResult.code = "0"; | 
 |  |  |                 //    objJsonResult.count = 0; | 
 |  |  |                 //    objJsonResult.Message = "第" + i + "行,生产资源不能为空"; | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |  | 
 |  |  |                 if (oSub.HUnitID == 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "第" + i + "行,计量单位不能为空"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 DataSet Cs; | 
 |  |  |                 Int64 NewHEntryID = 1; | 
 |  |  |                 Cs = oCN.RunProcReturn("select MAX(HEntryID)HEntryID from Cg_POOrderBillSub", "Cg_POOrderBillSub"); | 
 |  |  |                 if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString()) != 0) | 
 |  |  |                 { | 
 |  |  |                     NewHEntryID = ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString()); | 
 |  |  |                     NewHEntryID += 1; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 oCN.RunProc($@"Insert into Cg_POOrderBillSub  | 
 |  |  |                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxPrice,HDiscountRate,HRelTaxPrice | 
 |  |  |                ,HMoney,HTaxRate,HTaxMoney,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HSeOrderBillNo,HSeOrderInterID | 
 |  |  |                ,HSeOrderEntryID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo | 
 |  |  |                ,HSourceBillType,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  |                ,HERPInterID,HERPEntryID | 
 |  |  |                 ,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY,HSTOCKBASEQTY | 
 |  |  |                 ,HREQTRACENO,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID,HSETTLEMODEID,HSETTLECURRID | 
 |  |  |                 ,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT | 
 |  |  |                 ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC)  | 
 |  |  |                  values({HInterID},{NewHEntryID},{oSub.HMaterID},{oSub.HUnitID},{(oSub.HQty == null ? 0 : oSub.HQty)} | 
 |  |  |                 ,{oSub.HPrice},{oSub.HTaxPrice},{oSub.HDiscountRate},{oSub.HRelTaxPrice},{oSub.HMoney},{oSub.HTaxRate},{oSub.HTaxMoney},{oSub.HlineTotal},{oSub.HlineTotalBB},'{oSub.HDate}',{oSub.HInStockQty},{oSub.HInvoiceQty},{HSeOrderBillNo},{oSub.HSeOrderInterID},{oSub.HSeOrderEntryID},'{HRemark}',{HSourceInterID},{HSourceEntryID},{HSourceBillNo},{HSourceBillType},{HRelationQty},{HBackRelationQty},{HPropertyID},{HBatChNo}, | 
 |  |  |                   {HAuxPropID},{HMTONo},{HERPInterID},{HERPEntryID},{HSEQ},{HRECEIVEDEPTID},'{HSUPPLIERLOT}',{HBOMID},{HSTOCKUNITID},{HBASEUNITID},'{HBFLOWID}',{HGIVEAWAY},{HROWTYPE},{HBASEUNITQTY},{HSTOCKBASEQTY},'{HREQTRACENO}',{HTAXNETPRICE},{HPRICECOEFFICIENT},{HTAXCOMBINATION},{HPRICEUNITID},{HPRICELISTENTRY},{HPAYORGID},{HSETTLEMODEID},{HSETTLECURRID},{HEXCHANGETYPEID},{HPAYCONDITIONID},{HEXCHANGERATE},{HLOCALCURRID},{HISINCLUDEDTAX},{HISPRICEEXCLUDETAX},{HTAXRATEID},{HCOSTPERCENT},{HCOSTAMOUNT},{HVAT},{HSELLERWITHHOLDING},{HBUYERWITHHOLDING},'{HMATERIALDESC}')"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             objJsonResult.code = "1"; | 
 |  |  |             objJsonResult.count = 1; | 
 |  |  |             objJsonResult.Message = null; | 
 |  |  |             objJsonResult.data = null; | 
 |  |  |             return objJsonResult; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         [Route("Cg_POOrderBill/Cg_POOrderBillSaveApi")] | 
 |  |  |         [HttpPost] | 
 |  |  |         public object Cg_POOrderBillSaveApi([FromBody] JObject sMainSub) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //LogService.Write("采购订单同步,保存方法执行完成异常:" + sMainSub.ToString()); | 
 |  |  |                 var model = sMainSub["model"].ToString(); | 
 |  |  |                 var entry = sMainSub["model"]["HENTRY"].ToString(); | 
 |  |  |  | 
 |  |  |                 model = "[" + model.ToString() + "]"; | 
 |  |  |                 List<ClsCg_POOrderBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillMain>>(model); | 
 |  |  |                 List<ClsCg_POOrderBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(entry); | 
 |  |  |                 string sql = string.Empty; | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |                 sql = $"delete Cg_POOrderBillMain where HinterID = {mainList[0].HInterID}"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 sql = $"delete Cg_POOrderBillSub where HinterID = {mainList[0].HInterID}"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 //主表 | 
 |  |  |                 oCN.RunProc(@"Insert Into Cg_POOrderBillMain    | 
 |  |  |                         (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus | 
 |  |  |                        ,HAddress,HSSID,HSSDate,HPSStyleID,HSupID,HCurID | 
 |  |  |                        ,HExRate,HEmpID,HManagerID,HDeptID,HExplanation,HRemark,HInnerBillNo | 
 |  |  |                        ,HChecker,HCheckDate,HMaker,HMakeDate | 
 |  |  |                        ,HERPInterID,HERPBillType,HPURCHASEORGID | 
 |  |  |                         ,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID) | 
 |  |  |                         values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1102 + "','" + | 
 |  |  |                     mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "','" + mainList[0].HBillStatus + "','" + mainList[0].HAddress + | 
 |  |  |                     "'," + mainList[0].HSSID + ",'" + mainList[0].HSSDate + "'," + mainList[0].HPSStyleID + "," + mainList[0].HSupID + "," + mainList[0].HCurID + | 
 |  |  |                     "," + mainList[0].HExRate + "," + mainList[0].HEmpID + "," + mainList[0].HManagerID + "," + mainList[0].HDeptID + ",'" + mainList[0].HExplanation + "','" + mainList[0].HRemark + "','" + mainList[0].HInnerBillNo + "','" + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HMaker + "','" + | 
 |  |  |                     mainList[0].HMakeDate + "'," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "'," + mainList[0].HPURCHASEORGID + "," + mainList[0].HPURCHASERGROUPID + "," | 
 |  |  |                     + mainList[0].HPROVIDERID + "," + mainList[0].HSETTLEID + "," + mainList[0].HCHARGEID + ",'" + mainList[0].HBUSINESSTYPE + "','" + mainList[0].HPROVIDERADDRESS + "'," | 
 |  |  |                     + mainList[0].HCORRESPONDORGID + "," + mainList[0].HPROVIDERCONTACTID + ")"); | 
 |  |  |                 //保存主表 | 
 |  |  |                 foreach (var oSub in subList) | 
 |  |  |                 { | 
 |  |  |                     sql = $@" | 
 |  |  | Insert into Cg_POOrderBillSub  | 
 |  |  | (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX,HTaxPrice,HDiscountRate,HRelTaxPrice | 
 |  |  | ,HMoney,HTaxRate,HTaxMoney,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HSeOrderBillNo,HSeOrderInterID | 
 |  |  | ,HSeOrderEntryID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo | 
 |  |  | ,HSourceBillType,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  | ,HERPInterID,HERPEntryID | 
 |  |  | ,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY,HSTOCKBASEQTY | 
 |  |  | ,HREQTRACENO,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID,HSETTLEMODEID,HSETTLECURRID | 
 |  |  | ,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT | 
 |  |  | ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC)  | 
 |  |  | values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}','{oSub.HPrice}','{oSub.HTaxRate_TAX}','{oSub.HTaxMoney_TAX}','{oSub.HDiscountRate}','{oSub.HRelTaxPrice}', | 
 |  |  | '{oSub.HMoney}','{oSub.HTaxRate}','{oSub.HTaxMoney}','{oSub.HlineTotal}','{oSub.HlineTotalBB}','{oSub.HDate}','{oSub.HInStockQty}','{oSub.HInvoiceQty}','{oSub.HSeOrderBillNo}','{oSub.HSeOrderInterID}', | 
 |  |  | '{oSub.HSeOrderEntryID}','{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}', | 
 |  |  | '{oSub.HSourceBillType}','{oSub.HRelationQty}','{oSub.HBackRelationQty}','{oSub.HPropertyID}','{oSub.HBatChNo}','{oSub.HAuxPropID}','{oSub.HMTONo}', | 
 |  |  | '{oSub.HERPInterID}','{oSub.HERPEntryID}', | 
 |  |  | '{oSub.HSEQ}','{oSub.HRECEIVEDEPTID}','{oSub.HSUPPLIERLOT}','{oSub.HBOMID}','{oSub.HSTOCKUNITID}','{oSub.HBASEUNITID}','{oSub.HBFLOWID}','{oSub.HGIVEAWAY}','{oSub.HROWTYPE}','{oSub.HBASEUNITQTY}','{oSub.HSTOCKBASEQTY}', | 
 |  |  | '{oSub.HREQTRACENO}','{oSub.HTAXNETPRICE}','{oSub.HPRICECOEFFICIENT}','{oSub.HTAXCOMBINATION}','{oSub.HPRICEUNITID}','{oSub.HPRICELISTENTRY}','{oSub.HPAYORGID}','{oSub.HSETTLEMODEID}','{oSub.HSETTLECURRID}', | 
 |  |  | '{oSub.HEXCHANGETYPEID}','{oSub.HPAYCONDITIONID}','{oSub.HEXCHANGERATE}','{oSub.HLOCALCURRID}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}','{oSub.HCOSTPERCENT}','{oSub.HCOSTAMOUNT}', | 
 |  |  | '{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}','{oSub.HMATERIALDESC}')"; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |                 } | 
 |  |  |                 oCN.Commit(); | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "单据保存成功!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 LogService.Write("采购订单同步异常,保存方法执行完成异常:" + e.Message.ToString()); | 
 |  |  |  | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "保存失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |         /// <summary> | 
 |  |  |         ///删除功能 | 
 |  |  |         /// </summary> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         [Route("Cg_POOrderBill/DeltetCg_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object DeltetCg_POOrderBill(string HInterID) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |                 oCN.RunProc("Delete From Cg_POOrderBillMain where HInterID = " + HInterID); | 
 |  |  |                 oCN.RunProc("Delete From Cg_POOrderBillSub where HInterID = " + HInterID); | 
 |  |  |                 oCN.Commit(); | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "删除成功!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 根据基础资料ID 查找记录 | 
 |  |  |         ///参数:string sql。 | 
 |  |  |         ///返回值:object。 | 
 |  |  |         /// </summary> | 
 |  |  |         [Route("Cg_POOrderBill/cx")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object cx(long HInterID) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid =" + HInterID, "h_v_IF_POOrderBillList"); | 
 |  |  |                 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 = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         #region [同步单据] | 
 |  |  |         [Route("Cg_POOrderBill/Cg_POOrderBillViewApi")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public json Cg_POOrderBillViewApi(string BillNo, string BillType) | 
 |  |  |         { | 
 |  |  |             string sql = string.Empty; | 
 |  |  |             string sReturn = ""; | 
 |  |  |             if (oSystemParameter.ShowBill(ref sReturn) == true) | 
 |  |  |             { | 
 |  |  |                 //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式 | 
 |  |  |                 if (oSystemParameter.omodel.WMS_CloudMode == "Y") | 
 |  |  |                 { | 
 |  |  |                     #region [私有云模式,直接调用数据库存储过程更新] | 
 |  |  |                     try | 
 |  |  |                     { | 
 |  |  |                         oCN.BeginTran(); | 
 |  |  |                         SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); | 
 |  |  |                         DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal"); | 
 |  |  |                         if (DS == null) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = "单据同步失败"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2") | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = "0"; | 
 |  |  |                                 objJsonResult.count = 0; | 
 |  |  |                                 objJsonResult.Message = "ERP中不存在该单据号"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |                             else | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = "1"; | 
 |  |  |                                 objJsonResult.count = 1; | 
 |  |  |                                 objJsonResult.Message = "单据同步成功"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                     catch (Exception e) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     #endregion | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     #region [公有云模式,调用WEBAPI的方式进行更新] | 
 |  |  |                     var json = new | 
 |  |  |                     { | 
 |  |  |                         CreateOrgId = 0, | 
 |  |  |                         Number = BillNo, | 
 |  |  |                         Id = "" | 
 |  |  |                     }; | 
 |  |  |                     #region [金蝶部分] | 
 |  |  |                     //登录金蝶 | 
 |  |  |                     var loginRet = InvokeHelper.Login(); | 
 |  |  |                     var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); | 
 |  |  |                     //判断是否登录成功 | 
 |  |  |                     if (isSuccess < 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = loginRet; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     //查看 获取数据                     | 
 |  |  |                     var _result = InvokeHelper.View("PUR_PurchaseOrder", JsonConvert.SerializeObject(json)); | 
 |  |  |                     var _saveObj = JObject.Parse(_result); | 
 |  |  |                     //判断数据是否获取成功 | 
 |  |  |                     if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "金蝶采购订单同步失败jsonRoot:" + _result; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     #endregion | 
 |  |  |                     //获取主表数据 | 
 |  |  |                     DataSet Ds; | 
 |  |  |                     Int64 InterID = 0; | 
 |  |  |                     Ds = oCN.RunProcReturn("select * from Cg_POOrderBillMain where HBillNo = '" + BillNo + "'", "Cg_POOrderBillMain"); | 
 |  |  |                     if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0) | 
 |  |  |                     { | 
 |  |  |                         InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     #region [主表数据赋值] | 
 |  |  |                     var jsonData = new | 
 |  |  |                     { | 
 |  |  |                         HInterID = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                         HYear = DateTime.Now.Year, | 
 |  |  |                         HPeriod = DateTime.Now.Month, | 
 |  |  |                         HBillType = 1102, | 
 |  |  |                         HBillSubType = 1102, | 
 |  |  |                         HDate = _saveObj["Result"]["Result"]["Date"], | 
 |  |  |                         HBillNo = _saveObj["Result"]["Result"]["BillNo"], | 
 |  |  |                         HBillStatus    = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2 , | 
 |  |  |                         HAddress       = "", | 
 |  |  |                         HSSID          = 0, | 
 |  |  |                         HSSDate = _saveObj["Result"]["Result"]["Date"], | 
 |  |  |                         HPSStyleID     = 0, | 
 |  |  |                         HSupID         = _saveObj["Result"]["Result"]["SupplierId_Id"], | 
 |  |  |                         HCurID         = 0, | 
 |  |  |                         HExRate        = 0, | 
 |  |  |                         HEmpID         = _saveObj["Result"]["Result"]["PurchaserId_Id"], | 
 |  |  |                         HManagerID     = 0, | 
 |  |  |                         HDeptID        = _saveObj["Result"]["Result"]["PurchaseDeptId_Id"], | 
 |  |  |                         HExplanation   = "CLOUD导入", | 
 |  |  |                         HRemark        = "CLOUD导入", | 
 |  |  |                         HInnerBillNo   = _saveObj["Result"]["Result"]["BillNo"], | 
 |  |  |                         HChecker       = _saveObj["Result"]["Result"]["ApproverId"]["Name"], | 
 |  |  |                         HCheckDate     = _saveObj["Result"]["Result"]["ApproveDate"], | 
 |  |  |                         HMaker         = _saveObj["Result"]["Result"]["CreatorId"]["Name"], | 
 |  |  |                         HMakeDate      = _saveObj["Result"]["Result"]["CreateDate"], | 
 |  |  |                         HERPInterID    = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                         HERPBillType   = _saveObj["Result"]["Result"]["BillTypeId_Id"], | 
 |  |  |                         HPURCHASEORGID = _saveObj["Result"]["Result"]["PurchaseOrgId_Id"], | 
 |  |  |                         HPURCHASERGROUPID = _saveObj["Result"]["Result"]["PurchaserGroupId_Id"], | 
 |  |  |                         HPROVIDERID       = _saveObj["Result"]["Result"]["ProviderId_Id"], | 
 |  |  |                         HSETTLEID         = _saveObj["Result"]["Result"]["SettleId_Id"], | 
 |  |  |                         HCHARGEID         = _saveObj["Result"]["Result"]["ChargeId_Id"], | 
 |  |  |                         HBUSINESSTYPE     = _saveObj["Result"]["Result"]["BusinessType"], | 
 |  |  |                         HPROVIDERADDRESS  = _saveObj["Result"]["Result"]["ProviderAddress"], | 
 |  |  |                         HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"], | 
 |  |  |                         HPROVIDERCONTACTID = _saveObj["Result"]["Result"]["ProviderContactId_Id"] | 
 |  |  |                     }; | 
 |  |  |                     #endregion | 
 |  |  |                     // 删除主表对应数据 | 
 |  |  |                     sql = $"delete from Cg_POOrderBillMain where HInterID = " + InterID; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     //插入主表 | 
 |  |  |                     sql = $@" | 
 |  |  |                 insert into Cg_POOrderBillMain | 
 |  |  |                 (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate | 
 |  |  |                ,HBillNo,HBillStatus,HAddress,HSSID,HSSDate,HPSStyleID | 
 |  |  |                ,HSupID,HCurID,HExRate,HEmpID,HManagerID,HDeptID | 
 |  |  |                ,HExplanation,HRemark,HInnerBillNo | 
 |  |  |                ,HChecker,HCheckDate,HMaker,HMakeDate | 
 |  |  |                ,HERPInterID,HERPBillType,HPURCHASEORGID,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID | 
 |  |  |                ,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID | 
 |  |  |                  ) | 
 |  |  |                 values | 
 |  |  |                 ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType}, | 
 |  |  |                 '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},'{jsonData.HAddress}',{jsonData.HSSID}, | 
 |  |  |                 '{jsonData.HSSDate}',{jsonData.HPSStyleID},{jsonData.HSupID},{jsonData.HCurID},{jsonData.HExRate},{jsonData.HEmpID},{jsonData.HManagerID}, | 
 |  |  |                 {jsonData.HDeptID},'{jsonData.HExplanation}','{jsonData.HRemark}','{jsonData.HInnerBillNo}','{jsonData.HChecker}', | 
 |  |  |                 '{jsonData.HCheckDate}','{jsonData.HMaker}','{jsonData.HMakeDate}',{jsonData.HERPInterID},'{jsonData.HERPBillType}', | 
 |  |  |                 {jsonData.HPURCHASEORGID},{jsonData.HPURCHASERGROUPID},'{jsonData.HPROVIDERID}',{jsonData.HSETTLEID},{jsonData.HCHARGEID}, | 
 |  |  |                 '{jsonData.HBUSINESSTYPE}','{jsonData.HPROVIDERADDRESS}',{jsonData.HCORRESPONDORGID},{jsonData.HPROVIDERCONTACTID})"; | 
 |  |  |  | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     #region [申请子表变量] | 
 |  |  |                     var dataArr = _saveObj["Result"]["Result"]["POOrderEntry"]; | 
 |  |  |  | 
 |  |  |                     DataSet Cs; | 
 |  |  |                     double RelationQty = 0; | 
 |  |  |                     #endregion | 
 |  |  |                     int i = 0; | 
 |  |  |  | 
 |  |  |                     // 获取子表数据 | 
 |  |  |                     Cs = oCN.RunProcReturn("select * from Cg_POOrderBillSub where HInterID = " + InterID, "Cg_POOrderBillSub"); | 
 |  |  |                     // 删除子表对应数据 | 
 |  |  |                     sql = $"delete from Cg_POOrderBillSub where HInterID = " + InterID; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     foreach (var oSub in dataArr) | 
 |  |  |                     { | 
 |  |  |                         #region [子表数据赋值] | 
 |  |  |  | 
 |  |  |                         if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0) | 
 |  |  |                         { | 
 |  |  |                             RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString()); | 
 |  |  |  | 
 |  |  |                             i++; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         var subData = new | 
 |  |  |                         { | 
 |  |  |                             HInterID = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                             HEntryID = oSub["Id"], | 
 |  |  |                             HMaterID = oSub["MaterialId_Id"], | 
 |  |  |                             HUnitID             = oSub["UnitId_Id"], | 
 |  |  |                             HQty                = oSub["Qty"], | 
 |  |  |                             HPrice              = oSub["Price"], | 
 |  |  |                             HTaxRate_TAX        = oSub["TaxRate"], | 
 |  |  |                             HTaxMoney_TAX       = oSub["TaxAmount"], | 
 |  |  |                             HTaxPrice           = oSub["TaxPrice"], | 
 |  |  |                             HDiscountRate       = oSub["DiscountRate"], | 
 |  |  |                             HRelTaxPrice        = 0, | 
 |  |  |                             HMoney              = oSub["Amount"], | 
 |  |  |                             HTaxRate            = oSub["TaxRate"], | 
 |  |  |                             HTaxMoney           = oSub["TaxAmount"], | 
 |  |  |                             HLineTotal          = 0, | 
 |  |  |                             HlineTotalBB        = 0, | 
 |  |  |                             HDate               = oSub["DeliveryDate"], | 
 |  |  |                             HInStockQty         = 0, | 
 |  |  |                             HInvoiceQty         = 0, | 
 |  |  |                             HRemark             = oSub["Note"], | 
 |  |  |                             HSeOrderBillNo      = "", | 
 |  |  |                             HSeOrderInterID     = 0, | 
 |  |  |                             HSeOrderEntryID     = 0, | 
 |  |  |                             HSourceInterID      = 0, | 
 |  |  |                             HSourceEntryID      = 0, | 
 |  |  |                             HSourceBillNo       = "", | 
 |  |  |                             HSourceBillType     = "", | 
 |  |  |                             HRelationQty        = oSub["JOINQTY"], | 
 |  |  |                             HBackRelationQty    = oSub["STOCKRETQTY"], | 
 |  |  |                             HPropertyID         = 0, | 
 |  |  |                             HBatChNo            = oSub["FLot_Text"], | 
 |  |  |                             HAuxPropID          = oSub["AuxPropId_Id"], | 
 |  |  |                             HMTONo              = oSub["MtoNo"], | 
 |  |  |                             HERPInterID         = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                             HERPEntryID         = oSub["Id"], | 
 |  |  |                             HSEQ                = oSub["Seq"], | 
 |  |  |                             HRECEIVEDEPTID      = oSub["ReceiveDeptId_Id"], | 
 |  |  |                             HSUPPLIERLOT        = oSub["SupplierLot"], | 
 |  |  |                             HBOMID              = oSub["BomId_Id"], | 
 |  |  |                             HSTOCKUNITID        = oSub["StockUnitID_Id"], | 
 |  |  |                             HBASEUNITID         = oSub["BaseUnitId_Id"], | 
 |  |  |                             HBFLOWID            = oSub["FBFLowId_Id"], | 
 |  |  |                             HGIVEAWAY           = oSub["GiveAway"], | 
 |  |  |                             HROWTYPE            = oSub["RowType"], | 
 |  |  |                             HBASEUNITQTY        = oSub["BaseUnitQty"], | 
 |  |  |                             HSTOCKBASEQTY       = oSub["StockBaseQty"], | 
 |  |  |                             HREQTRACENO         = oSub["ReqTraceNo"], | 
 |  |  |                             HMATERIALDESC       = oSub["MultiLanguageText"][0]["MaterialDesc"], | 
 |  |  |                             HRECEIVEORGID       = oSub["ReceiveOrgId_Id"], | 
 |  |  |                             HREQUIREORGID       = oSub["RequireOrgId_Id"], | 
 |  |  |                             HTAXNETPRICE        = oSub["TaxNetPrice"], | 
 |  |  |                             HPRICECOEFFICIENT   = oSub["PriceCoefficient"], | 
 |  |  |                             HTAXCOMBINATION     = oSub["FTaxCombination_Id"], | 
 |  |  |                             HPRICEUNITID        = oSub["PriceUnitId_Id"], | 
 |  |  |                             HPRICELISTENTRY     = oSub["PriceListEntry_Id"], | 
 |  |  |                             HPAYORGID           = oSub["PayOrgId_Id"], | 
 |  |  |                             HSETTLEMODEID       = oSub["EntrySettleModeId_Id"], | 
 |  |  |                             HSETTLECURRID       = 0, | 
 |  |  |                             HEXCHANGETYPEID     = 0, | 
 |  |  |                             HPAYCONDITIONID     = 0, | 
 |  |  |                             HEXCHANGERATE       = 0, | 
 |  |  |                             HLOCALCURRID        = 0, | 
 |  |  |                             HISINCLUDEDTAX      = 0, | 
 |  |  |                             HISPRICEEXCLUDETAX  = 0, | 
 |  |  |                             HSETTLEORGID        = oSub["SettleOrgId_Id"], | 
 |  |  |                             HTAXRATEID          = oSub["POORDERENTRY_TAX"][0]["TaxRateId_Id"], | 
 |  |  |                             HCOSTPERCENT        = oSub["POORDERENTRY_TAX"][0]["CostPercent"], | 
 |  |  |                             HCOSTAMOUNT         = oSub["POORDERENTRY_TAX"][0]["CostAmount"], | 
 |  |  |                             HVAT                = oSub["POORDERENTRY_TAX"][0]["VAT"], | 
 |  |  |                             HSELLERWITHHOLDING  = oSub["POORDERENTRY_TAX"][0]["SellerWithholding"], | 
 |  |  |                             HBUYERWITHHOLDING = oSub["POORDERENTRY_TAX"][0]["BuyerWithholding"], | 
 |  |  |                         }; | 
 |  |  |                         #endregion                        | 
 |  |  |  | 
 |  |  |                         //插入子表 | 
 |  |  |                         sql = $@" | 
 |  |  |                  insert into Cg_POOrderBillSub | 
 |  |  |                  (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX | 
 |  |  |                ,HTaxPrice,HDiscountRate,HRelTaxPrice,HMoney,HTaxRate,HTaxMoney | 
 |  |  |                ,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HRemark | 
 |  |  |                ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType | 
 |  |  |                ,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  |                ,HERPInterID,HERPEntryID,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID | 
 |  |  |                ,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY | 
 |  |  |                ,HSTOCKBASEQTY,HREQTRACENO,HMATERIALDESC,HRECEIVEORGID,HREQUIREORGID | 
 |  |  |                ,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID | 
 |  |  |                ,HSETTLEMODEID,HSETTLECURRID,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID | 
 |  |  |                ,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HSETTLEORGID | 
 |  |  |                ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING | 
 |  |  |                  ) | 
 |  |  |                  values | 
 |  |  |                  ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice}, | 
 |  |  |                   {subData.HTaxRate_TAX},{subData.HTaxMoney_TAX},{subData.HTaxPrice},{subData.HDiscountRate},{subData.HRelTaxPrice},{subData.HMoney},{subData.HTaxRate},{subData.HTaxMoney},{subData.HLineTotal},{subData.HlineTotalBB},'{subData.HDate}',{subData.HInStockQty},{subData.HInvoiceQty},'{subData.HRemark}','{subData.HSeOrderBillNo}',{subData.HSeOrderInterID},{subData.HSeOrderEntryID},{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HRelationQty},{subData.HBackRelationQty},{subData.HPropertyID},'{subData.HBatChNo}',{subData.HAuxPropID},'{subData.HMTONo}',{subData.HERPInterID},{subData.HERPEntryID},{subData.HSEQ},{subData.HRECEIVEDEPTID},'{subData.HSUPPLIERLOT}',{subData.HBOMID},{subData.HSTOCKUNITID},{subData.HBASEUNITID},'{subData.HBFLOWID}','{subData.HGIVEAWAY}','{subData.HROWTYPE}',{subData.HBASEUNITQTY},{subData.HSTOCKBASEQTY},'{subData.HREQTRACENO}','{subData.HMATERIALDESC}',{subData.HRECEIVEORGID},{subData.HREQUIREORGID},{subData.HTAXNETPRICE},'{subData.HPRICECOEFFICIENT}','{subData.HTAXCOMBINATION}',{subData.HPRICEUNITID},'{subData.HPRICELISTENTRY}',{subData.HPAYORGID},{subData.HSETTLEMODEID},{subData.HSETTLECURRID},'{subData.HEXCHANGETYPEID}',{subData.HPAYCONDITIONID},{subData.HEXCHANGERATE},{subData.HLOCALCURRID},{subData.HISINCLUDEDTAX},{subData.HISPRICEEXCLUDETAX},{subData.HSETTLEORGID},{subData.HTAXRATEID},'{subData.HCOSTPERCENT}',{subData.HCOSTAMOUNT},'{subData.HVAT}','{subData.HSELLERWITHHOLDING}','{subData.HBUYERWITHHOLDING}')"; | 
 |  |  |  | 
 |  |  |                         oCN.RunProc(sql); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "单据同步成功!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |  | 
 |  |  |                     #endregion | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             else | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "单据读取失败!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |