コード例 #1
0
ファイル: f8829.py プロジェクト: brandon-rhodes/luca
def fill_out(form, pdf):
    f = form
    pdf.load("us.f8829--{}.pdf".format(f.form_version))

    if f.form_version < u"2014":
        return fill_out_pre_2014(form, pdf)

    pdf.pattern = "p1-t{}[0]"

    pdf[1] = f.name
    pdf[2] = f.ssn

    pdf[3] = zstr(f.line1)
    pdf[4] = zstr(f.line2)
    pdf[5] = zstr(f.line3 * hundred).rstrip(u"0 ")
    # pdf[8] = zstr(f.line4)
    # pdf[9] = zstr(f.line6)
    pdf[9] = zstr(f.line7 * hundred).rstrip(u"0 ")

    n = 10
    for seq in (
        [[8]] + [ab(i) for i in range(9, 13)] + [[13, 14, 15]] + [ab(i) for i in range(16, 23)] + [range(23, 40)]
    ):
        for i in seq:
            pdf[n], pdf[n + 1] = zzstr(f["line", i])
            n += 2

    pdf[96] = zstr(f.line40 * hundred).rstrip(u"0 ")
    pdf[97], pdf[98] = zzstr(f.line41)
    pdf[99], pdf[100] = zzstr(f.line42)
    pdf[101], pdf[102] = zzstr(f.line43)
コード例 #2
0
ファイル: f8829.py プロジェクト: brandon-rhodes/luca
def fill_out_pre_2014(form, pdf):
    f = form
    pdf.pattern = "p1-t{}[0]"

    pdf[1] = f.name
    pdf[2] = f.ssn

    pdf[5] = zstr(f.line1)
    pdf[6] = zstr(f.line2)
    pdf[7] = zstr(f.line3 * hundred).rstrip(u"0 ")
    # pdf[8] = zstr(f.line4)
    # pdf[9] = zstr(f.line6)
    pdf[10] = zstr(f.line7 * hundred).rstrip(u"0 ")

    n = 11
    for seq in (
        [[8]] + [ab(i) for i in range(9, 13)] + [[13, 14, 15]] + [ab(i) for i in range(16, 23)] + [range(23, 40)]
    ):
        for i in seq:
            pdf[n], pdf[n + 1] = zzstr(f["line", i])
            n += 2

    pdf[97] = zstr(f.line40 * hundred).rstrip(u"0 ")
    pdf[98], pdf[99] = zzstr(f.line41)
    pdf[100], pdf[101] = zzstr(f.line42)
    pdf[102], pdf[103] = zzstr(f.line43)
コード例 #3
0
ファイル: f8829.py プロジェクト: B-Rich/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f8829--{}.pdf'.format(f.form_version))

    pdf.pattern = 'p1-t{}[0]'

    pdf[1] = f.name
    pdf[2] = f.ssn

    pdf[5] = zstr(f.line1)
    pdf[6] = zstr(f.line2)
    pdf[7] = zstr(f.line3 * hundred).rstrip(u'0 ')
    # pdf[8] = zstr(f.line4)
    # pdf[9] = zstr(f.line6)
    pdf[10] = zstr(f.line7 * hundred).rstrip(u'0 ')

    n = 11
    for seq in (
          [[8]] + [ab(i) for i in range(9, 13)] + [[13, 14, 15]]
          + [ab(i) for i in range(16, 23)] + [range(23, 40)]
          ):
        for i in seq:
            pdf[n], pdf[n+1] = zzstr(f['line', i])
            n += 2

    pdf[97] = zstr(f.line40 * hundred).rstrip(u'0 ')
    pdf[98], pdf[99] = zzstr(f.line41)
    pdf[100], pdf[101] = zzstr(f.line42)
    pdf[102], pdf[103] = zzstr(f.line43)
コード例 #4
0
ファイル: f8829.py プロジェクト: zrisher/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f8829--{}.pdf'.format(f.form_version))

    if f.form_version < u'2014':
        return fill_out_pre_2014(form, pdf)

    pdf.pattern = 'p1-t{}[0]'

    pdf[1] = f.name
    pdf[2] = f.ssn

    pdf[3] = zstr(f.line1)
    pdf[4] = zstr(f.line2)
    pdf[5] = zstr(f.line3 * hundred).rstrip(u'0 ')
    # pdf[8] = zstr(f.line4)
    # pdf[9] = zstr(f.line6)
    pdf[9] = zstr(f.line7 * hundred).rstrip(u'0 ')

    n = 10
    for seq in ([[8]] + [ab(i) for i in range(9, 13)] + [[13, 14, 15]] +
                [ab(i) for i in range(16, 23)] + [range(23, 40)]):
        for i in seq:
            pdf[n], pdf[n + 1] = zzstr(f['line', i])
            n += 2

    pdf[96] = zstr(f.line40 * hundred).rstrip(u'0 ')
    pdf[97], pdf[98] = zzstr(f.line41)
    pdf[99], pdf[100] = zzstr(f.line42)
    pdf[101], pdf[102] = zzstr(f.line43)
コード例 #5
0
ファイル: f8829.py プロジェクト: zrisher/luca
def fill_out_pre_2014(form, pdf):
    f = form
    pdf.pattern = 'p1-t{}[0]'

    pdf[1] = f.name
    pdf[2] = f.ssn

    pdf[5] = zstr(f.line1)
    pdf[6] = zstr(f.line2)
    pdf[7] = zstr(f.line3 * hundred).rstrip(u'0 ')
    # pdf[8] = zstr(f.line4)
    # pdf[9] = zstr(f.line6)
    pdf[10] = zstr(f.line7 * hundred).rstrip(u'0 ')

    n = 11
    for seq in ([[8]] + [ab(i) for i in range(9, 13)] + [[13, 14, 15]] +
                [ab(i) for i in range(16, 23)] + [range(23, 40)]):
        for i in seq:
            pdf[n], pdf[n + 1] = zzstr(f['line', i])
            n += 2

    pdf[97] = zstr(f.line40 * hundred).rstrip(u'0 ')
    pdf[98], pdf[99] = zzstr(f.line41)
    pdf[100], pdf[101] = zzstr(f.line42)
    pdf[102], pdf[103] = zzstr(f.line43)
コード例 #6
0
ファイル: f1120ssk.py プロジェクト: Troc91/luca
def fill_out(form, pdf):
    f = form
    if f.form_version in (u'2018', u'2019'):
        return fill_out_2019(form, pdf)
    if f.form_version == u'2017':
        return fill_out_2017(form, pdf)
    if f.form_version < u'2017':
        return old_fill_out(form, pdf)

    pdf.load('us.f1120ssk--{}.pdf'.format(f.form_version))
    pdf.pages = 1,

    # TODO: these two codes might no longer be correct

    pdf['c1_01_0_[0]'] = 'Yes' if f.final else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.amended else 'Off'

    # TODO: specific dates instead of calendar year

    # pdf.pattern = 'p1-t{}[0]'

    # pdf[1] = f.beginning_date
    # pdf[2] = f.ending_date
    # pdf[3] = f.ending_year

    pdf.pattern = 'f1_{:02d}[0]'

    n = 6
    for letter in 'ABCDEF':
        pdf[n] = f[letter]
        n += 1

    n += 4  # TODO: G and H

    for number in first_nine_lines:
        pdf[n] = zstr(f['line', number])
        n += 1

    pdf[27] = zstr(f.line11)

    pdf.pattern = '{}'

    def write_lines(line_number, n):
        lines = f['line', line_number]
        for line in lines:
            pdf['f1_{}[0]'.format(n)] = line.code
            n += 1
            pdf['f1_{}[0]'.format(n)] = zstr(line.amount)
            n += 1

    write_lines(10, 24)
    #write_lines(11, 28)
    write_lines(12, 35)
    write_lines(13, 51)
    write_lines(14, 61)
    write_lines(15, 75)
    write_lines(16, 85)
    write_lines(17, 95)
