Beispiel #1
0
        public ActionResult Actuals(ClientVisitListModel clientVisitModel)
        {
            ClientVisitSearchCriteria criteria = clientVisitModel.SearchCriteriaModel.GetClientSearchCriteria();

            criteria.IsActualInVisitGroup = true;
            DataPage <ClientVisitInfo> clients = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = clientVisitModel.PageNumber, PageSize = clientVisitModel.PageSize
            });

            ClientVisitListModel model = new ClientVisitListModel()
            {
                Items = clients.Data
                        .Select(item => new ClientVisitInfoModel(item)),
                SearchCriteriaModel = new ClientVisitSearchCriteriaModel(
                    criteria),
                PageNumber = clientVisitModel.PageNumber,
                PageSize   = clientVisitModel.PageSize,
                TotalCount = clients.TotalCount
            };

            return(View(model));
        }
        public ClientVisitSearchCriteria GetClientSearchCriteria()
        {
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria()
            {
                Firstname                       = this.Firstname,
                Secondname                      = this.Secondname,
                Lastname                        = this.Lastname,
                Birthday                        = this.Birthday,
                PartyNumber                     = this.PartyNumber,
                TemporaryPolicyNumber           = this.TemporaryPolicyNumber,
                TemporaryPolicyDateFrom         = this.TemporaryPolicyDateFrom,
                TemporaryPolicyDateTo           = this.TemporaryPolicyDateTo,
                UpdateDateFrom                  = this.UpdateDateFrom,
                UpdateDateTo                    = this.UpdateDateTo,
                PolicyDateFrom                  = this.PolicyDateFrom,
                PolicyDateTo                    = this.PolicyDateTo,
                PolicySeries                    = this.PolicySeries,
                PolicyNumber                    = this.PolicyNumber,
                StatusIds                       = this.StatusIds,
                ScenarioIds                     = this.ScenarioIds,
                DeliveryCenterIds               = this.DeliveryCenterIds,
                DeliveryPointIds                = this.DeliveryPointIds,
                StatusDateFrom                  = this.StatusDateFrom,
                StetusDateTo                    = this.StatusDateTo,
                IsTemporaryPolicyNumberNotEmpty = this.IsTemporaryPolicyNumberNotEmpty,
                IsReadyToFundSubmitRequest      = this.IsReadyToFundSubmitRequest,
                IsActualInVisitGroup            = this.IsActualInVisitGroup,
                UserId          = this.UserId,
                IsDifficultCase = this.IsDifficultCase
            };

            return(criteria);
        }
