Exemplo n.º 1
0
        public CustomJsonResult SubmitClaim(int operater, int userId, OrderToCarClaim orderToCarClaim)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                //用户信息
                var clientUser = CurrentDb.SysClientUser.Where(m => m.Id == userId).FirstOrDefault();
                //商户信息
                var merchant = CurrentDb.Merchant.Where(m => m.Id == clientUser.MerchantId).FirstOrDefault();

                var insuranceCompany = CurrentDb.Company.Where(m => m.Id == orderToCarClaim.InsuranceCompanyId).FirstOrDefault();


                orderToCarClaim.SalesmanId = merchant.SalesmanId ?? 0;
                orderToCarClaim.AgentId = merchant.AgentId ?? 0;

                orderToCarClaim.Type =  Enumeration.OrderType.InsureForCarForClaim;
                orderToCarClaim.TypeName = Enumeration.OrderType.InsureForCarForClaim.GetCnName();
                orderToCarClaim.MerchantId = merchant.Id;
                orderToCarClaim.PosMachineId = orderToCarClaim.PosMachineId;
                orderToCarClaim.UserId = merchant.UserId;
                orderToCarClaim.InsuranceCompanyName = insuranceCompany.Name;
                orderToCarClaim.Status = Enumeration.OrderStatus.Submitted;
                orderToCarClaim.SubmitTime = this.DateTime;
                orderToCarClaim.CreateTime = this.DateTime;
                orderToCarClaim.Creator = operater;
                CurrentDb.OrderToCarClaim.Add(orderToCarClaim);
                CurrentDb.SaveChanges();

                SnModel snModel = Sn.Build(SnType.OrderToCarClaim, orderToCarClaim.Id);

                orderToCarClaim.Sn = snModel.Sn;
                orderToCarClaim.TradeSnByWechat = snModel.TradeSnByWechat;
                orderToCarClaim.TradeSnByAlipay = snModel.TradeSnByAlipay;


                //状态改为待核实
                BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.OrderToCarClaim, orderToCarClaim.Id, Enumeration.CarClaimDealtStatus.WaitVerifyOrder);
                BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarClaimDealtStep.Submit, bizProcessesAudit.Id, operater, orderToCarClaim.ClientRequire, "商户提交理赔需求", this.DateTime);

                orderToCarClaim.BizProcessesAuditId = bizProcessesAudit.Id;

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

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


            return result;
        }
        public APIResponse SubmitClaim(SubmitClaimModel model)
        {
            OrderToCarClaim orderToCarClaim = new OrderToCarClaim();

            orderToCarClaim.PosMachineId       = model.PosMachineId;
            orderToCarClaim.RepairsType        = model.RepairsType;
            orderToCarClaim.CarPlateNo         = model.CarLicenseNumber;
            orderToCarClaim.HandPerson         = model.HandPerson;
            orderToCarClaim.HandPersonPhone    = model.HandPersonPhone;
            orderToCarClaim.InsuranceCompanyId = model.InsuranceCompanyId;
            orderToCarClaim.ClientRequire      = model.ClientRequire;
            IResult result = BizFactory.Order.SubmitClaim(model.UserId, model.UserId, orderToCarClaim);

            return(new APIResponse(result));
        }
Exemplo n.º 3
0
        public CustomJsonResult SubmitClaim(int operater, int userId, OrderToCarClaim orderToCarClaim)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                //用户信息
                var clientUser = CurrentDb.SysClientUser.Where(m => m.Id == userId).FirstOrDefault();
                //商户信息
                var merchant = CurrentDb.Merchant.Where(m => m.Id == clientUser.MerchantId).FirstOrDefault();

                var insuranceCompany = CurrentDb.InsuranceCompany.Where(m => m.Id == orderToCarClaim.InsuranceCompanyId).FirstOrDefault();

                //2011为车险理赔
                var product = CurrentDb.Product.Where(m => m.Id == 2013).FirstOrDefault();

                orderToCarClaim.ProductId            = product.Id;
                orderToCarClaim.ProductType          = product.Type;
                orderToCarClaim.ProductName          = product.Name;
                orderToCarClaim.MerchantId           = merchant.Id;
                orderToCarClaim.PosMachineId         = orderToCarClaim.PosMachineId;
                orderToCarClaim.UserId               = merchant.UserId;
                orderToCarClaim.InsuranceCompanyName = insuranceCompany.Name;
                orderToCarClaim.Status               = Enumeration.OrderStatus.Submitted;
                orderToCarClaim.SubmitTime           = this.DateTime;
                orderToCarClaim.CreateTime           = this.DateTime;
                orderToCarClaim.Creator              = operater;
                CurrentDb.OrderToCarClaim.Add(orderToCarClaim);
                CurrentDb.SaveChanges();
                orderToCarClaim.Sn = Sn.Build(SnType.CarClaim, orderToCarClaim.Id);

                //状态改为待核实
                BizProcessesAudit bizProcessesAudit = BizFactory.BizProcessesAudit.Add(operater, Enumeration.BizProcessesAuditType.CarClaim, orderToCarClaim.Id, Enumeration.CarClaimDealtStatus.WaitVerifyOrder, "");
                BizFactory.BizProcessesAudit.ChangeAuditDetails(Enumeration.OperateType.Submit, Enumeration.CarClaimDealtStep.Submit, bizProcessesAudit.Id, operater, orderToCarClaim.ClientRequire, "商户提交理赔需求", this.DateTime);


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

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


            return(result);
        }
Exemplo n.º 4
0
        public APIResponse SubmitClaim(SubmitClaimModel model)
        {
            if (IsSaleman(model.UserId))
            {
                return(ResponseResult(ResultType.Failure, ResultCode.Failure, "该用户为业务员,不能提交订单"));
            }

            OrderToCarClaim orderToCarClaim = new OrderToCarClaim();

            orderToCarClaim.PosMachineId       = model.PosMachineId;
            orderToCarClaim.RepairsType        = model.RepairsType;
            orderToCarClaim.CarPlateNo         = model.CarLicenseNumber;
            orderToCarClaim.HandPerson         = model.HandPerson;
            orderToCarClaim.HandPersonPhone    = model.HandPersonPhone;
            orderToCarClaim.InsuranceCompanyId = model.InsuranceCompanyId;
            orderToCarClaim.ClientRequire      = model.ClientRequire;
            IResult result = BizFactory.Order.SubmitClaim(model.UserId, model.UserId, orderToCarClaim);

            return(new APIResponse(result));
        }
Exemplo n.º 5
0
        public CustomJsonResult VerifyClaimAmount(int operater, Enumeration.OperateType operate, OrderToCarClaim orderToCarClaim, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

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

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

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


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


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

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

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

                    break;

                case Enumeration.OperateType.Cancle:

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

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

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

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

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

                    break;

                case Enumeration.OperateType.Submit:


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


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

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


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


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

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

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

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


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



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

            return(result);
        }
Exemplo n.º 6
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);
        }