コード例 #7
0
ファイル: f1120ssk.py プロジェクト: brandon-rhodes/luca
def fill_out(form, pdf):
    f = form
    if f.form_version == u'2017':
        return fill_out_2017(form, pdf)
    if f.form_version < u'2017':
        return old_fill_out(form, pdf)

    pdf.load('us.f1120ssk--{}.pdf'.format(f.form_version))
    pdf.pages = 1,

    # TODO: these two codes might no longer be correct

    pdf['c1_01_0_[0]'] = 'Yes' if f.final else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.amended else 'Off'

    # TODO: specific dates instead of calendar year

    # pdf.pattern = 'p1-t{}[0]'

    # pdf[1] = f.beginning_date
    # pdf[2] = f.ending_date
    # pdf[3] = f.ending_year

    pdf.pattern = 'f1_{:02d}[0]'

    n = 6
    for letter in 'ABCDEF':
        pdf[n] = f[letter]
        n += 1

    for number in first_nine_lines:
        pdf[n] = zstr(f['line', number])
        n += 1

    pdf[27] = zstr(f.line11)

    pdf.pattern = '{}'

    def write_lines(line_number, n):
        lines = f['line', line_number]
        for line in lines:
            pdf['f1_{}[0]'.format(n)] = line.code
            n += 1
            pdf['f1_{}[0]'.format(n)] = zstr(line.amount)
            n += 1

    write_lines(10, 24)
    #write_lines(11, 28)
    write_lines(12, 35)
    write_lines(13, 51)
    write_lines(14, 61)
    write_lines(15, 75)
    write_lines(16, 85)
    write_lines(17, 95)
コード例 #8
0
ファイル: f1120ssk.py プロジェクト: jeremytammik/luca
 def write_lines(line_number, n):
     lines = f['line', line_number]
     for line in lines:
         pdf['f1_{}[0]'.format(n)] = line.code
         n += 1
         pdf['f1_{}[0]'.format(n)] = zstr(line.amount)
         n += 1
コード例 #9
0
ファイル: f1120ssk.py プロジェクト: brandon-rhodes/luca
 def write_lines(line_number, n):
     lines = f['line', line_number]
     for line in lines:
         pdf['f1_{}[0]'.format(n)] = line.code
         n += 1
         pdf['f1_{}[0]'.format(n)] = zstr(line.amount)
         n += 1
コード例 #10
0
ファイル: f1120ssk.py プロジェクト: jeremytammik/luca
def fill_out_2017(form, pdf):
    f = form
    pdf.load('us.f1120ssk--{}.pdf'.format(f.form_version))
    pdf.pages = 1,

    # TODO: these two codes might no longer be correct

    pdf['c1_01_0_[0]'] = 'Yes' if f.final else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.amended else 'Off'

    # TODO: specific dates instead of calendar year

    # pdf.pattern = 'p1-t{}[0]'

    # pdf[1] = f.beginning_date
    # pdf[2] = f.ending_date
    # pdf[3] = f.ending_year

    pdf.pattern = 'f1_{:02d}[0]'

    n = 6
    for letter in 'ABCDEF':
        pdf[n] = f[letter]
        n += 1

    for number in first_nine_lines:
        pdf[n] = zstr(f['line', number])
        n += 1

    pdf[27] = zstr(f.line11)

    pdf.pattern = '{}'

    def write_lines(line_number, n):
        lines = f['line', line_number]
        for line in lines:
            pdf['p1-t{}a'.format(n)] = line.code
            pdf['p1-t{}[0]'.format(n)] = zstr(line.amount)
            n += 1

    write_lines(10, 22)
    write_lines(12, 28)
    write_lines(13, 36)
    write_lines(14, 41)
    write_lines(15, 48)
    write_lines(16, 53)
    write_lines(17, 58)
コード例 #11
0
ファイル: f1040sd.py プロジェクト: MattHJensen/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f1040sd--{}.pdf'.format(f.form_version))

    pdf['f1_001['] = f.name
    pdf['f1_002['] = f.ssn

    letters = 'efgh' if f.form_version < u'2012' else 'degh'

    # Part I: Short-Term Capital Gains and Losses

    pdf.pattern = 'f1_{:03d}'

    n = 3
    for line in 1, 2, 3:
        for letter in letters:
            value = getattr(f, 'line{}{}'.format(line, letter))
            pdf[n] = zstr(value)
            n += 1

    for line in 4, 5, 6, 7:
        value = getattr(f, 'line{}'.format(line))
        pdf[n] = zstr(value)
        n += 1

    # Part II: Long-Term Capital Gains and Losses

    for line in 8, 9, 10:
        for letter in letters:
            value = getattr(f, 'line{}{}'.format(line, letter))
            pdf[n] = zstr(value)
            n += 1

    for line in 11, 12, 13, 14, 15:
        value = getattr(f, 'line{}'.format(line))
        pdf[n] = zstr(value)
        n += 1

    # Part III: Summary

    pdf.pattern = 'f2_{:03d}'

    pdf[1] = zstr(f.line16)
    pdf[2] = zstr(f.line18)
    pdf[3] = zstr(f.line19)
    pdf[5] = zstr(f.line21)

    pdf.pattern = '.c2_0{}_'

    pdf[1] = yesno(f.line17)
    pdf[2] = yesno(f.line20)
    pdf[3] = yesno(f.line22)
コード例 #12
0
ファイル: f1040sd.py プロジェクト: zrisher/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f1040sd--{}.pdf'.format(f.form_version))

    pdf['f1_001['] = f.name
    pdf['f1_002['] = f.ssn

    letters = 'efgh' if f.form_version < u'2012' else 'degh'

    # Part I: Short-Term Capital Gains and Losses

    pdf.pattern = 'f1_{:03d}'

    n = 3
    for line in 1, 2, 3:
        for letter in letters:
            value = getattr(f, 'line{}{}'.format(line, letter))
            pdf[n] = zstr(value)
            n += 1

    for line in 4, 5, 6, 7:
        value = getattr(f, 'line{}'.format(line))
        pdf[n] = zstr(value)
        n += 1

    # Part II: Long-Term Capital Gains and Losses

    for line in 8, 9, 10:
        for letter in letters:
            value = getattr(f, 'line{}{}'.format(line, letter))
            pdf[n] = zstr(value)
            n += 1

    for line in 11, 12, 13, 14, 15:
        value = getattr(f, 'line{}'.format(line))
        pdf[n] = zstr(value)
        n += 1

    # Part III: Summary

    pdf.pattern = 'f2_{:03d}'

    pdf[1] = zstr(f.line16)
    pdf[2] = zstr(f.line18)
    pdf[3] = zstr(f.line19)
    pdf[5] = zstr(f.line21)

    pdf.pattern = '.c2_0{}_'

    pdf[1] = yesno(f.line17)
    pdf[2] = yesno(f.line20)
    pdf[3] = yesno(f.line22)