Beispiel #3
0
 public byte[] FileReport_Get(
     ClientVisitSearchCriteria criteria,
     List <SortCriteria <ClientVisitSortField> > sortCriteria,
     PageRequest pageRequest)
 {
     return(ClientVisitReportDao.Instance.GetClientVisitsReport(criteria, sortCriteria, pageRequest));
 }
        public ActionResult StatusReport(StatusReportModel model)
        {
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.StatusIds            = model.StatusIds;
            criteria.IsActualInVisitGroup = true;
            criteria.StatusDateFrom       = model.StatusDateFrom;
            criteria.StetusDateTo         = (model.StatusDateTo);
            //criteria.Lastname = "Иванов1";
            //criteria.Firstname = "Иван";
            //criteria.Secondname = "Иванович";
            List <ClientVisitInfo> clientVisits = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = int.MaxValue
            }).Data;
            var           Statuses   = ReferencesProvider.GetReferenceItems(Constants.ClientVisitStatusRef);
            List <string> listStatus = new List <string>();

            listStatus = Statuses.Where(item => (model.StatusIds).Contains(item.Id)).Select(a => a.Name).ToList();
            StatusReport printedForm = new StatusReport(clientVisits, model.StatusDateFrom, model.StatusDateTo, listStatus);

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Отчет по статусам {0}.xlsx", DateTime.Now.ToShortDateString())));
        }
        public ActionResult PolicyExtraitionSignatureList(PartyJournalModel model)
        {
            if (string.IsNullOrEmpty(model.PartyNumber))
            {
                return(new EmptyResult());
            }
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.PartyNumber       = model.PartyNumber;
            criteria.DeliveryCenterIds = new List <long>();
            if (model.DeliveryCenterId.HasValue)
            {
                criteria.DeliveryCenterIds.Add(model.DeliveryCenterId.Value);
            }
            criteria.DeliveryPointIds = new List <long>();
            if (model.DeliveryPointId.HasValue)
            {
                criteria.DeliveryPointIds.Add(model.DeliveryPointId.Value);
            }
            criteria.IsActualInVisitGroup = true;
            List <ClientVisitInfo> clientVisits = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = int.MaxValue
            }).Data;
            PolicyExtraitionSignatureList printedForm = new PolicyExtraitionSignatureList(clientVisits);

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Журнал_{0}.xls", model.PartyNumber)));
        }
        public ActionResult AllocationBSO(AllocationBSOModel model)
        {
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.PartyNumber             = model.PartyNumber;
            criteria.DeliveryCenterIds       = model.DeliveryCenterIds; // new List<long>();
            criteria.DeliveryPointIds        = model.DeliveryPointIds;  //new List<long>();
            criteria.IsActualInVisitGroup    = true;
            criteria.TemporaryPolicyDateFrom = model.AllocationBSODateFrom;
            criteria.TemporaryPolicyDateTo   = (model.AllocationBSODateTo);
            List <ClientVisitInfo> clientVisits = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = int.MaxValue
            }).Data;

            if (clientVisits.Count > 65500)
            {
                return(RedirectToAction("Index", "PrintedForms",
                                        new { m = string.Format("Получено слишком много записей ({0}) в отчете по распределению БСО. Сузьте диапазон выбора!", clientVisits.Count) }));
            }
            AllocationBSO printedForm = new AllocationBSO(clientVisits);

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Отчет по распределению БСО_{0}.xlsx", DateTime.Now.ToShortDateString())));
        }
 public ClientVisitSearchCriteriaModel(ClientVisitSearchCriteria criteria)
 {
     Firstname               = criteria.Firstname;
     Secondname              = criteria.Secondname;
     Lastname                = criteria.Lastname;
     Birthday                = criteria.Birthday;
     TemporaryPolicyNumber   = criteria.TemporaryPolicyNumber;
     TemporaryPolicyDateFrom = criteria.TemporaryPolicyDateFrom;
     TemporaryPolicyDateTo   = criteria.TemporaryPolicyDateTo;
     IsActualInVisitGroup    = criteria.IsActualInVisitGroup;
     UpdateDateFrom          = criteria.UpdateDateFrom;
     UpdateDateTo            = criteria.UpdateDateTo;
     PolicyDateFrom          = criteria.PolicyDateFrom;
     PolicyDateTo            = criteria.PolicyDateTo;
     PolicySeries            = criteria.PolicySeries;
     PolicyNumber            = criteria.PolicyNumber;
     PartyNumber             = criteria.PartyNumber;
     StatusIds               = criteria.StatusIds;
     ScenarioIds             = criteria.ScenarioIds;
     DeliveryCenterIds       = criteria.DeliveryCenterIds;
     DeliveryPointIds        = criteria.DeliveryPointIds;
     StatusDateFrom          = criteria.StatusDateFrom;
     StatusDateTo            = criteria.StetusDateTo;
     UserId = criteria.UserId;
 }
