getVersion(), __FILE__, __LINE__, __METHOD__, 9 ); return true; } /** * @return bool */ function postInstall() { Debug::text( 'postInstall: ' . $this->getVersion(), __FILE__, __LINE__, __METHOD__, 9 ); //Go through each permission group, and enable affordable_care report for for anyone who can view W2's. $clf = TTnew( 'CompanyListFactory' ); /** @var CompanyListFactory $clf */ $clf->getAll(); if ( $clf->getRecordCount() > 0 ) { foreach ( $clf as $c_obj ) { Debug::text( 'Company: ' . $c_obj->getName(), __FILE__, __LINE__, __METHOD__, 9 ); if ( $c_obj->getStatus() != 30 ) { $pclf = TTnew( 'PermissionControlListFactory' ); /** @var PermissionControlListFactory $pclf */ $pclf->getByCompanyId( $c_obj->getId(), null, null, null, [ 'name' => 'asc' ] ); //Force order to prevent references to columns that haven't been created yet. if ( $pclf->getRecordCount() > 0 ) { foreach ( $pclf as $pc_obj ) { Debug::text( 'Permission Group: ' . $pc_obj->getName(), __FILE__, __LINE__, __METHOD__, 9 ); $plf = TTnew( 'PermissionListFactory' ); /** @var PermissionListFactory $plf */ $plf->getByCompanyIdAndPermissionControlIdAndSectionAndNameAndValue( $c_obj->getId(), $pc_obj->getId(), 'report', 'view_formW2', 1 ); if ( $plf->getRecordCount() > 0 ) { Debug::text( 'Found permission group with view_formW2 enabled: ' . $plf->getCurrent()->getValue(), __FILE__, __LINE__, __METHOD__, 9 ); $pc_obj->setPermission( [ 'report' => [ 'view_affordable_care' => true, ], ] ); } else { Debug::text( 'Permission group does NOT have view_formW2 enabled...', __FILE__, __LINE__, __METHOD__, 9 ); } } } } } } //Go through all stations and disable ones that don't have any employees activated for them. //This greatly speeds up station checks, as most stations never have employees activated. $query = 'update station set status_id = 10 where status_id = 20 AND ( ( user_group_selection_type_id = 20 AND NOT EXISTS( select b.id from station_user_group as b WHERE id = b.station_id ) ) AND ( branch_selection_type_id = 20 AND NOT EXISTS( select c.id from station_branch as c WHERE id = c.station_id ) ) AND ( department_selection_type_id = 20 AND NOT EXISTS( select d.id from station_department as d WHERE id = d.station_id ) ) AND NOT EXISTS( select f.id from station_exclude_user as f WHERE id = f.station_id ) AND NOT EXISTS( select e.id from station_include_user as e WHERE id = e.station_id ) ) AND ( deleted = 0 )'; $this->getDatabaseConnection()->Execute( $query ); return true; } } ?>