コード例 #13
0
ファイル: f1120ssk.py プロジェクト: MattHJensen/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f1120ssk--{}.pdf'.format(f.form_version))
    pdf.pages = 1,

    pdf['c1_01_0_[0]'] = 'Yes' if f.final else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.amended else 'Off'

    pdf.pattern = 'p1-t{}[0]'

    pdf[1] = f.beginning_date
    pdf[2] = f.ending_date
    pdf[3] = f.ending_year

    n = 4
    for letter in 'ABCDEF':
        pdf[n] = f[letter]
        n += 1

    for number in first_nine_lines:
        pdf[n] = zstr(f['line', number])
        n += 1

    pdf[27] = zstr(f.line11)

    pdf.pattern = '{}'

    def write_lines(line_number, n):
        lines = f['line', line_number]
        for line in lines:
            pdf['p1-t{}a'.format(n)] = line.code
            pdf['p1-t{}[0]'.format(n)] = zstr(line.amount)
            n += 1

    write_lines(10, 22)
    write_lines(12, 28)
    write_lines(13, 36)
    write_lines(14, 41)
    write_lines(15, 48)
    write_lines(16, 53)
    write_lines(17, 58)
コード例 #14
0
ファイル: f1120ssk.py プロジェクト: jeremytammik/luca
def old_fill_out(form, pdf):
    f = form
    pdf.load('us.f1120ssk--{}.pdf'.format(f.form_version))
    pdf.pages = 1,

    pdf['c1_01_0_[0]'] = 'Yes' if f.final else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.amended else 'Off'

    pdf.pattern = 'p1-t{}[0]'

    pdf[1] = f.beginning_date
    pdf[2] = f.ending_date
    pdf[3] = f.ending_year

    n = 4
    for letter in 'ABCDEF':
        pdf[n] = f[letter]
        n += 1

    for number in first_nine_lines:
        pdf[n] = zstr(f['line', number])
        n += 1

    pdf[27] = zstr(f.line11)

    pdf.pattern = '{}'

    def write_lines(line_number, n):
        lines = f['line', line_number]
        for line in lines:
            pdf['p1-t{}a'.format(n)] = line.code
            pdf['p1-t{}[0]'.format(n)] = zstr(line.amount)
            n += 1

    write_lines(10, 22)
    write_lines(12, 28)
    write_lines(13, 36)
    write_lines(14, 41)
    write_lines(15, 48)
    write_lines(16, 53)
    write_lines(17, 58)
コード例 #15
0
ファイル: f1120s.py プロジェクト: B-Rich/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f1120s--{}.pdf'.format(f.form_version))

    def split(i, value, j=None):
        if j is None:
            j = i + 1
        pdf[i], pdf[j] = zzstr(value)

    pdf.pattern = '.p1-t{}[0]'

    pdf[1] = f.beginning_date
    pdf[2] = f.ending_date
    pdf[3] = f.ending_year

    pdf[4] = f.name
    pdf[5] = f.street
    pdf[6] = f.city_state_zip
    pdf[7] = f.lineA
    pdf[8] = f.lineB

    pdf[9] = f.ein
    pdf[11] = f.lineE
    split(12, f.lineF)

    pdf[14] = str(f.lineI)
    split(15, f.line1a)
    split(17, f.line1b)
    split(19, f.line1c)
    for i in range(2, 21+1):
        split(2*i + 17, f['line', i])
    split(61, f.line22a)
    split(63, f.line22b)
    split(65, f.line22c)
    split(67, f.line23a)
    split(69, f.line23b)
    split(71, f.line23c)
    split(73, f.line23d)
    split(75, f.line24)
    split(77, f.line25)
    split(79, f.line26)
    split(81, f.line27_credited)
    split(83, f.line27)

    pdf.pattern = 'topmostSubform[0].Page1[0].{}'

    pdf['ABC[0].c1_01_0_[0]'] = 'Yes' if f.lineC else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.lineG else 'Off'
    pdf['c1_02_0_[1]'] = 'Off' if f.lineG else 'No'

    for i in range(1, 5+1):
        checked = str(i) in f.lineH
        pdf['c1_0{}_0_[0]'.format(i + 2)] = 'Yes' if checked else 'Off'

    pdf['p1_t85[0]'] = f.signer_title  # note the underscore!
    pdf['c1_9_0_[0]'] = 'Yes' if f.discuss else 'Off'
    pdf['c1_9_0_[1]'] = 'Off' if f.discuss else 'No'

    pdf.pattern = 'topmostSubform[0].Page2[0].{}'

    pdf['c2_01_0_[0]'] = 'A' if f.B.line1 == 'a' else 'Off'
    pdf['c2_01_0_[1]'] = 'B' if f.B.line1 == 'b' else 'Off'
    if f.B.line1 not in ('a', 'b'):
        pdf['c2_01_0_[2]'] = 'C'
        pdf['p2-t19[0]'] = f.B.line1
    pdf['p2-t20'] = f.B.line2_activity
    pdf['p2-t21'] = f.B.line2_product_or_service
    pdf['c2_04_0_[0]'] = 'Yes' if f.B.line3 else 'Off'
    pdf['c2_04_0_[1]'] = 'Off' if f.B.line3 else 'No'
    pdf['c2_06_0_[0]'] = 'Yes' if f.B.line4a else 'Off'
    pdf['c2_06_0_[1]'] = 'Off' if f.B.line4a else 'No'
    pdf['c2_08_0_[0]'] = 'Yes' if f.B.line4b else 'Off'
    pdf['c2_08_0_[1]'] = 'Off' if f.B.line4b else 'No'
    pdf['c2_10_0_[0]'] = 'Yes' if (f.B.line5ai or f.B.line5aii) else 'Off'
    pdf['c2_10_0_[1]'] = 'Off' if (f.B.line5ai or f.B.line5aii) else 'No'
    pdf['c2_112_0_[0]'] = 'Yes' if (f.B.line5bi or f.B.line5bii) else 'Off'
    pdf['c2_112_0_[1]'] = 'Off' if (f.B.line5bi or f.B.line5bii) else 'No'
    pdf['c2_15_0_[0]'] = 'Yes' if f.B.line6 else 'Off'
    pdf['c2_15_0_[1]'] = 'Off' if f.B.line6 else 'No'
    pdf['c2_11_0_[0]'] = 'Yes' if f.B.line7 else 'Off'
    pdf['p2-t22[0]'] = zstr(f.B.line8)
    pdf['p2-t23[0]'] = zstr(f.B.line9)
    pdf['c2_100_0_[0]'] = 'Yes' if f.B.line10 else 'Off'
    pdf['c2_101_0_[0]'] = 'Yes' if f.B.line11 else 'Off'
    pdf['c2_101_0_[1]'] = 'Off' if f.B.line11 else 'No'
    pdf['p2-t22[1]'] = zstr(f.B.line11)
    pdf['c2_13_0_[0]'] = 'Yes' if f.B.line12 else 'Off'
    pdf['c2_13_0_[1]'] = 'Off' if f.B.line12 else 'No'
    if f.form_version == u'2012':
        pdf['c2_80_0_[0]'] = 'Yes' if f.B.line13a else 'Off'
        pdf['c2_80_0_[1]'] = 'Off' if f.B.line13a else 'No'
    else:
        pdf['c2_13a_0_[0]'] = 'Yes' if f.B.line13a else 'Off'
        pdf['c2_13a_0_[1]'] = 'Off' if f.B.line13a else 'No'
    pdf['c2_07_0_[0]'] = 'Yes' if f.B.line13b else 'Off'
    pdf['c2_07_0_[1]'] = 'Off' if f.B.line13b else 'No'

    if f.form_version == u'2010':
        pdf.pattern = '.p2-t{}[0]'

        split(24, f.K.line1)
        split(34, f.K.line4)
        split(55, f.K.line11)
        split(125, f.K.line16c)
        split(127, f.K.line16d)
        split(131, f.K.line17a)
        split(137, f.K.line18)

        pdf.pattern = '.p4-t{}[0]'

        pdf[87] = zstr(f.M2.line1a)
        pdf[90] = zstr(f.M2.line2a)
        pdf[91] = zstr(f.M2.line3a)
        pdf[93] = zstr(f.M2.line4a)
        pdf[94] = zstr(f.M2.line5a)
        pdf[96] = zstr(f.M2.line6a)
        pdf[99] = zstr(f.M2.line7a)
        pdf[102] = zstr(f.M2.line8a)

    else:
        pdf.pattern = '.p3-t{}[0]'

        split(100, f.K.line1)
        split(102, f.K.line2)

        split(104, f.K.line3a)
        split(106, f.K.line3b)

        split(108, f.K.line3c)
        split(110, f.K.line4)
        split(112, f.K.line5a)

        split(114, f.K.line5b)

        split(116, f.K.line6)
        split(118, f.K.line7)
        split(120, f.K.line8a)

        split(122, f.K.line8b)
        split(124, f.K.line8c)

        split(126, f.K.line9)
        pdf[128] = zstr(f.K.line10_type)
        split(129, f.K.line10)
        split(131, f.K.line11)
        split(133, f.K.line12a)
        split(135, f.K.line12b)
        pdf[137] = zstr(f.K.line12c_type)
        split(138, f.K.line12c)
        pdf[140] = zstr(f.K.line12d_type)
        split(141, f.K.line12d, j=145)
        split(146, f.K.line13a)
        split(148, f.K.line13b)
        split(150, f.K.line13c)
        pdf[152] = zstr(f.K.line13d_type)
        split(153, f.K.line13d)
        pdf[155] = zstr(f.K.line13e_type)
        split(156, f.K.line13e)
        split(158, f.K.line13f)
        pdf[160] = zstr(f.K.line13g_type)
        split(161, f.K.line13g)

        pdf[163] = zstr(f.K.line14a)
        split(164, f.K.line14b)
        split(166, f.K.line14c)
        split(168, f.K.line14d)
        split(170, f.K.line14e)
        split(172, f.K.line14f)
        split(174, f.K.line14g)
        split(176, f.K.line14h)
        split(178, f.K.line14i)
        split(180, f.K.line14j)
        split(182, f.K.line14k)
        split(184, f.K.line14l)
        split(186, f.K.line14m)

        split(188, f.K.line15a)
        split(190, f.K.line15b)
        split(192, f.K.line15c)
        split(194, f.K.line15d)
        split(196, f.K.line15e)
        split(198, f.K.line15f)

        split(200, f.K.line16a)
        split(202, f.K.line16b)
        split(204, f.K.line16c) # penalties, fines; half of meals
        split(206, f.K.line16d)
        split(208, f.K.line16e)

        pdf.pattern = '{}'

        if f.K.line14l:
            pdf['c3_01_0_[0]'] = 'A' if f.K.line14n_accounting == 'a' else 'Off'
            pdf['c3_01_0_[1]'] = 'B' if f.K.line14n_accounting == 'b' else 'Off'

        pdf.pattern = 'p4-t{}[0]'

        split(100, f.K.line17a)
        split(102, f.K.line17b)
        split(104, f.K.line17c)

        split(106, f.K.line18)

        # TODO: Schedule L
        # TODO: Schedule M-1

        pdf.pattern = 'p5-t{:03}[0]'

        pdf[116] = zstr(f.M2.line1a)
        pdf[117] = zstr(f.M2.line1b)
        pdf[118] = zstr(f.M2.line1c)

        pdf[119] = zstr(f.M2.line2a)

        pdf[120] = zstr(f.M2.line3a)
        pdf[121] = zstr(f.M2.line3b)

        pdf[122] = zstr(f.M2.line4a)

        pdf[123] = zstr(f.M2.line5a)
        pdf[124] = zstr(f.M2.line5b)

        pdf[125] = zstr(f.M2.line6a)
        pdf[126] = zstr(f.M2.line6b)
        pdf[127] = zstr(f.M2.line6c)

        pdf[128] = zstr(f.M2.line7a)
        pdf[129] = zstr(f.M2.line7b)
        pdf[130] = zstr(f.M2.line7c)

        pdf[131] = zstr(f.M2.line8a)
        pdf[132] = zstr(f.M2.line8b)
        pdf[133] = zstr(f.M2.line8c)
