public CustomJsonResult SubmitFollowInsure(int operater, OrderToCarInsure orderToCarInsure)
        {
            CustomJsonResult result = new CustomJsonResult();

            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    var l_orderToCarInsure = CurrentDb.OrderToCarInsure.Where(m => m.Id == orderToCarInsure.Id).FirstOrDefault();
                    l_orderToCarInsure.ZJ1_ImgUrl = orderToCarInsure.ZJ1_ImgUrl;
                    l_orderToCarInsure.ZJ2_ImgUrl = orderToCarInsure.ZJ2_ImgUrl;
                    l_orderToCarInsure.ZJ3_ImgUrl = orderToCarInsure.ZJ3_ImgUrl;
                    l_orderToCarInsure.ZJ4_ImgUrl = orderToCarInsure.ZJ4_ImgUrl;
                    l_orderToCarInsure.FollowStatus = (int)Enumeration.OrderToCarInsureFollowStatus.Submitted;
                    l_orderToCarInsure.LastUpdateTime = this.DateTime;
                    l_orderToCarInsure.Mender = operater;



                    BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarInsureOfferDealtStep.Fllow, l_orderToCarInsure.BizProcessesAuditId, operater, orderToCarInsure.ClientRequire, "商户再次提交投保订单", this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeCarInsureOfferDealtStatus(operater, l_orderToCarInsure.BizProcessesAuditId, Enumeration.CarInsureOfferDealtStatus.WaitOffer);


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

                return result;
            }
            catch (Exception ex)
            {
                Log.Error("出错" + orderToCarInsure.Id, ex);

                return result;
            }



        }
Exemple #2
0
        public APIResponse SubmitFollowInsure(SubmitFollowInsureModel model)
        {
            OrderToCarInsure orderToCarInsure = new OrderToCarInsure();

            orderToCarInsure.Id = model.OrderId;

            if (model.ImgData != null)
            {
                var key_ZJ1_Img = "ZJ1_Img";
                if (model.ImgData.ContainsKey(key_ZJ1_Img))
                {
                    orderToCarInsure.ZJ1_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ1_Img], "CarInsure");
                }

                var key_ZJ2_Img = "ZJ2_Img";
                if (model.ImgData.ContainsKey(key_ZJ2_Img))
                {
                    orderToCarInsure.ZJ2_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ2_Img], "CarInsure");
                }

                var key_ZJ3_Img = "ZJ3_Img";
                if (model.ImgData.ContainsKey(key_ZJ3_Img))
                {
                    orderToCarInsure.ZJ3_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ3_Img], "CarInsure");
                }


                var key_ZJ4_Img = "ZJ4_Img";
                if (model.ImgData.ContainsKey(key_ZJ4_Img))
                {
                    orderToCarInsure.ZJ4_ImgUrl = GetUploadImageUrl(model.ImgData[key_ZJ4_Img], "CarInsure");
                }
            }



            IResult result = BizFactory.Order.SubmitFollowInsure(model.UserId, orderToCarInsure);

            return(new APIResponse(result));
        }
Exemple #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);
        }
Exemple #4
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);
        }
        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 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;
        }
