public CustomJsonResult PrimaryAudit(int operater, Enumeration.OperateType operate, CarInsureCommissionRate commissionRate, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Submit:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, "初审完成,等待复审", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCommissionRateAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CommissionRateAuditStatus.WaitSeniorAudit, null);

                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult Dealt(int operater, Enumeration.OperateType operate, OrderToTalentDemand orderToTalentDemand, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.Id && (m.Status == (int)Enumeration.AuditFlowV1Status.WaitDealt || m.Status == (int)Enumeration.AuditFlowV1Status.InDealt)).FirstOrDefault();

                if (l_bizProcessesAudit == null)
                {
                    return(new CustomJsonResult(ResultType.Success, "该订单已经处理完成"));
                }

                if (l_bizProcessesAudit.Auditor != null)
                {
                    if (l_bizProcessesAudit.Auditor.Value != operater)
                    {
                        return(new CustomJsonResult(ResultType.Failure, "该订单其他用户正在处理"));
                    }
                }

                var l_orderToTalentDemand = CurrentDb.OrderToTalentDemand.Where(m => m.Id == orderToTalentDemand.Id).FirstOrDefault();

                l_orderToTalentDemand.Remarks = bizProcessesAudit.TempAuditComments;

                switch (operate)
                {
                case Enumeration.OperateType.Save:
                    BizFactory.BizProcessesAudit.SaveTempAuditComments(bizProcessesAudit.Id, operater, bizProcessesAudit.TempAuditComments);
                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Cancle:
                    l_orderToTalentDemand.Status     = Enumeration.OrderStatus.Cancled;
                    l_orderToTalentDemand.CancleTime = this.DateTime;
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.DealtFailure, operater, bizProcessesAudit.TempAuditComments, "订单处理失败");
                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;

                case Enumeration.OperateType.Reject:
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.DealtReject, operater, bizProcessesAudit.TempAuditComments, "订单处理驳回");
                    result = new CustomJsonResult(ResultType.Success, "提交成功");

                    break;

                case Enumeration.OperateType.Submit:
                    l_orderToTalentDemand.Status       = Enumeration.OrderStatus.Completed;
                    l_orderToTalentDemand.CompleteTime = this.DateTime;
                    l_orderToTalentDemand.FollowStatus = 1;
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.DealtSuccess, operater, bizProcessesAudit.TempAuditComments, "订单处理成功");
                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }
                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult Edit(int operater, Enumeration.OperateType operate, SysBanner pSysBanner)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var sysBanner = CurrentDb.SysBanner.Where(m => m.Id == pSysBanner.Id).FirstOrDefault();



                switch (operate)
                {
                case Enumeration.OperateType.Save:
                    sysBanner.Title          = pSysBanner.Title;
                    sysBanner.ImgUrl         = pSysBanner.ImgUrl;
                    sysBanner.Content        = pSysBanner.Content;
                    sysBanner.Source         = pSysBanner.Source;
                    sysBanner.LastUpdateTime = this.DateTime;
                    sysBanner.Mender         = operater;
                    if (sysBanner.Status != Enumeration.SysBannerStatus.Release)
                    {
                        sysBanner.Status = Enumeration.SysBannerStatus.Save;
                    }

                    result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功", sysBanner);
                    break;

                case Enumeration.OperateType.Cancle:

                    sysBanner.Status = Enumeration.SysBannerStatus.Cancle;

                    result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "撤销成功", sysBanner);
                    break;

                case Enumeration.OperateType.Submit:
                    sysBanner.Title          = pSysBanner.Title;
                    sysBanner.ImgUrl         = pSysBanner.ImgUrl;
                    sysBanner.Content        = pSysBanner.Content;
                    sysBanner.Source         = pSysBanner.Source;
                    sysBanner.LastUpdateTime = this.DateTime;
                    sysBanner.Mender         = operater;
                    sysBanner.Status         = Enumeration.SysBannerStatus.Release;

                    result = new CustomJsonResult(ResultType.Success, "发布成功");

                    break;
                }


                CurrentDb.SaveChanges();

                SysFactory.SysItemCacheUpdateTime.Update(Enumeration.SysItemCacheType.Banner);

                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult Verify(int operater, Enumeration.OperateType operate, OrderToApplyLossAssess orderToApplyLossAssess, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.Id & (m.Status == (int)Enumeration.AuditFlowV1Status.WaitVerify || m.Status == (int)Enumeration.AuditFlowV1Status.InVerify)).FirstOrDefault();

                if (l_bizProcessesAudit == null)
                {
                    return(new CustomJsonResult(ResultType.Success, "该订单已经核实完成"));
                }

                if (l_bizProcessesAudit.Auditor != null)
                {
                    if (l_bizProcessesAudit.Auditor.Value != operater)
                    {
                        return(new CustomJsonResult(ResultType.Failure, "该订单其他用户正在核实"));
                    }
                }


                var l_orderToApplyLossAssess = CurrentDb.OrderToApplyLossAssess.Where(m => m.Id == orderToApplyLossAssess.Id).FirstOrDefault();


                l_orderToApplyLossAssess.Remarks = bizProcessesAudit.TempAuditComments;

                switch (operate)
                {
                case Enumeration.OperateType.Save:
                    BizFactory.BizProcessesAudit.SaveTempAuditComments(bizProcessesAudit.Id, operater, bizProcessesAudit.TempAuditComments);
                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Cancle:
                    l_orderToApplyLossAssess.Status     = Enumeration.OrderStatus.Cancled;
                    l_orderToApplyLossAssess.CancleTime = this.DateTime;
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.VerifyIncorrect, operater, bizProcessesAudit.TempAuditComments, "核实订单无效");
                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;

                case Enumeration.OperateType.Submit:
                    l_orderToApplyLossAssess.FollowStatus = 1;
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.VerifyCorrect, operater, bizProcessesAudit.TempAuditComments, "核实订单正确,等待处理");
                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }

                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult SeniorAudit(int operater, Enumeration.OperateType operate, int merchantId, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Reject:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null, this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeMerchantAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.MerchantAuditStatus.SeniorAuditReject, null);

                    result = new CustomJsonResult(ResultType.Success, "驳回成功");
                    break;

                case Enumeration.OperateType.Submit:

                    var merchant = CurrentDb.Merchant.Where(m => m.Id == merchantId).FirstOrDefault();

                    merchant.Status = Enumeration.MerchantStatus.Filled;

                    var user = CurrentDb.SysClientUser.Where(m => m.Id == merchant.UserId).FirstOrDefault();

                    user.PhoneNumber = merchant.ContactPhoneNumber;

                    CurrentDb.SaveChanges();

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null, this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeMerchantAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.MerchantAuditStatus.SeniorAuditPass, this.DateTime);

                    result = new CustomJsonResult(ResultType.Success, "归档成功");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