コード例 #16
0
ファイル: f1120s.py プロジェクト: brandon-rhodes/luca
def fill_out(form, pdf):
    if form.form_version < u'2018':
        return fill_out_pre_2018(form, pdf)

    f = form
    pdf.load('us.f1120s--{}.pdf'.format(f.form_version))

    last_split = [0]

    def split(value, i=None, j=None):
        if i is None:
            i = last_split[0] + 2
        last_split[0] = i
        if j is None:
            j = i + 1
        pdf[i], pdf[j] = zzstr(value)

    pdf.pattern = '.f1_{}[0]'

    pdf[1] = f.beginning_date
    pdf[2] = f.ending_date
    pdf[3] = f.ending_year

    pdf[4] = f.name
    pdf[5] = f.street
    pdf[6] = f.city_state_zip
    pdf[7] = f.lineA

    pdf[8] = f.ein
    pdf[9] = f.lineE
    split(f.lineF, 10)

    pdf[12] = str(f.lineI)
    split(f.line1a, 13)
    split(f.line1b)
    split(f.line1c)
    for i in range(2, 21+1):
        split(f['line', i])
    split(f.line22a)
    split(f.line22b)
    split(f.line22c)
    split(f.line23a)
    split(f.line23b)
    split(f.line23c)
    split(f.line23d)
    split(f.line24)
    split(f.line25)
    split(f.line26)
    split(f.line27_credited)
    split(f.line27)

    pdf.pattern = 'ABC[0].f1_{}[0]'

    pdf[8] = f.lineB  # same name as line D

    pdf.pattern = 'topmostSubform[0].Page1[0].{}'

    pdf['c1_01_0_[0]'] = 'Yes' if f.lineC else 'Off'
    pdf['c1_2[0]'] = '1' if f.lineG else 'Off'
    pdf['c1_2[1]'] = 'Off' if f.lineG else '2'

    for i in range(1, 5+1):
        checked = str(i) in f.lineH
        pdf['c1_0{}_0_[0]'.format(i + 2)] = 'Yes' if checked else 'Off'

    pdf['p1_t85[0]'] = f.signer_title  # note the underscore!
    pdf['c1_9_0_[0]'] = 'Yes' if f.discuss else 'Off'
    pdf['c1_9_0_[1]'] = 'Off' if f.discuss else 'No'

    pdf.pattern = 'topmostSubform[0].Page2[0].{}'

    pdf['c2_01_0_[0]'] = '1' if f.B.line1 == 'a' else 'Off'
    pdf['c2_01_0_[1]'] = '2' if f.B.line1 == 'b' else 'Off'
    if f.B.line1 not in ('a', 'b'):
        pdf['c2_01_0_[2]'] = '3'
        pdf['f2_1[0]'] = f.B.line1
    pdf['f2_2[0]'] = f.B.line2_activity
    pdf['f2_3[0]'] = f.B.line2_product_or_service
    pdf['c2_02[0]'] = '1' if f.B.line3 else 'Off'
    pdf['c2_02[1]'] = 'Off' if f.B.line3 else '2'
    pdf['c2_03[0]'] = '1' if f.B.line4a else 'Off'
    pdf['c2_03[1]'] = 'Off' if f.B.line4a else '2'
    pdf['c2_04[0]'] = '1' if f.B.line4b else 'Off'
    pdf['c2_04[1]'] = 'Off' if f.B.line4b else '2'
    pdf['c2_05[0]'] = '1' if (f.B.line5ai or f.B.line5aii) else 'Off'
    pdf['c2_05[1]'] = 'Off' if (f.B.line5ai or f.B.line5aii) else '2'
    pdf['c2_06[0]'] = '1' if (f.B.line5bi or f.B.line5bii) else 'Off'
    pdf['c2_06[1]'] = 'Off' if (f.B.line5bi or f.B.line5bii) else '2'

    def truefalse(value, field, yes_suffix='[0]', no_suffix='[1]'):
        pdf[field + yes_suffix] = '1' if value else 'Off'
        pdf[field + no_suffix] = 'Off' if value else '2'

    truefalse(f.B.line6, 'c2_06')
    truefalse(f.B.line7, 'c2_07')
    truefalse(f.B.line9, 'c2_09')
    truefalse(f.B.line10, 'c2_10')
    truefalse(f.B.line11, 'c2_11')

    pdf.pattern = 'topmostSubform[0].Page3[0].schb[0].{}'

    truefalse(f.B.line12, 'c3_1')
    truefalse(f.B.line13, 'c3_2')
    truefalse(f.B.line14a, 'c3_3')
    truefalse(f.B.line14b, 'c3_4')
    truefalse(f.B.line15, 'c3_5')

    pdf.pattern = 'f3_{}[0]'

    split(f.K.line1, 3)
    split(f.K.line2)

    split(f.K.line3a)
    split(f.K.line3b)

    split(f.K.line3c)
    split(f.K.line4)
    split(f.K.line5a)

    split(f.K.line5b)

    split(f.K.line6)
    split(f.K.line7)
    split(f.K.line8a)

    split(f.K.line8b)
    split(f.K.line8c)

    split(f.K.line9)
    pdf[31] = zstr(f.K.line10_type)
    split(f.K.line10, 32)

    split(f.K.line11)
    split(f.K.line12a)
    split(f.K.line12b)
    # several fields skipped that I don't need

    pdf.pattern = 'f4_{}[0]'

    split(f.K.line16c, 17) # half of meals
    split(f.K.line18, 29)

    # TODO: Schedule L
    # TODO: Schedule M-1

    pdf.pattern = 'f5_{}[0]'

    pdf[19] = zstr(f.M2.line1a)
    pdf[20] = zstr(f.M2.line1b)
    pdf[21] = zstr(f.M2.line1c)

    pdf[23] = zstr(f.M2.line2a)

    pdf[24] = zstr(f.M2.line3a)
    #pdf[121] = zstr(f.M2.line3b)

    pdf[26] = zstr(f.M2.line4a)

    pdf[27] = zstr(f.M2.line5a)
    #pdf[124] = zstr(f.M2.line5b)

    pdf[29] = zstr(f.M2.line6a)
    pdf[30] = zstr(f.M2.line6b)
    pdf[31] = zstr(f.M2.line6c)

    pdf[33] = zstr(f.M2.line7a)
    pdf[34] = zstr(f.M2.line7b)
    pdf[35] = zstr(f.M2.line7c)

    pdf[37] = zstr(f.M2.line8a)
    pdf[38] = zstr(f.M2.line8b)
    pdf[29] = zstr(f.M2.line8c)
