You are provided an enrollment file: IFT394_TO_IA_CAD_20170904.xlsx Convert it t
ID: 3586608 • Letter: Y
Question
You are provided an enrollment file: IFT394_TO_IA_CAD_20170904.xlsx
Convert it to a .csv file.
The table below provided the expected format of each field in the file:
Field Name
Format
Purpose & Constraint
Effective Date
MM/DD/YYYY
Indicate the coverage effective date
Status
5 character max (eg Drop, Add, …)
Action indicator. If “Add”, member is added to enrollment; if “Change”, info about an enrolled member is updated; if “Drop”, member is cancelled
EmployeeID
Identified employee
ClientID
Up to 6 integer digits
Identified client
MemberFirstName
MemberMiddleName
MemberLastName
MemberSSN
DOB_Month
2 digits.
Month of birth
DOB_Day
2 digits
Day of birth
DOB_Year
4 digits
Year of birth
Address1
Address2
Not required
City
State
ZipCode
AreaCode
3 digit
HomePhone
7 digits
Must include @ and .
Deduction Method
“Employer Payroll Deduction” or “Employer sponsored”
Customer-Defined
Not required
Relationship
1 char (P, S, C, D)
Primary, Spouse, Child, or Dependent
Primary
1 char (Y, N)
Designate primary enrollment
FamilyID
Shared value across family enrollments.
UniqueID
Uniquely identified each member
Plan_Type
“Individual” or “Family”
Designate the plan type of the member
ProductID
“PAP”, “PA”
Not required
You are to develop a Python script to pre-process the file so that:
The header names are written as in the table above, and in that order. For example, we must have “Effective Date” instead of “EffectiveDate”; “DOB_Year” instead of “DOB Year”; “Plan_Type” instead of “Plan Type”; or “ProductID” instead of “PID”.
The area code is exactly 3 digits and the home phone is exactly 7 digits. Analyze these two fields carefully to understand how you can design your script to capture issues such as +1 xxx xxxxxxx, or an area code with 3 digits, but a home phone with 10-digits still.
There cannot be a relationship D, S, or C that is Primary. If this occurs, your script must set the dependent as “N” (primary).
There cannot be a D, S, or C relationship without an identifying primary, or that is of plan type “Individual”. A primary and a dependent are linked by their FamilyID. If this occurs, your script report must include an alert to the user about it.
All zip codes must be 5 digits
Months of birth must be between 1 and 12; and day of birth must be between 1 and 31 depending on the month of birth. For example, you cannot have a month of birth a 2 (i.e. February) and a day of birth as 30.
Year of birth must be 4 digits.
SSN must be 9 digits; not other character such as “-“ or “.”
Finally, your script must rearrange the records so that Primaries are processed before the dependents. In other words, primaries must come first.
How do I create the python script within bash?
Field Name
Format
Purpose & Constraint
Effective Date
MM/DD/YYYY
Indicate the coverage effective date
Status
5 character max (eg Drop, Add, …)
Action indicator. If “Add”, member is added to enrollment; if “Change”, info about an enrolled member is updated; if “Drop”, member is cancelled
EmployeeID
Identified employee
ClientID
Up to 6 integer digits
Identified client
MemberFirstName
MemberMiddleName
MemberLastName
MemberSSN
DOB_Month
2 digits.
Month of birth
DOB_Day
2 digits
Day of birth
DOB_Year
4 digits
Year of birth
Address1
Address2
Not required
City
State
ZipCode
AreaCode
3 digit
HomePhone
7 digits
Must include @ and .
Deduction Method
“Employer Payroll Deduction” or “Employer sponsored”
Customer-Defined
Not required
Relationship
1 char (P, S, C, D)
Primary, Spouse, Child, or Dependent
Primary
1 char (Y, N)
Designate primary enrollment
FamilyID
Shared value across family enrollments.
UniqueID
Uniquely identified each member
Plan_Type
“Individual” or “Family”
Designate the plan type of the member
ProductID
“PAP”, “PA”
Not required
Explanation / Answer
#create a class named Employee
class Employee:
#initialize the attributes
def __init__(self, name, id, department, title):
self.__name = name
self.__id = id
self.__department = department
self.__title = title
#set the attributes
def set_name(self, name):
self.__name = name
def set_id(self, id):
self.__id = id
def set_department(self, department):
self.__department = department
def set_title(self, title):
self.__title = title
#return the attributes
def get_name(self):
return self.__name
def get_id(self):
return self.__id
def get_department(self):
return self.__department
def get_title(self):
return self.__title
#return the objects state as a string
def __str__(self):
return 'Name: ' + self.__name +
' ID number: ' + self.__id +
' Department: ' + self.__department +
' Title: ' + self.__title
and here is my main function where the second part is going to go...
import emp
def main():
#Create three employee objects
emp1 = emp.Employee('name', 'id', 'department', 'title')
emp2 = emp.Employee('name', 'id', 'department', 'title')
emp3 = emp.Employee('name', 'id', 'department', 'title')
#create three Employee objects for each attribute
emp1.set_name('Susan Meyers')
emp1.set_id('47899')
emp1.set_department('Accounting')
emp1.set_title('Vice President')
emp2.set_name('Mark Jones')
emp2.set_id('39119')
emp2.set_department('IT')
emp2.set_title('Programmer')
emp3.set_name('Joy Rogersr')
emp3.set_id('81774')
emp3.set_department('Manufacturing')
emp3.set_title('Engineer')
print()
print(emp1)
print()
print(emp2)
print()
print(emp3)
main()
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.