private string getBudget()
    {
        string    docCode = Request.Form["docCode"];
        string    sql     = "select * from yl_reimburse where id = " + docCode;
        DataTable dt      = SqlHelper.Find(sql).Tables[0];

        return(ReimbursementManage.IsOverBudget(dt.Rows[0]["fee_department"].ToString(), dt.Rows[0]["fee_detail"].ToString()
                                                , Convert.ToDouble(dt.Rows[0]["fee_amount"].ToString()), DateTime.Now).ToString());
    }
    private string approvalReimburse()
    {
        string docCode          = Request.Form["docCode"];
        string ApprovalResult   = Request.Form["ApprovalResult"];
        string ApprovalOpinions = Request.Form["ApprovalOpinions"];

        UserInfo userInfo = (UserInfo)Session["user"];

        string    sql  = "select * from yl_reimburse where id = " + docCode;
        DataTable dt   = SqlHelper.Find(sql).Tables[0];
        string    code = dt.Rows[0]["code"].ToString();

        // 查询这一级的审批人是否是该用户
        DataSet checkApproverDt = ReimbursementManage.checkApprover(code, userInfo.userId.ToString());

        string msg = "";

        if (checkApproverDt == null || checkApproverDt.Tables[0] == null ||
            checkApproverDt.Tables[0].Columns.Count == 0 || checkApproverDt.Tables[0].Rows.Count == 0)
        {
            msg = "当前用户无审批权限";
            return(JsonHelper.SerializeObject(msg));
        }

        //// 若提交时间超过当月25号 则不允许审批
        // DateTime submitTime = Convert.ToDateTime(dt.Rows[0]["apply_time"]);
        // DateTime theTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-25" + " 00:00:00");

        // if (submitTime > theTime)
        // {
        //     msg = "该单据超过25号提交,暂无法审批!";
        //     return JsonHelper.SerializeObject(msg);
        // }

        //if (ApprovalResult == "同意" && dt.Rows[0]["IsOverBudget"].ToString() != "1")
        //{
        //    JObject j = ReimbursementManage.IsOverBudget(dt.Rows[0]["fee_department"].ToString(), dt.Rows[0]["fee_detail"].ToString(), Convert.ToDouble(dt.Rows[0]["fee_amount"].ToString()), DateTime.Now);

        //    if (msg.Contains("预算余额不足"))
        //    {
        //        return JsonHelper.SerializeObject(msg);
        //    }
        //}
        if (ApprovalResult == "同意" && dt.Rows[0]["isOverBudget"].ToString() != "1")
        {
            JObject res = ReimbursementManage.IsOverBudget(dt.Rows[0]["fee_department"].ToString(), dt.Rows[0]["fee_detail"].ToString(), Convert.ToDouble(dt.Rows[0]["fee_amount"].ToString())
                                                           , Convert.ToDateTime(dt.Rows[0]["apply_time"].ToString()));

            if (res == null || Convert.ToDouble(res["budget"]) < Convert.ToDouble(res["hasApprove"]) + Convert.ToDouble(dt.Rows[0]["fee_amount"].ToString()))
            {
                return(JsonHelper.SerializeObject("预算余额不足"));
            }
        }

        msg = ApprovalFlowManage.ApproveDocument("yl_reimburse", docCode, userInfo, ApprovalResult, ApprovalOpinions,
                                                 "http://yelioa.top/mMySubmittedReimburse.aspx?docCode=" + code, "http://yelioa.top/mMobileReimbursement.aspx?docCode=" + code, "http://yelioa.top/mMySubmittedReimburse.aspx?docCode=" + code, "UM0i5TXSIqQIOWk-DmUlfTqBqvZAfbZdGGDKiFZ-nRk", "yl_reimburse", "1000006");

        if ("审批流程结束".Equals(msg) || "审批拒绝!".Equals(msg))
        {
            // 清除approval_process表中内容
            MobileReimburseManage.clearApprovalProcess(docCode);
            // 更新审批时间
            MobileReimburseManage.updateApprovalTimeAndResultAndOpinion(docCode, ApprovalResult, ApprovalOpinions);

            // 删除关联差旅申请
            sql += string.Format("delete from wf_form_差旅申请 where reimburseCode = '{0}';", code);

            // 删除关联借款单 并把借款单的金额还原
            dt = SqlHelper.Find(string.Format("select * from yl_reimburse_loan where ReimburseCode = '{0}'", code)).Tables[0];

            sql += string.Format("delete from yl_reimburse_loan where ReimburseCode = '{0}';", code);

            foreach (DataRow dr in dt.Rows)
            {
                decimal amount   = Decimal.Parse(dr["amount"].ToString());
                string  tempCode = dr["docCode"].ToString();

                sql += string.Format("update wf_form_借款单 set remainAmount = remainAmount + {0} where docCode = '{1}';", amount, tempCode);
            }
            SqlHelper.Exce(sql);
        }
        return(JsonHelper.SerializeObject(msg));
    }