コード例 #17
0
 def split(value, i=None, j=None):
     if i is None:
         i = last_split[0] + 1
     last_split[0] = i
     pdf[i] = zstr(value)
コード例 #18
0
def fill_out_2018(form, pdf):
    f = form
    pdf.load('us.f1120s--{}.pdf'.format(f.form_version))

    last_split = [0]

    def split(value, i=None, j=None):
        if i is None:
            i = last_split[0] + 2
        last_split[0] = i
        if j is None:
            j = i + 1
        pdf[i], pdf[j] = zzstr(value)

    pdf.pattern = '.f1_{}[0]'

    pdf[1] = f.beginning_date
    pdf[2] = f.ending_date
    pdf[3] = f.ending_year

    pdf[4] = f.name
    pdf[5] = f.street
    pdf[6] = f.city_state_zip
    pdf[7] = f.lineA

    pdf[8] = f.ein
    pdf[9] = f.lineE
    split(f.lineF, 10)

    pdf[12] = str(f.lineI)
    split(f.line1a, 13)
    split(f.line1b)
    split(f.line1c)
    for i in range(2, 21 + 1):
        split(f['line', i])
    split(f.line22a)
    split(f.line22b)
    split(f.line22c)
    split(f.line23a)
    split(f.line23b)
    split(f.line23c)
    split(f.line23d)
    split(f.line24)
    split(f.line25)
    split(f.line26)
    split(f.line27_credited)
    split(f.line27)

    pdf.pattern = 'ABC[0].f1_{}[0]'

    pdf[8] = f.lineB  # same name as line D

    pdf.pattern = 'topmostSubform[0].Page1[0].{}'

    pdf['c1_01_0_[0]'] = 'Yes' if f.lineC else 'Off'
    pdf['c1_2[0]'] = '1' if f.lineG else 'Off'
    pdf['c1_2[1]'] = 'Off' if f.lineG else '2'

    for i in range(1, 5 + 1):
        checked = str(i) in f.lineH
        pdf['c1_0{}_0_[0]'.format(i + 2)] = 'Yes' if checked else 'Off'

    pdf['p1_t85[0]'] = f.signer_title  # note the underscore!
    pdf['c1_9_0_[0]'] = 'Yes' if f.discuss else 'Off'
    pdf['c1_9_0_[1]'] = 'Off' if f.discuss else 'No'

    pdf.pattern = 'topmostSubform[0].Page2[0].{}'

    pdf['c2_01_0_[0]'] = '1' if f.B.line1 == 'a' else 'Off'
    pdf['c2_01_0_[1]'] = '2' if f.B.line1 == 'b' else 'Off'
    if f.B.line1 not in ('a', 'b'):
        pdf['c2_01_0_[2]'] = '3'
        pdf['f2_1[0]'] = f.B.line1
    pdf['f2_2[0]'] = f.B.line2_activity
    pdf['f2_3[0]'] = f.B.line2_product_or_service
    pdf['c2_02[0]'] = '1' if f.B.line3 else 'Off'
    pdf['c2_02[1]'] = 'Off' if f.B.line3 else '2'
    pdf['c2_03[0]'] = '1' if f.B.line4a else 'Off'
    pdf['c2_03[1]'] = 'Off' if f.B.line4a else '2'
    pdf['c2_04[0]'] = '1' if f.B.line4b else 'Off'
    pdf['c2_04[1]'] = 'Off' if f.B.line4b else '2'
    pdf['c2_05[0]'] = '1' if (f.B.line5ai or f.B.line5aii) else 'Off'
    pdf['c2_05[1]'] = 'Off' if (f.B.line5ai or f.B.line5aii) else '2'
    pdf['c2_06[0]'] = '1' if (f.B.line5bi or f.B.line5bii) else 'Off'
    pdf['c2_06[1]'] = 'Off' if (f.B.line5bi or f.B.line5bii) else '2'

    def truefalse(value, field, yes_suffix='[0]', no_suffix='[1]'):
        pdf[field + yes_suffix] = '1' if value else 'Off'
        pdf[field + no_suffix] = 'Off' if value else '2'

    truefalse(f.B.line6, 'c2_06')
    truefalse(f.B.line7, 'c2_07')
    truefalse(f.B.line9, 'c2_09')
    truefalse(f.B.line10, 'c2_10')
    truefalse(f.B.line11, 'c2_11')

    pdf.pattern = 'topmostSubform[0].Page3[0].schb[0].{}'

    truefalse(f.B.line12, 'c3_1')
    truefalse(f.B.line13, 'c3_2')
    truefalse(f.B.line14a, 'c3_3')
    truefalse(f.B.line14b, 'c3_4')
    truefalse(f.B.line15, 'c3_5')

    pdf.pattern = 'f3_{}[0]'

    split(f.K.line1, 3)
    split(f.K.line2)

    split(f.K.line3a)
    split(f.K.line3b)

    split(f.K.line3c)
    split(f.K.line4)
    split(f.K.line5a)

    split(f.K.line5b)

    split(f.K.line6)
    split(f.K.line7)
    split(f.K.line8a)

    split(f.K.line8b)
    split(f.K.line8c)

    split(f.K.line9)
    pdf[31] = zstr(f.K.line10_type)
    split(f.K.line10, 32)

    split(f.K.line11)
    split(f.K.line12a)
    split(f.K.line12b)
    # several fields skipped that I don't need

    pdf.pattern = 'f4_{}[0]'

    split(f.K.line16c, 17)  # half of meals
    split(f.K.line18, 29)

    # TODO: Schedule L
    # TODO: Schedule M-1

    pdf.pattern = 'f5_{}[0]'

    pdf[19] = zstr(f.M2.line1a)
    pdf[20] = zstr(f.M2.line1b)
    pdf[21] = zstr(f.M2.line1c)

    pdf[23] = zstr(f.M2.line2a)

    pdf[24] = zstr(f.M2.line3a)
    #pdf[121] = zstr(f.M2.line3b)

    pdf[26] = zstr(f.M2.line4a)

    pdf[27] = zstr(f.M2.line5a)
    #pdf[124] = zstr(f.M2.line5b)

    pdf[29] = zstr(f.M2.line6a)
    pdf[30] = zstr(f.M2.line6b)
    pdf[31] = zstr(f.M2.line6c)

    pdf[33] = zstr(f.M2.line7a)
    pdf[34] = zstr(f.M2.line7b)
    pdf[35] = zstr(f.M2.line7c)

    pdf[37] = zstr(f.M2.line8a)
    pdf[38] = zstr(f.M2.line8b)
    pdf[29] = zstr(f.M2.line8c)
