public DataPage <BSOInfo> BSO_Find( BSOSearchCriteria criteria, List <SortCriteria <BSOSortField> > sortCriteria, PageRequest pageRequest) { List <SqlParameter> parameters = new List <SqlParameter>(); parameters.AddInputParameter("@TemporaryPolicyNumberFrom", SqlDbType.NVarChar, criteria.TemporaryPolicyNumberFrom); parameters.AddInputParameter("@TemporaryPolicyNumberTo", SqlDbType.NVarChar, criteria.TemporaryPolicyNumberTo); parameters.AddInputParameter("@PolicyPartyNumber", SqlDbType.NVarChar, criteria.PolicyPartyNumber); parameters.AddInputParameter("@StatusId", SqlDbType.BigInt, criteria.StatusId); parameters.AddInputParameter("@ResponsibleID", SqlDbType.BigInt, criteria.ResponsibleID); parameters.AddInputParameter("@StatusDateFrom", SqlDbType.Date, criteria.StatusDateFrom); parameters.AddInputParameter("@StatusDateTo", SqlDbType.Date, criteria.StatusDateTo); parameters.AddInputParameter("@ChangeDateFrom", SqlDbType.DateTime, criteria.ChangeDateFrom); parameters.AddInputParameter("@ChangeDateTo", SqlDbType.DateTime, criteria.ChangeDateTo); parameters.AddInputParameter("@DeliveryCenterIds", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.DeliveryCenterIds)); parameters.AddInputParameter("@DeliveryPointIds", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.DeliveryPointIds)); //parameters.AddInputParameter("@ResponsibleIDs", SqlDbType.Structured, DaoHelper.GetObjectIds(criteria.ResponsibleIDs)); 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 <BSOInfo> bsos = Execute_GetList(BSOInfoMaterializer.Instance, "BSO_Find", parameters); return(DaoHelper.GetDataPage(bsos, totalCountParameter, pageRequest)); }
public ActionResult Index(BSOListModel bsoListModel, string sortField) { bsoListModel.SortField = sortField; bsoListModel.SortOrder = bsoListModel.SortOrder == "ASC" ? "DESC" : "ASC"; if (Role.Registrator.Id == Role.GetRealRole(CurrentUser).Id) { bsoListModel.SearchCriteriaModel.DeliveryCenterIds = new List <long>() { CurrentUser.Department.Id }; bsoListModel.SearchCriteriaModel.DeliveryPointIds = new List <long>() { CurrentUser.DeliveryPoint.Id }; } if (Role.ResponsibleBSO.Id == Role.GetRealRole(CurrentUser).Id) { bsoListModel.SearchCriteriaModel.ResponsibleID = CurrentUser.Id; } BSOSearchCriteria criteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria(); List <SortCriteria <BSOSortField> > sortList = new List <SortCriteria <BSOSortField> >(); if (!string.IsNullOrEmpty(bsoListModel.SortField)) { SortCriteria <BSOSortField> temp = new SortCriteria <BSOSortField>(); temp.SortField = (BSOSortField)long.Parse(bsoListModel.SortField); temp.SortOrder = (SortOrder)((bsoListModel.SortOrder == "ASC") ? 1 : 0); sortList.Add(temp); } DataPage <BSOInfo> bsos = bsoBusinessLogic.BSO_Find( criteria, sortList, new PageRequest() { PageNumber = bsoListModel.PageNumber, PageSize = bsoListModel.PageSize }); BSOListModel model = new BSOListModel() { Items = bsos.Data .Select(item => new BSOBaseInfoModel(item)), SearchCriteriaModel = new BSOSearchCriteriaModel( criteria), PageNumber = bsoListModel.PageNumber, PageSize = bsoListModel.PageSize, TotalCount = bsos.TotalCount, SortField = bsoListModel.SortField, SortOrder = bsoListModel.SortOrder, }; model.GetAvailableBSOStatus(bsoListModel.SearchCriteriaModel.StatusId, true); model.SearchCriteriaModel.NewStatusDate = DateTime.Now; return(View(model)); }
public BSOSearchCriteriaModel(BSOSearchCriteria criteria) { this.TemporaryPolicyNumberFrom = criteria.TemporaryPolicyNumberFrom; this.TemporaryPolicyNumberTo = criteria.TemporaryPolicyNumberTo; this.PolicyPartyNumber = criteria.PolicyPartyNumber; this.StatusId = criteria.StatusId; this.ResponsibleID = criteria.ResponsibleID; this.StatusDateFrom = criteria.StatusDateFrom; this.StatusDateTo = criteria.StatusDateTo; this.DeliveryCenterIds = criteria.DeliveryCenterIds; this.DeliveryPointIds = criteria.DeliveryPointIds; this.validator = new BSOSearchCriteriaModelValidator(); this.CurrentStatusId = CurrentStatusId; this.NewDeliveryPointId = NewDeliveryPointId; this.NewResponsibleID = NewResponsibleID; this.ChangeDateFrom = ChangeDateFrom; this.ChangeDateTo = ChangeDateTo; }
public ActionResult GetBSOFailForm13(BSOFailForm13Model model) { BSOListModel bsoListModel = new BSOListModel(); bsoListModel.SearchCriteriaModel.StatusDateFrom = model.DateFrom; bsoListModel.SearchCriteriaModel.StatusDateTo = model.DateTo; bsoListModel.SearchCriteriaModel.DeliveryCenterIds = new List <long>() { CurrentUser.Department.Id }; bsoListModel.SearchCriteriaModel.StatusId = (long)ListBSOStatusID.FailOnResponsible; BSOSearchCriteria criteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria(); List <BSOInfo> bsos = bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data; criteria.StatusId = (long)ListBSOStatusID.FailGotoStorage; bsos.AddRange(bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data); criteria.StatusId = (long)ListBSOStatusID.FailOnStorage; bsos.AddRange(bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data); BSOFailForm13 printedForm = new BSOFailForm13(bsos, model.DateFrom, model.DateTo, CurrentUser.DepartmentDisplayName, CurrentUser.Fullname); return(File(printedForm.GetExcel(), System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Акт передачи испорченных бланков БСО (временных свидетельств). Форма №13.xls"))); }
public BSOSearchCriteria GetBSOSearchCriteria() { BSOSearchCriteria criteria = new BSOSearchCriteria() { TemporaryPolicyNumberFrom = this.TemporaryPolicyNumberFrom, TemporaryPolicyNumberTo = this.TemporaryPolicyNumberTo, PolicyPartyNumber = this.PolicyPartyNumber, StatusId = this.StatusId == 0 ? new Nullable <long>() : this.StatusId, StatusDateFrom = this.StatusDateFrom, StatusDateTo = this.StatusDateTo, DeliveryCenterIds = DeliveryCenterIds, DeliveryPointIds = DeliveryPointIds, ResponsibleID = this.ResponsibleID == 0 ? new Nullable <long>() : this.ResponsibleID, ChangeDateFrom = this.ChangeDateFrom, ChangeDateTo = this.ChangeDateTo }; return(criteria); }
public DataPage <BSOInfo> BSO_Find( BSOSearchCriteria criteria, List <SortCriteria <BSOSortField> > 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(BSODao.Instance.BSO_Find(criteria, sortCriteria, pageRequest)); }
public ActionResult GetBSOInvoiceS(BSOListModel model) { List <ReferenceUniversalItem> DP = referenceBusinessLogic.GetUniversalList(Constants.DeliveryPointRef); string deliveryPointName = DP.Where(m => m.Id == model.SearchCriteriaModel.NewDeliveryPointId).FirstOrDefault().Name; long? deliveryPointHeadId = DP.Where(m => m.Id == model.SearchCriteriaModel.NewDeliveryPointId).FirstOrDefault().DeliveryPointHeadId; List <SelectListItem> Users = ReferencesProvider.GetUsers(); string fio; if (deliveryPointHeadId != null) { fio = Users.Where(a => a.Value == deliveryPointHeadId.ToString()).Select(b => b.Text).FirstOrDefault(); } else { fio = CurrentUser.Fullname; } model.SearchCriteriaModel.StatusId = model.SearchCriteriaModel.CurrentStatusId; model.SearchCriteriaModel.DeliveryPointIds = new List <long>(); model.SearchCriteriaModel.DeliveryPointIds.Add(model.SearchCriteriaModel.NewDeliveryPointId.Value); BSOSearchCriteria criteria = model.SearchCriteriaModel.GetBSOSearchCriteria(); List <BSOInfo> bsos = bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data; List <string> listBsoNumber = new List <string>(); foreach (var elem in bsos) { listBsoNumber.Add(elem.TemporaryPolicyNumber); } BSOInvoice printedForm = new BSOInvoice(listBsoNumber, fio, deliveryPointName); return(File(printedForm.GetExcel(), System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Накладная БСО (ВС).xls"))); }
public ActionResult MassChanges(BSOListModel bsoListModel) { long newStatus = (long)bsoListModel.SearchCriteriaModel.CurrentStatusId; long? newDelivery = bsoListModel.SearchCriteriaModel.NewDeliveryPointId; long? newResponsible = bsoListModel.SearchCriteriaModel.NewResponsibleID; DateTime?newStatusDate = bsoListModel.SearchCriteriaModel.NewStatusDate; long countPrintBso = 0; //Регистратор не может изменить 'Точку выдачи' и 'Ответственного' if (Role.Registrator.Id == Role.GetRealRole(CurrentUser).Id) { bsoListModel.SearchCriteriaModel.NewDeliveryPointId = CurrentUser.DeliveryPoint.Id; newDelivery = CurrentUser.DeliveryPoint.Id; bsoListModel.SearchCriteriaModel.NewResponsibleID = bsoListModel.SearchCriteriaModel.ResponsibleID; newResponsible = bsoListModel.SearchCriteriaModel.ResponsibleID; bsoListModel.SearchCriteriaModel.Messages.Add("В роли Регистратор, вы не можете изменить Ответственного или Точку Выдачи"); } //Ответственный не может изменить 'Ответственного' if (Role.ResponsibleBSO.Id == Role.GetRealRole(CurrentUser).Id && (bsoListModel.SearchCriteriaModel.NewResponsibleID != bsoListModel.SearchCriteriaModel.ResponsibleID)) { bsoListModel.SearchCriteriaModel.NewResponsibleID = bsoListModel.SearchCriteriaModel.ResponsibleID; newResponsible = bsoListModel.SearchCriteriaModel.ResponsibleID; bsoListModel.SearchCriteriaModel.Messages.Add("В роли Ответственного, вы не можете изменить 'Ответственного'"); } BSOSearchCriteria oldCriteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria(); bsoListModel.SearchCriteriaModel.Validate(new ModelValidationContext() { currenUser = CurrentUser }); bsoListModel.SearchCriteriaModel.IsSuccessfullySaved = bsoListModel.SearchCriteriaModel.IsValid(); if (Request.IsAjaxRequest()) { if (bsoListModel.SearchCriteriaModel.IsValid()) { BSOSearchCriteria criteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria(); DataPage <BSOInfo> listBso = bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = bsoListModel.PageNumber, PageSize = int.MaxValue }); BSOSaveDataModel bsoSaveDataModel = new BSOSaveDataModel() { StatusId = newStatus, ResponsibleID = newResponsible, PolicyPartyNumber = bsoListModel.SearchCriteriaModel.PolicyPartyNumber, DeliveryPointId = newDelivery, UserId = CurrentUser.Id, Comment = string.Format("Массовая смена статуса") }; if (listBso.Count == 0) { bsoListModel.SearchCriteriaModel.IsSuccessfullySaved = false; } foreach (var b in listBso) { //если не указана новая точка выдачи, то сохраняем прежную //если указана - записываем новую if (newDelivery == null) { bsoSaveDataModel.DeliveryPointId = b.DeliveryPointId; } else { bsoSaveDataModel.DeliveryPointId = newDelivery; } //если не указан новый ответственный, то сохраняем прежнего //если указан - записываем нового if (newResponsible == null) { bsoSaveDataModel.ResponsibleID = b.ResponsibleID; } else { bsoSaveDataModel.ResponsibleID = newResponsible; } //если не указана новая дата статуса, то сохраняем прежную //если указан - записываем новую if (newStatusDate == null) { bsoSaveDataModel.StatusDate = b.StatusDate; } else { bsoSaveDataModel.StatusDate = newStatusDate; } bsoSaveDataModel.Id = b.Id; BSO.SaveData save = bsoSaveDataModel.GetBSOSaveData(); bsoBusinessLogic.BSO_Set(save); } countPrintBso = listBso.Count; } else { //nothing } } else { return(RedirectToAction("Index", "BSO")); } DataPage <BSOInfo> bsos = bsoBusinessLogic.BSO_Find( oldCriteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = bsoListModel.PageNumber, PageSize = bsoListModel.PageSize }); BSOListModel model = new BSOListModel() { Items = bsos.Data.Select(item => new BSOBaseInfoModel(item)), SearchCriteriaModel = new BSOSearchCriteriaModel(oldCriteria), PageNumber = bsoListModel.PageNumber, PageSize = bsoListModel.PageSize, TotalCount = bsos.TotalCount }; model.SearchCriteriaModel.Messages.AddRange(bsoListModel.SearchCriteriaModel.Messages); model.SearchCriteriaModel.CurrentStatusId = newStatus; model.SearchCriteriaModel.NewDeliveryPointId = newDelivery; model.SearchCriteriaModel.NewResponsibleID = newResponsible; model.SearchCriteriaModel.IsSuccessfullySaved = bsoListModel.SearchCriteriaModel.IsSuccessfullySaved; model.GetAvailableBSOStatus(bsoListModel.SearchCriteriaModel.StatusId, true); //печатаем отчет, если статус изменился: На точке if (model.SearchCriteriaModel.CurrentStatusId == (long)ListBSOStatusID.OnDelivery && model.SearchCriteriaModel.IsSuccessfullySaved.Value) { model.FlagPrintReport = countPrintBso; } else { model.FlagPrintReport = 0; } return(PartialView("MassChanges", model)); }
public ActionResult GetBSOReportForm10Full(BSOReportForm10FullModel model) { string delivery = string.Empty; BSOListModel bsoListModel = new BSOListModel(); bsoListModel.SearchCriteriaModel.StatusDateFrom = model.DateForm10FullFrom; bsoListModel.SearchCriteriaModel.StatusDateTo = model.DateForm10FullTo; List <string> ListDelivery = new List <string>(); List <ReferenceUniversalItem> ListDeliveryPointUniversal = referenceBusinessLogic.GetUniversalList(Constants.DeliveryPointRef); List <DeliveryCenter> listDeliveryCenter = referenceBusinessLogic.GetDeliveryCenterList(); //для Администраторов ограничений по точкам - нет if (Role.Administrator.Id == Role.GetRealRole(CurrentUser).Id || Role.AdministratorBSO.Id == Role.GetRealRole(CurrentUser).Id) { if (model.DeliveryPointIds.Count > 0) { bsoListModel.SearchCriteriaModel.DeliveryPointIds = model.DeliveryPointIds; foreach (var item in model.DeliveryPointIds) { delivery = listDeliveryCenter.Where(a => a.Id == ListDeliveryPointUniversal.Where(b => b.Id == item).Select(c => c.DeliveryCenterId).FirstOrDefault()).Select(d => d.DisplayName).FirstOrDefault(); ListDelivery.Add(delivery); } } else { delivery = "Все точки"; } } else { //для ответственного if (Role.ResponsibleBSO == Role.GetRealRole(CurrentUser)) { if (model.DeliveryPointIds.Count > 0) { bsoListModel.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)); } } bsoListModel.SearchCriteriaModel.DeliveryPointIds = model.DeliveryPointIds; } foreach (var item in model.DeliveryPointIds) { delivery = listDeliveryCenter.Where(a => a.Id == ListDeliveryPointUniversal.Where(b => b.Id == item).Select(c => c.DeliveryCenterId).FirstOrDefault()).Select(d => d.DisplayName).FirstOrDefault(); ListDelivery.Add(delivery); } } else { //для всех остальных, только по их собственной точке bsoListModel.SearchCriteriaModel.DeliveryPointIds = new List <long>() { CurrentUser.DeliveryPoint.Id }; model.DeliveryPointIds = new List <long>() { CurrentUser.DeliveryPoint.Id }; delivery = listDeliveryCenter.Where(a => a.Id == ListDeliveryPointUniversal.Where(b => b.Id == CurrentUser.DeliveryPoint.Id).Select(c => c.DeliveryCenterId).FirstOrDefault()).Select(d => d.DisplayName).FirstOrDefault(); ListDelivery.Add(delivery); } } BSOSearchCriteria criteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria(); List <BSOInfo> listBSOinRangeDate = bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data; List <BSOHistoryItem> listHistory = new List <BSOHistoryItem>(); if (listBSOinRangeDate.Count > 0) { List <long> listBSO_IDs = listBSOinRangeDate.Select(a => a.Id).ToList(); listHistory = bsoBusinessLogic.BSO_GetListHistory(new DateTime(2000, 1, 1), (DateTime)bsoListModel.SearchCriteriaModel.StatusDateTo, listBSO_IDs); } List <BSOInfo> listBSOBeforeDate = bsoBusinessLogic.BSO_Find( new BSOSearchCriteria() { StatusDateTo = bsoListModel.SearchCriteriaModel.StatusDateFrom, DeliveryPointIds = bsoListModel.SearchCriteriaModel.DeliveryPointIds }, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data; List <BSOInfo> listBSOAllDate = bsoBusinessLogic.BSO_Find( new BSOSearchCriteria() { StatusDateTo = bsoListModel.SearchCriteriaModel.StatusDateTo, DeliveryPointIds = bsoListModel.SearchCriteriaModel.DeliveryPointIds }, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data; //фильтруем по DeliveryPointId //if (dicDeliveryPoint.Count > 0) //{ // listHistory = listHistory.Where(a => dicDeliveryPoint.Keys.Contains(a.DeliveryPointId)).ToList(); //} BSOReportForm10Full printedForm = new BSOReportForm10Full(listHistory, listBSOBeforeDate, listBSOinRangeDate, listBSOAllDate, ListDelivery.Distinct().ToList(), model.DateForm10FullFrom, model.DateForm10FullTo, CurrentUser); return(File(printedForm.GetExcel(), System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Отчет по движению ВС с группировкой по пулам номеров БСО. Форма №10.xls"))); }
public ActionResult GetBSOReportForm10(BSOReportForm10Model model) { string NameDeliveryPoint = string.Empty; BSOListModel bsoListModel = new BSOListModel(); bsoListModel.SearchCriteriaModel.StatusDateFrom = model.DateForm10From; bsoListModel.SearchCriteriaModel.StatusDateTo = model.DateForm10To; //для Администраторов ограничений по точкам - нет if (Role.Administrator.Id == Role.GetRealRole(CurrentUser).Id || Role.AdministratorBSO.Id == Role.GetRealRole(CurrentUser).Id) { if (model.DeliveryPointIds.Count > 0) { bsoListModel.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) { bsoListModel.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)); } } bsoListModel.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 { //для всех остальных, только по их собственной точке bsoListModel.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(); } } BSOSearchCriteria criteria = bsoListModel.SearchCriteriaModel.GetBSOSearchCriteria(); List <BSOInfo> bsos = bsoBusinessLogic.BSO_Find( criteria, new List <SortCriteria <BSOSortField> >(), new PageRequest() { PageNumber = 1, PageSize = int.MaxValue }).Data; BSOReportForm10 printedForm = new BSOReportForm10(bsos, model.DateForm10From, model.DateForm10To, NameDeliveryPoint, CurrentUser.Fullname); return(File(printedForm.GetExcel(), System.Net.Mime.MediaTypeNames.Application.Octet, string.Format("Отчет по движению (статусам) временных свидетельств.xls"))); }