/// <summary>
        /// 撤销单据
        /// </summary>
        /// <param name="docCode"></param>
        public void withdrew(string docCode, string wechatUserId)
        {
            var travelApply = _unitWork.FindSingle <TravelApply>(u => u.DocCode.Equals(docCode));

            travelApply.Status = "草稿";
            travelApply.Level  = -1;

            _unitWork.Update(travelApply);

            // 保存审批记录
            var record = new ApprovalRecord
            {
                DocCode           = docCode,
                Level             = -1,
                ApprovalResult    = "撤销",
                WechatUserId      = wechatUserId,
                DocumentTableName = "差旅申请"
            };

            _unitWork.Add(record);

            // 清空审批人
            _unitWork.Delete <ApprovalApprover>(u => u.DocCode.Equals(docCode) && u.DocumentTableName.Equals("差旅申请"));

            _unitWork.Save();
        }
 private void btnremove_Click(object sender, EventArgs e)
 {
     if (DialogResult.Yes == MessageBox.Show("是否删除该数据?", "是否删除该数据", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
     {
         if ((TabType)tabs.SelectedIndex == TabType.apply && dataGridApply.SelectedRows.Count > 0)
         {
             string applyid = dataGridApply.SelectedRows[0].Cells["申请ID"].Value.ToString();
             ApplyInfo.deleteApplyInfo(applyid);
             bindApplyInfo();
         }
         if ((TabType)tabs.SelectedIndex == TabType.approval && dataGridApproval.SelectedRows.Count > 0)
         {
             string applyid = dataGridApproval.SelectedRows[0].Cells["申请ID"].Value.ToString();
             ApprovalRecord.deleteApprovalInfo(applyid);
             bindApprovalInfo();
         }
         if ((TabType)tabs.SelectedIndex == TabType.user && dataGridUser.SelectedRows.Count > 0)
         {
             string userid = dataGridUser.SelectedRows[0].Cells["ID"].Value.ToString();
             UserInfo.deleteUserInfo(userid);
             UserRelation.deleteUserFrelationInfo(userid);
             bindUserInfo();
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 给表WF_Approval_Record插入数据
        /// </summary>
        /// <param name="currentActiveName"></param>
        /// <param name="LoginName"></param>
        /// <param name="WFInstanceId"></param>
        public static void InsertWF_Approval_RecordByInstanceID(string currentActiveName, string LoginName, string WFInstanceId)
        {
            ApprovalRecord appRecord = new ApprovalRecord();

            SqlParameter[] parameters =
            {
                new SqlParameter("@WfInstanceID",      SqlDbType.NVarChar, 100),
                new SqlParameter("@CurrentActiveName", SqlDbType.NVarChar, 200),
                new SqlParameter("@LoginName",         SqlDbType.NVarChar, 50)
            };

            parameters[0].Value = WFInstanceId;
            parameters[1].Value = currentActiveName;
            parameters[2].Value = LoginName;

            DataTable datatable = DBHelper.ExecutedProcedure("Biz.WF_Approval_Record_Insert", parameters);
        }
Esempio n. 4
0
        /// <summary>
        /// 修改申请表并插入审批记录
        /// </summary>
        /// <param name="approve_status">审批状态</param>
        /// <param name="reason">拒绝原因</param>
        private void ChangeApproveStatus(string approve_status, string reason = "")
        {
            applyinfo_grid.SelectedRows[0].Cells["apply_status"].Value  = approve_status;
            applyinfo_grid.SelectedRows[0].Cells["reject_reason"].Value = reason;
            string list_id = applyinfo_grid.SelectedRows[0].Cells["list_id"].Value.ToString();

            btn_approve.Enabled = false;
            btn_reject.Enabled  = false;

            string    applyid = applyinfo_grid.SelectedRows[0].Cells["apply_id"].Value.ToString();
            ApplyInfo apply   = ApplyInfo.getApplyInfo(applyid);

            if (apply != null)
            {
                ApprovalRecord approval = new ApprovalRecord();

                approval.approvalStatus   = apply.applyStatus = approve_status;
                approval.approvalContent  = apply.rejectReason = reason;
                approval.approvalUserId   = apply.lastApprovalUserId = currentUser.UserId;
                approval.ApprovalDate     = apply.lastApprovalDate = DateTime.Now.ToString();
                approval.applyId          = apply.applyId;
                approval.ApprovalUserType = currentUser.UserType;
                approval.applyUserId      = apply.applyUserId;
                if (!approve_status.Contains("拒绝"))
                {
                    ApplyList list = new ApplyList();
                    list.insertUserId   = apply.applyUserId;
                    list.insertDate     = DateTime.Now.ToString();
                    list.expirationDate = DateTime.Now.AddMonths(3).ToString();
                    list.ListId         = applyinfo_grid.SelectedRows[0].Cells["list_id"].Value.ToString();
                    HandleApplyList(list);
                }

                if (ApplyInfo.updateApplyInfo(apply) > 0 && ApprovalRecord.addApprovalInfo(approval) > 0)
                {
                    bindApplyGrid();
                    MessageBox.Show("操作成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("操作失败,请重试!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
        /// <summary>
        /// 审批差旅申请单
        /// </summary>
        /// <param name="docCode"></param>
        /// <param name="wechatUserId"></param>
        public Response approval(string docCode, string wechatUserId, string result, string opinion, WxHelper wx, User user)
        {
            var travelApply = _unitWork.FindSingle <TravelApply>(u => u.DocCode.Equals(docCode));

            // 首先判断该审批人是否有权限 防止重复点击
            var rightApprover = _unitWork.Find <ApprovalApprover>(u =>
                                                                  u.DocCode.Equals(docCode) && u.Level == travelApply.Level + 1 && u.WechatUserId.Equals(wechatUserId));

            if (rightApprover == null)
            {
                return(new Response
                {
                    code = 500,
                    message = "暂无权限审批"
                });
            }

            if ("同意".Equals(result))
            {
                agree(travelApply, docCode, wx, user);
            }
            else
            {
                reject(travelApply, wx, opinion, user);
            }

            // 保存审批记录
            var record = new ApprovalRecord
            {
                DocCode           = docCode,
                Level             = travelApply.Level + 1,
                ApprovalOpinions  = opinion,
                ApprovalResult    = result,
                WechatUserId      = wechatUserId,
                DocumentTableName = "差旅申请"
            };

            _unitWork.Add(record);

            _unitWork.Save();

            return(new Response());
        }
Esempio n. 6
0
 /// <summary>
 /// Saves the record.
 /// </summary>
 /// <param name="record">The record.</param>
 /// <returns></returns>
 public ApprovalRecord SaveRecord(ApprovalRecord record)
 {
     return(GetRecordDao().Update(record));
 }
Esempio n. 7
0
 /// <summary>
 /// 插入审批记录
 /// </summary>
 /// <param name="record"></param>
 /// <returns></returns>
 public ApprovalRecord InsertRecord(ApprovalRecord record)
 {
     return(GetRecordDao().Save(record));
 }
        /// <summary>
        /// 差旅申请 新增或保存草稿
        /// </summary>
        /// <param name="travelApply"></param>
        /// <returns></returns>
        public TravelApply addOrDraft(TravelApply travelApply, JArray approverJArray, User userInfo, WxHelper wx)
        {
            if (string.IsNullOrEmpty(travelApply.DocCode))
            {
                travelApply.DocCode = Encrypt.GenerateDocCode();
            }

            travelApply.WechatUserId = userInfo.WechatUserId;
            travelApply.UserName     = userInfo.UserName;

            // 找部门id
            if (!string.IsNullOrEmpty(travelApply.DepartmentName))
            {
                travelApply.DepartmentId =
                    _unitWork.FindSingle <Department>(u => u.Name.Equals(travelApply.DepartmentName)).Id;
            }

            // 处理总金额
            travelApply.TotalMoney = travelApply.AccomodationFee + travelApply.TicketFee + travelApply.TollFee +
                                     travelApply.TravelAllowance;

            if (!_unitWork.IsExist <TravelApply>(u => u.DocCode.Equals(travelApply.DocCode)))
            {
                _unitWork.Add(travelApply);
            }
            else
            {
                _unitWork.Update(travelApply);
            }

            if (travelApply.Status.Equals("已提交"))
            {
                // 新增记录到审批人表
                var approverList = new List <ApprovalApprover>();
                foreach (var jarray in approverJArray)
                {
                    var approver = new ApprovalApprover
                    {
                        DocumentTableName = "差旅申请",
                        DocCode           = travelApply.DocCode,
                        Level             = int.Parse(jarray["level"].ToString()),
                        WechatUserId      = jarray["wechatUserId"].ToString()
                    };
                    approverList.Add(approver);
                }

                ;
                _unitWork.BatchAdd(approverList.ToArray());

                // 新增记录到审批记录表
                var record = new ApprovalRecord
                {
                    DocumentTableName = "差旅申请",
                    DocCode           = travelApply.DocCode,
                    Level             = 0,
                    WechatUserId      = userInfo.WechatUserId,
                    ApprovalResult    = "单据提交",
                    ApprovalOpinions  = "单据提交"
                };
                _unitWork.Add(record);

                // 给下级审批人发消息
                WxTextCardMessage msg = new WxTextCardMessage(Convert.ToInt32(wx.AgentId), "审批通知",
                                                              "你有一笔差旅申请待审批!", "http://yelioa.top:8080/#/travel_apply/pending", "");
                msg.touser = _unitWork.FindSingle <ApprovalApprover>(u =>
                                                                     u.DocCode.Equals(travelApply.DocCode) && u.DocumentTableName.Equals("差旅申请") &&
                                                                     u.Level == travelApply.Level + 1).WechatUserId;
                wx.SendWxTextCardMessage(msg);

                // 给提交人发消息
                msg = new WxTextCardMessage(Convert.ToInt32(wx.AgentId), "审批通知",
                                            $"你的差旅申请已提交,请耐心等待审批!", "http://yelioa.top:8080/#/travel_apply/mine", "");
                msg.touser = travelApply.WechatUserId;
                wx.SendWxTextCardMessage(msg);
            }

            _unitWork.Save();

            return(travelApply);
        }
 private void bindApprovalInfo()
 {
     currentTable = ApprovalRecord.getAllApprovalInfo();
     this.dataGridApproval.DataSource = currentTable;
 }