/// <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)); }
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)));; }
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 })); } }