Beispiel #8
0
        public DataPage <ClientVisitInfo> ClientVisit_Find(
            ClientVisitSearchCriteria criteria,
            List <SortCriteria <ClientVisitSortField> > sortCriteria,
            PageRequest pageRequest)
        {
            List <SqlParameter> parameters = new List <SqlParameter>();

            parameters.AddInputParameter("@ID", SqlDbType.BigInt, criteria.Id);
            parameters.AddInputParameter("@UnifiedPolicyNumber", SqlDbType.NVarChar, criteria.UnifiedPolicyNumber);
            parameters.AddInputParameter("@SNILS", SqlDbType.NVarChar, criteria.SNILS);
            parameters.AddInputParameter("@DocumentTypeId", SqlDbType.BigInt, criteria.DocumentTypeId);
            parameters.AddInputParameter("@DocumentNumber", SqlDbType.NVarChar, criteria.DocumentNumber);
            parameters.AddInputParameter("@DocumentSeries", SqlDbType.NVarChar, criteria.DocumentSeries);

            parameters.AddInputParameter("@TemporaryPolicyNumber", SqlDbType.NVarChar, criteria.TemporaryPolicyNumber);
            parameters.AddInputParameter("@TemporaryPolicyDateFrom", SqlDbType.DateTime, criteria.TemporaryPolicyDateFrom);
            parameters.AddInputParameter("@TemporaryPolicyDateTo", SqlDbType.DateTime, criteria.TemporaryPolicyDateTo);
            parameters.AddInputParameter("@PolicyNumber", SqlDbType.NVarChar, criteria.PolicyNumber);
            parameters.AddInputParameter("@PolicySeries", SqlDbType.NVarChar, criteria.PolicySeries);
            parameters.AddInputParameter("@PolicyDateFrom", SqlDbType.DateTime, criteria.PolicyDateFrom);
            parameters.AddInputParameter("@PolicyDateTo", SqlDbType.DateTime, criteria.PolicyDateTo);
            parameters.AddInputParameter("@UpdateDateFrom", SqlDbType.DateTime, criteria.UpdateDateFrom);
            parameters.AddInputParameter("@UpdateDateTo", SqlDbType.DateTime, criteria.UpdateDateTo);
            parameters.AddInputParameter("@StatusDateFrom", SqlDbType.DateTime, criteria.StatusDateFrom);
            parameters.AddInputParameter("@StatusDateTo", SqlDbType.DateTime, criteria.StetusDateTo);

            parameters.AddInputParameter("@Firstname", SqlDbType.NVarChar, criteria.Firstname);
            parameters.AddInputParameter("@Secondname", SqlDbType.NVarChar, criteria.Secondname);
            parameters.AddInputParameter("@Lastname", SqlDbType.NVarChar, criteria.Lastname);

            parameters.AddInputParameter("@UserId", SqlDbType.BigInt, criteria.UserId);

            parameters.AddInputParameter("@Birthday", SqlDbType.Date, criteria.Birthday);
            parameters.AddInputParameter("@PartyNumber", SqlDbType.NVarChar, criteria.PartyNumber);
            parameters.AddInputParameter("@DeliveryCenterIds", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.DeliveryCenterIds));
            parameters.AddInputParameter("@DeliveryPointIds", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.DeliveryPointIds));
            parameters.AddInputParameter("@StatusIds", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.StatusIds));
            parameters.AddInputParameter("@ScenarioIds", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.ScenarioIds));
            parameters.AddInputParameter("@IsTemporaryPolicyNumberNotEmpty", SqlDbType.Bit, criteria.IsTemporaryPolicyNumberNotEmpty);
            parameters.AddInputParameter("@IsActualInVisitGroup", SqlDbType.Bit, criteria.IsActualInVisitGroup);
            parameters.AddInputParameter("@IsReadyToFundSubmitRequest", SqlDbType.Bit, criteria.IsReadyToFundSubmitRequest);
            parameters.AddInputParameter("@IsDifficultCase", SqlDbType.Bit, criteria.IsDifficultCase);

            SqlParameter totalCountParameter = parameters.AddOutputParameter("@total_count", SqlDbType.Int);

            parameters.AddInputParameter("@sort_criteria", SqlDbType.Structured, DaoHelper.GetSortFieldsTable(sortCriteria));

            parameters.AddInputParameter("@Page_size", SqlDbType.Int, pageRequest.PageSize);
            parameters.AddInputParameter("@Page_number", SqlDbType.Int, pageRequest.PageNumber);

            List <ClientVisitInfo> clients = Execute_GetList(ClientVisitInfoMaterializer.Instance, "ClientVisit_Find", parameters);

            return(DaoHelper.GetDataPage(clients, totalCountParameter, pageRequest));
        }
Beispiel #9
0
        public void ClientVisit_Find()
        {
            Client.CreateData   clientCreateData = ClientGenerator.GetClientCreateData("Иван", "Иванович", "Иванов", "1");
            ClientBusinessLogic bll = new ClientBusinessLogic();

            ClientVisit.SaveData data = ClientGenerator.GetClientVisitSaveDataForNewUser();
            long clientId             = bll.ClientVisit_Save(new User()
            {
                Roles = new List <Role>()
                {
                    Role.Administrator
                }
            }, data).ClientID;
            Client client = bll.Client_Get(new User()
            {
                Roles = new List <Role>()
                {
                    Role.Administrator
                }
            }, clientId);
            long        visitId = client.Visits.OrderByDescending(item => item.StatusDate).FirstOrDefault().Id;
            ClientVisit visit   = bll.ClientVisit_Get(visitId);
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.Firstname         = data.NewClientInfo.Firstname;
            criteria.Secondname        = data.NewClientInfo.Secondname;
            criteria.Lastname          = data.NewClientInfo.Lastname;
            criteria.Birthday          = data.NewClientInfo.Birthday;
            criteria.DeliveryCenterIds = new List <long>();
            if (data.DeliveryCenterId.HasValue)
            {
                criteria.DeliveryCenterIds.Add(data.DeliveryCenterId.Value);
            }
            criteria.Id           = visitId;
            criteria.PolicyDateTo = visit.IssueDate;
            criteria.PolicyNumber = visit.NewPolicy.Number;
            criteria.PolicySeries = visit.NewPolicy.Series;
            criteria.StatusIds    = new List <long>();
            if (data.Status.HasValue)
            {
                criteria.StatusIds.Add(data.Status.Value);
            }
            criteria.TemporaryPolicyDateTo = visit.TemporaryPolicyDate;
            criteria.TemporaryPolicyNumber = visit.TemporaryPolicyNumber;
            DataPage <ClientVisitInfo> list = bll.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = 10
            });

            Assert.AreEqual(list.Count, 1);
        }