Beispiel #6
0
        private void AddOperateHistory(int operater, Enumeration.OperateType operateType, int referenceId, string content)
        {
            SysOperateHistory operateHistory = new SysOperateHistory();

            operateHistory.UserId      = operater;
            operateHistory.ReferenceId = referenceId;
            operateHistory.Ip          = "";
            operateHistory.Type        = operateType;
            operateHistory.Content     = content;
            operateHistory.CreateTime  = DateTime.Now;
            operateHistory.Creator     = operater;
            _db.SysOperateHistory.Add(operateHistory);
            _db.SaveChanges();
        }
Beispiel #7
0
        private void AddOperateHistory(Enumeration.OperateType operateType, int referenceId, string content)
        {
            int userId = HttpContext.Current.GetOwinContext().Request.User.Identity.GetUserId <int>();
            SysOperateHistory operateHistory = new SysOperateHistory();

            operateHistory.UserId      = userId;
            operateHistory.ReferenceId = referenceId;
            operateHistory.Ip          = "";
            operateHistory.Type        = operateType;
            operateHistory.Content     = content;
            operateHistory.CreateTime  = DateTime.Now;
            operateHistory.Creator     = userId;
            _db.SysOperateHistory.Add(operateHistory);
            _db.SaveChanges();
        }
Beispiel #8
0
        private void AddOperateHistory(string pOperater, Enumeration.OperateType pOperateType, string pReferenceId, string pContent)
        {
            SysOperateHistory operateHistory = new SysOperateHistory();

            operateHistory.Id          = GuidUtil.New();
            operateHistory.UserId      = pOperater;
            operateHistory.ReferenceId = pReferenceId;
            operateHistory.Ip          = "";
            operateHistory.Type        = pOperateType;
            operateHistory.Content     = pContent;
            operateHistory.CreateTime  = DateTime.Now;
            operateHistory.Creator     = pOperater;
            _db.SysOperateHistory.Add(operateHistory);
            _db.SaveChanges();
        }
        public CustomJsonResult SeniorAudit(int operater, Enumeration.OperateType operate, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Reject:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null, this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeMerchantAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.MerchantAuditStatus.SeniorAuditReject, null);

                    result = new CustomJsonResult(ResultType.Success, "驳回成功");
                    break;

                case Enumeration.OperateType.Submit:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null, this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeMerchantAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.MerchantAuditStatus.SeniorAuditPass, this.DateTime);

                    result = new CustomJsonResult(ResultType.Success, "归档成功");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult Add(int operater, Enumeration.OperateType operate, SysBanner sysBanner)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                sysBanner.CreateTime = this.DateTime;
                sysBanner.Creator    = operater;


                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    sysBanner.Status = Enumeration.SysBannerStatus.Save;

                    result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功", sysBanner);
                    break;

                case Enumeration.OperateType.Submit:

                    sysBanner.Status = Enumeration.SysBannerStatus.Release;

                    result = new CustomJsonResult(ResultType.Success, "发布成功");

                    break;
                }


                CurrentDb.SysBanner.Add(sysBanner);
                CurrentDb.SaveChanges();

                SysFactory.SysItemCacheUpdateTime.Update(Enumeration.SysItemCacheType.Banner);

                ts.Complete();
            }

            return(result);
        }
