Exemplo n.º 1
0
        public ActionResult Show(String SerialNumber)
        {
            var application = _applicationFormService.ApplicationForms.FirstOrDefault(c => c.SerialNumber == SerialNumber);

            if (application == null)
            {
                return(PartialView("Create", new ApplicationFormVM()));
            }
            var model = new ApplicationFormVM()
            {
                SerialNumber    = application.SerialNumber,
                ProjectNumber   = application.ProjectNumber,
                TaskName        = application.TaskName,
                ProjectDirector = application.ProjectDirector,
                DepartmentName  = application.DepartmentName,
                Agent           = application.Agent,
                PaymentType     = application.PaymentType,
                SubmitTime      = application.SubmitTime,
                AuditStatus     = application.AuditStatus,
                AuditOpinion    = application.AuditOpinion,
                ApplyDesp       = application.ApplyDesp,
                AuditTime       = application.AuditTime,
                Summation       = application.Summation,
                RefundType      = application.RefundType,
                UserName        = application.UserName
            };

            return(PartialView("Show", model));
        }
Exemplo n.º 2
0
 public OperationResult Update(ApplicationFormVM model)
 {
     try
     {
         ApplicationForm applicationForm = _ApplicationFormRepository.Entities.FirstOrDefault(c => c.SerialNumber == model.SerialNumber.Trim());
         if (applicationForm == null)
         {
             throw new Exception();
         }
         applicationForm.SerialNumber    = model.SerialNumber;
         applicationForm.ProjectNumber   = model.ProjectNumber;
         applicationForm.TaskName        = model.TaskName;
         applicationForm.DepartmentName  = model.DepartmentName;
         applicationForm.RefundType      = model.RefundType;
         applicationForm.ProjectDirector = model.ProjectDirector;
         applicationForm.Agent           = model.Agent;
         applicationForm.PaymentType     = model.PaymentType;
         applicationForm.AuditStatus     = model.AuditStatus;
         applicationForm.SubmitTime      = model.SubmitTime;
         applicationForm.AuditTime       = model.AuditTime;
         applicationForm.AuditOpinion    = model.AuditOpinion;
         applicationForm.ApplyDesp       = model.ApplyDesp;
         applicationForm.Summation       = model.Summation;
         applicationForm.UserName        = model.UserName;
         applicationForm.UpdateDate      = DateTime.Now;
         _ApplicationFormRepository.Update(applicationForm);
         return(new OperationResult(OperationResultType.Success, "更新数据成功!"));
     }
     catch (Exception ex)
     {
         _log.Error("更新申请表数据失败", ex);
         return(new OperationResult(OperationResultType.Error, "更新数据失败!"));
     }
 }
        public ActionResult SubmitApplication([FromBody] ApplicationFormVM form)
        {
            var application = MapApplicationFormToApplication(this._db, form, asStaff: false);

            this._db.Add(application);
            this._db.SaveChanges();
            return(Json(form));
        }
