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)); }
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); }
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)); }
public CustomJsonResult VerifyClaimAmount(int operater, Enumeration.OperateType operate, OrderToCarClaim orderToCarClaim, BizProcessesAudit bizProcessesAudit) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { //var l_bizProcessesAudit = CurrentDb.BizProcessesAudit.Where(m => m.Id == bizProcessesAudit.CurrentDetails.BizProcessesAuditId && (m.Status == (int)Enumeration.CarInsureOfferDealtStatus.WaitOffer || m.Status == (int)Enumeration.CarInsureOfferDealtStatus.InOffer)).FirstOrDefault(); //if (bizProcessesAudit == null) //{ // return new CustomJsonResult(ResultType.Success, "该订单已经处理完成"); //} //if (bizProcessesAudit.Auditor != null) //{ // if (bizProcessesAudit.Auditor.Value != operater) // { // return new CustomJsonResult(ResultType.Failure, "该订单其他用户正在处理"); // } //} var l_orderToCarClaim = CurrentDb.OrderToCarClaim.Where(m => m.Id == orderToCarClaim.Id).FirstOrDefault(); l_orderToCarClaim.WorkingHoursPrice = orderToCarClaim.WorkingHoursPrice; l_orderToCarClaim.AccessoriesPrice = orderToCarClaim.AccessoriesPrice; l_orderToCarClaim.EstimatePrice = orderToCarClaim.WorkingHoursPrice + orderToCarClaim.AccessoriesPrice; l_orderToCarClaim.Remarks = orderToCarClaim.Remarks; //bizProcessesAudit.CurrentDetails.AuditComments = orderToCarClaim.Remarks; var estimateOrderToCarClaim = CurrentDb.OrderToCarClaim.Where(m => m.PId == orderToCarClaim.Id).FirstOrDefault(); switch (operate) { case Enumeration.OperateType.Save: result = new CustomJsonResult(ResultType.Success, "保存成功"); BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, bizProcessesAudit.CurrentDetails.AuditComments, null); break; case Enumeration.OperateType.Cancle: l_orderToCarClaim.Status = Enumeration.OrderStatus.Cancled; l_orderToCarClaim.CancleTime = this.DateTime; estimateOrderToCarClaim.Status = Enumeration.OrderStatus.Cancled; estimateOrderToCarClaim.CancleTime = this.DateTime; BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyAmount, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, "后台人员撤销订单", this.DateTime); BizFactory.BizProcessesAudit.ChangeCarClaimDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarClaimDealtStatus.StaffCancle); result = new CustomJsonResult(ResultType.Success, "撤销成功"); break; case Enumeration.OperateType.Submit: estimateOrderToCarClaim.WorkingHoursPrice = l_orderToCarClaim.WorkingHoursPrice; estimateOrderToCarClaim.AccessoriesPrice = l_orderToCarClaim.AccessoriesPrice; CalculateCarClaimPayPrice calculateCarClaimPayPrice = new CalculateCarClaimPayPrice(l_orderToCarClaim.WorkingHoursPrice, l_orderToCarClaim.AccessoriesPrice); estimateOrderToCarClaim.EstimatePrice = l_orderToCarClaim.EstimatePrice; estimateOrderToCarClaim.Remarks = orderToCarClaim.Remarks; if (l_orderToCarClaim.RepairsType == Enumeration.RepairsType.EstimateRepair) { l_orderToCarClaim.Status = Enumeration.OrderStatus.Follow; l_orderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission; l_orderToCarClaim.Price = 0; estimateOrderToCarClaim.Status = Enumeration.OrderStatus.WaitPay; estimateOrderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission; estimateOrderToCarClaim.Price = calculateCarClaimPayPrice.PayPrice;//应付金额 } else if (l_orderToCarClaim.RepairsType == Enumeration.RepairsType.Estimate) { l_orderToCarClaim.Status = Enumeration.OrderStatus.WaitPay; l_orderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission; l_orderToCarClaim.Price = calculateCarClaimPayPrice.PayPrice;//应付金额 estimateOrderToCarClaim.Status = Enumeration.OrderStatus.Follow; estimateOrderToCarClaim.FollowStatus = (int)Enumeration.OrderToCarClaimFollowStatus.WaitPayCommission; estimateOrderToCarClaim.Price = 0; } BizFactory.BizProcessesAudit.ChangeAuditDetails(operate, Enumeration.CarClaimDealtStep.VerifyAmount, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, operater, bizProcessesAudit.CurrentDetails.AuditComments, "复核金额完成,提交给商户支付", this.DateTime); BizFactory.BizProcessesAudit.ChangeCarClaimDealtStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.CarClaimDealtStatus.Complete, "复核金额完成,提交给商户支付"); result = new CustomJsonResult(ResultType.Success, "提交成功"); break; } CurrentDb.SaveChanges(); ts.Complete(); } return(result); }
public CustomJsonResult 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); }