示例#1
0
        public JsonResult Check(string UserName, int approveID, int status, string memo, string nextapprove, string company, string number, string ExpStatus)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                try
                {
                    string           curName   = Server.UrlDecode(Request.Cookies["Name"].Value);
                    string           Nickname  = Server.UrlDecode(Request.Cookies["Nickname"].Value);
                    int              TotalStep = db.T_ExpenseApproveConfig.ToList().Count;
                    T_ExpenseApprove approve   = db.T_ExpenseApprove.SingleOrDefault(a => a.ID == approveID && a.ApproveStatus == -1 && (a.ApproveName == curName || a.ApproveName == Nickname));
                    if (approve == null)
                    {
                        return(Json(new { State = "Faile", Message = "该数据已审核" }, JsonRequestBehavior.AllowGet));
                    }
                    approve.ApproveStatus = status;
                    approve.ApproveDate   = DateTime.Now;
                    approve.Remark        = memo;
                    T_Expense model = db.T_Expense.Find(approve.Reunbursement_id);
                    if (nextapprove != null && nextapprove != "")
                    {
                        model.Cashier = nextapprove;
                    }
                    if (ExpStatus != null && ExpStatus != "")
                    {
                        model.ExpStatus = ExpStatus;
                    }
                    int Step = model.Step;
                    Step++;
                    if (status == 2)
                    {
                        model.Status = 2;
                        model.Step   = 0;
                        db.SaveChanges();
                    }
                    else
                    {
                        if (TotalStep == Step)
                        {
                            if (company == "==请选择==")
                            {
                                return(Json(new { State = "Faile", Message = "请选择公司" }, JsonRequestBehavior.AllowGet));
                            }
                            model.Status          = status;
                            model.SpendingCompany = company;
                            model.SpendingNumber  = number;
                            //实付
                            string codes1 = "KF-FK-";
                            string date1  = DateTime.Now.ToString("yyyyMMdd");
                            //查找当前已有的编号
                            List <T_PP> list1 = db.T_PP.Where(a => a.BillCode.Contains(date1)).OrderByDescending(c => c.ID).ToList();
                            if (list1.Count == 0)
                            {
                                codes1 += date1 + "-" + "0001";
                            }
                            else
                            {
                                string old     = list1[0].BillCode.Substring(15);
                                int    newcode = int.Parse(old) + 1;
                                codes1 += date1 + "-" + newcode.ToString().PadLeft(4, '0');
                            }

                            //实付
                            T_PP pp = new T_PP
                            {
                                BillCode     = codes1,
                                BillCompany  = model.Reun_Bank,
                                BillFromCode = model.Reun_Code,
                                BillMoney    = Convert.ToDouble(model.Reun_Cost),
                                BillType     = "报销申请",
                                CreateTime   = DateTime.Now,
                                CreatUser    = UserName,
                                PayMoney     = Convert.ToDouble("-" + model.Reun_Cost)
                            };
                            db.T_PP.Add(pp);
                            db.SaveChanges();
                        }
                        else
                        {
                            if (status != 2)
                            {
                                T_ExpenseApproveConfig ModelConFig = db.T_ExpenseApproveConfig.SingleOrDefault(a => a.Step == Step);


                                T_ExpenseApprove newApprove = new T_ExpenseApprove();
                                newApprove.ApproveStatus = -1;
                                if (Step == 4)
                                {
                                    newApprove.ApproveName = model.Cashier;
                                    nextapprove            = model.Cashier;
                                }
                                else
                                {
                                    newApprove.ApproveName = ModelConFig.ApproveUser;
                                    nextapprove            = ModelConFig.ApproveUser;
                                }

                                newApprove.ApproveDate      = null;
                                newApprove.Reunbursement_id = approve.Reunbursement_id;
                                db.T_ExpenseApprove.Add(newApprove);

                                T_User u = db.T_User.FirstOrDefault(a => a.Nickname.Equals(nextapprove));
                                model.ExpenseNextApprove = u.ID;
                                model.Status             = 0;
                            }
                        }
                        model.Step = Step;
                        db.SaveChanges();
                    }

                    ModularByZP();
                    sc.Complete();
                    return(Json(new { State = "Success" }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception ex)
                {
                    return(Json(new { State = "Faile", Message = ex.Message }, JsonRequestBehavior.AllowGet));
                }
            }
        }
