网页版考勤汇报单列表模块功能按钮调用方法新增,审核、反审核、关闭、反关闭、作废、反作废等通用调用方法新增修改
2个文件已修改
880 ■■■■ 已修改文件
DBUtility/业务单据/ClsXt_BaseBill.cs 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/工资管理/Pay_WorkTimesBillController.cs 691 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DBUtility/ÒµÎñµ¥¾Ý/ClsXt_BaseBill.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
namespace DBUtility
{
@@ -23,6 +24,8 @@
        public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
        public SQLHelper.ClsCNK3 oK3Cn = new SQLHelper.ClsCNK3();
        public SQLHelper.ClsCNK3 oCnK3 = new SQLHelper.ClsCNK3();
        string ComputerName = SystemInformation.ComputerName;   //设备名称
        string IPAddress="";    //设备IP
        public ClsXt_BaseBill()
        {
@@ -71,6 +74,44 @@
                throw (e);
            }
        }
        //反作废单据(包含写入日志)    2024-01-31
        public bool AbandonCancelltion(Int64 lngBillKey, string HBillNo, string sUser, ref string sReturn)
        {
            try
            {
                oCn.BeginTran();
                DataSet ds = oCn.RunProcReturn("select * from " + MvarItemKey + " where HInterID=" + lngBillKey.ToString(), MvarItemKey);
                if (ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                {
                    oCn.RunProc(" Update " + MvarItemKey + " set HDeleteMan='',HDeleteDate=null,HBillStatus=3 Where HInterID=" + lngBillKey.ToString());
                }
                else if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                {
                    oCn.RunProc(" Update " + MvarItemKey + " set HDeleteMan='',HDeleteDate=null,HBillStatus=2 Where HInterID=" + lngBillKey.ToString());
                }
                else
                {
                    oCn.RunProc(" Update " + MvarItemKey + " set HDeleteMan='',HDeleteDate=null,HBillStatus=1 Where HInterID=" + lngBillKey.ToString());
                }
                //写入日志
                string WorkList = "反作废单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','" + SystemName + "','" + IPAddress + "','反作废')"
                    );
                sReturn = "反作废单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
        //反关闭
        public bool CancelClose(Int64 lngBillKey, ref string sReturn)
        {
@@ -96,6 +137,44 @@
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        //反关闭单据(包含写入日志)    2024-01-31
        public bool CancelClose(Int64 lngBillKey, string HBillNo, string sUser, ref string sReturn)
        {
            try
            {
                oCn.BeginTran();
                DataSet ds = oCn.RunProcReturn("select * from " + MvarItemKey + " where HInterID=" + lngBillKey.ToString(), MvarItemKey);
                if (ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                {
                    oCn.RunProc(" Update " + MvarItemKey + " set HCloseMan='',HCloseDate=null,HBillStatus=4 Where HInterID=" + lngBillKey.ToString());
                }
                else if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                {
                    oCn.RunProc(" Update " + MvarItemKey + " set HCloseMan='',HCloseDate=null,HBillStatus=2 Where HInterID=" + lngBillKey.ToString());
                }
                else
                {
                    oCn.RunProc(" Update " + MvarItemKey + " set HCloseMan='',HCloseDate=null,HBillStatus=1 Where HInterID=" + lngBillKey.ToString());
                }
                //写入日志
                string WorkList = "反关闭单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','" + SystemName + "','" + IPAddress + "','反关闭')"
                    );
                sReturn = "反关闭单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
@@ -132,7 +211,7 @@
                throw (e);
            }
        }
        //反审核(包含反审核后控制)
        //反审核(包含反审核后控制、写入日志)    2024-01-31
        public bool AbandonCheck(Int64 lngBillKey, string HBillNo, string procName, string sUser, ref string sReturn)
        {
            string sql = "";
@@ -176,8 +255,14 @@
                    oCn.RollBack();
                    return false;
                }
                //写入日志
                string WorkList = "反审核单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','" + SystemName + "','" + IPAddress + "','反审核')"
                    );
                sReturn = "";
                sReturn = "反审核单据成功!";
                oCn.Commit();
                return true;
            }
@@ -225,7 +310,7 @@
                throw (e);
            }
        }
        //审核(包含审核后控制)
        //审核(包含审核后控制、写入日志)    2024-01-31
        public bool CheckBill(Int64 lngBillKey, string HBillNo,string procName , string sUser, ref string sReturn)
        {
            string sql = "";
@@ -256,8 +341,14 @@
                    oCn.RollBack();
                    return false;
                }
                //写入日志
                string WorkList = "审核单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','"+SystemName+"','" + IPAddress + "','审核')"
                    );
                sReturn = "";
                sReturn = "审核单据成功!";
                oCn.Commit();
                return true;
            }