Exemple #7
0
        public APIResponse SubmitInsure(SubmitInsureModel model)
        {
            if (IsSaleman(model.UserId))
            {
                return(ResponseResult(ResultType.Failure, ResultCode.Failure, "该用户为业务员,不能提交订单"));
            }

            OrderToCarInsure orderToCarInsure = new OrderToCarInsure();

            orderToCarInsure.UserId       = model.UserId;
            orderToCarInsure.MerchantId   = model.MerchantId;
            orderToCarInsure.PosMachineId = model.PosMachineId;
            orderToCarInsure.InsurePlanId = model.InsurePlanId;
            orderToCarInsure.Type         = Enumeration.OrderType.InsureForCarForInsure;
            orderToCarInsure.TypeName     = Enumeration.OrderType.InsureForCarForInsure.GetCnName();

            if (model.ImgData != null)
            {
                var key_CZ_CL_XSZ_Img = "CZ_CL_XSZ_Img";
                if (model.ImgData.ContainsKey(key_CZ_CL_XSZ_Img))
                {
                    orderToCarInsure.CZ_CL_XSZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_CL_XSZ_Img], "CarInsure");

                    //DrivingLicenceVO drivingLicence = AnXin.GetDrivingLicenceByImageBase64(model.ImgData[key_CZ_CL_XSZ_Img].Data);

                    //if (drivingLicence != null)
                    //{
                    //    orderToCarInsure.CarOwner = drivingLicence.owner;
                    //    orderToCarInsure.CarOwnerAddress = drivingLicence.address;
                    //    orderToCarInsure.CarModel = drivingLicence.model;
                    //    orderToCarInsure.CarPlateNo = drivingLicence.plateNum;
                    //    orderToCarInsure.CarEngineNo = drivingLicence.engineNo;
                    //    orderToCarInsure.CarVin = drivingLicence.vin;
                    //    //orderToCarInsure.CarVechicheType = drivingLicence.vehicleType;
                    //    orderToCarInsure.CarIssueDate = drivingLicence.issueDate;
                    //    //orderToCarInsure.CarUserCharacter = drivingLicence.userCharacter;
                    //    orderToCarInsure.CarRegisterDate = drivingLicence.registerDate;
                    //}
                }

                var key_CZ_SFZ_Img = "CZ_SFZ_Img";
                if (model.ImgData.ContainsKey(key_CZ_SFZ_Img))
                {
                    orderToCarInsure.CZ_SFZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_SFZ_Img], "CarInsure");

                    //IdentityCardVO identityCardVO = AnXin.GetIdentityCardByImageBase64(model.ImgData[key_CZ_SFZ_Img].Data);

                    //if (identityCardVO != null)
                    //{
                    //    orderToCarInsure.CarOwnerIdNumber = identityCardVO.idNumber;
                    //}
                }

                var key_CCSJM_WSZM_Img = "CCSJM_WSZM_Img";
                if (model.ImgData.ContainsKey(key_CCSJM_WSZM_Img))
                {
                    orderToCarInsure.CCSJM_WSZM_ImgUrl = GetUploadImageUrl(model.ImgData[key_CCSJM_WSZM_Img], "CarInsure");
                }

                var key_YCZ_CLDJZ_Img = "YCZ_CLDJZ_Img";
                if (model.ImgData.ContainsKey(key_YCZ_CLDJZ_Img))
                {
                    orderToCarInsure.YCZ_CLDJZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_YCZ_CLDJZ_Img], "CarInsure");
                }
            }

            List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompanys = new List <OrderToCarInsureOfferCompany>();

            var insureOfferCompanys = CurrentDb.Company.ToList();

            foreach (var m in model.InsuranceCompanyId)
            {
                var insureOfferCompany = insureOfferCompanys.Where(q => q.Id == m).FirstOrDefault();
                OrderToCarInsureOfferCompany orderToCarInsureOfferCompany = new OrderToCarInsureOfferCompany();
                orderToCarInsureOfferCompany.InsuranceCompanyId     = insureOfferCompany.Id;
                orderToCarInsureOfferCompany.InsuranceCompanyName   = insureOfferCompany.Name;
                orderToCarInsureOfferCompany.InsuranceCompanyImgUrl = insureOfferCompany.ImgUrl;
                orderToCarInsureOfferCompanys.Add(orderToCarInsureOfferCompany);
            }

            List <OrderToCarInsureOfferKind> orderToCarInsureOfferKinds = new List <OrderToCarInsureOfferKind>();

            foreach (var m in model.InsureKind)
            {
                OrderToCarInsureOfferKind orderToCarInsureOfferKind = new OrderToCarInsureOfferKind();
                orderToCarInsureOfferKind.KindId             = m.Id;
                orderToCarInsureOfferKind.KindValue          = m.Value;
                orderToCarInsureOfferKind.KindDetails        = m.Details;
                orderToCarInsureOfferKind.IsWaiverDeductible = m.IsWaiverDeductible;
                orderToCarInsureOfferKinds.Add(orderToCarInsureOfferKind);
            }

            IResult result = BizFactory.Order.SubmitCarInsure(model.UserId, orderToCarInsure, orderToCarInsureOfferCompanys, orderToCarInsureOfferKinds);

            return(new APIResponse(result));
        }
        public static CustomJsonResult GetCarInsOffer(OrderToCarInsure order, List <OrderToCarInsureOfferCompany> offerCompany, List <OrderToCarInsureOfferKind> kinds)
        {
            CustomJsonResult result = new CustomJsonResult();

            List <YdtInscarInquiryOffer> offerList = new List <YdtInscarInquiryOffer>();

            order.RecipientAddress     = "测试地址";
            order.RecipientPhoneNumber = "13800138000";


            var    au     = YdtUtils.GetToken();
            YdtApi ydtApi = new YdtApi();

            InscarAddbaseModel model = new InscarAddbaseModel();

            model.auto = 1;

            //todo 新车怎么标识
            switch (order.CarVechicheType)
            {
            case Enumeration.CarVechicheType.HC:
                model.carType = 3;
                break;

            default:
                model.carType = 1;
                break;
            }


            switch (order.CarUserCharacter)
            {
            case Enumeration.CarUserCharacter.JTZYQC:
                model.belong = 1;
                break;

            default:
                model.belong = 2;
                break;
            }

            #region 车辆信息
            InsCarInfoModel carInfo = new InsCarInfoModel();
            carInfo.licensePlateNo    = order.CarPlateNo;
            carInfo.vin               = order.CarVin;
            carInfo.engineNo          = order.CarEngineNo;
            carInfo.modelCode         = order.CarModel;
            carInfo.modelName         = order.CarModelName;
            carInfo.firstRegisterDate = order.CarRegisterDate;
            // carInfo.displacement = ;
            // carInfo.marketYear = ;

            //switch (order.CarSeat)
            //{
            //    case Enumeration.CarSeat.S6:
            carInfo.ratedPassengerCapacity = order.CarSeat;
            //        break;
            //    case Enumeration.CarSeat.S10:
            //        carInfo.ratedPassengerCapacity = 10;
            //        break;
            //    case Enumeration.CarSeat.S12:
            //        carInfo.ratedPassengerCapacity = 12;
            //        break;
            //    case Enumeration.CarSeat.S30:
            //        carInfo.ratedPassengerCapacity = 30;
            //        break;
            //    case Enumeration.CarSeat.S36:
            //        carInfo.ratedPassengerCapacity = 36;
            //        break;
            //    default:
            //        carInfo.ratedPassengerCapacity = 9;
            //        break;
            //}

            carInfo.ratedPassengerCapacity = order.CarSeat;
            carInfo.replacementValue       = order.CarPurchasePrice.Value;
            carInfo.licensePlateNo         = order.CarPlateNo;

            //todo
            carInfo.replacementValue = 0;
            carInfo.chgownerType     = "0";



            model.car = carInfo;

            #endregion



            #region 被保人,投保人,车主
            List <InsCustomers> customers = new List <InsCustomers>();

            InsCustomers insured = new InsCustomers();
            insured.insuredFlag = 1;
            insured.name        = order.CarOwner;
            insured.certNo      = order.CarOwnerIdNumber;
            insured.mobile      = order.RecipientPhoneNumber;
            insured.address     = order.RecipientAddress;

            YdtUpload ydtUpdate_SFZ       = new YdtUpload(au.token, au.session, "1", order.CZ_SFZ_ImgUrl);
            var       ydtUpdateResult_SFZ = ydtApi.DoPostFile(ydtUpdate_SFZ, Path.GetFileName(order.CZ_SFZ_ImgUrl));

            if (ydtUpdateResult_SFZ.code != 0)
            {
                return(new CustomJsonResult(ResultType.Failure, ydtUpdateResult_SFZ.msg));
            }

            insured.identityFacePic = ydtUpdateResult_SFZ.data.file.key;
            insured.identityBackPic = ydtUpdateResult_SFZ.data.file.key;

            InsCustomers holder = new InsCustomers();
            holder.insuredFlag     = 2;
            holder.name            = insured.name;
            holder.certNo          = insured.certNo;
            holder.mobile          = insured.mobile;
            holder.address         = insured.address;
            holder.identityFacePic = insured.identityFacePic;
            holder.identityBackPic = insured.identityBackPic;

            InsCustomers carOwner = new InsCustomers();
            carOwner.insuredFlag     = 3;
            carOwner.name            = insured.name;
            carOwner.certNo          = insured.certNo;
            carOwner.mobile          = insured.mobile;
            carOwner.address         = insured.address;
            carOwner.identityFacePic = insured.identityFacePic;
            carOwner.identityBackPic = insured.identityBackPic;


            customers.Add(insured);
            customers.Add(holder);
            customers.Add(carOwner);
            #endregion


            model.customers = customers;


            var ydtUpdate       = new YdtUpload(au.token, au.session, "1", order.CZ_SFZ_ImgUrl);
            var ydtUpdateResult = ydtApi.DoPostFile(ydtUpdate, Path.GetFileName(order.CZ_SFZ_ImgUrl));
            if (ydtUpdateResult.code != 0)
            {
                return(new CustomJsonResult(ResultType.Failure, ydtUpdateResult.msg));
            }

            #region pic
            InsPicModel insPic = new InsPicModel();
            insPic.licensePic      = ydtUpdateResult.data.file.key;
            insPic.licenseOtherPic = "";
            insPic.carCertPic      = "";
            insPic.carInvoicePic   = "";

            model.pic = insPic;
            #endregion



            YdtInscarAddbase ydtInscarAddbase = new YdtInscarAddbase(au.token, au.session, YdtPostDataType.Json, model);
            var ydtInscarCarResult            = ydtApi.DoPost(ydtInscarAddbase);

            if (ydtInscarCarResult.code != 0)
            {
                return(new CustomJsonResult(ResultType.Failure, ydtInscarCarResult.msg));
            }

            var insCarAdvicevalueModel = new InsCarAdvicevalueModel();
            insCarAdvicevalueModel.startDate        = order.PeriodStart.Value.ToString("yyyy-MM-dd");
            insCarAdvicevalueModel.registDate       = order.CarRegisterDate;
            insCarAdvicevalueModel.replacementValue = order.CarPurchasePrice.Value;
            var ydtInscarAdvicevalue       = new YdtInscarAdvicevalue(au.token, au.session, YdtPostDataType.Json, insCarAdvicevalueModel);
            var ydtInscarAdvicevalueResult = ydtApi.DoPost(ydtInscarAdvicevalue);

            if (ydtInscarAdvicevalueResult.code != 0)
            {
                return(new CustomJsonResult(ResultType.Failure, ydtInscarAdvicevalueResult.msg));
            }

            InsCarInquiryModel insCarInquiryModel = new InsCarInquiryModel();
            insCarInquiryModel.auto     = 1;
            insCarInquiryModel.orderSeq = ydtInscarCarResult.data.orderSeq;
            insCarInquiryModel.risk     = YdtDataMap.GetRisk(kinds);

            if (insCarInquiryModel.risk == 2 || insCarInquiryModel.risk == 3)
            {
                insCarInquiryModel.ciStartDate = order.PeriodStart.Value.ToString("yyyy-MM-dd");
            }

            if (insCarInquiryModel.risk == 1 || insCarInquiryModel.risk == 3)
            {
                insCarInquiryModel.biStartDate = order.PeriodStart.Value.ToString("yyyy-MM-dd");
            }


            insCarInquiryModel.coverages = YdtDataMap.GetCoverages(kinds, ydtInscarAdvicevalueResult.data.actualPrice, order.CarSeat);



            foreach (var company in offerCompany)
            {
                var insCompany = YdtDataMap.GetCompanyCode(company.InsuranceCompanyId);
                insCarInquiryModel.companyCode = insCompany.YdtCode;//"006000";
                YdtInscarInquiry ydtInscarInquiry = new YdtInscarInquiry(au.token, au.session, YdtPostDataType.Json, insCarInquiryModel);
                var ydtInscarInquiryResult        = ydtApi.DoPost(ydtInscarInquiry);

                YdtInscarInquiryOffer offer = new YdtInscarInquiryOffer();



                offer.UplinkInsCompanyId = company.InsuranceCompanyId;
                offer.YdtInsCompanyId    = insCarInquiryModel.companyCode;
                offer.Inquiry            = ydtInscarInquiryResult;

                if (ydtInscarInquiryResult.code == 0)
                {
                    OfferImgModel offerImgModel = new OfferImgModel();
                    offerImgModel.Company   = insCompany.PrintName;
                    offerImgModel.OfferTime = DateTime.Now;
                    offerImgModel.Offerer   = "";

                    OfferImgCarInfo offerImgCarInfo = new OfferImgCarInfo();
                    offerImgCarInfo.CarOwner     = order.CarOwner;
                    offerImgCarInfo.CarPlateNo   = order.CarPlateNo;
                    offerImgCarInfo.CarEngineNo  = order.CarEngineNo;
                    offerImgCarInfo.CarVin       = order.CarVin;
                    offerImgCarInfo.CarModelName = order.CarModelName;

                    offerImgModel.CarInfo = offerImgCarInfo;

                    string postData = "";
                    if (offer.Inquiry != null)
                    {
                        if (offer.Inquiry.data != null)
                        {
                            if (offer.Inquiry.data.coverages != null)
                            {
                                var coverages = offer.Inquiry.data.coverages;
                                foreach (var coverage in coverages)
                                {
                                    OfferImgCoverage offerImgCoverage = new OfferImgCoverage();
                                    offerImgCoverage.Name     = coverage.name;
                                    offerImgCoverage.Discount = coverage.discount;
                                    offerImgCoverage.Premium  = coverage.standardPremium;

                                    if (coverage.code == "006")
                                    {
                                        if (coverage.glassType != null)
                                        {
                                            if (coverage.glassType.Value == 1)
                                            {
                                                offerImgCoverage.Coverage = "国产";
                                            }
                                            else
                                            {
                                                offerImgCoverage.Coverage = "进口";
                                            }
                                        }
                                    }
                                    else if (coverage.name.IndexOf("不计免赔") > -1)
                                    {
                                        offerImgCoverage.Coverage = "";
                                    }
                                    else
                                    {
                                        if (coverage.amount != null)
                                        {
                                            offerImgCoverage.Coverage = coverage.amount.Value.ToF2Price();
                                        }
                                    }

                                    offerImgModel.CommercialCoverageInfo.Coverages.Add(offerImgCoverage);
                                }
                                offerImgModel.CommercialCoverageInfo.PeriodStart = order.PeriodStart;
                                offerImgModel.CommercialCoverageInfo.PeriodEnd   = order.PeriodEnd;
                            }

                            if (offer.Inquiry.data.inquirys != null)
                            {
                                var commercial = offer.Inquiry.data.inquirys.Where(m => m.risk == 1).FirstOrDefault();
                                if (commercial != null)
                                {
                                    offerImgModel.CommercialCoverageInfo.SumPremium = commercial.standardPremium;
                                }

                                var compulsory = offer.Inquiry.data.inquirys.Where(m => m.risk == 2).FirstOrDefault();

                                if (compulsory != null)
                                {
                                    offerImgModel.CompulsoryInfo.PeriodStart = order.PeriodStart;
                                    offerImgModel.CompulsoryInfo.PeriodEnd   = order.PeriodEnd;
                                    offerImgModel.CompulsoryInfo.Premium     = compulsory.standardPremium - compulsory.sumPayTax;
                                    offerImgModel.TravelTax = compulsory.sumPayTax;
                                }
                            }

                            offerImgModel.SumPremium = offer.Inquiry.data.inquirys.Sum(m => m.standardPremium);
                        }
                    }

                    postData = Newtonsoft.Json.JsonConvert.SerializeObject(offerImgModel);

                    int height = 840;
                    if (offer.Inquiry.data.coverages != null)
                    {
                        if (offer.Inquiry.data.coverages.Count > 5)
                        {
                            height = height + (offer.Inquiry.data.coverages.Count - 5) * 40;
                        }
                    }



                    Bitmap m_Bitmap = WebSnapshotsHelper.GetWebSiteThumbnail("http://localhost:12060/App/CarInsureOffer/OfferImg", 1280, height, 1280, height, postData); //宽高根据要获取快照的网页决定

                    byte[] bytes = Bitmap2Byte(m_Bitmap);

                    string           fileExt = ".jpg";
                    UploadFileEntity entity  = new UploadFileEntity();
                    entity.FileName     = DateTime.Now.ToString("yyyyMMddHHmmss") + fileExt;//自定义文件名称,这里以当前时间为例
                    entity.FileData     = bytes;
                    entity.UploadFolder = "offerImg";
                    entity.GenerateSize = false;
                    var rm = HttpClientOperate.Post <CustomJsonResult>(entity.UploadFolder, ConfigurationManager.AppSettings["custom:UploadServerUrl"], entity);//封装的POST提交方
                    if (rm.Result == ResultType.Success)
                    {
                        ImageUpload imageUpload = Newtonsoft.Json.JsonConvert.DeserializeObject <ImageUpload>(rm.Data.ToString());
                        offer.OfferImgUrl = imageUpload.OriginalPath;
                    }
                }


                offerList.Add(offer);
            }

            result.Result = ResultType.Success;
            result.Code   = ResultCode.Success;
            result.Data   = offerList;

            return(result);
        }
        public APIResponse SubmitInsure(SubmitInsureModel model)
        {
            //暂时不启用这段代码
            //var disabledInsuranceCompany = CurrentDb.CarInsuranceCompany.Where(m => model.InsuranceCompanyId.Contains(m.InsuranceCompanyId) && m.Status != Enumeration.CarInsuranceCompanyStatus.Normal).ToList();
            //if (disabledInsuranceCompany.Count > 0)
            //{
            //    string disabledInsuranceCompanyNames = string.Join(",", disabledInsuranceCompany.Select(m => m.InsuranceCompanyName).ToArray());
            //    return ResponseResult(ResultType.Failure, ResultCode.Failure, string.Format("{0}已经被停用", disabledInsuranceCompanyNames));
            //}


            OrderToCarInsure orderToCarInsure = new OrderToCarInsure();

            orderToCarInsure.MerchantId   = model.MerchantId;
            orderToCarInsure.PosMachineId = model.PosMachineId;
            orderToCarInsure.InsurePlanId = model.InsurePlanId;
            orderToCarInsure.ProductType  = model.Type;


            if (model.ImgData != null)
            {
                var key_CZ_CL_XSZ_Img = "CZ_CL_XSZ_Img";
                if (model.ImgData.ContainsKey(key_CZ_CL_XSZ_Img))
                {
                    orderToCarInsure.CZ_CL_XSZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_CL_XSZ_Img], "CarInsure");

                    DrivingLicenceVO drivingLicence = AnXin.GetDrivingLicenceByImageBase64(model.ImgData[key_CZ_CL_XSZ_Img].Data);

                    if (drivingLicence != null)
                    {
                        orderToCarInsure.CarOwner         = drivingLicence.owner;
                        orderToCarInsure.CarOwnerAddress  = drivingLicence.address;
                        orderToCarInsure.CarModel         = drivingLicence.model;
                        orderToCarInsure.CarPlateNo       = drivingLicence.plateNum;
                        orderToCarInsure.CarEngineNo      = drivingLicence.engineNo;
                        orderToCarInsure.CarVin           = drivingLicence.vin;
                        orderToCarInsure.CarVechicheType  = drivingLicence.vehicleType;
                        orderToCarInsure.CarIssueDate     = drivingLicence.issueDate;
                        orderToCarInsure.CarUserCharacter = drivingLicence.userCharacter;
                        orderToCarInsure.CarRegisterDate  = drivingLicence.registerDate;
                    }
                }

                var key_CZ_SFZ_Img = "CZ_SFZ_Img";
                if (model.ImgData.ContainsKey(key_CZ_SFZ_Img))
                {
                    orderToCarInsure.CZ_SFZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_CZ_SFZ_Img], "CarInsure");

                    IdentityCardVO identityCardVO = AnXin.GetIdentityCardByImageBase64(model.ImgData[key_CZ_SFZ_Img].Data);

                    if (identityCardVO != null)
                    {
                        orderToCarInsure.CarOwnerIdNumber = identityCardVO.idNumber;
                    }
                }

                var key_CCSJM_WSZM_Img = "CCSJM_WSZM_Img";
                if (model.ImgData.ContainsKey(key_CCSJM_WSZM_Img))
                {
                    orderToCarInsure.CCSJM_WSZM_ImgUrl = GetUploadImageUrl(model.ImgData[key_CCSJM_WSZM_Img], "CarInsure");
                }

                var key_YCZ_CLDJZ_Img = "YCZ_CLDJZ_Img";
                if (model.ImgData.ContainsKey(key_YCZ_CLDJZ_Img))
                {
                    orderToCarInsure.YCZ_CLDJZ_ImgUrl = GetUploadImageUrl(model.ImgData[key_YCZ_CLDJZ_Img], "CarInsure");
                }
            }

            orderToCarInsure.ClientRequire = model.ClientRequire;


            if (model.RenewalId != 0)
            {
                var renewal = CurrentDb.OrderToCarInsure.Where(m => m.Id == model.RenewalId).FirstOrDefault();
                if (renewal != null)
                {
                    orderToCarInsure.CarOwner         = renewal.CarOwner;
                    orderToCarInsure.CarOwnerIdNumber = renewal.CarOwnerIdNumber;
                    orderToCarInsure.CarOwnerAddress  = renewal.CarOwnerAddress;
                    orderToCarInsure.CarModel         = renewal.CarModel;
                    orderToCarInsure.CarPlateNo       = renewal.CarPlateNo;
                    orderToCarInsure.CarEngineNo      = renewal.CarEngineNo;
                    orderToCarInsure.CarVin           = renewal.CarVin;
                    orderToCarInsure.CarVechicheType  = renewal.CarVechicheType;
                    orderToCarInsure.CarIssueDate     = renewal.CarIssueDate;
                    orderToCarInsure.CarUserCharacter = renewal.CarUserCharacter;
                    orderToCarInsure.CarRegisterDate  = renewal.CarRegisterDate;
                    orderToCarInsure.CarIssueDate     = renewal.CarIssueDate;
                    orderToCarInsure.CarSeat          = renewal.CarSeat;
                }
            }



            List <OrderToCarInsureOfferCompany> orderToCarInsureOfferCompanys = new List <OrderToCarInsureOfferCompany>();

            var insureOfferCompanys = CurrentDb.InsuranceCompany.ToList();

            foreach (var m in model.InsuranceCompanyId)
            {
                var insureOfferCompany = insureOfferCompanys.Where(q => q.Id == m).FirstOrDefault();
                OrderToCarInsureOfferCompany orderToCarInsureOfferCompany = new OrderToCarInsureOfferCompany();
                orderToCarInsureOfferCompany.InsuranceCompanyId   = insureOfferCompany.Id;
                orderToCarInsureOfferCompany.InsuranceCompanyName = insureOfferCompany.Name;
                orderToCarInsureOfferCompanys.Add(orderToCarInsureOfferCompany);
            }

            if (orderToCarInsure.ProductType == Enumeration.ProductType.InsureForCarForRenewal)
            {
                var insureOfferCompany = insureOfferCompanys.Where(q => q.Id == model.InsuranceCompanyId[0]).FirstOrDefault();
                orderToCarInsure.InsuranceCompanyId   = insureOfferCompany.Id;
                orderToCarInsure.InsuranceCompanyName = insureOfferCompany.Name;
            }


            List <OrderToCarInsureOfferKind> orderToCarInsureOfferKinds = new List <OrderToCarInsureOfferKind>();

            foreach (var m in model.InsureKind)
            {
                OrderToCarInsureOfferKind orderToCarInsureOfferKind = new OrderToCarInsureOfferKind();
                orderToCarInsureOfferKind.KindId             = m.Id;
                orderToCarInsureOfferKind.KindValue          = m.Value;
                orderToCarInsureOfferKind.KindDetails        = m.Details;
                orderToCarInsureOfferKind.IsWaiverDeductible = m.IsWaiverDeductible;
                orderToCarInsureOfferKinds.Add(orderToCarInsureOfferKind);
            }

            IResult result = BizFactory.Order.SubmitCarInsure(model.UserId, model.UserId, orderToCarInsure, orderToCarInsureOfferCompanys, orderToCarInsureOfferKinds);



            return(new APIResponse(result));
        }