Пример #1
0
        /// <summary>
        /// 领导审核修改加班单据
        /// </summary>
        /// <param name="overTime">出差单据数据集</param>
        /// <param name="roleType">角色类型</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool UpdateOverTimeBill(HR_OvertimeBill overTime, string roleType, out string error)
        {
            error = "";
            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            dataContxt.Connection.Open();
            dataContxt.Transaction = dataContxt.Connection.BeginTransaction();

            try
            {
                var result = from a in dataContxt.HR_OvertimeBill
                             where a.ID == overTime.ID
                             select a;

                if (result.Count() != 1)
                {
                    error = "信息有误,请查证后再操作!";
                    return(false);
                }

                HR_OvertimeBill bill = result.Single();
                List <string>   list = new List <string>();
                DataTable       dt   = GlobalObject.DatabaseServer.QueryInfo("select * from HR_OvertimePersonnel where billID=" + bill.ID);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    list.Add(dt.Rows[i]["WorkID"].ToString());
                }

                bill.BillStatus = overTime.BillStatus;

                switch (roleType)
                {
                case "部门主管审批":
                    bill.DeptDirector = overTime.DeptDirector;
                    bill.DeptDirectorSignatureDate = overTime.DeptDirectorSignatureDate;
                    break;

                case "分管领导审批":
                    bill.Leader = overTime.Leader;
                    bill.LeaderSignatureDate = overTime.LeaderSignatureDate;
                    bill.Authorize           = overTime.Authorize;
                    bill.VerifyHours         = overTime.VerifyHours;
                    bill.RealHours           = overTime.RealHours;
                    break;

                case "部门负责人审批":
                    bill.DeptPrincipal = overTime.DeptPrincipal;
                    bill.DeptPrincipalSignatureDate = overTime.DeptPrincipalSignatureDate;
                    bill.Authorize   = overTime.Authorize;
                    bill.VerifyHours = overTime.VerifyHours;
                    bill.RealHours   = overTime.RealHours;
                    break;

                case "人力资源":
                    bill.HR_Signature     = overTime.HR_Signature;
                    bill.HR_SignatureDate = overTime.HR_SignatureDate;
                    break;

                case "确认加班完成情况":
                    bill.Verifier           = overTime.Verifier;
                    bill.VerifyFinish       = overTime.VerifyFinish;
                    bill.VerifyHours        = overTime.VerifyHours;
                    bill.VerifySignaturDate = overTime.VerifySignaturDate;
                    bill.RealHours          = Convert.ToDouble(overTime.VerifyHours);
                    break;

                default:
                    break;
                }

                dataContxt.SubmitChanges();

                if (GlobalObject.GeneralFunction.StringConvertToEnum <OverTimeBillStatus>(bill.BillStatus) == OverTimeBillStatus.已完成)
                {
                    ITimeExceptionServer service = ServerModuleFactory.GetServerModule <ITimeExceptionServer>();
                    service.OperationTimeException_Replenishments(dataContxt, bill.ID.ToString(), CE_HR_AttendanceExceptionType.加班);
                }

                dataContxt.Transaction.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                dataContxt.Transaction.Rollback();
                error = ex.Message;
                return(false);
            }
        }