/// <summary> /// Create or update client visit /// </summary> /// <param name="saveData">Data to save client visit</param> /// <returns>Identifiers of saved client visit</returns> public ClientVisitSaveResult ClientVisit_Save(User user, ClientVisit.SaveData saveData, DateTime?saveDate = null) { if (saveData == null) { throw new ArgumentNullException("createData can't be null"); } if (saveData.ClientId.HasValue) { Client client = Client_Get(user, saveData.ClientId.Value); if (client == null) { throw new DataObjectNotFoundException(string.Format("Клиент с идентификатором {0} не найден", saveData.ClientId.Value)); } } SetPolicyEndDate(saveData); SetGoznakType(saveData); SetPolicy(saveData); SetStatus(saveData); ClientVisitSaveResult result = ClientDao.Instance.ClientVisit_Save(saveData, user.Id, saveDate); SetStatusForReceivedPolicies(user, saveData); return(result); }
public ActionResult AddToClient(ClientVisitSaveDataModel model) { long clientId = model.ClientId.Value; model.Validate(new ModelValidationContext() { currenUser = CurrentUser }); model.IsSuccessfullySaved = model.IsValid(); if (!model.IsValid()) { model.TemporaryPolicyNumber = string.Empty; return(View("Details", model)); } else { ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData()); model.VisitGroupId = result.VisitGroupId; model.ClientId = result.ClientID; model.VisitId = result.ClientVisitID; if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber)) { BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber)); bsoBusinessLogic.BSO_Save((bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser)).GetBSOSaveData()); } model.SetFlagPrintReport(); //return View("Create", model); return(View("Details", model)); //нет //return RedirectToAction("Details", "Client", new { id = clientId }); } }
public ActionResult Create(ClientVisitSaveDataModel model) { model.Comment = model.Comment + Environment.NewLine + " Место выдачи: " + model.DeliveryCenters.Where(a => a.Value == model.DeliveryCenterId.ToString()).Select(b => b.Text).FirstOrDefault() + Environment.NewLine + " Категория клиента: " + model.UralsibClientCategories.Where(a => a.Value == model.ClientCategoryId.ToString()).Select(b => b.Text).FirstOrDefault() + Environment.NewLine; model.Registrator = new UserModel(userBusinessLogic.User_GetByLogin(this.HttpContext.User.Identity.Name)); model.Validate(new ModelValidationContext() { currenUser = CurrentUser }); model.IsSuccessfullySaved = model.IsValid(); if (model.IsValid()) { ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData()); model.VisitGroupId = result.VisitGroupId; model.VisitId = result.ClientVisitID; model.ClientId = result.ClientID; if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber)) { BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber)); bsoBusinessLogic.BSO_Save((bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser)).GetBSOSaveData()); } //return RedirectToAction("Details", "Client", new { id = result.ClientID }); model.SetFlagPrintReport(); return(View(model)); } else { return(View(model)); } }
public long User_Save(User.SaveData data) { List <SqlParameter> parameters = new List <SqlParameter>(); parameters.AddInputParameter("@Login", SqlDbType.NVarChar, data.Login); parameters.AddInputParameter("@PasswordHash", SqlDbType.NVarChar, data.PasswordHash); parameters.AddInputParameter("@DepartmentId", SqlDbType.BigInt, data.DepartmentId); parameters.AddInputParameter("@DeliveryPointId", SqlDbType.BigInt, data.DeliveryPointId); parameters.AddInputParameter("@Firstname", SqlDbType.NVarChar, data.Firstname); parameters.AddInputParameter("@Secondname", SqlDbType.NVarChar, data.Secondname); parameters.AddInputParameter("@Lastname", SqlDbType.NVarChar, data.Lastname); parameters.AddInputParameter("@Roles", SqlDbType.Structured, DaoHelper.GetObjectIds(data.Roles)); parameters.AddInputParameter("@SaveDate", SqlDbType.DateTime, DateTime.Now); parameters.AddInputParameter("@Position", SqlDbType.NVarChar, data.Position); parameters.AddInputParameter("@Email", SqlDbType.NVarChar, data.Email); parameters.AddInputParameter("@Phone", SqlDbType.NVarChar, data.Phone); SqlParameter userId = parameters.AddInputOutputParameter("@UserID", SqlDbType.BigInt, data.Id); Execute_StoredProcedure("User_Save", parameters); ClientVisitSaveResult result = new ClientVisitSaveResult(); result.ClientID = (long)userId.Value; return((long)userId.Value); }
private static void Process(ClientVisit.SaveData clientVisit) { bool isSuccess = false; try { ClientVisitSearchCriteria clientVisitSC = new ClientVisitSearchCriteria(); clientVisitSC.Firstname = clientVisit.NewClientInfo.Firstname; clientVisitSC.Secondname = clientVisit.NewClientInfo.Secondname; clientVisitSC.Lastname = clientVisit.NewClientInfo.Lastname; clientVisitSC.Birthday = clientVisit.NewClientInfo.Birthday; DataPage <ClientVisitInfo> foundClients = new DataPage <ClientVisitInfo>(); if (!string.IsNullOrEmpty(clientVisit.NewClientInfo.SNILS)) { clientVisitSC.SNILS = clientVisit.NewClientInfo.SNILS; foundClients = ClientDao.Instance.ClientVisit_Find( clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.SNILS = null; } if (clientVisit.NewDocument.DocumentTypeId.HasValue && !string.IsNullOrEmpty(clientVisit.NewDocument.Number)) { clientVisitSC.DocumentTypeId = clientVisit.NewDocument.DocumentTypeId; clientVisitSC.DocumentSeries = clientVisit.NewDocument.Series; clientVisitSC.DocumentNumber = clientVisit.NewDocument.Number; foundClients = ClientDao.Instance.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(clientVisit.NewPolicy.Series) && !string.IsNullOrEmpty(clientVisit.NewPolicy.Number)) { clientVisitSC.PolicySeries = clientVisit.NewPolicy.Series; clientVisitSC.PolicyNumber = clientVisit.NewPolicy.Number; foundClients = ClientDao.Instance.ClientVisit_Find(clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.PolicySeries = null; clientVisitSC.PolicyNumber = null; } if (!string.IsNullOrEmpty(clientVisit.NewPolicy.UnifiedPolicyNumber)) { clientVisitSC.UnifiedPolicyNumber = clientVisit.NewPolicy.UnifiedPolicyNumber; foundClients = ClientDao.Instance.ClientVisit_Find(clientVisitSC, new List <SortCriteria <ClientVisitSortField> >(), new PageRequest() { PageNumber = 1, PageSize = 10 }); clientVisitSC.UnifiedPolicyNumber = null; } if (foundClients.Count != 0) { clientVisit.ClientId = foundClients.OrderBy(item => item.StatusDate).LastOrDefault().ClientId; } if (clientVisit.Status == 0) { clientVisit.Status = 12; } ClientVisitSaveResult result = ClientDao.Instance.ClientVisit_Save(clientVisit, 1, clientVisit.StatusDate ?? new DateTime(1900, 1, 1)); ClientDao.Instance.ClientVisit_SetStatus(1, result.ClientVisitID, clientVisit.Status.Value, true, clientVisit.StatusDate ?? new DateTime(1900, 1, 1)); isSuccess = true; ClientDataDao.Instance.SetProcessed(clientVisit.UniqueId.Value, isSuccess); } catch (SqlTypeException ex) { isSuccess = false; ClientDataDao.Instance.SetProcessed(clientVisit.UniqueId.Value, isSuccess); } catch (SqlException ex) { if (ex.Message.Contains("The data for table-valued parameter \"@Representative\"")) { isSuccess = false; ClientDataDao.Instance.SetProcessed(clientVisit.UniqueId.Value, isSuccess); } else { throw ex; } } catch { isSuccess = false; ClientDataDao.Instance.SetProcessed(clientVisit.UniqueId.Value, isSuccess); } Console.WriteLine(string.Format(" {0} {1} {2} {3} {4}", clientVisit.OldSystemId.ToString(), clientVisit.NewClientInfo.Lastname ?? string.Empty, clientVisit.NewClientInfo.Firstname ?? string.Empty, clientVisit.NewClientInfo.Secondname ?? string.Empty, isSuccess.ToString())); }
/// <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 ClientVisitSaveResult ClientVisit_Save(ClientVisit.SaveData saveData, long?currentUserId, DateTime?saveDate = null) { List <SqlParameter> parameters = new List <SqlParameter>(); SaveClientVisitTableSet clientVisitTableSet = new SaveClientVisitTableSet(saveData, saveData.ClientId); parameters.AddInputParameter("@UserId", SqlDbType.BigInt, currentUserId); parameters.AddInputParameter("@RegistratorId", SqlDbType.BigInt, saveData.RegistratorId); parameters.AddInputParameter("@DeliveryCenterId", SqlDbType.BigInt, saveData.DeliveryCenterId); parameters.AddInputParameter("@TemporaryPolicyDate", SqlDbType.DateTime, saveData.TemporaryPolicyDate); parameters.AddInputParameter("@TemporaryPolicyExpirationDate", SqlDbType.DateTime, saveData.TemporaryPolicyExpirationDate); parameters.AddInputParameter("@TemporaryPolicyNumber", SqlDbType.NVarChar, saveData.TemporaryPolicyNumber); parameters.AddInputParameter("@ScenarioId", SqlDbType.BigInt, saveData.ScenarioId); parameters.AddInputParameter("@GOZNAKTypeId", SqlDbType.BigInt, saveData.GOZNAKTypeId); parameters.AddInputParameter("@IssueDate", SqlDbType.DateTime, saveData.IssueDate); parameters.AddInputParameter("@IsActual", SqlDbType.Bit, saveData.IsActual); parameters.AddInputParameter("@InfoSource", SqlDbType.NVarChar, saveData.InfoSource); parameters.AddInputParameter("@DeregistrationDate", SqlDbType.DateTime, saveData.DeregistrationDate); parameters.AddInputParameter("@ArchivationDate", SqlDbType.DateTime, saveData.ArchivationDate); parameters.AddInputParameter("@AttachmentDate", SqlDbType.DateTime, saveData.AttachmentDate); parameters.AddInputParameter("@AttachmentTypeId", SqlDbType.BigInt, saveData.AttachmentTypeId); parameters.AddInputParameter("@MedicalCentreId", SqlDbType.BigInt, saveData.MedicalCentreId); parameters.AddInputParameter("@CarrierId", SqlDbType.BigInt, saveData.CarrierId); parameters.AddInputParameter("@ApplicationMethodId", SqlDbType.BigInt, saveData.ApplicationMethodId); parameters.AddInputParameter("@Comment", SqlDbType.NVarChar, saveData.Comment); parameters.AddInputParameter("@GOZNAKDate", SqlDbType.Date, saveData.GOZNAKDate); parameters.AddInputParameter("@ClientCategoryId", SqlDbType.BigInt, saveData.ClientCategoryId); parameters.AddInputParameter("@DeliveryPointId", SqlDbType.BigInt, saveData.DeliveryPointId); parameters.AddInputParameter("@ClientAcquisitionEmployee", SqlDbType.NVarChar, saveData.ClientAcquisitionEmployee); parameters.AddInputParameter("@ClientContacts", SqlDbType.NVarChar, saveData.ClientContacts); parameters.AddInputParameter("@Email", SqlDbType.NVarChar, saveData.Email); parameters.AddInputParameter("@UralsibCard", SqlDbType.Bit, saveData.UralsibCard); parameters.AddInputParameter("@Blanc", SqlDbType.NVarChar, saveData.Blanc); parameters.AddInputParameter("@N_KOR", SqlDbType.NVarChar, saveData.N_KOR); parameters.AddInputParameter("@DATA_FOND", SqlDbType.Date, saveData.DATA_FOND); parameters.AddInputParameter("@NZ_GOZNAK", SqlDbType.NVarChar, saveData.NZ_GOZNAK); parameters.AddInputParameter("@Dat_U", SqlDbType.Date, saveData.Dat_U); parameters.AddInputParameter("@Dat_S", SqlDbType.Date, saveData.Dat_S); parameters.AddInputParameter("@SignatureFileName", SqlDbType.NVarChar, saveData.SignatureFileName); parameters.AddInputParameter("@PhotoFileName", SqlDbType.NVarChar, saveData.PhotoFileName); parameters.AddInputParameter("@Phone", SqlDbType.NVarChar, saveData.Phone); parameters.AddInputParameter("@PartyNumber", SqlDbType.NVarChar, saveData.PolicyPartyNumber); parameters.AddInputParameter("@FundResponseApplyingMessage", SqlDbType.NVarChar, saveData.FundResponseApplyingMessage); parameters.AddInputParameter("@IsReadyToFundSubmitRequest", SqlDbType.Bit, saveData.IsReadyToFundSubmitRequest); parameters.AddInputParameter("@IsDifficultCase", SqlDbType.Bit, saveData.IsDifficultCase); parameters.AddInputParameter("@OldClientVersion", SqlDbType.Structured, clientVisitTableSet.OldClientVersionDataTable); parameters.AddInputParameter("@NewClientVersion", SqlDbType.Structured, clientVisitTableSet.NewClientVersionDataTable); parameters.AddInputParameter("@OldDocument", SqlDbType.Structured, clientVisitTableSet.OldDocumentDataTable); parameters.AddInputParameter("@NewDocument", SqlDbType.Structured, clientVisitTableSet.NewDocumentDataTable); parameters.AddInputParameter("@OldForeignDocument", SqlDbType.Structured, clientVisitTableSet.OldForeignDocument); parameters.AddInputParameter("@NewForeignDocument", SqlDbType.Structured, clientVisitTableSet.NewForeignDocument); parameters.AddInputParameter("@LivingAddress", SqlDbType.Structured, clientVisitTableSet.LivingAddressDataTable); parameters.AddInputParameter("@RegistrationAddress", SqlDbType.Structured, clientVisitTableSet.RegisterAddressDataTable); parameters.AddInputParameter("@RegistrationAddressDate", SqlDbType.DateTime, saveData.RegistrationAddressDate); parameters.AddInputParameter("@OldPolicyInfo", SqlDbType.Structured, clientVisitTableSet.OldPolicyInfoDataTable); parameters.AddInputParameter("@NewPolicyInfo", SqlDbType.Structured, clientVisitTableSet.NewPolicyInfoDataTable); parameters.AddInputParameter("@Representative", SqlDbType.Structured, clientVisitTableSet.RepresentativeDataTable); parameters.AddInputParameter("@StatusID", SqlDbType.BigInt, saveData.Status); parameters.AddInputParameter("@StatusDate", SqlDbType.DateTime, saveData.StatusDate); parameters.AddInputParameter("@OldSystemID", SqlDbType.BigInt, saveData.OldSystemId); parameters.AddInputParameter("@SaveDate", SqlDbType.DateTime, saveDate ?? DateTime.Now); SqlParameter clientVisitID = parameters.AddInputOutputParameter("@ClientVisitID", SqlDbType.BigInt, saveData.Id); SqlParameter clientVersionID = parameters.AddOutputParameter("@NewClientVersionID", SqlDbType.BigInt); SqlParameter clientID = parameters.AddInputOutputParameter("@ClientID", SqlDbType.BigInt, saveData.ClientId); SqlParameter VisitGroupId = parameters.AddInputOutputParameter("@VisitGroupId", SqlDbType.BigInt, saveData.VisitGroupId); Execute_StoredProcedure("ClientVisit_Save", parameters); ClientVisitSaveResult result = new ClientVisitSaveResult(); result.ClientID = (long)clientID.Value; result.NewClientVersionID = (long)clientVersionID.Value; result.ClientVisitID = (long)clientVisitID.Value; result.VisitGroupId = (long)VisitGroupId.Value; return(result); }
public ActionResult Edit(long?id, ClientVisitSaveDataModel model) { model.Validate(new ModelValidationContext() { currenUser = CurrentUser }); model.IsSuccessfullySaved = model.IsValid(); model.Registrator = new UserModel(userBusinessLogic.User_Get(model.Registrator.Id.Value)); if (Request.IsAjaxRequest()) { if (model.IsValid()) { ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData()); model.VisitGroupId = result.VisitGroupId; model.ClientId = result.ClientID; model.VisitId = result.ClientVisitID; if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber)) { BSO bso = bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber); BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bso); bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser); bsoSaveDataModel.Validate(new ModelValidationContext()); bsoSaveDataModel.IsSuccessfullySaved = model.IsValid(); if (bsoSaveDataModel.IsValid()) { bsoBusinessLogic.BSO_Save(bsoSaveDataModel.GetBSOSaveData()); } } ClientVisitSaveDataModel m = new ClientVisitSaveDataModel(CurrentUser, clientBusinessLogic.ClientVisit_Get(model.VisitId.Value)); m.GetMessagesNotCritical(model); m.IsSuccessfullySaved = true; m.SetFlagPrintReport(); return(PartialView("Edit", m)); } else { return(PartialView("Edit", model)); } } else { var t = model.IsValid(); var tt = model.IsValidNotCritical(); if (model.IsValid()) { ClientVisitSaveResult result = clientBusinessLogic.ClientVisit_Save(CurrentUser, model.GetClientVisitSaveData()); model.VisitGroupId = result.VisitGroupId; model.ClientId = result.ClientID; model.VisitId = result.ClientVisitID; //TempData["ClientVisitSaveDataModel"] = new ClientVisitSearchCriteriaModel() TempData["ClientVisitSaveDataModel"] = new ClientSearchCriteriaModel() { Firstname = model.NewClientInfo.Firstname, Secondname = model.NewClientInfo.Secondname, Lastname = model.NewClientInfo.Lastname, Birthday = model.NewClientInfo.Birthday }; if (!string.IsNullOrEmpty(model.TemporaryPolicyNumber)) { BSO bso = bsoBusinessLogic.BSO_GetByNumber(model.TemporaryPolicyNumber); if (bso != null) { BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel(bso); bsoSaveDataModel.UpdateBSOIssuedClient(model, CurrentUser); bsoSaveDataModel.Validate(new ModelValidationContext()); bsoSaveDataModel.IsSuccessfullySaved = model.IsValid(); if (bsoSaveDataModel.IsValid()) { bsoBusinessLogic.BSO_Save(bsoSaveDataModel.GetBSOSaveData()); } } } //Если нет никаких ошибок вообще - перебрасываем в Клиенты с поиском этого клиента if (model.IsValidNotCritical()) { return(RedirectToAction("Index", "Client")); } else { return(View("Details", model)); } //return RedirectToAction("Index"); } else { return(View("Details", model)); } } }