示例#1
0
 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;
 }
示例#2
0
 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;
 }
示例#3
0
        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);
        }
示例#4
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);
        }
        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);
        }
示例#6
0
        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 }));
            }
        }