diff --git a/.env.dist b/.env.dist index 80419cc..8f85a52 100644 --- a/.env.dist +++ b/.env.dist @@ -64,6 +64,16 @@ SEMART_OVERTIME_INVALID_MESSAGE="semarthris.invalid_data" SEMART_OVERTIME_UPLOAD_PATH="/overtimes" SEMART_OVERTIME_BENEFIT_CODE="OT" +### PAYROLL CONFIG +SEMART_PAYROLL_BPJS_JHT_CODE_PLUS="JHTP" +SEMART_PAYROLL_BPJS_JHT_CODE_MINUS="JHTM" +SEMART_PAYROLL_BPJS_JKK_CODE_PLUS="JKKP" +SEMART_PAYROLL_BPJS_JKK_CODE_MINUS="JKKM" +SEMART_PAYROLL_BPJS_JP_CODE_PLUS="JPP" +SEMART_PAYROLL_BPJS_JP_CODE_MINUS="JPM" +SEMART_PAYROLL_BPJS_JKM_CODE_PLUS="JKMP" +SEMART_PAYROLL_BPJS_JKM_CODE_MINUS="JKMM" + ###> symfony/framework-bundle ### APP_ENV=dev APP_DEBUG=1 diff --git a/.php_cs.cache b/.php_cs.cache index 0c91824..e39d49a 100644 --- a/.php_cs.cache +++ b/.php_cs.cache @@ -1 +1 @@ -{"php":"7.1.11-1+ubuntu16.04.1+deb.sury.org+1","version":"2.5.0","rules":{"binary_operator_spaces":{"align_double_arrow":false,"align_equals":false},"blank_line_after_opening_tag":true,"blank_line_before_statement":{"statements":["return"]},"braces":{"allow_single_line_closure":true},"cast_spaces":true,"class_definition":{"singleLine":true},"concat_space":{"spacing":"none"},"declare_equal_normalize":true,"function_typehint_space":true,"hash_to_slash_comment":true,"include":true,"lowercase_cast":true,"magic_constant_casing":true,"method_argument_space":true,"method_separation":true,"native_function_casing":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_consecutive_blank_lines":{"tokens":["curly_brace_block","extra","parenthesis_brace_block","square_brace_block","throw","use"]},"no_leading_import_slash":true,"no_leading_namespace_whitespace":true,"no_mixed_echo_print":{"use":"echo"},"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"no_whitespace_in_blank_line":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"php_unit_fqcn_annotation":true,"phpdoc_align":true,"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_empty_return":true,"phpdoc_no_package":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_types":true,"phpdoc_var_without_name":true,"pre_increment":true,"protected_to_private":true,"return_type_declaration":true,"self_accessor":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_class_element_per_statement":true,"single_quote":true,"space_after_semicolon":true,"standardize_not_equals":true,"ternary_operator_spaces":true,"trailing_comma_in_multiline_array":true,"trim_array_spaces":true,"unary_operator_spaces":true,"whitespace_after_comma_in_array":true,"blank_line_after_namespace":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_constants":true,"lowercase_keywords":true,"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":true,"encoding":true,"full_opening_tag":true},"hashes":{"src\/\/EventListener\/SetOldJobMutationSubscriber.php":3534059970,"src\/\/EventListener\/DefaultAddressCheckerSubscriber.php":1928184789,"src\/\/EventListener\/EncryptorSubscriber.php":1708299293,"src\/\/EventListener\/AttendanceCalculatorSubscriber.php":323433821,"src\/\/EventListener\/GenerateUsernameSubscriber.php":1782951807,"src\/\/EventListener\/MarkUsedContractSubscriber.php":2643777028,"src\/\/EventListener\/UpdateJoinDateFromContractSubscriber.php":3634680493,"src\/\/EventListener\/WorkshiftSlicerSubscriber.php":3430075003,"src\/\/EventListener\/AddCareerHistorySubscriber.php":439678796,"src\/\/EventListener\/ChangeBenefitSubscriber.php":3087076234,"src\/\/EventListener\/ExceptionSubscriber.php":1670356155,"src\/\/EventListener\/OvertimeCalculatorSubscriber.php":1037529368,"src\/\/Controller\/Front\/FileController.php":279259700,"src\/\/Controller\/Front\/SecurityController.php":2173625824,"src\/\/Controller\/Admin\/SettingController.php":1580648903,"src\/\/Controller\/Admin\/ReasonController.php":3062329031,"src\/\/Controller\/Admin\/WorkshiftController.php":2727926465,"src\/\/Controller\/Admin\/OvertimeController.php":1080164669,"src\/\/Controller\/Admin\/MutationController.php":2861043515,"src\/\/Controller\/Admin\/UserController.php":3130317256,"src\/\/Controller\/Admin\/ShiftmentController.php":2985210771,"src\/\/Controller\/Admin\/PayrollController.php":3809900790,"src\/\/Controller\/Admin\/SkillController.php":2650609471,"src\/\/Controller\/Admin\/CompanyDepartmentController.php":4024053100,"src\/\/Controller\/Admin\/SalaryComponentController.php":1621168142,"src\/\/Controller\/Admin\/SalaryBenefitController.php":3472593969,"src\/\/Controller\/Admin\/SalaryAllowanceController.php":3190488996,"src\/\/Controller\/Admin\/JobTitleController.php":3433545173,"src\/\/Controller\/Admin\/PlacementController.php":1001123771,"src\/\/Controller\/Admin\/SalaryBenefitHistoryController.php":566794360,"src\/\/Controller\/Admin\/CompanyController.php":2768124574,"src\/\/Controller\/Admin\/ContractController.php":498847797,"src\/\/Controller\/Admin\/DepartmentController.php":3019902221,"src\/\/Controller\/Admin\/AttendanceSummaryController.php":2565512246,"src\/\/Controller\/Admin\/CityController.php":3999778108,"src\/\/Controller\/Admin\/EmployeeController.php":4195538404,"src\/\/Controller\/Admin\/EmployeeAddressController.php":2382932204,"src\/\/Controller\/Admin\/RegionController.php":4287054504,"src\/\/Controller\/Admin\/CompanyAddressController.php":1758900401,"src\/\/Controller\/Admin\/AttendanceController.php":4015807671,"src\/\/Controller\/Admin\/AdminController.php":676174780,"src\/\/Kernel.php":1448909323,"src\/\/Entity\/City.php":3470547359,"src\/\/Entity\/Payroll.php":197973196,"src\/\/Entity\/Contract.php":2670863893,"src\/\/Entity\/SalaryComponent.php":3746488313,"src\/\/Entity\/Company.php":2844626189,"src\/\/Entity\/CompanyAddress.php":2886324777,"src\/\/Entity\/Employee.php":2926666185,"src\/\/Entity\/Mutation.php":343475821,"src\/\/Entity\/SalaryBenefitHistory.php":2837292570,"src\/\/Entity\/SkillGroup.php":2385018905,"src\/\/Entity\/AttendanceSummary.php":3051589825,"src\/\/Entity\/CompanyDepartment.php":203097029,"src\/\/Entity\/Attendance.php":2407282790,"src\/\/Entity\/JobLevel.php":3138926962,"src\/\/Entity\/EducationalInstitute.php":3727646724,"src\/\/Entity\/EducationTitle.php":3534391584,"src\/\/Entity\/Workshift.php":1577960751,"src\/\/Entity\/Region.php":966644440,"src\/\/Entity\/Holiday.php":3687824092,"src\/\/Entity\/EmployeeAddress.php":2006642779,"src\/\/Entity\/CareerHistory.php":751680434,"src\/\/Entity\/Shiftment.php":490959915,"src\/\/Entity\/Department.php":1195672197,"src\/\/Entity\/SalaryBenefit.php":1428318580,"src\/\/Entity\/Skill.php":164409933,"src\/\/Entity\/Overtime.php":1374461733,"src\/\/Entity\/Placement.php":644462183,"src\/\/Entity\/PayrollDetail.php":4233117793,"src\/\/Entity\/JobTitle.php":4008594755,"src\/\/Entity\/Reason.php":4005430871,"src\/\/Entity\/PayrollPeriod.php":1603354854,"src\/\/Entity\/SalaryAllowance.php":704690076,"src\/\/Validator\/UniqueContractValidator.php":1849520524,"src\/\/Validator\/ValidPlacementValidator.php":81742322,"src\/\/Validator\/ValidAttendanceValidator.php":2624675404,"src\/\/Validator\/Constraint\/ValidSalaryBenefit.php":3512361243,"src\/\/Validator\/Constraint\/ValidPlacement.php":3258625907,"src\/\/Validator\/Constraint\/ValidAttendance.php":1960828138,"src\/\/Validator\/Constraint\/UniqueContract.php":1941914108,"src\/\/Validator\/Constraint\/ValidMutation.php":183723922,"src\/\/Validator\/SalaryBenefitValidator.php":1228502222,"src\/\/Validator\/ValidMutationValidator.php":3375705903,"src\/\/Form\/EventListener\/RemoveTagsTextFieldSubscriber.php":1370817759,"src\/\/Form\/EventListener\/DefaultAddressCheckerSubscriber.php":1332664406,"src\/\/Form\/EventListener\/RemoveDepartmentTextFieldSubscriber.php":4208391982,"src\/\/Form\/EventListener\/RemoveBenefitValueFieldSubscriber.php":228442480,"src\/\/Form\/EventListener\/RemoveContractTextFieldSubscriber.php":1804711497,"src\/\/Form\/EventListener\/EncodePasswordSubscriber.php":2950965632,"src\/\/Form\/EventListener\/RemoveCityTextFieldSubscriber.php":2028576169,"src\/\/Form\/EventListener\/FieldRemoverInterface.php":4061021726,"src\/\/Form\/EventListener\/RemoveTypeTextFieldSubscriber.php":1207513733,"src\/\/Form\/EventListener\/RemoveSupervisorTextFieldSubscriber.php":3390203394,"src\/\/Form\/EventListener\/RemoveJobTitleTextFieldSubscriber.php":3599818451,"src\/\/Form\/EventListener\/RemoveComponentTextFieldSubscriber.php":848197302,"src\/\/Form\/EventListener\/RemoveReasonTextFieldSubscriber.php":472839569,"src\/\/Form\/DataTransformer\/CityTransformer.php":2039847072,"src\/\/Form\/DataTransformer\/DepartmentTransformer.php":4242460409,"src\/\/Form\/DataTransformer\/SalaryComponentTransformer.php":3871628841,"src\/\/Form\/DataTransformer\/CompanyTransformer.php":1888804312,"src\/\/Form\/DataTransformer\/JobLevelTransformer.php":4218586535,"src\/\/Form\/DataTransformer\/ReasonTransformer.php":429110745,"src\/\/Form\/DataTransformer\/RoleTransformer.php":887434753,"src\/\/Form\/DataTransformer\/ContractTransformer.php":2661133884,"src\/\/Form\/DataTransformer\/JobTitleTransformer.php":3602232653,"src\/\/Form\/DataTransformer\/TagTransformer.php":2302874656,"src\/\/Form\/DataTransformer\/EmployeeTransformer.php":1448652145,"src\/\/Form\/Manipulator\/FormManipulator.php":2142723508,"src\/\/Form\/Manipulator\/BenefitHistoryManipulator.php":3054586950,"src\/\/Form\/Manipulator\/CompanyDepartmentManipulator.php":3988703641,"src\/\/Form\/Manipulator\/FormManipulatorInterface.php":1788908579,"src\/\/Form\/Manipulator\/MutationManipulator.php":1407127546,"src\/\/Form\/Manipulator\/EmployeeAddressManipulator.php":3057981996,"src\/\/Form\/Manipulator\/ReasonManipulator.php":139951330,"src\/\/Form\/Manipulator\/UserManipulator.php":972779488,"src\/\/Form\/Manipulator\/ContractManipulator.php":3178434940,"src\/\/Form\/Manipulator\/SalaryAllowanceManipulator.php":3690400891,"src\/\/Form\/Manipulator\/PlacementManipulator.php":2159010568,"src\/\/Form\/Manipulator\/AttendanceManipulator.php":258719465,"src\/\/Form\/Manipulator\/SalaryBenefitManipulator.php":3301171615,"src\/\/Form\/Manipulator\/CompanyAddressManipulator.php":2639065801,"src\/\/Form\/Manipulator\/EmployeeManipulator.php":2293603422,"src\/\/Form\/Type\/YearType.php":1740002753,"src\/\/Form\/Type\/MonthType.php":4087425003,"src\/\/Security\/Service\/PasswordSetter.php":988180844,"src\/\/Security\/Voter\/VoterInterface.php":1547345754,"src\/\/Security\/Voter\/SupervisorVoter.php":4103199535,"src\/\/Security\/Voter\/Voter.php":4008915264,"src\/\/Security\/Provider\/UserProvider.php":2896066693,"src\/\/Util\/MonthUtil.php":2743280856,"src\/\/Util\/UuidUtil.php":3536145711,"src\/\/Util\/SettingUtil.php":2485611579,"src\/\/Util\/StringUtil.php":3799755834,"src\/\/Util\/FileUtil.php":2700969645,"src\/\/DependencyInjection\/Compiler\/AttendanceRulePass.php":1736236852,"src\/\/DependencyInjection\/Compiler\/OvertimeCalculatorPass.php":3657134102,"src\/\/DependencyInjection\/Compiler\/PayrollProcessorPass.php":3055610741,"src\/\/DependencyInjection\/Compiler\/ContractableRepositoryFactoryPass.php":2027103362,"src\/\/DependencyInjection\/Compiler\/AddressRepositoryFactoryPass.php":1794125930,"src\/\/Twig\/RegionExtension.php":3650743805,"src\/\/Twig\/SemartViewExtension.php":1256283543,"src\/\/Twig\/SalaryComponentExtension.php":3987173380,"src\/\/Twig\/HolidayExtension.php":542120769,"src\/\/Twig\/AttendanceExtension.php":487041232,"src\/\/Twig\/EmployeeExtension.php":176837584,"src\/\/Twig\/OvertimeExtension.php":32832426,"src\/\/Component\/ValidateTypeInterface.php":2827066499,"src\/\/Component\/Reason\/Service\/ValidateReasonType.php":95062149,"src\/\/Component\/Reason\/Repository\/ReasonRepositoryInterface.php":3337260048,"src\/\/Component\/Reason\/ReasonType.php":3790029597,"src\/\/Component\/Reason\/Model\/ReasonInterface.php":2638266091,"src\/\/Component\/Encryptor\/Encryptor.php":1044028712,"src\/\/Component\/Encryptor\/KeyLoader.php":1817443762,"src\/\/Component\/Address\/Service\/DefaultAddressChecker.php":2181058560,"src\/\/Component\/Address\/Repository\/RegionRepositoryInterface.php":3385854523,"src\/\/Component\/Address\/Repository\/AddressRepositoryInterface.php":4010381836,"src\/\/Component\/Address\/Repository\/CityRepositoryInterface.php":1644943638,"src\/\/Component\/Address\/Repository\/AddressRepositoryFactory.php":638191201,"src\/\/Component\/Address\/Model\/RegionInterface.php":4204621421,"src\/\/Component\/Address\/Model\/AddressInterface.php":2312306326,"src\/\/Component\/Address\/Model\/CityInterface.php":3687659968,"src\/\/Component\/Address\/Model\/Addressable.php":1610523389,"src\/\/Component\/Employee\/MaritalStatus.php":3220817544,"src\/\/Component\/Employee\/Gender.php":595480709,"src\/\/Component\/Employee\/IdentityType.php":3516276235,"src\/\/Component\/Employee\/Service\/ValidateFamilyRelation.php":2203159250,"src\/\/Component\/Employee\/Service\/SupervisorChecker.php":1715228563,"src\/\/Component\/Employee\/Service\/ValidateGender.php":4024566353,"src\/\/Component\/Employee\/Service\/ValidateIdentityType.php":3512581174,"src\/\/Component\/Employee\/Service\/ValidateMaritalStatus.php":3608852230,"src\/\/Component\/Employee\/Service\/ValidateContractType.php":3957086834,"src\/\/Component\/Employee\/ContractType.php":2662812615,"src\/\/Component\/Employee\/FamilyRelation.php":3454758272,"src\/\/Component\/Employee\/Repository\/EmployeeRepositoryInterface.php":3305941582,"src\/\/Component\/Employee\/Model\/EmployeeFamilyInterface.php":2342236900,"src\/\/Component\/Employee\/Model\/EmployeeInterface.php":2715416057,"src\/\/Component\/Employee\/Model\/EmployeeAddressInterface.php":825216477,"src\/\/Component\/Employee\/Model\/ResignInterface.php":238060004,"src\/\/Component\/Employee\/Model\/Superviseable.php":2198427536,"src\/\/Component\/Education\/Model\/EducationTitleInterface.php":3648820530,"src\/\/Component\/Education\/Model\/EducationalInstituteInterface.php":291057918,"src\/\/Component\/Skill\/SkillLevel.php":88195917,"src\/\/Component\/Skill\/Model\/SkillGroupInterface.php":3684617572,"src\/\/Component\/Skill\/Model\/SkillInterface.php":3756636639,"src\/\/Component\/Skill\/Model\/EmployeeSkillInterface.php":2748483223,"src\/\/Component\/Salary\/Service\/WorkdayCalculator.php":3991603637,"src\/\/Component\/Salary\/Service\/ValidateStateType.php":1119207725,"src\/\/Component\/Salary\/Service\/ChangeBenefit.php":733414205,"src\/\/Component\/Salary\/Service\/PayrollProcessor.php":1317332569,"src\/\/Component\/Salary\/Service\/ValidateBenefit.php":3428454480,"src\/\/Component\/Salary\/StateType.php":3446390665,"src\/\/Component\/Salary\/Repository\/AllowanceRepositoryInterface.php":2886476591,"src\/\/Component\/Salary\/Repository\/BenefitRepositoryInterface.php":79947978,"src\/\/Component\/Salary\/Repository\/AttendanceSummaryRepositoryInterface.php":1473058902,"src\/\/Component\/Salary\/Repository\/PayrollPeriodRepositoryInterface.php":3661906615,"src\/\/Component\/Salary\/Repository\/PayrollRepositoryInterface.php":2088769829,"src\/\/Component\/Salary\/Repository\/ComponentRepositoryInterface.php":3740457343,"src\/\/Component\/Salary\/Processor\/AttendanceProcessor.php":1210088656,"src\/\/Component\/Salary\/Processor\/SalaryProcessor.php":4275214048,"src\/\/Component\/Salary\/Processor\/InvalidPayrollPeriodException.php":3149829045,"src\/\/Component\/Salary\/Processor\/PayrollProcessor.php":3179552609,"src\/\/Component\/Salary\/Processor\/ProcessorInterface.php":597503834,"src\/\/Component\/Salary\/Model\/ComponentInterface.php":3734705589,"src\/\/Component\/Salary\/Model\/PayrollDetailInterface.php":3448838348,"src\/\/Component\/Salary\/Model\/BenefitInterface.php":386953187,"src\/\/Component\/Salary\/Model\/BenefitHistoryInterface.php":1521835277,"src\/\/Component\/Salary\/Model\/AttendanceSummaryInterface.php":3346022441,"src\/\/Component\/Salary\/Model\/PayrollInterface.php":2742706463,"src\/\/Component\/Salary\/Model\/AllowanceInterface.php":1014132661,"src\/\/Component\/Salary\/Model\/PayrollPeriodInterface.php":2141761316,"src\/\/Component\/Attendance\/Service\/AttendanceProcessor.php":1740362898,"src\/\/Component\/Attendance\/Service\/InvalidAttendancePeriodException.php":2434941971,"src\/\/Component\/Attendance\/Service\/WorkshiftSlicer.php":2085942626,"src\/\/Component\/Attendance\/Service\/AttendanceCalculator.php":3465561681,"src\/\/Component\/Attendance\/Service\/ValidateAttendance.php":2491906944,"src\/\/Component\/Attendance\/Service\/AttendanceImporter.php":2188076674,"src\/\/Component\/Attendance\/Rule\/RuleInterface.php":2951322740,"src\/\/Component\/Attendance\/Rule\/AttendanceRule.php":1029303934,"src\/\/Component\/Attendance\/Rule\/NotQualifiedException.php":3459627808,"src\/\/Component\/Attendance\/Repository\/WorkshiftRepositoryInterface.php":2561891971,"src\/\/Component\/Attendance\/Repository\/AttendanceRepositoryInterface.php":3518587366,"src\/\/Component\/Attendance\/Repository\/ShiftmentRepositoryInterface.php":1461233663,"src\/\/Component\/Attendance\/Model\/WorkshiftInterface.php":4109042580,"src\/\/Component\/Attendance\/Model\/ShiftmentInterface.php":468037,"src\/\/Component\/Attendance\/Model\/AttendanceInterface.php":3579575663,"src\/\/Component\/Contract\/Service\/CheckContract.php":1449212684,"src\/\/Component\/Contract\/Service\/ValidateContractType.php":2793717168,"src\/\/Component\/Contract\/ContractType.php":1993648319,"src\/\/Component\/Contract\/Repository\/ContractableRepositoryFactory.php":1191360055,"src\/\/Component\/Contract\/Repository\/ContractableRepositoryInterface.php":862104321,"src\/\/Component\/Contract\/Repository\/ContractRepositoryInterface.php":4096330423,"src\/\/Component\/Contract\/Model\/Contractable.php":2428487144,"src\/\/Component\/Contract\/Model\/ContractInterface.php":2602204188,"src\/\/Component\/Holiday\/Repository\/HolidayRepositoryInterface.php":691761510,"src\/\/Component\/Holiday\/Model\/HolidayInterface.php":312507229,"src\/\/Component\/Company\/Repository\/CompanyRepositoryInterface.php":109504246,"src\/\/Component\/Company\/Repository\/DepartmentRepositoryInterface.php":689630421,"src\/\/Component\/Company\/Model\/CompanyDepartmentInterface.php":34168812,"src\/\/Component\/Company\/Model\/CompanyAddressInterface.php":1854897086,"src\/\/Component\/Company\/Model\/CompanyInterface.php":2336991122,"src\/\/Component\/Company\/Model\/DepartmentInterface.php":1511184946,"src\/\/Component\/Tax\/Service\/ValidateIndonesiaTaxType.php":3141539804,"src\/\/Component\/Tax\/IndonesianTaxType.php":14304424,"src\/\/Component\/Overtime\/Service\/OvertimeImporter.php":1066924194,"src\/\/Component\/Overtime\/Service\/OvertimeChecker.php":81271433,"src\/\/Component\/Overtime\/Service\/OvertimeCalculator.php":285252720,"src\/\/Component\/Overtime\/Service\/OvertimeProcessor.php":2426627318,"src\/\/Component\/Overtime\/Calculator\/OvertimeCalculatorInterface.php":3227435123,"src\/\/Component\/Overtime\/Calculator\/WorkdayCalculator.php":2165461970,"src\/\/Component\/Overtime\/Calculator\/HolidayCalculator.php":556525765,"src\/\/Component\/Overtime\/Calculator\/OvertimeCalculator.php":1783958199,"src\/\/Component\/Overtime\/Calculator\/CalculatorException.php":2031563676,"src\/\/Component\/Overtime\/Calculator\/Calculator.php":193115182,"src\/\/Component\/Overtime\/Repository\/OvertimeRepositoryInterface.php":3149608376,"src\/\/Component\/Overtime\/Model\/OvertimeInterface.php":3140682671,"src\/\/Component\/Job\/Service\/SetOldJobMutation.php":354895799,"src\/\/Component\/Job\/Service\/AddCareerHistory.php":2533551129,"src\/\/Component\/Job\/Service\/ValidatePlacement.php":1717906482,"src\/\/Component\/Job\/Service\/ValidateMutation.php":2288086679,"src\/\/Component\/Job\/Service\/SetEmployeeNewJob.php":2790862556,"src\/\/Component\/Job\/Service\/ValidateMutationType.php":1705015616,"src\/\/Component\/Job\/MutationType.php":3332988000,"src\/\/Component\/Job\/Repository\/JobTitleRepositoryInterface.php":4001169046,"src\/\/Component\/Job\/Repository\/CareerHistoryRepositoryInterface.php":1221695453,"src\/\/Component\/Job\/Repository\/JobLevelRepositoryInterface.php":3938350094,"src\/\/Component\/Job\/Model\/JobTitleInterface.php":386721280,"src\/\/Component\/Job\/Model\/JobLevelInterface.php":4039479749,"src\/\/Component\/Job\/Model\/MutationInterface.php":1121147940,"src\/\/Component\/Job\/Model\/CareerHistoryable.php":138115308,"src\/\/Component\/Job\/Model\/CareerHistoryInterface.php":1174328587,"src\/\/Component\/Job\/Model\/PlacementInterface.php":2085141379,"src\/\/Component\/User\/Service\/UsernameGenerator.php":3190848920,"src\/\/Component\/User\/Repository\/UserRepositoryInterface.php":1059785399,"src\/\/Component\/User\/Model\/UserInterface.php":1047243171,"src\/\/Component\/Setting\/Setting.php":455419963,"src\/\/Configuration\/Encrypt.php":3921722812,"src\/\/DataFixtures\/ORM\/CityFixtures.php":3919612599,"src\/\/DataFixtures\/ORM\/EducationTitleFixtures.php":1764397739,"src\/\/DataFixtures\/ORM\/SalaryComponentFixtures.php":2544958593,"src\/\/DataFixtures\/ORM\/ContractFixtures.php":2200208186,"src\/\/DataFixtures\/ORM\/JobTitleFixtures.php":3891189247,"src\/\/DataFixtures\/ORM\/RegionFixtures.php":1823461902,"src\/\/DataFixtures\/ORM\/CompanyDepartmentFixtures.php":938889575,"src\/\/DataFixtures\/ORM\/DepartmentFixtures.php":2448933511,"src\/\/DataFixtures\/ORM\/JobLevelFixtures.php":3284898469,"src\/\/DataFixtures\/ORM\/ReasonFixtures.php":2112430166,"src\/\/DataFixtures\/ORM\/EducationalInstituteFixtures.php":1058653084,"src\/\/DataFixtures\/ORM\/EmployeeFixtures.php":1465524373,"src\/\/DataFixtures\/ORM\/HolidayFixtures.php":1734296396,"src\/\/DataFixtures\/ORM\/Fixture.php":1679860865,"src\/\/DataFixtures\/ORM\/ShiftmentFixtures.php":744434788,"src\/\/DataFixtures\/ORM\/CompanyFixtures.php":1119880385,"src\/\/Repository\/AttendanceSummaryRepository.php":2359756705,"src\/\/Repository\/DepartmentRepository.php":2934813929,"src\/\/Repository\/SkillRepository.php":2110584449,"src\/\/Repository\/WorkshiftRepository.php":3153300587,"src\/\/Repository\/ContractRepository.php":1827342321,"src\/\/Repository\/PlacementRepository.php":2895102530,"src\/\/Repository\/SalaryAllowanceRepository.php":3564125072,"src\/\/Repository\/HolidayRepository.php":1442591743,"src\/\/Repository\/ShiftmentRepository.php":1795369487,"src\/\/Repository\/EmployeeRepository.php":1430617465,"src\/\/Repository\/SalaryBenefitRepository.php":2845267326,"src\/\/Repository\/JobLevelRepository.php":2857135429,"src\/\/Repository\/ContractableRepositoryTrait.php":4178907418,"src\/\/Repository\/PayrollRepository.php":2188956126,"src\/\/Repository\/JobTitleRepository.php":4294781631,"src\/\/Repository\/OvertimeRepository.php":737841289,"src\/\/Repository\/Repository.php":2250219750,"src\/\/Repository\/SalaryComponentRepository.php":2655528799,"src\/\/Repository\/CompanyRepository.php":368206736,"src\/\/Repository\/CareerHistoryRepository.php":3107592319,"src\/\/Repository\/ReasonRepository.php":2063609090,"src\/\/Repository\/AttendanceRepository.php":3795155916,"src\/\/Repository\/SalaryBenefitHistoryRepository.php":463817917,"src\/\/Repository\/CityRepository.php":4006160502,"src\/\/Repository\/PayrollPeriodRepository.php":2055047548,"src\/\/Repository\/AddressRepositoryTrait.php":4247645368,"src\/\/Repository\/RegionRepository.php":1155050326,"tests\/\/Component\/Address\/Service\/DefaultAddressCheckerTest.php":2038314332,"tests\/\/Component\/Address\/Repository\/InvalidAddressRepositoryStub.php":3717592755,"tests\/\/Component\/Address\/Repository\/AdressRepositoryFactoryTest.php":3740459050,"tests\/\/Component\/Address\/Repository\/ValidAddressRepositoryStub.php":3432198978,"tests\/\/Component\/Attendance\/Service\/AttendanceCalculatorTest.php":1221891080,"tests\/\/Component\/Attendance\/Service\/ValidateAttendanceTest.php":595114436,"tests\/\/Component\/Attendance\/Service\/AttendanceProcessorTest.php":147270485,"tests\/\/Component\/Attendance\/Service\/AttendanceStub.php":2167313682,"tests\/\/Component\/Attendance\/Service\/AttendanceImporterTest.php":2429709646,"tests\/\/Component\/Attendance\/Rule\/AttendanceRuleTest.php":1743080945,"tests\/\/Component\/Attendance\/Rule\/ValidAttendanceRuleStub.php":4237964932,"tests\/\/Component\/Attendance\/Rule\/InvalidAttendanceRuleStub.php":2419646570}} \ No newline at end of file +{"php":"7.1.11-1+ubuntu16.04.1+deb.sury.org+1","version":"2.5.0","rules":{"binary_operator_spaces":{"align_double_arrow":false,"align_equals":false},"blank_line_after_opening_tag":true,"blank_line_before_statement":{"statements":["return"]},"braces":{"allow_single_line_closure":true},"cast_spaces":true,"class_definition":{"singleLine":true},"concat_space":{"spacing":"none"},"declare_equal_normalize":true,"function_typehint_space":true,"hash_to_slash_comment":true,"include":true,"lowercase_cast":true,"magic_constant_casing":true,"method_argument_space":true,"method_separation":true,"native_function_casing":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_consecutive_blank_lines":{"tokens":["curly_brace_block","extra","parenthesis_brace_block","square_brace_block","throw","use"]},"no_leading_import_slash":true,"no_leading_namespace_whitespace":true,"no_mixed_echo_print":{"use":"echo"},"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"no_whitespace_in_blank_line":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"php_unit_fqcn_annotation":true,"phpdoc_align":true,"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_empty_return":true,"phpdoc_no_package":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_types":true,"phpdoc_var_without_name":true,"pre_increment":true,"protected_to_private":true,"return_type_declaration":true,"self_accessor":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_class_element_per_statement":true,"single_quote":true,"space_after_semicolon":true,"standardize_not_equals":true,"ternary_operator_spaces":true,"trailing_comma_in_multiline_array":true,"trim_array_spaces":true,"unary_operator_spaces":true,"whitespace_after_comma_in_array":true,"blank_line_after_namespace":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_constants":true,"lowercase_keywords":true,"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":true,"encoding":true,"full_opening_tag":true},"hashes":{"src\/\/EventListener\/SetOldJobMutationSubscriber.php":3534059970,"src\/\/EventListener\/DefaultAddressCheckerSubscriber.php":1928184789,"src\/\/EventListener\/EncryptorSubscriber.php":1708299293,"src\/\/EventListener\/AttendanceCalculatorSubscriber.php":323433821,"src\/\/EventListener\/GenerateUsernameSubscriber.php":1782951807,"src\/\/EventListener\/MarkUsedContractSubscriber.php":2643777028,"src\/\/EventListener\/UpdateJoinDateFromContractSubscriber.php":3634680493,"src\/\/EventListener\/WorkshiftSlicerSubscriber.php":3430075003,"src\/\/EventListener\/AddCareerHistorySubscriber.php":439678796,"src\/\/EventListener\/ChangeBenefitSubscriber.php":3087076234,"src\/\/EventListener\/ExceptionSubscriber.php":4008139316,"src\/\/EventListener\/OvertimeCalculatorSubscriber.php":1037529368,"src\/\/Controller\/Front\/FileController.php":279259700,"src\/\/Controller\/Front\/SecurityController.php":2173625824,"src\/\/Controller\/Admin\/SettingController.php":1580648903,"src\/\/Controller\/Admin\/ReasonController.php":3062329031,"src\/\/Controller\/Admin\/WorkshiftController.php":2727926465,"src\/\/Controller\/Admin\/OvertimeController.php":1080164669,"src\/\/Controller\/Admin\/MutationController.php":2861043515,"src\/\/Controller\/Admin\/UserController.php":3130317256,"src\/\/Controller\/Admin\/ShiftmentController.php":2985210771,"src\/\/Controller\/Admin\/PayrollController.php":3809900790,"src\/\/Controller\/Admin\/SkillController.php":2650609471,"src\/\/Controller\/Admin\/CompanyDepartmentController.php":4024053100,"src\/\/Controller\/Admin\/SalaryComponentController.php":1621168142,"src\/\/Controller\/Admin\/SalaryBenefitController.php":3472593969,"src\/\/Controller\/Admin\/SalaryAllowanceController.php":3190488996,"src\/\/Controller\/Admin\/JobTitleController.php":3433545173,"src\/\/Controller\/Admin\/PlacementController.php":1001123771,"src\/\/Controller\/Admin\/SalaryBenefitHistoryController.php":566794360,"src\/\/Controller\/Admin\/CompanyController.php":2768124574,"src\/\/Controller\/Admin\/ContractController.php":498847797,"src\/\/Controller\/Admin\/DepartmentController.php":3019902221,"src\/\/Controller\/Admin\/AttendanceSummaryController.php":2565512246,"src\/\/Controller\/Admin\/CityController.php":3999778108,"src\/\/Controller\/Admin\/EmployeeController.php":4195538404,"src\/\/Controller\/Admin\/EmployeeAddressController.php":2382932204,"src\/\/Controller\/Admin\/RegionController.php":4287054504,"src\/\/Controller\/Admin\/CompanyAddressController.php":1758900401,"src\/\/Controller\/Admin\/AttendanceController.php":4015807671,"src\/\/Controller\/Admin\/AdminController.php":676174780,"src\/\/Kernel.php":1448909323,"src\/\/Entity\/City.php":3470547359,"src\/\/Entity\/Payroll.php":197973196,"src\/\/Entity\/Contract.php":2670863893,"src\/\/Entity\/SalaryComponent.php":3746488313,"src\/\/Entity\/Company.php":2844626189,"src\/\/Entity\/CompanyAddress.php":2886324777,"src\/\/Entity\/Employee.php":3894581315,"src\/\/Entity\/Mutation.php":343475821,"src\/\/Entity\/SalaryBenefitHistory.php":2837292570,"src\/\/Entity\/SkillGroup.php":2385018905,"src\/\/Entity\/AttendanceSummary.php":3051589825,"src\/\/Entity\/CompanyDepartment.php":203097029,"src\/\/Entity\/Attendance.php":2407282790,"src\/\/Entity\/JobLevel.php":3138926962,"src\/\/Entity\/EducationalInstitute.php":3727646724,"src\/\/Entity\/EducationTitle.php":3534391584,"src\/\/Entity\/Workshift.php":1577960751,"src\/\/Entity\/Region.php":966644440,"src\/\/Entity\/Holiday.php":3687824092,"src\/\/Entity\/EmployeeAddress.php":2006642779,"src\/\/Entity\/CareerHistory.php":751680434,"src\/\/Entity\/Shiftment.php":490959915,"src\/\/Entity\/Department.php":1195672197,"src\/\/Entity\/SalaryBenefit.php":1428318580,"src\/\/Entity\/Skill.php":164409933,"src\/\/Entity\/Overtime.php":1374461733,"src\/\/Entity\/Placement.php":644462183,"src\/\/Entity\/PayrollDetail.php":4233117793,"src\/\/Entity\/JobTitle.php":4008594755,"src\/\/Entity\/Reason.php":4005430871,"src\/\/Entity\/PayrollPeriod.php":1603354854,"src\/\/Entity\/SalaryAllowance.php":704690076,"src\/\/Validator\/UniqueContractValidator.php":1849520524,"src\/\/Validator\/ValidPlacementValidator.php":81742322,"src\/\/Validator\/ValidAttendanceValidator.php":2624675404,"src\/\/Validator\/Constraint\/ValidSalaryBenefit.php":3512361243,"src\/\/Validator\/Constraint\/ValidPlacement.php":3258625907,"src\/\/Validator\/Constraint\/ValidAttendance.php":1960828138,"src\/\/Validator\/Constraint\/UniqueContract.php":1941914108,"src\/\/Validator\/Constraint\/ValidMutation.php":183723922,"src\/\/Validator\/SalaryBenefitValidator.php":1228502222,"src\/\/Validator\/ValidMutationValidator.php":3375705903,"src\/\/Form\/EventListener\/RemoveTagsTextFieldSubscriber.php":1370817759,"src\/\/Form\/EventListener\/DefaultAddressCheckerSubscriber.php":1332664406,"src\/\/Form\/EventListener\/RemoveDepartmentTextFieldSubscriber.php":4208391982,"src\/\/Form\/EventListener\/RemoveBenefitValueFieldSubscriber.php":228442480,"src\/\/Form\/EventListener\/RemoveContractTextFieldSubscriber.php":1804711497,"src\/\/Form\/EventListener\/EncodePasswordSubscriber.php":2950965632,"src\/\/Form\/EventListener\/RemoveCityTextFieldSubscriber.php":2028576169,"src\/\/Form\/EventListener\/FieldRemoverInterface.php":4061021726,"src\/\/Form\/EventListener\/RemoveTypeTextFieldSubscriber.php":1207513733,"src\/\/Form\/EventListener\/RemoveSupervisorTextFieldSubscriber.php":3390203394,"src\/\/Form\/EventListener\/RemoveJobTitleTextFieldSubscriber.php":3599818451,"src\/\/Form\/EventListener\/RemoveComponentTextFieldSubscriber.php":848197302,"src\/\/Form\/EventListener\/RemoveReasonTextFieldSubscriber.php":472839569,"src\/\/Form\/DataTransformer\/CityTransformer.php":2039847072,"src\/\/Form\/DataTransformer\/DepartmentTransformer.php":4242460409,"src\/\/Form\/DataTransformer\/SalaryComponentTransformer.php":3871628841,"src\/\/Form\/DataTransformer\/CompanyTransformer.php":1888804312,"src\/\/Form\/DataTransformer\/JobLevelTransformer.php":4218586535,"src\/\/Form\/DataTransformer\/ReasonTransformer.php":429110745,"src\/\/Form\/DataTransformer\/RoleTransformer.php":887434753,"src\/\/Form\/DataTransformer\/ContractTransformer.php":2661133884,"src\/\/Form\/DataTransformer\/JobTitleTransformer.php":3602232653,"src\/\/Form\/DataTransformer\/TagTransformer.php":2302874656,"src\/\/Form\/DataTransformer\/EmployeeTransformer.php":1448652145,"src\/\/Form\/Manipulator\/FormManipulator.php":2142723508,"src\/\/Form\/Manipulator\/BenefitHistoryManipulator.php":3054586950,"src\/\/Form\/Manipulator\/CompanyDepartmentManipulator.php":3988703641,"src\/\/Form\/Manipulator\/FormManipulatorInterface.php":1788908579,"src\/\/Form\/Manipulator\/MutationManipulator.php":1407127546,"src\/\/Form\/Manipulator\/EmployeeAddressManipulator.php":3057981996,"src\/\/Form\/Manipulator\/ReasonManipulator.php":139951330,"src\/\/Form\/Manipulator\/UserManipulator.php":972779488,"src\/\/Form\/Manipulator\/ContractManipulator.php":3178434940,"src\/\/Form\/Manipulator\/SalaryAllowanceManipulator.php":3690400891,"src\/\/Form\/Manipulator\/PlacementManipulator.php":2159010568,"src\/\/Form\/Manipulator\/AttendanceManipulator.php":258719465,"src\/\/Form\/Manipulator\/SalaryBenefitManipulator.php":3301171615,"src\/\/Form\/Manipulator\/CompanyAddressManipulator.php":2639065801,"src\/\/Form\/Manipulator\/EmployeeManipulator.php":2293603422,"src\/\/Form\/Type\/YearType.php":1740002753,"src\/\/Form\/Type\/MonthType.php":4087425003,"src\/\/Security\/Service\/PasswordSetter.php":988180844,"src\/\/Security\/Voter\/VoterInterface.php":1547345754,"src\/\/Security\/Voter\/SupervisorVoter.php":4103199535,"src\/\/Security\/Voter\/Voter.php":4008915264,"src\/\/Security\/Provider\/UserProvider.php":2896066693,"src\/\/Util\/MonthUtil.php":2743280856,"src\/\/Util\/UuidUtil.php":3536145711,"src\/\/Util\/SettingUtil.php":2485611579,"src\/\/Util\/StringUtil.php":3799755834,"src\/\/Util\/FileUtil.php":2700969645,"src\/\/DependencyInjection\/Compiler\/AttendanceRulePass.php":1736236852,"src\/\/DependencyInjection\/Compiler\/OvertimeCalculatorPass.php":3657134102,"src\/\/DependencyInjection\/Compiler\/PayrollProcessorPass.php":3055610741,"src\/\/DependencyInjection\/Compiler\/ContractableRepositoryFactoryPass.php":2027103362,"src\/\/DependencyInjection\/Compiler\/AddressRepositoryFactoryPass.php":1794125930,"src\/\/Twig\/RegionExtension.php":3650743805,"src\/\/Twig\/SemartViewExtension.php":1256283543,"src\/\/Twig\/SalaryComponentExtension.php":3987173380,"src\/\/Twig\/HolidayExtension.php":542120769,"src\/\/Twig\/AttendanceExtension.php":487041232,"src\/\/Twig\/EmployeeExtension.php":176837584,"src\/\/Twig\/OvertimeExtension.php":32832426,"src\/\/Component\/ValidateTypeInterface.php":2827066499,"src\/\/Component\/Reason\/Service\/ValidateReasonType.php":95062149,"src\/\/Component\/Reason\/Repository\/ReasonRepositoryInterface.php":3337260048,"src\/\/Component\/Reason\/ReasonType.php":3790029597,"src\/\/Component\/Reason\/Model\/ReasonInterface.php":2638266091,"src\/\/Component\/Encryptor\/Encryptor.php":1044028712,"src\/\/Component\/Encryptor\/KeyLoader.php":1817443762,"src\/\/Component\/Address\/Service\/DefaultAddressChecker.php":2181058560,"src\/\/Component\/Address\/Repository\/RegionRepositoryInterface.php":3385854523,"src\/\/Component\/Address\/Repository\/AddressRepositoryInterface.php":4010381836,"src\/\/Component\/Address\/Repository\/CityRepositoryInterface.php":1644943638,"src\/\/Component\/Address\/Repository\/AddressRepositoryFactory.php":638191201,"src\/\/Component\/Address\/Model\/RegionInterface.php":4204621421,"src\/\/Component\/Address\/Model\/AddressInterface.php":2312306326,"src\/\/Component\/Address\/Model\/CityInterface.php":3687659968,"src\/\/Component\/Address\/Model\/Addressable.php":1610523389,"src\/\/Component\/Employee\/MaritalStatus.php":3220817544,"src\/\/Component\/Employee\/Gender.php":595480709,"src\/\/Component\/Employee\/IdentityType.php":3516276235,"src\/\/Component\/Employee\/Service\/ValidateFamilyRelation.php":2203159250,"src\/\/Component\/Employee\/Service\/SupervisorChecker.php":1715228563,"src\/\/Component\/Employee\/Service\/ValidateGender.php":4024566353,"src\/\/Component\/Employee\/Service\/ValidateIdentityType.php":3512581174,"src\/\/Component\/Employee\/Service\/ValidateMaritalStatus.php":3608852230,"src\/\/Component\/Employee\/Service\/ValidateContractType.php":3957086834,"src\/\/Component\/Employee\/ContractType.php":2662812615,"src\/\/Component\/Employee\/FamilyRelation.php":3454758272,"src\/\/Component\/Employee\/Repository\/EmployeeRepositoryInterface.php":3305941582,"src\/\/Component\/Employee\/Model\/EmployeeFamilyInterface.php":2342236900,"src\/\/Component\/Employee\/Model\/EmployeeInterface.php":3992342154,"src\/\/Component\/Employee\/Model\/EmployeeAddressInterface.php":825216477,"src\/\/Component\/Employee\/Model\/ResignInterface.php":238060004,"src\/\/Component\/Employee\/Model\/Superviseable.php":2198427536,"src\/\/Component\/Education\/Model\/EducationTitleInterface.php":3648820530,"src\/\/Component\/Education\/Model\/EducationalInstituteInterface.php":291057918,"src\/\/Component\/Skill\/SkillLevel.php":88195917,"src\/\/Component\/Skill\/Model\/SkillGroupInterface.php":3684617572,"src\/\/Component\/Skill\/Model\/SkillInterface.php":3756636639,"src\/\/Component\/Skill\/Model\/EmployeeSkillInterface.php":2748483223,"src\/\/Component\/Salary\/Service\/WorkdayCalculator.php":3991603637,"src\/\/Component\/Salary\/Service\/ValidateStateType.php":1119207725,"src\/\/Component\/Salary\/Service\/ChangeBenefit.php":733414205,"src\/\/Component\/Salary\/Service\/PayrollProcessor.php":1174308427,"src\/\/Component\/Salary\/Service\/ValidateBenefit.php":3428454480,"src\/\/Component\/Salary\/StateType.php":3446390665,"src\/\/Component\/Salary\/Repository\/AllowanceRepositoryInterface.php":2886476591,"src\/\/Component\/Salary\/Repository\/BenefitRepositoryInterface.php":79947978,"src\/\/Component\/Salary\/Repository\/AttendanceSummaryRepositoryInterface.php":1473058902,"src\/\/Component\/Salary\/Repository\/PayrollPeriodRepositoryInterface.php":3661906615,"src\/\/Component\/Salary\/Repository\/PayrollRepositoryInterface.php":2088769829,"src\/\/Component\/Salary\/Repository\/ComponentRepositoryInterface.php":3740457343,"src\/\/Component\/Salary\/Processor\/AttendanceProcessor.php":142971730,"src\/\/Component\/Salary\/Processor\/SalaryProcessor.php":1190901529,"src\/\/Component\/Salary\/Processor\/InvalidPayrollPeriodException.php":3149829045,"src\/\/Component\/Salary\/Processor\/PayrollProcessor.php":3681822420,"src\/\/Component\/Salary\/Processor\/ProcessorInterface.php":597503834,"src\/\/Component\/Salary\/Model\/ComponentInterface.php":3734705589,"src\/\/Component\/Salary\/Model\/PayrollDetailInterface.php":3448838348,"src\/\/Component\/Salary\/Model\/BenefitInterface.php":386953187,"src\/\/Component\/Salary\/Model\/BenefitHistoryInterface.php":1521835277,"src\/\/Component\/Salary\/Model\/AttendanceSummaryInterface.php":3346022441,"src\/\/Component\/Salary\/Model\/PayrollInterface.php":2742706463,"src\/\/Component\/Salary\/Model\/AllowanceInterface.php":1014132661,"src\/\/Component\/Salary\/Model\/PayrollPeriodInterface.php":2141761316,"src\/\/Component\/Attendance\/Service\/AttendanceProcessor.php":1740362898,"src\/\/Component\/Attendance\/Service\/InvalidAttendancePeriodException.php":2434941971,"src\/\/Component\/Attendance\/Service\/WorkshiftSlicer.php":2085942626,"src\/\/Component\/Attendance\/Service\/AttendanceCalculator.php":3465561681,"src\/\/Component\/Attendance\/Service\/ValidateAttendance.php":2491906944,"src\/\/Component\/Attendance\/Service\/AttendanceImporter.php":2188076674,"src\/\/Component\/Attendance\/Rule\/RuleInterface.php":2951322740,"src\/\/Component\/Attendance\/Rule\/AttendanceRule.php":1029303934,"src\/\/Component\/Attendance\/Rule\/NotQualifiedException.php":3459627808,"src\/\/Component\/Attendance\/Repository\/WorkshiftRepositoryInterface.php":2561891971,"src\/\/Component\/Attendance\/Repository\/AttendanceRepositoryInterface.php":3518587366,"src\/\/Component\/Attendance\/Repository\/ShiftmentRepositoryInterface.php":1461233663,"src\/\/Component\/Attendance\/Model\/WorkshiftInterface.php":4109042580,"src\/\/Component\/Attendance\/Model\/ShiftmentInterface.php":468037,"src\/\/Component\/Attendance\/Model\/AttendanceInterface.php":3579575663,"src\/\/Component\/Contract\/Service\/CheckContract.php":1449212684,"src\/\/Component\/Contract\/Service\/ValidateContractType.php":2793717168,"src\/\/Component\/Contract\/ContractType.php":1993648319,"src\/\/Component\/Contract\/Repository\/ContractableRepositoryFactory.php":1191360055,"src\/\/Component\/Contract\/Repository\/ContractableRepositoryInterface.php":862104321,"src\/\/Component\/Contract\/Repository\/ContractRepositoryInterface.php":4096330423,"src\/\/Component\/Contract\/Model\/Contractable.php":2428487144,"src\/\/Component\/Contract\/Model\/ContractInterface.php":2602204188,"src\/\/Component\/Holiday\/Repository\/HolidayRepositoryInterface.php":691761510,"src\/\/Component\/Holiday\/Model\/HolidayInterface.php":312507229,"src\/\/Component\/Company\/Repository\/CompanyRepositoryInterface.php":109504246,"src\/\/Component\/Company\/Repository\/DepartmentRepositoryInterface.php":689630421,"src\/\/Component\/Company\/Model\/CompanyDepartmentInterface.php":34168812,"src\/\/Component\/Company\/Model\/CompanyAddressInterface.php":1854897086,"src\/\/Component\/Company\/Model\/CompanyInterface.php":2336991122,"src\/\/Component\/Company\/Model\/DepartmentInterface.php":1511184946,"src\/\/Component\/Tax\/Service\/ValidateIndonesiaTaxType.php":3141539804,"src\/\/Component\/Tax\/IndonesianTaxType.php":14304424,"src\/\/Component\/Overtime\/Service\/OvertimeImporter.php":1066924194,"src\/\/Component\/Overtime\/Service\/OvertimeChecker.php":81271433,"src\/\/Component\/Overtime\/Service\/OvertimeCalculator.php":285252720,"src\/\/Component\/Overtime\/Service\/OvertimeProcessor.php":2426627318,"src\/\/Component\/Overtime\/Calculator\/OvertimeCalculatorInterface.php":3227435123,"src\/\/Component\/Overtime\/Calculator\/WorkdayCalculator.php":2165461970,"src\/\/Component\/Overtime\/Calculator\/HolidayCalculator.php":556525765,"src\/\/Component\/Overtime\/Calculator\/OvertimeCalculator.php":1783958199,"src\/\/Component\/Overtime\/Calculator\/CalculatorException.php":2031563676,"src\/\/Component\/Overtime\/Calculator\/Calculator.php":193115182,"src\/\/Component\/Overtime\/Repository\/OvertimeRepositoryInterface.php":3149608376,"src\/\/Component\/Overtime\/Model\/OvertimeInterface.php":3140682671,"src\/\/Component\/Job\/Service\/SetOldJobMutation.php":354895799,"src\/\/Component\/Job\/Service\/AddCareerHistory.php":2533551129,"src\/\/Component\/Job\/Service\/ValidatePlacement.php":1717906482,"src\/\/Component\/Job\/Service\/ValidateMutation.php":2288086679,"src\/\/Component\/Job\/Service\/SetEmployeeNewJob.php":2790862556,"src\/\/Component\/Job\/Service\/ValidateMutationType.php":1705015616,"src\/\/Component\/Job\/MutationType.php":3332988000,"src\/\/Component\/Job\/Repository\/JobTitleRepositoryInterface.php":4001169046,"src\/\/Component\/Job\/Repository\/CareerHistoryRepositoryInterface.php":1221695453,"src\/\/Component\/Job\/Repository\/JobLevelRepositoryInterface.php":3938350094,"src\/\/Component\/Job\/Model\/JobTitleInterface.php":386721280,"src\/\/Component\/Job\/Model\/JobLevelInterface.php":4039479749,"src\/\/Component\/Job\/Model\/MutationInterface.php":1121147940,"src\/\/Component\/Job\/Model\/CareerHistoryable.php":138115308,"src\/\/Component\/Job\/Model\/CareerHistoryInterface.php":1174328587,"src\/\/Component\/Job\/Model\/PlacementInterface.php":2085141379,"src\/\/Component\/User\/Service\/UsernameGenerator.php":3190848920,"src\/\/Component\/User\/Repository\/UserRepositoryInterface.php":1059785399,"src\/\/Component\/User\/Model\/UserInterface.php":1047243171,"src\/\/Component\/Setting\/Setting.php":455419963,"src\/\/Configuration\/Encrypt.php":3921722812,"src\/\/DataFixtures\/ORM\/CityFixtures.php":3919612599,"src\/\/DataFixtures\/ORM\/EducationTitleFixtures.php":1764397739,"src\/\/DataFixtures\/ORM\/SalaryComponentFixtures.php":2544958593,"src\/\/DataFixtures\/ORM\/ContractFixtures.php":2200208186,"src\/\/DataFixtures\/ORM\/JobTitleFixtures.php":3891189247,"src\/\/DataFixtures\/ORM\/RegionFixtures.php":1823461902,"src\/\/DataFixtures\/ORM\/CompanyDepartmentFixtures.php":938889575,"src\/\/DataFixtures\/ORM\/DepartmentFixtures.php":2448933511,"src\/\/DataFixtures\/ORM\/JobLevelFixtures.php":3284898469,"src\/\/DataFixtures\/ORM\/ReasonFixtures.php":2112430166,"src\/\/DataFixtures\/ORM\/EducationalInstituteFixtures.php":1058653084,"src\/\/DataFixtures\/ORM\/EmployeeFixtures.php":1465524373,"src\/\/DataFixtures\/ORM\/HolidayFixtures.php":1734296396,"src\/\/DataFixtures\/ORM\/Fixture.php":1679860865,"src\/\/DataFixtures\/ORM\/ShiftmentFixtures.php":744434788,"src\/\/DataFixtures\/ORM\/CompanyFixtures.php":1119880385,"src\/\/Repository\/AttendanceSummaryRepository.php":2359756705,"src\/\/Repository\/DepartmentRepository.php":2934813929,"src\/\/Repository\/SkillRepository.php":2110584449,"src\/\/Repository\/WorkshiftRepository.php":3153300587,"src\/\/Repository\/ContractRepository.php":1827342321,"src\/\/Repository\/PlacementRepository.php":2895102530,"src\/\/Repository\/SalaryAllowanceRepository.php":3564125072,"src\/\/Repository\/HolidayRepository.php":1442591743,"src\/\/Repository\/ShiftmentRepository.php":1795369487,"src\/\/Repository\/EmployeeRepository.php":1430617465,"src\/\/Repository\/SalaryBenefitRepository.php":2845267326,"src\/\/Repository\/JobLevelRepository.php":2857135429,"src\/\/Repository\/ContractableRepositoryTrait.php":4178907418,"src\/\/Repository\/PayrollRepository.php":2188956126,"src\/\/Repository\/JobTitleRepository.php":4294781631,"src\/\/Repository\/OvertimeRepository.php":737841289,"src\/\/Repository\/Repository.php":2250219750,"src\/\/Repository\/SalaryComponentRepository.php":2655528799,"src\/\/Repository\/CompanyRepository.php":368206736,"src\/\/Repository\/CareerHistoryRepository.php":3107592319,"src\/\/Repository\/ReasonRepository.php":2063609090,"src\/\/Repository\/AttendanceRepository.php":3795155916,"src\/\/Repository\/SalaryBenefitHistoryRepository.php":463817917,"src\/\/Repository\/CityRepository.php":4006160502,"src\/\/Repository\/PayrollPeriodRepository.php":2055047548,"src\/\/Repository\/AddressRepositoryTrait.php":4247645368,"src\/\/Repository\/RegionRepository.php":1155050326,"tests\/\/Component\/Address\/Service\/DefaultAddressCheckerTest.php":2038314332,"tests\/\/Component\/Address\/Repository\/InvalidAddressRepositoryStub.php":3717592755,"tests\/\/Component\/Address\/Repository\/AdressRepositoryFactoryTest.php":3740459050,"tests\/\/Component\/Address\/Repository\/ValidAddressRepositoryStub.php":3432198978,"tests\/\/Component\/Attendance\/Service\/AttendanceCalculatorTest.php":1221891080,"tests\/\/Component\/Attendance\/Service\/ValidateAttendanceTest.php":595114436,"tests\/\/Component\/Attendance\/Service\/AttendanceProcessorTest.php":147270485,"tests\/\/Component\/Attendance\/Service\/AttendanceStub.php":2167313682,"tests\/\/Component\/Attendance\/Service\/AttendanceImporterTest.php":2429709646,"tests\/\/Component\/Attendance\/Rule\/AttendanceRuleTest.php":1743080945,"tests\/\/Component\/Attendance\/Rule\/ValidAttendanceRuleStub.php":4237964932,"tests\/\/Component\/Attendance\/Rule\/InvalidAttendanceRuleStub.php":2419646570,"src\/\/Component\/Bpjs\/RiskRatio.php":796651893,"src\/\/Component\/Bpjs\/Model\/BpjsInterface.php":986948059,"src\/\/Component\/Employee\/RiskRatio.php":2843870198,"src\/\/Component\/Salary\/Processor\/BpjsProcessor.php":2180893528,"src\/\/Component\/Salary\/Processor\/SalaryProcessorInterface.php":1117650979,"src\/\/Component\/Salary\/Processor\/PayrollProcessorInterface.php":574617184,"src\/\/Component\/Employee\/Service\/RiskRatioConverter.php":3755033493,"src\/\/Component\/Salary\/Processor\/OvertimeProcessor.php":1714131811}} \ No newline at end of file diff --git a/TODO.md b/TODO.md index 40d4cc4..29eafdb 100644 --- a/TODO.md +++ b/TODO.md @@ -83,6 +83,8 @@ - [ ] BPJS Kesehatan - [ ] BPJS Ketenagakerjaan - [ ] PPH21 +- [ ] Pecah Salary Processor dan Tambahkan Result Cache pada Fixed Salary +- [ ] Mini Accounting untuk Mencatat Pengeluaran Perusahaan untuk Gaji - [ ] Prevent Remove Mutation When Job History is Exist - [ ] Prevent Remove Placement When Job History is Exist - [ ] Created and Updated Log in List diff --git a/data/employee.yaml b/data/employee.yaml index 6971e74..e6f01be 100644 --- a/data/employee.yaml +++ b/data/employee.yaml @@ -1 +1 @@ -- { joinDate: 'date:17-03-2017', employeeStatus: 'p', contract: 'ref:contract#emp1', company: 'ref:company#ssi', department: 'ref:department#itmis', jobLevel: 'ref:job_level#stf', jobTitle: 'ref:job_title#stfit', code: 'MIS000001', fullName: 'Muhamad Surya Iksanudin', gender: 'm', , regionOfBirth: 'ref:region#dki', cityOfBirth: 'ref:city#jakut', dateOfBirth: 'date:01-01-1987', identityNumber: '331012321', identityType: 'k', maritalStatus: 'm', email: 'admin@ssi.com', taxGroup: 'k2', haveOvertimeBenefit: true } +- { joinDate: 'date:17-03-2017', employeeStatus: 'p', contract: 'ref:contract#emp1', company: 'ref:company#ssi', department: 'ref:department#itmis', jobLevel: 'ref:job_level#stf', jobTitle: 'ref:job_title#stfit', code: 'MIS000001', fullName: 'Muhamad Surya Iksanudin', gender: 'm', , regionOfBirth: 'ref:region#dki', cityOfBirth: 'ref:city#jakut', dateOfBirth: 'date:01-01-1987', identityNumber: '331012321', identityType: 'k', maritalStatus: 'm', email: 'admin@ssi.com', taxGroup: 'k2', haveOvertimeBenefit: true, riskRatio: 'vlr' } diff --git a/src/Component/Bpjs/Model/BpjsInterface.php b/src/Component/Bpjs/Model/BpjsInterface.php deleted file mode 100644 index e5e369d..0000000 --- a/src/Component/Bpjs/Model/BpjsInterface.php +++ /dev/null @@ -1,10 +0,0 @@ - - */ -interface BpjsInterface -{ -} diff --git a/src/Component/Employee/Model/EmployeeInterface.php b/src/Component/Employee/Model/EmployeeInterface.php index b27e884..fbab3e8 100644 --- a/src/Component/Employee/Model/EmployeeInterface.php +++ b/src/Component/Employee/Model/EmployeeInterface.php @@ -175,6 +175,11 @@ public function getTaxGroup(): string; */ public function isHaveOvertimeBenefit(): bool; + /** + * @return string + */ + public function getRiskRatio(): ? string; + /** * @return bool */ diff --git a/src/Component/Employee/RiskRatio.php b/src/Component/Employee/RiskRatio.php new file mode 100644 index 0000000..233517f --- /dev/null +++ b/src/Component/Employee/RiskRatio.php @@ -0,0 +1,21 @@ + + */ +class RiskRatio +{ + const RISK_VERY_HIGH = 'vhr'; + const RISK_HIGH = 'hr'; + const RISK_NORMAL = 'nr'; + const RISK_LOW = 'lr'; + const RISK_VERY_LOW = 'vlr'; + + const RISK_VERY_HIGH_VALUE = 0.0174; + const RISK_HIGH_VALUE = 0.0127; + const RISK_NORMAL_VALUE = 0.0089; + const RISK_LOW_VALUE = 0.0054; + const RISK_VERY_LOW_VALUE = 0.0024; +} diff --git a/src/Component/Employee/Service/RiskRatioConverter.php b/src/Component/Employee/Service/RiskRatioConverter.php new file mode 100644 index 0000000..b88c306 --- /dev/null +++ b/src/Component/Employee/Service/RiskRatioConverter.php @@ -0,0 +1,33 @@ + + */ +class RiskRatioConverter +{ + /** + * @param string $riskRatioCode + * + * @return float + */ + public static function getValue(string $riskRatioCode): float + { + $map = [ + RiskRatio::RISK_VERY_LOW => RiskRatio::RISK_VERY_LOW_VALUE, + RiskRatio::RISK_LOW => RiskRatio::RISK_LOW_VALUE, + RiskRatio::RISK_NORMAL => RiskRatio::RISK_NORMAL_VALUE, + RiskRatio::RISK_HIGH => RiskRatio::RISK_HIGH_VALUE, + RiskRatio::RISK_VERY_HIGH => RiskRatio::RISK_VERY_HIGH_VALUE, + ]; + + if (!in_array($riskRatioCode, $map)) { + return RiskRatio::RISK_VERY_LOW_VALUE; + } + + return $map[$riskRatioCode]; + } +} diff --git a/src/Component/Salary/Processor/AttendanceProcessor.php b/src/Component/Salary/Processor/AttendanceProcessor.php index 176e0d7..177d00d 100644 --- a/src/Component/Salary/Processor/AttendanceProcessor.php +++ b/src/Component/Salary/Processor/AttendanceProcessor.php @@ -13,7 +13,7 @@ /** * @author Muhamad Surya Iksanudin */ -class AttendanceProcessor implements ProcessorInterface +class AttendanceProcessor implements PayrollProcessorInterface { const CUT_OFF_LAST_DATE = -1; diff --git a/src/Component/Salary/Processor/BpjsProcessor.php b/src/Component/Salary/Processor/BpjsProcessor.php new file mode 100644 index 0000000..f6288c4 --- /dev/null +++ b/src/Component/Salary/Processor/BpjsProcessor.php @@ -0,0 +1,60 @@ + + */ +class BpjsProcessor implements SalaryProcessorInterface +{ + /** + * @param PayrollInterface $payroll + * @param EmployeeInterface $employee + * @param \DateTimeInterface $date + * @param float $fixedSalary + * + * @return float + */ + public function process(PayrollInterface $payroll, EmployeeInterface $employee, \DateTimeInterface $date, float $fixedSalary): float + { + $riskRatioValue = RiskRatioConverter::getValue($employee->getRiskRatio()); + + return $fixedSalary; + } + + /** + * @param float $riskRatioValue + * @param float $fixedSalary + */ + private function processJkk(float $riskRatioValue, float $fixedSalary): void + { + } + + /** + * @param float $riskRatioValue + * @param float $fixedSalary + */ + private function processJkm(float $riskRatioValue, float $fixedSalary): void + { + } + + /** + * @param float $riskRatioValue + * @param float $fixedSalary + */ + private function processJp(float $riskRatioValue, float $fixedSalary): void + { + } + + /** + * @param float $riskRatioValue + * @param float $fixedSalary + */ + private function processJht(float $riskRatioValue, float $fixedSalary): void + { + } +} diff --git a/src/Component/Salary/Processor/OvertimeProcessor.php b/src/Component/Salary/Processor/OvertimeProcessor.php new file mode 100644 index 0000000..a332ab4 --- /dev/null +++ b/src/Component/Salary/Processor/OvertimeProcessor.php @@ -0,0 +1,25 @@ + + */ +class OvertimeProcessor implements SalaryProcessorInterface +{ + /** + * @param PayrollInterface $payroll + * @param EmployeeInterface $employee + * @param \DateTimeInterface $date + * @param float $fixedSalary + * + * @return float + */ + public function process(PayrollInterface $payroll, EmployeeInterface $employee, \DateTimeInterface $date, float $fixedSalary): float + { + return $fixedSalary; + } +} diff --git a/src/Component/Salary/Processor/PayrollProcessor.php b/src/Component/Salary/Processor/PayrollProcessor.php index d988dda..7b36aae 100644 --- a/src/Component/Salary/Processor/PayrollProcessor.php +++ b/src/Component/Salary/Processor/PayrollProcessor.php @@ -7,12 +7,12 @@ /** * @author Muhamad Surya Iksanudin */ -class PayrollProcessor implements ProcessorInterface +class PayrollProcessor implements PayrollProcessorInterface { const SEMARTHRIS_PAYROLL_PROCESSOR = 'semarthris.payroll_processor'; /** - * @var ProcessorInterface[] + * @var PayrollProcessorInterface[] */ private $processors; @@ -39,9 +39,9 @@ public function process(EmployeeInterface $employee, \DateTimeInterface $date): } /** - * @param ProcessorInterface $processor + * @param PayrollProcessorInterface $processor */ - private function addProcessor(ProcessorInterface $processor): void + private function addProcessor(PayrollProcessorInterface $processor): void { $this->processors[] = $processor; } diff --git a/src/Component/Salary/Processor/ProcessorInterface.php b/src/Component/Salary/Processor/PayrollProcessorInterface.php similarity index 92% rename from src/Component/Salary/Processor/ProcessorInterface.php rename to src/Component/Salary/Processor/PayrollProcessorInterface.php index 89bc430..02b27d4 100644 --- a/src/Component/Salary/Processor/ProcessorInterface.php +++ b/src/Component/Salary/Processor/PayrollProcessorInterface.php @@ -7,7 +7,7 @@ /** * @author Muhamad Surya Iksanudin */ -interface ProcessorInterface +interface PayrollProcessorInterface { /** * @param EmployeeInterface $employee diff --git a/src/Component/Salary/Processor/SalaryProcessor.php b/src/Component/Salary/Processor/SalaryProcessor.php index bd5d1b1..81ed423 100644 --- a/src/Component/Salary/Processor/SalaryProcessor.php +++ b/src/Component/Salary/Processor/SalaryProcessor.php @@ -17,8 +17,10 @@ /** * @author Muhamad Surya Iksanudin */ -class SalaryProcessor implements ProcessorInterface +class SalaryProcessor implements PayrollProcessorInterface { + const SEMARTHRIS_PAYROLL_PROCESSOR = 'semarthris.salary_processor'; + /** * @var Encryptor */ diff --git a/src/Component/Salary/Processor/SalaryProcessorInterface.php b/src/Component/Salary/Processor/SalaryProcessorInterface.php new file mode 100644 index 0000000..f77b6c3 --- /dev/null +++ b/src/Component/Salary/Processor/SalaryProcessorInterface.php @@ -0,0 +1,22 @@ + + */ +interface SalaryProcessorInterface +{ + /** + * @param PayrollInterface $payroll + * @param EmployeeInterface $employee + * @param \DateTimeInterface $date + * @param float $fixedSalary + * + * @return float + */ + public function process(PayrollInterface $payroll, EmployeeInterface $employee, \DateTimeInterface $date, float $fixedSalary): float; +} diff --git a/src/Component/Salary/Service/PayrollProcessor.php b/src/Component/Salary/Service/PayrollProcessor.php index f150e7b..57417f2 100644 --- a/src/Component/Salary/Service/PayrollProcessor.php +++ b/src/Component/Salary/Service/PayrollProcessor.php @@ -4,7 +4,7 @@ use KejawenLab\Application\SemartHris\Component\Employee\Model\EmployeeInterface; use KejawenLab\Application\SemartHris\Component\Salary\Processor\InvalidPayrollPeriodException; -use KejawenLab\Application\SemartHris\Component\Salary\Processor\ProcessorInterface; +use KejawenLab\Application\SemartHris\Component\Salary\Processor\PayrollProcessorInterface; use KejawenLab\Application\SemartHris\Component\Salary\Repository\PayrollPeriodRepositoryInterface; /** @@ -13,7 +13,7 @@ class PayrollProcessor { /** - * @var ProcessorInterface + * @var PayrollProcessorInterface */ private $payrollProcessor; @@ -23,10 +23,10 @@ class PayrollProcessor private $payrollPeriodRepository; /** - * @param ProcessorInterface $processor + * @param PayrollProcessorInterface $processor * @param PayrollPeriodRepositoryInterface $repository */ - public function __construct(ProcessorInterface $processor, PayrollPeriodRepositoryInterface $repository) + public function __construct(PayrollProcessorInterface $processor, PayrollPeriodRepositoryInterface $repository) { $this->payrollProcessor = $processor; $this->payrollPeriodRepository = $repository; diff --git a/src/Entity/Employee.php b/src/Entity/Employee.php index 2f0d79f..248bbcb 100644 --- a/src/Entity/Employee.php +++ b/src/Entity/Employee.php @@ -17,6 +17,7 @@ use KejawenLab\Application\SemartHris\Component\Contract\Model\Contractable; use KejawenLab\Application\SemartHris\Component\Contract\Model\ContractInterface; use KejawenLab\Application\SemartHris\Component\Employee\Model\Superviseable; +use KejawenLab\Application\SemartHris\Component\Employee\RiskRatio; use KejawenLab\Application\SemartHris\Component\Employee\Service\ValidateContractType; use KejawenLab\Application\SemartHris\Component\Employee\Service\ValidateGender; use KejawenLab\Application\SemartHris\Component\Employee\Service\ValidateIdentityType; @@ -338,6 +339,15 @@ class Employee implements Superviseable, Contractable, UserInterface, \Serializa */ private $haveOvertimeBenefit; + /** + * @Groups({"read", "write"}) + * + * @ORM\Column(type="string", length=3) + * + * @var string + */ + private $riskRatio; + /** * @Groups({"read"}) * @@ -842,6 +852,22 @@ public function setHaveOvertimeBenefit(bool $haveOvertimeBenefit): void $this->haveOvertimeBenefit = $haveOvertimeBenefit; } + /** + * @return string + */ + public function getRiskRatio(): string + { + return $this->riskRatio ?? RiskRatio::RISK_VERY_LOW; + } + + /** + * @param string $riskRatio + */ + public function setRiskRatio(string $riskRatio): void + { + $this->riskRatio = $riskRatio; + } + /** * @return string */ diff --git a/src/EventListener/ExceptionSubscriber.php b/src/EventListener/ExceptionSubscriber.php index ee689de..be28eae 100644 --- a/src/EventListener/ExceptionSubscriber.php +++ b/src/EventListener/ExceptionSubscriber.php @@ -37,28 +37,28 @@ public function __construct(SerializerInterface $serializer, LoggerInterface $lo */ public function onKernelException(GetResponseForExceptionEvent $event) { -// $exception = $event->getException(); -// if ($exception instanceof HttpExceptionInterface) { -// return; -// } -// -// if ($event->getRequest()->isXmlHttpRequest()) { -// return; -// } -// -// $this->logger->error(sprintf('Message: %s => Trace: %s', $exception->getMessage(), $exception->getTraceAsString())); -// -// $response = new Response(); -// $response->setContent($this->serializer->serialize([ -// 'file' => $exception->getFile(), -// 'message' => $exception->getMessage(), -// 'line' => $exception->getLine(), -// 'trace' => $exception->getTraceAsString(), -// ], 'json')); -// $response->setStatusCode(Response::HTTP_NOT_ACCEPTABLE); -// -// $event->setResponse($response); -// $event->stopPropagation(); + $exception = $event->getException(); + if ($exception instanceof HttpExceptionInterface) { + return; + } + + if ($event->getRequest()->isXmlHttpRequest()) { + return; + } + + $this->logger->error(sprintf('Message: %s => Trace: %s', $exception->getMessage(), $exception->getTraceAsString())); + + $response = new Response(); + $response->setContent($this->serializer->serialize([ + 'file' => $exception->getFile(), + 'message' => $exception->getMessage(), + 'line' => $exception->getLine(), + 'trace' => $exception->getTraceAsString(), + ], 'json')); + $response->setStatusCode(Response::HTTP_NOT_ACCEPTABLE); + + $event->setResponse($response); + $event->stopPropagation(); } /**