@@ -286,21 +377,31 @@
                throw (e);
            }
        }
        //关闭
        public bool CloseBill(Int64 lngBillKey, string sUser, ref string sReturn)
        //关闭单据(包含写入日志)    2024-01-31
        public bool CloseBill(Int64 lngBillKey, string HBillNo, string sUser, ref string sReturn)
        {
            try
            {
                oCn.BeginTran();
                string HCloseMan = sUser;
                string HCloseDate = ClsPub.GetServerDate(-1);
                oCn.RunProc(" Update " + MvarItemKey + " set HCloseMan='" + HCloseMan + "',HCloseDate='" + HCloseDate + "' Where HInterID=" + lngBillKey.ToString());
                sReturn = "";
                oCn.RunProc(" Update " + MvarItemKey + " set HCloseMan='" + HCloseMan + "',HCloseDate='" + HCloseDate + "',HBillStatus=3 Where HInterID=" + lngBillKey.ToString());
                //写入日志
                string WorkList = "关闭单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','" + SystemName + "','" + IPAddress + "','关闭')"
                    );
                sReturn = "关闭单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
@@ -322,20 +423,31 @@
            }
        }
        //作废
        public bool Cancelltion(Int64 lngBillKey,string sUser, ref string sReturn)
        //作废单据(包含写入日志)    2024-01-31
        public bool Cancelltion(Int64 lngBillKey, string HBillNo, string sUser, ref string sReturn)
        {
            try
            {
                oCn.BeginTran();
                string HDeleteMan = sUser;
                string HDeleteDate = ClsPub.GetServerDate(-1);
                oCn.RunProc(" Update " + MvarItemKey + " set HDeleteMan='" + HDeleteMan + "',HDeleteDate='" + HDeleteDate + "' Where HInterID=" + lngBillKey.ToString());
                sReturn = "";
                oCn.RunProc(" Update " + MvarItemKey + " set HDeleteMan='" + HDeleteMan + "',HDeleteDate='" + HDeleteDate + "',HBillStatus=4 Where HInterID=" + lngBillKey.ToString());
                //写入日志
                string WorkList = "作废单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','" + SystemName + "','" + IPAddress + "','作废')"
                    );
                sReturn = "作废单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
@@ -399,6 +511,57 @@
                throw (e);
            }
        }
        //删除单据(包含删除后控制、写入日志)    2024-01-31
        public bool DeleteBill(Int64 lngBillKey, string HBillNo, string procName, string sUser, ref string sReturn)
        {
            string sql = "";
            DataSet ds;
            try
            {
                oCn.BeginTran();
                //删除关联
                DeleteRelation(ref sReturn, lngBillKey);
                //删除明细表
                DeleteBillSub(lngBillKey);
                DeleteBillSub2(lngBillKey);
                DeleteBillSub3(lngBillKey);
                DeleteBillSub4(lngBillKey);
                //删除主表
                DeleteBillMain(lngBillKey);
                //删除后控制
                sql = "exec " + procName + " " + lngBillKey + ",'" + HBillNo + "','" + sUser + "'";
                ds = oCn.RunProcReturn(sql, procName);
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                {
                    sReturn = "删除过程中出错,请与网络管理人员联系";
                    oCn.RollBack();
                    return false;
                }
                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
                {
                    sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString();
                    oCn.RollBack();
                    return false;
                }
                //写入日志
                string WorkList = "删除单据,单据号:" + HBillNo;
                string SystemName = "LMES-" + MvarReportTitle + "模块";
                oCn.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
                    "(getdate(),'" + sUser + "','" + ComputerName + "','" + WorkList + "','" + SystemName + "','" + IPAddress + "','删除')"
                    );
                sReturn = "删除单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
        //是否被关联
        public bool isUse(Int64 lngBillKey, ref string sReturn)
        {
WebAPI/Controllers/¹¤×ʹÜÀí/Pay_WorkTimesBillController.cs
@@ -15,68 +15,583 @@
    public class Pay_WorkTimesBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        public const string ModName = "2203";                   //单据类型
        public const string ModCaption = "考勤汇报单";          //单据名称
        public const string ModRightName = "Pay_WorkTimesBill";
        public const string ModRightNameEdit = ModRightName + "_Edit";      //编辑
        public const string ModRightNameCheck = ModRightName + "_Check";    //审核
        public const string ModRightNameClose = ModRightName + "_Close";    //关闭
        public const string ModRightNameDelete = ModRightName + "_Delete";  //作废
        public const string ModRightNameDrop = ModRightName + "_Drop";      //删除
        public const string ModRightNameMoney = ModRightName + "_Money";    //金额
        public const string ModRightNameQty = ModRightName + "_Qty";        //数量
        public DataSet ds = new DataSet();
        public WebServer webserver = new WebServer();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DLL.ClsPay_WorkTimesBill BillNew0 = new DLL.ClsPay_WorkTimesBill();   //
        public DLL.ClsPay_WorkTimesBill BillOld0 = new DLL.ClsPay_WorkTimesBill();   //
                                                                                   //DataSet ds;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
        public DAL.ClsPay_WorkTimesBill oBill = new DAL.ClsPay_WorkTimesBill();
        public DAL.ClsPay_WorkTimesBill BillNew = new DAL.ClsPay_WorkTimesBill();   //对应单据类
        public DAL.ClsPay_WorkTimesBill BillOld = new DAL.ClsPay_WorkTimesBill();   //对应单据类
        #region è€ƒå‹¤æ±‡æŠ¥å•列表
        /// <summary>
        /// è¿”回考勤汇报单列表
        ///参数:string sql。
        ///返回值:object。
        /// èŽ·å–è€ƒå‹¤æ±‡æŠ¥å•åˆ—è¡¨ä¿¡æ¯
        /// </summary>
        [Route("Pay_WorkTimesBill/GetWorkTimesBill")]
        /// <returns></returns>
        [Route("Pay_WorkTimesBillController/GetPay_WorkTimesBillList_Json")]
        [HttpGet]
        public object GetWorkTimesBill(string sWhere,string user)
        public object GetPay_WorkTimesBillList_Json(string sWhere, string HMaker)
        {
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Pay_WorkTimesBillList", 1, false, user))
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightName, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.Message = "您没有该模块权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = Sc_GetWorkTimesBill(sWhere);
                objJsonResult.code = "1";
                //返回列表信息
                ds = oCn.RunProcReturn("select * from h_v_Pay_WorkTimesBillList where 1=1 " + sWhere + " order by hmainid desc", "h_v_Pay_WorkTimesBillList");
                List<object> columnNameList = new List<object>();
                //添加列名
                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 = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "返回记录成功!";
                objJsonResult.Message = "成功!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception ex)
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
                objJsonResult.Message = "查询列表信息失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        public static DataSet Sc_GetWorkTimesBill(string sWhere)
        #region è€ƒå‹¤æ±‡æŠ¥å•删除
        /// <summary>
        /// åˆ é™¤è€ƒå‹¤æ±‡æŠ¥å•
        /// </summary>
        /// <returns></returns>
        [Route("Pay_WorkTimesBillController/GetPay_WorkTimesBill_Delete_Json")]
        [HttpGet]
        public object GetPay_WorkTimesBill_Delete_Json(Int64 HInterID, string HMaker)
        {
            if (sWhere == null || sWhere.Equals(""))
            try
            {
                return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Pay_WorkTimesBillList order by hmainid desc", "h_v_Pay_WorkTimesBillList");
            }
            else
            {
                string sql1 = "select * from h_v_Pay_WorkTimesBillList where 1 = 1 ";
                string sql = sql1 + sWhere + " order by hmainid desc";
                return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Pay_WorkTimesBillList");
            }
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameDrop, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有该模块删除功能权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //判断存在性
                if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    //判断会计期是否合理
                    string s = "";
                    int sYear = 0;
                    int sPeriod = 0;
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod_Pay(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //删除前控制
                    DataSet BeforeDs = oCn.RunProcReturn("Exec h_p_Pay_WorkTimesBill_BeforeDelCtrl " + HInterID.ToString() + ",'" + HMaker + "'", "h_p_Pay_WorkTimesBill_BeforeDelCtrl");
                    if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "删除前判断失败!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "删除失败!" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]);
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //删除单据(包含删除后控制、写入日志)
                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Pay_WorkTimesBill_AfterDelCtrl", HMaker, ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "删除失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "删除考勤汇报单成功!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到该考勤汇报单,请刷新数据后重新选择!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除考勤汇报单失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è€ƒå‹¤æ±‡æŠ¥å•审核/反审核
        /// <summary>
        /// å®¡æ ¸/反审核考勤汇报单
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="Type">审核(1),反审核(2)</param>
        /// <param name="HMaker">审核人</param>
        /// <returns></returns>
        [Route("Pay_WorkTimesBillController/GetPay_WorkTimesBill_Check_Json")]
        [HttpGet]
        public object GetPay_WorkTimesBill_Check_Json(Int64 HInterID, int Type, string HMaker)
        {
            try
            {
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有该模块审核/反审核功能权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //判断存在性
                if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    //判断会计期是否合理
                    string s = "";
                    int sYear = 0;
                    int sPeriod = 0;
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod_Pay(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                    if (Type == 1)
                    {
                        if (oBill.omodel.HChecker.Trim() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核,不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (oBill.omodel.HCloseMan.Trim() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭,不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (oBill.omodel.HDeleteMan.Trim() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废,不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //审核前控制
                        DataSet BeforeDs = oCn.RunProcReturn("Exec h_p_Pay_WorkTimesBill_BeforeCheckCtrl " + HInterID.ToString() + ",'" + HMaker + "'", "h_p_Pay_WorkTimesBill_BeforeCheckCtrl");
                        if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "审核前判断失败!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]);
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                        //审核单据
                        if (!oBill.CheckBill(HInterID, oBill.omodel.HBillNo, "h_p_Pay_WorkTimesBill_AfterCheckCtrl", HMaker, ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:"+ oBill.omodel.HBillNo+ " å®¡æ ¸æˆåŠŸï¼";
                            objJsonResult.data = null;
                            return objJsonResult; ;
                        }
                    }
                    else
                    {
                        if (oBill.omodel.HChecker.Trim() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未审核,不需要反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反审核前控制
                        DataSet BeforeDs = oCn.RunProcReturn("Exec h_p_Pay_WorkTimesBill_BeforeUnCheckCtrl " + HInterID.ToString() + ",'" + HMaker + "'", "h_p_Pay_WorkTimesBill_BeforeUnCheckCtrl");
                        if (BeforeDs == null || BeforeDs.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "反审核前判断失败!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            if (DBUtility.ClsPub.isLong(BeforeDs.Tables[0].Rows[0]["HBack"]) == 1)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "反审核失败!" + DBUtility.ClsPub.isStrNull(BeforeDs.Tables[0].Rows[0]["HRemark"]);
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                        }
                        //反审核单据
                        if (!oBill.AbandonCheck(HInterID, oBill.omodel.HBillNo, "h_p_Pay_WorkTimesBill_AfterUnCheckCtrl", HMaker, ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " åå®¡æ ¸æˆåŠŸï¼";
                            objJsonResult.data = null;
                            return objJsonResult; ;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到该考勤汇报单,请刷新数据后重新选择!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核或反审核考勤汇报单失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è€ƒå‹¤æ±‡æŠ¥å•关闭/反关闭
        /// <summary>
        /// å…³é—­/反关闭考勤汇报单
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="Type">关闭(1),反关闭(2)</param>
        /// <param name="HMaker">关闭人</param>
        /// <returns></returns>
        [Route("Pay_WorkTimesBillController/GetPay_WorkTimesBill_Close_Json")]
        [HttpGet]
        public object GetPay_WorkTimesBill_Close_Json(Int64 HInterID, int Type, string HMaker)
        {
            try
            {
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameClose, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有该模块关闭/反关闭功能权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //判断存在性
                if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    //判断会计期是否合理
                    string s = "";
                    int sYear = 0;
                    int sPeriod = 0;
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod_Pay(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //Type 1 å…³é—­  2  åå…³é—­
                    if (Type == 1)
                    {
                        if (oBill.omodel.HCloseMan.Trim() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭,不能再次关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //关闭单据
                        if (!oBill.CloseBill(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " å…³é—­æˆåŠŸï¼";
                            objJsonResult.data = null;
                            return objJsonResult; ;
                        }
                    }
                    else
                    {
                        if (oBill.omodel.HCloseMan.Trim() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未关闭,不需要反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反关闭单据
                        if (!oBill.CancelClose(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " åå…³é—­æˆåŠŸï¼";
                            objJsonResult.data = null;
                            return objJsonResult; ;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到该考勤汇报单,请刷新数据后重新选择!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "关闭或反关闭考勤汇报单失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è€ƒå‹¤æ±‡æŠ¥å•作废/反作废
        /// <summary>
        /// ä½œåºŸ/反作废考勤汇报单
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="Type">作废(1),反作废(2)</param>
        /// <param name="HMaker">作废人</param>
        /// <returns></returns>
        [Route("Pay_WorkTimesBillController/GetPay_WorkTimesBill_Cancelltion_Json")]
        [HttpGet]
        public object GetPay_WorkTimesBill_Cancelltion_Json(Int64 HInterID, int Type, string HMaker)
        {
            try
            {
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有该模块作废/反作废功能权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //判断存在性
                if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    //判断会计期是否合理
                    string s = "";
                    int sYear = 0;
                    int sPeriod = 0;
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod_Pay(oBill.omodel.HDate, ref sYear, ref sPeriod, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //Type 1 ä½œåºŸ  2  åä½œåºŸ
                    if (Type == 1)
                    {
                        if (oBill.omodel.HDeleteMan.Trim() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废,不能再次作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //作废单据
                        if (!oBill.Cancelltion(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " ä½œåºŸæˆåŠŸï¼";
                            objJsonResult.data = null;
                            return objJsonResult; ;
                        }
                    }
                    else
                    {
                        if (oBill.omodel.HDeleteMan.Trim() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未作废,不需要反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //反作废单据
                        if (!oBill.AbandonCancelltion(HInterID, oBill.omodel.HBillNo, HMaker, ref ClsPub.sExeReturnInfo))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据号:" + oBill.omodel.HBillNo + " åä½œåºŸæˆåŠŸï¼";
                            objJsonResult.data = null;
                            return objJsonResult; ;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到该考勤汇报单,请刷新数据后重新选择!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "作废或反作废考勤汇报单失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region[考勤汇报单编辑时获取表头数据]
        [Route("Pay_WorkTimesBill/Pay_WorkTimesBillListCheckDetail")]
        [HttpGet]
@@ -97,34 +612,64 @@
        #region[考勤汇报单编辑时获取表体数据]
        [Route("Pay_WorkTimesBill/Pay_WorkTimesBillListProjectDetai")]
        [HttpGet]
        public object Pay_WorkTimesBillListProjectDetai(string sqlWhere)
        public object Pay_WorkTimesBillListProjectDetai(Int64 HInterID)
        {
            DataSet ds;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql1 = "SELECT  HDeptID,部门代码,部门,HGroupID" +
                    ",班组代码,班组,表头备注,制单人,制单日期,审核人" +
                    ",审核日期,修改人,修改日期,关闭人, å…³é—­æ—¥æœŸ,HEmpID" +
                    ",HEmpNumber,HEmpName,职员系数 HEmpRate,基本天数 HBaseDays,基本工时 HBaseTimes,加班工时 HOverTimes,请假工时 HLeaveTimes,加班天数 HOverDays,请假天数 HLeaveDays,迟到次数 HLateQty" +
                    ",公出 HOutForComQty,私出 HOutForEmpQty,公出时间 HOutForComTimes,私出时间 HOutForEmpTimes,迟到时间 HLateTimes,早退次数 HEarlyQty,早退时间 HEarlyTimes" +
                    ",旷工天数 HAbsentDays,上午 HAMTimes,下午 HPMTimes,HCTPrjID,HCTPrjNumber,HCTPrjName,HWorkTypeID,HWorkTypeNumber,HWorkTypeName,HPayMoney,HMoney" +
                    ",表体备注 HRemark,HRestFlag,HSchClassID FROM h_v_Pay_WorkTimesBillList where 1 = 1 ";
                string sql = sql1 + sqlWhere;
                ds = oCN.RunProcReturn(sql, "h_v_Pay_WorkTimesBillList");
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
                objJsonResult.data = ds.Tables[0];
                ds = oCn.RunProcReturn("exec h_p_Pay_WorkTimesBill_EditInit " + HInterID, "h_p_Pay_WorkTimesBill_EditInit");
                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 = "成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + e.ToString();
                objJsonResult.Message = "返回考勤汇报单信息失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return objJsonResult;
            //DataSet ds;
            //try
            //{
            //    SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //    string sql1 = "SELECT  HDeptID,部门代码,部门,HGroupID" +
            //        ",班组代码,班组,表头备注,制单人,制单日期,审核人" +
            //        ",审核日期,修改人,修改日期,关闭人, å…³é—­æ—¥æœŸ,HEmpID" +
            //        ",HEmpNumber,HEmpName,职员系数 HEmpRate,基本天数 HBaseDays,基本工时 HBaseTimes,加班工时 HOverTimes,请假工时 HLeaveTimes,加班天数 HOverDays,请假天数 HLeaveDays,迟到次数 HLateQty" +
            //        ",公出 HOutForComQty,私出 HOutForEmpQty,公出时间 HOutForComTimes,私出时间 HOutForEmpTimes,迟到时间 HLateTimes,早退次数 HEarlyQty,早退时间 HEarlyTimes" +
            //        ",旷工天数 HAbsentDays,上午 HAMTimes,下午 HPMTimes,HCTPrjID,HCTPrjNumber,HCTPrjName,HWorkTypeID,HWorkTypeNumber,HWorkTypeName,HPayMoney,HMoney" +
            //        ",表体备注 HRemark,HRestFlag,HSchClassID FROM h_v_Pay_WorkTimesBillList where 1 = 1 ";
            //    string sql = sql1 + sqlWhere;
            //    ds = oCN.RunProcReturn(sql, "h_v_Pay_WorkTimesBillList");
            //    objJsonResult.code = "0";
            //    objJsonResult.count = 1;
            //    objJsonResult.Message = "获取信息成功!";
            //    objJsonResult.data = ds.Tables[0];
            //}
            //catch (Exception e)
            //{
            //    objJsonResult.code = "0";
            //    objJsonResult.count = 0;
            //    objJsonResult.Message = "没有返回任何记录!" + e.ToString();
            //    objJsonResult.data = null;
            //}
            //return objJsonResult;
        }
        #endregion
@@ -171,7 +716,7 @@
                    if (refSav == "Add")
                    {
                        //单据号是否重复
                        if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld0.omodel.HInterID))
                        if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
@@ -182,7 +727,7 @@
                    }
                    if (refSav == "Update")
                    {
                        if (BillOld0.ShowBill(oItem.HInterID, ref s) == false)
                        if (BillOld.ShowBill(oItem.HInterID, ref s) == false)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
@@ -191,7 +736,7 @@
                            return objJsonResult;
                        }
                        //判断是否可编辑
                        if (BillOld0.omodel.HChecker != "" && BillOld0.omodel.HChecker != null)
                        if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
@@ -199,7 +744,7 @@
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (BillOld0.omodel.HBillStatus > 1)
                        if (BillOld.omodel.HBillStatus > 1)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
@@ -207,7 +752,7 @@
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld0, ref s))
                        if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
@@ -292,44 +837,6 @@
            }
        }
        /// <summary>
        ///工资结算个人单删除功能
        /// </summary>
        /// <returns></returns>
        [Route("Pay_WorkTimesBill/DeltetWorkTimesBill")]
        [HttpGet]
        public object DeltetWorkTimesBill(string HInterID,string user)
        {
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Pay_WorkTimesBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("Delete From Pay_WorkTimesBillMain where HInterID = " + HInterID);
                oCN.RunProc("Delete From Pay_WorkTimesBillSub where HInterID = " + HInterID);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "删除成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        /// <summary>
        /// é€šè¿‡ç­ç»„查询职员信息
        ///参数:string sql。
@@ -418,7 +925,7 @@
                }
                ds = oCN.RunProcReturn("exec h_p_Pay_WorkTimesSumQueryBillList " + sWhere, "Pay_WorkTimesSumQueryBillList");
                ds = oCn.RunProcReturn("exec h_p_Pay_WorkTimesSumQueryBillList " + sWhere, "Pay_WorkTimesSumQueryBillList");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)