Employee Import Processor

import com.workbrain2.platform.publ.api.SystemPublicServiceAccess
import com.workbrain2.platform.publ.api.CurrentUserPublService
import com.workbrain2.platform.publ.api.exceptions.PublException
import com.workbrain2.ta.publ.api.employeeimport.EIContext
import com.workbrain2.ta.publ.api.employeeimport.EmployeeImportScriptable
import com.workbrain2.ta.publ.api.employeeimport.ctx.EmployeeCtxPublService
import com.workbrain2.ta.publ.api.employeeimport.ctx.EmployeeJobsCtxPublService
import com.workbrain2.ta.publ.api.employeeimport.ctx.EntitlementPolicyCtxPublService
import com.workbrain2.ta.publ.api.EmployeePublService
import com.workbrain2.ta.publ.api.TAPublicServiceAccess
import com.workbrain2.ta.publ.api.EmployeeImportServiceAccess
import com.workbrain2.ta.publ.api.EntitlementPublService
import com.workbrain2.ta.publ.api.domain.EmployeePubl
import com.workbrain2.ta.publ.api.domain.EmployeeJobPubl
import com.workbrain2.ta.publ.api.domain.EntitlementEmployeePolicyPubl
import com.workbrain2.ta.publ.api.domain.EntitlementPolicyPubl
 
class PreProcessorExample extends EmployeeImportScriptable {
 
    @Override
    void process(EIContext context) throws PublException {
        EmployeeCtxPublService importEmployeeService = EmployeeImportServiceAccess.getEmployeeCtxPublService()
        EmployeeJobsCtxPublService jobService = EmployeeImportServiceAccess.getEmployeeJobsCtxPublService()
        CurrentUserPublService userService = SystemPublicServiceAccess.getCurrentUserService()
 
        EmployeePubl employee = importEmployeeService.getEmployee(context)
        List<EmployeeJobPubl> employeeJobs = jobService.getEmployeeJobs(context)
        String employeeName = userService.getCurrentUser().getEmployeeName()
 
        EmployeePubl newEmployee = TAPublicServiceAccess.getEmployeePublService().getEmployeePublBuilder()
                .init(employee)
                .setVal1(employeeName)
                .setVal2("val2")
                .build()
        importEmployeeService.setEmployee(context, newEmployee)
 
        for (EmployeeJobPubl employeeJob : employeeJobs) {
            EmployeeJobPubl newEmployeeJob = TAPublicServiceAccess.getEmployeePublService().getEmployeeJobPublBuilder()
                    .init(employeeJob)
                    .setUdf1("udf1")
                    .build()
            jobService.setEmployeeJob(context, newEmployeeJob)
        }
 
        // Entitlement Policy
        EntitlementPolicyCtxPublService eiEntPolicyService = EmployeeImportServiceAccess.getEntitlementPolicyCtxPublService()
        EntitlementPublService entPolicyService = TAPublicServiceAccess.getEntitlementService()
        EntitlementPolicyPubl p2Policy = entPolicyService.getPolicyByName("P2")
 
        // create new Policy
        EntitlementEmployeePolicyPubl newEntPolicy = TAPublicServiceAccess.getEntitlementService().getEntitlementEmployeePolicyBuilder()
                .setEntitlementPolicyId(p2Policy.getId())
                .setStartDate(context.getOverrideStartDate())
                .setEndDate(context.getOverrideEndDate())
                .setFlag1("Y")
                .setUdf1(newEmployee.getVal1())
                .build()
        eiEntPolicyService.setEntitlementPolicy(context, newEntPolicy)
    }
}
import com.workbrain2.platform.publ.api.SystemPublicServiceAccess
import com.workbrain2.platform.publ.api.exceptions.PublException
import com.workbrain2.ta.publ.api.employeeimport.EIContext
import com.workbrain2.ta.publ.api.employeeimport.EmployeeImportScriptable
import com.workbrain2.ta.publ.api.employeeimport.ctx.EmployeeCtxPublService
import com.workbrain2.ta.publ.api.EmployeePublService
import com.workbrain2.ta.publ.api.TAPublicServiceAccess
import com.workbrain2.ta.publ.api.EmployeeImportServiceAccess
import com.workbrain2.ta.publ.api.EntitlementPublService
import com.workbrain2.ta.publ.api.domain.EmployeePubl
import com.workbrain2.ta.publ.api.domain.EntitlementEmployeePolicyPubl
import com.workbrain2.ta.publ.api.domain.EntitlementPolicyPubl
 
class PostProcessorOnProcessCompleteExample extends EmployeeImportScriptable {
 
    @Override
    void process(EIContext context) throws PublException {
    }
     
    @Override
    void onProcessComplete(EIContext context) throws PublException {
        EmployeeCtxPublService ieEmpService = EmployeeImportServiceAccess.getEmployeeCtxPublService()
        EmployeePublService empService = TAPublicServiceAccess.getEmployeePublService()
        EntitlementPublService entitlementService = TAPublicServiceAccess.getEntitlementService()
 
        // employee update
        //t1 - if getEmployeeByName was executed
        EmployeePubl dbEmployee = empService.getEmployeeByName(context.getEmpName())
 
        // t2 - if we can change cache data
        EmployeePubl employee = ieEmpService.getEmployee(context)
        EmployeePubl newEmployee = empService.getEmployeePublBuilder()
                .init(employee)
                .setFlag1("Y")
                .build()
        ieEmpService.setEmployee(context, newEmployee)
 
        // t2- if we can execute policy update
        EntitlementPolicyPubl p2Policy = entitlementService.getPolicyByName("P2")
        EntitlementEmployeePolicyPubl policyPubl = entitlementService.getEntitlementEmployeePolicyBuilder()
                .setEmployeeId(employee.getId())
                .setStartDate(context.getOverrideStartDate())
                .setEndDate(context.getOverrideEndDate())
                .setEnabled(true)
                .setPriority(10)
                .setEntitlementPolicyId(p2Policy.getId())
                .build()
        entitlementService.addEntitlementEmployeePolicy(policyPubl)
    }
 
}