| using Model; | 
| using Newtonsoft.Json; | 
| using Newtonsoft.Json.Linq; | 
| using Pub_Class; | 
| using System; | 
| using System.Collections; | 
| using System.Collections.Generic; | 
| using System.Data; | 
| using System.Data.SqlClient; | 
| using System.Web.Http; | 
| using WebAPI.Models; | 
|   | 
| namespace WebAPI.Controllers | 
| { | 
|     //收料通知单Controller | 
|     public class Cg_POInStockBillController : ApiController | 
|     { | 
|         //获取系统参数 | 
|         Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); | 
|   | 
|         public DBUtility.ClsPub.Enum_BillStatus BillStatus; | 
|         public DAL.ClsCg_POInStockBill BillOld = new DAL.ClsCg_POInStockBill(); | 
|         private json objJsonResult = new json(); | 
|         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|         DataSet ds; | 
|   | 
|   | 
|         /// <summary> | 
|         /// 根据基础资料ID 查找记录 | 
|         ///参数:string sql。 | 
|         ///返回值:object。 | 
|         /// </summary> | 
|         [Route("Cg_POInStockBill/cx")] | 
|         [HttpGet] | 
|         public object cx(long HInterID) | 
|         { | 
|             try | 
|             { | 
|   | 
|                 ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where hmainid=" + HInterID, "h_v_IF_POInStockBillList"); | 
|                 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; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 返回收料通知单列表 | 
|         ///参数:string sql。 | 
|         ///返回值:object。 | 
|         /// </summary> | 
|         [Route("Cg_POInStockBill/list")] | 
|         [HttpGet] | 
|         public object list(string sWhere, string user) | 
|         { | 
|             try | 
|             { | 
|                 //判断是否有查询权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBillQuery", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无权限查询!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (sWhere == null || sWhere.Equals("")) | 
|                 { | 
|                     ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList  order by hmainid desc", "h_v_IF_POInStockBillList"); | 
|                 } | 
|                 else | 
|                 { | 
|                     string sql1 = "select * from h_v_IF_POInStockBillList where 1 = 1 "; | 
|                     string sql = sql1 + sWhere + " order by 日期 desc,hmainid desc"; | 
|                     ds = oCN.RunProcReturn(sql, "h_v_IF_POInStockBillList"); | 
|                 } | 
|   | 
|                 //if (ds.Tables[0].Rows.Count != 0 || ds != null) | 
|                 //{ | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "Sucess!"; | 
|                 objJsonResult.data = ds.Tables[0]; | 
|                 return objJsonResult; | 
|                 //} | 
|                 //else | 
|                 //{ | 
|                 //objJsonResult.code = "0"; | 
|                 //objJsonResult.count = 0; | 
|                 //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; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         ///删除功能 | 
|         /// </summary> | 
|         /// <returns></returns> | 
|         [Route("Cg_POInStockBill/DeltetPOInStockBill")] | 
|         [HttpGet] | 
|         public object DeltetPOInStockBill(string HInterID, string HsupId, string HQty, string HSourceInterID, string HSourceEntryID, string user) | 
|         { | 
|             try | 
|             { | 
|                 DataSet dss; | 
|                 //判断是否有删除的权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBill_Drop", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无删除权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (HInterID == null || HInterID.Equals("")) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "HInterID不能为空!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 string HBillNo = ""; | 
|                 ds = oCN.RunProcReturn("select * from Cg_POInStockBillMain where HInterID=" + HInterID, "Cg_POInStockBillMain"); | 
|                 if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "没有数据,无法删除!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; ; | 
|                 } | 
|                 else | 
|                 { | 
|                     HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); | 
|                 } | 
|   | 
|                 //删除前控制=========================================       | 
|                 string sql1 = "exec h_p_Cg_POInStockBill_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; | 
|                 ds = oCN.RunProcReturn(sql1, "h_p_Cg_POInStockBill_BeforeDelCtrl"); | 
|                 if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "删除失败!原因:删除前判断失败,请与网络管理人员联系"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "删除失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 //==================================================================================   | 
|   | 
|   | 
|                 //先删除 金蝶数据 | 
|                 objJsonResult = DeleteKingDee(HInterID); | 
|                 if (objJsonResult.code == "0") | 
|                     return objJsonResult; | 
|   | 
|                 oCN.BeginTran(); //开始事务 | 
|                 //查询数据 | 
|                 ds = oCN.RunProcReturn("select * from Cg_POInStockBillMain a inner join Cg_POInStockBillSub b on a.HInterID=b.HInterID  where a.HInterID= '" + HInterID + "'", "Cg_POInStockBillMain"); | 
|   | 
|                 //收料通知单删除回填采购订单关联数量 | 
|                 oCN.RunProc("exec h_p_Cg_UpDatePOOrderRelation_Del " + HInterID); | 
|   | 
|                 ////执行存储过程进行反写 该行也是  收料通知单 反写  采购订单  | 
|                 // dss = oCN.RunProcReturn("exec h_p_Cg_POOrderBillMain_Delete " + HQty + ", '" + HSourceInterID + "', '" + HSourceEntryID + "','" + user + " '", "h_p_Cg_POInStockBillMain"); | 
|                 var sReturn = ""; | 
|   | 
|                 oCN.RunProc("delete Cg_POInStockBillMain where HInterID=" + HInterID); | 
|                 oCN.RunProc("delete Cg_POInStockBillSub where HInterID=" + HInterID); | 
|   | 
|                 //if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBacker"]) != 0) | 
|                 //{ | 
|                 //    sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString(); | 
|                 //    objJsonResult.code = "0"; | 
|                 //    objJsonResult.count = 0; | 
|                 //    objJsonResult.Message = sReturn; | 
|                 //    objJsonResult.data = null; | 
|                 //    return objJsonResult; | 
|                 //} | 
|                 //if (ds.Tables[0].Rows.Count == 1) | 
|                 //{ | 
|                 //    oCN.RunProc("delete Cg_POInStockBillMain where HInterID=" + HInterID); | 
|                 //    oCN.RunProc("delete Cg_POInStockBillSub where HInterID=" + HInterID); | 
|                 //} | 
|                 //else | 
|                 //{ | 
|                 //    oCN.RunProc($"delete Cg_POInStockBillSub where HInterID={ HInterID}and HEntryID={HsupId}"); | 
|                 //} | 
|   | 
|   | 
|                 oCN.Commit(); | 
|   | 
|   | 
|                 //删除后控制==================================================================================       | 
|                 string sql2 = "exec h_p_Cg_POInStockBill_AfterDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; | 
|                 ds = oCN.RunProcReturn(sql2, "h_p_Cg_POInStockBill_AfterDelCtrl"); | 
|                 if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     sReturn = "删除后判断失败,请与网络管理人员联系"; | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "删除失败!原因:" + sReturn; | 
|                     objJsonResult.data = null; | 
|                     oCN.RollBack(); | 
|                     return objJsonResult; | 
|                 } | 
|                 if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") | 
|                 { | 
|                     sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString(); | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "删除失败!原因:" + sReturn; | 
|                     objJsonResult.data = null; | 
|                     oCN.RollBack(); | 
|                     return objJsonResult; | 
|                 } | 
|                 //============================================================================================== | 
|   | 
|   | 
|                 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; | 
|             } | 
|         } | 
|   | 
|         #region 根据物料内码获取物料信息 | 
|         [Route("Cg_POInStockBill/getMaterialByMaterID")] | 
|         [HttpGet] | 
|         public ApiResult<DataTable> getMaterialByMaterID(Int64 HMaterID) | 
|         { | 
|             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|   | 
|             string sql = "select a.HItemID HMaterID,a.HNumber HMaterNumber,a.HName HMaterName,a.HMaterRuleType,a.HModel HMaterModel,a.HUnitID, b.HNumber HUnitNumber, b.HName HUnitName" + | 
|                 " from Gy_Material AS a " + | 
|                 " LEFT OUTER JOIN Gy_Unit AS b on a.HUnitID = b.HItemID " + | 
|                 " where a.HItemID =" + HMaterID; | 
|   | 
|             var dataSet = oCN.RunProcReturn(sql, "Gy_Material"); | 
|   | 
|   | 
|             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) | 
|                 return new ApiResult<DataTable> { code = -1, msg = "不存在该物料" }; | 
|   | 
|             return new ApiResult<DataTable> { code = 1, msg = "查询成功", data = dataSet.Tables[0] }; | 
|         } | 
|         #endregion | 
|   | 
|         /// <summary> | 
|         /// 反审核 | 
|         /// </summary> | 
|         [Route("Cg_POInStockBill/DeAuditPOInStockBill")] | 
|         [HttpGet] | 
|         public object DeAuditPOInStockBill(string HInterID, string user) | 
|         { | 
|             try | 
|             { | 
|                 //判断是否有审核的权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBill_Check", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无审核权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 //先删除 金蝶数据 | 
|                 objJsonResult = DeleteKingDee(HInterID); | 
|                 if (objJsonResult.code == "0") | 
|                     return objJsonResult; | 
|   | 
|                 oCN.BeginTran(); | 
|                 oCN.RunProc("update  Cg_POInStockBillMain  set HERPBillNO='',HERPInterID = 0 ,HBillStatus =5 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; | 
|             } | 
|         } | 
|         //反审核 删除 删除金蝶数据库对应 收料通知到数据 | 
|         public json DeleteKingDee(string HInterID) | 
|         { | 
|             string sql = string.Format("select HinterID,HERPBillNO,HERPInterID from Cg_POInStockBillMain where HERPInterID>0 and hinterid in (" + HInterID + ")"); | 
|             DataTable dt = oCN.RunProcReturn(sql, "deleteDt").Tables[0]; | 
|             if (dt.Rows.Count > 0) | 
|             { | 
|                 foreach (DataRow dr in dt.Rows) | 
|                 { | 
|                     var sJson = new | 
|                     { | 
|                         Numbers = dr["HERPBillNO"].ToString(), | 
|                         Ids = "" | 
|                     }; | 
|                     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.Delete("PUR_ReceiveBill", JsonConvert.SerializeObject(sJson)); | 
|                     //LogService.Write(result); | 
|                     if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "对应金蝶收料通知单删除失败 !" + result; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                 } | 
|             } | 
|             objJsonResult.code = "1"; | 
|             objJsonResult.count = 1; | 
|             objJsonResult.Message = "Sucess!"; | 
|             objJsonResult.data = null; | 
|             return objJsonResult; | 
|         } | 
|   | 
|         #region 收料通知单 保存/编辑功能 | 
|         [Route("Cg_POInStockBill/POInStockBillEdit")] | 
|         [HttpPost] | 
|         public object POInStockBillEdit([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_POInStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillMain>>(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 HWHID = mainList[0].HWHID;//仓库 | 
|                 long HProjectID = mainList[0].HProjectID;//项目 | 
|                 string HMaker = user;//制单人 | 
|                 string HAddress = mainList[0].HAddress;//地址 | 
|                 string HExplanation = mainList[0].HExplanation;//摘要 | 
|                 string HInnerBillNo = mainList[0].HInnerBillNo;//内部单据号  | 
|                 string HInvoiceBillNo = mainList[0].HInvoiceBillNo;//发票编号  | 
|   | 
|                 List<ClsCg_POInStockBillMain> mainList2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillMain>>(msg2); | 
|                 DateTime dt = DateTime.Now; | 
|                 long HCORRESPONDORGID = mainList2[0].HOrgID; | 
|                 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 HMakeDate = mainList2[0].HMakeDate == null ? "''" : mainList2[0].HMakeDate; | 
|                 string HChecker = mainList2[0].HChecker == null ? "''" : mainList2[0].HChecker; | 
|                 string HCheckDate = mainList2[0].HCheckDate == null ? "''" : mainList2[0].HCheckDate; | 
|                 string HOWNERTYPEID = mainList2[0].HOWNERTYPEID == null ? "''" : mainList2[0].HOWNERTYPEID; | 
|                 long HOWNERID = mainList2[0].HOWNERID == null ? 0 : mainList2[0].HOWNERID; | 
|                 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 HSTOCKORGID = mainList2[0].HSTOCKORGID == null ? 0 : mainList2[0].HSTOCKORGID; | 
|                 long HREQUIREORGID = mainList2[0].HREQUIREORGID == null ? 0 : mainList2[0].HREQUIREORGID; | 
|                 long HSTOCKGROUPID = mainList2[0].HSTOCKGROUPID == null ? 0 : mainList2[0].HSTOCKGROUPID; | 
|                 string HSENDBILLNO = mainList2[0].HSENDBILLNO == null ? "''" : mainList2[0].HSENDBILLNO; | 
|                 string HLADBILLNO = mainList2[0].HLADBILLNO == null ? "''" : mainList2[0].HLADBILLNO; | 
|                 long HPURDEPTID = mainList2[0].HPURDEPTID == null ? 0 : mainList2[0].HPURDEPTID; | 
|                 long HPURGROUPID = mainList2[0].HPURGROUPID == null ? 0 : mainList2[0].HPURGROUPID; | 
|                 long HSUPPLYID = mainList2[0].HSUPPLYID == null ? 0 : mainList2[0].HSUPPLYID; | 
|                 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 HSUPPLYADDRESS = mainList2[0].HSUPPLYADDRESS == null ? "''" : mainList2[0].HSUPPLYADDRESS; | 
|                 long HPROVIDERCONTACTID = mainList2[0].HPROVIDERCONTACTID == null ? 0 : mainList2[0].HPROVIDERCONTACTID; | 
|   | 
|                 ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList"); | 
|                 if ((OperationType == 1 || OperationType == 2 || OperationType == 4) && ds.Tables[0].Rows.Count == 0)//新增 | 
|                 { | 
|   | 
|                     //保存前控制========================================= | 
|                     ds = oCN.RunProcReturn("exec h_p_Cg_POInStockBill_BeforeSaveCtrl " + HInterID, "h_p_Cg_POInStockBill_BeforeSaveCtrl"); | 
|   | 
|                     if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "保存前判断失败!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     //========================================================= | 
|                     //主表 | 
|                     string sql = $@"Insert Into Cg_POInStockBillMain    | 
|                         (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate | 
|                         ,HBillNo,HBillStatus,HSupID,HManagerID,HEmpID,HDeptID,HRemark | 
|                         ,HMaker,HMakeDate,HOWNERTYPEID,HOWNERID | 
|                         ,HERPInterID,HERPBillType,HPURCHASEORGID,HSTOCKORGID,HREQUIREORGID | 
|                         ,HSTOCKGROUPID,HSENDBILLNO,HLADBILLNO,HPURDEPTID,HPURGROUPID,HSUPPLYID | 
|                         ,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HSUPPLYADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID,HCurID,HExRate,HAddress,HWHID,HInnerBillNo | 
|                         ,HProjectID,HInvoiceBillNo) | 
|                         values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1103 + "','" + | 
|                     HBillSubType + "','" + HDate + "','" + HBillNo + "'," + HBillStatus + "," + HSupID + | 
|                     "," + HManagerID + "," + HEmpID + "," + HDeptID + ",'" + HRemark + "','" + HMaker + | 
|                     "',getdate()" + ",'" + HOWNERTYPEID + "'," + HOWNERID + "," + HERPInterID + ",'" + HERPBillType + "'," + HPURCHASEORGID + "," + HSTOCKORGID + "," + HREQUIREORGID + "," + | 
|                     HSTOCKGROUPID + ",'" + HSENDBILLNO + "','" + HLADBILLNO + "'," + HPURDEPTID + "," + HPURGROUPID + "," + HSUPPLYID + "," + | 
|                     HSETTLEID + "," + HCHARGEID + ",'" + HBUSINESSTYPE + "','" + HSUPPLYADDRESS + "'," + HCORRESPONDORGID + "," + HPROVIDERCONTACTID + "," + HCurID + "," + HExRate + ",'" + HAddress + "'," + HWHID + ",'" + HInnerBillNo + "',"+ HProjectID + ",'"+ HInvoiceBillNo + "')"; | 
|                     | 
|                     oCN.RunProc(sql); | 
|   | 
|                 } | 
|                 else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0) | 
|                 { //修改 | 
|                     DataSet dss; | 
|                     dss = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList"); | 
|                     //判断是否可编辑 | 
|                     if (dss.Tables[0].Rows[0]["审核人"].ToString() != "" && dss.Tables[0].Rows[0]["审核人"] != null) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "此单据已经被审核,不允许修改!"; | 
|                         objJsonResult.data = 1; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (dss.Tables[0].Rows[0]["状态"].ToString() !="创建") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!"; | 
|                         objJsonResult.data = 1; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     string sql= $@"update Cg_POInStockBillMain  set " + | 
|                                 "HRemark='" + HRemark + "', HUpDater ='" + HMaker + "', HUpDateDate=getdate()" + | 
|                                  ",HSupID=" + HSupID + ",HCurID=" + HCurID | 
|                                  + ",HExRate=" + HExRate + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID | 
|                                  + ",HAddress='" + HAddress + "',HInnerBillNo='" + HInnerBillNo + "',HProjectID="+ HProjectID + ",HInvoiceBillNo='"+ HInvoiceBillNo + "' where HInterID=" + HInterID; | 
|   | 
|                     oCN.RunProc(sql); | 
|   | 
|                     //收料通知单删除回填采购订单关联数量 | 
|                     oCN.RunProc("exec h_p_Cg_UpDatePOOrderRelation_Del " + HInterID); | 
|   | 
|                     //删除子表 | 
|                     oCN.RunProc("delete from Cg_POInStockBillSub where HInterID='" + HInterID + "'"); | 
|                 } | 
|                 //保存子表 | 
|                 objJsonResult = AddBillSub(msg3, HInterID, OperationType,user); | 
|   | 
|                 //收料通知单新增回填采购订单关联数量 | 
|                 oCN.RunProc("exec h_p_Cg_UpDatePOOrderRelation_Add " + HInterID); | 
|   | 
|                 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,string user) | 
|         { | 
|             List<ClsCg_POInStockBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillSub>>(msg3); | 
|   | 
|             List<ClsCg_POInStockBillSub> DetailColl2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillSub>>(msg3); | 
|   | 
|   | 
|             //long HSPID = DetailColl2[0].HSPID == null ? 0 : DetailColl2[0].HSPID; | 
|             long HSourceInterID = DetailColl2[0].HSourceInterID == null ? 0 : DetailColl2[0].HSourceInterID; | 
|             long HSourceEntryID = DetailColl2[0].HSourceEntryID == null ? 0 : DetailColl2[0].HSourceEntryID; | 
|             string HSourceBillNo = DetailColl2[0].HSourceBillNo == null ? "''" : DetailColl2[0].HSourceBillNo; | 
|             string HSourceBillType = DetailColl2[0].HSourceBillType == null ? "''" : DetailColl2[0].HSourceBillType; | 
|             long HAuxPropID = DetailColl2[0].HAuxPropID == null ? 0 : DetailColl2[0].HAuxPropID; | 
|             string HBatchNO = DetailColl2[0].HBatchNO == null ? "''" : DetailColl2[0].HBatchNO; | 
|             string HMTONo = DetailColl2[0].HMTONo == null ? "''" : DetailColl2[0].HMTONo; | 
|             string HPlanMode = DetailColl2[0].HPlanMode == null ? "''" : DetailColl2[0].HPlanMode; | 
|             long HERPInterID = DetailColl2[0].HERPInterID == null ? 0 : DetailColl2[0].HERPInterID; | 
|             long HERPEntryID = DetailColl2[0].HERPEntryID == null ? 0 : DetailColl2[0].HERPEntryID; | 
|             double HRelationQty = DetailColl2[0].HRelationQty == null ? 0 : DetailColl2[0].HRelationQty; | 
|             long HGiveAwayFlag = DetailColl2[0].HGiveAwayFlag == null ? 0 : DetailColl2[0].HGiveAwayFlag; | 
|             double HReceiveQty = DetailColl2[0].HReceiveQty == null ? 0 : DetailColl2[0].HReceiveQty; | 
|             long HSEQ = DetailColl2[0].HSEQ == null ? 0 : DetailColl2[0].HSEQ; | 
|             string HPRODUCEDATE = DetailColl2[0].HPRODUCEDATE == null ? "''" : DetailColl2[0].HPRODUCEDATE; | 
|             string HEXPIRYDATE = DetailColl2[0].HEXPIRYDATE == null ? "''" : DetailColl2[0].HEXPIRYDATE; | 
|             string HSUPPLYLOT = DetailColl2[0].HSUPPLYLOT == null ? "''" : DetailColl2[0].HSUPPLYLOT; | 
|             string HREQTRACENO = DetailColl2[0].HREQTRACENO == null ? "''" : DetailColl2[0].HREQTRACENO; | 
|             long HBOMID = DetailColl2[0].HBOMID == null ? 0 : DetailColl2[0].HBOMID; | 
|             long HSTOCKUNITID = DetailColl2[0].HSTOCKUNITID == null ? 0 : DetailColl2[0].HSTOCKUNITID; | 
|             long HBASEUNITID = DetailColl2[0].HBASEUNITID == null ? 0 : DetailColl2[0].HBASEUNITID; | 
|             long HSTOCKSTATUSID = DetailColl2[0].HSTOCKSTATUSID == null ? 0 : DetailColl2[0].HSTOCKSTATUSID; | 
|             string HKEEPERTYPEID = DetailColl2[0].HKEEPERTYPEID == null ? "''" : DetailColl2[0].HKEEPERTYPEID; | 
|             string HPROJECTNO = DetailColl2[0].HPROJECTNO == null ? "''" : DetailColl2[0].HPROJECTNO; | 
|             string HGIVEAWAY = DetailColl2[0].HGIVEAWAY == null ? "''" : DetailColl2[0].HGIVEAWAY; | 
|             string HCHECKINCOMING = DetailColl2[0].HCHECKINCOMING == null ? "''" : DetailColl2[0].HCHECKINCOMING; | 
|             string HDISCOUNTRATE = DetailColl2[0].HDISCOUNTRATE == null ? "'0'" : DetailColl2[0].HDISCOUNTRATE; | 
|             double HPRICECOEFFICIENT = DetailColl2[0].HPRICECOEFFICIENT == null ? 0 : DetailColl2[0].HPRICECOEFFICIENT; | 
|             long HPRICEUNITID = DetailColl2[0].HPRICEUNITID == null ? 0 : DetailColl2[0].HPRICEUNITID; | 
|             long HPRICELISTENTRY = DetailColl2[0].HPRICELISTENTRY == null ? 0 : DetailColl2[0].HPRICELISTENTRY; | 
|             double HSAMPLEDAMAGEQTY = DetailColl2[0].HSAMPLEDAMAGEQTY == null ? 0 : DetailColl2[0].HSAMPLEDAMAGEQTY; | 
|             double HSAMPLEDAMAGEBASEQTY = DetailColl2[0].HSAMPLEDAMAGEBASEQTY == null ? 0 : DetailColl2[0].HSAMPLEDAMAGEBASEQTY; | 
|             long HPAYORGID = DetailColl2[0].HPAYORGID == null ? 0 : DetailColl2[0].HPAYORGID; | 
|             long HSETTLEORGID = DetailColl2[0].HSETTLEORGID == null ? 0 : DetailColl2[0].HSETTLEORGID; | 
|             long HSETTLECURRID = DetailColl2[0].HSETTLECURRID == null ? 0 : DetailColl2[0].HSETTLECURRID; | 
|             long HSETTLEMODEID = DetailColl2[0].HSETTLEMODEID == null ? 0 : DetailColl2[0].HSETTLEMODEID; | 
|             long HEXCHANGETYPEID = DetailColl2[0].HEXCHANGETYPEID == null ? 0 : DetailColl2[0].HEXCHANGETYPEID; | 
|             long HPAYCONDITONID = DetailColl2[0].HPAYCONDITONID == null ? 0 : DetailColl2[0].HPAYCONDITONID; | 
|             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 HRemark = DetailColl2[0].HRemark == null ? "''" : DetailColl2[0].HRemark; | 
|             string HPOOrderBillNo = DetailColl2[0].HPOOrderBillNo == null ? "''" : DetailColl2[0].HPOOrderBillNo; | 
|   | 
|             int i = 0; | 
|             foreach (ClsCg_POInStockBillSub 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_POInStockBillSub", "Cg_POInStockBillSub"); | 
|                 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; | 
|                 } | 
|                 //反写采购订单单   上面方法中也有反写  此行 跟 返回结果 给注销 | 
|                 string sReturn = ""; | 
|                 //ds = oCN.RunProcReturn("exec h_p_Cg_POOrderBillMain " + oSub.HQty + ", '" + oSub.HSourceInterID + "', '" + oSub.HSourceEntryID + "','" + user + " '", "h_p_Cg_POOrderBillMain"); | 
|                 //if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0) | 
|                 //{ | 
|                 //    sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString(); | 
|                 //    objJsonResult.code = "0"; | 
|                 //    objJsonResult.count = 0; | 
|                 //    objJsonResult.Message = sReturn; | 
|                 //    objJsonResult.data = null; | 
|                 //    return objJsonResult; | 
|                 //} | 
|                  | 
|                 oCN.RunProc($@"Insert into Cg_POInStockBillSub  | 
|                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice | 
|                 ,HMoney,HTaxRate,HTaxMoney,HWHID,HSPID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HPOOrderInterID | 
|                 ,HPOOrderEntryID,HPOORderBillNo,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID | 
|                 ,HRelationQty,HGiveAwayFlag,HReceiveQty,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HSUPPLYLOT,HREQTRACENO,HBOMID,HSTOCKUNITID | 
|                 ,HBASEUNITID,HSTOCKSTATUSID,HKEEPERTYPEID,HPROJECTNO,HCHECKINCOMING,HTAXPRICE,HDISCOUNTRATE | 
|                 ,HPRICECOEFFICIENT,HPRICEUNITID,HPRICELISTENTRY,HSAMPLEDAMAGEQTY,HSAMPLEDAMAGEBASEQTY | 
|                 ,HPAYORGID,HSETTLEORGID,HSETTLECURRID,HSETTLEMODEID,HEXCHANGETYPEID,HPAYCONDITONID | 
|                 ,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX | 
|                 ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HSecUnitID)  | 
|                  values({HInterID},{NewHEntryID},{oSub.HMaterID},{oSub.HUnitID},{(oSub.HQty == null ? 0 : oSub.HQty)} | 
|                 ,{oSub.HPrice},{oSub.HMoney},{oSub.HTaxRate},{oSub.HTaxMoney},{oSub.HWHID},{oSub.HSPID},'{oSub.HRemark}',{oSub.HSourceInterID},{oSub.HSourceEntryID},'{HSourceBillNo}',{HSourceBillType},{oSub.HPOOrderInterID},{oSub.HPOOrderEntryID},'{HPOOrderBillNo}',{HAuxPropID},{HBatchNO},{HMTONo},{HPlanMode},{HERPInterID},{HERPEntryID},{HRelationQty},{HGiveAwayFlag},{HReceiveQty},{HSEQ},{HPRODUCEDATE},{HEXPIRYDATE}, | 
|                   {HSUPPLYLOT},{HREQTRACENO},{HBOMID},{HSTOCKUNITID},{HBASEUNITID},{HSTOCKSTATUSID},'{HKEEPERTYPEID}',{HPROJECTNO},{HCHECKINCOMING},{oSub.HTaxPrice},{HDISCOUNTRATE},{HPRICECOEFFICIENT},{HPRICEUNITID},{HPRICELISTENTRY},{HSAMPLEDAMAGEQTY},{HSAMPLEDAMAGEBASEQTY},{HPAYORGID},{HSETTLEORGID},{HSETTLECURRID},{HSETTLEMODEID},{HEXCHANGETYPEID},{HPAYCONDITONID},{oSub.HEXCHANGERATE},{HLOCALCURRID},{HISINCLUDEDTAX},{HISPRICEEXCLUDETAX},{HTAXRATEID},{HCOSTPERCENT},{HCOSTAMOUNT},{HVAT},{HSELLERWITHHOLDING},{HBUYERWITHHOLDING},{oSub.HSecUnitID})"); | 
|                  | 
|             } | 
|             //保存后控制=========================================               | 
|             ds = oCN.RunProcReturn("exec h_p_Cg_POInStockBill_AfterSaveCtrl " + HInterID, "h_p_Cg_POInStockBill_AfterSaveCtrl"); | 
|   | 
|             if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "保存后判断失败!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             //========================================================= | 
|   | 
|             objJsonResult.code = "1"; | 
|             objJsonResult.count = 1; | 
|             objJsonResult.Message = null; | 
|             objJsonResult.data = null; | 
|             return objJsonResult; | 
|         } | 
|   | 
|         [Route("Cg_POInStockBill/Cg_POInStockBillSaveApi")] | 
|         [HttpPost] | 
|         public object Cg_POInStockBillSaveApi([FromBody] JObject sMainSub) | 
|         { | 
|             try | 
|             { | 
|                 var model = sMainSub["model"].ToString(); | 
|                 var entry = sMainSub["model"]["HENTRY"].ToString(); | 
|   | 
|                 LogService.Write("收料通知单同步 sMainSub:" + sMainSub); | 
|                 model = "[" + model.ToString() + "]"; | 
|                 List<ClsCg_POInStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillMain>>(model); | 
|                 List<ClsCg_POInStockBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillSub>>(entry); | 
|                 string sql = string.Empty; | 
|                 oCN.BeginTran(); | 
|                 sql = $"delete Cg_POInStockBillMain where HinterID = {mainList[0].HInterID}"; | 
|                 oCN.RunProc(sql); | 
|                 sql = $"delete Cg_POInStockBillSub where HinterID = {mainList[0].HInterID}"; | 
|                 oCN.RunProc(sql); | 
|                 //主表 | 
|                 sql = @" | 
| Insert Into Cg_POInStockBillMain    | 
| (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate | 
| ,HBillNo,HBillStatus,HSupID,HSupDealerID,HManagerID,HEmpID,HDeptID,HRemark | 
| ,HMaker,HMakeDate,HChecker,HCheckDate,HOWNERTYPEID,HOWNERID | 
| ,HERPInterID,HERPBillType,HPURCHASEORGID,HSTOCKORGID,HREQUIREORGID | 
| ,HSTOCKGROUPID,HSENDBILLNO,HLADBILLNO,HPURDEPTID,HPURGROUPID,HSUPPLYID | 
| ,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HSUPPLYADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID,HCurID,HExRate,HAddress,HWHID,HInnerBillNo) | 
| values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1103 + "','" + | 
| mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "'," + mainList[0].HBillStatus + "," + (mainList[0].HSupDealerID == 0 ? mainList[0].HSupID : mainList[0].HSupDealerID) + "," + mainList[0].HSupID + | 
| "," + mainList[0].HManagerID + "," + mainList[0].HEmpID + "," + mainList[0].HDeptID + ",'" + mainList[0].HRemark + "','" + mainList[0].HMaker + | 
| "','" + mainList[0].HMakeDate + "','" + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HOWNERTYPEID + "'," + mainList[0].HOWNERID + "," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "'," + mainList[0].HPURCHASEORGID + "," + mainList[0].HSTOCKORGID + "," + mainList[0].HREQUIREORGID + "," + | 
| mainList[0].HSTOCKGROUPID + ",'" + mainList[0].HSENDBILLNO + "','" + mainList[0].HLADBILLNO + "'," + mainList[0].HPURDEPTID + "," + mainList[0].HPURGROUPID + "," + mainList[0].HSUPPLYID + "," + | 
| mainList[0].HSETTLEID + "," + mainList[0].HCHARGEID + ",'" + mainList[0].HBUSINESSTYPE + "','" + mainList[0].HSUPPLYADDRESS + "'," + mainList[0].HCORRESPONDORGID + "," + mainList[0].HPROVIDERCONTACTID + "," + mainList[0].HCurID + "," + mainList[0].HExRate + ",'" + mainList[0].HAddress + "'," + mainList[0].HWHID + ",'" + mainList[0].HInnerBillNo + "'" + ")"; | 
|                 oCN.RunProc(sql); | 
|                 //保存主表 | 
|                 foreach (var oSub in subList) | 
|                 { | 
|                     sql = $@" | 
| Insert into Cg_POInStockBillSub  | 
| (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice | 
| ,HMoney,HWHID,HSPID,HRemark,HTaxMoney,HTaxRate,HTaxMoney_TAX,HTaxRate_TAX | 
| ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HPOOrderInterID | 
| ,HPOOrderEntryID,HPOORderBillNo,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID | 
| ,HRelationQty,HGiveAwayFlag,HReceiveQty,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HSUPPLYLOT,HREQTRACENO,HBOMID,HSTOCKUNITID | 
| ,HBASEUNITID,HSTOCKSTATUSID,HKEEPERTYPEID,HPROJECTNO,HCHECKINCOMING,HTAXPRICE,HDISCOUNTRATE | 
| ,HPRICECOEFFICIENT,HPRICEUNITID,HPRICELISTENTRY,HSAMPLEDAMAGEQTY,HSAMPLEDAMAGEBASEQTY | 
| ,HPAYORGID,HSETTLEORGID,HSETTLECURRID,HSETTLEMODEID,HEXCHANGETYPEID,HPAYCONDITONID | 
| ,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX | 
| ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HSecUnitID,HSalOutStockBillNo,HSalOutStockEntryId)  | 
| values( | 
| '{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}' | 
| ,'{oSub.HMoney}','{oSub.HWHID}','{oSub.HSPID}','{oSub.HRemark}','{oSub.HTaxMoney}','{oSub.HTaxRate}','{oSub.HTaxMoney_TAX}','{oSub.HTaxRate_TAX}' | 
| ,'{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}','{oSub.HPOOrderInterID}','{oSub.HPOOrderEntryID}','{oSub.HPOOrderBillNo}','{oSub.HAuxPropID}','{oSub.HBatchNO}','{oSub.HMTONo}','{oSub.HPlanMode}','{oSub.HERPInterID}','{oSub.HERPEntryID}','{oSub.HRelationQty}','{oSub.HGiveAwayFlag}','{oSub.HReceiveQty}','{oSub.HSEQ}','{oSub.HPRODUCEDATE}','{oSub.HEXPIRYDATE}', | 
| '{oSub.HSUPPLYLOT}','{oSub.HREQTRACENO}','{oSub.HBOMID}','{oSub.HSTOCKUNITID}','{oSub.HBASEUNITID}','{oSub.HSTOCKSTATUSID}','{oSub.HKEEPERTYPEID}','{oSub.HPROJECTNO}','{oSub.HCHECKINCOMING}','{oSub.HTaxPrice}','{oSub.HDISCOUNTRATE}','{oSub.HPRICECOEFFICIENT}','{oSub.HPRICEUNITID}','{oSub.HPRICELISTENTRY}','{oSub.HSAMPLEDAMAGEQTY}','{oSub.HSAMPLEDAMAGEBASEQTY}','{oSub.HPAYORGID}','{oSub.HSETTLEORGID}','{oSub.HSETTLECURRID}','{oSub.HSETTLEMODEID}','{oSub.HEXCHANGETYPEID}','{oSub.HPAYCONDITONID}','{oSub.HEXCHANGERATE}','{oSub.HLOCALCURRID}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}','{oSub.HCOSTPERCENT}','{oSub.HCOSTAMOUNT}','{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}','{oSub.HSecUnitID}','{oSub.HSalOutStockBillNo}','{oSub.HSalOutStockEntryId}')"; | 
|                     oCN.RunProc(sql); | 
|                 } | 
|                 oCN.Commit(); | 
|                 objJsonResult.code = "1"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "单据保存成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|   | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 LogService.Write("收料通知单同步异常:" + e.ToString()); | 
|   | 
|                 oCN.RollBack(); | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "保存失败!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 收料通知单 审核/反审核 | 
|         /// <summary> | 
|         /// </summary> | 
|         /// <param name="HInterID">单据ID</param> | 
|         /// <param name="IsAudit">审核(0),反审核(1)</param> | 
|         /// <param name="CurUserName">审核人</param> | 
|         /// <returns></returns> | 
|         [Route("Cg_POInStockBill/AuditCg_POInStockBill")] | 
|         [HttpGet] | 
|         public object AuditCg_POInStockBill(int HInterID, int IsAudit, string CurUserName) | 
|         { | 
|             string ModRightNameCheck = "Cg_POInStockBill_Check"; | 
|             DBUtility.ClsPub.CurUserName = CurUserName; | 
|             try | 
|             { | 
|                 //审核权限 | 
|                 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "审核失败!无权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 //HInterID数据判断 | 
|                 if (HInterID <= 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "HInterID小于0!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|   | 
|                 Int64 lngBillKey = 0; | 
|                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //对HInterID进行类型的转换 | 
|                 DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill();                              //实例化单据操作类,用于进行相关操作 | 
|   | 
|                 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 | 
|                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据 | 
|                 { | 
|                     if (oBill.omodel.HCloseMan.Trim() != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已关闭!不能再次审核!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (oBill.omodel.HDeleteMan.Trim() != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已作废!不能再次审核!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (IsAudit == 0)  //审核判断 | 
|                     { | 
|                         if (oBill.omodel.HChecker.Trim() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已审核!不能再次审核!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     if (IsAudit == 1) //反审核判断 | 
|                     { | 
|                         if (oBill.omodel.HChecker.Trim() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据未审核!不需要反审核!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|   | 
|                 //进行需要进行的审核/反审核操作 | 
|                 if (IsAudit == 0) //审核提交 | 
|                 { | 
|   | 
|                     //审核前控制=========================================       | 
|                     string sql1 = "exec h_p_Cg_POInStockBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; | 
|                     ds = oCN.RunProcReturn(sql1, "h_p_Cg_POInStockBill_BeforeCheckCtrl"); | 
|                     if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     //==================================================================================       | 
|   | 
|                     //审核提交 | 
|                     if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POInStockBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "审核成功"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 if (IsAudit == 1) //反审核提交 | 
|                 { | 
|                     //反审核前控制========================================= | 
|                     DataSet ds = oCN.RunProcReturn("Exec h_p_Cg_POInStockBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'", "h_p_Cg_POInStockBill_BeforeUnCheckCtrl"); | 
|                     if (ds == null) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "反审核失败!原因:" + "反审核前判断失败!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     //========================================================= | 
|   | 
|                     //反审核提交AbandonCheck | 
|                     if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POInStockBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "反审核成功"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 收料通知单 关闭/反关闭功能 | 
|         [Route("Cg_POInStockBill/CloseCg_POInStockBill")] | 
|         [HttpGet] | 
|         public object CloseCg_POInStockBill(string HInterID, int Type, string user) | 
|         { | 
|             try | 
|             { | 
|                 //判断是否有删除权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBill_Close", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无权限关闭!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (string.IsNullOrWhiteSpace(HInterID)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "HInterID为空!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 ClsPub.CurUserName = user; | 
|                 BillOld.MvarItemKey = "Cg_POInStockBillMain"; | 
|                 oCN.BeginTran();//开始事务 | 
|   | 
|                 //Type 1 关闭  2  反关闭 | 
|                 if (Type == 1) | 
|                 { | 
|                     //判断单据是否已经关闭 | 
|                     DataSet ds; | 
|                     string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; | 
|                     ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); | 
|                     if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据不存在!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) | 
|                     { | 
|                         if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已作废!不能进行关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据未审核!不能进行关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已关闭!不能再次关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         //关闭单据 | 
|                         if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     //判断单据是否已经反关闭 | 
|                     DataSet ds; | 
|                     string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; | 
|                     ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); | 
|                     if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) | 
|                     { | 
|                         if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已作废!不能进行关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据未审核!不能进行关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据未关闭!不需要再反关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         //反关闭单据 | 
|                         if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|   | 
|                 oCN.Commit();//提交事务 | 
|   | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "执行成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; ; | 
|   | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "执行失败!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 收料通知单 行关闭/行反关闭 | 
|         /// <summary> | 
|         /// </summary> | 
|         /// <param name="HInterID">单据ID</param> | 
|         /// <param name="IsAudit">关闭(0),反关闭(1)</param> | 
|         /// <param name="CurUserName">关闭人</param> | 
|         /// <returns></returns> | 
|         [Route("Cg_POInStockBill/CloseRowCg_POInStockBill")] | 
|         [HttpGet] | 
|         public object CloseRowCg_POInStockBill(int HInterID, int HEntryID, int IsAudit, string CurUserName) | 
|         { | 
|             string ModRightNameCheck = "Cg_POInStockBill_Close"; | 
|             string SubBillName = "Cg_POInStockBillSub";                   //子表表名 | 
|             DBUtility.ClsPub.CurUserName = CurUserName; | 
|             DataSet ds = null; | 
|             try | 
|             { | 
|                 //检查权限 | 
|                 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "行关闭失败!无权限!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 //HInterID数据判断 | 
|                 if (HInterID <= 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "HInterID小于0!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 Int64 lngBillKey = 0; | 
|                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //对HInterID进行类型的转换 | 
|                 DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill();              //实例化单据操作类,用于进行相关操作 | 
|   | 
|                 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 | 
|                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据 | 
|                 { | 
|                     if (oBill.omodel.HDeleteMan.Trim() != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已作废!不能进行行关闭!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (oBill.omodel.HCloseMan.Trim() != "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据已关闭!不能进行行关闭!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (oBill.omodel.HChecker.Trim() == "") | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据未审核!不能进行行关闭!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|   | 
|                     string sql = "select * from " + SubBillName + " where HInterID = " + HInterID + " and HEntryID = " + HEntryID; | 
|                     ds = oCN.RunProcReturn(sql, "Cg_POInStockBillSub"); | 
|                     if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "该行数据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (IsAudit == 0)  //行关闭判断 | 
|                     { | 
|                         if (ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "行已关闭!不能再次行关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                     if (IsAudit == 1) //行反关闭判断 | 
|                     { | 
|                         if (ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "行未关闭!不需要再行反关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|   | 
|                         //判断行是否为自动关闭 | 
|                         string temp = ds.Tables[0].Rows[0]["HCloseType"].ToString(); | 
|                         if (ds.Tables[0].Rows[0]["HCloseType"].ToString() == "False") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "行反关闭失败!行为自动关闭,不能进行手动反关闭!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|   | 
|                 //进行需要进行的行关闭/行反关闭操作 | 
|                 if (IsAudit == 0) //行关闭提交 | 
|                 { | 
|                     //行关闭提交 | 
|                     if (oBill.CloseRow(lngBillKey, HEntryID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "行关闭成功"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "行关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 if (IsAudit == 1) //行反关闭提交 | 
|                 { | 
|                     //行反关闭提交 | 
|                     if (oBill.CancelRow(lngBillKey, HEntryID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
|                     { | 
|                         objJsonResult.code = "1"; | 
|                         objJsonResult.count = 1; | 
|                         objJsonResult.Message = "反关闭成功"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     else | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "反关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                 } | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "关闭失败或者反关闭失败!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region 收料通知单 作废/反作废功能 | 
|         [Route("Cg_POInStockBill/DropCg_POInStockBill")] | 
|         [HttpGet] | 
|         public object DropCg_POInStockBill(string HInterID, int Type, string user) | 
|         { | 
|             try | 
|             { | 
|                 //判断是否有作废权限 | 
|                 if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBill_Drop", 1, false, user)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "无权限作废!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 if (string.IsNullOrWhiteSpace(HInterID)) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "HInterID为空!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|                 ClsPub.CurUserName = user; | 
|                 BillOld.MvarItemKey = "Cg_POInStockBillMain"; | 
|                 oCN.BeginTran();//开始事务 | 
|   | 
|                 //Type 1 作废  2  反作废 | 
|                 if (Type == 1) | 
|                 { | 
|                     //判断单据是否已经作废 | 
|                     DataSet ds; | 
|                     string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; | 
|                     ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); | 
|                     if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "单据不存在!"; | 
|                         objJsonResult.data = null; | 
|                         return objJsonResult; | 
|                     } | 
|                     if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) | 
|                     { | 
|                         if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已审核!不能进行作废!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已作废!不需要再作废!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         //作废单据 | 
|                         if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     //判断单据是否已经反作废 | 
|                     DataSet ds; | 
|                     string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; | 
|                     ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); | 
|                     if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) | 
|                     { | 
|                         if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据已审核!不能进行作废!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "") | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 0; | 
|                             objJsonResult.Message = "单据未作废!不需要再反作废!"; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                         //反作废单据 | 
|                         if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
|                         { | 
|                             objJsonResult.code = "0"; | 
|                             objJsonResult.count = 1; | 
|                             objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo; | 
|                             objJsonResult.data = null; | 
|                             return objJsonResult; | 
|                         } | 
|                     } | 
|                 } | 
|   | 
|                 oCN.Commit();//提交事务 | 
|   | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 1; | 
|                 objJsonResult.Message = "执行成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; ; | 
|   | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "执行失败!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|         #endregion | 
|   | 
|         #region [同步单据] | 
|         [Route("Cg_POInStockBill/Cg_POInStockBillViewApi")] | 
|         [HttpGet] | 
|         public json Cg_POInStockBillViewApi(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_ReceiveBill", 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; | 
|                     Int64 ManagerID = 0; | 
|                     Int64 EmpID = 0; | 
|                     Int64 DeptID = 0; | 
|                     Ds = oCN.RunProcReturn("select * from Cg_POInStockBillMain where HBillNo = '" + BillNo + "'", "Cg_POInStockBillMain"); | 
|                     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()); | 
|                         ManagerID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HManagerID"].ToString()); | 
|                         EmpID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HEmpID"].ToString()); | 
|                         DeptID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"].ToString()); | 
|                     }                                                         | 
|   | 
|                     #region [主表数据赋值] | 
|                     var jsonData = new | 
|                     { | 
|                         HInterID = _saveObj["Result"]["Result"]["Id"], | 
|                         HYear = DateTime.Now.Year, | 
|                         HPeriod = DateTime.Now.Month, | 
|                         HBillType = 1103, | 
|                         HBillSubType = _saveObj["Result"]["Result"]["BusinessType"].ToString() == "CG" ? 12510 : 12511, | 
|                         HDate = _saveObj["Result"]["Result"]["Date"], | 
|                         HBillNo = _saveObj["Result"]["Result"]["BillNo"], | 
|                         HBillStatus = 2, | 
|                         HSupID = _saveObj["Result"]["Result"]["SupplierId_Id"], | 
|                         HManagerID = ManagerID, | 
|                         HEmpID = EmpID, | 
|                         HDeptID = DeptID, | 
|                         HRemark = "CLOUD导入", | 
|                         HMaker = _saveObj["Result"]["Result"]["CreatorId_Id"], | 
|                         HMakeDate = _saveObj["Result"]["Result"]["CreateDate"], | 
|                         HChecker = _saveObj["Result"]["Result"]["ApproverId_Id"], | 
|                         HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"], | 
|                         HOWNERTYPEID = _saveObj["Result"]["Result"]["OwnerTypeIdHead"], | 
|                         HOWNERID = _saveObj["Result"]["Result"]["OwnerIdHead_Id"], | 
|                         HERPInterID = _saveObj["Result"]["Result"]["Id"], | 
|                         HERPBillType = _saveObj["Result"]["Result"]["BillTypeId_Id"], | 
|                         HPURCHASEORGID = _saveObj["Result"]["Result"]["PurOrgId_Id"], | 
|                         HSTOCKORGID = _saveObj["Result"]["Result"]["StockOrgId_Id"], | 
|                         HREQUIREORGID = _saveObj["Result"]["Result"]["DemandOrgId_Id"], | 
|                         HSTOCKGROUPID = _saveObj["Result"]["Result"]["StockGroupId_Id"], | 
|                         HSENDBILLNO = _saveObj["Result"]["Result"]["SendBillNo"], | 
|                         HLADBILLNO = _saveObj["Result"]["Result"]["LadBillNo"], | 
|                         HPURDEPTID = _saveObj["Result"]["Result"]["PurDeptId_Id"], | 
|                         HPURGROUPID = _saveObj["Result"]["Result"]["PurGroupId_Id"], | 
|                         HSUPPLYID = _saveObj["Result"]["Result"]["SupplyId_Id"], | 
|                         HSETTLEID = _saveObj["Result"]["Result"]["SettleId_Id"], | 
|                         HCHARGEID = _saveObj["Result"]["Result"]["ChargeId_Id"], | 
|                         HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"], | 
|                         HSUPPLYADDRESS = _saveObj["Result"]["Result"]["SupplyAddress"], | 
|                         HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"], | 
|                         HPROVIDERCONTACTID = _saveObj["Result"]["Result"]["ProviderContactId_Id"], | 
|                     }; | 
|                     #endregion | 
|                     // 删除主表对应数据 | 
|                     sql = $"delete from Cg_POInStockBillMain where HInterID = " + InterID; | 
|                     oCN.RunProc(sql); | 
|   | 
|                     //插入主表 | 
|                     sql = $@" | 
|                 insert into Cg_PoInstockbillMain | 
|              (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate | 
|              ,HBillNo,HBillStatus,HSupID,HManagerID,HEmpID,HDeptID,HRemark | 
|              ,HMaker,HMakeDate,HChecker,HCheckDate,HOWNERTYPEID,HOWNERID | 
|              ,HERPInterID,HERPBillType,HPURCHASEORGID,HSTOCKORGID,HREQUIREORGID | 
|              ,HSTOCKGROUPID,HSENDBILLNO,HLADBILLNO,HPURDEPTID,HPURGROUPID,HSUPPLYID | 
|              ,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HSUPPLYADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID | 
|              ) | 
|                 values | 
|                 ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},'{jsonData.HDate}','{jsonData.HBillNo}', | 
|                 {jsonData.HBillStatus},{jsonData.HSupID},{jsonData.HManagerID},{jsonData.HEmpID},{jsonData.HDeptID},'{jsonData.HRemark}','{jsonData.HMaker}', | 
|                 '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}','{jsonData.HOWNERTYPEID}','{jsonData.HOWNERID}',{jsonData.HERPInterID}, | 
|                 '{jsonData.HERPBillType}',{jsonData.HPURCHASEORGID},{jsonData.HSTOCKORGID},{jsonData.HREQUIREORGID},{jsonData.HSTOCKGROUPID},'{jsonData.HSENDBILLNO}', | 
|                 '{jsonData.HLADBILLNO}',{jsonData.HPURDEPTID},{jsonData.HPURGROUPID},{jsonData.HSUPPLYID},{jsonData.HSETTLEID},{jsonData.HCHARGEID},'{jsonData.HBUSINESSTYPE}', | 
|                 '{jsonData.HSUPPLYADDRESS}',{jsonData.HCORRESPONDORGID},{jsonData.HPROVIDERCONTACTID})"; | 
|                     oCN.RunProc(sql); | 
|   | 
|                     #region [申请子表变量] | 
|                     var dataArr = _saveObj["Result"]["Result"]["PUR_ReceiveEntry"]; | 
|   | 
|                     DataSet Cs; | 
|                     double Qty = 0; | 
|                     double Money = 0; | 
|                     Int64 WHID = 0; | 
|                     Int64 SPID = 0; | 
|                     string subRemark = ""; | 
|                     double TaxMoney = 0; | 
|                     double TaxMoney_TAX = 0; | 
|                     double TaxRate_TAX = 0; | 
|                     Int64 SourceBillType = 0; | 
|                     Int64 POOrderInterID = 0; | 
|                     string POORderBillNo = ""; | 
|                     string BatchNO = ""; | 
|                     Int64 ERPInterID = 0; | 
|                     Int64 ERPEntryID = 0; | 
|                     double RelationQty = 0; | 
|                     Int64 SecUnitID = 0; | 
|                     Int64 PAYORGID = 0; | 
|                     Int64 PAYCONDITONID = 0; | 
|                     Int64 SETTLEORGID = 0; | 
|                     Int64 SETTLECURRID = 0; | 
|                     Int64 SETTLEMODEID = 0; | 
|                     Int64 EXCHANGETYPEID = 0; | 
|                     double EXCHANGERATE = 0; | 
|                     Int64 LOCALCURRID = 0; | 
|                     Int64 ISINCLUDEDTAX = 0; | 
|                     Int64 ISPRICEEXCLUDETAX = 0; | 
|                     Int64 PlanMode = 0; | 
|                     #endregion | 
|                     int i = 0; | 
|   | 
|                     // 获取子表数据 | 
|                     Cs = oCN.RunProcReturn("select * from Cg_POInStockBillSub where HInterID = " + InterID, "Cg_POInStockBillSub"); | 
|                     // 删除子表对应数据 | 
|                     sql = $"delete from Cg_POInStockBillSub 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) | 
|                         { | 
|                             Qty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HQty"].ToString()); | 
|                             Money = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HMoney"].ToString()); | 
|                             WHID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HWHID"].ToString()); | 
|                             SPID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSPID"].ToString()); | 
|                             subRemark = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HRemark"]); | 
|                             TaxMoney = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HTaxMoney"].ToString()); | 
|                             TaxMoney_TAX = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HTaxMoney_TAX"].ToString()); | 
|                             TaxRate_TAX = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HTaxRate_TAX"].ToString()); | 
|                             SourceBillType = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceBillType"].ToString()); | 
|                             POOrderInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderInterID"].ToString()); | 
|                             POORderBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HPOORderBillNo"]); | 
|                             BatchNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBatchNO"]); | 
|                             ERPInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPInterID"].ToString()); | 
|                             ERPEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPEntryID"].ToString()); | 
|                             RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString()); | 
|                             SecUnitID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSecUnitID"].ToString()); | 
|                             PAYORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPAYORGID"].ToString()); | 
|                             PAYCONDITONID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPAYCONDITONID"].ToString()); | 
|                             SETTLEORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEORGID"].ToString()); | 
|                             SETTLECURRID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLECURRID"].ToString()); | 
|                             SETTLEMODEID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEMODEID"].ToString()); | 
|                             EXCHANGETYPEID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HEXCHANGETYPEID"].ToString()); | 
|                             EXCHANGERATE = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HEXCHANGERATE"].ToString()); | 
|                             LOCALCURRID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HLOCALCURRID"].ToString()); | 
|                             ISINCLUDEDTAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISINCLUDEDTAX"].ToString()); | 
|                             ISPRICEEXCLUDETAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISPRICEEXCLUDETAX"].ToString()); | 
|                             PlanMode = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPlanMode"].ToString()); | 
|   | 
|                             i++; | 
|                         } | 
|   | 
|                         var subData = new | 
|                         { | 
|                             HInterID = _saveObj["Result"]["Result"]["Id"], | 
|                             HEntryID = oSub["Id"], | 
|                             HMaterID = oSub["MaterialID_Id"], | 
|                             HUnitID = oSub["UnitId_Id"], | 
|                             HQty = Qty, | 
|                             HPrice = oSub["Price"], | 
|                             HMoney = Money, | 
|                             HWHID = WHID, | 
|                             HSPID = SPID, | 
|                             HRemark = subRemark, | 
|                             HTaxMoney = TaxMoney, | 
|                             HTaxRate = oSub["TaxRate"], | 
|                             HTaxMoney_TAX = TaxMoney_TAX, | 
|                             HTaxRate_TAX = TaxRate_TAX, | 
|                             HSourceInterID = oSub["SrcId"], | 
|                             HSourceEntryID = oSub["SrcEntryId"], | 
|                             HSourceBillNo = oSub["SrcBillNo"], | 
|                             HSourceBillType = SourceBillType, | 
|                             HPOOrderInterID = POOrderInterID, | 
|                             HPOOrderEntryID = oSub["POORDERENTRYID"], | 
|                             HPOORderBillNo = POORderBillNo, | 
|                             HAuxPropID = oSub["AuxPropId_Id"], | 
|                             HBatchNO = BatchNO, | 
|                             HMTONo = oSub["MtoNo"], | 
|                             HPlanMode = PlanMode, | 
|                             HERPInterID = ERPInterID, | 
|                             HERPEntryID = ERPEntryID, | 
|                             HRelationQty = RelationQty, | 
|                             HGiveAwayFlag = oSub["GiveAway"] = false ? 0 : 1, | 
|                             HReceiveQty = oSub["ReceiveQty"], | 
|                             HSecUnitID = SecUnitID, | 
|                             HSEQ = oSub["Seq"], | 
|                             HPRODUCEDATE = oSub["ProduceDate"], | 
|                             HEXPIRYDATE = oSub["ExpiryDate"], | 
|                             HSUPPLYLOT = oSub["SupplierLot"], | 
|                             HREQTRACENO = oSub["ReqTraceNo"], | 
|                             HBOMID = oSub["BomId_Id"], | 
|                             HSTOCKUNITID = oSub["StockUnitID_Id"], | 
|                             HBASEUNITID = oSub["BaseUnitId_Id"], | 
|                             HSTOCKSTATUSID = oSub["StockStatusId_Id"], | 
|                             HKEEPERTYPEID = oSub["KeeperTypeId"], | 
|                             HPROJECTNO = oSub["ProjectNo"], | 
|                             HCHECKINCOMING = oSub["CheckInComing"] = false ? 0 : 1, | 
|                             HTAXPRICE = oSub["TaxPrice"], | 
|                             HDISCOUNTRATE = oSub["DiscountRate"], | 
|                             HPRICECOEFFICIENT = oSub["PriceCoefficient"], | 
|                             HPRICEUNITID = oSub["PriceUnitId_Id"], | 
|                             HPRICELISTENTRY = oSub["PriceListEntry_Id"], | 
|                             HTAXCOMBINATION = oSub["TaxCombination_Id"], | 
|                             HSAMPLEDAMAGEQTY = oSub["SampleDamageQty"], | 
|                             HSAMPLEDAMAGEBASEQTY = oSub["SampleDamageBaseQty"], | 
|                             HOWNERTYPEID = oSub["OwnerTypeId"], | 
|                             HOWNERID = oSub["OwnerId_Id"], | 
|                             HBFLOWID = oSub["FBFLowId_Id"], | 
|                             HPAYORGID = PAYORGID, | 
|                             HSETTLEORGID = SETTLEORGID, | 
|                             HSETTLECURRID = SETTLECURRID, | 
|                             HSETTLEMODEID = SETTLEMODEID, | 
|                             HEXCHANGETYPEID = EXCHANGETYPEID, | 
|                             HPAYCONDITONID = PAYCONDITONID, | 
|                             HEXCHANGERATE = EXCHANGERATE, | 
|                             HLOCALCURRID = LOCALCURRID, | 
|                             HISINCLUDEDTAX = ISINCLUDEDTAX, | 
|                             HISPRICEEXCLUDETAX = ISPRICEEXCLUDETAX, | 
|                             HTAXRATEID = 0, | 
|                             HCOSTPERCENT = 0, | 
|                             HCOSTAMOUNT = 0, | 
|                             HVAT = 0, | 
|                             HSELLERWITHHOLDING = 0, | 
|                             HBUYERWITHHOLDING = 0, | 
|                         }; | 
|                         #endregion | 
|                          | 
|   | 
|                         //插入子表 | 
|                         sql = $@" | 
|                  insert into Cg_PoInstockbillSub | 
|                  (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice | 
|                  ,HMoney,HWHID,HSPID,HRemark,HTaxMoney,HTaxRate,HTaxMoney_TAX,HTaxRate_TAX | 
|                  ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HPOOrderInterID,HPOOrderEntryID,HPOORderBillNo | 
|                  ,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID | 
|                  ,HRelationQty,HGiveAwayFlag,HReceiveQty,HSecUnitID | 
|                  ,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HSUPPLYLOT,HREQTRACENO,HBOMID,HSTOCKUNITID | 
|                  ,HBASEUNITID,HSTOCKSTATUSID,HKEEPERTYPEID,HPROJECTNO,HCHECKINCOMING | 
|                  ,HTAXPRICE,HDISCOUNTRATE,HPRICECOEFFICIENT,HPRICEUNITID,HPRICELISTENTRY | 
|                  ,HTAXCOMBINATION,HSAMPLEDAMAGEQTY,HSAMPLEDAMAGEBASEQTY,HOWNERTYPEID,HOWNERID,HBFLOWID | 
|                  ,HPAYORGID,HSETTLEORGID,HSETTLECURRID,HSETTLEMODEID,HEXCHANGETYPEID,HPAYCONDITONID | 
|                  ,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX | 
|                  ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING | 
|                  ) | 
|                  values | 
|                  ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice}, | 
|                   {subData.HMoney},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HTaxMoney},{subData.HTaxRate},{subData.HTaxMoney_TAX}, | 
|                   {subData.HTaxRate_TAX},{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}',{subData.HSourceBillType}, | 
|                   {subData.HPOOrderInterID},{subData.HPOOrderEntryID},'{subData.HPOORderBillNo}',{subData.HAuxPropID},'{subData.HBatchNO}', | 
|                   '{subData.HMTONo}',{subData.HPlanMode},{subData.HERPInterID},{subData.HERPEntryID},{subData.HRelationQty},{subData.HGiveAwayFlag}, | 
|                   {subData.HReceiveQty},{subData.HSecUnitID},{subData.HSEQ},'{subData.HPRODUCEDATE}','{subData.HEXPIRYDATE}','{subData.HSUPPLYLOT}', | 
|                   '{subData.HREQTRACENO}',{subData.HBOMID},{subData.HSTOCKUNITID},{subData.HBASEUNITID},{subData.HSTOCKSTATUSID},'{subData.HKEEPERTYPEID}', | 
|                   '{subData.HPROJECTNO}',{subData.HCHECKINCOMING},{subData.HTAXPRICE},{subData.HDISCOUNTRATE}, | 
|                   {subData.HPRICECOEFFICIENT},{subData.HPRICEUNITID},{subData.HPRICELISTENTRY},'{subData.HTAXCOMBINATION}',{subData.HSAMPLEDAMAGEQTY}, | 
|                   {subData.HSAMPLEDAMAGEBASEQTY},'{subData.HOWNERTYPEID}',{subData.HOWNERID},'{subData.HBFLOWID}',{subData.HPAYORGID},{subData.HSETTLEORGID}, | 
|                   {subData.HSETTLECURRID},{subData.HSETTLEMODEID},{subData.HEXCHANGETYPEID},{subData.HPAYCONDITONID},{subData.HEXCHANGERATE}, | 
|                   {subData.HLOCALCURRID},{subData.HISINCLUDEDTAX},{subData.HISPRICEEXCLUDETAX},{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 | 
|   | 
|         #region 收料通知单 根据主内码与子内码获取收料通知单数据 | 
|         [Route("Cg_POInStockBill/loadCg_POInStockBill_Push")] | 
|         [HttpGet] | 
|         public object loadCg_POInStockBill_Push(long HInterID, long HSubID) | 
|         { | 
|             try | 
|             { | 
|   | 
|                 ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_IF_POInStockBillList"); | 
|                 if (ds == null || ds.Tables[0].Rows.Count == 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "未查询到源单信息!"; | 
|                     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; | 
|             } | 
|         } | 
|         #endregion | 
|     } | 
| } |