diff --git a/pyaccuwage/fields.py b/pyaccuwage/fields.py index 052298f..ca50125 100644 --- a/pyaccuwage/fields.py +++ b/pyaccuwage/fields.py @@ -207,6 +207,10 @@ class BlankField(TextField): def parse(self, s): pass +class ZeroField(BlankField): + def get_data(self): + return '0' * self.max_length + class CRLFField(TextField): def __init__(self, name=None, required=False): super(TextField, self).__init__(name=name, max_length=2, required=required, uppercase=False) diff --git a/pyaccuwage/record.py b/pyaccuwage/record.py index aa7c18a..472dde9 100644 --- a/pyaccuwage/record.py +++ b/pyaccuwage/record.py @@ -5,7 +5,9 @@ from . import enums __all__ = RECORD_TYPES = ['SubmitterRecord', 'EmployerRecord', 'EmployeeWageRecord', 'OptionalEmployeeWageRecord', 'TotalRecord', 'OptionalTotalRecord', - 'StateTotalRecord', 'FinalRecord', 'StateWageRecord'] + 'StateTotalRecord', 'FinalRecord', 'StateWageRecord', + 'StateTotalRecordIA', + ] class EFW2Record(model.Model): record_length = 512 @@ -354,6 +356,17 @@ class StateTotalRecord(EFW2Record): supplemental_data = TextField(max_length=510) +class StateTotalRecordIA(EFW2Record): + #year=2018 + record_identifier = 'RV' + number_of_rs_records = IntegerField(max_length=7) # num records since last 'RE' record + wages_tips = MoneyField(max_length=15) + state_income_tax_wh = MoneyField(max_length=15) + employer_ben = TextField(max_length=8) + iowa_confirmation_number = ZeroField(max_length=10) + blank1 = BlankField(455) + + class FinalRecord(EFW2Record): #year=2012 record_identifier = 'RF'