Esempio n. 1
0
        /// <summary>
        /// Get client details by identifier
        /// </summary>
        /// <param name="id">Client identifier</param>
        /// <returns>View of client details</returns>
        public ActionResult Details(int id)
        {
            FillReferences(Constants.ClientCategoryRef);
            FillReferences(Constants.CitizenshipRef);
            Client client = clientBusinessLogic.Client_Get(CurrentUser, id);

            ClientModel model = new ClientModel(client, CurrentUser);

            return(View(model));
        }
Esempio n. 2
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)));;
        }
Esempio n. 3
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 }));
            }
        }