private void PrintButton_DisplayerRequested(object sender, ReferenceEventArgs e)
        {
            MonthlyUtilizationBuilder reportBuilder = new  MonthlyUtilizationBuilder(currentAircraft);

            reportBuilder.Flights = monthlyUtilizationViewer.SortedFlights;
            e.TypeOfReflection    = ReflectionTypes.DisplayInNew;
            e.DisplayerText       = ((Aircraft)currentAircraft).RegistrationNumber + " Monthly Utilization Report";
            e.RequestedEntity     = new DispatcheredMonthlyUtilizationReport(reportBuilder);

            //e.Cancel = true;
        }
Esempio n. 2
0
        private void HeaderControlButtonPrintDisplayerRequested(object sender, ReferenceEventArgs e)
        {
            if (CurrentAircraft != null)
            {
                e.DisplayerText = CurrentAircraft.RegistrationNumber + ". " + ReportText + " Report";
            }
            else
            {
                e.DisplayerText = ReportText + " Report";
                e.Cancel        = true;
                return;
            }
            e.TypeOfReflection = ReflectionTypes.DisplayInNew;

            if (sender == itemPrintReportMonthlyUtilization)
            {
#if KAC
                MonthlyUtilizationBuilderKAC reportBuilder =
                    new MonthlyUtilizationBuilderKAC(CurrentAircraft,
                                                     dateTimePickerDateFrom.Value,
                                                     dateTimePickerDateTo.Value,
                                                     _initialDirectiveArray.TotalHoursClear,
                                                     _initialDirectiveArray.TotalCyclesClear);
#else
                MonthlyUtilizationBuilder reportBuilder =
                    new MonthlyUtilizationBuilder(CurrentAircraft,
                                                  dateTimePickerDateFrom.Value,
                                                  dateTimePickerDateTo.Value,
                                                  GlobalObjects.CasEnvironment.Calculator.GetTotalHours(_initialDirectiveArray),
                                                  GlobalObjects.CasEnvironment.Calculator.GetTotalCycles(_initialDirectiveArray));
#endif
                reportBuilder.Flights = _initialDirectiveArray.OrderByDescending(f => f.FlightDate.AddMinutes(f.FlightTime.TotalMinutes)).ToList();
                e.TypeOfReflection    = ReflectionTypes.DisplayInNew;
                e.DisplayerText       = CurrentAircraft.RegistrationNumber + " Monthly Utilization Report";
                e.RequestedEntity     = new ReportScreen(reportBuilder);
                GlobalObjects.AuditRepository.WriteReportAsync(GlobalObjects.CasEnvironment.IdentityUser, "MonthlyUtilizationListScreen (Monthly Utilization)");
            }
            else if (sender == itemPrintReportOperationTime)
            {
                _workPackages = GlobalObjects.WorkPackageCore.GetWorkPackagesLite(CurrentAircraft, WorkPackageStatus.Closed, _maintenanceChecks.Select(m => (IDirective)m).ToList());

                var records =
                    _maintenanceChecks.SelectMany(mc => mc.PerformanceRecords)
                    .Where(pr => pr.RecordDate.Date >= dateTimePickerDateFrom.Value.Date &&
                           pr.RecordDate.Date <= dateTimePickerDateTo.Value.Date)
                    .ToList();

                var lastCCheckRecord =
                    _maintenanceChecks.SelectMany(mc => mc.PerformanceRecords)
                    .Where(pr => pr.RecordDate.Date <= dateTimePickerDateTo.Value.Date)
                    .OrderByDescending(pr => pr.RecordDate)
                    .FirstOrDefault();

                var maintenanceCheckRecordGroups = new List <MaintenanceCheckRecordGroup>();

                foreach (MaintenanceCheckRecord record in records)
                {
                    //Поиск коллекции групп, в которую входят группы с нужными критериями
                    //по плану, группировка и основному ресурсу
                    if (record.ParentCheck.Grouping)
                    {
                        MaintenanceCheckRecordGroup recordGroup = maintenanceCheckRecordGroups
                                                                  .FirstOrDefault(g => g.Schedule == record.ParentCheck.Schedule &&
                                                                                  g.Grouping == record.ParentCheck.Grouping &&
                                                                                  g.Resource == record.ParentCheck.Resource &&
                                                                                  g.GroupComplianceNum == record.NumGroup);
                        if (recordGroup != null)
                        {
                            //Коллекция найдена
                            //Поиск в ней группы чеков с нужным типом
                            recordGroup.Records.Add(record);
                        }
                        else
                        {
                            //Коллекции с нужными критериями нет
                            //Созадние и добавление
                            recordGroup =
                                new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping,
                                                                record.ParentCheck.Resource, record.NumGroup);
                            recordGroup.Records.Add(record);
                            maintenanceCheckRecordGroups.Add(recordGroup);
                        }
                    }
                    else
                    {
                        MaintenanceCheckRecordGroup recordGroup =
                            new MaintenanceCheckRecordGroup(record.ParentCheck.Schedule, record.ParentCheck.Grouping,
                                                            record.ParentCheck.Resource);
                        recordGroup.Records.Add(record);
                        maintenanceCheckRecordGroups.Add(recordGroup);
                    }
                }

                OperationTimeReportBuilder reportBuilder =
                    new OperationTimeReportBuilder(CurrentAircraft,
                                                   maintenanceCheckRecordGroups,
                                                   GlobalObjects.ComponentCore.GetAicraftBaseComponents(CurrentAircraft.ItemId),
                                                   lastCCheckRecord,
                                                   _workPackages,
                                                   dateTimePickerDateFrom.Value.Date,
                                                   dateTimePickerDateTo.Value.Date);

                e.TypeOfReflection = ReflectionTypes.DisplayInNew;
                e.DisplayerText    = CurrentAircraft.RegistrationNumber + " Operation Time Report";
                e.RequestedEntity  = new ReportScreen(reportBuilder);
                GlobalObjects.AuditRepository.WriteReportAsync(GlobalObjects.CasEnvironment.IdentityUser, "MonthlyUtilizationListScreen (Operation Time)");
            }
            else
            {
                e.Cancel = true;
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Создается отчет по ВС
 /// </summary>
 /// <param name="builder"></param>
 public DispatcheredMonthlyUtilizationReport(MonthlyUtilizationBuilder builder)
     : this()
 {
     reportBuilder = builder;
     crystalReportViewer1.ReportSource = reportBuilder.GenerateReport();
 }