added state wage record, but it isn't quite right

This commit is contained in:
Binh 2011-04-09 15:17:32 -05:00
parent 068f1bbae4
commit 179f67bac9
3 changed files with 120 additions and 48 deletions

158
record.py
View file

@ -93,31 +93,31 @@ class EmployeeWageRecord(model.Model):
foreign_state = TextField(max_length=23, required=False)
foreign_postal_code = TextField(max_length=15, required=False)
country = TextField(max_length=2)
wages_tips = NumericField(max_length=11)
federal_income_tax_withheld = NumericField(max_length=11)
social_security_wages = NumericField(max_length=11)
social_security_tax_withheld = NumericField(max_length=11)
medicare_wages_and_tips = NumericField(max_length=11)
medicare_tax_withheld = NumericField(max_length=11)
social_security_tips = NumericField(max_length=11)
advance_eic = NumericField(max_length=11)
dependent_care_benefits = NumericField(max_length=11)
deferred_compensation_401k = NumericField(max_length=11)
deferred_compensation_403b = NumericField(max_length=11)
deferred_compensation_408k = NumericField(max_length=11)
deferred_compensation_457b = NumericField(max_length=11)
deferred_compensation_501c = NumericField(max_length=11)
military_pay = NumericField(max_length=11)
non_qualified_457 = NumericField(max_length=11)
employer_contrib_to_hsa = NumericField(max_length=11)
non_qualified_not_457 = NumericField(max_length=11)
nontaxable_combat_pay = NumericField(max_length=11)
wages_tips = MoneyField(max_length=11)
federal_income_tax_withheld = MoneyField(max_length=11)
social_security_wages = MoneyField(max_length=11)
social_security_tax_withheld = MoneyField(max_length=11)
medicare_wages_and_tips = MoneyField(max_length=11)
medicare_tax_withheld = MoneyField(max_length=11)
social_security_tips = MoneyField(max_length=11)
advance_eic = MoneyField(max_length=11)
dependent_care_benefits = MoneyField(max_length=11)
deferred_compensation_401k = MoneyField(max_length=11)
deferred_compensation_403b = MoneyField(max_length=11)
deferred_compensation_408k = MoneyField(max_length=11)
deferred_compensation_457b = MoneyField(max_length=11)
deferred_compensation_501c = MoneyField(max_length=11)
military_pay = MoneyField(max_length=11)
non_qualified_457 = MoneyField(max_length=11)
employer_contrib_to_hsa = MoneyField(max_length=11)
non_qualified_not_457 = MoneyField(max_length=11)
nontaxable_combat_pay = MoneyField(max_length=11)
blank2 = BlankField(max_length=11)
cost_of_premiums_for_insurance = NumericField(max_length=11)
income_nonstatutory_stock_opts = NumericField(max_length=11)
deferred_compensation_409a = NumericField(max_length=11)
designated_roth_contrib_401k = NumericField(max_length=11)
designated_roth_contrib_403b = NumericField(max_length=11)
cost_of_premiums_for_insurance = MoneyField(max_length=11)
income_nonstatutory_stock_opts = MoneyField(max_length=11)
deferred_compensation_409a = MoneyField(max_length=11)
designated_roth_contrib_401k = MoneyField(max_length=11)
designated_roth_contrib_403b = MoneyField(max_length=11)
blank3 = BlankField(max_length=23)
statutory_employee_indicator = BooleanField()
blank4 = BlankField(max_length=1)
@ -129,33 +129,103 @@ class EmployeeWageRecord(model.Model):
class OptionalEmployeeWageRecord(model.Model):
record_identifier = 'RO'
blank1 = BlankField(max_length=9)
allocated_tips = NumericField(max_length=11)
uncollected_tax_on_tips = NumericField(max_length=11)
medical_savings_account = NumericField(max_length=11)
simple_retirement_account = NumericField(max_length=11)
qualified_adoption_expenses = NumericField(max_length=11)
uncollected_ss_life_ins = NumericField(max_length=11)
uncollected_medicare_life_ins = NumericField(max_length=11)
income_under_409a = NumericField(max_length=11)
hire_exempt_wages_and_tips = NumericField(max_length=11)
blank2 = BlankField(max_length=164)
wages_subject_to_puerto_rico_tax = NumericField(max_length=11, required=False)
commissions_subject_to_puerto_rico_tax = NumericField(max_length=11, required=False)
allowances_subject_to_puerto_rico_tax = NumericField(max_length=11, required=False)
tips_subject_to_puerto_rico_tax = NumericField(max_length=11, required=False)
total_wages_subject_to_puerto_rico_tax = NumericField(max_length=11, required=False)
puerto_rico_tax_withheld = NumericField(max_length=11, required=False)
retirement_fund_contrib = NumericField(max_length=11, required=False)
blank1 = BlankField(max_length=9)
allocated_tips = MoneyField(max_length=11)
uncollected_tax_on_tips = MoneyField(max_length=11)
medical_savings_account = MoneyField(max_length=11)
simple_retirement_account = MoneyField(max_length=11)
qualified_adoption_expenses = MoneyField(max_length=11)
uncollected_ss_life_ins = MoneyField(max_length=11)
uncollected_medicare_life_ins = MoneyField(max_length=11)
income_under_409a = MoneyField(max_length=11)
hire_exempt_wages_and_tips = MoneyField(max_length=11)
blank2 = BlankField(max_length=164)
wages_subject_to_puerto_rico_tax = MoneyField(max_length=11, required=False)
commissions_subject_to_puerto_rico_tax = MoneyField(max_length=11, required=False)
allowances_subject_to_puerto_rico_tax = MoneyField(max_length=11, required=False)
tips_subject_to_puerto_rico_tax = MoneyField(max_length=11, required=False)
total_wages_subject_to_puerto_rico_tax = MoneyField(max_length=11, required=False)
puerto_rico_tax_withheld = MoneyField(max_length=11, required=False)
retirement_fund_contrib = MoneyField(max_length=11, required=False)
blank3 = BlankField(max_length=11)
total_wages_tips_virgin_islands = NumericField(max_length=11, required=False)
virgin_islands_income_tax_withheld = NumericField(max_length=11, required=False)
total_wages_tips_virgin_islands = MoneyField(max_length=11, required=False)
virgin_islands_income_tax_withheld = MoneyField(max_length=11, required=False)
blank4 = BlankField(max_length=128)
class StateWageRecord(model.Model):
record_identifier = 'RS'
state_code = NumericField(max_length=2)
taxing_entity_code = TextField(max_length=5)
ssn = NumericField(max_length=9, required=False)
employee_first_name = TextField(max_length=15)
employee_middle_name = TextField(max_length=15)
employee_last_name = TextField(max_length=20)
employee_suffix = TextField(max_length=4)
location_address = TextField(max_length=22)
delivery_address = TextField(max_length=22)
city = TextField(max_length=22)
state = StateField()
zipcode = TextField(max_length=5, required=False)
zipcode_ext = TextField(max_length=4, required=False)
blank1 = BlankField(max_length=5)
foreign_state_province = TextField(max_length=23, required=False)
foreign_postal_code = TextField(max_length=15, required=False)
country_code = TextField(max_length=2)
optional_code = TextField(max_length=2, required=False)
reporting_period = NumericField(max_length=6) # MAYBE MAKE A CUSTOM FIELD TYPE FOR THIS
quarterly_unemp_ins_wages = MoneyField(max_length=11)
quarterly_unemp_ins_taxable_wages = MoneyField(max_length=11)
number_of_weeks_worked = NumericField(max_length=2)
date_first_employed = TextField(max_length=8)#DateField()
date_of_separation = TextField(max_length=8)#DateField()
blank2 = BlankField(max_length=5)
state_code_2 = NumericField(max_length=2)
state_taxable_wages = MoneyField(max_length=11)
state_income_tax_wh = MoneyField(max_length=11)
other_state_data = TextField(max_length=10)
tax_type_code = TextField(max_length=1) # VALIDATE C, D, E, or F
local_taxable_wages = MoneyField(max_length=11)
local_income_tax_wh = MoneyField(max_length=11)
state_control_number = NumericField(max_length=7, required=False)
supplemental_data1 = TextField(max_length=75)
supplemental_data2 = TextField(max_length=75)
blank3 = BlankField(max_length=25)
class TotalRecord(model.Model):
record_identifier = 'RT'
number_of_rw_records = NumericField(max_length=7)
wages_tips = NumericField(max_length=15)
federal_income_tax_withheld = NumericField(max_length=15)
social_security_wages = NumericField(max_length=15)
social_security_tax_withheld = NumericField(max_length=15)
medicare_wages_and_tips = NumericField(max_length=15)
medicare_tax_withheld = NumericField(max_length=15)
social_security_tips = NumericField(max_length=15)
advance_eic = NumericField(max_length=15)
dependent_care_benefits = NumericField(max_length=15)
deferred_compensation_401k = NumericField(max_length=15)
deferred_compensation_403b = NumericField(max_length=15)
deferred_compensation_408k = NumericField(max_length=15)
deferred_compensation_457b = NumericField(max_length=15)
deferred_compensation_501c = NumericField(max_length=15)
military_pay = NumericField(max_length=15)
non_qualified_457 = NumericField(max_length=15)
employer_contrib_to_hsa = NumericField(max_length=15)
non_qualified_not_457 = NumericField(max_length=15)
nontaxable_combat_pay = NumericField(max_length=15)
blank1 = BlankField(max_length=15)
employer_cost_term_life_ins = NumericField(max_length=15)
income_tax_wh_sick_pay = NumericField(max_length=15)
income_exercise_nonstat_stock_opts = NumericField(max_length=15)
deferred_409a_compensation_plan = NumericField(max_length=15)
designated_roth_contribs_401k = NumericField(max_length=15)
disignated_roth_contribs_403b = NumericField(max_length=15)
blank2 = BlankField(max_length=113)
class OptionalTotalRecord(model.Model):
record_identifier = 'RU'