Esempio n. 1
0
        public JsonResult Check(string UserName, int approveID, int status, string memo, string nextapprove, string BorrowerFrom, string company, string number)
        {
            using (TransactionScope sc = new TransactionScope())
            {
                try
                {
                    int             TotalStep = db.T_BorrowApproveConfig.ToList().Count;
                    string          curName   = Server.UrlDecode(Request.Cookies["Name"].Value);
                    string          Nickname  = Server.UrlDecode(Request.Cookies["Nickname"].Value);
                    T_BorrowApprove approve   = db.T_BorrowApprove.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.ApproveTime   = DateTime.Now;
                    approve.Memo          = memo;
                    T_Borrow model = db.T_Borrow.Find(approve.Pid);
                    if (!string.IsNullOrEmpty(BorrowerFrom))
                    {
                        model.BorrowerFrom = BorrowerFrom;
                    }
                    int Step = model.BorrowStep;
                    Step++;
                    if (status == 2)
                    {
                        model.BorrowState = 2;
                        model.BorrowStep  = Step;
                        db.SaveChanges();
                    }
                    else
                    {
                        if (TotalStep == Step)
                        {
                            model.BorrowState     = status;
                            model.SpendingCompany = company;
                            model.SpendingNumber  = number;
                            //应收
                            string codes = "KF-YS-";
                            string date  = DateTime.Now.ToString("yyyyMMdd");
                            //查找当前已有的编号
                            List <T_AR> list = db.T_AR.Where(a => a.BillCode.Contains(date)).OrderByDescending(c => c.ID).ToList();
                            if (list.Count == 0)
                            {
                                codes += date + "-" + "0001";
                            }
                            else
                            {
                                string old     = list[0].BillCode.Substring(15);
                                int    newcode = int.Parse(old) + 1;
                                codes += date + "-" + newcode.ToString().PadLeft(4, '0');
                            }

                            //应收
                            T_AR ar = new T_AR
                            {
                                BillCode     = codes,
                                BillCompany  = model.BorrowerFrom,
                                BillFromCode = model.BorrowCode,
                                BillMoney    = Convert.ToDouble(model.BorrowMoney),
                                BillType     = "借支申请",
                                CreateTime   = DateTime.Now,
                                CreatUser    = UserName,
                                ReceivedMony = Convert.ToDouble(model.BorrowMoney)
                            };

                            //实付
                            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.BorrowerFrom,
                                BillFromCode = model.BorrowCode,
                                BillMoney    = Convert.ToDouble(model.BorrowMoney),
                                BillType     = "借支申请",
                                CreateTime   = DateTime.Now,
                                CreatUser    = model.BorrowName,
                                PayMoney     = Convert.ToDouble("-" + model.BorrowMoney)
                            };
                            db.T_PP.Add(pp);
                            db.T_AR.Add(ar);
                            db.SaveChanges();
                        }
                        else
                        {
                            T_BorrowApprove newApprove = new T_BorrowApprove();
                            newApprove.ApproveStatus = -1;
                            if (UserName == "子轩" && model.BorrowStep == 2)
                            {
                                newApprove.ApproveName = "三疯";
                                model.Cashier          = nextapprove;
                            }
                            else if (UserName == "三疯" && model.BorrowStep == 3)
                            {
                                newApprove.ApproveName = model.Cashier;
                                nextapprove            = model.Cashier;
                            }
                            else
                            {
                                newApprove.ApproveName = nextapprove;
                            }

                            newApprove.ApproveTime = null;
                            newApprove.Pid         = approve.Pid;
                            db.T_BorrowApprove.Add(newApprove);

                            T_User u = db.T_User.FirstOrDefault(a => a.Nickname.Equals(nextapprove));
                            model.BorrowNextApprove = u.ID;
                            model.BorrowState       = 0;
                        }
                        model.BorrowStep = Step;
                        db.SaveChanges();
                    }
                    List <T_ModularNotaudited> ModularNotaudited = db.T_ModularNotaudited.Where(a => a.ModularName == "借支").ToList();
                    if (ModularNotaudited.Count > 0)
                    {
                        foreach (var item in ModularNotaudited)
                        {
                            db.T_ModularNotaudited.Remove(item);
                        }
                        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));
                }
            }
        }