Beispiel #10
0
        private DataPage <ClientVisitInfo> FindClientVisitsToUpdate(ClientVisit.UpdateData item)
        {
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.Firstname             = item.Firstname.Trim();
            criteria.Secondname            = item.Secondname.Trim();
            criteria.Lastname              = item.Lastname.Trim();
            criteria.Birthday              = item.Birthday;
            criteria.TemporaryPolicyNumber = item.TemporaryPolicyNumber.Trim();
            var clientVisits = ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = 100
            });

            return(clientVisits);
        }
Beispiel #11
0
        public ActionResult ClientVisitReport(ClientVisitReportModel model)
        {
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.TemporaryPolicyDateFrom = model.CVDateFrom;
            criteria.TemporaryPolicyDateTo   = (model.CVDateTo);
            //criteria.IsActualInVisitGroup = true;
            List <ClientVisitInfo> clientVisits = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = int.MaxValue
            }).Data;
            List <Entities.User> listUser    = userBusinessLogic.Find("");
            ClientVisitReport    printedForm = new ClientVisitReport(clientVisits, model.CVDateFrom, model.CVDateTo, listUser);

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, "Сводный отчет по обращениям.xls"));
        }
        public ActionResult Index(FundRequestIndexModel model)
        {
            ClientVisitSearchCriteria  criteria = model.SearchCriteriaModel.GetClientSearchCriteria();
            DataPage <ClientVisitInfo> visits   = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = 1000
            });
            FundRequestIndexModel m = new FundRequestIndexModel()
            {
                ClientVisits = visits.Data
                               .Select(item => new ClientVisitFundInfoModel(item)).OrderBy(item => item.Lastname).ToList(),
                SearchCriteriaModel = new ClientVisitSearchCriteriaModel(
                    criteria)
            };

            return(View(m));
        }
Beispiel #13
0
        /// <summary>
        /// Returns sorted list of ClientVisitInfo by specified criteria
        /// </summary>
        /// <param name="criteria">Specified criteria</param>
        /// <param name="sortCriteria">Sort criteria</param>
        /// <param name="pageRequest">Page size and number</param>
        /// <returns>List of ClientVisitInfo</returns>
        public DataPage <ClientVisitInfo> ClientVisit_Find(
            ClientVisitSearchCriteria criteria,
            List <SortCriteria <ClientVisitSortField> > sortCriteria,
            PageRequest pageRequest)
        {
            if (criteria == null)
            {
                throw new ArgumentNullException("criteria can't be null");
            }

            if (sortCriteria == null)
            {
                throw new ArgumentNullException("sortCriteria can't be null");
            }

            if (pageRequest == null)
            {
                throw new ArgumentNullException("pageRequest can't be null");
            }

            return(ClientDao.Instance.ClientVisit_Find(criteria, sortCriteria, pageRequest));
        }
