1
duhe
2024-08-12 f331a2915eebc492e872206d9aa7e13fc7f0861f
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -1160,7 +1160,28 @@
                    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;
@@ -1881,6 +1902,14 @@
                            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;
                        }
                        //作废单据
                        if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                        {
@@ -1913,6 +1942,14 @@
                            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;
                        }
@@ -2302,7 +2339,7 @@
        #region 采购订单需要我审批流审批的
        [Route("Cg_POOrderBill/NeedChecklist")]
        [HttpGet]
        public object NeedChecklist(string user)
        public object NeedChecklist(string user,string userid)
        {
            try
            {
@@ -2318,10 +2355,12 @@
                    return objJsonResult;
                }
                //搜索需要审核的
                string sql = "  select a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流名称,c.HCheckFlowID,m.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" +
                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" +
                    " where c.HCheckDate is NUll and c.HChecker = '" + user + "'";
                    " 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)
                {
@@ -2368,7 +2407,7 @@
                    return objJsonResult;
                }
                //搜索需要审核的
                string sql = "  select a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流名称,c.HCheckFlowID,m.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" +
                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 + "'";
@@ -2399,12 +2438,71 @@
        #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 = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据未在审核中不能驳回";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //发起驳回
                    if (oBill.RejectCheckFlowProgress(lngBillKey, oBill.omodel.HBillNo,CurUserID, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "驳回成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "驳回失败失败!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 采购订单 发起审批
        [Route("Cg_POOrderBill/StartCheckFlow_POOrderBill")]
        [HttpGet]
        public object StartCheckFlow_POOrderBill(int HInterID, int HCheckFlowID_select, string CurUserName)
        public object StartCheckFlow_POOrderBill(int HInterID,string CurUserName)
        {
            string ModRightNameCheck = "Cg_POOrderBill_Check";
            DBUtility.ClsPub.CurUserName = CurUserName;
            try
            {
@@ -2434,7 +2532,7 @@
                DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();                              //实例化单据操作类,用于进行相关操作
                //发起审批
                if (oBill.startCheckFlow(lngBillKey, HCheckFlowID_select, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                if (oBill.startCheckFlow(lngBillKey,ref DBUtility.ClsPub.sExeReturnInfo) == true)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
@@ -2455,7 +2553,7 @@
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString();
                objJsonResult.Message = "发起审批失败失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
@@ -2469,9 +2567,9 @@
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Cg_POOrderBill/AuditXs_POOrderBill_Flow")]
        [Route("Cg_POOrderBill/AuditCg_POOrderBill_Flow")]
        [HttpGet]
        public object AuditXs_POOrderBill_Flow(int HInterID, int IsAudit, string CurUserName, string CurUserID)
        public object AuditCg_POOrderBill_Flow(int HInterID, int IsAudit, string CurUserName, string CurUserID)
        {
            //string ModRightNameCheck = "Cg_POOrderBill_Check";
            DBUtility.ClsPub.CurUserName = CurUserName;
@@ -2756,7 +2854,7 @@
                    string HCheckFlowID = ds0.Tables[0].Rows[0]["HCheckFlowID"].ToString();             //审批流内码
                    string HCheckItemNowID = "0";       //当前审批项目内码
                    string HCheckItemNextID = "0";     //待审批项目内码
                    if (oBill.omodel.HBillStatus <= 1)
                    if (oBill.omodel.HBillStatus == 6)
                    {
                        for (int i = 0; i < ds0.Tables[0].Rows.Count; i++)
                        {
@@ -2801,7 +2899,7 @@
                    oCN.RunProc(sql02);
                    //判断反审核的单据是否已经审核完成,若审核完成,反审核需要变更单据状态。
                    if (oBill.omodel.HBillStatus <= 1)
                    if (oBill.omodel.HBillStatus == 6)
                    {
                        //更新单据主表的审批流数据
                        string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey;
@@ -2815,13 +2913,13 @@
                    }
                    else
                    {
                        //更新单据主表的审批流数据
                        string sql04 = "update " + oBill.MvarItemKey + " set HCheckItemNowID=" + HCheckItemNowID + ",HCheckItemNextID=" + HCheckItemNextID + " where HInterID = " + lngBillKey;
                        oCN.RunProc(sql04);
                        //反审核提交AbandonCheck
                        if (oBill.AbandonCheck(oCN, oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Xs_SeOrderBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                        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 = "1";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "反审核成功";