Beispiel #11
0
        public CustomJsonResult VerifyClaimOrder(int operater, Enumeration.OperateType operate, OrderToCarClaim orderToCarClaim, int estimateMerchantId, string estimateMerchantRemarks, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.CurrentDetails.BizProcessesAuditId && (m.Status == (int)Enumeration.CarInsureOfferDealtStatus.WaitOffer || m.Status == (int)Enumeration.CarInsureOfferDealtStatus.InOffer)).FirstOrDefault();

                if (bizProcessesAudit == null)
                {
                    return(new CustomJsonResult(ResultType.Success, "该订单已经处理完成"));
                }

                if (bizProcessesAudit.Auditor != null)
                {
                    if (bizProcessesAudit.Auditor.Value != operater)
                    {
                        return(new CustomJsonResult(ResultType.Failure, "该订单其他用户正在处理"));
                    }
                }


                var l_orderToCarClaim = CurrentDb.OrderToCarClaim.Where(m => m.Id == orderToCarClaim.Id).FirstOrDefault();
                l_orderToCarClaim.HandMerchantId   = estimateMerchantId;
                l_orderToCarClaim.HandMerchantType = Enumeration.MerchantType.CarRepair;
                l_orderToCarClaim.Remarks          = orderToCarClaim.Remarks;

                bizProcessesAudit.CurrentDetails.AuditComments = orderToCarClaim.Remarks;

                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    result = new CustomJsonResult(ResultType.Success, "保存成功");

                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyOrder, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    break;

                case Enumeration.OperateType.Cancle:

                    l_orderToCarClaim.Status     = Enumeration.OrderStatus.Cancled;
                    l_orderToCarClaim.CancleTime = this.DateTime;

                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyOrder, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员撤销订单", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.StaffCancle);

                    result = new CustomJsonResult(ResultType.Success, "撤销成功");

                    break;

                case Enumeration.OperateType.Submit:

                    l_orderToCarClaim.Status = Enumeration.OrderStatus.Follow;

                    l_orderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitEstimate;


                    var merchant = CurrentDb.Merchant.Where(m => m.Id == l_orderToCarClaim.HandMerchantId).FirstOrDefault();

                    var estimateOrderToCarClaim = new OrderToCarClaim();
                    estimateOrderToCarClaim.RepairsType          = l_orderToCarClaim.RepairsType;
                    estimateOrderToCarClaim.MerchantId           = merchant.Id;
                    estimateOrderToCarClaim.PosMachineId         = l_orderToCarClaim.PosMachineId;
                    estimateOrderToCarClaim.UserId               = merchant.UserId;
                    estimateOrderToCarClaim.HandPerson           = l_orderToCarClaim.HandPerson;
                    estimateOrderToCarClaim.HandPersonPhone      = l_orderToCarClaim.HandPersonPhone;
                    estimateOrderToCarClaim.InsuranceCompanyId   = l_orderToCarClaim.InsuranceCompanyId;
                    estimateOrderToCarClaim.InsuranceCompanyName = l_orderToCarClaim.InsuranceCompanyName;
                    estimateOrderToCarClaim.CarPlateNo           = l_orderToCarClaim.CarPlateNo;
                    estimateOrderToCarClaim.Status               = Enumeration.OrderStatus.Follow;
                    estimateOrderToCarClaim.FollowStatus         = (int)Enumeration.OrderToCarClaimFollowStatus.WaitUploadEstimateList;
                    estimateOrderToCarClaim.SubmitTime           = this.DateTime;
                    estimateOrderToCarClaim.Creator              = operater;
                    estimateOrderToCarClaim.CreateTime           = this.DateTime;

                    estimateOrderToCarClaim.HandMerchantId   = l_orderToCarClaim.MerchantId;
                    estimateOrderToCarClaim.HandMerchantType = Enumeration.MerchantType.CarSales;
                    estimateOrderToCarClaim.Remarks          = estimateMerchantRemarks;//告知维修厂备注


                    estimateOrderToCarClaim.ProductId     = l_orderToCarClaim.ProductId;
                    estimateOrderToCarClaim.ProductName   = l_orderToCarClaim.ProductName;
                    estimateOrderToCarClaim.ProductType   = l_orderToCarClaim.ProductType;
                    estimateOrderToCarClaim.PId           = l_orderToCarClaim.Id;
                    estimateOrderToCarClaim.ClientRequire = l_orderToCarClaim.ClientRequire;
                    CurrentDb.OrderToCarClaim.Add(estimateOrderToCarClaim);
                    estimateOrderToCarClaim.Sn = Sn.Build(SnType.CarClaim, estimateOrderToCarClaim.Id);


                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyOrder, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员派单完成", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCarClaimDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarClaimDealtStatus.FllowUploadEstimateListImg, "等待商户上传定损单");

                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }



                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public void ChangeAuditDetails(Enumeration.OperateType operate, object auditStep, int bizProcessesAuditId, int operater, string auditComments, string description, DateTime?auditTime = null)
        {
            DateTime nowDate           = DateTime.Now;
            var      bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAuditId).FirstOrDefault();

            if (bizProcessesAudit != null)
            {
                if (bizProcessesAudit.EndTime == null)
                {
                    var detailsHistory = CurrentDb.BizProcessesAuditDetails.Where(m => m.AuditStep == (int)auditStep && m.BizProcessesAuditId == bizProcessesAudit.Id).OrderByDescending(m => m.CreateTime).Take(1).FirstOrDefault();
                    if (detailsHistory == null)
                    {
                        detailsHistory           = new BizProcessesAuditDetails();
                        detailsHistory.AuditStep = (int)auditStep;
                        string suditStepenumName = "" + auditStep.GetType().FullName + ", Lumos.Entity";
                        detailsHistory.AuditStepEnumName   = suditStepenumName;
                        detailsHistory.BizProcessesAuditId = bizProcessesAuditId;
                        detailsHistory.Auditor             = operater;
                        detailsHistory.AuditComments       = auditComments;
                        detailsHistory.Description         = description;
                        if (operate != Enumeration.OperateType.Save)
                        {
                            detailsHistory.AuditTime = nowDate;
                            detailsHistory.EndTime   = nowDate;
                        }
                        detailsHistory.StartTime  = nowDate;
                        detailsHistory.CreateTime = nowDate;
                        detailsHistory.Creator    = operater;
                        CurrentDb.BizProcessesAuditDetails.Add(detailsHistory);
                    }
                    else
                    {
                        if (detailsHistory.AuditTime == null)
                        {
                            detailsHistory.Auditor       = operater;
                            detailsHistory.AuditComments = auditComments;
                            detailsHistory.Description   = description;
                            if (operate != Enumeration.OperateType.Save)
                            {
                                detailsHistory.AuditTime = nowDate;
                                detailsHistory.EndTime   = nowDate;
                            }
                            detailsHistory.LastUpdateTime = nowDate;
                            detailsHistory.Mender         = operater;
                        }
                        else
                        {
                            detailsHistory           = new BizProcessesAuditDetails();
                            detailsHistory.AuditStep = (int)auditStep;
                            string suditStepenumName = "" + auditStep.GetType().FullName + ", Lumos.Entity";
                            detailsHistory.AuditStepEnumName   = suditStepenumName;
                            detailsHistory.BizProcessesAuditId = bizProcessesAuditId;
                            detailsHistory.Auditor             = operater;
                            detailsHistory.AuditComments       = auditComments;
                            detailsHistory.Description         = description;
                            if (operate != Enumeration.OperateType.Save)
                            {
                                detailsHistory.AuditTime = nowDate;
                                detailsHistory.EndTime   = nowDate;
                            }
                            detailsHistory.StartTime  = nowDate;
                            detailsHistory.CreateTime = nowDate;
                            detailsHistory.Creator    = operater;
                            CurrentDb.BizProcessesAuditDetails.Add(detailsHistory);
                        }
                    }


                    CurrentDb.SaveChanges();
                }
            }
        }
        public CustomJsonResult SeniorAudit(int operater, Enumeration.OperateType operate, CarInsureCommissionRate commissionRate, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.CurrentDetails.BizProcessesAuditId).FirstOrDefault();

            var carInsureCommissionRate = CurrentDb.CarInsureCommissionRate.Where(m => m.Id == l_bizProcessesAudit.AduitReferenceId).FirstOrDefault();

            var carInsuranceCompany = CurrentDb.CarInsuranceCompany.Where(m => m.InsuranceCompanyId == carInsureCommissionRate.ReferenceId).FirstOrDefault();

            using (TransactionScope ts = new TransactionScope())
            {
                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Refuse:


                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, "复审完成,审核拒绝", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCommissionRateAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CommissionRateAuditStatus.SeniorAuditRefuse, null, this.DateTime);

                    result = new CustomJsonResult(ResultType.Success, "拒绝成功");
                    break;

                case Enumeration.OperateType.Pass:

                    var commissionRateAdjustModel = Newtonsoft.Json.JsonConvert.DeserializeObject <CommissionRateAdjustModel>(l_bizProcessesAudit.JsonData);

                    var l_commissionRate = CurrentDb.CarInsureCommissionRate.Where(m => m.Id == l_bizProcessesAudit.AduitReferenceId).FirstOrDefault();
                    l_commissionRate.Commercial     = commissionRateAdjustModel.After.Commercial;
                    l_commissionRate.Compulsory     = commissionRateAdjustModel.After.Compulsory;
                    l_commissionRate.LastUpdateTime = this.DateTime;
                    l_commissionRate.Mender         = operater;

                    if (carInsuranceCompany.Status == Enumeration.CarInsuranceCompanyStatus.Audit)
                    {
                        carInsuranceCompany.Status         = Enumeration.CarInsuranceCompanyStatus.Normal;
                        carInsuranceCompany.LastUpdateTime = this.DateTime;
                        carInsuranceCompany.Mender         = operater;
                    }

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, "复审完成,审核通过", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCommissionRateAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CommissionRateAuditStatus.SeniorAuditPass, null, this.DateTime);

                    result = new CustomJsonResult(ResultType.Success, "审核通过");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
