private void AddWorkPackageDataToDataSet(MaintenanceReportDataSet dataset) { var publishDate = _reportedWorkPackage.PublishingDate.ToString("dd MMMM yyyy"); var closeDate = _reportedWorkPackage.ClosingDate.ToString("dd MMMM yyyy"); var wpNumber = _reportedWorkPackage.Number; var title = _reportedWorkPackage.Title; dataset.WorkPackageDataTable.AddWorkPackageDataTableRow(publishDate, closeDate, wpNumber, title); foreach (var wpr in _reportedWorkPackage.WorkPakageRecords) { string descriptionOfTaskTitle; if (wpr.Task is Component) { var component = wpr.Task as Component; descriptionOfTaskTitle = $"P/N:{component.PartNumber} Pos:{component.Position} S/N:{component.SerialNumber} {component.WorkType}"; dataset.TaskDataTable.AddTaskDataTableRow(descriptionOfTaskTitle); } else if (wpr.Task is ComponentDirective) { var dd = wpr.Task as ComponentDirective; descriptionOfTaskTitle = dd.ParentComponent != null ? $"P/N:{dd.ParentComponent.PartNumber} Pos:{dd.ParentComponent.Position} S/N:{dd.ParentComponent.SerialNumber} {dd.ParentComponent.WorkType}" : ""; dataset.TaskDataTable.AddTaskDataTableRow(descriptionOfTaskTitle); } else if (wpr.Task is NonRoutineJob) { var nrj = wpr.Task as NonRoutineJob; dataset.TaskDataTable.AddTaskDataTableRow($"{nrj.Title} {nrj.Description}"); } else if (wpr.Task is Directive) { var directive = wpr.Task as Directive; if (directive.DirectiveType == DirectiveType.OutOfPhase) { dataset.TaskDataTable.AddTaskDataTableRow($"{directive.Title} {directive.Description}"); } if (directive.DirectiveType == DirectiveType.EngineeringOrders) { dataset.ADSBDataTable.AddADSBDataTableRow($"{directive.DirectiveType.ShortName} {directive.EngineeringOrders} {directive.Description}"); } if (directive.DirectiveType == DirectiveType.SB || directive.DirectiveType == DirectiveType.AirworthenessDirectives) { dataset.ADSBDataTable.AddADSBDataTableRow($"{directive.DirectiveType.ShortName} {directive.Title}"); } } } if (dataset.ADSBDataTable.Rows.Count == 0) { dataset.ADSBDataTable.AddADSBDataTableRow("N/A"); } if (dataset.TaskDataTable.Rows.Count == 0) { dataset.TaskDataTable.AddTaskDataTableRow("N/A"); } }
/// <summary> /// Построить источник данных (DataSet) для вывода в отчет /// </summary> /// <returns></returns> protected virtual DataSet GenerateDataSet() { var dataset = new MaintenanceReportDataSet(); AddBaseComponentDataToDataSet(dataset); AddAdditionalDataToDataSet(dataset); AddWorkPackageDataToDataSet(dataset); AddAircraftDataToDataSet(dataset); return(dataset); }
private void AddAircraftDataToDataSet(MaintenanceReportDataSet dataset) { var regNumber = _reportedAircraft.RegistrationNumber; var serialNumber = _reportedAircraft.SerialNumber; var model = _reportedAircraft.Model.ToString(); var reportAircraftLifeLenght = GlobalObjects.CasEnvironment.Calculator.GetFlightLifelengthOnEndOfDay(_reportedAircraft, _reportedWorkPackage.ClosingDate); var sinceNewHours = reportAircraftLifeLenght.Hours != null ? (int)reportAircraftLifeLenght.Hours : 0; var sinceNewCycles = reportAircraftLifeLenght.Cycles != null ? (int)reportAircraftLifeLenght.Cycles : 0; dataset.AircraftDataTable.AddAircraftDataTableRow(regNumber, serialNumber, model, sinceNewHours, sinceNewCycles); }
private void AddBaseComponentDataToDataSet(MaintenanceReportDataSet dataset) { var baseComponents = GlobalObjects.CasEnvironment.BaseComponents.Where( c => c.ParentAircraftId == _reportedAircraft.ItemId && c.BaseComponentType != BaseComponentType.Frame); foreach (var baseComponent in baseComponents) { var name = baseComponent.BaseComponentType.ToString(); var manufacturer = baseComponent.Manufacturer; var serialNumber = baseComponent.SerialNumber; var partNumber = baseComponent.BaseComponentType == BaseComponentType.Engine ? baseComponent.Model.ToString() : baseComponent.PartNumber; var currentDetailSource = GlobalObjects.CasEnvironment.Calculator.GetFlightLifelengthOnEndOfDay(baseComponent, _reportedWorkPackage.ClosingDate); var tsn = currentDetailSource.Hours != null?currentDetailSource.Hours.ToString() : ""; var tso = ""; //поиск директив деталей var directives = GlobalObjects.ComponentCore.GetComponentDirectives(baseComponent, true); //поиск директивы ремонта var overhauls = directives.Where(d => d.DirectiveType == ComponentRecordType.Overhaul).ToList(); var lastOverhaulDate = DateTime.MinValue; if (overhauls.Count != 0) { ComponentDirective lastOverhaul = null; foreach (var d in overhauls) { GlobalObjects.PerformanceCalculator.GetNextPerformance(d); if (d.LastPerformance == null || d.LastPerformance.RecordDate <= lastOverhaulDate) { continue; } lastOverhaulDate = d.LastPerformance.RecordDate; lastOverhaul = d; } if (lastOverhaul != null) { currentDetailSource.Substract(lastOverhaul.LastPerformance.OnLifelength); tso = currentDetailSource.Hours.ToString(); } } dataset.BaseDetailDataTable.AddBaseDetailDataTableRow(name, manufacturer, serialNumber, partNumber, tsn, tso); } }
private void AddAdditionalDataToDataSet(MaintenanceReportDataSet dataset) { var phone = $"тел./факс {_reportedOperator.Phone}"; dataset.AdditionalDataTAble.AddAdditionalDataTAbleRow(_reportTitle, _operatorLogotype, phone, _reportedOperator.Address, _reportedOperator.Name); }