@@ -222,7 +222,26 @@ const oasdiEarningsSerializer: PIASerializer = new (class {
222
222
}
223
223
224
224
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 } ;
226
245
}
227
246
deserialize ( lineMap : PIALineMap ) : Partial < PIAData > {
228
247
const line6Str = lineMap [ 6 ] ;
@@ -265,20 +284,57 @@ const oasdiEarningsSerializer: PIASerializer = new (class {
265
284
} else {
266
285
oasdiLine = lineMap [ i ] || "" ;
267
286
oasdiLine = oasdiLine . trim ( ) ;
268
- debugger
287
+ debugger ;
269
288
const parsedLine = parseYearEarningsLineString (
270
289
oasdiLine ,
271
290
this . fieldFormats . oasdiEarnings . startChar ,
272
291
lineYear ,
273
292
this . fieldFormats . oasdiEarnings . fieldCharLength
274
293
) ;
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
+ ] ) ;
276
298
// ([...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
+ ) ;
279
302
}
280
303
}
281
304
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
+
282
338
let line22To29Data : Partial < PIAData > = {
283
339
oasdiEarnings : oasdiData ,
284
340
} ;
@@ -293,9 +349,14 @@ const oasdiEarningsSerializer: PIASerializer = new (class {
293
349
}
294
350
: { } ;
295
351
296
- console . log ( { ...line6Data , ...line20Data , ...line22To29Data } )
352
+ console . log ( { ...line6Data , ...line20Data , ...line22To29Data } ) ;
297
353
298
- return { ...line6Data , ...line20Data , ...line22To29Data } ;
354
+ return {
355
+ ...line6Data ,
356
+ ...line20Data ,
357
+ ...line22To29Data ,
358
+ ...line30To37Data ,
359
+ } ;
299
360
}
300
361
} ) ( ) ;
301
362
@@ -375,6 +436,7 @@ interface PIAData {
375
436
typeOfEarnings ?: Map < PIAYear , PIATypeOfEarnings > ;
376
437
typeOfTaxes ?: Map < PIAYear , PIATypeOfTaxes > ;
377
438
oasdiEarnings ?: Map < PIAYear , PIAEarnings > ;
439
+ hiEarnings ?: Map < PIAYear , PIAEarnings > ;
378
440
piaEverythingElse ?: string ;
379
441
}
380
442
0 commit comments