From 6596b36175faefac17eda33b27131f4e3c667ea8 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 9 Nov 2023 16:55:32 -0800 Subject: [PATCH 01/43] add ben admin scaffold --- flux_sdk/ben_admin/__init__.py | 0 .../capabilities/process_deduction_data/BUILD | 1 + .../process_deduction_data/__init__.py | 0 .../process_deduction_data/data_models.py | 0 .../process_deduction_data/interface.py | 33 +++++++++++++++++++ .../capabilities/report_employee_data/BUILD | 1 + .../report_employee_data/__init__.py | 0 .../report_employee_data/data_models.py | 17 ++++++++++ .../report_employee_data/interface.py | 25 ++++++++++++++ 9 files changed, 77 insertions(+) create mode 100644 flux_sdk/ben_admin/__init__.py create mode 100644 flux_sdk/ben_admin/capabilities/process_deduction_data/BUILD create mode 100644 flux_sdk/ben_admin/capabilities/process_deduction_data/__init__.py create mode 100644 flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py create mode 100644 flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py create mode 100644 flux_sdk/ben_admin/capabilities/report_employee_data/BUILD create mode 100644 flux_sdk/ben_admin/capabilities/report_employee_data/__init__.py create mode 100644 flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py create mode 100644 flux_sdk/ben_admin/capabilities/report_employee_data/interface.py diff --git a/flux_sdk/ben_admin/__init__.py b/flux_sdk/ben_admin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/BUILD b/flux_sdk/ben_admin/capabilities/process_deduction_data/BUILD new file mode 100644 index 00000000..2181f04b --- /dev/null +++ b/flux_sdk/ben_admin/capabilities/process_deduction_data/BUILD @@ -0,0 +1 @@ +python_sources() \ No newline at end of file diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/__init__.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py new file mode 100644 index 00000000..e69de29b diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py new file mode 100644 index 00000000..4b98d473 --- /dev/null +++ b/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py @@ -0,0 +1,33 @@ +from abc import ABC, abstractmethod + +from flux_sdk.flux_core.data_models import CompanyInfo, File + + +class ProcessDeductionData(ABC): + """ + This class represents the "process deduction data" capability. The developer is supposed to implement + the following methods in their implementation. + + The methods on this class are required to instantiate an instance of this class. + """ + + @staticmethod + @abstractmethod + def get_file_name(company_info: CompanyInfo) -> str: + """ + This method receives the basic company info and is expected to return the file name which should be retrieved with the deduction info + + :param CompanyInfo: + :return str: + """ + + @staticmethod + @abstractmethod + def process_deductions_file(deductions_file: File): + """ + This method receives the file data which contains the deductions relevant to the companies employees. + The developer is supposed to implement the following methods to process this data in accordance with their requirements + + :param File: + :return: + """ diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/BUILD b/flux_sdk/ben_admin/capabilities/report_employee_data/BUILD new file mode 100644 index 00000000..2181f04b --- /dev/null +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/BUILD @@ -0,0 +1 @@ +python_sources() \ No newline at end of file diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/__init__.py b/flux_sdk/ben_admin/capabilities/report_employee_data/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py new file mode 100644 index 00000000..ae8ef034 --- /dev/null +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py @@ -0,0 +1,17 @@ +from flux_sdk.flux_core.data_models import Employee, Name + +class AppConfig: + ''' + This contains the application data gathered durring installation which is necesary to prepare employee data or process deductions + ''' + auto_enroll: bool + group_id: str + + +class EmployeeData(Employee): + ''' + This extends the core definition of an employee to include insurance eligibiliity data + ''' + insurance_eligible: bool + + diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py b/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py new file mode 100644 index 00000000..21c65756 --- /dev/null +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py @@ -0,0 +1,25 @@ +from abc import ABC, abstractmethod + +from flux_sdk.flux_core.data_models import File +from flux_sdk.ben_admin.report_employee_data.data_models import AppConfig, EmployeeData + + +class ReportEmployeeData(ABC): + """ + This class represents the "report employee data" capability. The developer is supposed to implement + the following methods in their implementation. + + The methods on this class are required to instantiate an instance of this class. + """ + + @staticmethod + @abstractmethod + def get_formated_file(app_config: AppConfig, employee_data: EmployeeData) -> File: + """ + This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. + The file will be tranfered to the partner company via SFTP + + :param App + :param list[EmployeeData]: + :return File: + """ From ea3e2a7dc8968597569d2414ae7217c7fa559b73 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Fri, 10 Nov 2023 14:56:34 -0800 Subject: [PATCH 02/43] update data models --- .../report_employee_data/data_models.py | 56 ++++++++++++++++++- .../report_employee_data/interface.py | 2 +- 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py index ae8ef034..42c65642 100644 --- a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py @@ -1,4 +1,9 @@ -from flux_sdk.flux_core.data_models import Employee, Name +from datetime import datetime +from enum import Enum +from typing import Optional + +from flux_sdk.flux_core.data_models import Address, EmployeeState, Gender, MaritalStatus + class AppConfig: ''' @@ -8,10 +13,55 @@ class AppConfig: group_id: str -class EmployeeData(Employee): +class Name: + title: Optional[str] + first: str + middle: Optional[str] + last: str + suffix: Optional[str] + + @property + def full_name(self): + return f"${self.first} ${self.last}" + + +class EmployementType(Enum): + CONTRACTOR = 1 + SALARIED_FT = 2 + SALARIED_PT = 3 + HOURLY_FT = 4 + HOURLY_PT = 5 + TEMP = 6 + + +class Employment: + type: EmployementType + is_rehire: bool + termination_date: Optional[datetime] + start_date: datetime + start_date: datetime + original_hire_date: datetime + + +class Pay: + w2_start_date: datetime + +class EmployeeData: ''' This extends the core definition of an employee to include insurance eligibiliity data ''' + id: str + ssn: str + name: Name insurance_eligible: bool - + business_email: str + personal_email: str + gender: Gender + employment: Employment + pay: Pay + address: Address + status: EmployeeState + dob : datetime + phone_number: str + marital_status: Optional[MaritalStatus] diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py b/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py index 21c65756..1fba7b28 100644 --- a/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from flux_sdk.flux_core.data_models import File -from flux_sdk.ben_admin.report_employee_data.data_models import AppConfig, EmployeeData +from flux_sdk.ben_admin.capabilities.report_employee_data.data_models import AppConfig, EmployeeData class ReportEmployeeData(ABC): From ccf692e523fe05267cbfe3ef12b9e6b89e7e6c6a Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Mon, 13 Nov 2023 12:13:42 -0800 Subject: [PATCH 03/43] update models. bump version --- .../report_employee_data/data_models.py | 64 +++++++++++++++---- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py index 42c65642..c534c234 100644 --- a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py @@ -2,7 +2,7 @@ from enum import Enum from typing import Optional -from flux_sdk.flux_core.data_models import Address, EmployeeState, Gender, MaritalStatus +from flux_sdk.flux_core.data_models import Address, EmployeeState, Gender class AppConfig: @@ -25,7 +25,7 @@ def full_name(self): return f"${self.first} ${self.last}" -class EmployementType(Enum): +class EmploymentType(Enum): CONTRACTOR = 1 SALARIED_FT = 2 SALARIED_PT = 3 @@ -34,17 +34,60 @@ class EmployementType(Enum): TEMP = 6 +class MonetaryValue: + value: float + currency_type: str + + +class PayFrequency(Enum): + WEEKLY = 1 + BI_WEEKLY = 2 + MONTHLY = 3 + SEMI_MONTHLY = 4 + +class PayTimeUnit(Enum): + HOUR = 1 + DAY = 2 + WEEK = 3 + MONTH = 4 + YEAR = 5 + PAY_PERIOD = 6 + + +class Pay: + frequency: PayFrequency + frequency_effective_date: datetime + time_unit: PayTimeUnit + value_per_unit: MonetaryValue + value_effective_date: datetime + +class EmploymentHours: + type: EmploymentType + effectiveDate: datetime + hours_per_week: Optional[int] + class Employment: - type: EmployementType + hours: EmploymentHours is_rehire: bool termination_date: Optional[datetime] start_date: datetime - start_date: datetime original_hire_date: datetime + w2_start_date: datetime + pay: Pay + +class BenefitsEligibility(Enum): + # this will expand to cover cobra later + ELIGIBLE = 1 + IN_ELIGIBLE = 2 -class Pay: - w2_start_date: datetime +class BenefitsEligibilityStatus: + eligibility: BenefitsEligibility + effective_date: datetime + +class EmployeeStatus: + status: EmployeeState + effective_date: datetime class EmployeeData: ''' @@ -53,15 +96,14 @@ class EmployeeData: id: str ssn: str name: Name - insurance_eligible: bool + dob : datetime + phone_number: str business_email: str personal_email: str gender: Gender employment: Employment pay: Pay address: Address - status: EmployeeState - dob : datetime - phone_number: str - marital_status: Optional[MaritalStatus] + status: EmployeeStatus + benefits: BenefitsEligibilityStatus From 5ce3da480cf8a128dab9ccbd115e64bf1637cad5 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Mon, 13 Nov 2023 12:20:34 -0800 Subject: [PATCH 04/43] update comment --- .../ben_admin/capabilities/report_employee_data/data_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py index c534c234..d173cbbc 100644 --- a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py +++ b/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py @@ -91,7 +91,7 @@ class EmployeeStatus: class EmployeeData: ''' - This extends the core definition of an employee to include insurance eligibiliity data + This contains the core data about an employee which is relevant to a ben admin provider ''' id: str ssn: str From 7a469cadc5d345906ffd21cae89da5f7a595a12d Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Mon, 13 Nov 2023 12:23:28 -0800 Subject: [PATCH 05/43] add deductions app config; --- .../capabilities/process_deduction_data/data_models.py | 5 +++++ .../capabilities/process_deduction_data/interface.py | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py index e69de29b..2cd5483c 100644 --- a/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py +++ b/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py @@ -0,0 +1,5 @@ +class AppConfig: + ''' + This contains the application data gathered durring installation which is necesary to process employee data and send to payroll + ''' + group_id: str \ No newline at end of file diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py index 4b98d473..e8f7358c 100644 --- a/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py +++ b/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py @@ -1,6 +1,7 @@ from abc import ABC, abstractmethod from flux_sdk.flux_core.data_models import CompanyInfo, File +from flux_sdk.ben_admin.capabilities.process_deduction_data.data_models import AppConfig class ProcessDeductionData(ABC): @@ -13,7 +14,7 @@ class ProcessDeductionData(ABC): @staticmethod @abstractmethod - def get_file_name(company_info: CompanyInfo) -> str: + def get_file_name(app_config: AppConfig, company_info: CompanyInfo) -> str: """ This method receives the basic company info and is expected to return the file name which should be retrieved with the deduction info @@ -25,7 +26,7 @@ def get_file_name(company_info: CompanyInfo) -> str: @abstractmethod def process_deductions_file(deductions_file: File): """ - This method receives the file data which contains the deductions relevant to the companies employees. + This method receives the file which contains the deductions relevant to the companies employees. The developer is supposed to implement the following methods to process this data in accordance with their requirements :param File: From 5b74a8a5a45e1fb6a8acdda7caa1d9266503c909 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 14 Nov 2023 15:46:44 -0800 Subject: [PATCH 06/43] update naming --- .../process_deduction_data/data_models.py | 5 --- .../process_deduction_data/interface.py | 34 ------------------- .../__init__.py | 0 .../process_employees_deductions}/BUILD | 0 .../process_employees_deductions}/__init__.py | 0 .../data_models.py} | 0 .../process_employees_deductions/interface.py | 23 +++++++++++++ .../BUILD | 0 .../__init__.py | 0 .../data_models.py | 2 +- .../interface.py | 6 ++-- 11 files changed, 27 insertions(+), 43 deletions(-) delete mode 100644 flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py delete mode 100644 flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py rename flux_sdk/{ben_admin => benefits_administration}/__init__.py (100%) rename flux_sdk/{ben_admin/capabilities/process_deduction_data => benefits_administration/capabilities/process_employees_deductions}/BUILD (100%) rename flux_sdk/{ben_admin/capabilities/process_deduction_data => benefits_administration/capabilities/process_employees_deductions}/__init__.py (100%) rename flux_sdk/{ben_admin/capabilities/report_employee_data/__init__.py => benefits_administration/capabilities/process_employees_deductions/data_models.py} (100%) create mode 100644 flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py rename flux_sdk/{ben_admin/capabilities/report_employee_data => benefits_administration/capabilities/report_employees_personal_and_employment_data}/BUILD (100%) create mode 100644 flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/__init__.py rename flux_sdk/{ben_admin/capabilities/report_employee_data => benefits_administration/capabilities/report_employees_personal_and_employment_data}/data_models.py (97%) rename flux_sdk/{ben_admin/capabilities/report_employee_data => benefits_administration/capabilities/report_employees_personal_and_employment_data}/interface.py (65%) diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py deleted file mode 100644 index 2cd5483c..00000000 --- a/flux_sdk/ben_admin/capabilities/process_deduction_data/data_models.py +++ /dev/null @@ -1,5 +0,0 @@ -class AppConfig: - ''' - This contains the application data gathered durring installation which is necesary to process employee data and send to payroll - ''' - group_id: str \ No newline at end of file diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py b/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py deleted file mode 100644 index e8f7358c..00000000 --- a/flux_sdk/ben_admin/capabilities/process_deduction_data/interface.py +++ /dev/null @@ -1,34 +0,0 @@ -from abc import ABC, abstractmethod - -from flux_sdk.flux_core.data_models import CompanyInfo, File -from flux_sdk.ben_admin.capabilities.process_deduction_data.data_models import AppConfig - - -class ProcessDeductionData(ABC): - """ - This class represents the "process deduction data" capability. The developer is supposed to implement - the following methods in their implementation. - - The methods on this class are required to instantiate an instance of this class. - """ - - @staticmethod - @abstractmethod - def get_file_name(app_config: AppConfig, company_info: CompanyInfo) -> str: - """ - This method receives the basic company info and is expected to return the file name which should be retrieved with the deduction info - - :param CompanyInfo: - :return str: - """ - - @staticmethod - @abstractmethod - def process_deductions_file(deductions_file: File): - """ - This method receives the file which contains the deductions relevant to the companies employees. - The developer is supposed to implement the following methods to process this data in accordance with their requirements - - :param File: - :return: - """ diff --git a/flux_sdk/ben_admin/__init__.py b/flux_sdk/benefits_administration/__init__.py similarity index 100% rename from flux_sdk/ben_admin/__init__.py rename to flux_sdk/benefits_administration/__init__.py diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/BUILD b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/BUILD similarity index 100% rename from flux_sdk/ben_admin/capabilities/process_deduction_data/BUILD rename to flux_sdk/benefits_administration/capabilities/process_employees_deductions/BUILD diff --git a/flux_sdk/ben_admin/capabilities/process_deduction_data/__init__.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/__init__.py similarity index 100% rename from flux_sdk/ben_admin/capabilities/process_deduction_data/__init__.py rename to flux_sdk/benefits_administration/capabilities/process_employees_deductions/__init__.py diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/__init__.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py similarity index 100% rename from flux_sdk/ben_admin/capabilities/report_employee_data/__init__.py rename to flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py new file mode 100644 index 00000000..4340fc9f --- /dev/null +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -0,0 +1,23 @@ +from abc import ABC, abstractmethod + +from flux_sdk.flux_core.data_models import CompanyInfo, File + + +class ProcessEmployeesDeductions(ABC): + """ + This class represents the "process employee deductions" capability. The developer is supposed to implement + the following methods in their implementation. + + The methods on this class are required to instantiate an instance of this class. + """ + + @staticmethod + @abstractmethod + def process_employees_deductions_into_rippling(deductions_file: File): + """ + This method receives the file which contains the deductions relevant to the companies employees. + The developer is supposed to implement the following methods to process this data in accordance with their requirements + + :param File: + :return: + """ diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/BUILD b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD similarity index 100% rename from flux_sdk/ben_admin/capabilities/report_employee_data/BUILD rename to flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/__init__.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py similarity index 97% rename from flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py rename to flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index d173cbbc..f7017153 100644 --- a/flux_sdk/ben_admin/capabilities/report_employee_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -5,7 +5,7 @@ from flux_sdk.flux_core.data_models import Address, EmployeeState, Gender -class AppConfig: +class ReportEmployeesPersonalAndEmploymentDataConfig: ''' This contains the application data gathered durring installation which is necesary to prepare employee data or process deductions ''' diff --git a/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py similarity index 65% rename from flux_sdk/ben_admin/capabilities/report_employee_data/interface.py rename to flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 1fba7b28..6c403def 100644 --- a/flux_sdk/ben_admin/capabilities/report_employee_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,10 +1,10 @@ from abc import ABC, abstractmethod from flux_sdk.flux_core.data_models import File -from flux_sdk.ben_admin.capabilities.report_employee_data.data_models import AppConfig, EmployeeData +from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ReportEmployeesPersonalAndEmploymentDataConfig, EmployeeData -class ReportEmployeeData(ABC): +class ReportEmployeesPersonalAndEmploymentData(ABC): """ This class represents the "report employee data" capability. The developer is supposed to implement the following methods in their implementation. @@ -14,7 +14,7 @@ class ReportEmployeeData(ABC): @staticmethod @abstractmethod - def get_formated_file(app_config: AppConfig, employee_data: EmployeeData) -> File: + def get_formated_employees_peronal_and_employment_data_file(app_config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: EmployeeData) -> File: """ This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP From f98af7c033fd86b09f5e818e6df4ae82149a6eb7 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 14 Nov 2023 16:53:53 -0800 Subject: [PATCH 07/43] update name --- .../report_employees_personal_and_employment_data/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 6c403def..e0f232f8 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -14,7 +14,7 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def get_formated_employees_peronal_and_employment_data_file(app_config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: EmployeeData) -> File: + def get_formated_employees_peronal_and_employment_data_file(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: EmployeeData) -> File: """ This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP From 3362011ded80e9e14eef7d896acda41433f0e3b8 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 14 Nov 2023 16:54:56 -0800 Subject: [PATCH 08/43] fix type --- .../report_employees_personal_and_employment_data/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index e0f232f8..2efc4613 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -14,7 +14,7 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def get_formated_employees_peronal_and_employment_data_file(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: EmployeeData) -> File: + def get_formated_employees_peronal_and_employment_data_file(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeeData]) -> File: """ This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP From db1c925e75324a398f35fafdecb5a5a774cb9248 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 15 Nov 2023 08:58:06 -0800 Subject: [PATCH 09/43] update employee data --- .../data_models.py | 33 ++++--------------- .../interface.py | 4 +-- 2 files changed, 9 insertions(+), 28 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index f7017153..50daa024 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -2,7 +2,7 @@ from enum import Enum from typing import Optional -from flux_sdk.flux_core.data_models import Address, EmployeeState, Gender +from flux_sdk.flux_core.data_models import Employee, EmployeeState class ReportEmployeesPersonalAndEmploymentDataConfig: @@ -13,18 +13,6 @@ class ReportEmployeesPersonalAndEmploymentDataConfig: group_id: str -class Name: - title: Optional[str] - first: str - middle: Optional[str] - last: str - suffix: Optional[str] - - @property - def full_name(self): - return f"${self.first} ${self.last}" - - class EmploymentType(Enum): CONTRACTOR = 1 SALARIED_FT = 2 @@ -68,12 +56,12 @@ class EmploymentHours: class Employment: hours: EmploymentHours + pay: Pay is_rehire: bool termination_date: Optional[datetime] start_date: datetime original_hire_date: datetime w2_start_date: datetime - pay: Pay class BenefitsEligibility(Enum): @@ -89,21 +77,14 @@ class EmployeeStatus: status: EmployeeState effective_date: datetime -class EmployeeData: + +class EmployeePersonalAndEmploymentData: ''' - This contains the core data about an employee which is relevant to a ben admin provider + This contains the core data about an employee which is relevant to a benefits administration provider ''' - id: str - ssn: str - name: Name - dob : datetime - phone_number: str - business_email: str - personal_email: str - gender: Gender + personal: Employee employment: Employment pay: Pay - address: Address status: EmployeeStatus - benefits: BenefitsEligibilityStatus + benefits_eligibility: BenefitsEligibilityStatus diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 2efc4613..fb0c0d25 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod from flux_sdk.flux_core.data_models import File -from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ReportEmployeesPersonalAndEmploymentDataConfig, EmployeeData +from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ReportEmployeesPersonalAndEmploymentDataConfig, EmployeePersonalAndEmploymentData class ReportEmployeesPersonalAndEmploymentData(ABC): @@ -14,7 +14,7 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def get_formated_employees_peronal_and_employment_data_file(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeeData]) -> File: + def get_formated_employees_peronal_and_employment_data_file(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData]) -> File: """ This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP From 583539fed5c3a4bb99ab9a2171d90b0bfacc0a23 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 6 Dec 2023 21:06:29 -0800 Subject: [PATCH 10/43] update group_number --- .../data_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index 50daa024..b2470e2f 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -10,7 +10,7 @@ class ReportEmployeesPersonalAndEmploymentDataConfig: This contains the application data gathered durring installation which is necesary to prepare employee data or process deductions ''' auto_enroll: bool - group_id: str + group_number: str class EmploymentType(Enum): From 388c4c19ad1fbf516eff6f273a870cebf2d8e5ec Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 6 Dec 2023 21:34:37 -0800 Subject: [PATCH 11/43] add company_id --- .../report_employees_personal_and_employment_data/data_models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index b2470e2f..677bcf38 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -11,6 +11,7 @@ class ReportEmployeesPersonalAndEmploymentDataConfig: ''' auto_enroll: bool group_number: str + company_id: str class EmploymentType(Enum): From 9bc1c9b55d5b1029bf94775847d011ff6163f5c4 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 7 Dec 2023 13:50:29 -0800 Subject: [PATCH 12/43] add id at top level --- .../report_employees_personal_and_employment_data/data_models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index 677bcf38..cf290f9c 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -83,6 +83,7 @@ class EmployeePersonalAndEmploymentData: ''' This contains the core data about an employee which is relevant to a benefits administration provider ''' + id: str personal: Employee employment: Employment pay: Pay From 679d608f252a60208ff4157f8405ed2dbb34317e Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 7 Dec 2023 13:53:04 -0800 Subject: [PATCH 13/43] update name --- .../report_employees_personal_and_employment_data/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index fb0c0d25..c96ae61a 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -14,7 +14,7 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def get_formated_employees_peronal_and_employment_data_file(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData]) -> File: + def format_employees_peronal_and_employment_data(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData]) -> File: """ This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP From 4a487ae4e1d6e247c266b3eb2a9df1eb028b27a9 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 7 Dec 2023 15:05:31 -0800 Subject: [PATCH 14/43] Revert "update dep" This reverts commit e6e40fbb446c8e30fb72d3f3af40b21767e74940. --- poetry.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index ebc34961..5de3d829 100644 --- a/poetry.lock +++ b/poetry.lock @@ -79,13 +79,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.1.3" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, ] [package.extras] @@ -206,13 +206,13 @@ files = [ [[package]] name = "packaging" -version = "23.2" +version = "23.1" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, ] [[package]] @@ -228,13 +228,13 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" +version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, + {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, ] [package.extras] @@ -332,7 +332,7 @@ name = "typing-extensions" version = "4.9.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, From d8e679bd970161d5931ed91eec7221a07a9ce9cc Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 12 Dec 2023 15:34:50 -0800 Subject: [PATCH 15/43] update name --- .../data_models.py | 5 ++++- .../interface.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index cf290f9c..56dfae8d 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -33,6 +33,8 @@ class PayFrequency(Enum): BI_WEEKLY = 2 MONTHLY = 3 SEMI_MONTHLY = 4 + QUARTERLY = 5 + ANNUALLY = 6 class PayTimeUnit(Enum): HOUR = 1 @@ -52,8 +54,9 @@ class Pay: class EmploymentHours: type: EmploymentType - effectiveDate: datetime + type_effective_date: datetime hours_per_week: Optional[int] + hours_effective_date: datetime class Employment: hours: EmploymentHours diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index c96ae61a..4863acd1 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -14,7 +14,7 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def format_employees_peronal_and_employment_data(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData]) -> File: + def format_employees_personal_and_employment_data(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData]) -> File: """ This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP From dffecf1652e98c698e3c6dd2b5b97b24be7528ff Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 12 Dec 2023 15:39:34 -0800 Subject: [PATCH 16/43] add place holder for deductions --- .../capabilities/process_employees_deductions/data_models.py | 2 ++ .../capabilities/process_employees_deductions/interface.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index e69de29b..05770c84 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -0,0 +1,2 @@ +class DeductionDetails: + value: str \ No newline at end of file diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 4340fc9f..52574e31 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,6 +1,7 @@ from abc import ABC, abstractmethod from flux_sdk.flux_core.data_models import CompanyInfo, File +from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import DeductionDetails class ProcessEmployeesDeductions(ABC): @@ -13,7 +14,7 @@ class ProcessEmployeesDeductions(ABC): @staticmethod @abstractmethod - def process_employees_deductions_into_rippling(deductions_file: File): + def process_employees_deductions_into_rippling(deductions_file: File) -> list[DeductionDetails]: """ This method receives the file which contains the deductions relevant to the companies employees. The developer is supposed to implement the following methods to process this data in accordance with their requirements From 2252eec30b5249611c67ad078c6def209744b7d9 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Fri, 15 Dec 2023 14:10:47 -0800 Subject: [PATCH 17/43] add comp values --- .../data_models.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index 56dfae8d..4859d6c3 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -51,6 +51,8 @@ class Pay: time_unit: PayTimeUnit value_per_unit: MonetaryValue value_effective_date: datetime + salary_or_equivalent: MonetaryValue + expected_commission: Optional[MonetaryValue] class EmploymentHours: type: EmploymentType @@ -58,11 +60,22 @@ class EmploymentHours: hours_per_week: Optional[int] hours_effective_date: datetime +class TerminationType(Enum): + VOLUNTARY = 0 + INVOLUNTARY = 1 + RETIREMENT = 2 + DEATH = 3 + ABANDONMENT = 4 + OFFER_DECLINE = 5 + RESCIND = 6 + RENEGE = 7 + class Employment: hours: EmploymentHours pay: Pay is_rehire: bool termination_date: Optional[datetime] + termination_type: Optional[TerminationType] start_date: datetime original_hire_date: datetime w2_start_date: datetime From 11ef9a05f0bcacf696c20ba5bdd84766fa8d3ce0 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 19 Dec 2023 14:22:37 -0800 Subject: [PATCH 18/43] Update BUILD --- .../capabilities/process_employees_deductions/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/BUILD b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/BUILD index 2181f04b..db46e8d6 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/BUILD +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/BUILD @@ -1 +1 @@ -python_sources() \ No newline at end of file +python_sources() From b02f681de5540399fd86f81ddc6e2c94a8324c6a Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 19 Dec 2023 14:22:50 -0800 Subject: [PATCH 19/43] Update data_models.py --- .../capabilities/process_employees_deductions/data_models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 05770c84..57f2472b 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -1,2 +1,3 @@ class DeductionDetails: - value: str \ No newline at end of file + value: str + From 91248f0cae6aafb99044c70ef62afba6bb6d9760 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 19 Dec 2023 14:23:03 -0800 Subject: [PATCH 20/43] Update BUILD --- .../report_employees_personal_and_employment_data/BUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD index 2181f04b..db46e8d6 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD @@ -1 +1 @@ -python_sources() \ No newline at end of file +python_sources() From f74bd7d03212a1fe1f654c0f9892da61da9ab81a Mon Sep 17 00:00:00 2001 From: Sravya Valipe Date: Wed, 31 Jan 2024 14:45:30 -0500 Subject: [PATCH 21/43] Add Ben Admin deduction data models (#36) * Add deduction models for Ben Admin * fixes --- .../process_employees_deductions/data_models.py | 12 ++++++++++-- .../process_employees_deductions/interface.py | 13 ++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 57f2472b..5fcc2049 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -1,3 +1,11 @@ class DeductionDetails: - value: str - + companyId: str + employeeId: str + deductionCode: str + effectiveFrom: datetime + endDate: datetime + totalContribution: Optional[Decimal] + employeeContribution: Optional[Decimal] + domesticPartnerPostTax: Optional[Decimal] + imputedIncome: Optional[Decimal] + companyContribution: Optional[Decimal] diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 52574e31..8109005c 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -14,11 +14,18 @@ class ProcessEmployeesDeductions(ABC): @staticmethod @abstractmethod - def process_employees_deductions_into_rippling(deductions_file: File) -> list[DeductionDetails]: + def get_file_name(company_name: str) -> str: """ - This method receives the file which contains the deductions relevant to the companies employees. - The developer is supposed to implement the following methods to process this data in accordance with their requirements + This method returns the file name of deductions sent by Bswfit + """ + + @staticmethod + @abstractmethod + def format_and_fetch_deduction_info(uri: str, stream: IOBase) -> list[DeductionDetails]: + """ + This method receives the file which contains the deductions relevant to the companies employees and returns the + deductions details for each employee :param File: :return: """ From 7249db4c4c674c1ed6a9f2975b4839c2874bf59d Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 19 Mar 2024 14:03:27 -0700 Subject: [PATCH 22/43] update data models --- .../data_models.py | 20 ++++++++++++++++--- .../process_employees_deductions/interface.py | 9 ++++++--- .../data_models.py | 2 ++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 5fcc2049..9fdebc28 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -1,11 +1,25 @@ +from typing import Optional +from decimal import Decimal +from datetime import datetime + +from enum import Enum + class DeductionDetails: companyId: str employeeId: str deductionCode: str effectiveFrom: datetime endDate: datetime - totalContribution: Optional[Decimal] employeeContribution: Optional[Decimal] - domesticPartnerPostTax: Optional[Decimal] - imputedIncome: Optional[Decimal] companyContribution: Optional[Decimal] + +class DeductionCodeField(Enum): + EMPLOYEE_CONTRIBUTION = "EMPLOYEE_CONTRIBUTION" + COMPANY_CONTRIBUTION = "COMPANY_CONTRIBUTION" + +class ExternalDeductionCodeToRipplingCode: + externalCode: str + ripplingCode: str + ripplingDeductionField: DeductionCodeField + + diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 8109005c..d1686dd2 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,7 +1,10 @@ from abc import ABC, abstractmethod +from io import IOBase -from flux_sdk.flux_core.data_models import CompanyInfo, File -from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import DeductionDetails +from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import { + DeductionDetails, + ExternalDeductionCodeToRipplingCode +} class ProcessEmployeesDeductions(ABC): @@ -22,7 +25,7 @@ def get_file_name(company_name: str) -> str: @staticmethod @abstractmethod - def format_and_fetch_deduction_info(uri: str, stream: IOBase) -> list[DeductionDetails]: + def format_and_fetch_deduction_info(uri: str, stream: IOBase, deduction_code_mapping: list[ExternalDeductionCodeToRipplingCode]) -> list[DeductionDetails]: """ This method receives the file which contains the deductions relevant to the companies employees and returns the deductions details for each employee diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index 4859d6c3..adf377a9 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -100,6 +100,8 @@ class EmployeePersonalAndEmploymentData: This contains the core data about an employee which is relevant to a benefits administration provider ''' id: str + employee_number: int + company_tax_id: str personal: Employee employment: Employment pay: Pay From 5894a835a0e5bfc96d93ee6fcbc16880c0c7fb01 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 19 Mar 2024 14:12:46 -0700 Subject: [PATCH 23/43] reset poetry --- poetry.lock | 84 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index 5de3d829..15a3a595 100644 --- a/poetry.lock +++ b/poetry.lock @@ -79,13 +79,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.3" +version = "1.2.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, - {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, ] [package.extras] @@ -206,13 +206,13 @@ files = [ [[package]] name = "packaging" -version = "23.1" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -228,13 +228,13 @@ files = [ [[package]] name = "platformdirs" -version = "3.10.0" +version = "4.1.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, + {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, ] [package.extras] @@ -317,6 +317,68 @@ docs = ["ryd"] jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] +<<<<<<< HEAD +======= +name = "ruamel-yaml-clib" +version = "0.2.8" +description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +optional = false +python-versions = ">=3.6" +files = [ + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, + {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, + {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, +] + +[[package]] +>>>>>>> 13e81eb (reset poetry) name = "tomli" version = "2.0.1" description = "A lil' TOML parser" @@ -332,7 +394,7 @@ name = "typing-extensions" version = "4.9.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, From 1cdb40f519254558ed3ee25223d6e97fa86c6325 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 10:43:07 -0700 Subject: [PATCH 24/43] lint --- .../process_employees_deductions/data_models.py | 4 ++-- .../process_employees_deductions/interface.py | 8 +++++--- .../data_models.py | 3 ++- .../interface.py | 12 +++++++++--- pyproject.toml | 4 ++++ 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 9fdebc28..067f7bbe 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -1,6 +1,6 @@ -from typing import Optional -from decimal import Decimal from datetime import datetime +from decimal import Decimal +from typing import Optional from enum import Enum diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index d1686dd2..96b34806 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,10 +1,10 @@ from abc import ABC, abstractmethod from io import IOBase -from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import { +from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode -} +) class ProcessEmployeesDeductions(ABC): @@ -25,7 +25,9 @@ def get_file_name(company_name: str) -> str: @staticmethod @abstractmethod - def format_and_fetch_deduction_info(uri: str, stream: IOBase, deduction_code_mapping: list[ExternalDeductionCodeToRipplingCode]) -> list[DeductionDetails]: + def format_and_fetch_deduction_info( + uri: str, stream: IOBase, deduction_code_mapping: list[ExternalDeductionCodeToRipplingCode] + ) -> list[DeductionDetails]: """ This method receives the file which contains the deductions relevant to the companies employees and returns the deductions details for each employee diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index adf377a9..f35e6a4f 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -7,7 +7,8 @@ class ReportEmployeesPersonalAndEmploymentDataConfig: ''' - This contains the application data gathered durring installation which is necesary to prepare employee data or process deductions + This contains the application data gathered durring installation + which is necesary to prepare employee data or process deductions ''' auto_enroll: bool group_number: str diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 4863acd1..6dd7ff4b 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,7 +1,10 @@ from abc import ABC, abstractmethod +from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( # noqa + ReportEmployeesPersonalAndEmploymentDataConfig, + EmployeePersonalAndEmploymentData +) from flux_sdk.flux_core.data_models import File -from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ReportEmployeesPersonalAndEmploymentDataConfig, EmployeePersonalAndEmploymentData class ReportEmployeesPersonalAndEmploymentData(ABC): @@ -14,9 +17,12 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def format_employees_personal_and_employment_data(config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData]) -> File: + def format_employees_personal_and_employment_data( + config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData] + ) -> File: """ - This method receives the apps configuration data and a list of employee data. The developer is expected to create a file, formated to their use case, and return that file. + This method receives the apps configuration data and a list of employee data. + The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP :param App diff --git a/pyproject.toml b/pyproject.toml index 328789fa..5174256b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,10 @@ [tool.poetry] name = "rippling-flux-sdk" +<<<<<<< HEAD version = "0.22" +======= +version = "0.20" +>>>>>>> 971ac56 (lint) description = "Defines the interfaces and data-models used by Rippling Flux Apps." authors = ["Rippling Apps "] readme = "README.md" From f0657d6e641743a46f7584b763711ca0a6ce035e Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 11:10:36 -0700 Subject: [PATCH 25/43] bump version --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 5174256b..0ff4245c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,14 @@ [tool.poetry] name = "rippling-flux-sdk" <<<<<<< HEAD +<<<<<<< HEAD version = "0.22" ======= version = "0.20" >>>>>>> 971ac56 (lint) +======= +version = "0.21" +>>>>>>> 53e29d5 (bump version) description = "Defines the interfaces and data-models used by Rippling Flux Apps." authors = ["Rippling Apps "] readme = "README.md" From 3580ff394cbc83031ab4dc314898075c14b74dcb Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 17:25:32 -0700 Subject: [PATCH 26/43] lint --- .../capabilities/process_employees_deductions/data_models.py | 3 +-- .../capabilities/process_employees_deductions/interface.py | 3 +-- .../interface.py | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 067f7bbe..d5dc70fc 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -1,8 +1,8 @@ from datetime import datetime from decimal import Decimal +from enum import Enum from typing import Optional -from enum import Enum class DeductionDetails: companyId: str @@ -22,4 +22,3 @@ class ExternalDeductionCodeToRipplingCode: ripplingCode: str ripplingDeductionField: DeductionCodeField - diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 96b34806..8e1e12b3 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,10 +1,9 @@ from abc import ABC, abstractmethod -from io import IOBase - from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode ) +from io import IOBase class ProcessEmployeesDeductions(ABC): diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 6dd7ff4b..3633675b 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,5 +1,4 @@ from abc import ABC, abstractmethod - from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( # noqa ReportEmployeesPersonalAndEmploymentDataConfig, EmployeePersonalAndEmploymentData @@ -18,7 +17,8 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod def format_employees_personal_and_employment_data( - config: ReportEmployeesPersonalAndEmploymentDataConfig, employee_data: list[EmployeePersonalAndEmploymentData] + config: ReportEmployeesPersonalAndEmploymentDataConfig, + employee_data: list[EmployeePersonalAndEmploymentData] ) -> File: """ This method receives the apps configuration data and a list of employee data. From b98254864ea8ef479a9d3c962f4ae5f0052d0bcb Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 17:31:45 -0700 Subject: [PATCH 27/43] lint --- .../capabilities/process_employees_deductions/interface.py | 4 +++- .../interface.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 8e1e12b3..d010e4e1 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,9 +1,11 @@ from abc import ABC, abstractmethod +from io import IOBase + from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode ) -from io import IOBase + class ProcessEmployeesDeductions(ABC): diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 3633675b..3a1d7c26 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,7 +1,8 @@ from abc import ABC, abstractmethod + from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( # noqa - ReportEmployeesPersonalAndEmploymentDataConfig, - EmployeePersonalAndEmploymentData + EmployeePersonalAndEmploymentData, + ReportEmployeesPersonalAndEmploymentDataConfig ) from flux_sdk.flux_core.data_models import File From 2a7489bd77b4c5439068742c22c9809803aacabd Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 17:35:08 -0700 Subject: [PATCH 28/43] lint --- .../capabilities/process_employees_deductions/interface.py | 4 +--- .../interface.py | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index d010e4e1..8e1e12b3 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,11 +1,9 @@ from abc import ABC, abstractmethod -from io import IOBase - from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode ) - +from io import IOBase class ProcessEmployeesDeductions(ABC): diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index 3a1d7c26..b9905274 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,6 +1,5 @@ from abc import ABC, abstractmethod - -from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( # noqa +from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( EmployeePersonalAndEmploymentData, ReportEmployeesPersonalAndEmploymentDataConfig ) From 8bb6d05be4a092380f1fa55092372ed7dc907f78 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 17:40:33 -0700 Subject: [PATCH 29/43] lint --- .../capabilities/process_employees_deductions/interface.py | 5 ++++- .../interface.py | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 8e1e12b3..529dc449 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,9 +1,12 @@ +from io import IOBase + from abc import ABC, abstractmethod + from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode ) -from io import IOBase + class ProcessEmployeesDeductions(ABC): diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py index b9905274..8e365b8e 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py @@ -1,4 +1,5 @@ from abc import ABC, abstractmethod + from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( EmployeePersonalAndEmploymentData, ReportEmployeesPersonalAndEmploymentDataConfig From b0d41a06feb6bb418199413bb9d1cadf46c5ddc1 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 17:46:02 -0700 Subject: [PATCH 30/43] try again --- .../capabilities/process_employees_deductions/interface.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 529dc449..96b34806 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,6 +1,5 @@ -from io import IOBase - from abc import ABC, abstractmethod +from io import IOBase from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, @@ -8,7 +7,6 @@ ) - class ProcessEmployeesDeductions(ABC): """ This class represents the "process employee deductions" capability. The developer is supposed to implement From 28e45e0477775b53c96248ded58cbcbfccbd007f Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 20 Mar 2024 17:56:12 -0700 Subject: [PATCH 31/43] dont change version --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 0ff4245c..8bc1365b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,7 @@ name = "rippling-flux-sdk" <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD version = "0.22" ======= version = "0.20" @@ -9,6 +10,9 @@ version = "0.20" ======= version = "0.21" >>>>>>> 53e29d5 (bump version) +======= +version = "0.20" +>>>>>>> f5b9be9 (dont change version) description = "Defines the interfaces and data-models used by Rippling Flux Apps." authors = ["Rippling Apps "] readme = "README.md" From 600648ba75f3acefb53230aea0ae7cc46bb96bf3 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 21 Mar 2024 19:57:29 -0700 Subject: [PATCH 32/43] =?UTF-8?q?remove=20options=20for=20long=20hand=20un?= =?UTF-8?q?ion.=20=C2=AF\=5F(=E3=83=84)=5F/=C2=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process_employees_deductions/data_models.py | 5 ++--- .../data_models.py | 12 ++++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index d5dc70fc..4008883d 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -1,7 +1,6 @@ from datetime import datetime from decimal import Decimal from enum import Enum -from typing import Optional class DeductionDetails: @@ -10,8 +9,8 @@ class DeductionDetails: deductionCode: str effectiveFrom: datetime endDate: datetime - employeeContribution: Optional[Decimal] - companyContribution: Optional[Decimal] + employeeContribution: Decimal | None + companyContribution: Decimal | None class DeductionCodeField(Enum): EMPLOYEE_CONTRIBUTION = "EMPLOYEE_CONTRIBUTION" diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py index f35e6a4f..e111965c 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py @@ -1,6 +1,5 @@ from datetime import datetime from enum import Enum -from typing import Optional from flux_sdk.flux_core.data_models import Employee, EmployeeState @@ -53,12 +52,12 @@ class Pay: value_per_unit: MonetaryValue value_effective_date: datetime salary_or_equivalent: MonetaryValue - expected_commission: Optional[MonetaryValue] + expected_commission: MonetaryValue | None class EmploymentHours: type: EmploymentType type_effective_date: datetime - hours_per_week: Optional[int] + hours_per_week: int | None hours_effective_date: datetime class TerminationType(Enum): @@ -75,8 +74,8 @@ class Employment: hours: EmploymentHours pay: Pay is_rehire: bool - termination_date: Optional[datetime] - termination_type: Optional[TerminationType] + termination_date: datetime | None + termination_type: TerminationType | None start_date: datetime original_hire_date: datetime w2_start_date: datetime @@ -98,7 +97,8 @@ class EmployeeStatus: class EmployeePersonalAndEmploymentData: ''' - This contains the core data about an employee which is relevant to a benefits administration provider + This contains the core data about an employee + which is relevant to a benefits administration provider ''' id: str employee_number: int From b8db335933654bfe116e894c13fb18bde29b79b1 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 21 Mar 2024 20:15:25 -0700 Subject: [PATCH 33/43] change capability name --- .../BUILD | 0 .../__init__.py | 0 .../data_models.py | 4 ++-- .../interface.py | 14 +++++++------- 4 files changed, 9 insertions(+), 9 deletions(-) rename flux_sdk/benefits_administration/capabilities/{report_employees_personal_and_employment_data => report_employees_hr_data}/BUILD (100%) rename flux_sdk/benefits_administration/capabilities/{report_employees_personal_and_employment_data => report_employees_hr_data}/__init__.py (100%) rename flux_sdk/benefits_administration/capabilities/{report_employees_personal_and_employment_data => report_employees_hr_data}/data_models.py (95%) rename flux_sdk/benefits_administration/capabilities/{report_employees_personal_and_employment_data => report_employees_hr_data}/interface.py (67%) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/BUILD similarity index 100% rename from flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/BUILD rename to flux_sdk/benefits_administration/capabilities/report_employees_hr_data/BUILD diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/__init__.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/__init__.py similarity index 100% rename from flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/__init__.py rename to flux_sdk/benefits_administration/capabilities/report_employees_hr_data/__init__.py diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py similarity index 95% rename from flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py rename to flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py index e111965c..c327c9d4 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py @@ -4,7 +4,7 @@ from flux_sdk.flux_core.data_models import Employee, EmployeeState -class ReportEmployeesPersonalAndEmploymentDataConfig: +class ReportEmployeesHrDataConfig: ''' This contains the application data gathered durring installation which is necesary to prepare employee data or process deductions @@ -95,7 +95,7 @@ class EmployeeStatus: effective_date: datetime -class EmployeePersonalAndEmploymentData: +class EmployeeHrData: ''' This contains the core data about an employee which is relevant to a benefits administration provider diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py similarity index 67% rename from flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py rename to flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py index 8e365b8e..ed0f3880 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_personal_and_employment_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py @@ -1,13 +1,13 @@ from abc import ABC, abstractmethod -from flux_sdk.benefits_administration.capabilities.report_employees_personal_and_employment_data.data_models import ( - EmployeePersonalAndEmploymentData, - ReportEmployeesPersonalAndEmploymentDataConfig +from flux_sdk.benefits_administration.capabilities.report_employees_hr_data.data_models import ( + EmployeeHrData, + ReportEmployeesHrDataConfig ) from flux_sdk.flux_core.data_models import File -class ReportEmployeesPersonalAndEmploymentData(ABC): +class ReportEmployeesHrData(ABC): """ This class represents the "report employee data" capability. The developer is supposed to implement the following methods in their implementation. @@ -17,9 +17,9 @@ class ReportEmployeesPersonalAndEmploymentData(ABC): @staticmethod @abstractmethod - def format_employees_personal_and_employment_data( - config: ReportEmployeesPersonalAndEmploymentDataConfig, - employee_data: list[EmployeePersonalAndEmploymentData] + def format_employees_hr_data( + config: ReportEmployeesHrDataConfig, + employee_data: list[EmployeeHrData] ) -> File: """ This method receives the apps configuration data and a list of employee data. From 3f7e7901ffe9fc49d9fe12898ed31f5dcd386016 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 2 Apr 2024 13:32:29 -0700 Subject: [PATCH 34/43] update types --- .../capabilities/process_employees_deductions/data_models.py | 2 +- .../capabilities/process_employees_deductions/interface.py | 4 ++-- .../capabilities/report_employees_hr_data/data_models.py | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 4008883d..9219be5b 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -8,7 +8,7 @@ class DeductionDetails: employeeId: str deductionCode: str effectiveFrom: datetime - endDate: datetime + endDate: datetime | None employeeContribution: Decimal | None companyContribution: Decimal | None diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 96b34806..32a72f22 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -17,9 +17,9 @@ class ProcessEmployeesDeductions(ABC): @staticmethod @abstractmethod - def get_file_name(company_name: str) -> str: + def get_file_name(company_name: str, group_id: str) -> str: """ - This method returns the file name of deductions sent by Bswfit + This method returns the file name of deductions sent by the third party """ diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py index c327c9d4..b4d17bd3 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py @@ -1,4 +1,5 @@ from datetime import datetime +from decimal import Decimal from enum import Enum from flux_sdk.flux_core.data_models import Employee, EmployeeState @@ -24,7 +25,7 @@ class EmploymentType(Enum): class MonetaryValue: - value: float + value: Decimal currency_type: str From a6bc315ffad73dd65deb1484708373f7418522e6 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Tue, 2 Apr 2024 15:20:09 -0700 Subject: [PATCH 35/43] remove get_file_name --- .../process_employees_deductions/interface.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 32a72f22..7a9c4de0 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -15,14 +15,6 @@ class ProcessEmployeesDeductions(ABC): The methods on this class are required to instantiate an instance of this class. """ - @staticmethod - @abstractmethod - def get_file_name(company_name: str, group_id: str) -> str: - """ - This method returns the file name of deductions sent by the third party - """ - - @staticmethod @abstractmethod def format_and_fetch_deduction_info( From f61d5d369a065edd517ffe17c1daa022e826164d Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 3 Apr 2024 18:04:54 -0700 Subject: [PATCH 36/43] move types to core --- .../report_employees_hr_data/data_models.py | 44 ++++--------------- 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py index b4d17bd3..a0e34cff 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py @@ -2,7 +2,14 @@ from decimal import Decimal from enum import Enum -from flux_sdk.flux_core.data_models import Employee, EmployeeState +from flux_sdk.flux_core.data_models import ( + Employee, + EmployeeState, + EmploymentType, + PayFrequency, + PayTimeUnit, + TerminationType +) class ReportEmployeesHrDataConfig: @@ -13,15 +20,6 @@ class ReportEmployeesHrDataConfig: auto_enroll: bool group_number: str company_id: str - - -class EmploymentType(Enum): - CONTRACTOR = 1 - SALARIED_FT = 2 - SALARIED_PT = 3 - HOURLY_FT = 4 - HOURLY_PT = 5 - TEMP = 6 class MonetaryValue: @@ -29,23 +27,6 @@ class MonetaryValue: currency_type: str -class PayFrequency(Enum): - WEEKLY = 1 - BI_WEEKLY = 2 - MONTHLY = 3 - SEMI_MONTHLY = 4 - QUARTERLY = 5 - ANNUALLY = 6 - -class PayTimeUnit(Enum): - HOUR = 1 - DAY = 2 - WEEK = 3 - MONTH = 4 - YEAR = 5 - PAY_PERIOD = 6 - - class Pay: frequency: PayFrequency frequency_effective_date: datetime @@ -61,15 +42,6 @@ class EmploymentHours: hours_per_week: int | None hours_effective_date: datetime -class TerminationType(Enum): - VOLUNTARY = 0 - INVOLUNTARY = 1 - RETIREMENT = 2 - DEATH = 3 - ABANDONMENT = 4 - OFFER_DECLINE = 5 - RESCIND = 6 - RENEGE = 7 class Employment: hours: EmploymentHours From 423a3480c163e397ba5254c4a918c0cf24e7cb3d Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Wed, 3 Apr 2024 18:09:06 -0700 Subject: [PATCH 37/43] import format --- .../capabilities/process_employees_deductions/interface.py | 3 +-- .../capabilities/report_employees_hr_data/data_models.py | 1 - .../capabilities/report_employees_hr_data/interface.py | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 7a9c4de0..7eda9fa2 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,10 +1,9 @@ from abc import ABC, abstractmethod -from io import IOBase - from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode ) +from io import IOBase class ProcessEmployeesDeductions(ABC): diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py index a0e34cff..d22afc9c 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py @@ -1,7 +1,6 @@ from datetime import datetime from decimal import Decimal from enum import Enum - from flux_sdk.flux_core.data_models import ( Employee, EmployeeState, diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py index ed0f3880..a5bef1f0 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py @@ -1,5 +1,4 @@ from abc import ABC, abstractmethod - from flux_sdk.benefits_administration.capabilities.report_employees_hr_data.data_models import ( EmployeeHrData, ReportEmployeesHrDataConfig From 4a4b29d9520350211ee7a90e1906ad45fa19054e Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 4 Apr 2024 09:55:56 -0700 Subject: [PATCH 38/43] update field name casing. fix doc strings --- .../data_models.py | 18 +++++++++--------- .../process_employees_deductions/interface.py | 7 ++++--- .../report_employees_hr_data/interface.py | 4 ++-- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 9219be5b..8c5c5647 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -4,20 +4,20 @@ class DeductionDetails: - companyId: str - employeeId: str - deductionCode: str - effectiveFrom: datetime + company_id: str + employee_id: str + deduction_code: str + effective_from: datetime endDate: datetime | None - employeeContribution: Decimal | None - companyContribution: Decimal | None + employee_contribution: Decimal | None + company_contribution: Decimal | None class DeductionCodeField(Enum): EMPLOYEE_CONTRIBUTION = "EMPLOYEE_CONTRIBUTION" COMPANY_CONTRIBUTION = "COMPANY_CONTRIBUTION" class ExternalDeductionCodeToRipplingCode: - externalCode: str - ripplingCode: str - ripplingDeductionField: DeductionCodeField + external_code: str + rippling_code: str + rippling_deduction_field: DeductionCodeField diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 7eda9fa2..b780a1bb 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -17,11 +17,12 @@ class ProcessEmployeesDeductions(ABC): @staticmethod @abstractmethod def format_and_fetch_deduction_info( - uri: str, stream: IOBase, deduction_code_mapping: list[ExternalDeductionCodeToRipplingCode] + stream: IOBase, deduction_code_mapping: list[ExternalDeductionCodeToRipplingCode] ) -> list[DeductionDetails]: """ This method receives the file which contains the deductions relevant to the companies employees and returns the deductions details for each employee - :param File: - :return: + :param IOBase: + :param list[ExternalDeductionCodeToRipplingCode]: + :return list[DeductionDetails]: """ diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py index a5bef1f0..c740e8cb 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py @@ -25,7 +25,7 @@ def format_employees_hr_data( The developer is expected to create a file, formated to their use case, and return that file. The file will be tranfered to the partner company via SFTP - :param App - :param list[EmployeeData]: + :param ReportEmployeesHrDataConfig: + :param list[EmployeeHrData]: :return File: """ From 090230ba6270a43cfd991e4aec7d94241ac4aabe Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 4 Apr 2024 09:58:37 -0700 Subject: [PATCH 39/43] import order again --- .../capabilities/process_employees_deductions/interface.py | 4 +++- .../capabilities/report_employees_hr_data/data_models.py | 1 + .../capabilities/report_employees_hr_data/interface.py | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index b780a1bb..0c3d2e2d 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -1,9 +1,11 @@ from abc import ABC, abstractmethod +from io import IOBase + from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, ExternalDeductionCodeToRipplingCode ) -from io import IOBase + class ProcessEmployeesDeductions(ABC): diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py index d22afc9c..a0e34cff 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py @@ -1,6 +1,7 @@ from datetime import datetime from decimal import Decimal from enum import Enum + from flux_sdk.flux_core.data_models import ( Employee, EmployeeState, diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py index c740e8cb..6314f115 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py @@ -1,4 +1,5 @@ from abc import ABC, abstractmethod + from flux_sdk.benefits_administration.capabilities.report_employees_hr_data.data_models import ( EmployeeHrData, ReportEmployeesHrDataConfig From 40e2abbf07c3b8a43c71ae803f6f0651b9a98404 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 4 Apr 2024 10:15:17 -0700 Subject: [PATCH 40/43] add types to core --- flux_sdk/flux_core/data_models.py | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/flux_sdk/flux_core/data_models.py b/flux_sdk/flux_core/data_models.py index bb2ab4c3..b8411f14 100644 --- a/flux_sdk/flux_core/data_models.py +++ b/flux_sdk/flux_core/data_models.py @@ -212,3 +212,42 @@ class AppContext: customer_partner_settings: This dict contains the settings value specified on manifest in key-value pair """ customer_partner_settings: dict + + +class EmploymentType(Enum): + CONTRACTOR = 1 + SALARIED_FT = 2 + SALARIED_PT = 3 + HOURLY_FT = 4 + HOURLY_PT = 5 + TEMP = 6 + + +class PayFrequency(Enum): + WEEKLY = 1 + BI_WEEKLY = 2 + MONTHLY = 3 + SEMI_MONTHLY = 4 + QUARTERLY = 5 + ANNUALLY = 6 + + +class PayTimeUnit(Enum): + HOUR = 1 + DAY = 2 + WEEK = 3 + MONTH = 4 + YEAR = 5 + PAY_PERIOD = 6 + + +class TerminationType(Enum): + VOLUNTARY = 0 + INVOLUNTARY = 1 + RETIREMENT = 2 + DEATH = 3 + ABANDONMENT = 4 + OFFER_DECLINE = 5 + RESCIND = 6 + RENEGE = 7 + \ No newline at end of file From 0fd6d9991a86f33b6fb866c68ab2ed9997bd02a9 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Thu, 4 Apr 2024 17:38:28 -0700 Subject: [PATCH 41/43] fix import sort --- .../process_employees_deductions/interface.py | 3 +-- .../report_employees_hr_data/data_models.py | 2 +- .../report_employees_hr_data/interface.py | 2 +- pyproject.toml | 14 +------------- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py index 0c3d2e2d..026c3fee 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/interface.py @@ -3,11 +3,10 @@ from flux_sdk.benefits_administration.capabilities.process_employees_deductions.data_models import ( DeductionDetails, - ExternalDeductionCodeToRipplingCode + ExternalDeductionCodeToRipplingCode, ) - class ProcessEmployeesDeductions(ABC): """ This class represents the "process employee deductions" capability. The developer is supposed to implement diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py index a0e34cff..c0d1b9b2 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/data_models.py @@ -8,7 +8,7 @@ EmploymentType, PayFrequency, PayTimeUnit, - TerminationType + TerminationType, ) diff --git a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py index 6314f115..ceca2c36 100644 --- a/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py +++ b/flux_sdk/benefits_administration/capabilities/report_employees_hr_data/interface.py @@ -2,7 +2,7 @@ from flux_sdk.benefits_administration.capabilities.report_employees_hr_data.data_models import ( EmployeeHrData, - ReportEmployeesHrDataConfig + ReportEmployeesHrDataConfig, ) from flux_sdk.flux_core.data_models import File diff --git a/pyproject.toml b/pyproject.toml index 8bc1365b..13a264d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,25 +1,13 @@ [tool.poetry] name = "rippling-flux-sdk" -<<<<<<< HEAD -<<<<<<< HEAD -<<<<<<< HEAD -version = "0.22" -======= version = "0.20" ->>>>>>> 971ac56 (lint) -======= -version = "0.21" ->>>>>>> 53e29d5 (bump version) -======= -version = "0.20" ->>>>>>> f5b9be9 (dont change version) description = "Defines the interfaces and data-models used by Rippling Flux Apps." authors = ["Rippling Apps "] readme = "README.md" packages = [{include="flux_sdk"}] [tool.poetry.dependencies] -python = "^3.10" +python = "^3.9" "ruamel.yaml" = "0.17.10" click = ">=8.0,<9" From 16887cd3b5fcbc8c5ff76b69e4e7a8eac2d6fc84 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Fri, 5 Apr 2024 15:12:53 -0700 Subject: [PATCH 42/43] fix rebase --- poetry.lock | 62 -------------------------------------------------- pyproject.toml | 4 ++-- 2 files changed, 2 insertions(+), 64 deletions(-) diff --git a/poetry.lock b/poetry.lock index 15a3a595..ebc34961 100644 --- a/poetry.lock +++ b/poetry.lock @@ -317,68 +317,6 @@ docs = ["ryd"] jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] -<<<<<<< HEAD -======= -name = "ruamel-yaml-clib" -version = "0.2.8" -description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" -optional = false -python-versions = ">=3.6" -files = [ - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, - {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, - {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, -] - -[[package]] ->>>>>>> 13e81eb (reset poetry) name = "tomli" version = "2.0.1" description = "A lil' TOML parser" diff --git a/pyproject.toml b/pyproject.toml index 13a264d7..328789fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [tool.poetry] name = "rippling-flux-sdk" -version = "0.20" +version = "0.22" description = "Defines the interfaces and data-models used by Rippling Flux Apps." authors = ["Rippling Apps "] readme = "README.md" packages = [{include="flux_sdk"}] [tool.poetry.dependencies] -python = "^3.9" +python = "^3.10" "ruamel.yaml" = "0.17.10" click = ">=8.0,<9" From da100d9b42a9e35da6b36035e07151c58dbd61c5 Mon Sep 17 00:00:00 2001 From: Bryan Bierce Date: Sun, 7 Apr 2024 12:24:19 -0700 Subject: [PATCH 43/43] field casing --- .../capabilities/process_employees_deductions/data_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py index 8c5c5647..f4300bc5 100644 --- a/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py +++ b/flux_sdk/benefits_administration/capabilities/process_employees_deductions/data_models.py @@ -8,7 +8,7 @@ class DeductionDetails: employee_id: str deduction_code: str effective_from: datetime - endDate: datetime | None + end_date: datetime | None employee_contribution: Decimal | None company_contribution: Decimal | None