/// <summary>
        /// 验证审核的订单
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private async Task <Result> VerifyAuditOrder(In <AuditOrder> inData)
        {
            var    data   = inData.data;
            Result result = new Result();

            if (data == null)
            {
                result.msg = "参数错误";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(data.order_sn?.Trim()))
            {
                result.msg = "订单不存在";
                return(result);
            }
            data.order_sn = data.order_sn.Trim();
            DBHelper      db    = new DBHelper();
            t_procurement order = await ProcurementDao.GetOrder(db, data.order_sn);

            db.Close();
            if (order == null)
            {
                result.msg = "订单不存在";
                return(result);
            }
            int             pass_step = ProcurementConfig.PassStep(order.department_id, order.position_id);
            ProcurementItem step      = ProcurementConfig.CurrentStep(order.department_id, pass_step, order.audit_step);

            if (step == null || step.act != EProcurementAction.Apply || inData.user.position_id != step.id)
            {
                result.msg = "无权审批改订单";
                return(result);
            }
            if (string.IsNullOrWhiteSpace(data.flag?.Trim()) || !int.TryParse(data.flag, out int audit_flag) || !Enum.IsDefined(typeof(EAuditFlag), audit_flag))
            {
                result.msg = "审批状态错误";
                return(result);
            }
            data.flag = data.flag.Trim();

            if (audit_flag == (int)EAuditFlag.Reject && string.IsNullOrWhiteSpace(data.remark?.Trim()))
            {
                result.msg = "请填写拒绝理由";
                return(result);
            }
            data.remark = data.remark?.Trim();
            if (data.remark?.Length > 100)
            {
                result.msg = "拒绝理由最多100个字符";
                return(result);
            }

            result.result = true;
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// 添加采购单
        /// </summary>
        /// <param name="order_sn">订单号</param>
        /// <param name="user">用户</param>
        /// <returns></returns>
        public static async Task <int> AddProcurement(DBHelper db, string order_sn, LoginResult user)
        {
            t_procurement model = new t_procurement
            {
                department_id = user.department_id,
                position_id   = user.position_id,
                user_id       = user.user_id,
                order_sn      = order_sn,
                audit_step    = 0,
                audit_status  = (int)EAuditStatus.Progress
            };

            string sql = @"INSERT t_procurement(`order_sn`,`user_id`,`position_id`,`audit_step`,`audit_status`,`department_id`) VALUES(@order_sn,@user_id,@position_id,@audit_step,@audit_status,@department_id); SELECT LAST_INSERT_ID();";

            return(await db.ExecAsync <int>(sql, model));
        }
        /// <summary>
        /// 拒绝审批
        /// </summary>
        /// <param name="inData"></param>
        /// <returns></returns>
        private async Task <Result> AuditReject(DBHelper db, In <AuditOrder> inData)
        {
            Result        result = new Result();
            t_procurement order  = await ProcurementDao.GetOrder(db, inData.data.order_sn);

            bool update_order_flag = await ProcurementDao.AuditRejectOrder(db, inData.data.order_sn, order.audit_step + 1);

            if (!update_order_flag)
            {
                result.msg = "审批失败[1]";
                return(result);
            }
            bool add_audit_log_flag = await AuditLogDao.AddAuditLog(db, order.order_sn, inData.user.user_id, EAuditFlag.Reject, inData.user.position_id, order.audit_step, inData.data.remark);

            if (!add_audit_log_flag)
            {
                result.msg = "审批失败[2]";
                return(result);
            }
            result.result = true;
            return(result);
        }