TimeTrex Community Edition v16.2.0

This commit is contained in:
2022-12-13 07:10:06 +01:00
commit 472f000c1b
6810 changed files with 2636142 additions and 0 deletions
.htaccess3rd_party_credits.txtINSTALL.txtLICENSEREADME.txtUPGRADE.txt
api
classes
.htaccess
ChequeForms
GovernmentForms
GovernmentForms.class.phpGovernmentForms_Base.class.php
country
ca
grid.class.php
us
examples
adodb
adodb-active-record.inc.phpadodb-active-recordx.inc.phpadodb-csvlib.inc.phpadodb-datadict.inc.phpadodb-error.inc.phpadodb-errorhandler.inc.phpadodb-errorpear.inc.phpadodb-exceptions.inc.phpadodb-iterator.inc.phpadodb-lib.inc.phpadodb-loadbalancer.inc.phpadodb-memcache.lib.inc.phpadodb-pager.inc.phpadodb-pear.inc.phpadodb-perf.inc.phpadodb-php4.inc.phpadodb-time.inc.phpadodb-xmlschema.inc.phpadodb-xmlschema03.inc.phpadodb.inc.php
contrib
datadict
drivers
lang
license.txt
pear
perf
pivottable.inc.phprsfilter.inc.phpserver.phptips_portable_sql.htmtoexport.inc.phptohtml.inc.phptute.htmxmlschema.dtdxmlschema03.dtd
xsl
bitmask
bounce_handler
misc
modules
accrual
api
accrual
client
company
core
department
hierarchy
holiday
import
kpi
message
notification
pay_stub
pay_stub_amendment
payperiod
policy
punch
qualification
report
request
roe
schedule
system_job_queue
ui_kit
unauthenticated
users
company
core
Authentication.class.phpAuthenticationTrustedDeviceFactory.class.phpAuthenticationTrustedDeviceListFactory.class.phpAuthorizationFactory.class.phpAuthorizationListFactory.class.phpBackgroundProcess.class.phpBreadCrumb.class.phpCalculatePayStub.class.phpCalculatePolicy.class.phpCurrencyFactory.class.phpCurrencyListFactory.class.phpCurrencyRateFactory.class.phpCurrencyRateListFactory.class.phpCustomFieldFactory.class.phpCustomFieldListFactory.class.phpDebug.class.phpDependencyTree.class.phpEnvironment.class.phpException.class.phpExceptionFactory.class.phpExceptionListFactory.class.phpFactory.class.phpFactoryListIterator.class.phpFastTree.class.phpFormVariables.class.phpGeneralLedgerExport.class.phpGroup.class.phpIdempotentRequestFactory.class.phpIdempotentRequestListFactory.class.phpLockFile.class.phpLogDetailFactory.class.phpLogDetailListFactory.class.phpLogFactory.class.phpLogListFactory.class.phpLogRotate.class.phpMisc.class.phpOption.class.phpOtherFieldFactory.class.phpOtherFieldListFactory.class.phpPager.class.phpPermission.class.phpPermissionControlFactory.class.phpPermissionControlListFactory.class.phpPermissionFactory.class.phpPermissionListFactory.class.phpPermissionUserFactory.class.phpPermissionUserListFactory.class.phpProfiler.class.phpProgressBar.class.phpPurgeDatabase.class.phpRateLimit.class.phpRedirect.class.phpSerializer.class.phpSharedMemory.class.phpSort.class.phpStationBranchFactory.class.phpStationBranchListFactory.class.phpStationDepartmentFactory.class.phpStationDepartmentListFactory.class.phpStationExcludeUserFactory.class.phpStationExcludeUserListFactory.class.phpStationFactory.class.phpStationIncludeUserFactory.class.phpStationIncludeUserListFactory.class.phpStationListFactory.class.phpStationUserFactory.class.phpStationUserGroupFactory.class.phpStationUserGroupListFactory.class.phpStationUserListFactory.class.phpSystemJobQueue.class.phpSystemJobQueueFactory.class.phpSystemJobQueueListFactory.class.phpSystemSettingFactory.class.phpSystemSettingListFactory.class.phpTTDate.class.phpTTLDAP.class.phpTTLicense.class.phpTTLog.class.phpTTMail.class.phpTTPDF.class.phpTTPassword.class.phpTTTree.class.phpTTUUID.class.phpTTi18n.class.phpURLBuilder.class.phpUnitConvert.class.phpUserDateFactory.class.phpUserDateListFactory.class.phpUserDateTotalFactory.class.phpUserDateTotalListFactory.class.phpValidator.class.phpWage.class.php
cron
department
geoip
help
hierarchy
holiday
import
install
Install.class.phpInstallSchema.class.phpInstallSchema_1000A.class.phpInstallSchema_1001A.class.phpInstallSchema_1002A.class.phpInstallSchema_1003A.class.phpInstallSchema_1004A.class.phpInstallSchema_1005A.class.phpInstallSchema_1006A.class.phpInstallSchema_1007A.class.phpInstallSchema_1008A.class.phpInstallSchema_1009A.class.phpInstallSchema_1010A.class.phpInstallSchema_1011A.class.phpInstallSchema_1012A.class.phpInstallSchema_1013A.class.phpInstallSchema_1014A.class.phpInstallSchema_1015A.class.phpInstallSchema_1016A.class.phpInstallSchema_1017A.class.phpInstallSchema_1018A.class.phpInstallSchema_1019A.class.phpInstallSchema_1020A.class.phpInstallSchema_1021A.class.phpInstallSchema_1022A.class.phpInstallSchema_1023A.class.phpInstallSchema_1024A.class.phpInstallSchema_1025A.class.phpInstallSchema_1026A.class.phpInstallSchema_1027A.class.phpInstallSchema_1028A.class.phpInstallSchema_1029A.class.phpInstallSchema_1030A.class.phpInstallSchema_1031A.class.phpInstallSchema_1032A.class.phpInstallSchema_1033A.class.phpInstallSchema_1034A.class.phpInstallSchema_1035A.class.phpInstallSchema_1036A.class.phpInstallSchema_1037A.class.phpInstallSchema_1038A.class.phpInstallSchema_1039A.class.phpInstallSchema_1040A.class.phpInstallSchema_1041A.class.phpInstallSchema_1042A.class.phpInstallSchema_1043A.class.phpInstallSchema_1044A.class.phpInstallSchema_1045A.class.phpInstallSchema_1046A.class.phpInstallSchema_1047A.class.phpInstallSchema_1049A.class.phpInstallSchema_1050A.class.phpInstallSchema_1051A.class.phpInstallSchema_1052A.class.phpInstallSchema_1053A.class.phpInstallSchema_1054A.class.phpInstallSchema_1055A.class.phpInstallSchema_1056A.class.phpInstallSchema_1058A.class.phpInstallSchema_1059A.class.phpInstallSchema_1060A.class.phpInstallSchema_1061A.class.phpInstallSchema_1062A.class.phpInstallSchema_1063A.class.phpInstallSchema_1064A.class.phpInstallSchema_1065A.class.phpInstallSchema_1066A.class.phpInstallSchema_1067A.class.phpInstallSchema_1068A.class.phpInstallSchema_1069A.class.phpInstallSchema_1070A.class.phpInstallSchema_1071A.class.phpInstallSchema_1090A.class.phpInstallSchema_1093A.class.phpInstallSchema_1100A.class.phpInstallSchema_1101A.class.phpInstallSchema_1102A.class.phpInstallSchema_1103A.class.phpInstallSchema_1104A.class.phpInstallSchema_1105A.class.phpInstallSchema_1106A.class.phpInstallSchema_1107A.class.phpInstallSchema_1108A.class.phpInstallSchema_1109A.class.phpInstallSchema_1110A.class.phpInstallSchema_1111A.class.phpInstallSchema_1112A.class.phpInstallSchema_1113A.class.phpInstallSchema_1114A.class.phpInstallSchema_1117A.class.phpInstallSchema_1118A.class.phpInstallSchema_1119A.class.phpInstallSchema_1121A.class.phpInstallSchema_1122A.class.phpInstallSchema_1123A.class.phpInstallSchema_1124A.class.phpInstallSchema_1125A.class.phpInstallSchema_1126A.class.phpInstallSchema_1127A.class.phpInstallSchema_1128A.class.phpInstallSchema_1129A.class.phpInstallSchema_1131A.class.phpInstallSchema_1132A.class.phpInstallSchema_1133A.class.phpInstallSchema_1134A.class.phpInstallSchema_1135A.class.phpInstallSchema_1136A.class.phpInstallSchema_1137A.class.phpInstallSchema_1138A.class.phpInstallSchema_1139A.class.phpInstallSchema_Base.class.php
sql
kpi
message
notification
other
pay_stub
pay_stub_amendment
payperiod
plugins
policy
AbsencePolicyFactory.class.phpAbsencePolicyListFactory.class.phpAccrualPolicyAccountFactory.class.phpAccrualPolicyAccountListFactory.class.phpAccrualPolicyFactory.class.phpAccrualPolicyListFactory.class.phpAccrualPolicyMilestoneFactory.class.phpAccrualPolicyMilestoneListFactory.class.phpBreakPolicyFactory.class.phpBreakPolicyListFactory.class.phpContributingPayCodePolicyFactory.class.phpContributingPayCodePolicyListFactory.class.phpContributingShiftPolicyFactory.class.phpContributingShiftPolicyListFactory.class.phpExceptionPolicyControlFactory.class.phpExceptionPolicyControlListFactory.class.phpExceptionPolicyFactory.class.phpExceptionPolicyListFactory.class.phpHolidayPolicyFactory.class.phpHolidayPolicyListFactory.class.phpHolidayPolicyRecurringHolidayFactory.class.phpHolidayPolicyRecurringHolidayListFactory.class.phpMealPolicyFactory.class.phpMealPolicyListFactory.class.phpOverTimePolicyFactory.class.phpOverTimePolicyListFactory.class.phpPayCodeFactory.class.phpPayCodeListFactory.class.phpPayFormulaPolicyFactory.class.phpPayFormulaPolicyListFactory.class.phpPolicyGroupAccrualPolicyFactory.class.phpPolicyGroupAccrualPolicyListFactory.class.phpPolicyGroupFactory.class.phpPolicyGroupListFactory.class.phpPolicyGroupOverTimePolicyFactory.class.phpPolicyGroupOverTimePolicyListFactory.class.phpPolicyGroupPremiumPolicyFactory.class.phpPolicyGroupPremiumPolicyListFactory.class.phpPolicyGroupRoundIntervalPolicyFactory.class.phpPolicyGroupRoundIntervalPolicyListFactory.class.phpPolicyGroupUserFactory.class.phpPolicyGroupUserListFactory.class.phpPremiumPolicyBranchFactory.class.phpPremiumPolicyBranchListFactory.class.phpPremiumPolicyDepartmentFactory.class.phpPremiumPolicyDepartmentListFactory.class.phpPremiumPolicyFactory.class.phpPremiumPolicyListFactory.class.phpRegularTimePolicyFactory.class.phpRegularTimePolicyListFactory.class.phpRoundIntervalPolicyFactory.class.phpRoundIntervalPolicyListFactory.class.phpSchedulePolicyFactory.class.phpSchedulePolicyListFactory.class.php
punch
qualification
report
request
schedule
soap
ui_kit
users
other
payroll_deduction
pear
upload
composer.jsoncomposer.lockfavicon.icofiles.deletefiles.sha1
includes
index.phpinstall_cron.sh
interface
Login.phpblank.html
flex
html5
.jshintrcConfirmEmail.phpDownForMaintenance.phpIndexController.js
client
components
dist
BaseViewController.bundle.jsBaseWindowController.bundle.jsDocumentSubViewController.bundle.jsJobApplicantEducationSubViewController.bundle.jsJobApplicantEmploymentSubViewController.bundle.jsJobApplicantLanguageSubViewController.bundle.jsJobApplicantLicenseSubViewController.bundle.jsJobApplicantLocationSubViewController.bundle.jsJobApplicantMembershipSubViewController.bundle.jsJobApplicantReferenceSubViewController.bundle.jsJobApplicantSkillSubViewController.bundle.jsJobApplicantSubBaseViewController.bundle.jsJobApplicationSubViewController.bundle.js_css.main_ui.template.html_css.portal.template.html_css.quick_punch.template.html_js.main_ui.template.html_js.portal.template.html_js.quick_punch.template.htmlattendance-accrual-AccrualViewController.bundle.jsattendance-accrual_balance-AccrualBalanceViewController.bundle.jsattendance-exceptions-ExceptionViewController.bundle.jsattendance-in_out-InOutViewController.bundle.jsattendance-job-JobGroupViewController.bundle.jsattendance-job-JobViewController.bundle.jsattendance-job_item-JobItemGroupViewController.bundle.jsattendance-job_item-JobItemViewController.bundle.jsattendance-job_item_amendment-JobItemAmendmentViewController.bundle.jsattendance-map-MapViewController.bundle.jsattendance-map-MapViewController.cssattendance-punch_tag-PunchTagGroupViewController.bundle.jsattendance-punch_tag-PunchTagViewController.bundle.jsattendance-punches-PunchesViewController.bundle.jsattendance-recurring_schedule_control-RecurringScheduleControlViewController.bundle.jsattendance-recurring_schedule_template_control-RecurringScheduleTemplateControlViewController.bundle.jsattendance-schedule-ScheduleShiftViewController.bundle.jsattendance-schedule-ScheduleViewController.bundle.jsattendance-schedule-ScheduleViewController.cssattendance-timesheet-TimeSheetViewController.bundle.jsattendance-timesheet-TimeSheetViewController.cssattendance-timesheet-UserDateTotalParentViewController.bundle.jsattendance-timesheet-UserDateTotalViewController.bundle.jsawesomebox-AComboBox.bundle.jsawesomebox-ADropDown.bundle.jsawesomebox-ALayoutCache.bundle.jsawesomebox-ASearchInput.bundle.jscheckbox-TCheckbox.bundle.jscolor-picker-TColorPicker.bundle.jscolumn_editor-ColumnEditor.bundle.jscombobox-TComboBox.bundle.jscommon-AuthorizationHistoryCommon.bundle.jscommon-BaseTreeViewController.bundle.jscommon-EmbeddedMessageCommon.bundle.jscommon-RequestViewCommonController.bundle.jscompany-branch-BranchViewController.bundle.jscompany-companies-CompaniesViewController.bundle.jscompany-company-CompanyViewController.bundle.jscompany-currency-CurrencyRateViewController.bundle.jscompany-currency-CurrencyViewController.bundle.jscompany-custom_field-CustomFieldViewController.bundle.jscompany-department-DepartmentViewController.bundle.jscompany-ethnic_group-EthnicGroupViewController.bundle.jscompany-geo_fence-GEOFenceViewController.bundle.jscompany-geo_fence-GEOFenceViewController.csscompany-hierarchy_control-HierarchyControlViewController.bundle.jscompany-legal_entity-LegalEntityViewController.bundle.jscompany-other_field-OtherFieldViewController.bundle.jscompany-payroll_remittance_agency-PayrollRemittanceAgencyEventViewController.bundle.jscompany-payroll_remittance_agency-PayrollRemittanceAgencyViewController.bundle.jscompany-permission_control-PermissionControlViewController.bundle.jscompany-remittance_source_account-RemittanceSourceAccountViewController.bundle.jscompany-station-StationViewController.bundle.jscompany-wage-WageViewController.bundle.jscompany-wage_group-WageGroupViewController.bundle.jscore-log-LogViewController.bundle.jsdatepicker-TDatePicker.bundle.jsdatepicker-TRangePicker.bundle.jsdeveloper_tools-AwesomeboxTestViewController.bundle.jsdeveloper_tools-GridTestViewController.bundle.jsdeveloper_tools-WidgetTestViewController.bundle.jsdeveloper_tools-debugPanelController.bundle.jsdocument-DocumentGroupViewController.bundle.jsdocument-DocumentRevisionViewController.bundle.jsdocument-DocumentViewController.bundle.jsdynamic-editview-primevue-button.bundle.jsdynamic-editview-primevue-calendar.bundle.jsdynamic-editview-primevue-dropdown.bundle.jsdynamic-editview-primevue-radiobutton.bundle.jsdynamic-testview.bundle.jsdynamic-testview.cssemployees-employee-EmployeeViewController.bundle.jsemployees-remittance_destination_account-RemittanceDestinationAccountViewController.bundle.jsemployees-roe-ROEViewController.bundle.jsemployees-user_contact-UserContactViewController.bundle.jsemployees-user_default-UserDefaultViewController.bundle.jsemployees-user_group-UserGroupViewController.bundle.jsemployees-user_preference-UserPreferenceViewController.bundle.jsemployees-user_title-UserTitleViewController.bundle.jserror_tip-ErrorTipBox.bundle.jsfeedback-TFeedback.bundle.jsfilebrowser-CameraBrowser.bundle.jsfilebrowser-TImage.bundle.jsfilebrowser-TImageAdvBrowser.bundle.jsfilebrowser-TImageBrowser.bundle.jsfilebrowser-TImageCutArea.bundle.jsfirebase-app.jsfirebase-messaging.jsfirebase-service-worker.bundle.jsformula_builder-FormulaBuilder.bundle.jshelp-AboutViewController.bundle.jshome-dashboard-HomeViewController.bundle.jshome-dashlet-DashletController.bundle.jshr-kpi-KPIGroupViewController.bundle.jshr-kpi-KPIViewController.bundle.jshr-kpi-UserReviewControlViewController.bundle.jshr-qualification-QualificationGroupViewController.bundle.jshr-qualification-QualificationViewController.bundle.jshr-qualification-UserEducationViewController.bundle.jshr-qualification-UserLanguageViewController.bundle.jshr-qualification-UserLicenseViewController.bundle.jshr-qualification-UserMembershipViewController.bundle.jshr-qualification-UserSkillViewController.bundle.jshr-recruitment-JobApplicantEducationViewController.bundle.jshr-recruitment-JobApplicantEmploymentViewController.bundle.jshr-recruitment-JobApplicantLanguageViewController.bundle.jshr-recruitment-JobApplicantLicenseViewController.bundle.jshr-recruitment-JobApplicantLocationViewController.bundle.jshr-recruitment-JobApplicantMembershipViewController.bundle.jshr-recruitment-JobApplicantReferenceViewController.bundle.jshr-recruitment-JobApplicantSkillViewController.bundle.jshr-recruitment-JobApplicantViewController.bundle.jshr-recruitment-JobApplicationViewController.bundle.jshr-recruitment-JobApplicationViewController.csshr-recruitment-JobVacancyViewController.bundle.jshr-recruitment-RecruitmentPortalConfigViewController.bundle.jsinside_editor-InsideEditor.bundle.jsinterface_html5_components_context_menu_TTContextButton_vue.bundle.jsinterface_html5_framework_leaflet_leaflet-timetrex_js.bundle.jsinvoice-area_policy-AreaPolicyViewController.bundle.jsinvoice-client-ClientViewController.bundle.jsinvoice-client_contact-ClientContactViewController.bundle.jsinvoice-client_group-ClientGroupViewController.bundle.jsinvoice-client_payment-ClientPaymentViewController.bundle.jsinvoice-district-InvoiceDistrictViewController.bundle.jsinvoice-invoice-InvoiceViewController.bundle.jsinvoice-invoice_transaction-InvoiceTransactionViewController.bundle.jsinvoice-payment_gateway-PaymentGatewayViewController.bundle.jsinvoice-product_group-ProductGroupViewController.bundle.jsinvoice-products-ProductViewController.bundle.jsinvoice-settings-InvoiceConfigViewController.bundle.jsinvoice-shipping_policy-ShippingPolicyViewController.bundle.jsinvoice-tax_policy-TaxPolicyViewController.bundle.jsjqgrid-TGridHeader.bundle.jsleaflet-timetrex.csslist-TList.bundle.jslive-chat.bundle.jslogin-LoginViewController.bundle.jslogin-LoginViewController.cssmain_ui-styles.bundle.jsmain_ui-styles.cssmain_ui-vendor-styles.bundle.jsmain_ui-vendor-styles.cssmain_ui.bundle.jsmain_ui.cssmessage_box-NoHierarchyBox.bundle.jsmessage_box-NoResultBox.bundle.jsmessage_box-SaveAndContinueBox.bundle.jsmy_account-expense-ExpenseAuthorizationViewController.bundle.jsmy_account-expense-LoginUserExpenseViewController.bundle.jsmy_account-message_control-MessageControlViewController.bundle.jsmy_account-notification-NotificationViewController.bundle.jsmy_account-password-ChangePasswordViewController.bundle.jsmy_account-request-RequestViewController.bundle.jsmy_account-request_authorization-RequestAuthorizationViewController.bundle.jsmy_account-timesheet_authorization-TimeSheetAuthorizationViewController.bundle.jsmy_account-user_contact-LoginUserContactViewController.bundle.jsmy_account-user_preference-LoginUserPreferenceViewController.bundle.jspaging-Paging2.bundle.jspayperiod-PayPeriodScheduleViewController.bundle.jspayroll-company_tax_deduction-CompanyTaxDeductionViewController.bundle.jspayroll-government_document-GovernmentDocumentViewController.bundle.jspayroll-pay_periods-PayPeriodsViewController.bundle.jspayroll-pay_stub-PayStubViewController.bundle.jspayroll-pay_stub_amendment-PayStubAmendmentViewController.bundle.jspayroll-pay_stub_entry_account-PayStubEntryAccountViewController.bundle.jspayroll-pay_stub_transaction-PayStubTransactionViewController.bundle.jspayroll-process_transactions_wizard-ProcessTransactionsWizard.bundle.jspayroll-process_transactions_wizard-ProcessTransactionsWizardController.bundle.jspayroll-process_transactions_wizard-ProcessTransactionsWizardStepHome.bundle.jspayroll-recurring_pay_stub_amendment-RecurringPayStubAmendmentViewController.bundle.jspayroll-remittance_wizard-PayrollRemittanceAgencyEventWizard.bundle.jspayroll-remittance_wizard-PayrollRemittanceAgencyEventWizardController.bundle.jspayroll-remittance_wizard-PayrollRemittanceAgencyEventWizardStepHome.bundle.jspayroll-remittance_wizard-PayrollRemittanceAgencyEventWizardStepPublish.bundle.jspayroll-remittance_wizard-PayrollRemittanceAgencyEventWizardStepReview.bundle.jspayroll-remittance_wizard-PayrollRemittanceAgencyEventWizardStepSubmit.bundle.jspayroll-user_expense-UserExpenseViewController.bundle.jspdf.worker.js
pdfjs-cmaps
78-EUC-H.bcmap78-EUC-V.bcmap78-H.bcmap78-RKSJ-H.bcmap78-RKSJ-V.bcmap78-V.bcmap78ms-RKSJ-H.bcmap78ms-RKSJ-V.bcmap83pv-RKSJ-H.bcmap90ms-RKSJ-H.bcmap90ms-RKSJ-V.bcmap90msp-RKSJ-H.bcmap90msp-RKSJ-V.bcmap90pv-RKSJ-H.bcmap90pv-RKSJ-V.bcmapAdd-H.bcmapAdd-RKSJ-H.bcmapAdd-RKSJ-V.bcmapAdd-V.bcmapAdobe-CNS1-0.bcmapAdobe-CNS1-1.bcmapAdobe-CNS1-2.bcmapAdobe-CNS1-3.bcmapAdobe-CNS1-4.bcmapAdobe-CNS1-5.bcmapAdobe-CNS1-6.bcmapAdobe-CNS1-UCS2.bcmapAdobe-GB1-0.bcmapAdobe-GB1-1.bcmapAdobe-GB1-2.bcmapAdobe-GB1-3.bcmapAdobe-GB1-4.bcmapAdobe-GB1-5.bcmapAdobe-GB1-UCS2.bcmapAdobe-Japan1-0.bcmapAdobe-Japan1-1.bcmapAdobe-Japan1-2.bcmapAdobe-Japan1-3.bcmapAdobe-Japan1-4.bcmapAdobe-Japan1-5.bcmapAdobe-Japan1-6.bcmapAdobe-Japan1-UCS2.bcmapAdobe-Korea1-0.bcmapAdobe-Korea1-1.bcmapAdobe-Korea1-2.bcmapAdobe-Korea1-UCS2.bcmapB5-H.bcmapB5-V.bcmapB5pc-H.bcmapB5pc-V.bcmapCNS-EUC-H.bcmapCNS-EUC-V.bcmapCNS1-H.bcmapCNS1-V.bcmapCNS2-H.bcmapCNS2-V.bcmapETHK-B5-H.bcmapETHK-B5-V.bcmapETen-B5-H.bcmapETen-B5-V.bcmapETenms-B5-H.bcmapETenms-B5-V.bcmapEUC-H.bcmapEUC-V.bcmapExt-H.bcmapExt-RKSJ-H.bcmapExt-RKSJ-V.bcmapExt-V.bcmapGB-EUC-H.bcmapGB-EUC-V.bcmapGB-H.bcmapGB-V.bcmapGBK-EUC-H.bcmapGBK-EUC-V.bcmapGBK2K-H.bcmapGBK2K-V.bcmapGBKp-EUC-H.bcmapGBKp-EUC-V.bcmapGBT-EUC-H.bcmapGBT-EUC-V.bcmapGBT-H.bcmapGBT-V.bcmapGBTpc-EUC-H.bcmapGBTpc-EUC-V.bcmapGBpc-EUC-H.bcmapGBpc-EUC-V.bcmapH.bcmapHKdla-B5-H.bcmapHKdla-B5-V.bcmapHKdlb-B5-H.bcmapHKdlb-B5-V.bcmapHKgccs-B5-H.bcmapHKgccs-B5-V.bcmapHKm314-B5-H.bcmapHKm314-B5-V.bcmapHKm471-B5-H.bcmapHKm471-B5-V.bcmapHKscs-B5-H.bcmapHKscs-B5-V.bcmapHankaku.bcmapHiragana.bcmapKSC-EUC-H.bcmapKSC-EUC-V.bcmapKSC-H.bcmapKSC-Johab-H.bcmapKSC-Johab-V.bcmapKSC-V.bcmapKSCms-UHC-H.bcmapKSCms-UHC-HW-H.bcmapKSCms-UHC-HW-V.bcmapKSCms-UHC-V.bcmapKSCpc-EUC-H.bcmapKSCpc-EUC-V.bcmapKatakana.bcmapLICENSENWP-H.bcmapNWP-V.bcmapRKSJ-H.bcmapRKSJ-V.bcmapRoman.bcmapUniCNS-UCS2-H.bcmapUniCNS-UCS2-V.bcmapUniCNS-UTF16-H.bcmapUniCNS-UTF16-V.bcmapUniCNS-UTF32-H.bcmapUniCNS-UTF32-V.bcmapUniCNS-UTF8-H.bcmapUniCNS-UTF8-V.bcmapUniGB-UCS2-H.bcmapUniGB-UCS2-V.bcmapUniGB-UTF16-H.bcmapUniGB-UTF16-V.bcmapUniGB-UTF32-H.bcmapUniGB-UTF32-V.bcmapUniGB-UTF8-H.bcmapUniGB-UTF8-V.bcmapUniJIS-UCS2-H.bcmapUniJIS-UCS2-HW-H.bcmapUniJIS-UCS2-HW-V.bcmapUniJIS-UCS2-V.bcmapUniJIS-UTF16-H.bcmapUniJIS-UTF16-V.bcmapUniJIS-UTF32-H.bcmapUniJIS-UTF32-V.bcmapUniJIS-UTF8-H.bcmapUniJIS-UTF8-V.bcmapUniJIS2004-UTF16-H.bcmapUniJIS2004-UTF16-V.bcmapUniJIS2004-UTF32-H.bcmapUniJIS2004-UTF32-V.bcmapUniJIS2004-UTF8-H.bcmapUniJIS2004-UTF8-V.bcmapUniJISPro-UCS2-HW-V.bcmapUniJISPro-UCS2-V.bcmapUniJISPro-UTF8-V.bcmapUniJISX0213-UTF32-H.bcmapUniJISX0213-UTF32-V.bcmapUniJISX02132004-UTF32-H.bcmapUniJISX02132004-UTF32-V.bcmapUniKS-UCS2-H.bcmapUniKS-UCS2-V.bcmapUniKS-UTF16-H.bcmapUniKS-UTF16-V.bcmapUniKS-UTF32-H.bcmapUniKS-UTF32-V.bcmapUniKS-UTF8-H.bcmapUniKS-UTF8-V.bcmapV.bcmapWP-Symbol.bcmap
policy-absence_policy-AbsencePolicyViewController.bundle.jspolicy-accrual_policy-AccrualPolicyAccountViewController.bundle.jspolicy-accrual_policy-AccrualPolicyUserModifierViewController.bundle.jspolicy-accrual_policy-AccrualPolicyViewController.bundle.jspolicy-break_policy-BreakPolicyViewController.bundle.jspolicy-contributing_pay_code_policy-ContributingPayCodePolicyViewController.bundle.jspolicy-contributing_shift_policy-ContributingShiftPolicyViewController.bundle.jspolicy-exception_policy-ExceptionPolicyControlViewController.bundle.jspolicy-expense_policy-ExpensePolicyViewController.bundle.jspolicy-holiday-HolidayViewController.bundle.jspolicy-holiday_policy-HolidayPolicyViewController.bundle.jspolicy-meal_policy-MealPolicyViewController.bundle.jspolicy-overtime_policy-OvertimePolicyViewController.bundle.jspolicy-pay_code-PayCodeViewController.bundle.jspolicy-pay_formula_policy-PayFormulaPolicyViewController.bundle.jspolicy-policy_group-PolicyGroupViewController.bundle.jspolicy-premium_policy-PremiumPolicyViewController.bundle.jspolicy-recurring_holiday-RecurringHolidayViewController.bundle.jspolicy-regular_time_policy-RegularTimePolicyViewController.bundle.jspolicy-round_interval_policy-RoundIntervalPolicyViewController.bundle.jspolicy-schedule_policy-SchedulePolicyViewController.bundle.jsportal-PortalBaseViewController.bundle.jsportal-header-HeaderUploadResumeWidget.bundle.jsportal-hr-my_jobapplication-MyJobApplicationViewController.bundle.jsportal-hr-my_profile-JobApplicantEducationSubViewController.bundle.jsportal-hr-my_profile-JobApplicantLanguageSubViewController.bundle.jsportal-hr-my_profile-JobApplicantLicenseSubViewController.bundle.jsportal-hr-my_profile-JobApplicantMembershipSubViewController.bundle.jsportal-hr-my_profile-JobApplicantSubBaseViewController.bundle.jsportal-hr-my_profile-MyProfileViewController.bundle.jsportal-hr-recruitment-PortalJobVacancyDetailController.bundle.jsportal-hr-recruitment-PortalJobVacancyDetailViewController.bundle.jsportal-hr-recruitment-PortalJobVacancyRowController.bundle.jsportal-hr-recruitment-PortalJobVacancyViewController.bundle.jsportal-sign_in-PortalForgotPasswordController.bundle.jsportal-sign_in-PortalResetForgotPasswordController.bundle.jsportal-styles.bundle.jsportal-styles.cssportal.bundle.jsportal.csspost-login-app-dependancies.bundle.jspost-login-main_ui-vendor-dependancies.bundle.jsquick_punch-QuickPunchBaseViewController.bundle.jsquick_punch-header-HeaderViewController.bundle.jsquick_punch-login-QuickPunchLoginViewController.bundle.jsquick_punch-punch-QuickPunchViewController.bundle.jsquick_punch-styles.bundle.jsquick_punch-styles.cssquick_punch.bundle.jsquick_punch.cssreports-ReportBaseViewController.bundle.jsreports-accrual_balance_summary-AccrualBalanceSummaryReportViewController.bundle.jsreports-affordable_care-AffordableCareReportViewController.bundle.jsreports-audittrail-AuditTrailReportViewController.bundle.jsreports-custom_column-CustomColumnViewController.bundle.jsreports-employee_information-UserSummaryReportViewController.bundle.jsreports-exception_summary-ExceptionSummaryReportViewController.bundle.jsreports-expense_summary-ExpenseSummaryReportViewController.bundle.jsreports-form1099-Form1099NecReportViewController.bundle.jsreports-form940-Form940ReportViewController.bundle.jsreports-form941-Form941ReportViewController.bundle.jsreports-formw2-FormW2ReportViewController.bundle.jsreports-general_ledger_summary-GeneralLedgerSummaryReportViewController.bundle.jsreports-invoice_transaction_summary-InvoiceTransactionSummaryReportViewController.bundle.jsreports-job_analysis-JobAnalysisReportViewController.bundle.jsreports-job_info-JobInformationReportViewController.bundle.jsreports-job_item_info-JobItemInformationReportViewController.bundle.jsreports-job_summary-JobSummaryReportViewController.bundle.jsreports-pay_stub_summary-PayStubSummaryReportViewController.bundle.jsreports-pay_stub_transaction_summary-PayStubTransactionSummaryReportViewController.bundle.jsreports-payroll_export-PayrollExportReportViewController.bundle.jsreports-punch_summary-PunchSummaryReportViewController.bundle.jsreports-qualification_summary-UserQualificationReportViewController.bundle.jsreports-recruitment_detail-UserRecruitmentDetailReportViewController.bundle.jsreports-recruitment_summary-UserRecruitmentSummaryReportViewController.bundle.jsreports-remittance_summary-RemittanceSummaryReportViewController.bundle.jsreports-report_schedule-ReportScheduleViewController.bundle.jsreports-review_summary-KPIReportViewController.bundle.jsreports-saved_report-SavedReportViewController.bundle.jsreports-schedule_summary-ScheduleSummaryReportViewController.bundle.jsreports-t4_summary-T4SummaryReportViewController.bundle.jsreports-t4a_summary-T4ASummaryReportViewController.bundle.jsreports-tax_summary-TaxSummaryReportViewController.bundle.jsreports-timesheet_detail-TimesheetDetailReportViewController.bundle.jsreports-timesheet_summary-TimesheetSummaryReportViewController.bundle.jsreports-us_state_unemployment-USStateUnemploymentReportViewController.bundle.jsreports-whos_in_summary-ActiveShiftReportViewController.bundle.jsruntime.bundle.jssearch_panel-SearchPanel.bundle.jsseparated_box-SeparatedBox.bundle.jsswitch_button-SwitchButton.bundle.jstag_input-TTagInput.bundle.jstext-TText.bundle.jstext_input-TPasswordInput.bundle.jstext_input-TTextInput.bundle.jstextarea-TTextArea.bundle.jstimepicker-TTimePicker.bundle.jstoggle_button-TToggleButton.bundle.jsttgrid-TTGrid.bundle.jsui_kit_sample-UIKitChildSampleViewController.bundle.jsui_kit_sample-UIKitSampleViewController.bundle.js
vendor_ui
vendors-node_modules_bootstrap-select_dist_js_bootstrap-select_js.bundle.jsvendors-node_modules_css-loader_dist_cjs_js_node_modules_tinymce_skins_content_default_conten-a516be.bundle.jsvendors-node_modules_css-loader_dist_cjs_js_node_modules_tinymce_skins_content_default_conten-a516be.cssvendors-node_modules_decimal_js_decimal_mjs.bundle.jsvendors-node_modules_jquery-bridget_jquery-bridget_js-node_modules_masonry-layout_masonry_js.bundle.jsvendors-node_modules_jquery-ui_ui_widgets_autocomplete_js-node_modules_jquery-ui_ui_widgets_r-024c3b.bundle.jsvendors-node_modules_jquery-ui_ui_widgets_datepicker_js.bundle.jsvendors-node_modules_leaflet_dist_images_marker-icon-2x_png-node_modules_leaflet_dist_images_-78d511.bundle.jsvendors-node_modules_leaflet_dist_images_marker-icon-2x_png-node_modules_leaflet_dist_images_-78d511.cssvendors-node_modules_linkifyjs_string_js.bundle.jsvendors-node_modules_pdfjs-dist_web_pdf_viewer_js.bundle.jsvendors-node_modules_primevue_button_button_esm_js-node_modules_primevue_menu_menu_esm_js-nod-e86f5b.bundle.jswizard-BaseWizardController.bundle.jswizard-Wizard.bundle.jswizard-WizardStep.bundle.jswizard-dashlet-DashletWizardController.bundle.jswizard-find_available-FindAvailableViewController.bundle.jswizard-find_available-FindAvailableWizardController.bundle.jswizard-forgot_password-ForgotPasswordWizardController.bundle.jswizard-formula_builder_wizard-FormulaBuilderWizardController.bundle.jswizard-generate_pay_stub-GeneratePayStubWizardController.bundle.jswizard-import_csv-ImportCSVWizardController.bundle.jswizard-install-InstallWizardController.bundle.jswizard-job_invoice-JobInvoiceWizardController.bundle.jswizard-login_user-LoginUserViewController.bundle.jswizard-login_user-LoginUserWizardController.bundle.jswizard-pay_code-PayCodeWizardController.bundle.jswizard-pay_stub_account-PayStubAccountWizardController.bundle.jswizard-permission_wizard-PermissionWizardController.bundle.jswizard-process_payroll-ProcessPayrollWizardController.bundle.jswizard-quick_start-QuickStartWizardController.bundle.jswizard-re_calculate_accrual-ReCalculateAccrualWizardController.bundle.jswizard-re_calculate_timesheet-ReCalculateTimeSheetWizardController.bundle.jswizard-report_view-ReportViewWizardController.bundle.jswizard-reset_forgot_password-ResetForgotPasswordWizardController.bundle.jswizard-reset_password-ResetPasswordWizardController.bundle.jswizard-share_report-ShareReportWizardController.bundle.jswizard-user_generic_data_status-UserGenericStatusWindowController.bundle.jswizard-user_photo-UserPhotoWizardController.bundle.js
framework
apollo-vue
.browserslistrc.eslintrc.js.prettierrcCHANGELOG.mdREADME.mdbabel.config.jspackage.jsonpostcss.config.js
public
assets
demo
data
flags
images
layout
css
fonts
images
pages
sass
_fonts.scss
layout
overrides
theme
theme
favicon.icoindex.htmlupload.php
src
tests
vue.config.js
bootstrap-select
bootstrap-toolkit.min.js
bootstrap
decimal.min.js
google
analytics
html5shiv.min.jsinteract.min.jsjquery.bridget.jsjquery.i18n.jsjquery.imgareaselect.jsjquery.json.jsjquery.min.jsjquery.sortable.jsjquery.stickytableheaders.min.jsjquery.tablednd.js
jqueryui
json2.jsmasonry.min.jsmeasurement.jsmoment.jsnanobar.min.jspolyfill.js
qunit
r.jsrequire.jsrequire_async_plugin.jsrespond.min.js
rightclickmenu
tinymce
jquery.tinymce.min.js
langs
license.txt
plugins
skins
themes
tinymce.min.js
vue
widgets
global
index.phpmain.jsmain_ui-styles.jsmain_ui-vendor-styles.js
model
phpinfo.phppost-login-main_ui-dependancies.jspost-login-main_ui-vendor-dependancies.js
services
theme
default
css
application.css
global
widgets
awesomebox
column_editor
datepicker
error_tip
feedback
filebrowser
inside_editor
jqgrid
loading_bar
message_box
ribbon
RibbonView.cssgray.svg
icons
KPI-35x35.pngKPI_groups-35x35.pngabout-35x35.pngabsence_policies-35x35.pngaccrual-35x35.pngaccrual_accounts-35x35.pngaccrual_balance-35x35.pngaccrual_policies-35x35.pngadministration_guide_manual-35x35.pngalert-16x16.pngalert-35x35.pngalert_policies-35x35.pngapproved_expense-35x35.pngapproved_expense_new-35x35.pngapproved_overlay-35x35.pngarea_policies-35x35.pngaudit_trail-35x35.pngauthorization-35x35.pngauthorization2-35x35.pngauthorization3-35x35.pngauthorize-35x35.pngauthorize_request-35x35.pngauthorize_request_new-35x35.pngauthorize_timesheet-35x35.pngauthorize_timesheet_new-35x35.pngback-35x35.pngbank_accounts-35x35.pngbranches-35x35.pngbreak_policies-35x35.pngcalculate-35x35.pngcalculate_paystubs-35x35.pngcancel-35x35.pngclient_groups-35x35.pngclients-35x35.pngclients_contacts-35x35.pngclock_in_out-35x35.pngclose-35x35.pngclose_misc-35x35.pngclose_pay_period-35x35.pngclose_pay_period2-35x35.pngcompanies-35x35.pngcompany_information-35x35.pngcontact_information-35x35.pngcontributing_policies-35x35.pngcontributing_shift_policy-35x35.pngcopy-35x35.pngcopy_as_new-35x35.pngcurrencies-35x35.pngcustom_fields-35x35.pngdecline-35x35.pngdelete-35x35.pngdelete_and_next-35x35.pngdelete_and_previous-35x35.pngdepartments-35x35.pngdirect_deposit-35x35.pngdistrict-35x35.pngdocument_groups-35x35.pngdocuments-35x35.pngdone-35x35.pngdownload1-35x35.pngdownload2-35x35.pngedit-35x35.pngeducation-35x35.pngeligibility_policies-35x35.pngemailhelp-35x35.pngemployee_reports-35x35.pngemployees-35x35.pngethinicgroups-35x35.pngexceptions-35x35.pngexceptions_policies-35x35.pngexpense_policies-35x35.pngexpenses-35x35.pngexport-35x35.pngexport_to_efile-35x35.pngexport_to_excel-35x35.pngexport_to_xml-35x35.pngfaq-35x35.pngfillshift-35x35.pngformula_builder-16x16.pngformula_builder-35x35.pnggo-35x35.pnggovernment_payroll_documents-35x35.pnggroups-35x35.pnghappy.pnghappy_light.pnghelp-35x35.pnghierarchy-35x35.pngholiday_policies-35x35.pnghr_reports-35x35.pngimport-35x35.pnginbox-35x35.pnginvoice_reports-35x35.pnginvoice_wizard-35x35.pnginvoices-35x35.pngjob_applicant-35x35.pngjob_groups-35x35.pngjob_titles-35x35.pngjob_tracking_reports-35x35.pngjob_vacancies-35x35.pngjob_vacancy-35x35.pngjobapplications-35x35.pngjobs-35x35.pnglanguages-35x35.pnglanguages.pnglegal_entity-35x35.pnglicense-35x35.pnglicenses-35x35.pnglock-35x35.pnglogin-35x35.pnglogout-35x35.pngmap-35x35.pngmass_edit-35x35.pngmass_punches-35x35.pngmass_schedule-35x35.pngmaximize-35x35.pngmeal_policies-35x35.pngmemberships-35x35.pngmemberships.pngmessages-35x35.pngmessages_new-35x35.pngminimize-35x35.pngmove-35x35.pngneutral.pngneutral_light.pngnew_add-35x35.pngnew_hire_defaults-35x35.pngnew_overlay-35x35.pngnext-35x35.pngno_photo-16x16.pngno_photo-256x256.pngno_photo-35x35.pngonline_university-35x35.pngoverride-35x35.pngovertime_policies-35x35.pngpacking_slip-35x35.pngpass-35x35.pngpasswords-35x35.pngpay_code-35x35.pngpay_formula_policy-35x35.pngpay_period_schedules-35x35.pngpay_periods-35x35.pngpay_stub_account_linking-35x35.pngpay_stub_amendments-35x35.pngpay_stubs-35x35.pngpay_stubs_accounts-35x35.pngpayment_gateway_settings-35x35.pngpayment_methods-35x35.pngpayroll_remittance_agency-35x35.pngpayroll_reports-35x35.pngpermission_groups-35x35.pngpiece_work_policies-35x35.pngpolicy_groups-35x35.pngpreferences-35x35.pngpreferences_myaccount-35x35.pngpremium_policies-35x35.pngprint-35x35.pngprint_checks-35x35.pngprocess_payroll-35x35.pngproduct_groups-35x35.pngproducts-35x35.pngpunches-35x35.pngqualification_groups-35x35.pngqualification_groups.pngqualifications-35x35.pngqualifications.pngquicksetupwizard-35x35.pngquotes-35x35.pngrecord_of_employment-35x35.pngrecurring_holidays-35x35.pngrecurring_pay_stub_amendments-35x35.pngrecurring_schedule-35x35.pngrecurring_template-35x35.pngregular_time_policies-35x35.pngrequests-35x35.pngrestart-35x35.pngreviews-35x35.pngrounding_policies-35x35.pngsad.pngsad_light.pngsave-35x35.pngsave_and_back_exit-35x35.pngsave_and_continue-35x35.pngsave_and_copy-35x35.pngsave_and_new-35x35.pngsave_and_next-35x35.pngsave_and_previous-35x35.pngsave_setup-35x35.pngsaved_reports-35x35.pngschedule-35x35.pngschedule_policies-35x35.pngscheduled_shifts-35x35.pngsend-35x35.pngsent-35x35.pngsettings-35x35.pngshare-35x35.pngshipping_policies-35x35.pngshow_all_employees-18x18.pngshow_daily_totals-18x18.pngshow_weekly_totals-18x18.pngskill-35x35.pngskills-35x35.pngstations-35x35.pngstop-35x35.pngstrict_date_range-18x18.pngswap_shift-35x35.pngtags-35x35.pngtask_groups-35x35.pngtasks-35x35.pngtax_policies-35x35.pngtax_reports-35x35.pngtaxes_deductions-35x35.pngtimesheet-35x35.pngtimesheet_reports-35x35.pngtransactions-35x35.pngtrash.pngtrash_small.pngunder_time_policies-35x35.pngunlock-35x35.pngupload_file-16x16.pngupload_file-35x35.pngupload_image-16x16.pngupload_image-35x35.pngview-35x35.pngview_detail-35x35.pngwage_groups-35x35.pngwages-35x35.pngwarning-35x35.pngwhats_new-35x35.pngwizard2-35x35.pngwizard3-35x35.pngwizard4-35x35.pngwork_history_qualifiers-35x35.png
images
search_panel
switch_button
tag_input
talert
timepicker
toggle_button
top_menu
view_min_tab
gray.svg
icon_library
image_area_select
jquery-ui
quickPunch.css
right_click_menu
text_layer_builder.cssui.jqgrid.css
views
images
views
BaseViewController.jsBaseWindowController.jsTTBackboneView.js
attendance
common
company
core
developer_tools
employees
help
home
hr
login
my_account
payperiod
payroll
policy
reports
ui_kit_sample
wizard
BaseWizardController.js
dashlet
forgot_password
generate_pay_stub
import_csv
install
pay_code
pay_stub_account
permission_wizard
process_payroll
quick_start
re_calculate_accrual
re_calculate_timesheet
report_view
reset_forgot_password
reset_password
user_generic_data_status
user_photo
images
index.php
install
locale
ping.htmlping.phpsend_file.php
sounds
system_check.phpupload_file.php
maint
package-lock.jsonpackage.jsontimetrex.ini.php-example_linuxtimetrex.ini.php-example_windows
tools
unit_tests
.htaccessBootStrap.phpBootStrapSelenium.php
TTCodeStandard
beautifier.php
beautifier_filters
coding_standard_check.shcomposer.jsonconfig.xmlconfig_selenium.xmlrun.shrun_selenium.sh
testcases
i18n
kpi
other
payroll_deduction
CAPayrollDeductionCRATest2017.csvCAPayrollDeductionCRATest2018.csvCAPayrollDeductionCRATest2019.csvCAPayrollDeductionCRATest2020.csvCAPayrollDeductionCRATest2021.csvCAPayrollDeductionCRATest2022.csvCAPayrollDeductionTest2006.phpCAPayrollDeductionTest2007.phpCAPayrollDeductionTest2008.phpCAPayrollDeductionTest2009.csvCAPayrollDeductionTest2009.phpCAPayrollDeductionTest2010.csvCAPayrollDeductionTest2010.phpCAPayrollDeductionTest2011.csvCAPayrollDeductionTest2011.phpCAPayrollDeductionTest2012.csvCAPayrollDeductionTest2012.phpCAPayrollDeductionTest2013.csvCAPayrollDeductionTest2013.phpCAPayrollDeductionTest2014.csvCAPayrollDeductionTest2014.phpCAPayrollDeductionTest2015.csvCAPayrollDeductionTest2015.phpCAPayrollDeductionTest2016.csvCAPayrollDeductionTest2016.phpCAPayrollDeductionTest2017.csvCAPayrollDeductionTest2017.phpCAPayrollDeductionTest2018.csvCAPayrollDeductionTest2018.phpCAPayrollDeductionTest2019.csvCAPayrollDeductionTest2019.phpCAPayrollDeductionTest2020.csvCAPayrollDeductionTest2020.phpCAPayrollDeductionTest2021.csvCAPayrollDeductionTest2021.phpCAPayrollDeductionTest2022.csvCAPayrollDeductionTest2022.phpCRPayrollDeductionTest.phpUSPayrollDeductionTest2006.phpUSPayrollDeductionTest2007.phpUSPayrollDeductionTest2008.phpUSPayrollDeductionTest2009.csvUSPayrollDeductionTest2009.phpUSPayrollDeductionTest2010.csvUSPayrollDeductionTest2010.phpUSPayrollDeductionTest2011.csvUSPayrollDeductionTest2011.phpUSPayrollDeductionTest2012.csvUSPayrollDeductionTest2012.phpUSPayrollDeductionTest2013.csvUSPayrollDeductionTest2013.phpUSPayrollDeductionTest2014.csvUSPayrollDeductionTest2014.phpUSPayrollDeductionTest2015.csvUSPayrollDeductionTest2015.phpUSPayrollDeductionTest2016.csvUSPayrollDeductionTest2016.phpUSPayrollDeductionTest2017.csvUSPayrollDeductionTest2017.phpUSPayrollDeductionTest2018.csvUSPayrollDeductionTest2018.phpUSPayrollDeductionTest2019.csvUSPayrollDeductionTest2019.phpUSPayrollDeductionTest2020.csvUSPayrollDeductionTest2020.phpUSPayrollDeductionTest2021.csvUSPayrollDeductionTest2021.phpUSPayrollDeductionTest2022.csvUSPayrollDeductionTest2022.php
paystub
policy
report
Form940ReportTest.phpForm941ReportTest.phpFormW2ReportTest.phpFormW2ReportTest_testEFileFederalA.txtFormW2ReportTest_testEFileFederalB.txtFormW2ReportTest_testEFileFederalC.txtFormW2ReportTest_testEFileFederalMultiEmployeeA.txtFormW2ReportTest_testEFileFederalMultiEmployeeB.txtFormW2ReportTest_testEFileStateAL.txtFormW2ReportTest_testEFileStateAR.txtFormW2ReportTest_testEFileStateAZ.txtFormW2ReportTest_testEFileStateCO.txtFormW2ReportTest_testEFileStateCT.txtFormW2ReportTest_testEFileStateDC.txtFormW2ReportTest_testEFileStateDE.txtFormW2ReportTest_testEFileStateGA.txtFormW2ReportTest_testEFileStateIA.txtFormW2ReportTest_testEFileStateID.txtFormW2ReportTest_testEFileStateIL.txtFormW2ReportTest_testEFileStateIN.txtFormW2ReportTest_testEFileStateKS.txtFormW2ReportTest_testEFileStateKY.txtFormW2ReportTest_testEFileStateKYLocal1.txtFormW2ReportTest_testEFileStateMA.txtFormW2ReportTest_testEFileStateME.txtFormW2ReportTest_testEFileStateMI.txtFormW2ReportTest_testEFileStateMN.txtFormW2ReportTest_testEFileStateMO.txtFormW2ReportTest_testEFileStateMS.txtFormW2ReportTest_testEFileStateMT.txtFormW2ReportTest_testEFileStateMultiEmployeeIA.txtFormW2ReportTest_testEFileStateMultiEmployeeID.txtFormW2ReportTest_testEFileStateNC.txtFormW2ReportTest_testEFileStateND.txtFormW2ReportTest_testEFileStateNE.txtFormW2ReportTest_testEFileStateNY.txtFormW2ReportTest_testEFileStateOH.txtFormW2ReportTest_testEFileStateOK.txtFormW2ReportTest_testEFileStateOR.txtFormW2ReportTest_testEFileStatePA.txtFormW2ReportTest_testEFileStateSC.txtFormW2ReportTest_testEFileStateUT.txtFormW2ReportTest_testEFileStateVA.txtFormW2ReportTest_testEFileStateVT.txtFormW2ReportTest_testEFileStateWI.txtFormW2ReportTest_testFederalEFileWithFederalAndStateTaxesA.txtFormW2ReportTest_testNYEFileWithFederalAndStateTaxesA.txtTaxSummaryReportTest.phpUSStateUnemploymentReportTest.phpUSStateUnemploymentReportTest_testEFileAL.txtUSStateUnemploymentReportTest_testEFileAZ.txtUSStateUnemploymentReportTest_testEFileCA.txtUSStateUnemploymentReportTest_testEFileCO.txtUSStateUnemploymentReportTest_testEFileCT.txtUSStateUnemploymentReportTest_testEFileFL.txtUSStateUnemploymentReportTest_testEFileFederalA.txtUSStateUnemploymentReportTest_testEFileFederalMultiEmployeeA.txtUSStateUnemploymentReportTest_testEFileGA.txtUSStateUnemploymentReportTest_testEFileIA.txtUSStateUnemploymentReportTest_testEFileIL.txtUSStateUnemploymentReportTest_testEFileIN.txtUSStateUnemploymentReportTest_testEFileKS.txtUSStateUnemploymentReportTest_testEFileKY.txtUSStateUnemploymentReportTest_testEFileMI.txtUSStateUnemploymentReportTest_testEFileMS.txtUSStateUnemploymentReportTest_testEFileMT.txtUSStateUnemploymentReportTest_testEFileNC.txtUSStateUnemploymentReportTest_testEFileNY.txtUSStateUnemploymentReportTest_testEFileOK.txtUSStateUnemploymentReportTest_testEFileTN.txtUSStateUnemploymentReportTest_testEFileTX.txtUSStateUnemploymentReportTest_testEFileVA.txtUSStateUnemploymentReportTest_testEFileWA.txtUSStateUnemploymentReportTest_testEFileWI.txt
selenium
upgrade
vendor
.htaccessautoload.php
bin
brianium
cbschuld
composer
doctrine
ezyang
htmlpurifier
CHANGELOG.mdCREDITSLICENSEREADME.mdVERSIONcomposer.json
library
HTMLPurifier.auto.phpHTMLPurifier.autoload-legacy.phpHTMLPurifier.autoload.phpHTMLPurifier.composer.phpHTMLPurifier.func.phpHTMLPurifier.includes.phpHTMLPurifier.kses.phpHTMLPurifier.path.phpHTMLPurifier.phpHTMLPurifier.safe-includes.php
HTMLPurifier
Arborize.phpAttrCollections.phpAttrDef.php
AttrDef
AttrTransform.php
AttrTransform
AttrTypes.phpAttrValidator.phpBootstrap.phpCSSDefinition.phpChildDef.php
ChildDef
Config.phpConfigSchema.php
ConfigSchema
Builder
Exception.phpInterchange.php
Interchange
InterchangeBuilder.phpValidator.phpValidatorAtom.phpschema.ser
schema
Attr.AllowedClasses.txtAttr.AllowedFrameTargets.txtAttr.AllowedRel.txtAttr.AllowedRev.txtAttr.ClassUseCDATA.txtAttr.DefaultImageAlt.txtAttr.DefaultInvalidImage.txtAttr.DefaultInvalidImageAlt.txtAttr.DefaultTextDir.txtAttr.EnableID.txtAttr.ForbiddenClasses.txtAttr.ID.HTML5.txtAttr.IDBlacklist.txtAttr.IDBlacklistRegexp.txtAttr.IDPrefix.txtAttr.IDPrefixLocal.txtAutoFormat.AutoParagraph.txtAutoFormat.Custom.txtAutoFormat.DisplayLinkURI.txtAutoFormat.Linkify.txtAutoFormat.PurifierLinkify.DocURL.txtAutoFormat.PurifierLinkify.txtAutoFormat.RemoveEmpty.Predicate.txtAutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txtAutoFormat.RemoveEmpty.RemoveNbsp.txtAutoFormat.RemoveEmpty.txtAutoFormat.RemoveSpansWithoutAttributes.txtCSS.AllowDuplicates.txtCSS.AllowImportant.txtCSS.AllowTricky.txtCSS.AllowedFonts.txtCSS.AllowedProperties.txtCSS.DefinitionRev.txtCSS.ForbiddenProperties.txtCSS.MaxImgLength.txtCSS.Proprietary.txtCSS.Trusted.txtCache.DefinitionImpl.txtCache.SerializerPath.txtCache.SerializerPermissions.txtCore.AggressivelyFixLt.txtCore.AggressivelyRemoveScript.txtCore.AllowHostnameUnderscore.txtCore.AllowParseManyTags.txtCore.CollectErrors.txtCore.ColorKeywords.txtCore.ConvertDocumentToFragment.txtCore.DirectLexLineNumberSyncInterval.txtCore.DisableExcludes.txtCore.EnableIDNA.txtCore.Encoding.txtCore.EscapeInvalidChildren.txtCore.EscapeInvalidTags.txtCore.EscapeNonASCIICharacters.txtCore.HiddenElements.txtCore.Language.txtCore.LegacyEntityDecoder.txtCore.LexerImpl.txtCore.MaintainLineNumbers.txtCore.NormalizeNewlines.txtCore.RemoveInvalidImg.txtCore.RemoveProcessingInstructions.txtCore.RemoveScriptContents.txtFilter.Custom.txtFilter.ExtractStyleBlocks.Escaping.txtFilter.ExtractStyleBlocks.Scope.txtFilter.ExtractStyleBlocks.TidyImpl.txtFilter.ExtractStyleBlocks.txtFilter.YouTube.txtHTML.Allowed.txtHTML.AllowedAttributes.txtHTML.AllowedComments.txtHTML.AllowedCommentsRegexp.txtHTML.AllowedElements.txtHTML.AllowedModules.txtHTML.Attr.Name.UseCDATA.txtHTML.BlockWrapper.txtHTML.CoreModules.txtHTML.CustomDoctype.txtHTML.DefinitionID.txtHTML.DefinitionRev.txtHTML.Doctype.txtHTML.FlashAllowFullScreen.txtHTML.ForbiddenAttributes.txtHTML.ForbiddenElements.txtHTML.Forms.txtHTML.MaxImgLength.txtHTML.Nofollow.txtHTML.Parent.txtHTML.Proprietary.txtHTML.SafeEmbed.txtHTML.SafeIframe.txtHTML.SafeObject.txtHTML.SafeScripting.txtHTML.Strict.txtHTML.TargetBlank.txtHTML.TargetNoopener.txtHTML.TargetNoreferrer.txtHTML.TidyAdd.txtHTML.TidyLevel.txtHTML.TidyRemove.txtHTML.Trusted.txtHTML.XHTML.txtOutput.CommentScriptContents.txtOutput.FixInnerHTML.txtOutput.FlashCompat.txtOutput.Newline.txtOutput.SortAttr.txtOutput.TidyFormat.txtTest.ForceNoIconv.txtURI.AllowedSchemes.txtURI.Base.txtURI.DefaultScheme.txtURI.DefinitionID.txtURI.DefinitionRev.txtURI.Disable.txtURI.DisableExternal.txtURI.DisableExternalResources.txtURI.DisableResources.txtURI.Host.txtURI.HostBlacklist.txtURI.MakeAbsolute.txtURI.Munge.txtURI.MungeResources.txtURI.MungeSecretKey.txtURI.OverrideAllowedSchemes.txtURI.SafeIframeRegexp.txtinfo.ini
ContentSets.phpContext.phpDefinition.phpDefinitionCache.php
DefinitionCache
DefinitionCacheFactory.phpDoctype.phpDoctypeRegistry.phpElementDef.phpEncoder.phpEntityLookup.php
EntityLookup
EntityParser.phpErrorCollector.phpErrorStruct.phpException.phpFilter.php
Filter
Generator.phpHTMLDefinition.phpHTMLModule.php
HTMLModule
HTMLModuleManager.phpIDAccumulator.phpInjector.php
Injector
Language.php
Language
messages
LanguageFactory.phpLength.phpLexer.php
Lexer
Node.php
Node
PercentEncoder.phpPrinter.php
Printer
PropertyList.phpPropertyListIterator.phpQueue.phpStrategy.php
Strategy
StringHash.phpStringHashParser.phpTagTransform.php
TagTransform
Token.php
Token
TokenFactory.phpURI.phpURIDefinition.phpURIFilter.php
URIFilter
URIParser.phpURIScheme.php
URIScheme
URISchemeRegistry.phpUnitConverter.phpVarParser.php
VarParser
VarParserException.phpZipper.php
geoip2
jean85
kigkonsult
icalcreator
.github
LICENCEREADME.mdautoload.phpcomposer.json
docs
phpunit.xmlreleaseNotes
src
Available.phpCalendarComponent.phpDScomponent.phpDaylight.php
Formatter
IcalBase.phpIcalInterface.php
Parser
Participant.phpPc.phpStandard.php
Traits
Util
V2component.phpV3component.phpVAcomponent.phpValarm.phpVavailability.phpVcalendar.phpVcomponent.phpVevent.phpVfreebusy.phpVjournal.phpVlocation.phpVresource.phpVtimezone.phpVtodo.php
Xml
test
maennchen
markbaker
maxmind-db
maxmind
myclabs
nikic
php-parser
LICENSEREADME.md
bin
composer.json
grammar
lib
PhpParser
Builder.php
Builder
BuilderFactory.phpBuilderHelpers.phpComment.php
Comment
ConstExprEvaluationException.phpConstExprEvaluator.phpError.phpErrorHandler.php
ErrorHandler
Internal
JsonDecoder.phpLexer.php
Lexer
NameContext.phpNode.php
Node
Arg.phpAttribute.phpAttributeGroup.phpComplexType.phpConst_.phpExpr.php
Expr
FunctionLike.phpIdentifier.phpIntersectionType.phpMatchArm.phpName.php
Name
NullableType.phpParam.phpScalar.php
Scalar
Stmt.php
Stmt
UnionType.phpVarLikeIdentifier.phpVariadicPlaceholder.php
NodeAbstract.phpNodeDumper.phpNodeFinder.phpNodeTraverser.phpNodeTraverserInterface.phpNodeVisitor.php
NodeVisitor
NodeVisitorAbstract.phpParser.php
Parser
ParserAbstract.phpParserFactory.php
PrettyPrinter
PrettyPrinterAbstract.php
pear
archive_tar
cache_lite
console_getopt
mail
mail_mime
mime_type
pear
.travis.ymlCODING_STANDARDSINSTALLLICENSEMakefile.frag
OS
PEAR.php
PEAR
README.CONTRIBUTINGREADME.rstSystem.phpbuild-release.shcatalogcomposer.jsongo-pear-list.phpgo-pear-phar.phpinstall-pear.phpinstall-pear.txtmake-command-xml.phpmake-gopear-phar.phpmake-installpear-nozlib-phar.phpmake-pear-bundle.phppackage-ErrorStack.xmlpackage-manpages.xmlpackage.dtdpackage2.xml
scripts
template.spectest-modified.php
structures_graph
xml_util
phar-io
manifest
version
phpoffice
phpspreadsheet
.php-cs-fixer.dist.php.phpcs.xml.distCHANGELOG.mdCONTRIBUTING.mdLICENSEREADME.mdcomposer.jsonphpstan-baseline.neonphpstan-conditional.phpphpstan.neon.dist
src
PhpSpreadsheet
Calculation
ArrayEnabled.phpBinaryComparison.phpCalculation.phpCategory.phpDatabase.php
Database
DateTime.php
DateTimeExcel
Engine
Engineering.php
Engineering
Exception.phpExceptionHandler.phpFinancial.php
Financial
FormulaParser.phpFormulaToken.phpFunctions.php
Information
Internal
Logical.php
Logical
LookupRef.php
LookupRef
MathTrig.php
MathTrig
Statistical.php
Statistical
TextData.php
TextData
Token
Web.php
Web
locale
Cell
CellReferenceHelper.php
Chart
Collection
Comment.phpDefinedName.php
Document
Exception.phpHashTable.php
Helper
IComparable.phpIOFactory.phpNamedFormula.phpNamedRange.php
Reader
ReferenceHelper.php
RichText
Settings.php
Shared
Spreadsheet.php
Style
Worksheet
Writer
phpunit
php-code-coverage
ChangeLog.mdLICENSEREADME.mdcomposer.json
src
CodeCoverage.php
Driver
Exception
Filter.php
Node
ProcessedCodeCoverageData.phpRawCodeCoverageData.php
Report
StaticAnalysis
Util
Version.php
php-file-iterator
php-invoker
php-text-template
php-timer
phpunit-selenium
.ci
.travis.ymlChangeLog.markdownLICENSE
PHPUnit
README.md
Tests
Vagrantfilebuild.xml
build
composer.jsonphpunit-selenium-bootstrap.phpphpunit.xml.dist
selenium-1-tests
phpunit
.phpstorm.meta.phpChangeLog-8.5.mdChangeLog-9.5.mdLICENSEREADME.mdSECURITY.mdcomposer.jsonphpunitphpunit.xsd
schema
src
Exception.php
Framework
Assert.php
Assert
Constraint
DataProviderTestSuite.php
Error
ErrorTestCase.php
Exception
ExceptionWrapper.phpExecutionOrderDependency.phpIncompleteTest.phpIncompleteTestCase.phpInvalidParameterGroupException.php
MockObject
Api
Builder
ConfigurableMethod.php
Exception
Generator.php
Generator
Invocation.phpInvocationHandler.phpMatcher.phpMethodNameConstraint.phpMockBuilder.phpMockClass.phpMockMethod.phpMockMethodSet.phpMockObject.phpMockTrait.phpMockType.php
Rule
Stub.php
Stub
Verifiable.php
Reorderable.phpSelfDescribing.phpSkippedTest.phpSkippedTestCase.phpTest.phpTestBuilder.phpTestCase.phpTestFailure.phpTestListener.phpTestListenerDefaultImplementation.phpTestResult.phpTestSuite.phpTestSuiteIterator.phpWarningTestCase.php
Runner
TextUI
CliArguments
Command.phpDefaultResultPrinter.php
Exception
Help.phpResultPrinter.phpTestRunner.phpTestSuiteMapper.php
XmlConfiguration
CodeCoverage
Configuration.phpException.php
Filesystem
Generator.php
Group
Loader.php
Logging
Migration
PHP
PHPUnit
TestSuite
Util
psr
sebastian
cli-parser
code-unit-reverse-lookup
code-unit
comparator
complexity
diff
environment
exporter
global-state
lines-of-code
object-enumerator
object-reflector
recursion-context
resource-operations
type
version
setasign
fpdf
fpdi
symfony
console
Application.php
Attribute
CHANGELOG.md
CI
Color.php
Command
CommandLoader
Completion
ConsoleEvents.phpCursor.php
DependencyInjection
Descriptor
Event
EventListener
Exception
Formatter
Helper
Input
LICENSE
Logger
Output
Question
README.md
Resources
SignalRegistry
SingleCommandApplication.php
Style
Terminal.php
Tester
composer.json
deprecation-contracts
polyfill-ctype
polyfill-intl-grapheme
polyfill-intl-normalizer
polyfill-mbstring
polyfill-php73
polyfill-php80
process
service-contracts
string
tecnickcom
theseer
zytzagoo
webpack.config.js