Exemplo n.º 4
0
        public ActionResult Save(ApplicationFormVM formVM)
        {
            ApplicationForm form = _applicationFormService.ApplicationForms.FirstOrDefault(t => t.SerialNumber == formVM.SerialNumber);

            if (form == null)
            {
                formVM.SubmitTime = DateTime.Now;
                _applicationFormService.Insert(formVM);
            }
            else
            {
                form.UpdateDate = DateTime.Now;

                _applicationFormService.Update(formVM);
            }
            return(Json(new { }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult UpdateApplication([FromBody] ApplicationFormVM form)
        {
            var now = DateTime.UtcNow;

            using (var transaction = this._db.Database.BeginTransaction())
            {
                var newVersion = MapApplicationFormToApplication(this._db, form, asStaff: true);
                var oldVersion = this._db.StudentApplications.FirstOrDefault(a => a.StudentApplicationId == form.ApplicationId);
                this._db.Remove(oldVersion);
                this._db.SaveChanges();
                newVersion.StudentApplicationId = oldVersion.StudentApplicationId;
                this._db.Add(newVersion);
                this._db.SaveChanges();
                transaction.Commit();
            }

            return(new StatusCodeResult((int)HttpStatusCode.NoContent));
        }
Exemplo n.º 6
0
        public OperationResult Insert(ApplicationFormVM model)
        {
            try
            {
                ApplicationForm applicationForm = _ApplicationFormRepository.Entities.FirstOrDefault(c => c.SerialNumber == model.SerialNumber.Trim());
                if (applicationForm != null)
                {
                    return(new OperationResult(OperationResultType.Warning, "数据库中已经存在相同的申请单,请修改后重新提交!"));
                }
                if (model.ProjectNumber == null || model.ProjectNumber.Trim() == "")
                {
                    return(new OperationResult(OperationResultType.Warning, "课题编号不能为空,请修改后重新提交!"));
                }
                var entity = new ApplicationForm
                {
                    SerialNumber    = model.SerialNumber,
                    DepartmentName  = model.DepartmentName,
                    ProjectNumber   = model.ProjectNumber,
                    TaskName        = model.TaskName,
                    RefundType      = model.RefundType,
                    ProjectDirector = model.ProjectDirector,
                    PaymentType     = model.PaymentType,
                    Agent           = model.Agent,
                    AuditStatus     = model.AuditStatus,
                    SubmitTime      = model.SubmitTime,
                    AuditTime       = model.AuditTime,
                    AuditOpinion    = model.AuditOpinion,
                    ApplyDesp       = model.ApplyDesp,
                    Summation       = model.Summation,
                    UserName        = model.UserName,
                    UpdateDate      = DateTime.Now
                };
                _ApplicationFormRepository.Insert(entity);

                return(new OperationResult(OperationResultType.Success, "新增数据成功!"));
            }
            catch (Exception ex)
            {
                _log.Error("导入申请表数据失败", ex);
                return(new OperationResult(OperationResultType.Error, "新增数据失败,数据库插入数据时发生了错误!"));
            }
        }
Exemplo n.º 7
0
        // POST: /App/ApplyForm/Create/
        public ActionResult Create()
        {
            //申请单流水号
            var timeNow = System.DateTime.Now;

            string userid       = ((System.Web.Security.FormsIdentity)(System.Web.HttpContext.Current.User.Identity)).Ticket.UserData;
            var    serialNumber = String.Format("S{0}_{1}", userid, timeNow.ToString("yyyyMMddHHmmssffff"));

            //获取登录用户名
            //string userid = ((System.Web.Security.FormsIdentity)(System.Web.HttpContext.Current.User.Identity)).Ticket.UserData;
            var  userID = Int32.Parse(userid);
            User user   = this._userService.Users.FirstOrDefault(t => t.Id == userID);

            var model = new ApplicationFormVM()
            {
                SerialNumber = serialNumber,
                AuditStatus  = "待提交",
                SubmitTime   = DateTime.Now,
                UserName     = user.UserName
            };

            return(PartialView(model));
        }
        private static StudentApplication MapApplicationFormToApplication(ExchangeDbContext db, ApplicationFormVM form, bool asStaff)
        {
            var now = DateTime.UtcNow;
            Func <String, UWAUnitLevel?> parseUnitLevel = (label) => {
                object level;
                if (Enum.TryParse(typeof(UWAUnitLevel), label, true, out level))
                {
                    return((UWAUnitLevel?)level);
                }
                return((UWAUnitLevel?)null);
            };

            var newApplication = new StudentApplication
            {
                SubmittedAt               = now,
                LastUpdatedAt             = now,
                StudentName               = form.StudentDetailsForm.Name,
                StudentNumber             = form.StudentDetailsForm.Email,
                Major1st                  = form.StudentDetailsForm.Major,
                Major2nd                  = form.StudentDetailsForm.Major2nd,
                StudentOffice             = form.StudentDetailsForm.StudentOffice?.Value,
                ExchangeUniversityCountry = form.ExchangeUniversityForm.UniversityCountry,
                ExchangeUniversityName    = form.ExchangeUniversityForm.UniversityName,
                ExchangeUniversityHref    = form.ExchangeUniversityForm.UniversityHomepage,
                UnitSets                  = form.UnitSetForms.Select(f => new UnitSet
                {
                    ExchangeUniversityCountry = form.ExchangeUniversityForm.UniversityCountry,
                    ExchangeUniversityName    = form.ExchangeUniversityForm.UniversityName,
                    ExchangeUniversityHref    = form.ExchangeUniversityForm.UniversityHomepage,
                    IsEquivalent = asStaff
                        ? f.StaffApprovalForm.IsEquivalent.Value
                        : (bool?)null,
                    IsContextuallyApproved = asStaff
                        ? f.StaffApprovalForm.IsContextuallyApproved.Value
                        : (bool?)null,
                    EquivalentUWAUnitLevel = asStaff
                        ? parseUnitLevel(f.StaffApprovalForm.EquivalentUnitLevel.Label)
                        : (UWAUnitLevel?)null,
                    ExchangeUnits = f.ExchangeUnitForms.Select(u => new ExchangeUnit
                    {
                        Code  = u.UnitCode,
                        Title = u.UnitName,
                        Href  = u.UnitHref
                    }).ToList(),
                    UWAUnits = f.UWAUnitForms?.Select(u => new UWAUnit
                    {
                        Code  = u.UnitCode,
                        Title = u.UnitName,
                        Href  = u.UnitHref
                    }).ToList() ?? new List <UWAUnit>(),
                    Comments = f.StaffApprovalForm.Comments
                }).ToList(),
            };

            /* Calculate the status of the application */
            newApplication.Status = MapUnitSetsToStatus(newApplication.UnitSets);
            /* Preserve when the student submitted the application */
            if (asStaff && form.ApplicationId.HasValue)
            {
                var oldApplication = db.StudentApplications.FirstOrDefault(a => a.StudentApplicationId == form.ApplicationId);
                if (oldApplication != null)
                {
                    newApplication.SubmittedAt = oldApplication.SubmittedAt;
                }
            }
            return(newApplication);
        }
Exemplo n.º 9
0
        public ActionResult ApplyAudit(ApplicationFormVM formVM)
        {
            bool hasAudit      = false;
            var  serialNumbers = Session["AuditSerials"] as String[];

            foreach (var serialNumber in serialNumbers)
            {
                ApplicationForm form = _applicationFormService.ApplicationForms.FirstOrDefault(t => t.SerialNumber == serialNumber);
                if (form != null)
                {
                    if (form.AuditStatus.Equals("审核通过") && formVM.AuditStatus.Equals("审核通过"))
                    {
                        continue;
                    }

                    form.AuditStatus = formVM.AuditStatus;
                    if (!string.IsNullOrEmpty(formVM.AuditOpinion))
                    {
                        form.AuditOpinion = formVM.AuditOpinion;
                        form.AuditTime    = DateTime.Now;
                    }

                    hasAudit = true;
                    //若审核通过,开始算税,单笔税保存在TaxPerOrder表
                    if (formVM.AuditStatus.Equals("审核通过"))
                    {
                        List <PersonalRecord> records     = GetPersonalDatas(serialNumber);
                        TaxPerOrder           taxPerOrder = null;
                        //check totalsum is equal or not 20210108
                        //begin
                        int    equalFlag   = 0;
                        double sumTotalApp = form.Summation;
                        double sumTotalRec = 0.0;
                        if (records != null)
                        {
                            for (int c = 0; c < records.Count; c++)
                            {
                                sumTotalRec = sumTotalRec + records[c].Amount;
                            }
                        }
                        if (sumTotalApp == sumTotalRec)
                        {
                            equalFlag = 1;
                        }

                        //end
                        //check totalamonutY by projectnumber is available or not 20210509
                        //begin
                        string     pjNum               = form.ProjectNumber.Split('|')[0].Trim();
                        TaskManage taskManage          = _taskManageService.GetTaskByNumber(pjNum);
                        double     totalAmonutYByPjNum = _taxPerOrderService.GetTotalAmountYByPjNum(pjNum) + form.Summation;
                        if (taskManage != null && taskManage.Deficit != null)
                        {
                            if ("否".Equals(taskManage.Deficit.Trim()))
                            {
                                if (taskManage.AvailableFund - totalAmonutYByPjNum < 0)
                                {
                                    return(Json("availableFund insufficient,课题号为:" + form.ProjectNumber, JsonRequestBehavior.AllowGet));
                                    //return Json("availableFund insufficient", JsonRequestBehavior.AllowGet);
                                }
                            }
                        }
                        //end


                        if (equalFlag == 1)
                        {
                            if (records != null)
                            {
                                for (int i = 0; i < records.Count; i++)
                                {
                                    taxPerOrder = new TaxPerOrder();
                                    taxPerOrder.SerialNumber = form.SerialNumber;
                                    if (!String.IsNullOrEmpty(form.ProjectNumber) && !form.ProjectNumber.Equals("无"))
                                    {
                                        string[] projectSep = form.ProjectNumber.Split('|');
                                        taxPerOrder.ProjectNumber = projectSep[0].Trim();
                                        if (projectSep.Length > 1)
                                        {
                                            taxPerOrder.TaskName = projectSep[1].Trim();
                                        }
                                        else
                                        {
                                            taxPerOrder.TaskName = form.TaskName;
                                        }
                                    }
                                    else
                                    {
                                        taxPerOrder.ProjectNumber = "无";
                                        taxPerOrder.TaskName      = "无";
                                    }
                                    taxPerOrder.RefundType      = form.RefundType;
                                    taxPerOrder.ProjectDirector = form.ProjectDirector;
                                    taxPerOrder.Agent           = form.Agent;
                                    taxPerOrder.Name            = records[i].Name;
                                    taxPerOrder.PersonType      = records[i].PersonType;
                                    taxPerOrder.CertificateType = records[i].CertificateType;
                                    taxPerOrder.CertificateID   = records[i].CertificateID;
                                    taxPerOrder.Amount          = records[i].Amount;
                                    taxPerOrder.TaxOrNot        = records[i].TaxOrNot;
                                    taxPerOrder.Bank            = records[i].Bank;
                                    taxPerOrder.BankDetailName  = records[i].BankDetailName;
                                    taxPerOrder.ProvinceCity    = records[i].ProvinceCity;
                                    taxPerOrder.CityField       = records[i].CityField;
                                    taxPerOrder.AccountName     = records[i].AccountName;
                                    taxPerOrder.AccountNumber   = records[i].AccountNumber;
                                    taxPerOrder.PaymentType     = form.PaymentType;
                                    taxPerOrder.Tele            = records[i].Tele;
                                    _taxPerOrderService.Insert(taxPerOrder);
                                }
                            }
                        }
                        else
                        {
                            return(Json("sum error", JsonRequestBehavior.AllowGet));
                        }
                    }
                    else if (formVM.AuditStatus.Equals("已退回"))
                    {
                        //删除TaxPerOrder表中审核通过时的记录(主要是保证多次审核的情况,如第一次审核通过,发现问题,重新审核为退回)
                        _taxPerOrderService.DeleteBySerialNumber(serialNumber);
                    }
                    form.UpdateDate = DateTime.Now;
                    _applicationFormService.Update(form);
                }
            }
            Session.Remove("AuditSerials");

            if (hasAudit)
            {
                return(Json("sum success", JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json("no sum", JsonRequestBehavior.AllowGet));
            }
        }