Skip to content

Commit f297997

Browse files
tdean1991thadk
authored andcommitted
added additional earnings lines
1 parent 9acdb6a commit f297997

File tree

1 file changed

+69
-7
lines changed

1 file changed

+69
-7
lines changed

src/library/PiaFormat.ts

+69-7
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,26 @@ const oasdiEarningsSerializer: PIASerializer = new (class {
222222
}
223223

224224
serialize(data: Partial<PIAData>): PIALineMap {
225-
return;
225+
const line6 = {
226+
6: `06${
227+
data.firstEarningYearActual != undefined
228+
? data.firstEarningYearActual
229+
: this.fieldFormats.firstEarningYearActual.getBlank()
230+
}${
231+
data.lastEarningYearActual != undefined
232+
? data.lastEarningYearActual
233+
: this.fieldFormats.lastEarningYearActual.getBlank()
234+
}`,
235+
};
236+
237+
// const line20 = {
238+
// 20: `20${
239+
// data.typeOfEarnings != undefined
240+
// ?
241+
// :this.fieldFormats.typeOfEarnings.getBlank()
242+
// }`,
243+
// };
244+
return { ...line6 };
226245
}
227246
deserialize(lineMap: PIALineMap): Partial<PIAData> {
228247
const line6Str = lineMap[6];
@@ -265,20 +284,57 @@ const oasdiEarningsSerializer: PIASerializer = new (class {
265284
} else {
266285
oasdiLine = lineMap[i] || "";
267286
oasdiLine = oasdiLine.trim();
268-
debugger
287+
debugger;
269288
const parsedLine = parseYearEarningsLineString(
270289
oasdiLine,
271290
this.fieldFormats.oasdiEarnings.startChar,
272291
lineYear,
273292
this.fieldFormats.oasdiEarnings.fieldCharLength
274293
);
275-
oasdiData = new Map<PIAYear, PIAEarnings>([...Array.from(oasdiData.entries()),...Array.from(parsedLine.entries())])
294+
oasdiData = new Map<PIAYear, PIAEarnings>([
295+
...Array.from(oasdiData.entries()),
296+
...Array.from(parsedLine.entries()),
297+
]);
276298
// ([...oasdiData, ...parsedLine ]);
277-
lineYear = lineYear +=
278-
Math.floor(oasdiLine.length / this.fieldFormats.oasdiEarnings.fieldCharLength);
299+
lineYear = lineYear += Math.floor(
300+
oasdiLine.length / this.fieldFormats.oasdiEarnings.fieldCharLength
301+
);
279302
}
280303
}
281304

305+
lineYear = line6Data.firstEarningYearActual || 1950; //TODO: remove stub, calculate from line7 AND line 6.
306+
var hiData: Map<PIAYear, PIAEarnings> = new Map<PIAYear, PIAEarnings>();
307+
var hiLine: string;
308+
for (
309+
var i = this.fieldFormats.hiEarnings.startLine;
310+
i <= this.fieldFormats.hiEarnings.endLine;
311+
i++
312+
) {
313+
if (lineMap[i] == "") {
314+
break;
315+
} else {
316+
hiLine = lineMap[i] || "";
317+
hiLine = hiLine.trim();
318+
const parsedLine = parseYearEarningsLineString(
319+
hiLine,
320+
this.fieldFormats.hiEarnings.startChar,
321+
lineYear,
322+
this.fieldFormats.hiEarnings.fieldCharLength
323+
);
324+
hiData = new Map<PIAYear, PIAEarnings>([
325+
...Array.from(hiData.entries()),
326+
...Array.from(parsedLine.entries()),
327+
]);
328+
lineYear = lineYear += Math.floor(
329+
hiLine.length / this.fieldFormats.hiEarnings.fieldCharLength
330+
);
331+
}
332+
}
333+
334+
var line30To37Data: Partial<PIAData> = {
335+
hiEarnings: hiData,
336+
};
337+
282338
let line22To29Data: Partial<PIAData> = {
283339
oasdiEarnings: oasdiData,
284340
};
@@ -293,9 +349,14 @@ const oasdiEarningsSerializer: PIASerializer = new (class {
293349
}
294350
: {};
295351

296-
console.log({ ...line6Data, ...line20Data, ...line22To29Data })
352+
console.log({ ...line6Data, ...line20Data, ...line22To29Data });
297353

298-
return { ...line6Data, ...line20Data, ...line22To29Data };
354+
return {
355+
...line6Data,
356+
...line20Data,
357+
...line22To29Data,
358+
...line30To37Data,
359+
};
299360
}
300361
})();
301362

@@ -375,6 +436,7 @@ interface PIAData {
375436
typeOfEarnings?: Map<PIAYear, PIATypeOfEarnings>;
376437
typeOfTaxes?: Map<PIAYear, PIATypeOfTaxes>;
377438
oasdiEarnings?: Map<PIAYear, PIAEarnings>;
439+
hiEarnings?: Map<PIAYear, PIAEarnings>;
378440
piaEverythingElse?: string;
379441
}
380442

0 commit comments

Comments
 (0)