Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        public CustomJsonResult SubmitCarInsure(int operater, int userId, OrderToCarInsure orderToCarInsure, List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompany, List <OrderToCarInsureOfferKind> orderToCarInsureOfferKind)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                OrderToCarInsure order = new OrderToCarInsure();

                //用户信息
                var clientUser = CurrentDb.SysClientUser.Where(m => m.Id == userId).FirstOrDefault();
                //商户信息
                var merchant = CurrentDb.Merchant.Where(m => m.Id == clientUser.MerchantId).FirstOrDefault();
                //2011为车险投保产品,2012为车险续保产品
                var product = CurrentDb.Product.Where(m => m.Type == orderToCarInsure.ProductType).FirstOrDefault();


                order.MerchantId    = merchant.Id;
                order.PosMachineId  = orderToCarInsure.PosMachineId;
                order.UserId        = merchant.UserId;
                order.ProductId     = product.Id;
                order.ProductName   = product.Name;
                order.ProductType   = product.Type;
                order.ClientRequire = orderToCarInsure.ClientRequire;


                order.InsuranceCompanyId   = orderToCarInsure.InsuranceCompanyId;
                order.InsuranceCompanyName = orderToCarInsure.InsuranceCompanyName;

                order.CarOwner         = orderToCarInsure.CarOwner;
                order.CarOwnerIdNumber = orderToCarInsure.CarOwnerIdNumber;
                order.CarOwnerAddress  = orderToCarInsure.CarOwnerAddress;
                order.CarModel         = orderToCarInsure.CarModel;
                order.CarOwner         = orderToCarInsure.CarOwner;
                order.CarPlateNo       = orderToCarInsure.CarPlateNo;
                order.CarEngineNo      = orderToCarInsure.CarEngineNo;
                order.CarVin           = orderToCarInsure.CarVin;
                order.CarVechicheType  = orderToCarInsure.CarVechicheType;
                order.CarRegisterDate  = orderToCarInsure.CarRegisterDate;
                order.CarIssueDate     = orderToCarInsure.CarIssueDate;


                order.InsurePlanId      = orderToCarInsure.InsurePlanId;
                order.CZ_CL_XSZ_ImgUrl  = orderToCarInsure.CZ_CL_XSZ_ImgUrl;
                order.CZ_SFZ_ImgUrl     = orderToCarInsure.CZ_SFZ_ImgUrl;
                order.YCZ_CLDJZ_ImgUrl  = orderToCarInsure.YCZ_CLDJZ_ImgUrl;
                order.CCSJM_WSZM_ImgUrl = orderToCarInsure.CCSJM_WSZM_ImgUrl;
                order.Status            = Enumeration.OrderStatus.Submitted;
                order.StartOfferTime    = this.DateTime;
                order.SubmitTime        = this.DateTime;
                order.CreateTime        = this.DateTime;
                order.Creator           = operater;
                order.IsLastYearNewCar  = orderToCarInsure.IsLastYearNewCar;
                order.IsSameLastYear    = orderToCarInsure.IsSameLastYear;
                CurrentDb.OrderToCarInsure.Add(order);
                CurrentDb.SaveChanges();
                order.Sn = Sn.Build(SnType.CarInsure, order.Id);



                if (orderToCarInsureOfferCompany != null)
                {
                    foreach (var m in orderToCarInsureOfferCompany)
                    {
                        m.OrderId    = order.Id;
                        m.CreateTime = this.DateTime;
                        m.Creator    = operater;
                        CurrentDb.OrderToCarInsureOfferCompany.Add(m);
                    }
                }

                if (orderToCarInsureOfferKind != null)
                {
                    foreach (var m in orderToCarInsureOfferKind)
                    {
                        m.OrderId    = order.Id;
                        m.CreateTime = this.DateTime;
                        m.Creator    = operater;
                        CurrentDb.OrderToCarInsureOfferKind.Add(m);
                    }
                }


                BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CarInsureOffer, order.Id, Enumeration.CarInsureOfferDealtStatus.WaitOffer, "");

                BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Submit, bizProcessesAudit.Id, operater, orderToCarInsure.ClientRequire, "商户提交投保订单", this.DateTime);

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


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

            return(result);
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        public CustomJsonResult ReCarInsureOffer(int operater, int userId, int merchantId, int orderId)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var oldOrder = CurrentDb.OrderToCarInsure.Where(m => m.Id == orderId).FirstOrDefault();

                var newOrder = new OrderToCarInsure();
                newOrder.MerchantId = oldOrder.MerchantId;
                newOrder.PosMachineId = oldOrder.PosMachineId;
                newOrder.UserId = oldOrder.UserId;
         
                //newOrder.ProductName = oldOrder.ProductName;
                //newOrder.ProductType = oldOrder.ProductType;
                newOrder.ClientRequire = oldOrder.ClientRequire;
                newOrder.InsuranceCompanyId = oldOrder.InsuranceCompanyId;
                newOrder.InsuranceCompanyName = oldOrder.InsuranceCompanyName;
                newOrder.CarOwner = oldOrder.CarOwner;
                newOrder.CarOwnerIdNumber = oldOrder.CarOwnerIdNumber;
                newOrder.CarOwnerAddress = oldOrder.CarOwnerAddress;
                newOrder.CarModel = oldOrder.CarModel;
                newOrder.CarModelName = oldOrder.CarModelName;
                newOrder.CarOwner = oldOrder.CarOwner;
                newOrder.CarPlateNo = oldOrder.CarPlateNo;
                newOrder.CarEngineNo = oldOrder.CarEngineNo;
                newOrder.CarVin = oldOrder.CarVin;
                newOrder.CarVechicheType = oldOrder.CarVechicheType;
                newOrder.CarRegisterDate = oldOrder.CarRegisterDate;
                newOrder.CarIssueDate = oldOrder.CarIssueDate;
                newOrder.CarPurchasePrice = oldOrder.CarPurchasePrice;
                newOrder.InsurePlanId = oldOrder.InsurePlanId;
                newOrder.CZ_CL_XSZ_ImgUrl = oldOrder.CZ_CL_XSZ_ImgUrl;
                newOrder.CZ_SFZ_ImgUrl = oldOrder.CZ_SFZ_ImgUrl;
                newOrder.YCZ_CLDJZ_ImgUrl = oldOrder.YCZ_CLDJZ_ImgUrl;
                newOrder.CCSJM_WSZM_ImgUrl = oldOrder.CCSJM_WSZM_ImgUrl;
                newOrder.ZJ1_ImgUrl = oldOrder.ZJ1_ImgUrl;
                newOrder.ZJ2_ImgUrl = oldOrder.ZJ2_ImgUrl;
                newOrder.ZJ3_ImgUrl = oldOrder.ZJ3_ImgUrl;
                newOrder.ZJ4_ImgUrl = oldOrder.ZJ4_ImgUrl;

                newOrder.Status = Enumeration.OrderStatus.Submitted;

                newOrder.SubmitTime = this.DateTime;
                newOrder.CreateTime = this.DateTime;
                newOrder.Creator = operater;
                newOrder.IsLastYearNewCar = oldOrder.IsLastYearNewCar;
                newOrder.IsSameLastYear = oldOrder.IsSameLastYear;
                newOrder.AutoCancelByHour = 24;
                CurrentDb.OrderToCarInsure.Add(newOrder);
                CurrentDb.SaveChanges();

                SnModel snModel = Sn.Build(SnType.OrderToCarInsure, newOrder.Id);

                newOrder.Sn = snModel.Sn;
                newOrder.TradeSnByWechat = snModel.TradeSnByWechat;
                newOrder.TradeSnByAlipay = snModel.TradeSnByAlipay;




                var oldOrderToCarInsureOfferCompany = CurrentDb.OrderToCarInsureOfferCompany.Where(m => m.OrderId == oldOrder.Id).ToList();
                if (oldOrderToCarInsureOfferCompany != null)
                {
                    foreach (var m in oldOrderToCarInsureOfferCompany)
                    {
                        var newOrderToCarInsureOfferCompany = new OrderToCarInsureOfferCompany();

                        newOrderToCarInsureOfferCompany.OrderId = newOrder.Id;
                        newOrderToCarInsureOfferCompany.InsuranceCompanyId = m.InsuranceCompanyId;
                        newOrderToCarInsureOfferCompany.InsuranceCompanyName = m.InsuranceCompanyName;
                        newOrderToCarInsureOfferCompany.CreateTime = this.DateTime;
                        newOrderToCarInsureOfferCompany.Creator = operater;
                        CurrentDb.OrderToCarInsureOfferCompany.Add(newOrderToCarInsureOfferCompany);
                    }
                }


                var oldKinds = CurrentDb.OrderToCarInsureOfferKind.Where(m => m.OrderId == oldOrder.Id).ToList();

                if (oldKinds != null)
                {
                    foreach (var m in oldKinds)
                    {
                        var newKinds = new OrderToCarInsureOfferKind();
                        newKinds.OrderId = newOrder.Id;
                        newKinds.KindId = m.KindId;
                        newKinds.KindValue = m.KindValue;
                        newKinds.KindDetails = m.KindDetails;
                        newKinds.IsWaiverDeductible = m.IsWaiverDeductible;
                        newKinds.CreateTime = this.DateTime;
                        newKinds.Creator = operater;
                        CurrentDb.OrderToCarInsureOfferKind.Add(newKinds);
                    }
                }

                BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.OrderToCarInsure, newOrder.Id, Enumeration.CarInsureOfferDealtStatus.WaitOffer);

                BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Submit, bizProcessesAudit.Id, operater, newOrder.ClientRequire, "商户重新报价,等待报价", this.DateTime);

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


                result = new CustomJsonResult(ResultType.Success, "重新报价");

            }

            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);
        }
