|  |  | 
 |  |  | using Newtonsoft.Json; | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  | using Pub_Class; | 
 |  |  | using SyntacticSugar.constant; | 
 |  |  | using System; | 
 |  |  | using System.Collections; | 
 |  |  | using System.Collections.Generic; | 
 |  |  | 
 |  |  | using System.Web.Http; | 
 |  |  | using WebAPI.Models; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | namespace WebAPI.Controllers | 
 |  |  | { | 
 |  |  |     //采购订单Controller | 
 |  |  |     public class Cg_POOrderBillController : ApiController | 
 |  |  |     { | 
 |  |  |         //获取系统参数 | 
 |  |  |         Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); | 
 |  |  |         public DBUtility.ClsPub.Enum_BillStatus BillStatus; | 
 |  |  |  | 
 |  |  |         public DAL.ClsCg_POOrderBill BillOld = new DAL.ClsCg_POOrderBill(); | 
 |  |  |         private json objJsonResult = new json(); | 
 |  |  |         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
 |  |  |         DataSet ds; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |     /// <summary> | 
 |  |  |         /// 返回采购订单列表 | 
 |  |  |         ///参数:string sql。 | 
 |  |  |         ///返回值:object。 | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 //if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  | 
 |  |  |                 //} | 
 |  |  |                 //string sql = "select * from h_v_IF_POOrderBillList where 1 = 1 "; | 
 |  |  |  | 
 |  |  |                 //if (sWhere=="" || sWhere == null) | 
 |  |  |                 //if (sWhere == "" || sWhere == null) | 
 |  |  |                 //{ | 
 |  |  |                 //    ds = oCN.RunProcReturn(sql+ " order by hmainid desc", "h_v_IF_POOrderBillList"); | 
 |  |  |                 //    ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList  order by hmainid desc", "h_v_IF_POOrderBillList"); | 
 |  |  |                 //} | 
 |  |  |                 //else | 
 |  |  |                 //{ | 
 |  |  | 
 |  |  |                 string sql = "select * from h_v_IF_POOrderBillList where 1 = 1 " + sWhere; | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList"); | 
 |  |  |  | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 string sql = $"update Cg_POOrderBillMain  set HBusinessStatus = 2 ,HEmpID ={HSupplierId} where HInterID in ({Hmainid})"; | 
 |  |  |                 string sql = $"update Cg_POOrderBillMain set HBusinessStatus = 2 ,HEmpID ={HSupplierId} where HInterID in ({Hmainid})"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 string sql = $"update Cg_POOrderBillMain  set HBusinessStatus = 3 where HInterID in ({Hmainid})"; | 
 |  |  |                 string sql = $"update Cg_POOrderBillMain set HBusinessStatus = 3 where HInterID in ({Hmainid})"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  | 
 |  |  |                 string HAddress = mainList[0].HAddress;//地址 | 
 |  |  |                 string HExplanation = mainList[0].HExplanation;//摘要 | 
 |  |  |                 string HInnerBillNo = mainList[0].HInnerBillNo;//内部单据号  | 
 |  |  |  | 
 |  |  |                 long HWHID = mainList[0].HWHID;//仓库  | 
 |  |  |                 long HProjectID = mainList[0].HProjectID;//仓库  | 
 |  |  |                 string HLinkMan = mainList[0].HLinkMan;//联系人 | 
 |  |  |                 string HLinkPhone = mainList[0].HLinkPhone;//联系人电话 | 
 |  |  |                 List<ClsCg_POOrderBillMain> mainList2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillMain>>(msg2); | 
 |  |  |                 DateTime dt = DateTime.Now; | 
 |  |  |  | 
 |  |  |                 long HPURCHASEORGID = mainList2[0].HOrgID; | 
 |  |  |                 long HYear = mainList2[0].HYear == null ? 0 : mainList2[0].HYear; | 
 |  |  |                 long HPeriod = mainList2[0].HPeriod == null ? 0 : mainList2[0].HPeriod; | 
 |  |  |                 string HBillType = mainList2[0].HBillType == null ? "''" : mainList2[0].HBillType; | 
 |  |  |                 string HBillSubType = mainList2[0].HBillSubType == null ? "''" : mainList2[0].HBillSubType; | 
 |  |  |                 long HBillStatus = mainList2[0].HBillStatus == null ? 0 : mainList2[0].HBillStatus; | 
 |  |  |                 string HChecker = mainList2[0].HChecker == null ? "''" : mainList2[0].HChecker; | 
 |  |  |                 string HUpDater = mainList2[0].HUpDater == null ? "''" : mainList2[0].HUpDater; | 
 |  |  |                 string HCloseMan = mainList2[0].HCloseMan == null ? "''" : mainList2[0].HCloseMan; | 
 |  |  |                 string HDeleteMan = mainList2[0].HDeleteMan == null ? "''" : mainList2[0].HDeleteMan; | 
 |  |  |                 string HCheckDate = mainList2[0].HCheckDate == null ? "''" : mainList2[0].HCheckDate; | 
 |  |  |                 string HMakeDate = mainList2[0].HMakeDate == null ? "''" : mainList2[0].HMakeDate; | 
 |  |  |                 string HUpDateDate = mainList2[0].HUpDateDate == null ? "''" : mainList2[0].HUpDateDate; | 
 |  |  |                 string HDeleteDate = mainList2[0].HDeleteDate == null ? "''" : mainList2[0].HDeleteDate; | 
 |  |  |                 long HERPInterID = mainList2[0].HERPInterID == null ? 0 : mainList2[0].HERPInterID; | 
 |  |  |                 string HERPBillType = mainList2[0].HERPBillType == null ? "''" : mainList2[0].HERPBillType; | 
 |  |  |                 long HPURCHASEORGID = mainList2[0].HPURCHASEORGID == null ? 0 : mainList2[0].HPURCHASEORGID; | 
 |  |  |  | 
 |  |  |                 long HPURCHASERGROUPID = mainList2[0].HPURCHASERGROUPID == null ? 0 : mainList2[0].HPURCHASERGROUPID;   //采购组 | 
 |  |  |                 long HPROVIDERID = mainList2[0].HPROVIDERID == null ? 0 : mainList2[0].HPROVIDERID;   //供货方 | 
 |  |  | 
 |  |  |                 long HCORRESPONDORGID = mainList2[0].HCORRESPONDORGID == null ? 0 : mainList2[0].HCORRESPONDORGID;   //对应组织 | 
 |  |  |                 long HPROVIDERCONTACTID = mainList2[0].HPROVIDERCONTACTID == null ? 0 : mainList2[0].HPROVIDERCONTACTID;//供货方联系人 | 
 |  |  |  | 
 |  |  |                 //进行 会计期间 结账 的判断和控制 | 
 |  |  |                 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_POOrderBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList"); | 
 |  |  |  | 
 |  |  |                 if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增 | 
 |  |  |                 { | 
 |  |  |  | 
 |  |  |                     //保存前控制=========================================               | 
 |  |  |                     ds = oCN.RunProcReturn("exec h_p_Cg_POOrderBill_BeforeSaveCtrl  " + HInterID, "h_p_Cg_POOrderBill_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; | 
 |  |  |                     } | 
 |  |  |                     //========================================================= | 
 |  |  |                     DataSet Ds; | 
 |  |  |                     Int64 NewHInterID = 1; | 
 |  |  |                     Ds = oCN.RunProcReturn("select MAX(HInterID)HInterID from Cg_POOrderBillMain", "Cg_POOrderBillMain"); | 
 |  |  | 
 |  |  |                         (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus | 
 |  |  |                        ,HAddress,HSSID,HSSDate,HPSStyleID,HSupID,HCurID | 
 |  |  |                        ,HExRate,HEmpID,HManagerID,HDeptID,HExplanation,HRemark,HInnerBillNo | 
 |  |  |                        ,HChecker,HCheckDate,HMaker,HMakeDate | 
 |  |  |                        ,HMaker,HMakeDate | 
 |  |  |                        ,HERPInterID,HERPBillType,HPURCHASEORGID | 
 |  |  |                         ,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID) | 
 |  |  |                         ,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID | 
 |  |  |                         ,HWHID,HProjectID,HLinkMan,HLinkPhone) | 
 |  |  |                         values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1102 + "','" + | 
 |  |  |                     HBillSubType + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress + | 
 |  |  |                     1102 + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress + | 
 |  |  |                     "'," + HSSID + ",'" + HSSDate + "'," + HPSStyleID + "," + HSupID + "," + HCurID + | 
 |  |  |                     "," + HExRate + "," + HEmpID + "," + HManagerID + "," + HDeptID + ",'" + HExplanation + "','" + HRemark + "','" + HInnerBillNo + "','" + HChecker + "','" + HCheckDate + "','" + HMaker + "','" + | 
 |  |  |                     HMakeDate + "'," + HERPInterID + ",'" + HERPBillType + "'," + HPURCHASEORGID + "," + HPURCHASERGROUPID + "," | 
 |  |  |                     "," + HExRate + "," + HEmpID + "," + HManagerID + "," + HDeptID + ",'" + HExplanation + "','" + HRemark + "','" + HInnerBillNo + "','" + HMaker + "',getdate()" + "," + HERPInterID + ",'" + HERPBillType + "'," + HPURCHASEORGID + "," + HPURCHASERGROUPID + "," | 
 |  |  |                     + HPROVIDERID + "," + HSETTLEID + "," + HCHARGEID + ",'" + HBUSINESSTYPE + "','" + HPROVIDERADDRESS + "'," | 
 |  |  |                     + HCORRESPONDORGID + "," + HPROVIDERCONTACTID + ")"); | 
 |  |  |                     + HCORRESPONDORGID + "," + HPROVIDERCONTACTID + "," | 
 |  |  |                     + HWHID+","+ HProjectID +",'"+HLinkMan+"','"+HLinkPhone+"'"+")"); | 
 |  |  |                 } | 
 |  |  |                 else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0) | 
 |  |  |                 { //修改 | 
 |  |  |  | 
 |  |  |                     DataSet dss; | 
 |  |  |                     dss = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList"); | 
 |  |  |                     //判断是否可编辑 | 
 |  |  |                     if (dss.Tables[0].Rows[0]["审核人"].ToString() != "" && dss.Tables[0].Rows[0]["审核人"] != null) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "此单据已经被审核,不允许修改!"; | 
 |  |  |                         objJsonResult.data = 1; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (dss.Tables[0].Rows[0]["状态"].ToString() != "创建") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!"; | 
 |  |  |                         objJsonResult.data = 1; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     oCN.RunProc("update Cg_POOrderBillMain  set " + | 
 |  |  |                                 "HRemark='" + HRemark + "', HChecker='" + HMaker + "', HCheckDate=getdate()" + | 
 |  |  |                                 "HRemark='" + HRemark + "', HUpDater='" + HMaker + "', HUpDateDate=getdate()" + | 
 |  |  |                                  ",HSSID=" + HSSID + ",HPSStyleID=" + HPSStyleID + ",HSupID=" + HSupID + ",HCurID=" + HCurID | 
 |  |  |                                  + ",HExRate=" + HExRate + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID | 
 |  |  |                                  + ",HAddress='" + HAddress + "',HSSDate='" + HSSDate + "' where HInterID=" + HInterID); | 
 |  |  |                                  + ",HAddress='" + HAddress + "',HSSDate='" + HSSDate + "',HWHID="+ HWHID + ",HProjectID="+ HProjectID +",HLinkMan = '"+HLinkMan+"',HLinkPhone = '"+HLinkPhone+ "' where HInterID=" + HInterID); | 
 |  |  |  | 
 |  |  |                     //删除子表 | 
 |  |  |                     oCN.RunProc("delete from Cg_POOrderBillSub where HInterID='" + HInterID + "'"); | 
 |  |  |                 } | 
 |  |  |                 //保存子表 | 
 |  |  |                 objJsonResult = AddBillSub(msg3, HInterID, OperationType); | 
 |  |  |  | 
 |  |  |                 //自动审核设置 | 
 |  |  |                 if ((OperationType == 1 || OperationType == 2)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.HInterID = HInterID.ToString(); //返回主ID | 
 |  |  |                     //系统参数  自动审核 | 
 |  |  |                     string sReturn = ""; | 
 |  |  |                     if (oSystemParameter.ShowBill(ref sReturn) == true) | 
 |  |  |                     { | 
 |  |  |                         if (oSystemParameter.omodel.Cg_POOrderBill_AutoCheck == "Y") //系统参数  自动审核  | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.Verify = "Y"; | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.Verify = "N"; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else if (OperationType == 3) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.HInterID = HInterID.ToString(); //返回主ID | 
 |  |  |                     objJsonResult.Verify = "N"; | 
 |  |  |                 } | 
 |  |  |                 if (objJsonResult.code == "0") | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  | 
 |  |  |  | 
 |  |  |             List<ClsCg_POOrderBillSub> DetailColl2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(msg3); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             string HSourceBillNo = DetailColl2[0].HSourceBillNo == null ? "''" : DetailColl2[0].HSourceBillNo; | 
 |  |  |             string HSourceBillType = DetailColl2[0].HSourceBillType == null ? "''" : DetailColl2[0].HSourceBillType; | 
 |  |  |             double HRelationQty = DetailColl2[0].HRelationQty == null ? 0 : DetailColl2[0].HRelationQty; | 
 |  |  |             double HBackRelationQty = DetailColl2[0].HBackRelationQty == null ? 0 : DetailColl2[0].HBackRelationQty; | 
 |  |  |             long HPropertyID = DetailColl2[0].HPropertyID == null ? 0 : DetailColl2[0].HPropertyID; | 
 |  |  |             string HBatChNo = DetailColl2[0].HBatChNo == null ? "''" : DetailColl2[0].HBatChNo; | 
 |  |  |             long HAuxPropID = DetailColl2[0].HAuxPropID == null ? 0 : DetailColl2[0].HAuxPropID; | 
 |  |  |             string HMTONo = DetailColl2[0].HMTONo == null ? "''" : DetailColl2[0].HMTONo; | 
 |  |  |             long HERPInterID = DetailColl2[0].HERPInterID == null ? 0 : DetailColl2[0].HERPInterID; | 
 |  |  |             long HERPEntryID = DetailColl2[0].HERPEntryID == null ? 0 : DetailColl2[0].HERPEntryID; | 
 |  |  |  | 
 |  |  |             string HSeOrderBillNo = DetailColl2[0].HSeOrderBillNo == null ? "''" : DetailColl2[0].HSeOrderBillNo; | 
 |  |  |             string HRemark = DetailColl2[0].HRemark == null ? "''" : DetailColl2[0].HRemark; | 
 |  |  |             string HSourceInterID = DetailColl2[0].HSourceInterID == null ? "''" : DetailColl2[0].HSourceInterID; | 
 |  |  |             string HSourceEntryID = DetailColl2[0].HSourceEntryID == null ? "''" : DetailColl2[0].HSourceEntryID; | 
 |  |  |  | 
 |  |  |             long HSEQ = DetailColl2[0].HSEQ == null ? 0 : DetailColl2[0].HSEQ;//行号 | 
 |  |  |             long HRECEIVEDEPTID = DetailColl2[0].HRECEIVEDEPTID == null ? 0 : DetailColl2[0].HRECEIVEDEPTID;//收料部门 | 
 |  |  |             string HSUPPLIERLOT = DetailColl2[0].HSUPPLIERLOT == null ? "''" : DetailColl2[0].HSUPPLIERLOT;//供应商批号 | 
 |  |  |             long HBOMID = DetailColl2[0].HBOMID == null ? 0 : DetailColl2[0].HBOMID;//BOM版本 | 
 |  |  |             long HSTOCKUNITID = DetailColl2[0].HSTOCKUNITID == null ? 0 : DetailColl2[0].HSTOCKUNITID;//库存单位 | 
 |  |  |             long HBASEUNITID = DetailColl2[0].HBASEUNITID == null ? 0 : DetailColl2[0].HBASEUNITID;//基本单位 | 
 |  |  |             string HBFLOWID = DetailColl2[0].HBFLOWID == null ? "''" : DetailColl2[0].HBFLOWID; //业务流程 | 
 |  |  |             long HGIVEAWAY = DetailColl2[0].HGIVEAWAY == null ? 0 : DetailColl2[0].HGIVEAWAY;   //是否赠品 | 
 |  |  |             string HROWTYPE = DetailColl2[0].HROWTYPE == null ? "''" : DetailColl2[0].HROWTYPE;//产品类型 | 
 |  |  |             double HBASEUNITQTY = DetailColl2[0].HBASEUNITQTY == null ? 0 : DetailColl2[0].HBASEUNITQTY;//基本单位数量 | 
 |  |  |             double HSTOCKBASEQTY = DetailColl2[0].HSTOCKBASEQTY == null ? 0 : DetailColl2[0].HSTOCKBASEQTY; //库存基本数量 | 
 |  |  |             string HREQTRACENO = DetailColl2[0].HREQTRACENO == null ? "''" : DetailColl2[0].HREQTRACENO;//需求跟踪号 | 
 |  |  |             double HTAXNETPRICE = DetailColl2[0].HTAXNETPRICE == null ? 0 : DetailColl2[0].HTAXNETPRICE; //含税净价 | 
 |  |  |             double HPRICECOEFFICIENT = DetailColl2[0].HPRICECOEFFICIENT == null ? 0 : DetailColl2[0].HPRICECOEFFICIENT;//价格系数 | 
 |  |  |             long HTAXCOMBINATION = DetailColl2[0].HTAXCOMBINATION == null ? 0 : DetailColl2[0].HTAXCOMBINATION;//税组合 | 
 |  |  |             long HPRICEUNITID = DetailColl2[0].HPRICEUNITID == null ? 0 : DetailColl2[0].HPRICEUNITID;//计价单位 | 
 |  |  |             long HPRICELISTENTRY = DetailColl2[0].HPRICELISTENTRY == null ? 0 : DetailColl2[0].HPRICELISTENTRY;//分录价目表 | 
 |  |  |             long HPAYORGID = DetailColl2[0].HPAYORGID == null ? 0 : DetailColl2[0].HPAYORGID;//付款组织 | 
 |  |  |             long HSETTLEMODEID = DetailColl2[0].HSETTLEMODEID == null ? 0 : DetailColl2[0].HSETTLEMODEID;//结算方式 | 
 |  |  |             long HSETTLECURRID = DetailColl2[0].HSETTLECURRID == null ? 0 : DetailColl2[0].HSETTLECURRID;//结算币别 | 
 |  |  |             long HEXCHANGETYPEID = DetailColl2[0].HEXCHANGETYPEID == null ? 0 : DetailColl2[0].HEXCHANGETYPEID;//汇率类型 | 
 |  |  |             long HPAYCONDITIONID = DetailColl2[0].HPAYCONDITIONID == null ? 0 : DetailColl2[0].HPAYCONDITIONID;//付款条件 | 
 |  |  |             double HEXCHANGERATE = DetailColl2[0].HEXCHANGERATE == null ? 0 : DetailColl2[0].HEXCHANGERATE;//汇率 | 
 |  |  |             long HLOCALCURRID = DetailColl2[0].HLOCALCURRID == null ? 0 : DetailColl2[0].HLOCALCURRID;//本位币 | 
 |  |  |             long HISINCLUDEDTAX = DetailColl2[0].HISINCLUDEDTAX == null ? 0 : DetailColl2[0].HISINCLUDEDTAX;//是否含税 | 
 |  |  |             long HISPRICEEXCLUDETAX = DetailColl2[0].HISPRICEEXCLUDETAX == null ? 0 : DetailColl2[0].HISPRICEEXCLUDETAX;//价外税 | 
 |  |  |             long HTAXRATEID = DetailColl2[0].HTAXRATEID == null ? 0 : DetailColl2[0].HTAXRATEID;//税率名称 | 
 |  |  |             double HCOSTPERCENT = DetailColl2[0].HCOSTPERCENT == null ? 0 : DetailColl2[0].HCOSTPERCENT;//计入成本比例% | 
 |  |  |             double HCOSTAMOUNT = DetailColl2[0].HCOSTAMOUNT == null ? 0 : DetailColl2[0].HCOSTAMOUNT;//计入成本金额 | 
 |  |  |             long HVAT = DetailColl2[0].HVAT == null ? 0 : DetailColl2[0].HVAT;//增值税 | 
 |  |  |             long HSELLERWITHHOLDING = DetailColl2[0].HSELLERWITHHOLDING == null ? 0 : DetailColl2[0].HSELLERWITHHOLDING;//卖方代扣代缴 | 
 |  |  |             long HBUYERWITHHOLDING = DetailColl2[0].HBUYERWITHHOLDING == null ? 0 : DetailColl2[0].HBUYERWITHHOLDING;//买方代扣代缴 | 
 |  |  |             string HMATERIALDESC = DetailColl2[0].HMATERIALDESC == null ? "''" : DetailColl2[0].HMATERIALDESC; //物料说明 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             int i = 0; | 
 |  |  |             foreach (ClsCg_POOrderBillSub oSub in DetailColl) | 
 |  |  |             { | 
 |  |  |                 string HSourceBillNo = DetailColl2[i].HSourceBillNo == null ? "''" : DetailColl2[i].HSourceBillNo; | 
 |  |  |                 string HSourceBillType = DetailColl2[i].HSourceBillType == null ? "''" : DetailColl2[i].HSourceBillType; | 
 |  |  |                 double HRelationQty = DetailColl2[i].HRelationQty; | 
 |  |  |                 double HBackRelationQty = DetailColl2[i].HBackRelationQty; | 
 |  |  |                 long HPropertyID = DetailColl2[i].HPropertyID; | 
 |  |  |                 string HBatChNo = DetailColl2[i].HBatChNo == null ? "''" : DetailColl2[i].HBatChNo; | 
 |  |  |                 long HAuxPropID = DetailColl2[i].HAuxPropID; | 
 |  |  |                 string HMTONo = DetailColl2[i].HMTONo == null ? "''" : DetailColl2[i].HMTONo; | 
 |  |  |                 long HERPInterID = DetailColl2[i].HERPInterID; | 
 |  |  |                 long HERPEntryID = DetailColl2[i].HERPEntryID; | 
 |  |  |                 long HWHID = DetailColl2[i].HWHID; | 
 |  |  |  | 
 |  |  |                 string HSeOrderBillNo = DetailColl2[i].HSeOrderBillNo == null ? "''" : DetailColl2[i].HSeOrderBillNo; | 
 |  |  |                 string HRemark = DetailColl2[i].HRemark == null ? "''" : DetailColl2[i].HRemark; | 
 |  |  |                 string HSourceInterID = DetailColl2[i].HSourceInterID == null ? "''" : DetailColl2[i].HSourceInterID; | 
 |  |  |                 string HSourceEntryID = DetailColl2[i].HSourceEntryID == null ? "''" : DetailColl2[i].HSourceEntryID; | 
 |  |  |  | 
 |  |  |                 long HSEQ = DetailColl2[i].HSEQ;//行号 | 
 |  |  |                 long HSTOCKORGID = DetailColl2[i].HSTOCKORGID;//收料组织 | 
 |  |  |                 long HRECEIVEDEPTID = DetailColl2[i].HRECEIVEDEPTID;//收料部门 | 
 |  |  |                 string HSUPPLIERLOT = DetailColl2[i].HSUPPLIERLOT;//供应商批号 | 
 |  |  |                 long HBOMID = DetailColl2[i].HBOMID;//BOM版本 | 
 |  |  |                 long HSTOCKUNITID = DetailColl2[i].HSTOCKUNITID;//库存单位 | 
 |  |  |                 long HBASEUNITID = DetailColl2[i].HBASEUNITID;//基本单位 | 
 |  |  |                 string HBFLOWID = DetailColl2[i].HBFLOWID == null ? "''" : DetailColl2[i].HBFLOWID; //业务流程 | 
 |  |  |                 long HGIVEAWAY = DetailColl2[i].HGIVEAWAY;   //是否赠品 | 
 |  |  |                 string HROWTYPE = DetailColl2[i].HROWTYPE == null ? "''" : DetailColl2[i].HROWTYPE;//产品类型 | 
 |  |  |                 double HBASEUNITQTY = DetailColl2[i].HBASEUNITQTY;//基本单位数量 | 
 |  |  |                 double HSTOCKBASEQTY = DetailColl2[i].HSTOCKBASEQTY; //库存基本数量 | 
 |  |  |                 string HREQTRACENO = DetailColl2[i].HREQTRACENO == null ? "''" : DetailColl2[i].HREQTRACENO;//需求跟踪号 | 
 |  |  |                 double HTAXNETPRICE = DetailColl2[i].HTAXNETPRICE; //含税净价 | 
 |  |  |                 double HPRICECOEFFICIENT = DetailColl2[i].HPRICECOEFFICIENT;//价格系数 | 
 |  |  |                 long HTAXCOMBINATION = DetailColl2[i].HTAXCOMBINATION;//税组合 | 
 |  |  |                 long HPRICEUNITID = DetailColl2[i].HPRICEUNITID;//计价单位 | 
 |  |  |                 long HPRICELISTENTRY = DetailColl2[i].HPRICELISTENTRY;//分录价目表 | 
 |  |  |                 long HPAYORGID = DetailColl2[i].HPAYORGID;//付款组织 | 
 |  |  |                 long HSETTLEMODEID = DetailColl2[i].HSETTLEMODEID;//结算方式 | 
 |  |  |                 long HSETTLECURRID = DetailColl2[i].HSETTLECURRID;//结算币别 | 
 |  |  |                 long HEXCHANGETYPEID = DetailColl2[i].HEXCHANGETYPEID;//汇率类型 | 
 |  |  |                 long HPAYCONDITIONID = DetailColl2[i].HPAYCONDITIONID;//付款条件 | 
 |  |  |                 double HEXCHANGERATE = DetailColl2[i].HEXCHANGERATE;//汇率 | 
 |  |  |                 long HLOCALCURRID = DetailColl2[i].HLOCALCURRID;//本位币 | 
 |  |  |                 long HISINCLUDEDTAX = DetailColl2[i].HISINCLUDEDTAX;//是否含税 | 
 |  |  |                 long HISPRICEEXCLUDETAX = DetailColl2[i].HISPRICEEXCLUDETAX;//价外税 | 
 |  |  |                 long HTAXRATEID = DetailColl2[i].HTAXRATEID;//税率名称 | 
 |  |  |                 double HCOSTPERCENT = DetailColl2[i].HCOSTPERCENT;//计入成本比例% | 
 |  |  |                 double HCOSTAMOUNT = DetailColl2[i].HCOSTAMOUNT;//计入成本金额 | 
 |  |  |                 long HVAT = DetailColl2[i].HVAT;//增值税 | 
 |  |  |                 long HSELLERWITHHOLDING = DetailColl2[i].HSELLERWITHHOLDING;//卖方代扣代缴 | 
 |  |  |                 long HBUYERWITHHOLDING = DetailColl2[i].HBUYERWITHHOLDING;//买方代扣代缴 | 
 |  |  |                 string HMATERIALDESC = DetailColl2[i].HMATERIALDESC == null ? "''" : DetailColl2[i].HMATERIALDESC; //物料说明 | 
 |  |  |                 i++; | 
 |  |  |                 if (oSub.HQty <= 0 || oSub.HQty == null) | 
 |  |  |                 if (oSub.HQty <= 0 || oSub.HQty == 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  | 
 |  |  |                ,HMoney,HTaxRate,HTaxMoney,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HSeOrderBillNo,HSeOrderInterID | 
 |  |  |                ,HSeOrderEntryID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo | 
 |  |  |                ,HSourceBillType,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  |                ,HERPInterID,HERPEntryID | 
 |  |  |                ,HERPInterID,HERPEntryID,HSTOCKORGID | 
 |  |  |                 ,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY,HSTOCKBASEQTY | 
 |  |  |                 ,HREQTRACENO,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID,HSETTLEMODEID,HSETTLECURRID | 
 |  |  |                 ,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT | 
 |  |  |                 ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC)  | 
 |  |  |                 ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC,HWHID)  | 
 |  |  |                  values({HInterID},{NewHEntryID},{oSub.HMaterID},{oSub.HUnitID},{(oSub.HQty == null ? 0 : oSub.HQty)} | 
 |  |  |                 ,{oSub.HPrice},{oSub.HTaxPrice},{oSub.HDiscountRate},{oSub.HRelTaxPrice},{oSub.HMoney},{oSub.HTaxRate},{oSub.HTaxMoney},{oSub.HlineTotal},{oSub.HlineTotalBB},'{oSub.HDate}',{oSub.HInStockQty},{oSub.HInvoiceQty},{HSeOrderBillNo},{oSub.HSeOrderInterID},{oSub.HSeOrderEntryID},'{HRemark}',{HSourceInterID},{HSourceEntryID},{HSourceBillNo},{HSourceBillType},{HRelationQty},{HBackRelationQty},{HPropertyID},{HBatChNo}, | 
 |  |  |                   {HAuxPropID},{HMTONo},{HERPInterID},{HERPEntryID},{HSEQ},{HRECEIVEDEPTID},'{HSUPPLIERLOT}',{HBOMID},{HSTOCKUNITID},{HBASEUNITID},'{HBFLOWID}',{HGIVEAWAY},{HROWTYPE},{HBASEUNITQTY},{HSTOCKBASEQTY},'{HREQTRACENO}',{HTAXNETPRICE},{HPRICECOEFFICIENT},{HTAXCOMBINATION},{HPRICEUNITID},{HPRICELISTENTRY},{HPAYORGID},{HSETTLEMODEID},{HSETTLECURRID},{HEXCHANGETYPEID},{HPAYCONDITIONID},{HEXCHANGERATE},{HLOCALCURRID},{HISINCLUDEDTAX},{HISPRICEEXCLUDETAX},{HTAXRATEID},{HCOSTPERCENT},{HCOSTAMOUNT},{HVAT},{HSELLERWITHHOLDING},{HBUYERWITHHOLDING},'{HMATERIALDESC}')"); | 
 |  |  |                   {HAuxPropID},{HMTONo},{HERPInterID},{HERPEntryID},{HSTOCKORGID},{HSEQ},{HRECEIVEDEPTID},'{HSUPPLIERLOT}',{HBOMID},{HSTOCKUNITID},{HBASEUNITID},'{HBFLOWID}',{HGIVEAWAY},{HROWTYPE},{HBASEUNITQTY},{HSTOCKBASEQTY},'{HREQTRACENO}',{HTAXNETPRICE},{HPRICECOEFFICIENT},{HTAXCOMBINATION},{HPRICEUNITID},{HPRICELISTENTRY},{HPAYORGID},{HSETTLEMODEID},{HSETTLECURRID},{HEXCHANGETYPEID},{HPAYCONDITIONID},{HEXCHANGERATE},{HLOCALCURRID},{HISINCLUDEDTAX},{HISPRICEEXCLUDETAX},{HTAXRATEID},{HCOSTPERCENT},{HCOSTAMOUNT},{HVAT},{HSELLERWITHHOLDING},{HBUYERWITHHOLDING},'{HMATERIALDESC}',{HWHID})"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             //保存后控制=========================================               | 
 |  |  |             ds = oCN.RunProcReturn("exec h_p_Cg_POOrderBill_AfterSaveCtrl " + HInterID, "h_p_Cg_POOrderBill_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; | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //LogService.Write("采购订单同步,保存方法执行完成异常:" + sMainSub.ToString()); | 
 |  |  |                 LogService.Write("采购订单同步,保存方法执行完成异常:" + sMainSub.ToString()); | 
 |  |  |                 var model = sMainSub["model"].ToString(); | 
 |  |  |                 var entry = sMainSub["model"]["HENTRY"].ToString(); | 
 |  |  |  | 
 |  |  | 
 |  |  |                 //主表 | 
 |  |  |                 oCN.RunProc(@"Insert Into Cg_POOrderBillMain    | 
 |  |  |                         (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus | 
 |  |  |                        ,HAddress,HSSID,HSSDate,HPSStyleID,HSupID,HCurID | 
 |  |  |                        ,HAddress,HSSID,HSSDate,HPSStyleID,HSupID,HSupDealerID,HCurID | 
 |  |  |                        ,HExRate,HEmpID,HManagerID,HDeptID,HExplanation,HRemark,HInnerBillNo | 
 |  |  |                        ,HChecker,HCheckDate,HMaker,HMakeDate | 
 |  |  |                        ,HERPInterID,HERPBillType,HPURCHASEORGID | 
 |  |  |                         ,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID) | 
 |  |  |                         values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1102 + "','" + | 
 |  |  |                     mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "','" + mainList[0].HBillStatus + "','" + mainList[0].HAddress + | 
 |  |  |                     "'," + mainList[0].HSSID + ",'" + mainList[0].HSSDate + "'," + mainList[0].HPSStyleID + "," + mainList[0].HSupID + "," + mainList[0].HCurID + | 
 |  |  |                     "'," + mainList[0].HSSID + ",'" + mainList[0].HSSDate + "'," + mainList[0].HPSStyleID + "," + (mainList[0].HSupDealerID == 0 ? mainList[0].HSupID : mainList[0].HSupDealerID) + "," + mainList[0].HSupID + "," + mainList[0].HCurID + | 
 |  |  |                     "," + mainList[0].HExRate + "," + mainList[0].HEmpID + "," + mainList[0].HManagerID + "," + mainList[0].HDeptID + ",'" + mainList[0].HExplanation + "','" + mainList[0].HRemark + "','" + mainList[0].HInnerBillNo + "','" + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HMaker + "','" + | 
 |  |  |                     mainList[0].HMakeDate + "'," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "'," + mainList[0].HPURCHASEORGID + "," + mainList[0].HPURCHASERGROUPID + "," | 
 |  |  |                     + mainList[0].HPROVIDERID + "," + mainList[0].HSETTLEID + "," + mainList[0].HCHARGEID + ",'" + mainList[0].HBUSINESSTYPE + "','" + mainList[0].HPROVIDERADDRESS + "'," | 
 |  |  | 
 |  |  |                 foreach (var oSub in subList) | 
 |  |  |                 { | 
 |  |  |                     sql = $@" | 
 |  |  | Insert into Cg_POOrderBillSub  | 
 |  |  | (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX,HTaxPrice,HDiscountRate,HRelTaxPrice | 
 |  |  | ,HMoney,HTaxRate,HTaxMoney,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HSeOrderBillNo,HSeOrderInterID | 
 |  |  | ,HSeOrderEntryID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo | 
 |  |  | ,HSourceBillType,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  | ,HERPInterID,HERPEntryID | 
 |  |  | ,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY,HSTOCKBASEQTY | 
 |  |  | ,HREQTRACENO,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID,HSETTLEMODEID,HSETTLECURRID | 
 |  |  | ,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT | 
 |  |  | ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC)  | 
 |  |  | values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}','{oSub.HPrice}','{oSub.HTaxRate_TAX}','{oSub.HTaxMoney_TAX}','{oSub.HDiscountRate}','{oSub.HRelTaxPrice}', | 
 |  |  | '{oSub.HMoney}','{oSub.HTaxRate}','{oSub.HTaxMoney}','{oSub.HlineTotal}','{oSub.HlineTotalBB}','{oSub.HDate}','{oSub.HInStockQty}','{oSub.HInvoiceQty}','{oSub.HSeOrderBillNo}','{oSub.HSeOrderInterID}', | 
 |  |  | '{oSub.HSeOrderEntryID}','{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}', | 
 |  |  | '{oSub.HSourceBillType}','{oSub.HRelationQty}','{oSub.HBackRelationQty}','{oSub.HPropertyID}','{oSub.HBatChNo}','{oSub.HAuxPropID}','{oSub.HMTONo}', | 
 |  |  | '{oSub.HERPInterID}','{oSub.HERPEntryID}', | 
 |  |  | '{oSub.HSEQ}','{oSub.HRECEIVEDEPTID}','{oSub.HSUPPLIERLOT}','{oSub.HBOMID}','{oSub.HSTOCKUNITID}','{oSub.HBASEUNITID}','{oSub.HBFLOWID}','{oSub.HGIVEAWAY}','{oSub.HROWTYPE}','{oSub.HBASEUNITQTY}','{oSub.HSTOCKBASEQTY}', | 
 |  |  | '{oSub.HREQTRACENO}','{oSub.HTAXNETPRICE}','{oSub.HPRICECOEFFICIENT}','{oSub.HTAXCOMBINATION}','{oSub.HPRICEUNITID}','{oSub.HPRICELISTENTRY}','{oSub.HPAYORGID}','{oSub.HSETTLEMODEID}','{oSub.HSETTLECURRID}', | 
 |  |  | '{oSub.HEXCHANGETYPEID}','{oSub.HPAYCONDITIONID}','{oSub.HEXCHANGERATE}','{oSub.HLOCALCURRID}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}','{oSub.HCOSTPERCENT}','{oSub.HCOSTAMOUNT}', | 
 |  |  | '{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}','{oSub.HMATERIALDESC}')"; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |                     Insert into Cg_POOrderBillSub  | 
 |  |  |                     (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX,HTaxPrice,HDiscountRate,HRelTaxPrice | 
 |  |  |                     ,HMoney,HTaxRate,HTaxMoney,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HSeOrderBillNo,HSeOrderInterID | 
 |  |  |                     ,HSeOrderEntryID,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo | 
 |  |  |                     ,HSourceBillType,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  |                     ,HERPInterID,HERPEntryID,HSTOCKORGID | 
 |  |  |                     ,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY,HSTOCKBASEQTY | 
 |  |  |                     ,HREQTRACENO,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID,HSETTLEMODEID,HSETTLECURRID | 
 |  |  |                     ,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT | 
 |  |  |                     ,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING,HMATERIALDESC)  | 
 |  |  |                     values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}','{oSub.HPrice}','{oSub.HTaxRate_TAX}','{oSub.HTaxMoney_TAX}','{oSub.HDiscountRate}','{oSub.HRelTaxPrice}', | 
 |  |  |                     '{oSub.HMoney}','{oSub.HTaxRate}','{oSub.HTaxMoney}','{oSub.HlineTotal}','{oSub.HlineTotalBB}','{oSub.HDate}','{oSub.HInStockQty}','{oSub.HInvoiceQty}','{oSub.HSeOrderBillNo}','{oSub.HSeOrderInterID}', | 
 |  |  |                     '{oSub.HSeOrderEntryID}','{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}', | 
 |  |  |                     '{oSub.HSourceBillType}','{oSub.HRelationQty}','{oSub.HBackRelationQty}','{oSub.HPropertyID}','{oSub.HBatChNo}','{oSub.HAuxPropID}','{oSub.HMTONo}', | 
 |  |  |                     '{oSub.HERPInterID}','{oSub.HERPEntryID}','{oSub.HSTOCKORGID}', | 
 |  |  |                     '{oSub.HSEQ}','{oSub.HRECEIVEDEPTID}','{oSub.HSUPPLIERLOT}','{oSub.HBOMID}','{oSub.HSTOCKUNITID}','{oSub.HBASEUNITID}','{oSub.HBFLOWID}','{oSub.HGIVEAWAY}','{oSub.HROWTYPE}','{oSub.HBASEUNITQTY}','{oSub.HSTOCKBASEQTY}', | 
 |  |  |                     '{oSub.HREQTRACENO}','{oSub.HTAXNETPRICE}','{oSub.HPRICECOEFFICIENT}','{oSub.HTAXCOMBINATION}','{oSub.HPRICEUNITID}','{oSub.HPRICELISTENTRY}','{oSub.HPAYORGID}','{oSub.HSETTLEMODEID}','{oSub.HSETTLECURRID}', | 
 |  |  |                     '{oSub.HEXCHANGETYPEID}','{oSub.HPAYCONDITIONID}','{oSub.HEXCHANGERATE}','{oSub.HLOCALCURRID}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}','{oSub.HCOSTPERCENT}','{oSub.HCOSTAMOUNT}', | 
 |  |  |                     '{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}','{oSub.HMATERIALDESC}')"; | 
 |  |  |                       oCN.RunProc(sql); | 
 |  |  |                 } | 
 |  |  |                 oCN.Commit(); | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         ///删除功能 | 
 |  |  |         /// </summary> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         [Route("Cg_POOrderBill/DeltetCg_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object DeltetCg_POOrderBill(string HInterID) | 
 |  |  |         public object DeltetCg_POOrderBill(string HInterID, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |               | 
 |  |  |                 string HBillNo = ""; | 
 |  |  |                 //删除前控制=========================================       | 
 |  |  |                 string sql1 = "exec h_p_Cg_POOrderBill_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; | 
 |  |  |                 ds = oCN.RunProcReturn(sql1, "h_p_Cg_POOrderBill_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 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]["HBillStatus"].ToString() == "6") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "单据在审核中!不能进行删除!"; | 
 |  |  |                         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("Delete From Cg_POOrderBillMain where HInterID = " + HInterID); | 
 |  |  |                 oCN.RunProc("Delete From Cg_POOrderBillSub where HInterID = " + HInterID); | 
 |  |  |                 oCN.Commit(); | 
 |  |  |  | 
 |  |  |                 //删除后控制==================================================================================       | 
 |  |  |                 string sql2 = "exec h_p_Cg_POOrderBill_AfterDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; | 
 |  |  |                 ds = oCN.RunProcReturn(sql2, "h_p_Cg_POOrderBill_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 = "删除成功!"; | 
 |  |  | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |  | 
 |  |  |                  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid =" + HInterID, "h_v_IF_POOrderBillList"); | 
 |  |  |                 if (ds == null || ds.Tables[0].Rows.Count == 0) | 
 |  |  |                 { | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         #region 根据物料内码获取物料信息 | 
 |  |  |         [Route("Cg_POOrderBill/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_POOrderBill/AuditCg_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object AuditCg_POOrderBill(int HInterID, int IsAudit, string CurUserName) | 
 |  |  |         { | 
 |  |  |             string ModRightNameCheck = "Cg_POOrderBill_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_POOrderBill oBill = new DAL.ClsCg_POOrderBill();                              //实例化单据操作类,用于进行相关操作 | 
 |  |  |  | 
 |  |  |                 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 | 
 |  |  |                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据 | 
 |  |  |                 { | 
 |  |  |                     if (oBill.omodel.HCloseMan.Trim() != "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据已关闭!不能再次审核!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (oBill.omodel.HDeleteMan.Trim() != "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据已作废!不能再次审核!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (IsAudit == TypeConstant.AUDIT)  //审核判断 | 
 |  |  |                     { | 
 |  |  |                         if (oBill.omodel.HChecker.Trim() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已审核!不能再次审核!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (IsAudit == TypeConstant.REVERSE_AUDIT) //反审核判断 | 
 |  |  |                     { | 
 |  |  |                         if (oBill.omodel.HChecker.Trim() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据未审核!不需要反审核!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 //进行需要进行的审核/反审核操作 | 
 |  |  |                 if (IsAudit == TypeConstant.AUDIT) //审核提交 | 
 |  |  |                 { | 
 |  |  |                      | 
 |  |  |                     //审核前控制=========================================       | 
 |  |  |                     string sql1 = "exec h_p_Cg_POOrderBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; | 
 |  |  |                     ds = oCN.RunProcReturn(sql1, "h_p_Cg_POOrderBill_BeforeCheckCtrl"); | 
 |  |  |                     if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         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_POOrderBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "审核成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if (IsAudit == TypeConstant.REVERSE_AUDIT) //反审核提交 | 
 |  |  |                 { | 
 |  |  |                     //反审核前控制========================================= | 
 |  |  |                     DataSet ds = oCN.RunProcReturn("Exec h_p_Cg_POOrderBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'", "h_p_Cg_POOrderBill_BeforeUnCheckCtrl"); | 
 |  |  |                     if (ds == null) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "反审核失败!原因:" + "反审核前判断失败!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         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_POOrderBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "反审核成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         #region 采购订单 关闭/反关闭功能 | 
 |  |  |         [Route("Cg_POOrderBill/CloseCg_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object CloseCg_POOrderBill(string HInterID, int Type, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //判断是否有删除权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBill_Close", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限关闭!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (string.IsNullOrWhiteSpace(HInterID)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "HInterID为空!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 ClsPub.CurUserName = user; | 
 |  |  |                 BillOld.MvarItemKey = "Cg_POOrderBillMain"; | 
 |  |  |                 oCN.BeginTran();//开始事务 | 
 |  |  |  | 
 |  |  |                 //Type 1 关闭  2  反关闭 | 
 |  |  |                 if (Type == TypeConstant.CLOSED) | 
 |  |  |                 { | 
 |  |  |                     //判断单据是否已经关闭 | 
 |  |  |                     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 = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         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 = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已作废!不能进行关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据未审核!不能进行关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已关闭!不能再次关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         //关闭单据 | 
 |  |  |                         if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                             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 = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已作废!不能进行关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据未审核!不能进行关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据未关闭!不需要再反关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         //反关闭单据 | 
 |  |  |                         if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                             objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 oCN.Commit();//提交事务 | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "执行成功!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; ; | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 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_POOrderBill/CloseRowCg_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object CloseRowCg_POOrderBill(int HInterID, int HEntryID, int IsAudit, string CurUserName) | 
 |  |  |         { | 
 |  |  |             string ModRightNameCheck = "Cg_POOrderBill_Close"; | 
 |  |  |             string SubBillName = "Cg_POOrderBillSub";                   //子表表名 | 
 |  |  |             DBUtility.ClsPub.CurUserName = CurUserName; | 
 |  |  |             DataSet ds = null; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //检查权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "行关闭失败!无权限!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 //HInterID数据判断 | 
 |  |  |                 if (HInterID <= 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "HInterID小于0!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 Int64 lngBillKey = 0; | 
 |  |  |                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //对HInterID进行类型的转换 | 
 |  |  |                 DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();              //实例化单据操作类,用于进行相关操作 | 
 |  |  |  | 
 |  |  |                 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 | 
 |  |  |                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据 | 
 |  |  |                 { | 
 |  |  |                     if (oBill.omodel.HDeleteMan.Trim() != "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据已作废!不能进行行关闭!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (oBill.omodel.HCloseMan.Trim() != "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据已关闭!不能进行行关闭!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (oBill.omodel.HChecker.Trim() == "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据未审核!不能进行行关闭!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     string sql = "select * from " + SubBillName + " where HInterID = " + HInterID + " and HEntryID = " + HEntryID; | 
 |  |  |                     ds = oCN.RunProcReturn(sql, "Cg_POOrderBillSub"); | 
 |  |  |                     if (ds == null || ds.Tables[0].Rows.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "该行数据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (IsAudit == TypeConstant.LINE_CLOSED)  //行关闭判断 | 
 |  |  |                     { | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "行已关闭!不能再次行关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (IsAudit == TypeConstant.REVERSE_LINE_CLOSED) //行反关闭判断 | 
 |  |  |                     { | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             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 = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "行反关闭失败!行为自动关闭,不能进行手动反关闭!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 //进行需要进行的行关闭/行反关闭操作 | 
 |  |  |                 if (IsAudit == TypeConstant.LINE_CLOSED) //行关闭提交 | 
 |  |  |                 { | 
 |  |  |                     //行关闭提交 | 
 |  |  |                     if (oBill.CloseRow(lngBillKey, HEntryID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "行关闭成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "行关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if (IsAudit == TypeConstant.REVERSE_LINE_CLOSED) //行反关闭提交 | 
 |  |  |                 { | 
 |  |  |                     //行反关闭提交 | 
 |  |  |                     if (oBill.CancelRow(lngBillKey, HEntryID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "反关闭成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "反关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "关闭失败或者反关闭失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单 作废/反作废功能 | 
 |  |  |         [Route("Cg_POOrderBill/DropCg_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object DropCg_POOrderBill(string HInterID, int Type, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //判断是否有作废权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBill_Drop", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限作废!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (string.IsNullOrWhiteSpace(HInterID)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "HInterID为空!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 ClsPub.CurUserName = user; | 
 |  |  |                 BillOld.MvarItemKey = "Cg_POOrderBillMain"; | 
 |  |  |                 oCN.BeginTran();//开始事务 | 
 |  |  |  | 
 |  |  |                 //Type 1 作废  2  反作废 | 
 |  |  |                 if (Type == TypeConstant.INVALID) | 
 |  |  |                 { | 
 |  |  |                     //判断单据是否已经作废 | 
 |  |  |                     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 = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         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 = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已审核!不能进行作废!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已作废!不需要再作废!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HBillStatus"].ToString() == "6" ) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据在审核中!不能进行作废!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         //作废单据 | 
 |  |  |                         if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             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 = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据已审核!不能进行作废!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据未作废!不需要再反作废!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HBillStatus"].ToString() == "6") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据在审核中!不能进行作废!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         //反作废单据 | 
 |  |  |                         if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                             objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 oCN.Commit();//提交事务 | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "执行成功!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; ; | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "执行失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region [同步单据] | 
 |  |  |         [Route("Cg_POOrderBill/Cg_POOrderBillViewApi")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public json Cg_POOrderBillViewApi(string BillNo, string BillType) | 
 |  |  |         { | 
 |  |  |             string sql = string.Empty; | 
 |  |  |             string sReturn = ""; | 
 |  |  |             if (oSystemParameter.ShowBill(ref sReturn) == true) | 
 |  |  |             { | 
 |  |  |                 //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式 | 
 |  |  |                 if (oSystemParameter.omodel.WMS_CloudMode == "Y") | 
 |  |  |                 { | 
 |  |  |                     #region [私有云模式,直接调用数据库存储过程更新] | 
 |  |  |                     try | 
 |  |  |                     { | 
 |  |  |                         oCN.BeginTran(); | 
 |  |  |                         SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); | 
 |  |  |                         DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal"); | 
 |  |  |                         if (DS == null) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "单据同步失败"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2") | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                                 objJsonResult.Message = "ERP中不存在该单据号"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |                             else | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                                 objJsonResult.Message = "单据同步成功"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                     catch (Exception e) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         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 = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = loginRet; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     //查看 获取数据                     | 
 |  |  |                     var _result = InvokeHelper.View("PUR_PurchaseOrder", JsonConvert.SerializeObject(json)); | 
 |  |  |                     var _saveObj = JObject.Parse(_result); | 
 |  |  |                     //判断数据是否获取成功 | 
 |  |  |                     if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "金蝶采购订单同步失败jsonRoot:" + _result; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     #endregion | 
 |  |  |                     //获取主表数据 | 
 |  |  |                     DataSet Ds; | 
 |  |  |                     Int64 InterID = 0; | 
 |  |  |                     Ds = oCN.RunProcReturn("select * from Cg_POOrderBillMain where HBillNo = '" + BillNo + "'", "Cg_POOrderBillMain"); | 
 |  |  |                     if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0) | 
 |  |  |                     { | 
 |  |  |                         InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     #region [主表数据赋值] | 
 |  |  |                     var jsonData = new | 
 |  |  |                     { | 
 |  |  |                         HInterID = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                         HYear = DateTime.Now.Year, | 
 |  |  |                         HPeriod = DateTime.Now.Month, | 
 |  |  |                         HBillType = 1102, | 
 |  |  |                         HBillSubType = 1102, | 
 |  |  |                         HDate = _saveObj["Result"]["Result"]["Date"], | 
 |  |  |                         HBillNo = _saveObj["Result"]["Result"]["BillNo"], | 
 |  |  |                         HBillStatus    = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == Convert.ToString(0) ? 1 : 2 , | 
 |  |  |                         HAddress       = "", | 
 |  |  |                         HSSID          = 0, | 
 |  |  |                         HSSDate = _saveObj["Result"]["Result"]["Date"], | 
 |  |  |                         HPSStyleID     = 0, | 
 |  |  |                         HSupID         = _saveObj["Result"]["Result"]["SupplierId_Id"], | 
 |  |  |                         HCurID         = 0, | 
 |  |  |                         HExRate        = 0, | 
 |  |  |                         HEmpID         = _saveObj["Result"]["Result"]["PurchaserId_Id"], | 
 |  |  |                         HManagerID     = 0, | 
 |  |  |                         HDeptID        = _saveObj["Result"]["Result"]["PurchaseDeptId_Id"], | 
 |  |  |                         HExplanation   = "CLOUD导入", | 
 |  |  |                         HRemark        = "CLOUD导入", | 
 |  |  |                         HInnerBillNo   = _saveObj["Result"]["Result"]["BillNo"], | 
 |  |  |                         HChecker       = _saveObj["Result"]["Result"]["ApproverId"]["Name"], | 
 |  |  |                         HCheckDate     = _saveObj["Result"]["Result"]["ApproveDate"], | 
 |  |  |                         HMaker         = _saveObj["Result"]["Result"]["CreatorId"]["Name"], | 
 |  |  |                         HMakeDate      = _saveObj["Result"]["Result"]["CreateDate"], | 
 |  |  |                         HERPInterID    = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                         HERPBillType   = _saveObj["Result"]["Result"]["BillTypeId_Id"], | 
 |  |  |                         HPURCHASEORGID = _saveObj["Result"]["Result"]["PurchaseOrgId_Id"], | 
 |  |  |                         HPURCHASERGROUPID = _saveObj["Result"]["Result"]["PurchaserGroupId_Id"], | 
 |  |  |                         HPROVIDERID       = _saveObj["Result"]["Result"]["ProviderId_Id"], | 
 |  |  |                         HSETTLEID         = _saveObj["Result"]["Result"]["SettleId_Id"], | 
 |  |  |                         HCHARGEID         = _saveObj["Result"]["Result"]["ChargeId_Id"], | 
 |  |  |                         HBUSINESSTYPE     = _saveObj["Result"]["Result"]["BusinessType"], | 
 |  |  |                         HPROVIDERADDRESS  = _saveObj["Result"]["Result"]["ProviderAddress"], | 
 |  |  |                         HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"], | 
 |  |  |                         HPROVIDERCONTACTID = _saveObj["Result"]["Result"]["ProviderContactId_Id"] | 
 |  |  |                     }; | 
 |  |  |                     #endregion | 
 |  |  |                     // 删除主表对应数据 | 
 |  |  |                     sql = $"delete from Cg_POOrderBillMain where HInterID = " + InterID; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     //插入主表 | 
 |  |  |                     sql = $@" | 
 |  |  |                 insert into Cg_POOrderBillMain | 
 |  |  |                 (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate | 
 |  |  |                ,HBillNo,HBillStatus,HAddress,HSSID,HSSDate,HPSStyleID | 
 |  |  |                ,HSupID,HCurID,HExRate,HEmpID,HManagerID,HDeptID | 
 |  |  |                ,HExplanation,HRemark,HInnerBillNo | 
 |  |  |                ,HChecker,HCheckDate,HMaker,HMakeDate | 
 |  |  |                ,HERPInterID,HERPBillType,HPURCHASEORGID,HPURCHASERGROUPID,HPROVIDERID,HSETTLEID | 
 |  |  |                ,HCHARGEID,HBUSINESSTYPE,HPROVIDERADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID | 
 |  |  |                  ) | 
 |  |  |                 values | 
 |  |  |                 ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType}, | 
 |  |  |                 '{jsonData.HDate}','{jsonData.HBillNo}',{jsonData.HBillStatus},'{jsonData.HAddress}',{jsonData.HSSID}, | 
 |  |  |                 '{jsonData.HSSDate}',{jsonData.HPSStyleID},{jsonData.HSupID},{jsonData.HCurID},{jsonData.HExRate},{jsonData.HEmpID},{jsonData.HManagerID}, | 
 |  |  |                 {jsonData.HDeptID},'{jsonData.HExplanation}','{jsonData.HRemark}','{jsonData.HInnerBillNo}','{jsonData.HChecker}', | 
 |  |  |                 '{jsonData.HCheckDate}','{jsonData.HMaker}','{jsonData.HMakeDate}',{jsonData.HERPInterID},'{jsonData.HERPBillType}', | 
 |  |  |                 {jsonData.HPURCHASEORGID},{jsonData.HPURCHASERGROUPID},'{jsonData.HPROVIDERID}',{jsonData.HSETTLEID},{jsonData.HCHARGEID}, | 
 |  |  |                 '{jsonData.HBUSINESSTYPE}','{jsonData.HPROVIDERADDRESS}',{jsonData.HCORRESPONDORGID},{jsonData.HPROVIDERCONTACTID})"; | 
 |  |  |  | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     #region [申请子表变量] | 
 |  |  |                     var dataArr = _saveObj["Result"]["Result"]["POOrderEntry"]; | 
 |  |  |  | 
 |  |  |                     DataSet Cs; | 
 |  |  |                     double RelationQty = 0; | 
 |  |  |                     #endregion | 
 |  |  |                     int i = 0; | 
 |  |  |  | 
 |  |  |                     // 获取子表数据 | 
 |  |  |                     Cs = oCN.RunProcReturn("select * from Cg_POOrderBillSub where HInterID = " + InterID, "Cg_POOrderBillSub"); | 
 |  |  |                     // 删除子表对应数据 | 
 |  |  |                     sql = $"delete from Cg_POOrderBillSub where HInterID = " + InterID; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     foreach (var oSub in dataArr) | 
 |  |  |                     { | 
 |  |  |                         #region [子表数据赋值] | 
 |  |  |  | 
 |  |  |                         if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0) | 
 |  |  |                         { | 
 |  |  |                             RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString()); | 
 |  |  |  | 
 |  |  |                             i++; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         var subData = new | 
 |  |  |                         { | 
 |  |  |                             HInterID = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                             HEntryID = oSub["Id"], | 
 |  |  |                             HMaterID = oSub["MaterialId_Id"], | 
 |  |  |                             HUnitID             = oSub["UnitId_Id"], | 
 |  |  |                             HQty                = oSub["Qty"], | 
 |  |  |                             HPrice              = oSub["Price"], | 
 |  |  |                             HTaxRate_TAX        = oSub["TaxRate"], | 
 |  |  |                             HTaxMoney_TAX       = oSub["TaxAmount"], | 
 |  |  |                             HTaxPrice           = oSub["TaxPrice"], | 
 |  |  |                             HDiscountRate       = oSub["DiscountRate"], | 
 |  |  |                             HRelTaxPrice        = 0, | 
 |  |  |                             HMoney              = oSub["Amount"], | 
 |  |  |                             HTaxRate            = oSub["TaxRate"], | 
 |  |  |                             HTaxMoney           = oSub["TaxAmount"], | 
 |  |  |                             HLineTotal          = 0, | 
 |  |  |                             HlineTotalBB        = 0, | 
 |  |  |                             HDate               = oSub["DeliveryDate"], | 
 |  |  |                             HInStockQty         = 0, | 
 |  |  |                             HInvoiceQty         = 0, | 
 |  |  |                             HRemark             = oSub["Note"], | 
 |  |  |                             HSeOrderBillNo      = "", | 
 |  |  |                             HSeOrderInterID     = 0, | 
 |  |  |                             HSeOrderEntryID     = 0, | 
 |  |  |                             HSourceInterID      = 0, | 
 |  |  |                             HSourceEntryID      = 0, | 
 |  |  |                             HSourceBillNo       = "", | 
 |  |  |                             HSourceBillType     = "", | 
 |  |  |                             HRelationQty        = oSub["JOINQTY"], | 
 |  |  |                             HBackRelationQty    = oSub["STOCKRETQTY"], | 
 |  |  |                             HPropertyID         = 0, | 
 |  |  |                             HBatChNo            = oSub["FLot_Text"], | 
 |  |  |                             HAuxPropID          = oSub["AuxPropId_Id"], | 
 |  |  |                             HMTONo              = oSub["MtoNo"], | 
 |  |  |                             HERPInterID         = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                             HERPEntryID         = oSub["Id"], | 
 |  |  |                             HSEQ                = oSub["Seq"], | 
 |  |  |                             HRECEIVEDEPTID      = oSub["ReceiveDeptId_Id"], | 
 |  |  |                             HSUPPLIERLOT        = oSub["SupplierLot"], | 
 |  |  |                             HBOMID              = oSub["BomId_Id"], | 
 |  |  |                             HSTOCKUNITID        = oSub["StockUnitID_Id"], | 
 |  |  |                             HBASEUNITID         = oSub["BaseUnitId_Id"], | 
 |  |  |                             HBFLOWID            = oSub["FBFLowId_Id"], | 
 |  |  |                             HGIVEAWAY           = oSub["GiveAway"], | 
 |  |  |                             HROWTYPE            = oSub["RowType"], | 
 |  |  |                             HBASEUNITQTY        = oSub["BaseUnitQty"], | 
 |  |  |                             HSTOCKBASEQTY       = oSub["StockBaseQty"], | 
 |  |  |                             HREQTRACENO         = oSub["ReqTraceNo"], | 
 |  |  |                             HMATERIALDESC       = oSub["MultiLanguageText"][0]["MaterialDesc"], | 
 |  |  |                             HRECEIVEORGID       = oSub["ReceiveOrgId_Id"], | 
 |  |  |                             HREQUIREORGID       = oSub["RequireOrgId_Id"], | 
 |  |  |                             HTAXNETPRICE        = oSub["TaxNetPrice"], | 
 |  |  |                             HPRICECOEFFICIENT   = oSub["PriceCoefficient"], | 
 |  |  |                             HTAXCOMBINATION     = oSub["FTaxCombination_Id"], | 
 |  |  |                             HPRICEUNITID        = oSub["PriceUnitId_Id"], | 
 |  |  |                             HPRICELISTENTRY     = oSub["PriceListEntry_Id"], | 
 |  |  |                             HPAYORGID           = oSub["PayOrgId_Id"], | 
 |  |  |                             HSETTLEMODEID       = oSub["EntrySettleModeId_Id"], | 
 |  |  |                             HSETTLECURRID       = 0, | 
 |  |  |                             HEXCHANGETYPEID     = 0, | 
 |  |  |                             HPAYCONDITIONID     = 0, | 
 |  |  |                             HEXCHANGERATE       = 0, | 
 |  |  |                             HLOCALCURRID        = 0, | 
 |  |  |                             HISINCLUDEDTAX      = 0, | 
 |  |  |                             HISPRICEEXCLUDETAX  = 0, | 
 |  |  |                             HSETTLEORGID        = oSub["SettleOrgId_Id"], | 
 |  |  |                             HTAXRATEID          = oSub["POORDERENTRY_TAX"][0]["TaxRateId_Id"], | 
 |  |  |                             HCOSTPERCENT        = oSub["POORDERENTRY_TAX"][0]["CostPercent"], | 
 |  |  |                             HCOSTAMOUNT         = oSub["POORDERENTRY_TAX"][0]["CostAmount"], | 
 |  |  |                             HVAT                = oSub["POORDERENTRY_TAX"][0]["VAT"], | 
 |  |  |                             HSELLERWITHHOLDING  = oSub["POORDERENTRY_TAX"][0]["SellerWithholding"], | 
 |  |  |                             HBUYERWITHHOLDING = oSub["POORDERENTRY_TAX"][0]["BuyerWithholding"], | 
 |  |  |                         }; | 
 |  |  |                         #endregion                        | 
 |  |  |  | 
 |  |  |                         //插入子表 | 
 |  |  |                         sql = $@" | 
 |  |  |                  insert into Cg_POOrderBillSub | 
 |  |  |                  (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HTaxRate_TAX,HTaxMoney_TAX | 
 |  |  |                ,HTaxPrice,HDiscountRate,HRelTaxPrice,HMoney,HTaxRate,HTaxMoney | 
 |  |  |                ,HLineTotal,HlineTotalBB,HDate,HInStockQty,HInvoiceQty,HRemark | 
 |  |  |                ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType | 
 |  |  |                ,HRelationQty,HBackRelationQty,HPropertyID,HBatChNo,HAuxPropID,HMTONo | 
 |  |  |                ,HERPInterID,HERPEntryID,HSEQ,HRECEIVEDEPTID,HSUPPLIERLOT,HBOMID | 
 |  |  |                ,HSTOCKUNITID,HBASEUNITID,HBFLOWID,HGIVEAWAY,HROWTYPE,HBASEUNITQTY | 
 |  |  |                ,HSTOCKBASEQTY,HREQTRACENO,HMATERIALDESC,HRECEIVEORGID,HREQUIREORGID | 
 |  |  |                ,HTAXNETPRICE,HPRICECOEFFICIENT,HTAXCOMBINATION,HPRICEUNITID,HPRICELISTENTRY,HPAYORGID | 
 |  |  |                ,HSETTLEMODEID,HSETTLECURRID,HEXCHANGETYPEID,HPAYCONDITIONID,HEXCHANGERATE,HLOCALCURRID | 
 |  |  |                ,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HSETTLEORGID | 
 |  |  |                ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING | 
 |  |  |                  ) | 
 |  |  |                  values | 
 |  |  |                  ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice}, | 
 |  |  |                   {subData.HTaxRate_TAX},{subData.HTaxMoney_TAX},{subData.HTaxPrice},{subData.HDiscountRate},{subData.HRelTaxPrice},{subData.HMoney},{subData.HTaxRate},{subData.HTaxMoney},{subData.HLineTotal},{subData.HlineTotalBB},'{subData.HDate}',{subData.HInStockQty},{subData.HInvoiceQty},'{subData.HRemark}','{subData.HSeOrderBillNo}',{subData.HSeOrderInterID},{subData.HSeOrderEntryID},{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}','{subData.HSourceBillType}',{subData.HRelationQty},{subData.HBackRelationQty},{subData.HPropertyID},'{subData.HBatChNo}',{subData.HAuxPropID},'{subData.HMTONo}',{subData.HERPInterID},{subData.HERPEntryID},{subData.HSEQ},{subData.HRECEIVEDEPTID},'{subData.HSUPPLIERLOT}',{subData.HBOMID},{subData.HSTOCKUNITID},{subData.HBASEUNITID},'{subData.HBFLOWID}','{subData.HGIVEAWAY}','{subData.HROWTYPE}',{subData.HBASEUNITQTY},{subData.HSTOCKBASEQTY},'{subData.HREQTRACENO}','{subData.HMATERIALDESC}',{subData.HRECEIVEORGID},{subData.HREQUIREORGID},{subData.HTAXNETPRICE},'{subData.HPRICECOEFFICIENT}','{subData.HTAXCOMBINATION}',{subData.HPRICEUNITID},'{subData.HPRICELISTENTRY}',{subData.HPAYORGID},{subData.HSETTLEMODEID},{subData.HSETTLECURRID},'{subData.HEXCHANGETYPEID}',{subData.HPAYCONDITIONID},{subData.HEXCHANGERATE},{subData.HLOCALCURRID},{subData.HISINCLUDEDTAX},{subData.HISPRICEEXCLUDETAX},{subData.HSETTLEORGID},{subData.HTAXRATEID},'{subData.HCOSTPERCENT}',{subData.HCOSTAMOUNT},'{subData.HVAT}','{subData.HSELLERWITHHOLDING}','{subData.HBUYERWITHHOLDING}')"; | 
 |  |  |  | 
 |  |  |                         oCN.RunProc(sql); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                     objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                     objJsonResult.Message = "单据同步成功!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |  | 
 |  |  |                     #endregion | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             else | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "单据读取失败!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单 根据主内码与子内码获取采购订单数据 | 
 |  |  |         [Route("Cg_POOrderBill/loadCg_POOrderBill_Push")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object loadCg_POOrderBill_Push(long HInterID, long HSubID) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_IF_POOrderBillList"); | 
 |  |  |                 if (ds == null || ds.Tables[0].Rows.Count == 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "未查询到源单信息!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                     objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                     objJsonResult.Message = "Sucess!"; | 
 |  |  |                     objJsonResult.data = ds.Tables[0]; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单需要我审批流审批的 | 
 |  |  |         [Route("Cg_POOrderBill/NeedChecklist")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object NeedChecklist(string user,string userid) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限查看!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 //搜索需要审核的 | 
 |  |  |                 string sql = "  select a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流,c.HCheckFlowID,i.HName as 审批项目名称,c.HCheckItemID,c.HChecker as 项目审核人,c.HCheckNote as 审批流审核建议,c.HCheckDate 审批流审核日期   from h_v_Cg_POOrderBillList AS a LEFT JOIN Xt_BillCheckFlowStatus AS c ON a.hmainid = c.HBillInterID and a.单据类型 = c.HBillTypeID" + | 
 |  |  |                     " LEFT JOIN Xt_CheckFlowMain as m ON m.HInterID = c.HCheckFlowID" + | 
 |  |  |                     " LEFT JOIN Cg_POOrderBillMain as po ON a.hmainid = po.HInterID" + | 
 |  |  |                     " LEFT JOIN Xt_CheckItem as i ON i.HItemID = c.HCheckItemID" + | 
 |  |  |                     " LEFT JOIN Xt_CheckUserRight as cr ON cr.HCheckItemID = i.HItemID and cr.HCheckFlowInterID = m.HInterID" + | 
 |  |  |                     " where po.HBillStatus = 6 and po.HCheckItemNowID = i.HItemID  and cr.HUserID = '" + userid +"'" ; | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_Cg_POOrderBillList");  | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单已经审批流审批的 | 
 |  |  |         [Route("Cg_POOrderBill/Checkedlist")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object Checkedlist(string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限查看!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 //搜索需要审核的 | 
 |  |  |                 string sql = "  select DISTINCT a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流,c.HCheckFlowID,i.HName as 审批项目名称,c.HCheckItemID,c.HChecker as 项目审核人,c.HCheckNote as 审批流审核建议,c.HCheckDate 审批流审核日期   from h_v_Cg_POOrderBillList AS a LEFT JOIN Xt_BillCheckFlowStatus AS c ON a.hmainid = c.HBillInterID and a.单据类型 = c.HBillTypeID" + | 
 |  |  |                     " LEFT JOIN Xt_CheckFlowMain as m ON m.HInterID = c.HCheckFlowID" + | 
 |  |  |                     " LEFT JOIN Xt_CheckItem as i ON i.HItemID = c.HCheckItemID" + | 
 |  |  |                     " where c.HCheckDate is  not NUll and c.HChecker = '" + user + "'"; | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_Cg_POOrderBillList"); | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单驳回 | 
 |  |  |         [Route("Cg_POOrderBill/RejectCheckFlow_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object RejectCheckFlow_POOrderBill(string HInterID,string CurUserID) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 Int64 lngBillKey = 0; | 
 |  |  |                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);      //对HInterID进行类型的转换 | 
 |  |  |                 DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();                              //实例化单据操作类,用于进行相关操作 | 
 |  |  |                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据 | 
 |  |  |                 { | 
 |  |  |                     if (oBill.omodel.HBillStatus != 6) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据未在审核中不能驳回"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     //发起驳回 | 
 |  |  |                     if (oBill.RejectCheckFlowProgress(lngBillKey, oBill.omodel.HBillNo,CurUserID, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "驳回成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "驳回失败失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单 发起审批 | 
 |  |  |         [Route("Cg_POOrderBill/StartCheckFlow_POOrderBill")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object StartCheckFlow_POOrderBill(int HInterID,string CurUserName) | 
 |  |  |         { | 
 |  |  |             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 = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "HInterID小于0!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 Int64 lngBillKey = 0; | 
 |  |  |                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //对HInterID进行类型的转换 | 
 |  |  |                 DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();                              //实例化单据操作类,用于进行相关操作 | 
 |  |  |                  | 
 |  |  |                 //发起审批 | 
 |  |  |                 if (oBill.startCheckFlow(lngBillKey,ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                     objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                     objJsonResult.Message = "发起审批成功"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "发起审批失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 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_POOrderBill/AuditCg_POOrderBill_Flow")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object AuditCg_POOrderBill_Flow(int HInterID, int IsAudit, string CurUserName, string CurUserID) | 
 |  |  |         { | 
 |  |  |             //string ModRightNameCheck = "Cg_POOrderBill_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 = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "HInterID小于0!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 Int64 lngBillKey = 0; | 
 |  |  |                 lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //对HInterID进行类型的转换 | 
 |  |  |                 DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();                              //实例化单据操作类,用于进行相关操作 | 
 |  |  |  | 
 |  |  |                 //针对需要进行的操作,检验当前单据的状态是否支持需要进行的操作 | 
 |  |  |                 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据 | 
 |  |  |                 { | 
 |  |  |                     if (oBill.omodel.HCloseMan.Trim() != "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据已关闭!不能再次审核!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (oBill.omodel.HDeleteMan.Trim() != "") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "单据已作废!不能再次审核!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (IsAudit == TypeConstant.AUDIT)  //审核判断 | 
 |  |  |                     { | 
 |  |  |                         //判断是否已经发起审批 | 
 |  |  |                         string sql0 = "select * from Xt_BillCheckFlowStatus where HBillInterID = " + lngBillKey + " and HBillTypeID = '" + oBill.BillType + "'"; | 
 |  |  |                         DataSet ds0 = oCN.RunProcReturn(sql0, "Xt_BillCheckFlowStatus"); | 
 |  |  |                         if (ds0 != null && ds0.Tables[0].Rows.Count == 0) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "审核失败!原因:单据未发起审批!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         //判断单据当前状态 | 
 |  |  |                         if (oBill.omodel.HChecker.Trim() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "审核失败!原因:单据已完成审核!不能继续审核!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (IsAudit == TypeConstant.REVERSE_AUDIT) //反审核判断 | 
 |  |  |                     { | 
 |  |  |                         //判断是否存在审核过的项目 | 
 |  |  |                         string sql0 = "select * from Xt_BillCheckFlowStatus where HBillInterID = " + lngBillKey + " and HBillTypeID = '" + oBill.BillType + "' and ISNULL(HChecker,'') <> ''"; | 
 |  |  |                         DataSet ds0 = oCN.RunProcReturn(sql0, "Xt_BillCheckFlowStatus"); | 
 |  |  |                         if (ds0 != null && ds0.Tables[0].Rows.Count == 0) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "反审核失败!原因:单据不存在已经审核的项目!!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |                 //进行需要进行的审核/反审核操作 | 
 |  |  |                 if (IsAudit == TypeConstant.AUDIT) //审核提交 | 
 |  |  |                 { | 
 |  |  |                     #region 审核前的相关判断 | 
 |  |  |                     //审核前控制=========================================       | 
 |  |  |                     string sql1 = "exec h_p_Cg_POOrderBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'"; | 
 |  |  |                     ds = oCN.RunProcReturn(sql1, "h_p_Cg_POOrderBill_BeforeCheckCtrl"); | 
 |  |  |                     if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         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; | 
 |  |  |                     } | 
 |  |  |                     #endregion | 
 |  |  |  | 
 |  |  |                     //获取当前审核项目 | 
 |  |  |                     string sql0 = "select * from " + oBill.MvarItemKey + " where HInterID = " + lngBillKey; | 
 |  |  |                     DataSet ds0 = oCN.RunProcReturn(sql0, oBill.MvarItemKey); | 
 |  |  |                     string HCheckFlowID = ds0.Tables[0].Rows[0]["HCheckFlowID"].ToString();             //审批流内码 | 
 |  |  |                     string HCheckItemNowID = ds0.Tables[0].Rows[0]["HCheckItemNowID"].ToString();       //当前审批项目内码 | 
 |  |  |                     string HCheckItemNextID = ds0.Tables[0].Rows[0]["HCheckItemNextID"].ToString();     //待审批项目内码 | 
 |  |  |  | 
 |  |  |                     //判断用户是否有权限 审批 当前审批流的审批项目 | 
 |  |  |                     //string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + " and HValue = 1"; | 
 |  |  |                     string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + ""; | 
 |  |  |                     DataSet ds01 = oCN.RunProcReturn(sql01, "Xt_CheckUserRight"); | 
 |  |  |                     if (ds01.Tables[0].Rows.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "审核失败!原因:用户无当前审核项目的审核权限!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //更新 单据审批状态表 中对应审核项目的审核状态 | 
 |  |  |                     string sql02 = "update Xt_BillCheckFlowStatus set HChecker='" + CurUserName + "',HCheckDate=getdate() where HBillTypeID = '" + oBill.BillType + "' and HBillInterID=" + lngBillKey + " and HCheckFlowID=" + HCheckFlowID + " and HCheckItemID=" + HCheckItemNowID; | 
 |  |  |                     oCN.RunProc(sql02); | 
 |  |  |  | 
 |  |  |                     //判断当前审核项目是否是最后一个项目,如果是,审核后反写单据的单据状态。如果不是,获取下一个审核项目并更新到销售订单主表 | 
 |  |  |                     if (HCheckItemNextID != "0")                //刚刚审核的审核项目不是最后一个审核项目 | 
 |  |  |                     { | 
 |  |  |                         string sql03 = "select b.HInterID,b.HCheckItemID from Xt_CheckFlowMain as a " + | 
 |  |  |                                 "inner join Xt_CheckFlowSub as b on a.HInterID = b.HInterID " + | 
 |  |  |                                 "where a.HBillTypeID = '" + oBill.BillType + "' " + | 
 |  |  |                                 "and a.HInterID = " + HCheckFlowID + " " + | 
 |  |  |                                 "order by b.HFlowNo asc"; | 
 |  |  |                         DataSet ds03 = oCN.RunProcReturn(sql03, "Xt_CheckFlowMain"); | 
 |  |  |  | 
 |  |  |                         //获取新的当前审核项目和待审核项目 | 
 |  |  |                         for (int i = 0; i < ds03.Tables[0].Rows.Count; i++) | 
 |  |  |                         { | 
 |  |  |                             if (ds03.Tables[0].Rows[i]["HCheckItemID"].ToString() == HCheckItemNextID) | 
 |  |  |                             { | 
 |  |  |                                 HCheckItemNowID = HCheckItemNextID; | 
 |  |  |                             } | 
 |  |  |                             else if (HCheckItemNowID == HCheckItemNextID) | 
 |  |  |                             { | 
 |  |  |                                 HCheckItemNextID = ds03.Tables[0].Rows[i]["HCheckItemID"].ToString(); | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         //新的当前审核项目为最后一个审核项目,待审核项目不存在,设为默认值"0" | 
 |  |  |                         if (HCheckItemNowID == HCheckItemNextID) | 
 |  |  |                         { | 
 |  |  |                             HCheckItemNextID = "0"; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         //更新单据主表的审批流数据 | 
 |  |  |                         string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey; | 
 |  |  |                         oCN.RunProc(sql04); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "审核成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                     } | 
 |  |  |                     else                                                                //刚刚审核的审核项目是最后一个审核项目 | 
 |  |  |                     { | 
 |  |  |                         //更新单据主表的审批流数据 | 
 |  |  |                         HCheckItemNowID = "0"; | 
 |  |  |                         HCheckItemNextID = "0"; | 
 |  |  |  | 
 |  |  |                         string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey; | 
 |  |  |                         oCN.RunProc(sql04); | 
 |  |  |  | 
 |  |  |                         //更新单据的单据状态 | 
 |  |  |                         if (oBill.CheckBill(oCN, oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POOrderBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                             objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                             objJsonResult.Message = "审核成功"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |  | 
 |  |  |                             oCN.RollBack(); | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if (IsAudit == TypeConstant.REVERSE_AUDIT) //反审核提交 | 
 |  |  |                 { | 
 |  |  |                     #region 反审核前的相关判断 | 
 |  |  |                     //反审核前控制========================================= | 
 |  |  |                     DataSet ds = oCN.RunProcReturn("Exec h_p_Cg_POOrderBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'", "h_p_Cg_POOrderBill_BeforeUnCheckCtrl"); | 
 |  |  |                     if (ds == null) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "反审核失败!原因:" + "反审核前判断失败!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         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; | 
 |  |  |                     } | 
 |  |  |                     #endregion | 
 |  |  |  | 
 |  |  |                     //获取需要反审核的审核项目 | 
 |  |  |                     string sql0 = "select c.* from Xt_CheckFlowMain as a " + | 
 |  |  |                                   "inner join Xt_CheckFlowSub as b on a.HInterID = b.HInterID " + | 
 |  |  |                                   "inner join Xt_BillCheckFlowStatus as c on a.HBillTypeID = c.HBillTypeID and b.HCheckItemID = c.HCheckItemID " + | 
 |  |  |                                   "where c.HBillTypeID = '" + oBill.BillType + "' and c.HBillInterID = " + lngBillKey + " " + | 
 |  |  |                                   "order by b.HFlowNo asc"; | 
 |  |  |                     DataSet ds0 = oCN.RunProcReturn(sql0, "Xt_BillCheckFlowStatus"); | 
 |  |  |                     if (ds0 == null || ds0.Tables[0].Rows.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "反审核失败!原因:未发起审批!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     string HCheckFlowID = ds0.Tables[0].Rows[0]["HCheckFlowID"].ToString();             //审批流内码 | 
 |  |  |                     string HCheckItemNowID = "0";       //当前审批项目内码 | 
 |  |  |                     string HCheckItemNextID = "0";     //待审批项目内码 | 
 |  |  |                     if (oBill.omodel.HBillStatus == 6) | 
 |  |  |                     { | 
 |  |  |                         for (int i = 0; i < ds0.Tables[0].Rows.Count; i++) | 
 |  |  |                         { | 
 |  |  |                             if (ds0.Tables[0].Rows[i]["HChecker"].ToString() != "") | 
 |  |  |                             { | 
 |  |  |                                 HCheckItemNowID = ds0.Tables[0].Rows[i]["HCheckItemID"].ToString(); | 
 |  |  |                                 HCheckItemNextID = ds0.Tables[0].Rows[i]["HCheckItemID"].ToString(); | 
 |  |  |                             } | 
 |  |  |                             else | 
 |  |  |                             { | 
 |  |  |                                 HCheckItemNextID = ds0.Tables[0].Rows[i]["HCheckItemID"].ToString(); | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         if (HCheckItemNowID == HCheckItemNextID) | 
 |  |  |                         { | 
 |  |  |                             HCheckItemNextID = "0"; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         HCheckItemNowID = ds0.Tables[0].Rows[ds0.Tables[0].Rows.Count - 1]["HCheckItemID"].ToString(); | 
 |  |  |                         HCheckItemNextID = "0"; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //判断用户是否有权限 审批 当前审批流的审批项目 | 
 |  |  |                     //string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + " and HValue = 1"; | 
 |  |  |                     string sql01 = "select * from Xt_CheckUserRight where HUserID = '" + CurUserID + "' and HCheckFlowInterID = " + HCheckFlowID + " and HCheckItemID = " + HCheckItemNowID + ""; | 
 |  |  |                     DataSet ds01 = oCN.RunProcReturn(sql01, "Xt_CheckUserRight"); | 
 |  |  |                     if (ds01.Tables[0].Rows.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                         objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                         objJsonResult.Message = "反审核失败!原因:用户无当前审核项目的审核权限!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                     //更新 单据审批状态表 中对应审核项目的审核状态 | 
 |  |  |                     string sql02 = "update Xt_BillCheckFlowStatus set HChecker='',HCheckDate='' where HBillTypeID = '" + oBill.BillType + "' and HBillInterID=" + lngBillKey + " and HCheckFlowID=" + HCheckFlowID + " and HCheckItemID=" + HCheckItemNowID; | 
 |  |  |                     oCN.RunProc(sql02); | 
 |  |  |  | 
 |  |  |                     //判断反审核的单据是否已经审核完成,若审核完成,反审核需要变更单据状态。 | 
 |  |  |                     if (oBill.omodel.HBillStatus == 6) | 
 |  |  |                     { | 
 |  |  |                         //更新单据主表的审批流数据 | 
 |  |  |                         string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey; | 
 |  |  |                         oCN.RunProc(sql04); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                         objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                         objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                         objJsonResult.Message = "审核成功"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |  | 
 |  |  |                         //反审核提交AbandonCheck | 
 |  |  |                         if (oBill.AbandonCheck(oCN, oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POOrderBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true) | 
 |  |  |                         { | 
 |  |  |                             //更新单据主表的审批流数据 | 
 |  |  |                             string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + ",HBillStatus=6 "+" where HInterID = " + lngBillKey; | 
 |  |  |                             oCN.RunProc(sql04); | 
 |  |  |                             objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                             objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                             objJsonResult.Message = "反审核成功"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                             objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                             objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |  | 
 |  |  |                             oCN.RollBack(); | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 oCN.Commit(); | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |  | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单查询列表 | 
 |  |  |         [Route("Cg_POOrderBill/QueryList")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object QueryList(string sWhere, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限查看!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 string sql = "select * from h_v_Cg_POOrderBillQuery where 1 = 1 "; | 
 |  |  |  | 
 |  |  |                 if (sWhere == "" || sWhere == null) | 
 |  |  |                 { | 
 |  |  |                     ds = oCN.RunProcReturn("select * from h_v_Cg_POOrderBillQuery  order by hmainid desc", "h_v_Cg_POOrderBillQuery"); | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     ds = oCN.RunProcReturn(sql + sWhere + " order by hmainid desc", "h_v_Cg_POOrderBillQuery"); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单查询子列表 | 
 |  |  |         [Route("Cg_POOrderBill/QuerySubList")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object QuerySubList(string hmainid, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限查看!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 string sql = "select * from h_v_Cg_POOrderBillQuerySub where hmainid =  "+ hmainid; | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn(sql + " order by hsubid desc", "h_v_Cg_POOrderBillQuerySub"); | 
 |  |  |                  | 
 |  |  |  | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 采购订单下推查询列表 | 
 |  |  |         [Route("Cg_POOrderBill/PushList")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object PushList(string HBillNo, string user) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //判断是否有查询权限 | 
 |  |  |  | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "无权限查看!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 string sql = "select * from h_v_IF_POOrderBillList where 单据号 = '" + HBillNo + "' and 状态 = '已审核' and 未关联数量 > 0"; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList"); | 
 |  |  |  | 
 |  |  |                 if (ds.Tables[0].Rows.Count == 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                     objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                     objJsonResult.Message = "找不到符合条件单据!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = CodeConstant.SUCCEED; | 
 |  |  |                 objJsonResult.count = CountConstant.SUCCEED; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = CodeConstant.FAIL; | 
 |  |  |                 objJsonResult.count = CountConstant.FAIL; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |