using Model; 
 | 
using Newtonsoft.Json.Linq; 
 | 
using Newtonsoft.Json; 
 | 
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_POInStockBackBillController : ApiController 
 | 
    { 
 | 
         //获取系统参数 
 | 
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); 
 | 
  
 | 
        public DBUtility.ClsPub.Enum_BillStatus BillStatus; 
 | 
        public DAL.ClsCg_POInStockBackBill BillOld = new DAL.ClsCg_POInStockBackBill(); 
 | 
        private json objJsonResult = new json(); 
 | 
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); 
 | 
        DataSet ds; 
 | 
  
 | 
      
 | 
  
 | 
  
 | 
        /// <summary> 
 | 
        /// 返回退料通知单列表 
 | 
        ///参数:string sql。 
 | 
        ///返回值:object。 
 | 
        /// </summary> 
 | 
        [Route("Cg_POInStockBackBill/list")] 
 | 
        [HttpGet] 
 | 
        public object list(string sWhere,string user) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                List<object> columnNameList = new List<object>();  //定义声明变量 ,把通过 new List<object>()创建的 实例,赋值给变量 
 | 
                //判断是否有查询权限 
 | 
                if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBackBillQuery", 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_POInStockBackBillList order by hmainid desc", "h_v_IF_POInStockBackBillList"); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    string sql1 = "select * from h_v_IF_POInStockBackBillList where 1 = 1 "; 
 | 
                    string sql = sql1 + sWhere+ " order by hmainid desc"; 
 | 
                    ds = oCN.RunProcReturn(sql, "h_v_IF_POInStockBackBillList"); 
 | 
                } 
 | 
                foreach (DataColumn col in ds.Tables[0].Columns)//遍历ds中第一个表(Tables[0])的所有列(Columns)每次循环中,col变量会持有当前列的引用 
 | 
                { 
 | 
                    Type dataType = col.DataType; //获取当前数据类型传入 自定义变量datadataType 
 | 
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; 
 | 
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 
 | 
                } 
 | 
                //if (ds.Tables[0].Rows.Count != 0 || ds != null) 
 | 
                //{ 
 | 
                objJsonResult.code = "1"; 
 | 
                objJsonResult.count = 1; 
 | 
                objJsonResult.Message = "Sucess!"; 
 | 
                //objJsonResult.data = ds.Tables[0]; 
 | 
                objJsonResult.data = ds.Tables[0];//代码将第一个DataTable(索引为0)赋值给objJsonResult的data属性 
 | 
                objJsonResult.list = columnNameList;//将columnNameList赋值给objJsonResult的list属性 
 | 
                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; 
 | 
            } 
 | 
        } 
 | 
        #region 退料通知单 保存/编辑功能 
 | 
        [Route("Cg_POInStockBackBill/POInStockBackBillEdit")] 
 | 
        [HttpPost] 
 | 
        public object POInStockBackBillEdit([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_POInStockBackBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBackBillMain>>(msg2); 
 | 
                long HPURCHASEORGID = mainList[0].HOrgID; 
 | 
                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 HEmpID = mainList[0].HEmpID;//业务员 
 | 
                long HDeptID = mainList[0].HDeptID;//部门 
 | 
                long HSupID = mainList[0].HSupID;//供应商 
 | 
                long HWHID = mainList[0].HWHID;//仓库 
 | 
                long HCurID = mainList[0].HCurID;//币别 
 | 
                Single HExRate = mainList[0].HExRate;//汇率 
 | 
                long HManagerID = mainList[0].HManagerID;//主管 
 | 
                long HAPPORGID = mainList[0].HAPPORGID;//申请组织 
 | 
                long HREQUIREORGID = mainList[0].HREQUIREORGID;//需求组织 
 | 
                long HSETTLEORGID = mainList[0].HSETTLEORGID;//结算组织 
 | 
                long HOWNERTYPEID = mainList[0].HOWNERTYPEID;//货主类型 
 | 
                long HOWNERID = mainList[0].HOWNERID;//货主 
 | 
                long HERPInterID = mainList[0].HERPInterID;//ERP单据主内码 
 | 
                long HStatus = mainList[0].HStatus;//状态 
 | 
  
 | 
  
 | 
                string HMaker = user;//制单人 
 | 
                string HExplanation = mainList[0].HExplanation;//摘要 
 | 
                string HInnerBillNo = mainList[0].HInnerBillNo;//内部单据号  
 | 
  
 | 
                string HAddress = mainList[0].HAddress;//地址 
 | 
                string HBillType = mainList[0].HBillType; 
 | 
                string HBillSubType = mainList[0].HBillSubType; 
 | 
                long HBillStatus = mainList[0].HBillStatus; 
 | 
                string HERPBillType = mainList[0].HERPBillType; 
 | 
                string HConfirmMan = mainList[0].HConfirmMan; 
 | 
                string HConfirmDate = mainList[0].HConfirmDate; 
 | 
                string HMakeDate = mainList[0].HMakeDate; 
 | 
                string HChecker = mainList[0].HChecker; 
 | 
                string HCheckDate = mainList[0].HCheckDate; 
 | 
                string HUpDater = mainList[0].HUpDater; 
 | 
                string HUpDateDate = mainList[0].HUpDateDate; 
 | 
                string HDeleteMan = mainList[0].HDeleteMan; 
 | 
                string HDeleteDate = mainList[0].HDeleteDate; 
 | 
                string HCloseMan = mainList[0].HCloseMan; 
 | 
                string HCloseDate = mainList[0].HCloseDate; 
 | 
  
 | 
                //进行 会计期间 结账 的判断和控制 
 | 
                string s = ""; 
 | 
                int sYear = 0; 
 | 
                int sPeriod = 0; 
 | 
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) 
 | 
                { 
 | 
                    objJsonResult.Message = s; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
  
 | 
                ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBackBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POInStockBackBillList"); 
 | 
  
 | 
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增 
 | 
                { 
 | 
                    //保存前控制=========================================               
 | 
                    ds = oCN.RunProcReturn("exec h_p_Cg_POInStockBackBill_BeforeSaveCtrl " + HInterID, "h_p_Cg_POInStockBackBill_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_POInStockBackBillMain   
 | 
                        (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus 
 | 
                        ,HAddress,HSupID,HCurID,HWHID,HExRate,HEmpID,HManagerID,HDeptID,HExplanation,HRemark 
 | 
                        ,HInnerBillNo,HAPPORGID,HPURCHASEORGID,HREQUIREORGID,HSETTLEORGID,HOWNERTYPEID 
 | 
                        ,HOWNERID,HERPInterID,HERPBillType,HConfirmMan,HConfirmDate,HStatus 
 | 
                        ,HMaker,HMakeDate) 
 | 
                        values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1105 + "','" + 
 | 
                   HBillSubType + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress + 
 | 
                   "'," + HSupID + "," + HCurID + "," + HWHID + "," + HExRate + "," + HEmpID + "," + HManagerID + "," + HDeptID + ",'" + HExplanation + "','" + HRemark 
 | 
                   + "','" + HInnerBillNo + "'," + HAPPORGID + "," + HPURCHASEORGID + "," + HREQUIREORGID + "," 
 | 
                   + HSETTLEORGID + "," + HOWNERTYPEID + "," + HOWNERID + "," + HERPInterID + ",'" + HERPBillType + "','" + HConfirmMan 
 | 
                   + "','" + HConfirmDate + "'," + HStatus + ",'" + HMaker + "',getdate()" + ")"; 
 | 
                    oCN.RunProc(sql); 
 | 
  
 | 
                } 
 | 
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0) 
 | 
                { //修改 
 | 
                    String sql = $@"update Cg_POInStockBackBillMain  set " + 
 | 
                                "HRemark='" + HRemark + "', HUpDater='" + HMaker + "', HUpDateDate=getdate()" + 
 | 
                                 ",HSupID=" + HSupID + ",HCurID=" + HCurID + ", HWHID = " + HWHID 
 | 
                                 + ",HExRate=" + HExRate + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID + ",HOWNERID=" + HOWNERID 
 | 
                                 + ",HAddress='" + HAddress + "' ,HInnerBillNo='" + HInnerBillNo + "' where HInterID=" + HInterID; 
 | 
  
 | 
                    oCN.RunProc(sql); 
 | 
                    //退料通知单删除回填采购订单关联数量 
 | 
                    oCN.RunProc("exec h_p_Cg_UpDateRelation_POInStockBackToPOOrder_Del " + HInterID); 
 | 
                    //删除子表 
 | 
                    oCN.RunProc("delete from Cg_POInStockBackBillSub where HInterID='" + HInterID + "'"); 
 | 
                } 
 | 
                //保存子表 
 | 
                objJsonResult = AddBillSub(msg3, HInterID, OperationType, user); 
 | 
  
 | 
                //退料通知单新增回填采购订单关联数量 
 | 
                oCN.RunProc("exec h_p_Cg_UpDateRelation_POInStockBackToPOOrder_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_POInStockBackBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBackBillSub>>(msg3); 
 | 
  
 | 
            List<ClsCg_POInStockBackBillSub> DetailColl2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POInStockBackBillSub>>(msg3); 
 | 
  
 | 
  
 | 
            string HSourceBillNo = DetailColl2[0].HSourceBillNo == null ? "''" : DetailColl2[0].HSourceBillNo; 
 | 
            string HSourceBillType = DetailColl2[0].HSourceBillType == null ? "''" : DetailColl2[0].HSourceBillType; 
 | 
            double HRelationQty = DetailColl2[0].HRelationQty == null ? 0 : DetailColl2[0].HRelationQty; 
 | 
            string HRemark = DetailColl2[0].HRemark == null ? "''" : DetailColl2[0].HRemark; 
 | 
  
 | 
  
 | 
  
 | 
            int i = 0; 
 | 
            IList list = DetailColl; 
 | 
            for (int i1 = 0; i1 < list.Count; i1++) 
 | 
            { 
 | 
                ClsCg_POInStockBackBillSub oSub = (ClsCg_POInStockBackBillSub)list[i1]; 
 | 
                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_POInStockBackBillSub", "Cg_POInStockBackBillSub"); 
 | 
                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 sql = $@"Insert into Cg_POInStockBackBillSub  
 | 
                (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice 
 | 
                ,HMoney,HWHID,HSPID,HConfirmMan,HConfirmDate,HRelationQty 
 | 
                ,HStatus,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType 
 | 
                ,HPOOrderInterID,HPOOrderEntryID ,HPOOrderBillNo,HWWOrderInterID 
 | 
                ,HWWOrderEntryID,HWWOrderDetaiLID,HWWOrderBillNo  
 | 
                ,HPropertyID,HSecUnitID,HSecUnitRate,HTaxRate     
 | 
                ,HTaxMoney,HBatChNo,HAuxPropID,HERPInterID,HERPEntryID 
 | 
                ,HMTONo,HPlanMode,HRemark)   
 | 
                 values({HInterID},{NewHEntryID},{oSub.HMaterID},{oSub.HUnitID},{(oSub.HQty == null ? 0 : oSub.HQty)},{oSub.HPrice} 
 | 
                ,{oSub.HMoney},{oSub.HWHID},{oSub.HSPID},'{(oSub.HConfirmMan == null ? 0 : oSub.HConfirmMan)}','{oSub.HConfirmDate}',{oSub.HRelationQty} 
 | 
                ,{(oSub.HStatus == null ? 0 : oSub.HStatus)},{oSub.HSourceInterID},{oSub.HSourceEntryID},'{oSub.HSourceBillNo}','{oSub.HSourceBillType}' 
 | 
                ,{oSub.HPOOrderInterID},{oSub.HPOOrderEntryID},'{oSub.HPOOrderBillNo}','{(oSub.HWWOrderInterID == null ? 0 : oSub.HWWOrderInterID)}' 
 | 
                ,{(oSub.HWWOrderEntryID == null ? 0 : oSub.HWWOrderEntryID)},{(oSub.HWWOrderDetaiLID == null ? 0 : oSub.HWWOrderDetaiLID)},'{(oSub.HWWOrderBillNo == null ? 0 : oSub.HWWOrderBillNo)}' 
 | 
                ,{(oSub.HPropertyID == null ? 0 : oSub.HPropertyID)},{(oSub.HSecUnitID == null ? 0 : oSub.HSecUnitID)},{(oSub.HSecUnitRate == null ? 0 : oSub.HSecUnitRate)},{(oSub.HTaxRate == null ? 0 : oSub.HTaxRate)} 
 | 
                ,{oSub.HTaxMoney},'{oSub.HBatChNo}',{(oSub.HAuxPropID == null ? 0 : oSub.HAuxPropID)},{(oSub.HERPInterID == null ? 0 : oSub.HERPInterID)},{(oSub.HERPEntryID == null ? 0 : oSub.HERPEntryID)} 
 | 
                ,'{(oSub.HMTONo == null ? 0 : oSub.HMTONo)}',{(oSub.HPlanMode == null ? 0 : oSub.HPlanMode)},'{oSub.HRemark}')"; 
 | 
  
 | 
                oCN.RunProc(sql); 
 | 
  
 | 
            } 
 | 
            //保存后控制=========================================               
 | 
            ds = oCN.RunProcReturn("exec h_p_Cg_POInStockBackBill_AfterSaveCtrl " + HInterID, "h_p_Cg_POInStockBackBill_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; 
 | 
        } 
 | 
       
 | 
        /// <summary> 
 | 
        ///删除功能 
 | 
        /// </summary> 
 | 
        /// <returns></returns> 
 | 
        [Route("Cg_POInStockBackBill/DeltetCg_POInStockBackBill")] 
 | 
        [HttpGet] 
 | 
        public object DeltetCg_POInStockBackBill(string HInterID, string user) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                string HBillNo = ""; 
 | 
                //删除前控制=========================================       
 | 
                string sql1 = "exec h_p_Cg_POInStockBackBill_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; 
 | 
                ds = oCN.RunProcReturn(sql1, "h_p_Cg_POInStockBackBill_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; 
 | 
                } 
 | 
                //==================================================================================       
 | 
  
 | 
                //进行 会计期间 结账 的判断和控制 
 | 
                string s = ""; 
 | 
                int sYear = 0; 
 | 
                int sPeriod = 0; 
 | 
                DateTime HDate = DateTime.Now; 
 | 
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) 
 | 
                { 
 | 
                    objJsonResult.Message = s; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
  
 | 
                string sReturn = ""; 
 | 
                oCN.BeginTran(); 
 | 
                //退料通知单删除回填采购订单关联数量 
 | 
                oCN.RunProc("exec h_p_Cg_UpDateRelation_POInStockBackToPOOrder_Del " + HInterID); 
 | 
                oCN.RunProc("Delete From Cg_POInStockBackBillMain where HInterID = " + HInterID); 
 | 
                oCN.RunProc("Delete From Cg_POInStockBackBillSub where HInterID = " + HInterID); 
 | 
                oCN.Commit(); 
 | 
  
 | 
                //删除后控制==================================================================================       
 | 
                string sql2 = "exec h_p_Cg_POInStockBackBill_AfterDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; 
 | 
                ds = oCN.RunProcReturn(sql2, "h_p_Cg_POInStockBackBill_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; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 根据基础资料ID 查找记录 
 | 
        ///参数:string sql。 
 | 
        ///返回值:object。 
 | 
        /// </summary> 
 | 
        [Route("Cg_POInStockBackBill/cx")] 
 | 
        [HttpGet] 
 | 
        public object cx(long HInterID) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
  
 | 
                ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBackBillList where hmainid =" + HInterID, "h_v_IF_POInStockBackBillList"); 
 | 
                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; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private json DeleteKingDee(string hInterID) 
 | 
        { 
 | 
            throw new NotImplementedException(); 
 | 
        } 
 | 
  
 | 
  
 | 
        #region [同步单据] 
 | 
        [Route("Cg_POInStockBackBill/Cg_POInStockBackBillViewApi")] 
 | 
        [HttpGet] 
 | 
        public json Cg_POInStockBackBillViewApi(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("SCP_MRAPP", 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 REQUIREORGID = 0; 
 | 
                    Int64 CORRESPONDORGID = 0; 
 | 
                    string ERPBillType = ""; 
 | 
                    string REPLENISHMODE = ""; 
 | 
                    Ds = oCN.RunProcReturn("select * from Cg_POInStockBackBillMain where HBillNo = '" + BillNo + "'", "Cg_POInStockBackBillMain"); 
 | 
                    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()); 
 | 
                        REQUIREORGID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HREQUIREORGID"].ToString()); 
 | 
                        CORRESPONDORGID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HCORRESPONDORGID"].ToString()); 
 | 
                        ERPBillType = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HERPBillType"]); 
 | 
                        REPLENISHMODE = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HREPLENISHMODE"]); 
 | 
                    } 
 | 
  
 | 
                    #region [主表数据赋值] 
 | 
                    var jsonData = new 
 | 
                    { 
 | 
                        HInterID = _saveObj["Result"]["Result"]["Id"], 
 | 
                        HYear = DateTime.Now.Year, 
 | 
                        HPeriod = DateTime.Now.Month, 
 | 
                        HBillType = 1105, 
 | 
                        HBillSubType = _saveObj["Result"]["Result"]["BusinessType"].ToString() == "CG" ? 12510 : 12511, 
 | 
                        HDate = _saveObj["Result"]["Result"]["FDate"], 
 | 
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"], 
 | 
                        HBillStatus = 2, 
 | 
                        HSupID = _saveObj["Result"]["Result"]["SUPPLIERID_Id"], 
 | 
                        HManagerID = ManagerID, 
 | 
                        HDeptID = _saveObj["Result"]["Result"]["APPDEPTID_Id"], 
 | 
                        HRemark = _saveObj["Result"]["Result"]["FRemarks"], 
 | 
                        HMaker = _saveObj["Result"]["Result"]["FCreatorId"]["Name"], 
 | 
                        HMakeDate = _saveObj["Result"]["Result"]["FCreateDate"], 
 | 
                        HChecker = _saveObj["Result"]["Result"]["APPROVERID"]["Name"], 
 | 
                        HCheckDate = _saveObj["Result"]["Result"]["APPROVEDATE"], 
 | 
                        HERPInterID = _saveObj["Result"]["Result"]["Id"], 
 | 
                        HERPBillType = ERPBillType, 
 | 
                        HPURCHASEORGID = _saveObj["Result"]["Result"]["PURCHASEORGID_Id"], 
 | 
                        HAPPORGID = _saveObj["Result"]["Result"]["APPORGID_Id"], 
 | 
                        HREQUIREORGID = REQUIREORGID, 
 | 
                        HCORRESPONDORGID = CORRESPONDORGID, 
 | 
                        HRMREASON = _saveObj["Result"]["Result"]["RMREASON"], 
 | 
                        HRMTYPE = _saveObj["Result"]["Result"]["RMTYPE"], 
 | 
                        HRMMODE = _saveObj["Result"]["Result"]["RMMODE"], 
 | 
                        HREPLENISHMODE = REPLENISHMODE, 
 | 
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"], 
 | 
                    }; 
 | 
                    #endregion 
 | 
                    // 删除主表对应数据 
 | 
                    sql = $"delete from Cg_POInStockBackBillMain where HInterID = " + InterID; 
 | 
                    oCN.RunProc(sql); 
 | 
  
 | 
                    //插入主表 
 | 
                    sql = $@" 
 | 
                insert into Cg_POInStockBackBillMain 
 | 
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate 
 | 
                ,HBillNo,HBillStatus,HSupID,HManagerID,HDeptID,HRemark 
 | 
                ,HMaker,HMakeDate,HChecker,HCheckDate,HERPInterID,HERPBillType 
 | 
                ,HPURCHASEORGID,HAPPORGID,HREQUIREORGID,HCORRESPONDORGID 
 | 
                ,HRMREASON,HRMTYPE,HRMMODE,HREPLENISHMODE,HBUSINESSTYPE 
 | 
                 ) 
 | 
                values 
 | 
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},'{jsonData.HDate}', 
 | 
                '{jsonData.HBillNo}',{jsonData.HBillStatus},{jsonData.HSupID},{jsonData.HManagerID},{jsonData.HDeptID},'{jsonData.HRemark}', 
 | 
                '{jsonData.HMaker}', '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}',{jsonData.HERPInterID}, 
 | 
                '{jsonData.HERPBillType}',{jsonData.HPURCHASEORGID},{jsonData.HAPPORGID},{jsonData.HREQUIREORGID},{jsonData.HCORRESPONDORGID}, 
 | 
                '{jsonData.HRMREASON}','{jsonData.HRMTYPE}','{jsonData.HRMMODE}', '{jsonData.HREPLENISHMODE}','{jsonData.HBUSINESSTYPE}')"; 
 | 
  
 | 
                    oCN.RunProc(sql); 
 | 
  
 | 
                    #region [申请子表变量] 
 | 
                    var dataArr = _saveObj["Result"]["Result"]["PUR_MRAPPENTRY"]; 
 | 
  
 | 
                    DataSet Cs; 
 | 
                    double Qty = 0; 
 | 
                    double Money = 0; 
 | 
                    Int64 WHID = 0; 
 | 
                    Int64 SPID = 0;                  
 | 
                    Int64 SourceBillType = 0; 
 | 
                    Int64 POOrderInterID = 0; 
 | 
                    Int64 POOrderEntryID = 0; 
 | 
                    string POORderBillNo = ""; 
 | 
                    string BatchNO = ""; 
 | 
                    Int64 ERPInterID = 0; 
 | 
                    Int64 ERPEntryID = 0; 
 | 
                    double RelationQty = 0; 
 | 
                    Int64 SETTLEORGID = 0;            
 | 
                    Int64 ISPRICEEXCLUDETAX = 0; 
 | 
                    Int64 PlanMode = 0; 
 | 
                    Int64 SourceInterID = 0; 
 | 
                    Int64 SourceEntryID = 0; 
 | 
                    string SourceBillNo = ""; 
 | 
                    string MTONo = ""; 
 | 
                    Int64 PURUNITID = 0; 
 | 
                    string CONTRACTNO = ""; 
 | 
                    string REQTRACENO = ""; 
 | 
                    string BFLOWID = ""; 
 | 
                    Int64 GIVEAWAY = 0; 
 | 
                    Int64 PURBASEQTY = 0; 
 | 
                    Int64 RETURNSTOCKJNBASEQTY = 0; 
 | 
                    Int64 BASEUNITQTY = 0; 
 | 
                    Int64 PRICECOEFFICIENT = 0; 
 | 
                    #endregion 
 | 
                    int i = 0; 
 | 
  
 | 
                    // 获取子表数据 
 | 
                    Cs = oCN.RunProcReturn("select * from Cg_POInStockBackBillSub where HInterID = " + InterID, "Cg_POInStockBackBillSub"); 
 | 
                    // 删除子表对应数据 
 | 
                    sql = $"delete from Cg_POInStockBackBillSub 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()); 
 | 
                            SPID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSPID"].ToString());                        
 | 
                            SourceBillType = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceBillType"].ToString()); 
 | 
                            POOrderInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderInterID"].ToString()); 
 | 
                            POOrderEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderEntryID"].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());                     
 | 
                            SETTLEORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEORGID"].ToString());                             
 | 
                            ISPRICEEXCLUDETAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISPRICEEXCLUDETAX"].ToString()); 
 | 
                            PlanMode = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPlanMode"].ToString()); 
 | 
                            SourceInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceInterID"].ToString()); 
 | 
                            SourceEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceEntryID"].ToString()); 
 | 
                            SourceBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HSourceBillNo"]); 
 | 
                            MTONo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HMTONo"]); 
 | 
                            PURUNITID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPURUNITID"].ToString()); 
 | 
                            CONTRACTNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HCONTRACTNO"]); 
 | 
                            REQTRACENO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HREQTRACENO"]); 
 | 
                            BFLOWID = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBFLOWID"]); 
 | 
                            GIVEAWAY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HGIVEAWAY"].ToString()); 
 | 
                            PURBASEQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPURBASEQTY"].ToString()); 
 | 
                            RETURNSTOCKJNBASEQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HRETURNSTOCKJNBASEQTY"].ToString()); 
 | 
                            BASEUNITQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HBASEUNITQTY"].ToString()); 
 | 
                            PRICECOEFFICIENT = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPRICECOEFFICIENT"].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_F"], 
 | 
                            HMoney = Money, 
 | 
                            HTaxRate = oSub["TAXRATE"], 
 | 
                            HWHID = WHID, 
 | 
                            HSPID = SPID, 
 | 
                            HRemark = oSub["FRemarks"], 
 | 
                            HSourceInterID = SourceInterID, 
 | 
                            HSourceEntryID = SourceEntryID, 
 | 
                            HSourceBillNo = SourceBillNo, 
 | 
                            HSourceBillType = SourceBillType, 
 | 
                            HPOOrderInterID = POOrderInterID, 
 | 
                            HPOOrderEntryID = POOrderEntryID, 
 | 
                            HPOORderBillNo = POORderBillNo, 
 | 
                            HRelationQty = RelationQty, 
 | 
                            HAuxPropID = oSub["AUXPROPID_Id"], 
 | 
                            HBatchNO = BatchNO, 
 | 
                            HMTONo = MTONo, 
 | 
                            HPlanMode = PlanMode, 
 | 
                            HERPInterID = ERPInterID, 
 | 
                            HERPEntryID = ERPEntryID, 
 | 
                            HBASEUNITID = oSub["MATERIALID"]["MaterialBase"][0]["BaseUnitId_Id"], 
 | 
                            HPURUNITID = PURUNITID, 
 | 
                            HCONTRACTNO = CONTRACTNO, 
 | 
                            HREQTRACENO = REQTRACENO, 
 | 
                            HBFLOWID = BFLOWID, 
 | 
                            HGIVEAWAY = GIVEAWAY, 
 | 
                            HPURBASEQTY = PURBASEQTY, 
 | 
                            HRETURNSTOCKJNBASEQTY = RETURNSTOCKJNBASEQTY, 
 | 
                            HBASEUNITQTY = BASEUNITQTY, 
 | 
                            HPRICEUNITID = oSub["PRICEUNITID_F_Id"], 
 | 
                            HAPPROVEPRICE = oSub["APPROVEPRICE_F"], 
 | 
                            HPRICECOEFFICIENT = PRICECOEFFICIENT, 
 | 
                            HLOCALCURRID = _saveObj["Result"]["Result"]["PUR_MRAPPFIN"][0]["LOCALCURRID_Id"], 
 | 
                            HEXCHANGETYPEID = _saveObj["Result"]["Result"]["PUR_MRAPPFIN"][0]["ExchangeTypeId_Id"], 
 | 
                            HSETTLEORGID = SETTLEORGID, 
 | 
                            HISPRICEEXCLUDETAX = ISPRICEEXCLUDETAX 
 | 
                        }; 
 | 
                        #endregion                        
 | 
  
 | 
                        //插入子表 
 | 
                        sql = $@" 
 | 
                 insert into Cg_POInStockBackBillSub 
 | 
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HMoney,HTaxRate,HWHID,HSPID,HRemark 
 | 
                ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType 
 | 
                ,HPOOrderInterID,HPOOrderEntryID,HPOORderBillNo 
 | 
                ,HRelationQty,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID 
 | 
                ,HBASEUNITID,HPURUNITID,HCONTRACTNO,HREQTRACENO,HBFLOWID,HGIVEAWAY 
 | 
                ,HPURBASEQTY,HRETURNSTOCKJNBASEQTY,HBASEUNITQTY 
 | 
                ,HPRICEUNITID,HAPPROVEPRICE,HPRICECOEFFICIENT 
 | 
                ,HLOCALCURRID,HEXCHANGETYPEID,HSETTLEORGID,HISPRICEEXCLUDETAX 
 | 
                 ) 
 | 
                 values 
 | 
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice}, 
 | 
                  {subData.HMoney},{subData.HTaxRate},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HSourceInterID}, 
 | 
                  {subData.HSourceEntryID},'{subData.HSourceBillNo}',{subData.HSourceBillType},{subData.HPOOrderInterID},{subData.HPOOrderEntryID}, 
 | 
                  '{subData.HPOORderBillNo}',{subData.HRelationQty},{subData.HAuxPropID},'{subData.HBatchNO}','{subData.HMTONo}',{subData.HPlanMode}, 
 | 
                  {subData.HERPInterID},{subData.HERPEntryID},{subData.HBASEUNITID},{subData.HPURUNITID},'{subData.HCONTRACTNO}','{subData.HREQTRACENO}', 
 | 
                  '{subData.HBFLOWID}',{subData.HGIVEAWAY},{subData.HPURBASEQTY},{subData.HRETURNSTOCKJNBASEQTY},{subData.HBASEUNITQTY}, 
 | 
                  {subData.HPRICEUNITID},{subData.HAPPROVEPRICE},{subData.HPRICECOEFFICIENT},{subData.HLOCALCURRID},{subData.HEXCHANGETYPEID}, 
 | 
                  {subData.HSETTLEORGID},{subData.HISPRICEEXCLUDETAX})"; 
 | 
  
 | 
                        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_POInStockBackBill/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 
 | 
        #region 退料通知单 审核/反审核 
 | 
        /// <summary> 
 | 
        /// </summary> 
 | 
        /// <param name="HInterID">单据ID</param> 
 | 
        /// <param name="IsAudit">审核(0),反审核(1)</param> 
 | 
        /// <param name="CurUserName">审核人</param> 
 | 
        /// <returns></returns> 
 | 
        [Route("Cg_POInStockBackBill/AuditCg_POInStockBackBill")] 
 | 
        [HttpGet] 
 | 
        public object AuditCg_POInStockBackBill(int HInterID, int IsAudit, string CurUserName) 
 | 
        { 
 | 
            string ModRightNameCheck = "Cg_POInStockBackBill_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_POInStockBackBill oBill = new DAL.ClsCg_POInStockBackBill();                              //实例化单据操作类,用于进行相关操作 
 | 
  
 | 
                //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 
 | 
                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_POInStockBackBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; 
 | 
                    ds = oCN.RunProcReturn(sql1, "h_p_Cg_POInStockBackBill_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; 
 | 
                    } 
 | 
                    //==================================================================================       
 | 
  
 | 
                    //进行 会计期间 结账 的判断和控制 
 | 
                    string s = ""; 
 | 
                    int sYear = 0; 
 | 
                    int sPeriod = 0; 
 | 
                    DateTime HDate = DateTime.Now; 
 | 
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) 
 | 
                    { 
 | 
                        objJsonResult.Message = s; 
 | 
                        return objJsonResult; 
 | 
                    } 
 | 
  
 | 
                    //审核提交 
 | 
                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POInStockBackBill_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_POInStockBackBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'", "h_p_Cg_POInStockBackBill_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; 
 | 
                    } 
 | 
                    //========================================================= 
 | 
  
 | 
                    //进行 会计期间 结账 的判断和控制 
 | 
                    string s = ""; 
 | 
                    int sYear = 0; 
 | 
                    int sPeriod = 0; 
 | 
                    DateTime HDate = DateTime.Now; 
 | 
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false) 
 | 
                    { 
 | 
                        objJsonResult.Message = s; 
 | 
                        return objJsonResult; 
 | 
                    } 
 | 
  
 | 
                    //反审核提交AbandonCheck 
 | 
                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POInStockBackBill_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_POInStockBackBill/CloseCg_POInStockBackBill")] 
 | 
        [HttpGet] 
 | 
        public object CloseCg_POInStockBackBill(string HInterID, int Type, string user) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                //判断是否有删除权限 
 | 
                if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBackBill_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_POInStockBackBillMain"; 
 | 
                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_POInStockBackBill/CloseRowCg_POInStockBackBill")] 
 | 
        [HttpGet] 
 | 
        public object CloseRowCg_POInStockBackBill(int HInterID, int HEntryID, int IsAudit, string CurUserName) 
 | 
        { 
 | 
            string ModRightNameCheck = "Cg_POInStockBackBill_Close"; 
 | 
            string SubBillName = "Cg_POInStockBackBillSub";                   //子表表名 
 | 
            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_POInStockBackBill oBill = new DAL.ClsCg_POInStockBackBill();              //实例化单据操作类,用于进行相关操作 
 | 
  
 | 
                //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 
 | 
                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_POInStockBackBillSub"); 
 | 
                    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_POInStockBackBill/DropCg_POInStockBackBill")] 
 | 
        [HttpGet] 
 | 
        public object DropCg_POInStockBackBill(string HInterID, int Type, string user) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                //判断是否有作废权限 
 | 
                if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBackBill_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_POInStockBackBillMain"; 
 | 
                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_POInStockBackBill/loadCg_POInStockBackBill_Push")] 
 | 
        [HttpGet] 
 | 
        public object loadCg_POInStockBackBill_Push(long HInterID, long HSubID) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
  
 | 
                ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBackBillList where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_IF_POInStockBackBillList"); 
 | 
                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 
 | 
    } 
 | 
} 
 | 
#endregion 
 |