Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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 });
            }
        }
Beispiel #3
0
        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));
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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()));
        }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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));
                }
            }
        }