Beispiel #14
0
        public CustomJsonResult VerifyClaimAmount(int operater, Enumeration.OperateType operate, OrderToCarClaim orderToCarClaim, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                //var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.CurrentDetails.BizProcessesAuditId && (m.Status == (int)Enumeration.CarInsureOfferDealtStatus.WaitOffer || m.Status == (int)Enumeration.CarInsureOfferDealtStatus.InOffer)).FirstOrDefault();

                //if (bizProcessesAudit == null)
                //{
                //    return new CustomJsonResult(ResultType.Success, "该订单已经处理完成");
                //}

                //if (bizProcessesAudit.Auditor != null)
                //{
                //    if (bizProcessesAudit.Auditor.Value != operater)
                //    {
                //        return new CustomJsonResult(ResultType.Failure, "该订单其他用户正在处理");
                //    }
                //}


                var l_orderToCarClaim = CurrentDb.OrderToCarClaim.Where(m => m.Id == orderToCarClaim.Id).FirstOrDefault();
                l_orderToCarClaim.WorkingHoursPrice = orderToCarClaim.WorkingHoursPrice;
                l_orderToCarClaim.AccessoriesPrice  = orderToCarClaim.AccessoriesPrice;
                l_orderToCarClaim.EstimatePrice     = orderToCarClaim.WorkingHoursPrice + orderToCarClaim.AccessoriesPrice;
                l_orderToCarClaim.Remarks           = orderToCarClaim.Remarks;


                //bizProcessesAudit.CurrentDetails.AuditComments = orderToCarClaim.Remarks;
                var estimateOrderToCarClaim = CurrentDb.OrderToCarClaim.Where(m => m.PId == orderToCarClaim.Id).FirstOrDefault();
                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    result = new CustomJsonResult(ResultType.Success, "保存成功");

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    break;

                case Enumeration.OperateType.Cancle:

                    l_orderToCarClaim.Status     = Enumeration.OrderStatus.Cancled;
                    l_orderToCarClaim.CancleTime = this.DateTime;

                    estimateOrderToCarClaim.Status     = Enumeration.OrderStatus.Cancled;
                    estimateOrderToCarClaim.CancleTime = this.DateTime;

                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyAmount, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员撤销订单", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCarClaimDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarClaimDealtStatus.StaffCancle);

                    result = new CustomJsonResult(ResultType.Success, "撤销成功");

                    break;

                case Enumeration.OperateType.Submit:


                    estimateOrderToCarClaim.WorkingHoursPrice = l_orderToCarClaim.WorkingHoursPrice;
                    estimateOrderToCarClaim.AccessoriesPrice  = l_orderToCarClaim.AccessoriesPrice;


                    CalculateCarClaimPayPrice calculateCarClaimPayPrice = new CalculateCarClaimPayPrice(l_orderToCarClaim.WorkingHoursPrice, l_orderToCarClaim.AccessoriesPrice);

                    estimateOrderToCarClaim.EstimatePrice = l_orderToCarClaim.EstimatePrice;
                    estimateOrderToCarClaim.Remarks       = orderToCarClaim.Remarks;


                    if (l_orderToCarClaim.RepairsType == Enumeration.RepairsType.EstimateRepair)
                    {
                        l_orderToCarClaim.Status       = Enumeration.OrderStatus.Follow;
                        l_orderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission;
                        l_orderToCarClaim.Price        = 0;


                        estimateOrderToCarClaim.Status       = Enumeration.OrderStatus.WaitPay;
                        estimateOrderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission;
                        estimateOrderToCarClaim.Price        = calculateCarClaimPayPrice.PayPrice;//应付金额
                    }
                    else if (l_orderToCarClaim.RepairsType == Enumeration.RepairsType.Estimate)
                    {
                        l_orderToCarClaim.Status       = Enumeration.OrderStatus.WaitPay;
                        l_orderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission;
                        l_orderToCarClaim.Price        = calculateCarClaimPayPrice.PayPrice;//应付金额

                        estimateOrderToCarClaim.Status       = Enumeration.OrderStatus.Follow;
                        estimateOrderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission;
                        estimateOrderToCarClaim.Price        = 0;
                    }

                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyAmount, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, "复核金额完成,提交给商户支付", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCarClaimDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarClaimDealtStatus.Complete, "复核金额完成,提交给商户支付");


                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }



                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult Verify(int operater, Enumeration.OperateType operate, OrderToLllegalDealt orderToLllegalDealt, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.Id && (m.Status == (int)Enumeration.AuditFlowV1Status.WaitVerify || m.Status == (int)Enumeration.AuditFlowV1Status.InVerify)).FirstOrDefault();

                if (bizProcessesAudit == null)
                {
                    return(new CustomJsonResult(ResultType.Success, "该订单已经核实完成"));
                }

                if (bizProcessesAudit.Auditor != null)
                {
                    if (bizProcessesAudit.Auditor.Value != operater)
                    {
                        return(new CustomJsonResult(ResultType.Failure, "该订单其他用户正在核实"));
                    }
                }


                var l_orderToLllegalDealt = CurrentDb.OrderToLllegalDealt.Where(m => m.Id == orderToLllegalDealt.Id).FirstOrDefault();


                l_orderToLllegalDealt.Remarks = bizProcessesAudit.TempAuditComments;

                switch (operate)
                {
                case Enumeration.OperateType.Save:
                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    BizFactory.BizProcessesAudit.SaveTempAuditComments(bizProcessesAudit.Id, operater, bizProcessesAudit.TempAuditComments);
                    break;

                case Enumeration.OperateType.Cancle:
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.VerifyIncorrect, operater, bizProcessesAudit.TempAuditComments, "核实订单无效");

                    result = new CustomJsonResult(ResultType.Success, "提交成功");

                    break;

                case Enumeration.OperateType.Submit:
                    l_orderToLllegalDealt.Status         = Enumeration.OrderStatus.Completed;
                    l_orderToLllegalDealt.PayTime        = this.DateTime;
                    l_orderToLllegalDealt.IsManVerifyPay = true;

                    var orderToLllegalDealtDetails = CurrentDb.OrderToLllegalDealtDetails.Where(m => m.OrderId == l_orderToLllegalDealt.Id).ToList();
                    if (orderToLllegalDealtDetails != null)
                    {
                        foreach (var item in orderToLllegalDealtDetails)
                        {
                            item.Status = Enumeration.OrderToLllegalDealtDetailsStatus.InDealt;
                            CurrentDb.SaveChanges();
                        }
                    }
                    BizFactory.BizProcessesAudit.ChangeStatusByAuditFlowV1(bizProcessesAudit.Id, Enumeration.AuditFlowV1Status.VerifyCorrect, operater, bizProcessesAudit.TempAuditComments, "核实订单正确,等待处理");
                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }

                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
