yusijie
2023-10-20 92a765acc908b10affb08db65e3a0cefa9ae7efb
WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Pub_Class;
using System;
using System.Collections;
@@ -13,8 +14,11 @@
    //退料通知单Controller
    public class Cg_POInStockBackBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
         //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        public DAL.ClsCg_POInStockBackBill BillOld = new DAL.ClsCg_POInStockBackBill();
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
@@ -81,30 +85,31 @@
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBackBillList " + sWhere, "h_v_IF_POInStockBackBillList");
                    ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBackBillList order by hmainid desc", "h_v_IF_POInStockBackBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_IF_POInStockBackBillList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    string sql = sql1 + sWhere+ " order by hmainid desc";
                    ds = oCN.RunProcReturn(sql, "h_v_IF_POInStockBackBillList");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有返回任何记录!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
                //else
                //{
                //objJsonResult.code = "0";
                //objJsonResult.count = 0;
                //objJsonResult.Message = "无数据";
                //objJsonResult.data = null;
                //return objJsonResult;
                //}
            }
            catch (Exception e)
            {
@@ -117,7 +122,773 @@
        }
        #region [同步单据]
        [Route("Cg_POInStockBackBill/Cg_POInStockBackBillViewApi")]
        [HttpGet]
        public json Cg_POInStockBackBillViewApi(string BillNo, string BillType)
        {
            string sql = string.Empty;
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
            {
                //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
                if (oSystemParameter.omodel.WMS_CloudMode == "Y")
                {
                    #region [私有云模式,直接调用数据库存储过程更新]
                    try
                    {
                        oCN.BeginTran();
                        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + BillNo + "','" + BillType + "'", "h_p_WMS_ERPSourceBillToLocal");
                        if (DS == null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据同步失败";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "ERP中不存在该单据号";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else
                            {
                                objJsonResult.code = "1";
                                objJsonResult.count = 1;
                                objJsonResult.Message = "单据同步成功";
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
        //
                    }
                    catch (Exception e)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "Exception!" + e.ToString();
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                }
                else
                {
                    #region [公有云模式,调用WEBAPI的方式进行更新]
                    var json = new
                    {
                        CreateOrgId = 0,
                        Number = BillNo,
                        Id = ""
                    };
                    #region [金蝶部分]
                    //登录金蝶
                    var loginRet = InvokeHelper.Login();
                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
                    //判断是否登录成功
                    if (isSuccess < 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = loginRet;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //查看 获取数据
                    var _result = InvokeHelper.View("SCP_MRAPP", JsonConvert.SerializeObject(json));
                    var _saveObj = JObject.Parse(_result);
                    //判断数据是否获取成功
                    if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "金蝶退料通知单同步失败jsonRoot:" + _result;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    #endregion
                    //获取主表数据
                    DataSet Ds;
                    Int64 InterID = 0;
                    Int64 ManagerID = 0;
                    Int64 REQUIREORGID = 0;
                    Int64 CORRESPONDORGID = 0;
                    string ERPBillType = "";
                    string REPLENISHMODE = "";
                    Ds = oCN.RunProcReturn("select * from Cg_POInStockBackBillMain where HBillNo = '" + BillNo + "'", "Cg_POInStockBackBillMain");
                    if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                    {
                        InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
                        ManagerID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HManagerID"].ToString());
                        REQUIREORGID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HREQUIREORGID"].ToString());
                        CORRESPONDORGID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HCORRESPONDORGID"].ToString());
                        ERPBillType = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HERPBillType"]);
                        REPLENISHMODE = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HREPLENISHMODE"]);
                    }
                    #region [主表数据赋值]
                    var jsonData = new
                    {
                        HInterID = _saveObj["Result"]["Result"]["Id"],
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = 1105,
                        HBillSubType = _saveObj["Result"]["Result"]["BusinessType"].ToString() == "CG" ? 12510 : 12511,
                        HDate = _saveObj["Result"]["Result"]["FDate"],
                        HBillNo = _saveObj["Result"]["Result"]["BillNo"],
                        HBillStatus = 2,
                        HSupID = _saveObj["Result"]["Result"]["SUPPLIERID_Id"],
                        HManagerID = ManagerID,
                        HDeptID = _saveObj["Result"]["Result"]["APPDEPTID_Id"],
                        HRemark = _saveObj["Result"]["Result"]["FRemarks"],
                        HMaker = _saveObj["Result"]["Result"]["FCreatorId"]["Name"],
                        HMakeDate = _saveObj["Result"]["Result"]["FCreateDate"],
                        HChecker = _saveObj["Result"]["Result"]["APPROVERID"]["Name"],
                        HCheckDate = _saveObj["Result"]["Result"]["APPROVEDATE"],
                        HERPInterID = _saveObj["Result"]["Result"]["Id"],
                        HERPBillType = ERPBillType,
                        HPURCHASEORGID = _saveObj["Result"]["Result"]["PURCHASEORGID_Id"],
                        HAPPORGID = _saveObj["Result"]["Result"]["APPORGID_Id"],
                        HREQUIREORGID = REQUIREORGID,
                        HCORRESPONDORGID = CORRESPONDORGID,
                        HRMREASON = _saveObj["Result"]["Result"]["RMREASON"],
                        HRMTYPE = _saveObj["Result"]["Result"]["RMTYPE"],
                        HRMMODE = _saveObj["Result"]["Result"]["RMMODE"],
                        HREPLENISHMODE = REPLENISHMODE,
                        HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"],
                    };
                    #endregion
                    // 删除主表对应数据
                    sql = $"delete from Cg_POInStockBackBillMain where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    //插入主表
                    sql = $@"
                insert into Cg_POInStockBackBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
               ,HBillNo,HBillStatus,HSupID,HManagerID,HDeptID,HRemark
               ,HMaker,HMakeDate,HChecker,HCheckDate,HERPInterID,HERPBillType
               ,HPURCHASEORGID,HAPPORGID,HREQUIREORGID,HCORRESPONDORGID
               ,HRMREASON,HRMTYPE,HRMMODE,HREPLENISHMODE,HBUSINESSTYPE
                 )
                values
                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},'{jsonData.HDate}',
                '{jsonData.HBillNo}',{jsonData.HBillStatus},{jsonData.HSupID},{jsonData.HManagerID},{jsonData.HDeptID},'{jsonData.HRemark}',
                '{jsonData.HMaker}', '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}',{jsonData.HERPInterID},
                '{jsonData.HERPBillType}',{jsonData.HPURCHASEORGID},{jsonData.HAPPORGID},{jsonData.HREQUIREORGID},{jsonData.HCORRESPONDORGID},
                '{jsonData.HRMREASON}','{jsonData.HRMTYPE}','{jsonData.HRMMODE}', '{jsonData.HREPLENISHMODE}','{jsonData.HBUSINESSTYPE}')";
                    oCN.RunProc(sql);
                    #region [申请子表变量]
                    var dataArr = _saveObj["Result"]["Result"]["PUR_MRAPPENTRY"];
                    DataSet Cs;
                    double Qty = 0;
                    double Money = 0;
                    Int64 WHID = 0;
                    Int64 SPID = 0;
                    Int64 SourceBillType = 0;
                    Int64 POOrderInterID = 0;
                    Int64 POOrderEntryID = 0;
                    string POORderBillNo = "";
                    string BatchNO = "";
                    Int64 ERPInterID = 0;
                    Int64 ERPEntryID = 0;
                    double RelationQty = 0;
                    Int64 SETTLEORGID = 0;
                    Int64 ISPRICEEXCLUDETAX = 0;
                    Int64 PlanMode = 0;
                    Int64 SourceInterID = 0;
                    Int64 SourceEntryID = 0;
                    string SourceBillNo = "";
                    string MTONo = "";
                    Int64 PURUNITID = 0;
                    string CONTRACTNO = "";
                    string REQTRACENO = "";
                    string BFLOWID = "";
                    Int64 GIVEAWAY = 0;
                    Int64 PURBASEQTY = 0;
                    Int64 RETURNSTOCKJNBASEQTY = 0;
                    Int64 BASEUNITQTY = 0;
                    Int64 PRICECOEFFICIENT = 0;
                    #endregion
                    int i = 0;
                    // 获取子表数据
                    Cs = oCN.RunProcReturn("select * from Cg_POInStockBackBillSub where HInterID = " + InterID, "Cg_POInStockBackBillSub");
                    // 删除子表对应数据
                    sql = $"delete from Cg_POInStockBackBillSub where HInterID = " + InterID;
                    oCN.RunProc(sql);
                    foreach (var oSub in dataArr)
                    {
                        #region [子表数据赋值]
                        if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
                        {
                            Qty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HQty"].ToString());
                            Money = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HMoney"].ToString());
                            WHID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HWHID"].ToString());
                            SPID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSPID"].ToString());
                            SourceBillType = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceBillType"].ToString());
                            POOrderInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderInterID"].ToString());
                            POOrderEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPOOrderEntryID"].ToString());
                            POORderBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HPOORderBillNo"]);
                            BatchNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBatchNO"]);
                            ERPInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPInterID"].ToString());
                            ERPEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HERPEntryID"].ToString());
                            RelationQty = ClsPub.isDoule(Cs.Tables[0].Rows[i]["HRelationQty"].ToString());
                            SETTLEORGID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSETTLEORGID"].ToString());
                            ISPRICEEXCLUDETAX = ClsPub.isLong(Cs.Tables[0].Rows[i]["HISPRICEEXCLUDETAX"].ToString());
                            PlanMode = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPlanMode"].ToString());
                            SourceInterID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceInterID"].ToString());
                            SourceEntryID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HSourceEntryID"].ToString());
                            SourceBillNo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HSourceBillNo"]);
                            MTONo = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HMTONo"]);
                            PURUNITID = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPURUNITID"].ToString());
                            CONTRACTNO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HCONTRACTNO"]);
                            REQTRACENO = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HREQTRACENO"]);
                            BFLOWID = ClsPub.isStrNull(Cs.Tables[0].Rows[i]["HBFLOWID"]);
                            GIVEAWAY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HGIVEAWAY"].ToString());
                            PURBASEQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPURBASEQTY"].ToString());
                            RETURNSTOCKJNBASEQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HRETURNSTOCKJNBASEQTY"].ToString());
                            BASEUNITQTY = ClsPub.isLong(Cs.Tables[0].Rows[i]["HBASEUNITQTY"].ToString());
                            PRICECOEFFICIENT = ClsPub.isLong(Cs.Tables[0].Rows[i]["HPRICECOEFFICIENT"].ToString());
                            i++;
                        }
                        var subData = new
                        {
                            HInterID = _saveObj["Result"]["Result"]["Id"],
                            HEntryID = oSub["Id"],
                            HMaterID = oSub["MATERIALID_Id"],
                            HUnitID = oSub["UnitID_Id"],
                            HQty = Qty,
                            HPrice = oSub["PRICE_F"],
                            HMoney = Money,
                            HTaxRate = oSub["TAXRATE"],
                            HWHID = WHID,
                            HSPID = SPID,
                            HRemark = oSub["FRemarks"],
                            HSourceInterID = SourceInterID,
                            HSourceEntryID = SourceEntryID,
                            HSourceBillNo = SourceBillNo,
                            HSourceBillType = SourceBillType,
                            HPOOrderInterID = POOrderInterID,
                            HPOOrderEntryID = POOrderEntryID,
                            HPOORderBillNo = POORderBillNo,
                            HRelationQty = RelationQty,
                            HAuxPropID = oSub["AUXPROPID_Id"],
                            HBatchNO = BatchNO,
                            HMTONo = MTONo,
                            HPlanMode = PlanMode,
                            HERPInterID = ERPInterID,
                            HERPEntryID = ERPEntryID,
                            HBASEUNITID = oSub["MATERIALID"]["MaterialBase"][0]["BaseUnitId_Id"],
                            HPURUNITID = PURUNITID,
                            HCONTRACTNO = CONTRACTNO,
                            HREQTRACENO = REQTRACENO,
                            HBFLOWID = BFLOWID,
                            HGIVEAWAY = GIVEAWAY,
                            HPURBASEQTY = PURBASEQTY,
                            HRETURNSTOCKJNBASEQTY = RETURNSTOCKJNBASEQTY,
                            HBASEUNITQTY = BASEUNITQTY,
                            HPRICEUNITID = oSub["PRICEUNITID_F_Id"],
                            HAPPROVEPRICE = oSub["APPROVEPRICE_F"],
                            HPRICECOEFFICIENT = PRICECOEFFICIENT,
                            HLOCALCURRID = _saveObj["Result"]["Result"]["PUR_MRAPPFIN"][0]["LOCALCURRID_Id"],
                            HEXCHANGETYPEID = _saveObj["Result"]["Result"]["PUR_MRAPPFIN"][0]["ExchangeTypeId_Id"],
                            HSETTLEORGID = SETTLEORGID,
                            HISPRICEEXCLUDETAX = ISPRICEEXCLUDETAX
                        };
                        #endregion
                        //插入子表
                        sql = $@"
                 insert into Cg_POInStockBackBillSub
                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HMoney,HTaxRate,HWHID,HSPID,HRemark
               ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
               ,HPOOrderInterID,HPOOrderEntryID,HPOORderBillNo
               ,HRelationQty,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID
               ,HBASEUNITID,HPURUNITID,HCONTRACTNO,HREQTRACENO,HBFLOWID,HGIVEAWAY
               ,HPURBASEQTY,HRETURNSTOCKJNBASEQTY,HBASEUNITQTY
               ,HPRICEUNITID,HAPPROVEPRICE,HPRICECOEFFICIENT
               ,HLOCALCURRID,HEXCHANGETYPEID,HSETTLEORGID,HISPRICEEXCLUDETAX
                 )
                 values
                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
                  {subData.HMoney},{subData.HTaxRate},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HSourceInterID},
                  {subData.HSourceEntryID},'{subData.HSourceBillNo}',{subData.HSourceBillType},{subData.HPOOrderInterID},{subData.HPOOrderEntryID},
                  '{subData.HPOORderBillNo}',{subData.HRelationQty},{subData.HAuxPropID},'{subData.HBatchNO}','{subData.HMTONo}',{subData.HPlanMode},
                  {subData.HERPInterID},{subData.HERPEntryID},{subData.HBASEUNITID},{subData.HPURUNITID},'{subData.HCONTRACTNO}','{subData.HREQTRACENO}',
                  '{subData.HBFLOWID}',{subData.HGIVEAWAY},{subData.HPURBASEQTY},{subData.HRETURNSTOCKJNBASEQTY},{subData.HBASEUNITQTY},
                  {subData.HPRICEUNITID},{subData.HAPPROVEPRICE},{subData.HPRICECOEFFICIENT},{subData.HLOCALCURRID},{subData.HEXCHANGETYPEID},
                  {subData.HSETTLEORGID},{subData.HISPRICEEXCLUDETAX})";
                        oCN.RunProc(sql);
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "单据同步成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                    #endregion
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据读取失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 退料通知单 审核/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Cg_POInStockBackBill/AuditCg_POInStockBackBill")]
        [HttpGet]
        public object AuditCg_POInStockBackBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBackBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "Cg_POInStockBackBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 审核  2  反审核
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据不存在!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //审核单据
                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不能进行反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不能进行反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未审核!不需要反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反审核单据
                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 退料通知单 关闭/反关闭功能
        [Route("Cg_POInStockBackBill/CloseCg_POInStockBackBill")]
        [HttpGet]
        public object CloseCg_POInStockBackBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBackBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "Cg_POInStockBackBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 关闭  2  反关闭
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据不存在!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不能进行关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = "单据未审核!不能进行关闭!";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不能再次关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //关闭单据
                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不能进行关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = "单据未审核!不能进行关闭!";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反关闭单据
                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 退料通知单 作废/反作废功能
        [Route("Cg_POInStockBackBill/DropCg_POInStockBackBill")]
        [HttpGet]
        public object DropCg_POInStockBackBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Cg_POInStockBackBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "Cg_POInStockBackBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 作废  2  反作废
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据不存在!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能进行作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //作废单据
                        if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能进行作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反作废单据
                        if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}