Example #3
0
    private string submitReimburse()
    {
        UserInfo user = (UserInfo)Session["user"];

        string apply_time      = Request.Form["apply_time"];
        string product         = Request.Form["product"];
        string branch          = Request.Form["branch"];
        string fee_department  = Request.Form["fee_department"];
        string fee_company     = Request.Form["fee_company"];
        string fee_detail      = Request.Form["fee_detail"];
        string fee_amount      = Request.Form["fee_amount"];
        string file            = Request.Form["file"];
        string remark          = SqlHelper.DesEncrypt(Request.Form["remark"]);
        string approver        = Request.Form["approvers"];
        string department      = Request.Form["department"];
        string informer        = Request.Form["chooseInformerId"];
        string approverData    = Request.Form["approverData"];
        string uploadFileUrls  = Request.Form["uploadFileUrls"];
        string docCode         = Request.Form["docCode"];
        string project         = Request.Form["project"];
        string isOverBudget    = Request.Form["isOverBudget"];//是否是预算外的标志,1表示预算外,0表示预算内
        string isPrepaid       = Request.Form["isPrepaid"];
        string isHasReceipt    = Request.Form["isHasReceipt"];
        string reimburseDetail = Request.Form["reimburseDetail"];
        string travelCode      = Request.Form["travelCode"];
        string loanCode        = Request.Form["loanCode"];

        List <string>  informerList        = JsonHelper.DeserializeJsonToList <string>(informer);
        List <JObject> approverDataList    = JsonHelper.DeserializeJsonToList <JObject>(approverData);
        List <string>  uploadFileUrlsList  = JsonHelper.DeserializeJsonToList <string>(uploadFileUrls);
        List <JObject> reimburseDetailList = JsonHelper.DeserializeJsonToList <JObject>(reimburseDetail);

        string  msg = "";
        JObject res = ReimbursementManage.IsOverBudget(fee_department, fee_detail, Convert.ToDouble(fee_amount)
                                                       , Convert.ToDateTime(apply_time));

        if (res == null || Convert.ToDouble(res["budget"]) >= Convert.ToDouble(res["hasApprove"]) + Convert.ToDouble(fee_amount) || isOverBudget == "1")
        {
            msg = MobileReimburseManage.insertMobileReimburse(apply_time, product, branch, fee_department, fee_detail, fee_amount,
                                                              file, remark, user, approver, department, informerList, approverDataList, uploadFileUrlsList, docCode, project, isOverBudget,
                                                              isPrepaid, isHasReceipt, reimburseDetailList, fee_company, travelCode, loanCode);
        }
        else
        {
            string code = GenerateDocCode.getReimburseCode();

            if (department == null || "".Equals(department))
            {
                department = MobileReimburseSrv.findDepartmentNameByWechatUserId(user.wechatUserId).Tables[0].Rows[0][0].ToString();
            }
            if (string.IsNullOrEmpty(docCode))
            {
                MobileReimburseSrv.insertMobileReimburse(code, apply_time, product, branch, fee_department, fee_detail, fee_amount,
                                                         file, remark, user, approver, department, project, isOverBudget, isPrepaid, isHasReceipt, fee_company, "");

                SqlHelper.Exce(string.Format("update yl_reimburse set status = '草稿' where code = '{0}'", code));
            }

            msg = "本月预算为" + res["budget"].ToString() + ",已用" + res["hasApprove"].ToString() + ",预算不足,请减少申请金额或者走预算外报销申请," + code;
        }
        return(msg);
    }