public ClientVisitInfoModel(ClientVisitInfo clientVisit) { this.Id = clientVisit.Id; this.VisitGroupId = clientVisit.VisitGroupId; this.Date = clientVisit.StatusDate; this.Firstname = clientVisit.Firstname; this.Secondname = clientVisit.Secondname; this.Lastname = clientVisit.Lastname; this.Birthday = clientVisit.Birthday; this.TemporaryPolicyNumber = clientVisit.TemporaryPolicyNumber; this.TemporaryPolicyDate = clientVisit.TemporaryPolicyDate; this.PolicyNumber = clientVisit.PolicyNumber; this.PolicySeries = clientVisit.PolicySeries; this.UnifiedPolicyNumber = clientVisit.UnifiedPolicyNumber; this.PolicyNumberDate = clientVisit.PolicyIssueDate; this.SNILS = clientVisit.SNILS; this.Secondname = clientVisit.Secondname; this.Status = clientVisit.Status; this.PolicyParty = clientVisit.PolicyParty; this.Sex = clientVisit.Sex; this.Scenario = clientVisit.Scenario; this.FundResponseApplyingMessage = clientVisit.FundResponseApplyingMessage; this.StatusDate = clientVisit.StatusDate; this.IsDifficultCase = clientVisit.IsDifficultCase; }
public ClientVisitFundInfoModel(ClientVisitInfo item) { Id = item.Id; Firstname = item.Firstname; Secondname = item.Secondname; Lastname = item.Lastname; Lastname = item.Lastname; PolicyNumber = item.PolicyNumber; PolicySeries = item.PolicySeries; PolicyPartyNumber = item.PolicyParty; UnifiedPolicyNumber = item.UnifiedPolicyNumber; FundResponseApplyingMessage = item.FundResponseApplyingMessage; IsReadyToFundSubmitRequest = item.IsReadyToFundSubmitRequest; IsDifficultCase = item.IsDifficultCase; Birthday = item.Birthday; Sex = item.Sex; Status = item.Status; Scenario = item.Scenario; StatusDate = item.StatusDate; DeliveryCenter = item.DeliveryCenter; }
public ClientVisit FindLastClientVisit(ClientVisit cv) { DataPage <ClientVisitInfo> foundClientVisits = new DataPage <ClientVisitInfo>(); ClientVisit lastClientVisit = null; ClientVisitSearchCriteria clientVisitSC = new ClientVisitSearchCriteria(); clientVisitSC.Firstname = cv.NewClientInfo.Firstname; clientVisitSC.Secondname = cv.NewClientInfo.Secondname; clientVisitSC.Lastname = cv.NewClientInfo.Lastname; clientVisitSC.Birthday = cv.NewClientInfo.Birthday; if (cv.TemporaryPolicyDate.HasValue) { clientVisitSC.TemporaryPolicyDateFrom = cv.TemporaryPolicyDate; clientVisitSC.TemporaryPolicyDateTo = cv.TemporaryPolicyDate; foundClientVisits = ClientVisit_Find( clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.TemporaryPolicyDateFrom = null; clientVisitSC.TemporaryPolicyDateTo = null; if (foundClientVisits.Count != 0) { long clientVisitId = foundClientVisits.OrderBy(item => item.StatusDate).ThenBy(item => item.Id).LastOrDefault().Id; return(ClientVisit_Get(clientVisitId)); } } if (!string.IsNullOrEmpty(cv.NewClientInfo.SNILS)) { clientVisitSC.SNILS = cv.NewClientInfo.SNILS; foundClientVisits = ClientVisit_Find( clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.SNILS = null; } if (cv.NewDocument.DocumentType != null && !string.IsNullOrEmpty(cv.NewDocument.Number)) { clientVisitSC.DocumentTypeId = cv.NewDocument.DocumentType.Id; clientVisitSC.DocumentSeries = cv.NewDocument.Series; clientVisitSC.DocumentNumber = cv.NewDocument.Number; foundClientVisits = ClientVisit_Find(clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.DocumentTypeId = null; clientVisitSC.DocumentSeries = null; clientVisitSC.DocumentNumber = null; } if (!string.IsNullOrEmpty(cv.NewPolicy.Series) && !string.IsNullOrEmpty(cv.NewPolicy.Number)) { clientVisitSC.PolicySeries = cv.NewPolicy.Series; clientVisitSC.PolicyNumber = cv.NewPolicy.Number; foundClientVisits = ClientVisit_Find(clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.PolicySeries = null; clientVisitSC.PolicyNumber = null; } if (!string.IsNullOrEmpty(cv.NewPolicy.UnifiedPolicyNumber)) { clientVisitSC.UnifiedPolicyNumber = cv.NewPolicy.UnifiedPolicyNumber; foundClientVisits = ClientVisit_Find(clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.UnifiedPolicyNumber = null; } ClientVisitInfo clientVisitInfo = foundClientVisits.OrderBy(item => item.StatusDate).LastOrDefault(); if (clientVisitInfo == null) { return(null); } lastClientVisit = ClientVisit_Get(clientVisitInfo.Id); return(lastClientVisit); }
/// <summary> /// Method to update visit group and create a new client visit for fund /// </summary> /// <param name="dbfFilePath">DBF file that contains information to update</param> /// <returns>Result of updating</returns> public List <ClientVisit.UpdateResultData> ClientVisit_UpdateFundDbf(User user, string dbfFilePath) { BSOBusinessLogic bsoBusinessLogic = new BSOBusinessLogic(); List <ClientVisit.UpdateData> dataToUpdate = ClientVisitReportDao.Instance.GetUpdateDataFromDbf(dbfFilePath); List <ClientVisit.UpdateResultData> results = new List <ClientVisit.UpdateResultData>(); foreach (var updateClientVisitItem in dataToUpdate) { var clientVisits = FindClientVisitsToUpdate(updateClientVisitItem); ClientVisitInfo lastClientVisitInfo = clientVisits.OrderBy(v => v.Id).LastOrDefault(); if (lastClientVisitInfo != null && (lastClientVisitInfo.Status.Id == ClientVisitStatuses.AnswerPending.Id || lastClientVisitInfo.Status.Id == ClientVisitStatuses.AnswerPending.Id || lastClientVisitInfo.Status.Id == ClientVisitStatuses.SubmitPending.Id || lastClientVisitInfo.Status.Id == ClientVisitStatuses.SentToGoznak.Id || lastClientVisitInfo.Status.Id == ClientVisitStatuses.Processed.Id || lastClientVisitInfo.Status.Id == ClientVisitStatuses.Comment.Id)) { ClientVisit visit = ClientVisit_Get(lastClientVisitInfo.Id); // create new clientVisit to update policy information in the fund if (visit.Status.Id != ClientVisitStatuses.PolicyReadyForClient.Id) { ClientVisit.SaveData data = BuildUpdatedClientVisitSaveData(updateClientVisitItem, visit); ClientVisitSaveResult updatingResult = ClientVisit_Save(user, data); //если bso будет найден - ему меняем статус на "Выдан клиенту" BSO bso = new BSO(); bso = bsoBusinessLogic.BSO_GetByNumber(updateClientVisitItem.TemporaryPolicyNumber); if (bso != null) { if (bso.Status.Id == (long)ListBSOStatusID.OnDelivery || bso.Status.Id == (long)ListBSOStatusID.OnStorage) { bso.Status.Id = (long)ListBSOStatusID.OnClient; bso.UserId = user.Id; bso.DeliveryPointId = data.DeliveryPointId == null ? bso.DeliveryPointId : data.DeliveryPointId; //Если точка пустая - оставляем Точку, кот. была в БСО bso.StatusDate = data.TemporaryPolicyDate == null ? data.StatusDate : data.TemporaryPolicyDate; bso.Comment = string.Format("Изменение статуса при загрузке DBF (Загрузить DBF из фонда)"); bso.VisitGroupId = updatingResult.VisitGroupId; } else { //если bso уже выдан клиенту - то дальнейшие действия с БСО не имеют значения bso = null; } } // set status for created client visit ClientVisit_SetStatus(user, updatingResult.ClientVisitID, ClientVisitStatuses.PolicyReadyForClient.Id, true); if (bso != null) { bsoBusinessLogic.BSO_Save(new BSO.SaveData(bso)); } results.Add(new ClientVisit.UpdateResultData(updateClientVisitItem, true, "Успешно", visit) { Status = ClientVisitStatuses.PolicyReadyForClient }); } else { results.Add(new ClientVisit.UpdateResultData(updateClientVisitItem, true, "Заявка на выдачу была создана ранее", visit)); } } else { results.Add(new ClientVisit.UpdateResultData(updateClientVisitItem, true, "Заявка в подходящем статусе не найдена")); } } return(results); }
public List <ClientVisit.UpdateResultData> UploadMFCClientVisitsExtradition(User user, string zipFilepath) { List <ClientVisit.UpdateResultData> report = new List <ClientVisit.UpdateResultData>(); string zipDirectoryName = Path.Combine(ConfiguraionProvider.FileStorageFolder, Path.GetFileNameWithoutExtension(zipFilepath)); ZipHelper.UnZipFiles(zipFilepath, zipDirectoryName); string[] filenames = Directory.GetFiles(zipDirectoryName); string file = filenames.FirstOrDefault(); System.IO.FileInfo fileInfo = new System.IO.FileInfo(file); DataTable table = DBFProcessor.GetDataTable(file, string.Format("select * from \"{0}\";", fileInfo.FullName)); foreach (DataRow row in table.Rows) { string unifiedPolicyNumber = (string)row["ENP"]; string temporaryPolicyNumber = (string)row["VSN"]; DateTime issueDate = (DateTime)row["DATE_V"]; ClientVisitInfo clientVisitInfo = clientBusinessLogic.ClientVisit_Find( new ClientVisitSearchCriteria() { TemporaryPolicyNumber = temporaryPolicyNumber }, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest()).Data.FirstOrDefault(); if (clientVisitInfo != null) { ClientVisit visit = clientBusinessLogic.ClientVisit_GetLastClientVisitInGroup(clientVisitInfo.VisitGroupId); ClientVisit.SaveData data = ClientVisit.SaveData.BuildSaveData(visit); data.ScenarioId = ClientVisitScenaries.PolicyExtradition.Id; data.Status = ClientVisitStatuses.PolicyIssuedAndSentToTheFond.Id; data.StatusDate = issueDate; data.IssueDate = issueDate; data.NewPolicy.UnifiedPolicyNumber = unifiedPolicyNumber; clientBusinessLogic.ClientVisit_Save(user, data, data.IssueDate); report.Add(new ClientVisit.UpdateResultData() { Birthday = visit.NewClientInfo.Birthday, ClientId = visit.ClientId, ClientVisitGroupId = visit.VisitGroupId, Firstname = visit.NewClientInfo.Firstname, Id = visit.Id, IsSuccess = true, Lastname = visit.NewClientInfo.Lastname, Secondname = visit.NewClientInfo.Secondname, Sex = int.Parse(visit.NewClientInfo.Sex), Status = ClientVisitStatuses.PolicyIssuedAndSentToTheFond, UnifiedPolicyNumber = unifiedPolicyNumber, Message = "Успешно" }); } else { report.Add(new ClientVisit.UpdateResultData() { IsSuccess = false, UnifiedPolicyNumber = unifiedPolicyNumber, Message = "Не найден" }); } } return(report); }
public ActionResult CheckBSOinVisitGroup(long id, long visitGroupId, string bso) { if (!string.IsNullOrEmpty(bso)) { bso = bso.Trim(); } else {//если поле было просто очищено - то не реагируем return(Json(new { result = "OK", message = "bso было очищено" })); } try { Client client = clientBusinessLogic.Client_Get(new Entities.User { Roles = { Entities.Core.Role.Administrator } }, id); if (client == null) { return(Json(new { result = "OK", message = "client is null" })); } ClientVisitInfo VG = client.Visits.Where(a => a.VisitGroupId == visitGroupId).Where(b => !string.IsNullOrEmpty(b.TemporaryPolicyNumber)).FirstOrDefault(); if (VG == null || string.IsNullOrEmpty(VG.TemporaryPolicyNumber)) { return(Json(new { result = "OK", message = " vg bso is null" })); } BSO BSOinVG = bsoBusinessLogic.BSO_GetByNumber(VG.TemporaryPolicyNumber); if (BSOinVG == null) { return(Json(new { result = "OK", message = "bso is null" })); } if (BSOinVG.TemporaryPolicyNumber == bso) { return(Json(new { result = "OK", message = "Все Ок" })); } else { if (BSOinVG.Status.Id == (long)ListBSOStatusID.OnClient) { return(Json(new { result = "Error", message = "ВНИМАНИЕ! На данное обращение уже выдан БСО №" + BSOinVG.TemporaryPolicyNumber + "." + Environment.NewLine + "При необходимости создайте новое обращение. Если бланк испорчен, отметьте это." })); } //Если, например, бланк испорчен, то позволять выписать еще один БСО. if (BSOinVG.Status.Id == (long)ListBSOStatusID.FailGotoStorage || BSOinVG.Status.Id == (long)ListBSOStatusID.FailOnResponsible || BSOinVG.Status.Id == (long)ListBSOStatusID.FailOnStorage) { return(Json(new { result = "OK", message = "Все Ок" })); } } return(Json(new { result = "OK", message = "Все Ок" })); } catch (Exception ex) { return(Json(new { result = "Error", message = ex.Message })); } }