Add Form 1099-INT.
[ustaxlib.git] / src / fed2019 / Form1099INT.ts
1 import Form from '../Form';
2 import { InputLine } from '../Line';
3 import Person from '../Person';
4
5 export interface Form1099INTInput {
6 payer: string;
7 payee: Person;
8 interest: number;
9 earlyWithdrawalPenalty?: number;
10 interestOnUsSavingsBondOrTreas?: number;
11 fedIncomeTax?: number;
12 investmentExpenses?: number;
13 foreignTaxPaid?: number;
14 foreignCountryOrPosession?: string;
15 taxExemptInterest?: number;
16 privateActivityBondInterest?: number;
17 marketDiscount?: number;
18 bondPremium?: number;
19 bondPremiumOnTreas?: number;
20 bondPremiumOnTaxExempt?: number;
21 };
22
23 class Input<T extends keyof Form1099INTInput> extends InputLine<Form1099INTInput, T> {};
24
25 export default class Form1099INT extends Form<Form1099INT['_lines'], Form1099INTInput> {
26 readonly name = '1099-INT';
27
28 readonly supportsMultipleCopies = true;
29
30 protected readonly _lines = {
31 'payer': new Input('payer'),
32 'recipient': new Input('payee'),
33 '1': new Input('interest'),
34 '2': new Input('earlyWithdrawalPenalty'),
35 '3': new Input('interestOnUsSavingsBondOrTreas'),
36 '4': new Input('fedIncomeTax'),
37 '5': new Input('investmentExpenses'),
38 '6': new Input('foreignTaxPaid'),
39 '7': new Input('foreignCountryOrPosession'),
40 '8': new Input('taxExemptInterest'),
41 '9': new Input('privateActivityBondInterest'),
42 '10': new Input('marketDiscount'),
43 '11': new Input('bondPremium'),
44 '12': new Input('bondPremiumOnTreas'),
45 '13': new Input('bondPremiumOnTaxExempt')
46 };
47 };