コード例 #19
0
ファイル: f1099msc.py プロジェクト: zrisher/luca
def fill_out(form, pdf):
    f = form
    pdf.load('us.f1099msc--{}.pdf'.format(f.form_version))

    # The pdftk "fill_form" command seems to ignore "\r" characters
    # so we have to draw the payer ourselves; see draw() below.
    #
    # fields['f1_001[0]'].all = f.payer

    pdf.pattern = 'f1_{:03}[0]'
    pdf[1] = f.payer

    pdf[2] = f.payer_number
    pdf[3] = f.recipient_number
    pdf[4] = f.recipient_name
    pdf[5] = f.recipient_street
    pdf[6] = f.recipient_city_state_zip
    pdf[7] = f.account_number
    pdf[8] = zstr(f.line15a)
    pdf[9] = zstr(f.line15b)
    pdf[10] = zstr(f.line1)
    pdf[11] = zstr(f.line2)
    pdf[12] = zstr(f.line3)
    pdf[13] = zstr(f.line4)
    pdf[14] = zstr(f.line5)
    pdf[15] = zstr(f.line6)
    pdf[16] = zstr(f.line7)
    pdf[17] = zstr(f.line8)
    pdf[18] = zstr(f.line10)
    pdf[101] = zstr(f.line11)
    pdf[19] = zstr(f.line13)
    pdf[20] = zstr(f.line14)

    if len(f.states) > 0:
        pdf[21] = zstr(f.states[0].line16)
        pdf[23] = zstr(f.states[0].line17)
        pdf[25] = zstr(f.states[0].line18)

    if len(f.states) > 1:
        pdf[22] = zstr(f.states[1].line16)
        pdf[24] = zstr(f.states[1].line17)
        pdf[26] = zstr(f.states[1].line18)

    if len(f.states) > 2:
        raise ValueError('Form 1099-MISC only supports two states')

    pdf.pattern = '{}'
    pdf['c1_02_0_[0]'] = 'Yes' if f.line9 else 'Off'
    pdf['Box12[0]'] = f.line12