Esempio n. 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_Borrow mod  = db.T_Borrow.Find(ID);
            mainItem list = new mainItem();

            list.ID                   = mod.ID;
            list.BorrowName           = mod.BorrowName;
            list.BorrowerFrom         = mod.BorrowerFrom;
            list.BorrowerDep          = mod.BorrowerDep;
            list.BorrowReason         = mod.BorrowReason;
            list.BorrowMoney          = mod.BorrowMoney;
            list.BorrowDate           = mod.BorrowDate;
            list.BorrowState          = mod.BorrowState;
            list.BorrowSettementState = mod.BorrowSettementState;
            list.BorrowCode           = mod.BorrowCode;
            list.BorrowAccountID      = mod.BorrowAccountID;
            list.BorrowBank           = mod.BorrowBank;
            list.BorrowNeedDate       = mod.BorrowNeedDate;
            list.BorrowAccountName    = mod.BorrowAccountName;
            list.BorrowNextApprove    = mod.BorrowNextApprove;
            list.BorrowStep           = mod.BorrowStep;
            list.BorrowAccountName    = mod.BorrowAccountName;
            list.IsVoucher            = mod.IsVoucher;

            string modJson = JsonConvert.SerializeObject(list, Lib.Comm.setTimeFormat());

            //审核记录
            IQueryable <T_BorrowApprove> mod_Approve = db.T_BorrowApprove.Where(a => a.Pid == ID);
            string approve = JsonConvert.SerializeObject(mod_Approve, Lib.Comm.setTimeFormat());

            T_BorrowApprove Approve = db.T_BorrowApprove.FirstOrDefault(s => !s.ApproveTime.HasValue && s.Pid == ID);

            if (Approve == null)
            {
                Approve = db.T_BorrowApprove.FirstOrDefault(s => s.ApproveTime.HasValue && s.Pid == ID);
            }


            //用于判断是不是我审核 0不是 1是
            int             myCheck   = 0;
            T_BorrowApprove MyApprove = db.T_BorrowApprove.FirstOrDefault(a => a.Pid == ID && a.ApproveName == UserName && a.ApproveTime == null);

            if (MyApprove != null)
            {
                myCheck = 1;
            }
            //财务主管?
            //int Cashier = 0;
            int curStep = int.Parse(mod.BorrowStep.ToString());
            //取最后一步

            int Step = db.T_BorrowApproveConfig.ToList().Count;

            //如果不是最后1 步,就显示选择下拉框



            List <SelectListItem> getCheckMan = new List <SelectListItem>();
            T_BorrowApproveConfig approveusers;

            mod.BorrowStep = mod.BorrowStep + 1;
            if (UserName == "子轩" && mod.BorrowStep == 3)
            {
                mod.BorrowStep = mod.BorrowStep + 1;
                approveusers   = db.T_BorrowApproveConfig.FirstOrDefault(a => a.Step == mod.BorrowStep);
            }
            else
            {
                approveusers = db.T_BorrowApproveConfig.FirstOrDefault(a => a.Step == mod.BorrowStep);
            }
            //var approveusers = db.T_BorrowApproveConfig.FirstOrDefault(a => a.Step == mod.BorrowStep + 1);
            if (approveusers != null)
            {
                //如果是动态获取当前部门主管
                if (approveusers.ApproveUser.Equals("部门主管"))
                {
                    List <SelectListItem> items = new List <SelectListItem>();
                    items.Add(new SelectListItem {
                        Text = "请选择", Value = "9999"
                    });
                    getCheckMan = items;
                }
                //如果还有其他的审核组或者动态绑定的数据 再增加else
                //如果是固定的某些人
                else
                {
                    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));
                        if (user != null)
                        {
                            items.Add(new SelectListItem {
                                Text = user.Nickname, Value = user.ID.ToString()
                            });
                        }
                    }
                    getCheckMan = items;
                }
            }
            else
            {
                getCheckMan = null;
            }
            //支付
            List <SelectListItem> listBorrowForm = Lib.Comm.BorrowForm;
            string theBorrowForm = JsonConvert.SerializeObject(listBorrowForm, Lib.Comm.setTimeFormat());
            //审核人
            string CheckManJson = JsonConvert.SerializeObject(getCheckMan, Lib.Comm.setTimeFormat());
            //公司
            List <SelectListItem> listCompany = Com.ExpenseCompany();
            string theCompany = JsonConvert.SerializeObject(listCompany, Lib.Comm.setTimeFormat());



            result += "{\"Main\":[" + modJson + "],\"Approve\":" + approve + ",\"myCheck\":" + myCheck + ",\"Step\":" + Step + ",\"approveId\":" + Approve.ID + ",\"CheckList\":" + CheckManJson + ",\"theBorrowForm\":" + theBorrowForm + ",\"listCompany\":" + theCompany + "}";
            return(Json(result, JsonRequestBehavior.AllowGet));
        }