示例#2
0
        //详情页面数据加载
        public JsonResult GetDetail(int ID, string UserName)
        {
            T_User MOD_User = db.T_User.FirstOrDefault(a => a.Nickname == UserName);
            //真名
            string name   = MOD_User.Name;
            string result = "";
            //主表
            T_Expense mod  = db.T_Expense.Find(ID);
            mainItem  list = new mainItem();

            list.ID                 = mod.ID;
            list.Department         = mod.Department;
            list.Reun_Reason        = mod.Reun_Reason;
            list.ExpenseNextApprove = mod.ExpenseNextApprove;
            list.Reun_Cost          = mod.Reun_Cost;
            list.PostUser           = mod.PostUser;
            list.CrateDate          = mod.CrateDate;
            list.Reun_Code          = mod.Reun_Code;
            list.AccountType        = mod.AccountType;
            list.Reun_Bank          = mod.Reun_Bank;
            list.Shop               = mod.Shop;
            list.Reun_Name          = mod.Reun_Name;
            list.Car_Number         = mod.Car_Number;
            list.Status             = mod.Status;
            list.Step               = mod.Step;
            list.IsExpenseMatch     = mod.IsExpenseMatch;
            list.IsExpenseEnclosure = mod.IsExpenseEnclosure;
            list.Pz_BXStatus        = mod.Pz_BXStatus;
            list.MatchBorrowNumber  = mod.MatchBorrowNumber;
            string modJson = JsonConvert.SerializeObject(list, Lib.Comm.setTimeFormat());
            //详情
            IQueryable <T_ExpenseProduct> mod_Detail = db.T_ExpenseProduct.Where(a => a.ReunId == ID);
            string modDetail = JsonConvert.SerializeObject(mod_Detail, Lib.Comm.setTimeFormat());
            //审核记录
            IQueryable <T_ExpenseApprove> mod_Approve = db.T_ExpenseApprove.Where(a => a.Reunbursement_id == ID);
            string approve = JsonConvert.SerializeObject(mod_Approve, Lib.Comm.setTimeFormat());

            T_Expense lossreport = db.T_Expense.Find(ID);
            //用于判断是不是 财务主管
            int nextMan = 0;
            int Step    = db.T_ExpenseApproveConfig.ToList().Count;

            if (mod.Step != Step - 1)
            {
                nextMan = 1;
            }
            //用于判断是不是我审核 0不是 1是
            int myCheck = 0;
            T_ExpenseApprove MyApprove = db.T_ExpenseApprove.FirstOrDefault(a => a.Reunbursement_id == ID && a.ApproveName == UserName && a.ApproveDate == null);

            if (MyApprove != null)
            {
                myCheck = 1;
            }
            //审核人
            List <SelectListItem> getCheckMan = new List <SelectListItem>();
            var approveusers = db.T_ExpenseApproveConfig.FirstOrDefault(a => a.Step == 4);

            if (approveusers != null)
            {
                //如果是动态获取当前部门主管
                string[] array = approveusers.ApproveUser.Split(',');
                List <SelectListItem> items = new List <SelectListItem>();
                foreach (var item in array)
                {
                    T_User user = db.T_User.FirstOrDefault(a => a.Nickname.Equals(item) || a.Name.Equals(item));
                    if (user != null)
                    {
                        items.Add(new SelectListItem {
                            Text = user.Nickname, Value = user.ID.ToString()
                        });
                    }
                }
                getCheckMan = items;
            }
            else
            {
                getCheckMan = null;
            }
            string CheckManJson = JsonConvert.SerializeObject(getCheckMan);
            string ExpStatus    = JsonConvert.SerializeObject(Com.ExpenseStatus());

            //未审核记录ID
            T_ExpenseApprove Approve = db.T_ExpenseApprove.FirstOrDefault(s => !s.ApproveDate.HasValue && s.Reunbursement_id == ID);

            if (Approve == null)
            {
                Approve = db.T_ExpenseApprove.FirstOrDefault(s => s.ApproveDate.HasValue && s.Reunbursement_id == ID);
            }

            result += "{\"Main\":[" + modJson + "],\"Detail\":" + modDetail + ",\"Approve\":" + approve + ",\"Step\":" + mod.Step + ",\"approveId\":" + Approve.ID + ",\"myCheck\":" + myCheck + ",\"ExpStatus\":" + ExpStatus + ",\"CheckList\":" + CheckManJson + ",\"Company\":" + JsonConvert.SerializeObject(Com.ExpenseCompany()) + "}";
            return(Json(result, JsonRequestBehavior.AllowGet));
        }