コード例 #20
0
def fill_out_pre_2018(form, pdf):
    f = form
    pdf.load('us.f1120s--{}.pdf'.format(f.form_version))

    def split(i, value, j=None):
        if j is None:
            j = i + 1
        pdf[i], pdf[j] = zzstr(value)

    pdf.pattern = '.p1-t{}[0]'

    pdf[1] = f.beginning_date
    pdf[2] = f.ending_date
    pdf[3] = f.ending_year

    pdf[4] = f.name
    pdf[5] = f.street
    pdf[6] = f.city_state_zip
    pdf[7] = f.lineA
    pdf[8] = f.lineB

    pdf[9] = f.ein
    pdf[11] = f.lineE
    split(12, f.lineF)

    pdf[14] = str(f.lineI)
    split(15, f.line1a)
    split(17, f.line1b)
    split(19, f.line1c)
    for i in range(2, 21 + 1):
        split(2 * i + 17, f['line', i])
    split(61, f.line22a)
    split(63, f.line22b)
    split(65, f.line22c)
    split(67, f.line23a)
    split(69, f.line23b)
    split(71, f.line23c)
    split(73, f.line23d)
    split(75, f.line24)
    split(77, f.line25)
    split(79, f.line26)
    split(81, f.line27_credited)
    split(83, f.line27)

    pdf.pattern = 'topmostSubform[0].Page1[0].{}'

    pdf['ABC[0].c1_01_0_[0]'] = 'Yes' if f.lineC else 'Off'
    pdf['c1_02_0_[0]'] = 'Yes' if f.lineG else 'Off'
    pdf['c1_02_0_[1]'] = 'Off' if f.lineG else 'No'

    for i in range(1, 5 + 1):
        checked = str(i) in f.lineH
        pdf['c1_0{}_0_[0]'.format(i + 2)] = 'Yes' if checked else 'Off'

    pdf['p1_t85[0]'] = f.signer_title  # note the underscore!
    pdf['c1_9_0_[0]'] = 'Yes' if f.discuss else 'Off'
    pdf['c1_9_0_[1]'] = 'Off' if f.discuss else 'No'

    pdf.pattern = 'topmostSubform[0].Page2[0].{}'

    pdf['c2_01_0_[0]'] = 'A' if f.B.line1 == 'a' else 'Off'
    pdf['c2_01_0_[1]'] = 'B' if f.B.line1 == 'b' else 'Off'
    if f.B.line1 not in ('a', 'b'):
        pdf['c2_01_0_[2]'] = 'C'
        pdf['p2-t19[0]'] = f.B.line1
    if f.form_version >= u'2014':
        pdf['f2_2[0]'] = f.B.line2_activity
        pdf['f2_3[0]'] = f.B.line2_product_or_service
    else:
        pdf['p2-t20'] = f.B.line2_activity
        pdf['p2-t21'] = f.B.line2_product_or_service
    pdf['c2_04_0_[0]'] = 'Yes' if f.B.line3 else 'Off'
    pdf['c2_04_0_[1]'] = 'Off' if f.B.line3 else 'No'
    pdf['c2_06_0_[0]'] = 'Yes' if f.B.line4a else 'Off'
    pdf['c2_06_0_[1]'] = 'Off' if f.B.line4a else 'No'
    pdf['c2_08_0_[0]'] = 'Yes' if f.B.line4b else 'Off'
    pdf['c2_08_0_[1]'] = 'Off' if f.B.line4b else 'No'
    pdf['c2_10_0_[0]'] = 'Yes' if (f.B.line5ai or f.B.line5aii) else 'Off'
    pdf['c2_10_0_[1]'] = 'Off' if (f.B.line5ai or f.B.line5aii) else 'No'
    pdf['c2_112_0_[0]'] = 'Yes' if (f.B.line5bi or f.B.line5bii) else 'Off'
    pdf['c2_112_0_[1]'] = 'Off' if (f.B.line5bi or f.B.line5bii) else 'No'
    pdf['c2_15_0_[0]'] = 'Yes' if f.B.line6 else 'Off'
    pdf['c2_15_0_[1]'] = 'Off' if f.B.line6 else 'No'
    pdf['c2_11_0_[0]'] = 'Yes' if f.B.line7 else 'Off'
    pdf['p2-t22[0]'] = zstr(f.B.line8)
    pdf['p2-t23[0]'] = zstr(f.B.line9)
    pdf['c2_100_0_[0]'] = 'Yes' if f.B.line10 else 'Off'
    pdf['c2_101_0_[0]'] = 'Yes' if f.B.line11 else 'Off'
    pdf['c2_101_0_[1]'] = 'Off' if f.B.line11 else 'No'
    pdf['p2-t22[1]'] = zstr(f.B.line11)
    pdf['c2_13_0_[0]'] = 'Yes' if f.B.line12 else 'Off'
    pdf['c2_13_0_[1]'] = 'Off' if f.B.line12 else 'No'
    if f.form_version == u'2012':
        pdf['c2_80_0_[0]'] = 'Yes' if f.B.line13a else 'Off'
        pdf['c2_80_0_[1]'] = 'Off' if f.B.line13a else 'No'
    elif f.form_version == u'2016':
        pdf['c2_300[0]'] = 'Yes' if f.B.line13a else 'Off'
        pdf['c2_300[1]'] = 'Off' if f.B.line13a else 'No'
    else:
        pdf['c2_13a_0_[0]'] = 'Yes' if f.B.line13a else 'Off'
        pdf['c2_13a_0_[1]'] = 'Off' if f.B.line13a else 'No'
    pdf['c2_07_0_[0]'] = 'Yes' if f.B.line13b else 'Off'
    pdf['c2_07_0_[1]'] = 'Off' if f.B.line13b else 'No'

    if f.form_version == u'2010':
        pdf.pattern = '.p2-t{}[0]'

        split(24, f.K.line1)
        split(34, f.K.line4)
        split(55, f.K.line11)
        split(125, f.K.line16c)
        split(127, f.K.line16d)
        split(131, f.K.line17a)
        split(137, f.K.line18)

        pdf.pattern = '.p4-t{}[0]'

        pdf[87] = zstr(f.M2.line1a)
        pdf[90] = zstr(f.M2.line2a)
        pdf[91] = zstr(f.M2.line3a)
        pdf[93] = zstr(f.M2.line4a)
        pdf[94] = zstr(f.M2.line5a)
        pdf[96] = zstr(f.M2.line6a)
        pdf[99] = zstr(f.M2.line7a)
        pdf[102] = zstr(f.M2.line8a)

    else:
        pdf.pattern = '.p3-t{}[0]'

        split(100, f.K.line1)
        split(102, f.K.line2)

        split(104, f.K.line3a)
        split(106, f.K.line3b)

        split(108, f.K.line3c)
        split(110, f.K.line4)
        split(112, f.K.line5a)

        split(114, f.K.line5b)

        split(116, f.K.line6)
        split(118, f.K.line7)
        split(120, f.K.line8a)

        split(122, f.K.line8b)
        split(124, f.K.line8c)

        split(126, f.K.line9)
        pdf[128] = zstr(f.K.line10_type)
        split(129, f.K.line10)
        split(131, f.K.line11)
        split(133, f.K.line12a)
        split(135, f.K.line12b)
        pdf[137] = zstr(f.K.line12c_type)
        split(138, f.K.line12c)
        pdf[140] = zstr(f.K.line12d_type)
        split(141, f.K.line12d, j=145)
        split(146, f.K.line13a)
        split(148, f.K.line13b)
        split(150, f.K.line13c)
        pdf[152] = zstr(f.K.line13d_type)
        split(153, f.K.line13d)
        pdf[155] = zstr(f.K.line13e_type)
        split(156, f.K.line13e)
        split(158, f.K.line13f)
        pdf[160] = zstr(f.K.line13g_type)
        split(161, f.K.line13g)

        pdf[163] = zstr(f.K.line14a)
        split(164, f.K.line14b)
        split(166, f.K.line14c)
        split(168, f.K.line14d)
        split(170, f.K.line14e)
        split(172, f.K.line14f)
        split(174, f.K.line14g)
        split(176, f.K.line14h)
        split(178, f.K.line14i)
        split(180, f.K.line14j)
        split(182, f.K.line14k)
        split(184, f.K.line14l)
        split(186, f.K.line14m)

        split(188, f.K.line15a)
        split(190, f.K.line15b)
        split(192, f.K.line15c)
        split(194, f.K.line15d)
        split(196, f.K.line15e)
        split(198, f.K.line15f)

        split(200, f.K.line16a)
        split(202, f.K.line16b)
        split(204, f.K.line16c)  # penalties, fines; half of meals
        split(206, f.K.line16d)
        split(208, f.K.line16e)

        pdf.pattern = '{}'

        if f.K.line14l:
            pdf['c3_01_0_[0]'] = 'A' if f.K.line14n_accounting == 'a' else 'Off'
            pdf['c3_01_0_[1]'] = 'B' if f.K.line14n_accounting == 'b' else 'Off'

        pdf.pattern = 'p4-t{}[0]'

        split(100, f.K.line17a)
        split(102, f.K.line17b)
        split(104, f.K.line17c)

        split(106, f.K.line18)

        # TODO: Schedule L
        # TODO: Schedule M-1

        pdf.pattern = 'p5-t{:03}[0]'

        pdf[116] = zstr(f.M2.line1a)
        pdf[117] = zstr(f.M2.line1b)
        pdf[118] = zstr(f.M2.line1c)

        pdf[119] = zstr(f.M2.line2a)

        pdf[120] = zstr(f.M2.line3a)
        pdf[121] = zstr(f.M2.line3b)

        pdf[122] = zstr(f.M2.line4a)

        pdf[123] = zstr(f.M2.line5a)
        pdf[124] = zstr(f.M2.line5b)

        pdf[125] = zstr(f.M2.line6a)
        pdf[126] = zstr(f.M2.line6b)
        pdf[127] = zstr(f.M2.line6c)

        pdf[128] = zstr(f.M2.line7a)
        pdf[129] = zstr(f.M2.line7b)
        pdf[130] = zstr(f.M2.line7c)

        pdf[131] = zstr(f.M2.line8a)
        pdf[132] = zstr(f.M2.line8b)
        pdf[133] = zstr(f.M2.line8c)