Beispiel #14
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 #15
0
        public ActionResult ScenarioForm2(ScenarioForm2Model model)
        {
            ClientVisitSearchCriteria criteria = new ClientVisitSearchCriteria();

            criteria.StatusDateFrom = new DateTime(model.Year, model.MonthID, 1);
            criteria.StetusDateTo   = new DateTime(model.Year, model.MonthID + 1, 1).AddDays(-1);
            List <ClientVisitInfo> clientVisits = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = int.MaxValue
            }).Data;

            List <int> listInt = new List <int>(6);

            //Trim Code!
            foreach (var item in clientVisits)
            {
                if (!string.IsNullOrEmpty(item.Scenario.Code))
                {
                    item.Scenario.Code = item.Scenario.Code.Trim();
                }
            }

            var VisitGroup = clientVisits.GroupBy(a => a.VisitGroupId);
            //Количество обращений считается, как количество обращений по сценарию из самой последней заявки предшествующей POK.
            Dictionary <long, string> clearVisitGroup = new Dictionary <long, string>();
            string scenario = string.Empty;

            foreach (var item in VisitGroup)
            {
                if (item.Count() <= 1)
                {
                    clearVisitGroup.Add(item.Key, item.FirstOrDefault().Scenario.Code);
                }
                else //>1
                {
                    var orderItem = item.OrderBy(a => a.Id);
                    scenario = orderItem.FirstOrDefault().Scenario.Code;
                    foreach (ClientVisitInfo element in orderItem)
                    {
                        var s = element.Scenario.Code;

                        if (s == "POK")
                        {
                            break;
                        }
                        else
                        {
                            scenario = s;
                        }
                    }
                    clearVisitGroup.Add(item.Key, scenario);
                }
            }
            //В clearVisitGroup мы получили обращение и код для подсчета количества обращений
            int Visit1     = 0, //кол-во сценариев NB, PI, PRI, PT, PRT, CP
                Visit2     = 0, //CI, CT, RI, RT
                Visit3     = 0, //DP, CR
                otherVisit = 0;

            foreach (var item in clearVisitGroup)
            {
                if (item.Value == "NB" || item.Value == "PI" || item.Value == "PRI" || item.Value == "PT" || item.Value == "PRT" || item.Value == "CP")
                {
                    Visit1++;
                }
                else if (item.Value == "CI" || item.Value == "CT" || item.Value == "RI" || item.Value == "RT")
                {
                    Visit2++;
                }
                else if (item.Value == "DP" || item.Value == "CR")
                {
                    Visit3++;
                }
                else
                {
                    otherVisit++;
                }
            }
            listInt.Add(Visit1); listInt.Add(Visit2); listInt.Add(Visit3);


            int issued1 = 0, issued2 = 0, issued3 = 0, otherIssued = 0;

            foreach (var item in VisitGroup)
            {
                var temp = item.Where(a => a.Scenario.Code == "POK" ||
                                      a.Scenario.Code == "CI" ||
                                      (a.Scenario.Code == "CT" && a.Status.Id == 7 && string.IsNullOrEmpty(a.TemporaryPolicyNumber))).Count();
                if (temp > 0)
                {
                    Client        client  = clientBusinessLogic.Client_Get(CurrentUser, item.FirstOrDefault().ClientId);
                    List <string> listScn = new List <string>();
                    foreach (var visit in client.Visits.OrderBy(a => a.StatusDate))
                    {
                        listScn.Add(string.IsNullOrEmpty(visit.Scenario.Code) ? string.Empty : visit.Scenario.Code.Trim());
                    }

                    listScn.Remove("POK"); listScn.Remove("CI"); listScn.Remove("CT");
                    var code = listScn.LastOrDefault();
                    if (code == "NB" || code == "PI" || code == "PRI" || code == "PT" || code == "PRT" || code == "CP")
                    {
                        issued1++;
                    }
                    else if (code == "CI" || code == "CT" || code == "RI" || code == "RT")
                    {
                        issued2++;
                    }
                    else if (code == "DP" || code == "CR")
                    {
                        issued3++;
                    }
                    else
                    {
                        otherIssued++;
                    }
                }
            }
            listInt.Add(issued1); listInt.Add(issued2); listInt.Add(issued3);

            listInt.Add(otherVisit);
            listInt.Add(otherIssued);

            ScenarioForm2 printedForm = new ScenarioForm2(listInt);
            string        month       = model.Months.Where(a => a.Value == model.MonthID.ToString()).Select(b => b.Text).FirstOrDefault();

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Отчет по сценариям форма_2 {0} {1}.xls", month, model.Year)));;
        }
Beispiel #16
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);
        }