Ejemplo n.º 6
0
        public CustomJsonResult SubmitCarInsure(int operater, OrderToCarInsure orderToCarInsure, List<OrderToCarInsureOfferCompany> orderToCarInsureOfferCompany, List<OrderToCarInsureOfferKind> orderToCarInsureOfferKind)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                OrderToCarInsure order = new OrderToCarInsure();

                //用户信息
                var clientUser = CurrentDb.SysClientUser.Where(m => m.Id == orderToCarInsure.UserId).FirstOrDefault();
                //商户信息
                var merchant = CurrentDb.Merchant.Where(m => m.Id == clientUser.MerchantId).FirstOrDefault();



                order.MerchantId = merchant.Id;
                order.PosMachineId = orderToCarInsure.PosMachineId;
                order.UserId = merchant.UserId;
                order.SalesmanId = merchant.SalesmanId ?? 0;
                order.AgentId = merchant.AgentId ?? 0;
                order.Type = Enumeration.OrderType.InsureForCarForInsure;
                order.TypeName = Enumeration.OrderType.InsureForCarForInsure.GetCnName();
                order.ClientRequire = orderToCarInsure.ClientRequire;
                order.InsuranceCompanyId = orderToCarInsure.InsuranceCompanyId;
                order.InsuranceCompanyName = orderToCarInsure.InsuranceCompanyName;
                order.CarOwner = orderToCarInsure.CarOwner;
                order.CarOwnerIdNumber = orderToCarInsure.CarOwnerIdNumber;
                order.CarOwnerAddress = orderToCarInsure.CarOwnerAddress;
                order.CarModel = orderToCarInsure.CarModel;
                order.CarOwner = orderToCarInsure.CarOwner;
                order.CarPlateNo = orderToCarInsure.CarPlateNo;
                order.CarEngineNo = orderToCarInsure.CarEngineNo;
                order.CarVin = orderToCarInsure.CarVin;
                order.CarVechicheType = orderToCarInsure.CarVechicheType;
                order.CarRegisterDate = orderToCarInsure.CarRegisterDate;
                order.CarIssueDate = orderToCarInsure.CarIssueDate;
                order.InsurePlanId = orderToCarInsure.InsurePlanId;
                order.CZ_CL_XSZ_ImgUrl = orderToCarInsure.CZ_CL_XSZ_ImgUrl;
                order.CZ_SFZ_ImgUrl = orderToCarInsure.CZ_SFZ_ImgUrl;
                order.YCZ_CLDJZ_ImgUrl = orderToCarInsure.YCZ_CLDJZ_ImgUrl;
                order.CCSJM_WSZM_ImgUrl = orderToCarInsure.CCSJM_WSZM_ImgUrl;
                order.Status = Enumeration.OrderStatus.Submitted;
                order.StartOfferTime = this.DateTime;
                order.SubmitTime = this.DateTime;
                order.CreateTime = this.DateTime;
                order.Creator = operater;
                order.IsLastYearNewCar = orderToCarInsure.IsLastYearNewCar;
                order.IsSameLastYear = orderToCarInsure.IsSameLastYear;
                order.AutoCancelByHour = 24;
                CurrentDb.OrderToCarInsure.Add(order);
                CurrentDb.SaveChanges();

                SnModel snModel = Sn.Build(SnType.OrderToCarInsure, order.Id);

                order.Sn = snModel.Sn;
                order.TradeSnByWechat = snModel.TradeSnByWechat;
                order.TradeSnByAlipay = snModel.TradeSnByAlipay;


                if (orderToCarInsureOfferCompany != null)
                {
                    foreach (var m in orderToCarInsureOfferCompany)
                    {
                        m.OrderId = order.Id;
                        m.CreateTime = this.DateTime;
                        m.Creator = operater;
                        CurrentDb.OrderToCarInsureOfferCompany.Add(m);
                    }
                }

                if (orderToCarInsureOfferKind != null)
                {
                    foreach (var m in orderToCarInsureOfferKind)
                    {
                        m.OrderId = order.Id;
                        m.CreateTime = this.DateTime;
                        m.Creator = operater;
                        CurrentDb.OrderToCarInsureOfferKind.Add(m);
                    }
                }


                BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.OrderToCarInsure, order.Id, Enumeration.CarInsureOfferDealtStatus.WaitOffer);

                BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Submit, bizProcessesAudit.Id, operater, orderToCarInsure.ClientRequire, "商户提交投保订单,等待报价", this.DateTime);


                order.BizProcessesAuditId = bizProcessesAudit.Id;

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


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

            return result;
        }
Ejemplo n.º 7
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;


                        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 = 0;//应付金额

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

                            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;

        }
Ejemplo n.º 8
0
        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 Dealt(int operater, Enumeration.OperateType operate, OrderToCredit orderToCredit, 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_orderToCredit = CurrentDb.OrderToCredit.Where(m => m.Id == orderToCredit.Id).FirstOrDefault();

                l_orderToCredit.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_orderToCredit.Status     = Enumeration.OrderStatus.Cancled;
                    l_orderToCredit.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_orderToCredit.Status       = Enumeration.OrderStatus.Completed;
                    l_orderToCredit.CompleteTime = this.DateTime;
                    l_orderToCredit.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);
        }
Ejemplo n.º 10
0
        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);
        }
        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);
        }
        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 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);
        }
        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);
        }