def compute(form): f = form # Part I: Income f.line3 = f.line1 - f.line2 f.line5 = f.line3 - f.line4 f.line7 = f.line5 + f.line6 # Part II: Expenses f.line28 = dsum(getattr(f, attr) for attr in _expense_lines()) f.line29 = f.line7 - f.line28 f.line31 = f.line29 - f.line30 # Part III: Cost of Goods Sold f.line40 = f.line35 + f.line36 + f.line37 + f.line38 + f.line39 f.line42 = f.line40 - f.line41 # Part IV: Information on Your Vehicle # TODO # Part V: Other Expenses f.line48 = dsum(value for expense, value in f.Part_V)
def compute(form): f = form f.line6ab = bool(f.line6a) + bool(f.line6b) # TODO: dependents f.line6d = f.line6ab f.line22 = dsum(getattr(f, line) for line in income_tally) f.line36 = dsum(getattr(f, line) for line in adjustments) f.line37 = f.line22 - f.line36 f.line38 = f.line37 # TODO: standard deduction f.line41 = f.line38 - f.line40 exemption = exemptions[f.form_version] f.line42 = f.line6d * exemption f.line43 = max(f.line41 - f.line42, zero) if form.form_version == u'2012': f.line44 = tax_from_tax_table(f.line43, f.filing_status) else: schedule = schedules[form.form_version][f.filing_status] f.line44 = schedule.compute_tax_on(f.line43) f.line46 = f.line44 + f.line45 f.line54 = dsum(getattr(f, line) for line in credits) f.line55 = f.line46 - f.line54 f.line61 = f.line55 + dsum(getattr(f, line) for line in other_taxes) f.line72 = dsum(getattr(f, line) for line in payments) - f.line64b if f.line72 > f.line61: f.line73 = f.line72 - f.line61 # TODO: asking for refund etc elif f.line61 > f.line72: f.line76 = f.line61 - f.line72
def _compute_pre_2014(f, v): f.line46 = f.line44 + f.line45 f.line54 = dsum(getattr(f, line) for line in v.credits) f.line55 = f.line46 - f.line54 f.line61 = f.line55 + dsum(getattr(f, line) for line in v.other_taxes) f.line72 = dsum(getattr(f, line) for line in v.payments) - f.line64b if f.line72 > f.line61: f.line73 = f.line72 - f.line61 # TODO: asking for refund etc elif f.line61 > f.line72: f.line76 = f.line61 - f.line72
def check(form, forms, eq): f8949s = forms['us.f8949'] if not f8949s: return letters = 'efg' if form.form_version < '2012' else 'degh' for i, box in enumerate('ABC', 1): these = [f for f in f8949s if f.Part_I.box == box] for letter in letters: line = 'total_{}'.format(letter) n = dsum(getattr(f.Part_I, line) for f in these) eq('line{}{}'.format(i, letter), n) for i, box in enumerate('ABC', 8): these = [f for f in f8949s if f.Part_I.box == box] for letter in letters: line = 'total_{}'.format(letter) n = dsum(getattr(f.Part_II, line) for f in these) eq('line{}{}'.format(i, letter), n)
def compute(form): f = form v = info_dict[f.form_version] f.line6ab = bool(f.line6a) + bool(f.line6b) exemptions_count = f.line6ab exemptions_count += getattr(f, 'line6c_lived_with', 0) exemptions_count += getattr(f, 'line6c_not_lived_with', 0) exemptions_count += getattr(f, 'line6c_other', 0) f.line6d = exemptions_count f.line22 = dsum(getattr(f, line) for line in income_tally) f.line36 = dsum(getattr(f, line) for line in adjustments) f.line37 = f.line22 - f.line36 f.line38 = f.line37 # TODO: standard deduction f.line41 = f.line38 - f.line40 exemption = exemptions[f.form_version] f.line42 = f.line6d * exemption f.line43 = max(f.line41 - f.line42, zero) if form.form_version == u'2012': f.line44 = tax_from_tax_table(f.line43, f.filing_status) else: schedule = schedules[form.form_version][f.filing_status] f.line44 = schedule.compute_tax_on(f.line43) if f.form_version < u'2014': return _compute_pre_2014(f, v) f.line46 = zero f.line47 = f.line44 + f.line45 + f.line46 f.line55 = dsum(getattr(f, line) for line in v.credits) f.line56 = f.line47 - f.line55 f.line63 = f.line56 + dsum(getattr(f, line) for line in v.other_taxes) f.line74 = dsum(getattr(f, line) for line in v.payments) - f.line66b if f.line74 > f.line63: f.line75 = f.line74 - f.line63 f.line78 = zero # TODO: asking for refund etc elif f.line63 > f.line74: f.line75 = zero f.line78 = f.line63 - f.line74