コード例 #21
0
ファイル: f8949.py プロジェクト: B-Rich/luca
def fill_out_2012(form, pdf):
    f = form

    pdf['f1_001_0_[0]'] = f.name, f.name
    pdf['f1_002_0_[0]'] = f.ssn, f.ssn

    for pageno, part in [(1, f.Part_I), (2, f.Part_II)]:

        pdf.pattern = 'topmostSubform[0].Page{}[0].c1_0{}_0_[{}]'

        for n, letter in enumerate('ABC'):
            value = letter if part.box == letter else 'Off'
            pdf[pageno, pageno, n] = value

        pdf.pattern = 'f{}_{}[0]'

        n = 1
        for row in part.table:
            pdf[pageno, n + 0] = row.a
            pdf[pageno, n + 1] = row.b
            pdf[pageno, n + 2] = row.c
            pdf[pageno, n + 3] = zstr(row.d)
            pdf[pageno, n + 4] = zstr(row.e)
            pdf[pageno, n + 5] = row.f
            pdf[pageno, n + 6] = zstr(row.g)
            pdf[pageno, n + 7] = zstr(row.h)
            n += 10

    pdf.pattern = '{}'

    pdf['f1_159['] = zstr(f.Part_I.total_d)
    pdf['f1_160['] = zstr(f.Part_I.total_e)
    pdf['f1_161['] = zstr(f.Part_I.total_g)
    pdf['f1_162['] = zstr(f.Part_I.total_h)

    pdf['f2_167['] = zstr(f.Part_II.total_d)
    pdf['f2_168['] = zstr(f.Part_II.total_e)
    pdf['f2_169['] = zstr(f.Part_II.total_g)
    pdf['f2_170['] = zstr(f.Part_II.total_h)
コード例 #22
0
def fill_out_2011(form, pdf):
    f = form

    pdf['f1_001_0_[0]'] = f.name, f.name
    pdf['f1_002_0_[0]'] = f.ssn, f.ssn

    for pageno, part in [(1, f.Part_I), (2, f.Part_II)]:

        pdf.pattern = 'topmostSubform[0].Page{}[0].c{}_0{}_0_[0]'

        for n, letter in enumerate('ABC', 1):
            value = letter if part.box == letter else 'Off'
            pdf[pageno, pageno, n] = value

        pdf.pattern = 'f{}_{:03}_0_[0]'

        i = 14
        j = 226
        for row in part.table:

            if i <= 176:
                pdf[pageno, i + 0] = row.a
                pdf[pageno, j] = row.b
                pdf[pageno, i + 1] = row.c
                pdf[pageno, i + 2] = row.d
                pdf[pageno, i + 3] = zstr(row.e)
                pdf[pageno, i + 5] = zstr(row.f)
                pdf[pageno, i + 7] = zstr(row.g)
            else:
                pdf[pageno, i + 0] = row.a
                pdf[pageno, i + 1] = row.b
                pdf[pageno, i + 2] = row.c
                pdf[pageno, i + 3] = row.d
                pdf[pageno, i + 4] = zstr(row.e)
                pdf[pageno, i + 6] = zstr(row.f)
                pdf[pageno, i + 8] = zstr(row.g)

            if i < 176:
                i += 9
            elif i == 176:
                i = 245
            else:
                i += 10

            j += 1

    pdf.pattern = '{}'

    pdf['f1_500_'] = zstr(f.Part_I.total_e)
    pdf['f1_476_'] = zstr(f.Part_I.total_f)
    pdf['f1_502_'] = zstr(f.Part_I.total_g)

    pdf['f2_500_'] = zstr(f.Part_II.total_e)
    pdf['f2_476_'] = zstr(f.Part_II.total_f)
    pdf['f2_502_'] = zstr(f.Part_II.total_g)
コード例 #23
0
ファイル: f8949.py プロジェクト: B-Rich/luca
def fill_out_2011(form, pdf):
    f = form

    pdf['f1_001_0_[0]'] = f.name, f.name
    pdf['f1_002_0_[0]'] = f.ssn, f.ssn

    for pageno, part in [(1, f.Part_I), (2, f.Part_II)]:

        pdf.pattern = 'topmostSubform[0].Page{}[0].c{}_0{}_0_[0]'

        for n, letter in enumerate('ABC', 1):
            value = letter if part.box == letter else 'Off'
            pdf[pageno, pageno, n] = value

        pdf.pattern = 'f{}_{:03}_0_[0]'

        i = 14
        j = 226
        for row in part.table:

            if i <= 176:
                pdf[pageno, i+0] = row.a
                pdf[pageno, j] = row.b
                pdf[pageno, i+1] = row.c
                pdf[pageno, i+2] = row.d
                pdf[pageno, i+3] = zstr(row.e)
                pdf[pageno, i+5] = zstr(row.f)
                pdf[pageno, i+7] = zstr(row.g)
            else:
                pdf[pageno, i+0] = row.a
                pdf[pageno, i+1] = row.b
                pdf[pageno, i+2] = row.c
                pdf[pageno, i+3] = row.d
                pdf[pageno, i+4] = zstr(row.e)
                pdf[pageno, i+6] = zstr(row.f)
                pdf[pageno, i+8] = zstr(row.g)

            if i < 176:
                i += 9
            elif i == 176:
                i = 245
            else:
                i += 10

            j += 1

    pdf.pattern = '{}'

    pdf['f1_500_'] = zstr(f.Part_I.total_e)
    pdf['f1_476_'] = zstr(f.Part_I.total_f)
    pdf['f1_502_'] = zstr(f.Part_I.total_g)

    pdf['f2_500_'] = zstr(f.Part_II.total_e)
    pdf['f2_476_'] = zstr(f.Part_II.total_f)
    pdf['f2_502_'] = zstr(f.Part_II.total_g)
コード例 #24
0
def fill_out_2012(form, pdf):
    f = form

    pdf['f1_001_0_[0]'] = f.name, f.name
    pdf['f1_002_0_[0]'] = f.ssn, f.ssn

    for pageno, part in [(1, f.Part_I), (2, f.Part_II)]:

        pdf.pattern = 'topmostSubform[0].Page{}[0].c1_0{}_0_[{}]'

        for n, letter in enumerate('ABC'):
            value = letter if part.box == letter else 'Off'
            pdf[pageno, pageno, n] = value

        pdf.pattern = 'f{}_{}[0]'

        n = 1
        for row in part.table:
            pdf[pageno, n + 0] = row.a
            pdf[pageno, n + 1] = row.b
            pdf[pageno, n + 2] = row.c
            pdf[pageno, n + 3] = zstr(row.d)
            pdf[pageno, n + 4] = zstr(row.e)
            pdf[pageno, n + 5] = row.f
            pdf[pageno, n + 6] = zstr(row.g)
            pdf[pageno, n + 7] = zstr(row.h)
            n += 10

    pdf.pattern = '{}'

    pdf['f1_159['] = zstr(f.Part_I.total_d)
    pdf['f1_160['] = zstr(f.Part_I.total_e)
    pdf['f1_161['] = zstr(f.Part_I.total_g)
    pdf['f1_162['] = zstr(f.Part_I.total_h)

    pdf['f2_167['] = zstr(f.Part_II.total_d)
    pdf['f2_168['] = zstr(f.Part_II.total_e)
    pdf['f2_169['] = zstr(f.Part_II.total_g)
    pdf['f2_170['] = zstr(f.Part_II.total_h)