Beispiel #16
0
        public CustomJsonResult SubmitCarInsureOffer(int operater, Enumeration.OperateType operate, OrderToCarInsure orderToCarInsure, List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompany, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.CurrentDetails.BizProcessesAuditId && (m.Status == (int)Enumeration.CarInsureOfferDealtStatus.WaitOffer || m.Status == (int)Enumeration.CarInsureOfferDealtStatus.InOffer)).FirstOrDefault();

                if (l_bizProcessesAudit == null)
                {
                    return(new CustomJsonResult(ResultType.Success, "该订单已经处理完成"));
                }

                if (l_bizProcessesAudit.Auditor != null)
                {
                    if (l_bizProcessesAudit.Auditor.Value != operater)
                    {
                        return(new CustomJsonResult(ResultType.Failure, "该订单其他用户正在处理"));
                    }
                }

                var l_orderToCarInsure = CurrentDb.OrderToCarInsure.Where(m => m.Id == orderToCarInsure.Id).FirstOrDefault();

                if (l_orderToCarInsure.Status == Enumeration.OrderStatus.Cancled)
                {
                    return(new CustomJsonResult(ResultType.Failure, "该订单已经被取消"));
                }


                l_orderToCarInsure.CarOwner         = orderToCarInsure.CarOwner;
                l_orderToCarInsure.CarOwnerIdNumber = orderToCarInsure.CarOwnerIdNumber;
                l_orderToCarInsure.CarOwnerAddress  = orderToCarInsure.CarOwnerAddress;
                l_orderToCarInsure.CarPlateNo       = orderToCarInsure.CarPlateNo;
                l_orderToCarInsure.CarRegisterDate  = orderToCarInsure.CarRegisterDate;
                l_orderToCarInsure.CarIssueDate     = orderToCarInsure.CarIssueDate;
                l_orderToCarInsure.CarSeat          = orderToCarInsure.CarSeat;
                l_orderToCarInsure.CarUserCharacter = orderToCarInsure.CarUserCharacter;
                l_orderToCarInsure.CarVin           = orderToCarInsure.CarVin;
                l_orderToCarInsure.CarVechicheType  = orderToCarInsure.CarVechicheType;
                l_orderToCarInsure.CarModel         = orderToCarInsure.CarModel;
                l_orderToCarInsure.CarEngineNo      = orderToCarInsure.CarEngineNo;


                l_orderToCarInsure.PeriodStart = orderToCarInsure.PeriodStart;
                if (orderToCarInsure.PeriodStart != null)
                {
                    l_orderToCarInsure.PeriodEnd = orderToCarInsure.PeriodStart.Value.AddYears(1);
                }
                l_orderToCarInsure.Remarks        = orderToCarInsure.Remarks;
                l_orderToCarInsure.LastUpdateTime = this.DateTime;
                l_orderToCarInsure.Mender         = operater;



                bizProcessesAudit.CurrentDetails.AuditComments = orderToCarInsure.Remarks;



                foreach (var m in orderToCarInsureOfferCompany)
                {
                    var l_orderToCarInsureOfferCompany = CurrentDb.OrderToCarInsureOfferCompany.Where(q => q.Id == m.Id).FirstOrDefault();
                    if (l_orderToCarInsureOfferCompany != null)
                    {
                        l_orderToCarInsureOfferCompany.InsuranceOrderId = m.InsuranceOrderId;
                        l_orderToCarInsureOfferCompany.InsureImgUrl     = m.InsureImgUrl;
                        l_orderToCarInsureOfferCompany.CommercialPrice  = m.CommercialPrice;
                        l_orderToCarInsureOfferCompany.CompulsoryPrice  = m.CompulsoryPrice;
                        l_orderToCarInsureOfferCompany.TravelTaxPrice   = m.TravelTaxPrice;

                        decimal insureTotalPrice = 0;
                        if (l_orderToCarInsureOfferCompany.CommercialPrice != null)
                        {
                            insureTotalPrice += l_orderToCarInsureOfferCompany.CommercialPrice.Value;
                        }

                        if (l_orderToCarInsureOfferCompany.CompulsoryPrice != null)
                        {
                            insureTotalPrice += l_orderToCarInsureOfferCompany.CompulsoryPrice.Value;
                        }

                        if (l_orderToCarInsureOfferCompany.TravelTaxPrice != null)
                        {
                            insureTotalPrice += l_orderToCarInsureOfferCompany.TravelTaxPrice.Value;
                        }

                        l_orderToCarInsureOfferCompany.InsureTotalPrice = insureTotalPrice;

                        l_orderToCarInsureOfferCompany.LastUpdateTime = this.DateTime;
                        l_orderToCarInsureOfferCompany.Mender         = operater;
                    }
                }

                if (l_orderToCarInsure.ProductType == Enumeration.ProductType.InsureForCarForRenewal)
                {
                    if (orderToCarInsureOfferCompany.Count == 1)
                    {
                        var     insuranceOrderId = orderToCarInsureOfferCompany[0].InsuranceOrderId;
                        var     insureImgUrl     = orderToCarInsureOfferCompany[0].InsureImgUrl;
                        var     commercialPrice  = orderToCarInsureOfferCompany[0].CommercialPrice;
                        var     compulsoryPrice  = orderToCarInsureOfferCompany[0].CompulsoryPrice;
                        var     travelTaxPrice   = orderToCarInsureOfferCompany[0].TravelTaxPrice;
                        decimal insureTotalPrice = 0;
                        if (orderToCarInsureOfferCompany[0].CommercialPrice != null)
                        {
                            insureTotalPrice += orderToCarInsureOfferCompany[0].CommercialPrice.Value;
                        }

                        if (orderToCarInsureOfferCompany[0].CompulsoryPrice != null)
                        {
                            insureTotalPrice += orderToCarInsureOfferCompany[0].CompulsoryPrice.Value;
                        }

                        if (orderToCarInsureOfferCompany[0].TravelTaxPrice != null)
                        {
                            insureTotalPrice += orderToCarInsureOfferCompany[0].TravelTaxPrice.Value;
                        }


                        l_orderToCarInsure.InsuranceOrderId = insuranceOrderId;
                        l_orderToCarInsure.InsureImgUrl     = insureImgUrl;
                        l_orderToCarInsure.CommercialPrice  = commercialPrice == null ? 0 : commercialPrice.Value;
                        l_orderToCarInsure.TravelTaxPrice   = travelTaxPrice == null ? 0 : travelTaxPrice.Value;
                        l_orderToCarInsure.CompulsoryPrice  = compulsoryPrice == null ? 0 : compulsoryPrice.Value;
                        l_orderToCarInsure.Price            = insureTotalPrice;
                    }
                }

                var creator = CurrentDb.Users.Where(m => m.Id == l_orderToCarInsure.Creator).FirstOrDefault();

                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    result = new CustomJsonResult(ResultType.Success, "保存成功");

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    break;

                case Enumeration.OperateType.Reject:

                    l_orderToCarInsure.Status       = Enumeration.OrderStatus.Follow;
                    l_orderToCarInsure.FollowStatus = (int)Enumeration.OrderToCarInsureFollowStatus.WaitSubmit;

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员转给商户跟进", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.ClientFllow, "商户正在跟进");

                    BizFactory.Sms.SendCarInsureOfferFollow(creator.Id, creator.PhoneNumber, l_orderToCarInsure.Sn);

                    result = new CustomJsonResult(ResultType.Success, "转给客户跟进成功");

                    break;

                case Enumeration.OperateType.Cancle:

                    l_orderToCarInsure.CancleTime   = this.DateTime;
                    l_orderToCarInsure.EndOfferTime = this.DateTime;
                    l_orderToCarInsure.Status       = Enumeration.OrderStatus.Cancled;


                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarInsureOfferDealtStep.Offer, bizProcessesAudit.CurrentDetails.Id, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员撤销订单", this.DateTime);


                    BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.StaffCancle);

                    result = new CustomJsonResult(ResultType.Success, "撤销成功");

                    break;

                case Enumeration.OperateType.Submit:

                    l_orderToCarInsure.EndOfferTime = this.DateTime;
                    l_orderToCarInsure.Status       = Enumeration.OrderStatus.WaitPay;


                    BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarInsureOfferDealtStep.Offer, bizProcessesAudit.CurrentDetails.Id, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员完成报价", this.DateTime);
                    BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.Complete);

                    BizFactory.Sms.SendCarInsureOfferComplete(creator.Id, creator.PhoneNumber, l_orderToCarInsure.Sn, l_orderToCarInsure.CarOwner, l_orderToCarInsure.CarPlateNo);

                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult PrimaryAudit(int operater, Enumeration.OperateType operate, Merchant merchant, int[] estimateInsuranceCompanyIds, List <MerchantPosMachine> merchantPosMachine, List <BankCard> bankCard, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_Merchant = CurrentDb.Merchant.Where(m => m.Id == merchant.Id).FirstOrDefault();
                if (l_Merchant == null)
                {
                    return(new CustomJsonResult(ResultType.Failure, "不存在该商户"));
                }

                l_Merchant.SalesmanId = merchant.SalesmanId;
                l_Merchant.Type       = merchant.Type;
                if (l_Merchant.Type == Enumeration.MerchantType.CarRepair)
                {
                    l_Merchant.RepairCapacity = merchant.RepairCapacity;
                }
                else
                {
                    l_Merchant.RepairCapacity = Enumeration.RepairCapacity.NoRepair;
                }

                l_Merchant.ContactName               = merchant.ContactName;
                l_Merchant.ContactPhoneNumber        = merchant.ContactPhoneNumber;
                l_Merchant.ContactAddress            = merchant.ContactAddress;
                l_Merchant.YYZZ_Name                 = merchant.YYZZ_Name;
                l_Merchant.YYZZ_RegisterNo           = merchant.YYZZ_RegisterNo;
                l_Merchant.YYZZ_Type                 = merchant.YYZZ_Type;
                l_Merchant.YYZZ_Address              = merchant.YYZZ_Address;
                l_Merchant.YYZZ_OperatingPeriodStart = merchant.YYZZ_OperatingPeriodStart;
                l_Merchant.YYZZ_OperatingPeriodEnd   = merchant.YYZZ_OperatingPeriodEnd;

                l_Merchant.FR_Name             = merchant.FR_Name;
                l_Merchant.FR_IdCardNo         = merchant.FR_IdCardNo;
                l_Merchant.FR_Birthdate        = merchant.FR_Birthdate;
                l_Merchant.FR_Address          = merchant.FR_Address;
                l_Merchant.FR_IssuingAuthority = merchant.FR_IssuingAuthority;
                l_Merchant.FR_ValidPeriodStart = merchant.FR_ValidPeriodEnd;
                l_Merchant.FR_ValidPeriodEnd   = merchant.FR_ValidPeriodEnd;

                if (string.IsNullOrEmpty(merchant.AreaCode))
                {
                    l_Merchant.Area     = null;
                    l_Merchant.AreaCode = null;
                }
                else
                {
                    l_Merchant.Area     = merchant.Area;
                    l_Merchant.AreaCode = merchant.AreaCode;
                }

                l_Merchant.LastUpdateTime = this.DateTime;
                l_Merchant.Mender         = operater;



                var removeMerchantEstimateCompany = CurrentDb.MerchantEstimateCompany.Where(m => m.MerchantId == l_Merchant.Id).ToList();
                foreach (var m in removeMerchantEstimateCompany)
                {
                    CurrentDb.MerchantEstimateCompany.Remove(m);
                }

                if (estimateInsuranceCompanyIds != null)
                {
                    foreach (var m in estimateInsuranceCompanyIds)
                    {
                        MerchantEstimateCompany merchantEstimateCompany = new MerchantEstimateCompany();
                        merchantEstimateCompany.InsuranceCompanyId = m;
                        merchantEstimateCompany.MerchantId         = l_Merchant.Id;
                        CurrentDb.MerchantEstimateCompany.Add(merchantEstimateCompany);
                    }
                }


                //foreach (var m in merchantPosMachine)
                //{
                //    var l_MerchantPosMachine = CurrentDb.MerchantPosMachine.Where(q => q.Id == q.Id && q.MerchantId == l_Merchant.Id).FirstOrDefault();
                //    if (l_MerchantPosMachine != null)
                //    {
                //        l_MerchantPosMachine.Deposit = m.Deposit;
                //        l_MerchantPosMachine.Rent = m.Rent;
                //        l_MerchantPosMachine.Mender = operater;
                //        l_MerchantPosMachine.LastUpdateTime = this.DateTime;
                //        CurrentDb.SaveChanges();
                //    }
                //}


                foreach (var m in bankCard)
                {
                    var l_BankCard = CurrentDb.BankCard.Where(q => q.Id == q.Id && q.MerchantId == l_Merchant.Id).FirstOrDefault();
                    if (l_BankCard != null)
                    {
                        l_BankCard.BankAccountName = m.BankAccountName;
                        l_BankCard.BankAccountNo   = m.BankAccountNo;
                        l_BankCard.BankName        = m.BankName;
                        l_BankCard.Mender          = operater;
                        l_BankCard.LastUpdateTime  = this.DateTime;
                        CurrentDb.SaveChanges();
                    }
                }

                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Submit:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null, this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeMerchantAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.MerchantAuditStatus.WaitSeniorAudit);

                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }