yusijie
2023-10-20 92a765acc908b10affb08db65e3a0cefa9ae7efb
WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
@@ -14,11 +15,15 @@
    //收料通知单Controller
    public class Cg_POInStockBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        //获取系统参数
        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 查找记录
@@ -67,36 +72,47 @@
        /// </summary>
        [Route("Cg_POInStockBill/list")]
        [HttpGet]
        public object list(string sWhere)
        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 " + sWhere, "h_v_IF_POInStockBillList");
                    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;
                    string sql = sql1 + sWhere + " order by 日期 desc,hmainid desc";
                    ds = oCN.RunProcReturn(sql, "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;
                }
                //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)
            {
@@ -107,144 +123,27 @@
                return objJsonResult;
            }
        }
        /// <summary>
        /// 保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Cg_POInStockBill/ModifyByID")]
        [HttpPost]
        public object ModifyByID([FromBody] JObject oMain)
        {
            try
            {
                DAL.ClsGy_Warehouse_Ctl oDept = new DAL.ClsGy_Warehouse_Ctl();
                DAL.ClsGy_Warehouse_View oDeptHlp = new DAL.ClsGy_Warehouse_View();
                var _value = oMain["oMain"].ToString();
                string msg1 = _value.ToString();
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                //string msg3 = sArray[1].ToString();
                //string msg4 = sArray[2].ToString();
                //string msg5 = sArray[3].ToString();
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<Warehouse> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Warehouse>>(msg2);
                long HItemID = list[0].HItemID;
                string HNumber = list[0].HNumber;
                string HName = list[0].HName;
                string HHelpCode = list[0].HHelpCode;
                string HShortNumber = list[0].HShortNumber;
                long HParentID = list[0].HParentID;
                long HLevel = list[0].HLevel;
                bool HEndFlag = list[0].HEndFlag;
                bool HStopflag = list[0].HStopflag;
                string HRemark = list[0].HRemark;
                string HBarCode = list[0].HBarCode;
                long HEmpID = list[0].HEmpID;
                string HAddress = list[0].HAddress;
                string HPhone = list[0].HPhone;
                long HUSEORGID = list[0].HUSEORGID;
                string HUpDater = list[0].HUpDater;
                ////判断权限
                //if (!ClsPub.Security_Log(msg5, 1, true, msg4))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "没有找到该功能模块!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //if (!DBUtility.ClsPub.AllowNumber(HNumber))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //if (oDept.HavSameNumber(HItemID, HNumber))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "代码重复!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //保存
                //保存完毕后处理
                if (HItemID == 0)
                {
                    oCN.BeginTran();
                    oCN.RunProc("Insert into Gy_Warehouse  " +
                        " (HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                        ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID) " +
                        " Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID.ToString() +
                        "," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'," + HEmpID.ToString() + ",'" + HAddress + "','" + HPhone + "','" + HUSEORGID + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                    //修改上级为非末级代码
                    oCN.RunProc("Update Gy_Warehouse set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.Commit();
                }
                else
                {
                    //若MAINDI重复则重新获取
                    oCN.BeginTran();
                    //主表
                    oCN.RunProc("Update Gy_Warehouse set " +
                        " HNumber='" + HNumber + "'" +
                        ",HName='" + HName + "'" +
                        ",HShortNumber='" + HShortNumber + "'" +
                        ",HHelpCode='" + HHelpCode + "'" +
                        ",HLevel=" + HLevel.ToString() +
                        ",HParentID=" + HParentID.ToString() +
                        ",HEndflag=" + Convert.ToString(HEndFlag ? 1 : 0) +
                        ",HStopflag=" + Convert.ToString(HStopflag ? 1 : 0) +
                        ",HEmpID=" + HEmpID.ToString() +
                        ",HAddress='" + HAddress + "'" +
                        ",HPhone='" + HPhone + "'" +
                        ",HUSEORGID='" + HUSEORGID + "'" +
                        ",HUpdater='" + HUpDater + "'" +
                        ",HUpdateDate= getdate()" +
                        ",HRemark= '" + HRemark + "' Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //修改子项目代码
                    //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Warehouse,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
                    //将上级 为非末级
                    oCN.RunProc("Update Gy_Warehouse set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //
                    oCN.Commit();
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
                //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        /// <summary>
        ///删除功能
        /// </summary>
        /// <returns></returns>
        [Route("Cg_POInStockBill/DeltetPOInStockBill")]
        [HttpGet]
        public object DeltetPOInStockBill(string HInterID)
        public object DeltetPOInStockBill(string HInterID, 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;
                }
                //先删除 金蝶数据
                objJsonResult = DeleteKingDee(HInterID);
                if (objJsonResult.code == "0")
@@ -276,10 +175,20 @@
        /// </summary>
        [Route("Cg_POInStockBill/DeAuditPOInStockBill")]
        [HttpGet]
        public object DeAuditPOInStockBill(string HInterID)
        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")
@@ -319,6 +228,7 @@
                        Ids = ""
                    };
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    if (isSuccess == 0)
                    {
@@ -349,6 +259,1182 @@
            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;//仓库
                string HMaker = user;//制单人
                string HAddress = mainList[0].HAddress;//地址
                string HExplanation = mainList[0].HExplanation;//摘要
                string HInnerBillNo = mainList[0].HInnerBillNo;//内部单据号
                List<ClsCg_POInStockBillMain> mainList2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBillMain>>(msg2);
                DateTime dt = DateTime.Now;
                long HYear = mainList2[0].HYear == null ? 0 : mainList2[0].HYear;
                long HPeriod = mainList2[0].HPeriod == null ? 0 : mainList2[0].HPeriod;
                string HBillType = mainList2[0].HBillType == null ? "''" : mainList2[0].HBillType;
                string HBillSubType = mainList2[0].HBillSubType == null ? "''" : mainList2[0].HBillSubType;
                long HBillStatus = mainList2[0].HBillStatus == null ? 0 : mainList2[0].HBillStatus;
                string 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 HCORRESPONDORGID = mainList2[0].HCORRESPONDORGID == null ? 0 : mainList2[0].HCORRESPONDORGID;
                long HPROVIDERCONTACTID = mainList2[0].HPROVIDERCONTACTID == null ? 0 : mainList2[0].HPROVIDERCONTACTID;
                ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    //主表
                    oCN.RunProc(@"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,HCurID,HExRate,HAddress,HWHID)
                        values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1103 + "','" +
                    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 + "," + HCurID + "," + HExRate + ",'" + HAddress + "'," + HWHID + ")");
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)
                { //修改
                    oCN.RunProc("update Cg_POInStockBillMain  set " +
                                "HRemark='" + HRemark + "', HChecker='" + HMaker + "', HCheckDate=getdate()" +
                                 ",HSupID=" + HSupID + ",HCurID=" + HCurID
                                 + ",HExRate=" + HExRate + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID
                                 + ",HAddress='" + HAddress + " where HInterID=" + HInterID);
                    //删除子表
                    oCN.RunProc("delete from Cg_POInStockBillSub where HInterID='" + HInterID + "'");
                }
                //保存子表
                objJsonResult = AddBillSub(msg3, HInterID, OperationType);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public json AddBillSub(string msg3, long HInterID, int OperationType)
        {
            List<ClsCg_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 ? "''" : 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;
                }
                oCN.RunProc($@"Insert into Cg_POInStockBillSub
                (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice
               ,HMoney,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.HWHID},{oSub.HSPID},'{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})");
            }
            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,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].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(string HInterID, int Type, 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;
                }
                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]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].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 (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 (!BillOld.CheckBill(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]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].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 (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 (!BillOld.AbandonCheck(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/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 收料通知单 作废/反作废功能
        [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
    }
}