@ -0,0 +1,591 @@
<?php
/*********************************************************************************
*
* TimeTrex is a Workforce Management program developed by
* TimeTrex Software Inc. Copyright (C) 2003 - 2021 TimeTrex Software Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by
* the Free Software Foundation with the addition of the following permission
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
* WORK IN WHICH THE COPYRIGHT IS OWNED BY TIMETREX, TIMETREX DISCLAIMS THE
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
*
* You should have received a copy of the GNU Affero General Public License along
* with this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
*
* You can contact TimeTrex headquarters at Unit 22 - 2475 Dobbin Rd. Suite
* #292 West Kelowna, BC V4T 2E9, Canada or at email address info@timetrex.com.
*
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
*
* In accordance with Section 7(b) of the GNU Affero General Public License
* version 3, these Appropriate Legal Notices must retain the display of the
* "Powered by TimeTrex" logo. If the display of the logo is not reasonably
* feasible for technical reasons, the Appropriate Legal Notices must display
* the words "Powered by TimeTrex".
*
********************************************************************************/
/**
* @package Modules\Punch
*/
class PunchControlListFactory extends PunchControlFactory implements IteratorAggregate {
/**
* @param int $limit Limit the number of records returned
* @param int $page Page number of records to return for pagination
* @param array $where Additional SQL WHERE clause in format of array( $column => $filter, ... ). ie: array( 'id' => 1, ... )
* @param array $order Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
* @return $this
*/
function getAll( $limit = null, $page = null, $where = null, $order = null ) {
$query = '
select *
from ' . $this->getTable() . '
WHERE deleted = 0';
$query .= $this->getWhereSQL( $where );
$query .= $this->getSortSQL( $order );
$this->rs = $this->ExecuteSQL( $query, null, $limit, $page );
return $this;
}
/**
* @param string $id UUID
* @param array $where Additional SQL WHERE clause in format of array( $column => $filter, ... ). ie: array( 'id' => 1, ... )
* @param array $order Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
* @return bool|PunchControlListFactory
*/
function getById( $id, $where = null, $order = null ) {
if ( $id == '' ) {
return false;
}
$this->rs = $this->getCache( $id );
if ( $this->rs === false ) {
$ph = [
'id' => TTUUID::castUUID( $id ),
];
$query = '
select *
from ' . $this->getTable() . '
where id = ?
AND deleted = 0';
$query .= $this->getWhereSQL( $where );
$query .= $this->getSortSQL( $order );
$this->rs = $this->ExecuteSQL( $query, $ph );
$this->saveCache( $this->rs, $id );
}
return $this;
}
/**
* @param string $company_id UUID
* @param int $limit Limit the number of records returned
* @param int $page Page number of records to return for pagination
* @param array $where Additional SQL WHERE clause in format of array( $column => $filter, ... ). ie: array( 'id' => 1, ... )
* @param array $order Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
* @return bool|PunchControlListFactory
*/
function getByCompanyId( $company_id, $limit = null, $page = null, $where = null, $order = null ) {
if ( $company_id == '' ) {
return false;
}
if ( $order == null ) {
$order = [ 'a.date_stamp' => 'asc' ];
$strict = false;
} else {
$strict = true;
}
$uf = new UserFactory();
$ph = [
'company_id' => TTUUID::castUUID( $company_id ),
];
$query = '
select a.*
from ' . $this->getTable() . ' as a,
' . $uf->getTable() . ' as c
where a.user_id = c.id
AND c.company_id = ?
AND ( a.deleted = 0 AND c.deleted = 0 )
';
$query .= $this->getWhereSQL( $where );
$query .= $this->getSortSQL( $order, $strict );
$this->rs = $this->ExecuteSQL( $query, $ph, $limit, $page );
return $this;
}
/**
* @param string $id UUID
* @param string $company_id UUID
* @return bool|PunchControlListFactory
*/
function getByIdAndCompanyId( $id, $company_id ) {
if ( $company_id == '' ) {
return false;
}
if ( $id == '' ) {
return false;
}
$uf = new UserFactory();
$ph = [
'company_id' => TTUUID::castUUID( $company_id ),
];
$query = '
select a.*
from ' . $this->getTable() . ' as a,
' . $uf->getTable() . ' as c
where a.user_id = c.id
AND c.company_id = ?
AND a.id in (' . $this->getListSQL( $id, $ph, 'uuid' ) . ')
AND ( a.deleted = 0 AND c.deleted = 0 )
';
$this->rs = $this->ExecuteSQL( $query, $ph );
return $this;
}
/**
* @param string $punch_id UUID
* @param array $order Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
* @return bool|PunchControlListFactory
*/
function getByPunchId( $punch_id, $order = null ) {
if ( $punch_id == '' ) {
return false;
}
$pf = new PunchFactory();
$ph = [
'punch_id' => TTUUID::castUUID( $punch_id ),
];
$query = '
select a.*
from ' . $this->getTable() . ' as a,
' . $pf->getTable() . ' as b
where a.id = b.punch_control_id
AND b.id = ?
AND ( a.deleted = 0 AND b.deleted=0 )
';
$query .= $this->getSortSQL( $order );
$this->rs = $this->ExecuteSQL( $query, $ph );
return $this;
}
/**
* @param string $user_id UUID
* @param int $date_stamp EPOCH
* @param array $order Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
* @return bool|PunchControlListFactory
*/
function getByUserIdAndDateStamp( $user_id, $date_stamp, $order = null ) {
if ( $user_id == '' ) {
return false;
}
if ( $date_stamp == '' ) {
return false;
}
$ph = [
'user_id' => TTUUID::castUUID( $user_id ),
'date_stamp' => $this->db->BindDate( $date_stamp ),
];
$query = '
select a.*
from ' . $this->getTable() . ' as a
where
a.user_id = ?
AND a.date_stamp = ?
AND ( a.deleted = 0 )
';
$query .= $this->getSortSQL( $order );
$this->rs = $this->ExecuteSQL( $query, $ph );
return $this;
}
/**
* This function grabs all the punches on the given day and determines where the epoch will fit in.
* @param string $user_id UUID
* @param int $epoch EPOCH
* @param int $status_id
* @return bool|int|string
*/
function getInCompletePunchControlIdByUserIdAndEpoch( $user_id, $epoch, $status_id ) {
Debug::text( ' Epoch: ' . TTDate::getDate( 'DATE+TIME', $epoch ), __FILE__, __LINE__, __METHOD__, 10 );
if ( $user_id == '' ) {
return false;
}
if ( $epoch == '' ) {
return false;
}
$plf = new PunchListFactory();
$plf->getShiftPunchesByUserIDAndEpoch( $user_id, $epoch );
if ( $plf->getRecordCount() > 0 ) {
$punch_arr = [];
$prev_punch_arr = [];
//Check for gaps.
$prev_time_stamp = 0;
foreach ( $plf as $p_obj ) {
if ( $p_obj->getStatus() == 10 ) {
$punch_arr[$p_obj->getPunchControlId()]['in'] = $p_obj->getTimeStamp();
} else {
$punch_arr[$p_obj->getPunchControlId()]['out'] = $p_obj->getTimeStamp();
}
if ( $prev_time_stamp != 0 ) {
$prev_punch_arr[$p_obj->getTimeStamp()] = $prev_time_stamp;
}
$prev_time_stamp = $p_obj->getTimeStamp();
}
unset( $prev_time_stamp );
if ( isset( $prev_punch_arr ) ) {
$next_punch_arr = array_flip( $prev_punch_arr );
}
//Debug::Arr( $punch_arr, ' Punch Array: ', __FILE__, __LINE__, __METHOD__, 10);
//Debug::Arr( $next_punch_arr, ' Next Punch Array: ', __FILE__, __LINE__, __METHOD__, 10);
if ( empty( $punch_arr ) == false ) {
$i = 0;
foreach ( $punch_arr as $punch_control_id => $data ) {
$found_gap = false;
Debug::text( ' Iteration: ' . $i, __FILE__, __LINE__, __METHOD__, 10 );
//Skip complete punch control rows.
if ( isset( $data['in'] ) && isset( $data['out'] ) ) {
Debug::text( ' Punch Control ID is Complete: ' . $punch_control_id, __FILE__, __LINE__, __METHOD__, 10 );
} else {
//Make sure we don't assign a In punch that comes AFTER an Out punch to the same pair.
//As well the opposite, an Out punch that comes BEFORE an In punch to the same pair.
if ( $status_id == 10 && !isset( $data['in'] ) && ( isset( $data['out'] ) && $epoch <= $data['out'] ) ) {
Debug::text( ' aFound Valid Gap...', __FILE__, __LINE__, __METHOD__, 10 );
$found_gap = true;
} else if ( $status_id == 20 && !isset( $data['out'] ) && ( isset( $data['in'] ) && $epoch >= $data['in'] ) ) {
Debug::text( ' bFound Valid Gap...', __FILE__, __LINE__, __METHOD__, 10 );
$found_gap = true;
} else {
Debug::text( ' No Valid Gap Found...', __FILE__, __LINE__, __METHOD__, 10 );
}
}
if ( $found_gap == true ) {
if ( $status_id == 10 ) { //In Gap
Debug::text( ' In Gap...', __FILE__, __LINE__, __METHOD__, 10 );
if ( isset( $prev_punch_arr[$data['out']] ) ) {
Debug::text( ' Punch Before In Gap... Range Start: ' . TTDate::getDate( 'DATE+TIME', $prev_punch_arr[$data['out']] ) . ' End: ' . TTDate::getDate( 'DATE+TIME', $data['out'] ), __FILE__, __LINE__, __METHOD__, 10 );
if ( $prev_punch_arr[$data['out']] == $data['out'] || TTDate::isTimeOverLap( $epoch, $epoch, $prev_punch_arr[$data['out']], $data['out'] ) ) {
Debug::text( ' Epoch overlaps, THIS IS GOOD!', __FILE__, __LINE__, __METHOD__, 10 );
Debug::text( ' aReturning Punch Control ID: ' . $punch_control_id, __FILE__, __LINE__, __METHOD__, 10 );
$retval = $punch_control_id;
break; //Without this adding mass punches fails in some basic circumstances because it loops and attaches to a later punch control
} else {
Debug::text( ' Epoch does not overlap, cant attach to this punch_control!', __FILE__, __LINE__, __METHOD__, 10 );
}
} else {
//No Punch After
Debug::text( ' NO Punch Before In Gap...', __FILE__, __LINE__, __METHOD__, 10 );
$retval = $punch_control_id;
break;
}
} else { //Out Gap
Debug::text( ' Out Gap...', __FILE__, __LINE__, __METHOD__, 10 );
//Start: $data['in']
//End: $data['in']
if ( isset( $next_punch_arr[$data['in']] ) ) {
Debug::text( ' Punch After Out Gap... Range Start: ' . TTDate::getDate( 'DATE+TIME', $data['in'] ) . ' End: ' . TTDate::getDate( 'DATE+TIME', $next_punch_arr[$data['in']] ), __FILE__, __LINE__, __METHOD__, 10 );
if ( $data['in'] == $next_punch_arr[$data['in']] || TTDate::isTimeOverLap( $epoch, $epoch, $data['in'], $next_punch_arr[$data['in']] ) ) {
Debug::text( ' Epoch overlaps, THIS IS GOOD!', __FILE__, __LINE__, __METHOD__, 10 );
Debug::text( ' bReturning Punch Control ID: ' . $punch_control_id, __FILE__, __LINE__, __METHOD__, 10 );
$retval = $punch_control_id;
break; //Without this adding mass punches fails in some basic circumstances because it loops and attaches to a later punch control
} else {
Debug::text( ' Epoch does not overlap, cant attach to this punch_control!', __FILE__, __LINE__, __METHOD__, 10 );
}
} else {
//No Punch After
Debug::text( ' NO Punch After Out Gap...', __FILE__, __LINE__, __METHOD__, 10 );
$retval = $punch_control_id;
break;
}
}
}
$i++;
}
}
}
if ( isset( $retval ) ) {
Debug::text( ' Returning Punch Control ID: ' . $retval, __FILE__, __LINE__, __METHOD__, 10 );
return $retval;
}
Debug::text( ' Returning FALSE No Valid Gaps Found...', __FILE__, __LINE__, __METHOD__, 10 );
//FALSE means no gaps in punch control rows found.
return false;
}
/**
* @param string $company_id UUID
* @param $filter_data
* @param int $limit Limit the number of records returned
* @param int $page Page number of records to return for pagination
* @param array $where Additional SQL WHERE clause in format of array( $column => $filter, ... ). ie: array( 'id' => 1, ... )
* @param array $order Sort order passed to SQL in format of array( $column => 'asc', 'name' => 'desc', ... ). ie: array( 'id' => 'asc', 'name' => 'desc', ... )
* @return bool|PunchControlListFactory
*/
function getAPISearchByCompanyIdAndArrayCriteria( $company_id, $filter_data, $limit = null, $page = null, $where = null, $order = null ) {
if ( $company_id == '' ) {
return false;
}
if ( !is_array( $order ) ) {
//Use Filter Data ordering if its set.
if ( isset( $filter_data['sort_column'] ) && $filter_data['sort_order'] ) {
$order = [ Misc::trimSortPrefix( $filter_data['sort_column'] ) => $filter_data['sort_order'] ];
}
}
//$additional_order_fields = array('b.name', 'c.name', 'd.name', 'e.name');
$additional_order_fields = [ 'first_name', 'last_name', 'date_stamp', 'time_stamp', 'type_id', 'status_id', 'branch', 'department', 'default_branch', 'default_department', 'group', 'title' ];
if ( $order == null ) {
$order = [ 'b.pay_period_id' => 'asc', 'b.user_id' => 'asc' ];
$strict = false;
} else {
$strict = true;
}
//Debug::Arr($order, 'Order Data:', __FILE__, __LINE__, __METHOD__, 10);
//Debug::Arr($filter_data, 'Filter Data:', __FILE__, __LINE__, __METHOD__, 10);
if ( isset( $filter_data['exclude_user_ids'] ) ) {
$filter_data['exclude_id'] = $filter_data['exclude_user_ids'];
}
if ( isset( $filter_data['user_id'] ) ) {
$filter_data['id'] = $filter_data['user_id'];
}
if ( isset( $filter_data['include_user_ids'] ) ) {
$filter_data['id'] = $filter_data['include_user_ids'];
}
if ( isset( $filter_data['user_status_ids'] ) ) {
$filter_data['status_id'] = $filter_data['user_status_ids'];
}
if ( isset( $filter_data['user_title_ids'] ) ) {
$filter_data['title_id'] = $filter_data['user_title_ids'];
}
if ( isset( $filter_data['group_ids'] ) ) {
$filter_data['group_id'] = $filter_data['group_ids'];
}
if ( isset( $filter_data['branch_ids'] ) ) {
$filter_data['default_branch_id'] = $filter_data['branch_ids'];
}
if ( isset( $filter_data['department_ids'] ) ) {
$filter_data['default_department_id'] = $filter_data['department_ids'];
}
if ( isset( $filter_data['punch_branch_ids'] ) ) {
$filter_data['punch_branch_id'] = $filter_data['punch_branch_ids'];
}
if ( isset( $filter_data['punch_department_ids'] ) ) {
$filter_data['punch_department_id'] = $filter_data['punch_department_ids'];
}
if ( isset( $filter_data['exclude_job_ids'] ) ) {
$filter_data['exclude_id'] = $filter_data['exclude_job_ids'];
}
if ( isset( $filter_data['include_job_ids'] ) ) {
$filter_data['include_job_id'] = $filter_data['include_job_ids'];
}
if ( isset( $filter_data['job_group_ids'] ) ) {
$filter_data['job_group_id'] = $filter_data['job_group_ids'];
}
if ( isset( $filter_data['job_item_ids'] ) ) {
$filter_data['job_item_id'] = $filter_data['job_item_ids'];
}
$uf = new UserFactory();
$uwf = new UserWageFactory();
$bf = new BranchFactory();
$df = new DepartmentFactory();
$ugf = new UserGroupFactory();
$utf = new UserTitleFactory();
if ( getTTProductEdition() >= TT_PRODUCT_CORPORATE ) {
$jf = new JobFactory();
$jif = new JobItemFactory();
}
$ph = [
'company_id' => TTUUID::castUUID( $company_id ),
];
$query = '
select
b.id as id,
b.branch_id as branch_id,
j.name as branch,
b.department_id as department_id,
k.name as department,
b.job_id as job_id,
b.job_item_id as job_item_id,
b.quantity as quantity,
b.bad_quantity as bad_quantity,
b.total_time as total_time,
b.actual_total_time as actual_total_time,
b.custom_field as custom_field,
b.note as note,
b.user_id as user_id,
b.date_stamp as date_stamp,
b.pay_period_id as pay_period_id,
d.first_name as first_name,
d.last_name as last_name,
d.status_id as user_status_id,
d.group_id as group_id,
g.name as "group",
d.title_id as title_id,
h.name as title,
d.default_branch_id as default_branch_id,
e.name as default_branch,
d.default_department_id as default_department_id,
f.name as default_department,
d.created_by as user_created_by,
z.id as user_wage_id,
z.effective_date as user_wage_effective_date ';
if ( getTTProductEdition() >= TT_PRODUCT_CORPORATE ) {
$query .= ',
x.name as job_name,
x.name as job,
x.status_id as job_status_id,
x.manual_id as job_manual_id,
x.branch_id as job_branch_id,
x.department_id as job_department_id,
x.group_id as job_group_id,
y.name as job_item ';
}
$query .= '
from ' . $this->getTable() . ' as b
LEFT JOIN ' . $uf->getTable() . ' as d ON b.user_id = d.id
LEFT JOIN ' . $bf->getTable() . ' as e ON ( d.default_branch_id = e.id AND e.deleted = 0)
LEFT JOIN ' . $df->getTable() . ' as f ON ( d.default_department_id = f.id AND f.deleted = 0)
LEFT JOIN ' . $ugf->getTable() . ' as g ON ( d.group_id = g.id AND g.deleted = 0 )
LEFT JOIN ' . $utf->getTable() . ' as h ON ( d.title_id = h.id AND h.deleted = 0 )
LEFT JOIN ' . $bf->getTable() . ' as j ON ( b.branch_id = j.id AND j.deleted = 0)
LEFT JOIN ' . $df->getTable() . ' as k ON ( b.department_id = k.id AND k.deleted = 0)
LEFT JOIN ' . $uwf->getTable() . ' as z ON z.id = (select z.id
from ' . $uwf->getTable() . ' as z
where z.user_id = b.user_id
and z.effective_date <= b.date_stamp
and z.deleted = 0
order by z.effective_date desc LiMiT 1)
';
if ( getTTProductEdition() >= TT_PRODUCT_CORPORATE ) {
$query .= ' LEFT JOIN ' . $jf->getTable() . ' as x ON b.job_id = x.id';
$query .= ' LEFT JOIN ' . $jif->getTable() . ' as y ON b.job_item_id = y.id';
}
$query .= ' WHERE d.company_id = ?';
$query .= ( isset( $filter_data['permission_children_ids'] ) ) ? $this->getWhereClauseSQL( 'd.id', $filter_data['permission_children_ids'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['id'] ) ) ? $this->getWhereClauseSQL( 'b.id', $filter_data['id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['exclude_id'] ) ) ? $this->getWhereClauseSQL( 'd.id', $filter_data['exclude_id'], 'not_uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['user_id'] ) ) ? $this->getWhereClauseSQL( 'b.user_id', $filter_data['user_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['legal_entity_id'] ) ) ? $this->getWhereClauseSQL( 'd.legal_entity_id', $filter_data['legal_entity_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['status_id'] ) ) ? $this->getWhereClauseSQL( 'd.status_id', $filter_data['status_id'], 'numeric_list', $ph ) : null;
$query .= ( isset( $filter_data['group_id'] ) ) ? $this->getWhereClauseSQL( 'd.group_id', $filter_data['group_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['default_branch_id'] ) ) ? $this->getWhereClauseSQL( 'd.default_branch_id', $filter_data['default_branch_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['default_department_id'] ) ) ? $this->getWhereClauseSQL( 'd.default_department_id', $filter_data['default_department_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['title_id'] ) ) ? $this->getWhereClauseSQL( 'd.title_id', $filter_data['title_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['punch_branch_id'] ) ) ? $this->getWhereClauseSQL( 'b.branch_id', $filter_data['punch_branch_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['punch_department_id'] ) ) ? $this->getWhereClauseSQL( 'b.department_id', $filter_data['punch_department_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['pay_period_ids'] ) ) ? $this->getWhereClauseSQL( 'b.pay_period_id', $filter_data['pay_period_ids'], 'uuid_list', $ph ) : null;
if ( getTTProductEdition() >= TT_PRODUCT_CORPORATE ) {
$query .= $this->getCustomFieldWhereSQL( $company_id, 'a.custom_field', $filter_data, $ph );
$query .= ( isset( $filter_data['include_job_id'] ) ) ? $this->getWhereClauseSQL( 'b.job_id', $filter_data['include_job_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['exclude_job_id'] ) ) ? $this->getWhereClauseSQL( 'b.job_id', $filter_data['exclude_job_id'], 'not_uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['job_group_id'] ) ) ? $this->getWhereClauseSQL( 'x.group_id', $filter_data['job_group_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['job_item_id'] ) ) ? $this->getWhereClauseSQL( 'b.job_item_id', $filter_data['job_item_id'], 'uuid_list', $ph ) : null;
$query .= ( isset( $filter_data['punch_tag_id'] ) ) ? $this->getWhereClauseSQL( 'b.punch_tag_id', $filter_data['punch_tag_id'], 'jsonb_uuid_array', $ph ) : null;
}
$query .= ( isset( $filter_data['has_note'] ) && $filter_data['has_note'] == true ) ? ' AND b.note != \'\'' : null;
if ( isset( $filter_data['start_date'] ) && !is_array( $filter_data['start_date'] ) && trim( $filter_data['start_date'] ) != '' ) {
$ph[] = $this->db->BindDate( (int)TTDate::parseDateTime( $filter_data['start_date'] ) );
$query .= ' AND b.date_stamp >= ?';
}
if ( isset( $filter_data['end_date'] ) && !is_array( $filter_data['end_date'] ) && trim( $filter_data['end_date'] ) != '' ) {
$ph[] = $this->db->BindDate( (int)TTDate::parseDateTime( $filter_data['end_date'] ) );
$query .= ' AND b.date_stamp <= ?';
}
$query .= ' AND ( b.deleted = 0 AND d.deleted = 0 ) ';
$query .= $this->getWhereSQL( $where );
$query .= $this->getSortSQL( $order, $strict, $additional_order_fields );
$this->rs = $this->ExecuteSQL( $query, $ph, $limit, $page );
//Debug::Query( $query, $ph, __FILE__, __LINE__, __METHOD__, 10);
return $this;
}
}
?>