Beispiel #17
0
        public ActionResult SNILSReport(SNILSReportModel model)
        {
            string NameDeliveryPoint = string.Empty;
            ClientVisitListModel clientVisitModel = new ClientVisitListModel();

            clientVisitModel.SearchCriteriaModel.StatusDateFrom = model.DateSnilsFrom;
            clientVisitModel.SearchCriteriaModel.StatusDateTo   = model.DateSnilsTo;

            //для Администраторов ограничений по точкам - нет
            if (Role.Administrator.Id == Role.GetRealRole(CurrentUser).Id || Role.AdministratorBSO.Id == Role.GetRealRole(CurrentUser).Id)
            {
                if (model.DeliveryPointIds.Count > 0)
                {
                    clientVisitModel.SearchCriteriaModel.DeliveryPointIds = model.DeliveryPointIds;
                    foreach (var item in model.DeliveryPointIds)
                    {
                        NameDeliveryPoint = NameDeliveryPoint + ", " + model.DeliveryPoints.Where(a => a.Value == item.ToString()).Select(b => b.Text).FirstOrDefault();
                    }
                    NameDeliveryPoint = NameDeliveryPoint.Trim(',', ' ');
                }
                else
                {
                    NameDeliveryPoint = "Все точки";
                }
            }
            else
            {   //для ответственного
                if (Role.ResponsibleBSO == Role.GetRealRole(CurrentUser))
                {
                    if (model.DeliveryPointIds.Count > 0)
                    {
                        clientVisitModel.SearchCriteriaModel.DeliveryPointIds = model.DeliveryPointIds;
                    }
                    else
                    {//все точки для ответственного
                        model.DeliveryPoints = ReferencesProvider.GetDeliveryPointsForResponsibleBSO(CurrentUser.Id, false);
                        foreach (var item in model.DeliveryPoints)
                        {
                            if (item.Value != "")
                            {
                                model.DeliveryPointIds.Add(long.Parse(item.Value));
                            }
                        }
                        clientVisitModel.SearchCriteriaModel.DeliveryPointIds = model.DeliveryPointIds;
                    }

                    foreach (var item in model.DeliveryPointIds)
                    {
                        NameDeliveryPoint = NameDeliveryPoint + ", " + model.DeliveryPoints.Where(a => a.Value == item.ToString()).Select(b => b.Text).FirstOrDefault();
                    }
                    NameDeliveryPoint = NameDeliveryPoint.Trim(',', ' ');
                }
                else
                {
                    //для всех остальных, только по их собственной точке
                    clientVisitModel.SearchCriteriaModel.DeliveryPointIds = new List <long>()
                    {
                        CurrentUser.DeliveryPoint.Id
                    };
                    model.DeliveryPointIds = new List <long>()
                    {
                        CurrentUser.DeliveryPoint.Id
                    };
                    NameDeliveryPoint = model.DeliveryPoints.Where(a => a.Value == model.DeliveryPointIds.FirstOrDefault().ToString()).Select(b => b.Text).FirstOrDefault();
                }
            }

            ClientVisitSearchCriteria criteria = clientVisitModel.SearchCriteriaModel.GetClientSearchCriteria();

            criteria.IsActualInVisitGroup = true;
            List <ClientVisitInfo> clients = clientBusinessLogic.ClientVisit_Find(
                criteria,
                new List <SortCriteria <ClientVisitSortField> >(),
                new PageRequest()
            {
                PageNumber = 1, PageSize = int.MaxValue
            }).Data;

            //Отсекаем только гр. РФ
            clients = clients.Where(a => a.Citizenship == "РОССИЯ").ToList();

            // Все статусы кроме: "ошибочная запись код 6", "выдан и отправлен в фонд код 11", "изготовлен другой компанией код 7", "перерегистрация завершена код 8"
            clients = clients.Where(a => !(a.Status.Code == "6" ||
                                           a.Status.Code == "11" ||
                                           a.Status.Code == "7" ||
                                           a.Status.Code == "8")
                                    ).ToList();

            //Отсекаем по СНИЛС
            //нет СНИЛС
            //заявкой без СНИЛС является любая заявка, где поле СНИЛС заполнено иначе, чем XXX-XXX-XXX YY
            if (model.IsSnilsNotEmpty == false)
            {
                clients = clients.Where(a => (string.IsNullOrEmpty(a.SNILS) || !(a.SNILS.Length == 14 && a.SNILS[3] == '-' && a.SNILS[7] == '-' && a.SNILS[11] == ' '))).ToList();
            }
            //есть СНИЛС
            if (model.IsSnilsNotEmpty == true)
            {
                clients = clients.Where(a => (!string.IsNullOrEmpty(a.SNILS)) && (a.SNILS.Length == 14 && a.SNILS[3] == '-' && a.SNILS[7] == '-' && a.SNILS[11] == ' ')).ToList();
            }

            List <Entities.User> listUser    = userBusinessLogic.Find("");
            SNILSReport          printedForm = new SNILSReport(clients, model.DateSnilsFrom, model.DateSnilsTo, NameDeliveryPoint, CurrentUser.Fullname,
                                                               model.IsSnilsNotEmpty, listUser);

            return(File(printedForm.GetExcel(),
                        System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Заявки и наличие СНИЛС.xlsx")));
        }
Beispiel #18
0
        public DataPage <ClientVisitInfo> ClientVisit_Find(
            ClientVisitSearchCriteria criteria,
            List <SortCriteria <ClientVisitSortField> > sortCriteria,
            PageRequest pageRequest)
        {
            var parameters = new List <OracleParameter>();

            var totalCount = new OracleParameter()
            {
                ParameterName = "Total_count", OracleDbType = OracleDbType.Int64, Direction = ParameterDirection.Output
            };
            var deliveryCenterIdsHasValue = criteria.DeliveryCenterIds.Count > 0;
            var deliveryCenterIds         = new OracleParameter()
            {
                ParameterName = "DeliveryCenterIds", OracleDbType = OracleDbType.Int32, CollectionType = OracleCollectionType.PLSQLAssociativeArray, Value = deliveryCenterIdsHasValue ? criteria.DeliveryCenterIds.ToArray() : (object)new OracleDecimal[1] {
                    OracleDecimal.Null
                }, Size = deliveryCenterIdsHasValue ? criteria.DeliveryCenterIds.Count : 1
            };
            var statusIdsHasValue = criteria.StatusIds.Count > 0;
            var statusIds         = new OracleParameter()
            {
                ParameterName = "StatusIds", OracleDbType = OracleDbType.Char, CollectionType = OracleCollectionType.PLSQLAssociativeArray, Value = statusIdsHasValue ? criteria.StatusIds.ToArray() : (object)new OracleString[1] {
                    OracleString.Null
                }, Size = statusIdsHasValue ? criteria.StatusIds.Count : 1
            };
            var scenarioIdsHasValue = criteria.ScenarioIds.Count > 0;
            var scenarioIds         = new OracleParameter()
            {
                ParameterName = "ScenarioIds", OracleDbType = OracleDbType.Int32, CollectionType = OracleCollectionType.PLSQLAssociativeArray, Value = scenarioIdsHasValue ? criteria.ScenarioIds.ToArray() : (object)new OracleDecimal[1] {
                    OracleDecimal.Null
                }, Size = scenarioIdsHasValue ? criteria.ScenarioIds.Count : 1
            };

            var clientIdsHasValue = criteria.ClientIds.Count > 0;
            var clientIds         = new OracleParameter()
            {
                ParameterName = "ClientIds", OracleDbType = OracleDbType.Int64, CollectionType = OracleCollectionType.PLSQLAssociativeArray, Value = clientIdsHasValue ? criteria.ClientIds.ToArray() : (object)new OracleDecimal[1] {
                    OracleDecimal.Null
                }, Size = clientIdsHasValue ? criteria.ClientIds.Count : 1
            };

            var upNumbersHasValue    = criteria.UnifiedPolicyNumbers.Count > 0;
            var unifiedPolicyNumbers = new OracleParameter()
            {
                ParameterName = "UnifiedPolicyNumbers", OracleDbType = OracleDbType.Varchar2, CollectionType = OracleCollectionType.PLSQLAssociativeArray, Value = upNumbersHasValue ? criteria.UnifiedPolicyNumbers.ToArray() : (object)new OracleDecimal[1] {
                    OracleDecimal.Null
                }, Size = upNumbersHasValue ? criteria.UnifiedPolicyNumbers.Count : 1
            };

            parameters.AddRange(new List <OracleParameter> {
                new OracleParameter()
                {
                    ParameterName = "RegionId", OracleDbType = OracleDbType.Int64, Value = criteria.RegionId
                },
                new OracleParameter()
                {
                    ParameterName = "CompanyId", OracleDbType = OracleDbType.Int64, Value = criteria.CompanyId
                },
                new OracleParameter()
                {
                    ParameterName = "ClientVisitId", OracleDbType = OracleDbType.Int64, Value = criteria.ClientVisitId
                },
                new OracleParameter()
                {
                    ParameterName = "ClientId", OracleDbType = OracleDbType.Int64, Value = criteria.ClientId
                },
                new OracleParameter()
                {
                    ParameterName = "TaskId", OracleDbType = OracleDbType.Int64, Value = criteria.TaskId
                },
                new OracleParameter()
                {
                    ParameterName = "Lastname", OracleDbType = OracleDbType.Varchar2, Value = criteria.Lastname
                },
                new OracleParameter()
                {
                    ParameterName = "Firstname", OracleDbType = OracleDbType.Varchar2, Value = criteria.Firstname
                },
                new OracleParameter()
                {
                    ParameterName = "Secondname", OracleDbType = OracleDbType.Varchar2, Value = criteria.Secondname
                },
                new OracleParameter()
                {
                    ParameterName = "Birthday", OracleDbType = OracleDbType.Date, Value = criteria.Birthday
                },
                new OracleParameter()
                {
                    ParameterName = "BirthdayYearFrom", OracleDbType = OracleDbType.Varchar2, Value = criteria.BirthdayYearFrom
                },
                new OracleParameter()
                {
                    ParameterName = "BirthdayYearTo", OracleDbType = OracleDbType.Varchar2, Value = criteria.BirthdayYearTo
                },
                new OracleParameter()
                {
                    ParameterName = "SNILS", OracleDbType = OracleDbType.Varchar2, Value = criteria.SNILS
                },
                new OracleParameter()
                {
                    ParameterName = "UnifiedPolicyNumber", OracleDbType = OracleDbType.Varchar2, Value = criteria.UnifiedPolicyNumber
                },
                new OracleParameter()
                {
                    ParameterName = "PolicyNumber", OracleDbType = OracleDbType.Varchar2, Value = criteria.PolicyNumber
                },
                new OracleParameter()
                {
                    ParameterName = "TemporaryPolicyNumber", OracleDbType = OracleDbType.Varchar2, Value = criteria.TemporaryPolicyNumber
                },
                new OracleParameter()
                {
                    ParameterName = "TemporaryPolicyDateFrom", OracleDbType = OracleDbType.Date, Value = criteria.TemporaryPolicyDateFrom
                },
                new OracleParameter()
                {
                    ParameterName = "TemporaryPolicyDateTo", OracleDbType = OracleDbType.Date, Value = criteria.TemporaryPolicyDateTo
                },
                new OracleParameter()
                {
                    ParameterName = "IssueDate", OracleDbType = OracleDbType.Date, Value = criteria.IssueDate
                },
                new OracleParameter()
                {
                    ParameterName = "IssueDateFrom", OracleDbType = OracleDbType.Date, Value = criteria.IssueDateFrom
                },
                new OracleParameter()
                {
                    ParameterName = "IssueDateTo", OracleDbType = OracleDbType.Date, Value = criteria.IssueDateTo
                },
                new OracleParameter()
                {
                    ParameterName = "BoxYearFrom", OracleDbType = OracleDbType.Varchar2, Value = criteria.BoxYearFrom
                },
                new OracleParameter()
                {
                    ParameterName = "BoxYearTo", OracleDbType = OracleDbType.Varchar2, Value = criteria.BoxYearTo
                },
                new OracleParameter()
                {
                    ParameterName = "Comment_", OracleDbType = OracleDbType.Varchar2, Value = criteria.Comment
                },
                new OracleParameter()
                {
                    ParameterName = "OperatorId", OracleDbType = OracleDbType.Int64, Value = criteria.UserId
                },
                new OracleParameter()
                {
                    ParameterName = "SalesChannelId", OracleDbType = OracleDbType.Int64, Value = criteria.SalesChannelId
                },
                new OracleParameter()
                {
                    ParameterName = "AgentId", OracleDbType = OracleDbType.Int64, Value = criteria.CivilContractAgentId
                },
                new OracleParameter()
                {
                    ParameterName = "DeferredDate", OracleDbType = OracleDbType.Int64, Value = criteria.DeferredDate ? 2 : 1
                },
                new OracleParameter()
                {
                    ParameterName = "Phone", OracleDbType = OracleDbType.Varchar2, Value = criteria.Phone
                },

                deliveryCenterIds,
                statusIds,
                scenarioIds,
                clientIds,
                unifiedPolicyNumbers,

                new OracleParameter()
                {
                    ParameterName = "HasValue", OracleDbType = OracleDbType.Int32, Value = criteria.IsNull ? 0 : 1
                },

                new OracleParameter()
                {
                    ParameterName = "Page_size", OracleDbType = OracleDbType.Int32, Value = pageRequest.PageSize
                },
                new OracleParameter()
                {
                    ParameterName = "Page_number", OracleDbType = OracleDbType.Int32, Value = pageRequest.PageNumber
                },
                new OracleParameter()
                {
                    ParameterName = "Client_visits", OracleDbType = OracleDbType.RefCursor, Direction = ParameterDirection.Output
                },
                totalCount
            });

            List <ClientVisitInfo> clients = Execute_GetList(ClientVisitInfoMaterializer.Instance, "procedure", parameters);

            return(ManagedDaoHelper.GetDataPage(clients, totalCount, pageRequest));
        }