scheduler-node-models 1.0.79 → 1.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/general/emailer.d.ts +1 -0
  2. package/general/emailer.js +31 -0
  3. package/general/general.d.ts +12 -0
  4. package/general/general.js +2 -0
  5. package/general/index.d.ts +4 -0
  6. package/general/index.js +20 -0
  7. package/general/report.d.ts +12 -0
  8. package/general/report.js +70 -0
  9. package/general/reportStyle.d.ts +0 -0
  10. package/general/reportStyle.js +1 -0
  11. package/general/viewstate.d.ts +5 -0
  12. package/general/viewstate.js +9 -0
  13. package/index.d.ts +0 -0
  14. package/metrics/images.d.ts +22 -0
  15. package/metrics/images.js +33 -0
  16. package/metrics/index.d.ts +5 -0
  17. package/metrics/index.js +21 -0
  18. package/metrics/mission.d.ts +47 -0
  19. package/metrics/mission.js +81 -0
  20. package/metrics/missionSensorOutage.d.ts +11 -0
  21. package/metrics/missionSensorOutage.js +14 -0
  22. package/metrics/missionsensor.d.ts +67 -0
  23. package/metrics/missionsensor.js +128 -0
  24. package/metrics/outage.d.ts +43 -0
  25. package/metrics/outage.js +55 -0
  26. package/metrics/reports/drawSummary.d.ts +24 -0
  27. package/metrics/reports/drawSummary.js +311 -0
  28. package/metrics/reports/index.d.ts +5 -0
  29. package/metrics/reports/index.js +21 -0
  30. package/metrics/reports/missionDay.d.ts +8 -0
  31. package/metrics/reports/missionDay.js +23 -0
  32. package/metrics/reports/missionSummary.d.ts +25 -0
  33. package/metrics/reports/missionSummary.js +421 -0
  34. package/metrics/reports/missionType.d.ts +20 -0
  35. package/metrics/reports/missionType.js +314 -0
  36. package/metrics/reports/outageDay.d.ts +8 -0
  37. package/metrics/reports/outageDay.js +23 -0
  38. package/metrics/systemdata/classifications.d.ts +18 -0
  39. package/metrics/systemdata/classifications.js +23 -0
  40. package/metrics/systemdata/communications.d.ts +21 -0
  41. package/metrics/systemdata/communications.js +40 -0
  42. package/metrics/systemdata/dcgs.d.ts +19 -0
  43. package/metrics/systemdata/dcgs.js +29 -0
  44. package/metrics/systemdata/exploitations.d.ts +18 -0
  45. package/metrics/systemdata/exploitations.js +23 -0
  46. package/metrics/systemdata/groundSystems.d.ts +86 -0
  47. package/metrics/systemdata/groundSystems.js +143 -0
  48. package/metrics/systemdata/index.d.ts +7 -0
  49. package/metrics/systemdata/index.js +23 -0
  50. package/metrics/systemdata/platform.d.ts +124 -0
  51. package/metrics/systemdata/platform.js +176 -0
  52. package/metrics/systemdata/systeminfo.d.ts +28 -0
  53. package/metrics/systemdata/systeminfo.js +64 -0
  54. package/package.json +2 -2
  55. package/scheduler/employees/assignment.d.ts +139 -0
  56. package/scheduler/employees/assignment.js +304 -0
  57. package/scheduler/employees/balance.d.ts +35 -0
  58. package/scheduler/employees/balance.js +39 -0
  59. package/scheduler/employees/companyinfo.d.ts +16 -0
  60. package/scheduler/employees/companyinfo.js +6 -0
  61. package/scheduler/employees/contact.d.ts +36 -0
  62. package/scheduler/employees/contact.js +40 -0
  63. package/scheduler/employees/employee.d.ts +420 -0
  64. package/scheduler/employees/employee.js +1862 -0
  65. package/scheduler/employees/employeename.d.ts +48 -0
  66. package/scheduler/employees/employeename.js +97 -0
  67. package/scheduler/employees/index.d.ts +14 -0
  68. package/scheduler/employees/index.js +30 -0
  69. package/scheduler/employees/labor.d.ts +31 -0
  70. package/scheduler/employees/labor.js +39 -0
  71. package/scheduler/employees/leave.d.ts +58 -0
  72. package/scheduler/employees/leave.js +73 -0
  73. package/scheduler/employees/leaverequest.d.ts +105 -0
  74. package/scheduler/employees/leaverequest.js +226 -0
  75. package/scheduler/employees/specialty.d.ts +35 -0
  76. package/scheduler/employees/specialty.js +40 -0
  77. package/scheduler/employees/variation.d.ts +80 -0
  78. package/scheduler/employees/variation.js +132 -0
  79. package/scheduler/employees/web.d.ts +6 -0
  80. package/scheduler/employees/web.js +2 -0
  81. package/scheduler/employees/work.d.ts +96 -0
  82. package/scheduler/employees/work.js +133 -0
  83. package/scheduler/employees/workday.d.ts +91 -0
  84. package/scheduler/employees/workday.js +170 -0
  85. package/scheduler/labor/index.d.ts +2 -0
  86. package/scheduler/labor/index.js +18 -0
  87. package/scheduler/labor/laborcode.d.ts +33 -0
  88. package/scheduler/labor/laborcode.js +55 -0
  89. package/scheduler/labor/workcode.d.ts +28 -0
  90. package/scheduler/labor/workcode.js +35 -0
  91. package/scheduler/reports/chargeStatus.d.ts +66 -0
  92. package/scheduler/reports/chargeStatus.js +702 -0
  93. package/scheduler/reports/cofsReports.d.ts +11 -0
  94. package/scheduler/reports/cofsReports.js +36 -0
  95. package/scheduler/reports/enterpriseSchedule.d.ts +18 -0
  96. package/scheduler/reports/enterpriseSchedule.js +159 -0
  97. package/scheduler/reports/index.d.ts +4 -0
  98. package/scheduler/reports/index.js +20 -0
  99. package/scheduler/reports/scheduleReport.d.ts +17 -0
  100. package/scheduler/reports/scheduleReport.js +311 -0
  101. package/scheduler/sites/index.d.ts +1 -0
  102. package/scheduler/sites/index.js +17 -0
  103. package/scheduler/sites/reports/cofsReport.d.ts +41 -0
  104. package/scheduler/sites/reports/cofsReport.js +104 -0
  105. package/scheduler/sites/reports/forecast.d.ts +57 -0
  106. package/scheduler/sites/reports/forecast.js +205 -0
  107. package/scheduler/sites/reports/index.d.ts +4 -0
  108. package/scheduler/sites/reports/index.js +20 -0
  109. package/scheduler/sites/reports/period.d.ts +11 -0
  110. package/scheduler/sites/reports/period.js +27 -0
  111. package/scheduler/sites/reports/section.d.ts +63 -0
  112. package/scheduler/sites/reports/section.js +174 -0
  113. package/scheduler/sites/site.d.ts +39 -0
  114. package/scheduler/sites/site.js +61 -0
  115. package/scheduler/sites/workcenters/index.d.ts +3 -0
  116. package/scheduler/sites/workcenters/index.js +19 -0
  117. package/scheduler/sites/workcenters/position.d.ts +27 -0
  118. package/scheduler/sites/workcenters/position.js +36 -0
  119. package/scheduler/sites/workcenters/shift.d.ts +32 -0
  120. package/scheduler/sites/workcenters/shift.js +47 -0
  121. package/scheduler/sites/workcenters/workcenter.d.ts +43 -0
  122. package/scheduler/sites/workcenters/workcenter.js +123 -0
  123. package/scheduler/teams/company/company.d.ts +99 -0
  124. package/scheduler/teams/company/company.js +256 -0
  125. package/scheduler/teams/company/holiday.d.ts +55 -0
  126. package/scheduler/teams/company/holiday.js +108 -0
  127. package/scheduler/teams/company/index.d.ts +3 -0
  128. package/scheduler/teams/company/index.js +19 -0
  129. package/scheduler/teams/company/modperiod.d.ts +21 -0
  130. package/scheduler/teams/company/modperiod.js +24 -0
  131. package/scheduler/teams/contact.d.ts +18 -0
  132. package/scheduler/teams/contact.js +23 -0
  133. package/scheduler/teams/index.d.ts +3 -0
  134. package/scheduler/teams/index.js +19 -0
  135. package/scheduler/teams/specialty.d.ts +18 -0
  136. package/scheduler/teams/specialty.js +23 -0
  137. package/scheduler/teams/team.d.ts +95 -0
  138. package/scheduler/teams/team.js +351 -0
  139. package/users/index.d.ts +2 -0
  140. package/users/index.js +18 -0
  141. package/users/user.d.ts +130 -0
  142. package/users/user.js +254 -0
  143. package/users/web.d.ts +22 -0
  144. package/users/web.js +2 -0
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Outage = void 0;
4
+ class Outage {
5
+ id;
6
+ outageDate;
7
+ groundSystem;
8
+ classification;
9
+ outageNumber;
10
+ outageMinutes;
11
+ subSystem;
12
+ referenceId;
13
+ majorSystem;
14
+ problem;
15
+ fixAction;
16
+ missionOutage;
17
+ capability;
18
+ constructor(outage) {
19
+ this.id = (outage && outage.id) ? outage.id : '';
20
+ if (this.id === '') {
21
+ this.id = (outage && outage._id) ? outage?._id?.toString() : '';
22
+ }
23
+ this.outageDate = (outage) ? new Date(outage.outageDate) : new Date();
24
+ this.groundSystem = (outage) ? outage.groundSystem : '';
25
+ this.classification = (outage) ? outage.classification : '';
26
+ this.outageNumber = (outage) ? outage.outageNumber : 0;
27
+ this.outageMinutes = (outage) ? outage.outageMinutes : 0;
28
+ this.subSystem = (outage) ? outage.subSystem : '';
29
+ this.referenceId = (outage) ? outage.referenceId : '';
30
+ this.majorSystem = (outage) ? outage.majorSystem : '';
31
+ this.problem = (outage) ? outage.problem : '';
32
+ this.fixAction = (outage) ? outage.fixAction : '';
33
+ this.missionOutage = (outage) ? outage.missionOutage : false;
34
+ this.capability = (outage && outage.capability) ? outage.capability : undefined;
35
+ }
36
+ /**
37
+ * This function is used in sorting outages by comparing the outage's dates and numbers.
38
+ * @param other Another outage object used for comparison
39
+ * @returns A numeric value for the relative position of this object to the other.
40
+ */
41
+ compareTo(other) {
42
+ if (other) {
43
+ if (this.outageDate.getTime() === other.outageDate.getTime()) {
44
+ return (this.outageNumber < other.outageNumber) ? -1 : 1;
45
+ }
46
+ return (this.outageDate.getTime() < other.outageDate.getTime()) ? -1 : 1;
47
+ }
48
+ return -1;
49
+ }
50
+ useOutage(start, end) {
51
+ return (start.getTime() <= this.outageDate.getTime()
52
+ && end.getTime() > this.outageDate.getTime());
53
+ }
54
+ }
55
+ exports.Outage = Outage;
@@ -0,0 +1,24 @@
1
+ import { Workbook } from "exceljs";
2
+ import { Mission } from "../mission";
3
+ import { Outage } from "../outage";
4
+ import { GeneralTypes, SystemInfo } from "../systemdata";
5
+ import { User } from "../../users";
6
+ import { Report } from '../../general';
7
+ export declare class DrawSummary extends Report {
8
+ private reportType;
9
+ private start;
10
+ private end;
11
+ private dailyReports;
12
+ private missions;
13
+ private outages;
14
+ private systeminfo;
15
+ private fonts;
16
+ private fills;
17
+ private borders;
18
+ private alignments;
19
+ constructor(type: GeneralTypes, start: Date, end: Date, missions: Mission[], outages: Outage[], systemInfo: SystemInfo, daily?: boolean);
20
+ create(user: User): Workbook;
21
+ createStyles(): void;
22
+ createMissionSummary(workbook: Workbook): void;
23
+ createOutageSummary(workbook: Workbook): void;
24
+ }
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrawSummary = void 0;
4
+ const exceljs_1 = require("exceljs");
5
+ const mission_1 = require("../mission");
6
+ const outage_1 = require("../outage");
7
+ const general_1 = require("../../general");
8
+ const missionDay_1 = require("./missionDay");
9
+ const outageDay_1 = require("./outageDay");
10
+ class DrawSummary extends general_1.Report {
11
+ reportType;
12
+ start;
13
+ end;
14
+ dailyReports;
15
+ missions;
16
+ outages;
17
+ systeminfo;
18
+ fonts;
19
+ fills;
20
+ borders;
21
+ alignments;
22
+ constructor(type, start, end, missions, outages, systemInfo, daily) {
23
+ super();
24
+ this.reportType = type;
25
+ this.start = new Date(start);
26
+ this.end = new Date(end);
27
+ this.missions = missions;
28
+ this.outages = outages;
29
+ this.systeminfo = systemInfo;
30
+ this.dailyReports = (daily) ? daily : false;
31
+ this.fonts = new Map();
32
+ this.fills = new Map();
33
+ this.borders = new Map();
34
+ this.alignments = new Map();
35
+ }
36
+ create(user) {
37
+ const workbook = new exceljs_1.Workbook();
38
+ workbook.creator = user.getFullName();
39
+ workbook.created = new Date();
40
+ const delta = Math.floor((this.end.getTime() - this.start.getTime()) / (24 * 3600000));
41
+ if (delta == 1 && delta > 7) {
42
+ this.dailyReports = false;
43
+ }
44
+ this.createStyles();
45
+ this.createMissionSummary(workbook);
46
+ return workbook;
47
+ }
48
+ createStyles() {
49
+ // set fonts
50
+ this.fonts.set("bold14", { bold: true, size: 14, color: { argb: 'ffffffff' } });
51
+ this.fonts.set("bold12", { bold: true, size: 12, color: { argb: 'ff000000' } });
52
+ this.fonts.set("nobold10", { bold: false, size: 10, color: { argb: 'ff000000' } });
53
+ this.fonts.set("bold9", { bold: true, size: 9, color: { argb: 'ff000000' } });
54
+ this.fonts.set("nobold9", { bold: false, size: 9, color: { argb: 'ff000000' } });
55
+ this.fonts.set('notnorm', { bold: false, size: 9, color: { argb: 'ff0070c0' } });
56
+ // set fills
57
+ this.fills.set('black', { type: 'pattern', pattern: 'solid', fgColor: { argb: 'ff000000' } });
58
+ this.fills.set('white', { type: 'pattern', pattern: 'solid', fgColor: { argb: 'ffffffff' } });
59
+ this.fills.set('odd', { type: 'pattern', pattern: 'solid', fgColor: { argb: 'ffd3d3d3' } });
60
+ this.fills.set('even', { type: 'pattern', pattern: 'solid', fgColor: { argb: 'ffffffff' } });
61
+ // set borders
62
+ this.borders.set('blackthin', {
63
+ top: { style: 'thin', color: { argb: 'ff000000' } },
64
+ left: { style: 'thin', color: { argb: 'ff000000' } },
65
+ bottom: { style: 'thin', color: { argb: 'ff000000' } },
66
+ right: { style: 'thin', color: { argb: 'ff000000' } }
67
+ });
68
+ this.borders.set('blackthinNoRight', {
69
+ top: { style: 'thin', color: { argb: 'ff000000' } },
70
+ left: { style: 'thin', color: { argb: 'ff000000' } },
71
+ bottom: { style: 'thin', color: { argb: 'ff000000' } },
72
+ right: { style: 'thin', color: { argb: 'ffffffff' } }
73
+ });
74
+ this.borders.set('blackthinNoLeft', {
75
+ top: { style: 'thin', color: { argb: 'ff000000' } },
76
+ left: { style: 'thin', color: { argb: 'ffffffff' } },
77
+ bottom: { style: 'thin', color: { argb: 'ff000000' } },
78
+ right: { style: 'thin', color: { argb: 'ff000000' } }
79
+ });
80
+ // set alignments
81
+ this.alignments.set('center', { horizontal: 'center', vertical: 'middle', wrapText: true });
82
+ this.alignments.set('leftctr', { horizontal: 'left', vertical: 'middle', wrapText: true });
83
+ this.alignments.set('rightctr', { horizontal: 'right', vertical: 'middle', wrapText: true });
84
+ }
85
+ createMissionSummary(workbook) {
86
+ // set up the mission days from the missions provided
87
+ const days = [];
88
+ this.missions.forEach(msn => {
89
+ let found = false;
90
+ days.forEach((md, day) => {
91
+ if (md.use(msn.missionDate)) {
92
+ found = true;
93
+ md.missions.push(new mission_1.Mission(msn));
94
+ }
95
+ });
96
+ if (!found) {
97
+ const day = new missionDay_1.MissionDay(new Date(msn.missionDate));
98
+ day.missions.push(new mission_1.Mission(msn));
99
+ }
100
+ });
101
+ days.sort((a, b) => a.compareTo(b));
102
+ const label = 'DRAW Missions';
103
+ const sheet = workbook.addWorksheet(label);
104
+ sheet.pageSetup.showGridLines = false;
105
+ for (let i = 0; i < 10; i++) {
106
+ if (i !== 1) {
107
+ sheet.getColumn(i).width = 8.43;
108
+ }
109
+ else {
110
+ sheet.getColumn(i).width = 75.0;
111
+ }
112
+ }
113
+ // add header
114
+ let nRow = 2;
115
+ let style = {
116
+ border: this.borders.get('blackthin'),
117
+ fill: this.fills.get('black'),
118
+ font: this.fonts.get('bold14'),
119
+ alignment: this.alignments.get('center')
120
+ };
121
+ this.setCell(sheet, this.getCellID("B", nRow), this.getCellID("B", nRow), style, "DRAW Mission Summary");
122
+ days.forEach(day => {
123
+ nRow += 2;
124
+ style = {
125
+ border: this.borders.get('blackthin'),
126
+ fill: this.fills.get('white'),
127
+ font: this.fonts.get('nobold10'),
128
+ alignment: this.alignments.get('leftctr')
129
+ };
130
+ this.setCell(sheet, this.getCellID("B", nRow), this.getCellID("B", nRow), style, this.getDateString(day.missionDate));
131
+ if (day.missions.length === 0) {
132
+ style = {
133
+ border: this.borders.get('blackthin'),
134
+ fill: this.fills.get('white'),
135
+ font: this.fonts.get('nobold10'),
136
+ alignment: this.alignments.get('center')
137
+ };
138
+ this.setCell(sheet, this.getCellID("B", nRow + 1), this.getCellID("B", nRow + 1), style, "No missions scheduled for this date");
139
+ }
140
+ else {
141
+ day.missions.sort((a, b) => a.compareTo(b));
142
+ day.missions.forEach((msn, m) => {
143
+ let showMission = '';
144
+ let u2Text = '';
145
+ let sensorOutage = 0;
146
+ let groundOutage = 0;
147
+ let partialHB = -1;
148
+ let partialLB = -1;
149
+ let sensorComments = msn.comments;
150
+ let executeMinutes = 0;
151
+ if (this.systeminfo.platforms) {
152
+ this.systeminfo.platforms.forEach(plat => {
153
+ if (msn.platformID.toLowerCase() === plat.id.toLowerCase()) {
154
+ msn.sensors.forEach(mSen => {
155
+ plat.sensors.forEach(sen => {
156
+ if (mSen.sensorID.toLowerCase() === sen.id.toLowerCase()
157
+ && sen.use(msn.exploitation, this.reportType)) {
158
+ sensorOutage = mSen.sensorOutage.totalOutageMinutes;
159
+ groundOutage = mSen.groundOutage;
160
+ sensorComments = sensorComments.trim();
161
+ if (sensorComments !== '') {
162
+ sensorComments += ', ';
163
+ }
164
+ sensorComments += mSen.comments;
165
+ executeMinutes = mSen.executedMinutes + mSen.additionalMinutes;
166
+ switch (sen.id.toLowerCase()) {
167
+ case "pme3":
168
+ case "pme4":
169
+ showMission = "- CWS/" + sen.id + ": Ket " + mSen.kitNumber
170
+ + ` was Code ${mSen.finalCode}`;
171
+ u2Text = ` with ${sen.association} and ${msn.communications}`;
172
+ break;
173
+ case "pme9":
174
+ showMission = `DDSA/PME9: Kit ${mSen.kitNumber}`
175
+ + ` was Code ${mSen.finalCode}`;
176
+ break;
177
+ case "pme12":
178
+ showMission = `- CICS/PME12: Kit ${mSen.kitNumber} was Code `
179
+ + `${mSen.finalCode}`;
180
+ partialHB = mSen.sensorOutage.partialHBOutageMinutes;
181
+ partialLB = mSen.sensorOutage.partialLBOutageMinutes;
182
+ case "imint":
183
+ showMission = "- CWS/IMINT Sensor";
184
+ }
185
+ }
186
+ });
187
+ });
188
+ }
189
+ });
190
+ }
191
+ if (showMission !== '') {
192
+ let text = `This mission on ${this.getDateString(msn.missionDate)} was `
193
+ + `${msn.platformID} `;
194
+ if (msn.tailNumber !== '') {
195
+ text += ` using Article ${msn.tailNumber}`;
196
+ }
197
+ text += u2Text;
198
+ if (msn.exploitation.toLowerCase() === 'primary') {
199
+ text += `\n\r- Primary exploiting DGS was DGS-${msn.primaryDCGS}`;
200
+ }
201
+ if (!msn.cancelled && !msn.indefDelay && !msn.aborted) {
202
+ text += "\n\r" + showMission;
203
+ }
204
+ else if (msn.cancelled) {
205
+ text += "\n\r- Mission Cancelled";
206
+ }
207
+ else if (msn.aborted) {
208
+ text += "\n\r- Mission Aborted";
209
+ }
210
+ else if (msn.indefDelay) {
211
+ text += "\n\r- Mission Indefinite Delay";
212
+ }
213
+ if (msn.exploitation.toLowerCase() === 'primary'
214
+ && !msn.cancelled && !msn.aborted && !msn.indefDelay) {
215
+ text += `\n\r- Ground Outages: ${groundOutage} mins.`
216
+ + `\n\r- Sensor Outages: ${sensorOutage} mins.`;
217
+ if (partialHB > 0) {
218
+ text += `\n\r- Partial HB Outages: ${partialHB} mins.`;
219
+ }
220
+ if (partialLB > 0) {
221
+ text += `\n\r- Partial LB Outages: ${partialLB} mins`;
222
+ }
223
+ }
224
+ if (sensorComments !== '') {
225
+ text += `\n\r- Comments: ${sensorComments}`;
226
+ }
227
+ text = text.trim();
228
+ const textrows = text.split('\n\r');
229
+ sheet.getRow(nRow + m + 1).height = (textrows.length * 13.0);
230
+ this.setCell(sheet, this.getCellID("B", nRow + m + 1), this.getCellID("B", nRow + m + 1), style, text);
231
+ this.setCell(sheet, this.getCellID("C", nRow + m + 1), this.getCellID("C", nRow + m + 1), style, this.getTimeString(executeMinutes));
232
+ this.setCell(sheet, this.getCellID("D", nRow + m + 1), this.getCellID("D", nRow + m + 1), style, this.getTimeString(executeMinutes - (sensorOutage + groundOutage)));
233
+ }
234
+ });
235
+ nRow += day.missions.length;
236
+ }
237
+ });
238
+ }
239
+ createOutageSummary(workbook) {
240
+ const days = [];
241
+ this.outages.forEach(outage => {
242
+ let found = false;
243
+ days.forEach(day => {
244
+ if (day.use(outage.outageDate)) {
245
+ found = true;
246
+ day.outages.push(new outage_1.Outage(outage));
247
+ }
248
+ });
249
+ if (!found) {
250
+ const day = new outageDay_1.OutageDay(new Date(outage.outageDate));
251
+ day.outages.push(new outage_1.Outage(outage));
252
+ }
253
+ });
254
+ days.sort((a, b) => a.compareTo(b));
255
+ const label = 'DRAW Outage';
256
+ const sheet = workbook.addWorksheet(label);
257
+ sheet.pageSetup.showGridLines = false;
258
+ const widths = [8.43, 11.0, 11.0, 12.0, 8.0, 110.0, 8.43, 8.43, 8.43, 8.43];
259
+ widths.forEach((width, w) => {
260
+ sheet.getColumn(w).width = width;
261
+ });
262
+ let nRow = 2;
263
+ let style = {
264
+ border: this.borders.get('blackthin'),
265
+ fill: this.fills.get('black'),
266
+ font: this.fonts.get('bold14'),
267
+ alignment: this.alignments.get('center')
268
+ };
269
+ this.setCell(sheet, this.getCellID("B", nRow), this.getCellID("B", nRow), style, "DATE");
270
+ this.setCell(sheet, this.getCellID("C", nRow), this.getCellID("C", nRow), style, "SYSTEM");
271
+ this.setCell(sheet, this.getCellID("D", nRow), this.getCellID("D", nRow), style, "SUBSYSTEM");
272
+ this.setCell(sheet, this.getCellID("E", nRow), this.getCellID("E", nRow), style, "Outage (Mins)");
273
+ this.setCell(sheet, this.getCellID("F", nRow), this.getCellID("F", nRow), style, "PROBLEM(S)/RESOLUTION(S)");
274
+ nRow++;
275
+ days.forEach((day, d) => {
276
+ style = {
277
+ border: this.borders.get('blackthin'),
278
+ fill: this.fills.get((nRow % 2 === 0) ? 'even' : 'odd'),
279
+ font: this.fonts.get('nobold10'),
280
+ alignment: this.alignments.get('center')
281
+ };
282
+ this.setCell(sheet, this.getCellID("B", nRow), this.getCellID("B", nRow), style, this.getDateString(day.outageDate));
283
+ if (day.outages.length === 0) {
284
+ style.alignment = this.alignments.get('leftctr');
285
+ this.setCell(sheet, this.getCellID("C", nRow), this.getCellID("F", nRow), style, "NSTR");
286
+ }
287
+ else {
288
+ day.outages.forEach((outage, out) => {
289
+ style = {
290
+ border: this.borders.get('blackthin'),
291
+ fill: this.fills.get(((nRow + out) % 2 === 0) ? 'even' : 'odd'),
292
+ font: this.fonts.get('nobold10'),
293
+ alignment: this.alignments.get('center')
294
+ };
295
+ if (out > 0) {
296
+ this.setCell(sheet, this.getCellID("B", nRow + out), this.getCellID("B", nRow + out), style, '');
297
+ }
298
+ this.setCell(sheet, this.getCellID("C", nRow + out), this.getCellID("C", nRow + out), style, outage.groundSystem.toUpperCase());
299
+ this.setCell(sheet, this.getCellID("D", nRow + out), this.getCellID("D", nRow + out), style, outage.groundSystem.toUpperCase());
300
+ this.setCell(sheet, this.getCellID("E", nRow + out), this.getCellID("E", nRow + out), style, outage.subSystem.toUpperCase());
301
+ style.alignment = this.alignments.get('leftctr');
302
+ this.setCell(sheet, this.getCellID("F", nRow + out), this.getCellID("F", nRow + out), style, `PROBLEM(s): ${outage.problem}\rRESOLUTION(s): ${outage.fixAction}`);
303
+ sheet.getRow(nRow + out).height = 26.0;
304
+ });
305
+ nRow += day.outages.length - 1;
306
+ }
307
+ nRow++;
308
+ });
309
+ }
310
+ }
311
+ exports.DrawSummary = DrawSummary;
@@ -0,0 +1,5 @@
1
+ export * from './missionDay';
2
+ export * from './missionSummary';
3
+ export * from './missionType';
4
+ export * from './outageDay';
5
+ export * from './drawSummary';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./missionDay"), exports);
18
+ __exportStar(require("./missionSummary"), exports);
19
+ __exportStar(require("./missionType"), exports);
20
+ __exportStar(require("./outageDay"), exports);
21
+ __exportStar(require("./drawSummary"), exports);
@@ -0,0 +1,8 @@
1
+ import { Mission } from "../mission";
2
+ export declare class MissionDay {
3
+ missionDate: Date;
4
+ missions: Mission[];
5
+ constructor(date: Date);
6
+ compareTo(other?: MissionDay): number;
7
+ use(date: Date): boolean;
8
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MissionDay = void 0;
4
+ class MissionDay {
5
+ missionDate;
6
+ missions;
7
+ constructor(date) {
8
+ this.missionDate = new Date(date);
9
+ this.missions = [];
10
+ }
11
+ compareTo(other) {
12
+ if (other) {
13
+ return (this.missionDate.getTime() < other.missionDate.getTime()) ? -1 : 1;
14
+ }
15
+ return -1;
16
+ }
17
+ use(date) {
18
+ return (this.missionDate.getFullYear() === date.getFullYear()
19
+ && this.missionDate.getMonth() === date.getMonth()
20
+ && this.missionDate.getDate() === date.getDate());
21
+ }
22
+ }
23
+ exports.MissionDay = MissionDay;
@@ -0,0 +1,25 @@
1
+ import { Workbook } from "exceljs";
2
+ import { GeneralTypes, SystemInfo } from "../systemdata";
3
+ import { User } from "../../users";
4
+ import { Mission } from "../mission";
5
+ import { Outage } from "../outage";
6
+ import { MissionType } from "./missionType";
7
+ import { Report } from "../../general";
8
+ export declare class MissionSummary extends Report {
9
+ private reportType;
10
+ private start;
11
+ private end;
12
+ private dailyReports;
13
+ private missions;
14
+ private outages;
15
+ private systeminfo;
16
+ private fonts;
17
+ private fills;
18
+ private borders;
19
+ private alignments;
20
+ constructor(type: GeneralTypes, start: Date, end: Date, missions: Mission[], outages: Outage[], systemInfo: SystemInfo, daily?: boolean);
21
+ create(user: User): Workbook;
22
+ createStyles(): void;
23
+ createSummarySheet(workbook: Workbook, start: Date, end: Date, bDaily: boolean, rptType: GeneralTypes, label?: string): void;
24
+ getTotal(type: string, exploit: string, missionMap: Map<string, MissionType>, sensors: string[]): number;
25
+ }