Exemple #1
0
 public PrintedFormsModel()
 {
     PartyJournal            = new PartyJournalModel();
     BSOFailForm13           = new BSOFailForm13Model();
     BSOOperativeInformation = new BSOOperativeInformationModel();
     BSOReportForm10         = new BSOReportForm10Model();
     BSOReportForm10Full     = new BSOReportForm10FullModel();
     SMSBaseReport           = new SMSBaseReportModel();
     AllocationBSO           = new AllocationBSOModel();
     BSOMoveReportYear       = new BSOMoveReportYearModel();
     ScenarioForm2           = new ScenarioForm2Model();
     ClientVisitReport       = new ClientVisitReportModel();
     SNILSReport             = new SNILSReportModel();
     StatusReport            = new StatusReportModel();
 }
        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")));
        }