692 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			692 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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\Policy
 | 
						|
 */
 | 
						|
class CompanyGenericMapFactory extends Factory {
 | 
						|
	protected $table = 'company_generic_map';
 | 
						|
	protected $pk_sequence_name = 'company_generic_map_id_seq'; //PK Sequence name
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param $name
 | 
						|
	 * @param null $parent
 | 
						|
	 * @return array|null
 | 
						|
	 */
 | 
						|
	function _getFactoryOptions( $name, $parent = null ) {
 | 
						|
 | 
						|
		$retval = null;
 | 
						|
		switch ( $name ) {
 | 
						|
			case 'object_type':
 | 
						|
				$retval = [
 | 
						|
					//Policy Group mapping
 | 
						|
					90 => 'contributing_pay_code_policy',
 | 
						|
 | 
						|
					100 => 'policy_group_regular_time_policy',
 | 
						|
					105 => 'schedule_policy_include_regular_policy', //Mapping regular policies to schedule policies.
 | 
						|
					106 => 'schedule_policy_exclude_regular_policy', //Mapping regular policies to schedule policies.
 | 
						|
					110 => 'policy_group_over_time_policy',
 | 
						|
					115 => 'schedule_policy_include_over_time_policy', //Mapping regular policies to schedule policies.
 | 
						|
					116 => 'schedule_policy_exclude_over_time_policy', //Mapping regular policies to schedule policies.
 | 
						|
					120 => 'policy_group_premium_policy',
 | 
						|
					125 => 'schedule_policy_include_premium_policy', //Mapping premium policies to schedule policies.
 | 
						|
					126 => 'schedule_policy_exclude_premium_policy', //Mapping premium policies to schedule policies.
 | 
						|
					130 => 'policy_group_round_interval_policy',
 | 
						|
					140 => 'policy_group_accrual_policy',
 | 
						|
					150 => 'policy_group_meal_policy',
 | 
						|
					155 => 'schedule_policy_meal_policy', //Mapping meal policies to schedule policies.
 | 
						|
					160 => 'policy_group_break_policy',
 | 
						|
					165 => 'schedule_policy_break_policy', //Mapping break policies to schedule policies.
 | 
						|
					170 => 'policy_group_absence_policy',
 | 
						|
					180 => 'policy_group_holiday_policy',
 | 
						|
					190 => 'policy_group_exception_policy',
 | 
						|
					200 => 'policy_group_expense_policy',
 | 
						|
 | 
						|
					300  => 'expense_policy_expense_policy',
 | 
						|
 | 
						|
					/*
 | 
						|
															//Station user mapping
 | 
						|
															310 => 'station_branch',
 | 
						|
															320 => 'station_department',
 | 
						|
															330 => 'station_user_group',
 | 
						|
															340 => 'station_include_user',
 | 
						|
															350 => 'station_exclude_user',
 | 
						|
 | 
						|
															//Premium Policy mapping
 | 
						|
															510 => 'premium_policy_branch',
 | 
						|
															520 => 'premium_policy_department',
 | 
						|
															530 => 'premium_policy_job_group',
 | 
						|
															540 => 'premium_policy_job',
 | 
						|
															550 => 'premium_policy_job_item_group',
 | 
						|
															560 => 'premium_policy_job_item',
 | 
						|
					*/
 | 
						|
 | 
						|
					//Premium Policy mapping
 | 
						|
					561 => 'premium_policy_punch_tag_group',
 | 
						|
					562 => 'premium_policy_punch_tag',
 | 
						|
 | 
						|
					//Regular Policy mapping
 | 
						|
					581  => 'regular_time_policy_branch',
 | 
						|
					582  => 'regular_time_policy_department',
 | 
						|
					583  => 'regular_time_policy_job_group',
 | 
						|
					584  => 'regular_time_policy_job',
 | 
						|
					585  => 'regular_time_policy_job_item_group',
 | 
						|
					586  => 'regular_time_policy_job_item',
 | 
						|
					587  => 'regular_time_policy_punch_tag_group',
 | 
						|
					588  => 'regular_time_policy_punch_tag',
 | 
						|
 | 
						|
					//Overtime Policy mapping
 | 
						|
					591  => 'over_time_policy_branch',
 | 
						|
					592  => 'over_time_policy_department',
 | 
						|
					593  => 'over_time_policy_job_group',
 | 
						|
					594  => 'over_time_policy_job',
 | 
						|
					595  => 'over_time_policy_job_item_group',
 | 
						|
					596  => 'over_time_policy_job_item',
 | 
						|
					597  => 'over_time_policy_punch_tag_group',
 | 
						|
					598  => 'over_time_policy_punch_tag',
 | 
						|
 | 
						|
					//Contributing Shift Policy mapping
 | 
						|
					610  => 'contributing_shift_policy_branch',
 | 
						|
					620  => 'contributing_shift_policy_department',
 | 
						|
					630  => 'contributing_shift_policy_job',
 | 
						|
					640  => 'contributing_shift_policy_job_group',
 | 
						|
					650  => 'contributing_shift_policy_job_item',
 | 
						|
					660  => 'contributing_shift_policy_job_item_group',
 | 
						|
					690  => 'contributing_shift_policy_holiday_policy',
 | 
						|
					700  => 'contributing_shift_policy_punch_tag_group',
 | 
						|
					710  => 'contributing_shift_policy_punch_tag',
 | 
						|
 | 
						|
 | 
						|
					//Job user mapping
 | 
						|
					1010 => 'job_user_branch',
 | 
						|
					1020 => 'job_user_department',
 | 
						|
					1030 => 'job_user_group',
 | 
						|
					1040 => 'job_include_user',
 | 
						|
					1050 => 'job_exclude_user',
 | 
						|
					1055 => 'job_user_title',
 | 
						|
 | 
						|
					//Job task mapping
 | 
						|
					1060 => 'job_job_item_group',
 | 
						|
					1070 => 'job_include_job_item',
 | 
						|
					1080 => 'job_exclude_job_item',
 | 
						|
 | 
						|
 | 
						|
					1090 => 'qualification_group',
 | 
						|
 | 
						|
					//KPI/Reviews
 | 
						|
					2010 => 'kpi_group',
 | 
						|
					2020 => 'kpi_kpi_group',
 | 
						|
 | 
						|
					//Invoice Payment Gateway mapping
 | 
						|
					3010 => 'payment_gateway_credit_card_type',
 | 
						|
					3020 => 'payment_gateway_bank_account_type',
 | 
						|
 | 
						|
					//GEOFence
 | 
						|
					4000 => 'geo_fence_branch',
 | 
						|
					4010 => 'geo_fence_department',
 | 
						|
					4020 => 'geo_fence_job',
 | 
						|
					4030 => 'geo_fence_job_item',
 | 
						|
					4040 => 'geo_fence_punch_tag',
 | 
						|
 | 
						|
					//RemittanceAgencyEvent Recurring Holidays
 | 
						|
					5000 => 'remittance_agency_recurring_holiday',
 | 
						|
					5010 => 'remittance_agency_pay_period_schedule',
 | 
						|
 | 
						|
					//Punch Tag Employee Criteria mapping.
 | 
						|
					6030 => 'punch_tag_user_group',
 | 
						|
					6040 => 'punch_tag_include_user',
 | 
						|
					6050 => 'punch_tag_exclude_user',
 | 
						|
 | 
						|
					//Punch Tag Task Criteria mapping.
 | 
						|
					6060 => 'punch_tag_job_item_group',
 | 
						|
 | 
						|
					//Punch Tag Punch/Job Criteria mapping.
 | 
						|
					6090 => 'punch_tag_job_branch',
 | 
						|
					6100 => 'punch_tag_job_department',
 | 
						|
					6110 => 'punch_tag_job_group',
 | 
						|
					6120 => 'punch_tag_job',
 | 
						|
					6130 => 'punch_tag_job_item_group',
 | 
						|
					6140 => 'punch_tag_job_item',
 | 
						|
					6150 => 'punch_tag_user_title',
 | 
						|
 | 
						|
					//Branch Criteria Mapping
 | 
						|
					7000 => 'branch_user_group',
 | 
						|
					7010 => 'branch_include_user',
 | 
						|
					7020 => 'branch_exclude_user',
 | 
						|
					7030 => 'branch_user_title',
 | 
						|
					7040 => 'branch_user_default_branch',
 | 
						|
					7050 => 'branch_user_default_department',
 | 
						|
 | 
						|
					//Department Criteria Mapping
 | 
						|
					8000 => 'department_user_group',
 | 
						|
					8010 => 'department_include_user',
 | 
						|
					8020 => 'department_exclude_user',
 | 
						|
					8030 => 'department_user_title',
 | 
						|
					8040 => 'department_user_punch_branch',
 | 
						|
					8050 => 'department_user_default_department',
 | 
						|
				];
 | 
						|
				break;
 | 
						|
		}
 | 
						|
 | 
						|
		return $retval;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return bool|mixed
 | 
						|
	 */
 | 
						|
	function getCompany() {
 | 
						|
		return $this->getGenericDataValue( 'company_id' );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param $value
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function setCompany( $value ) {
 | 
						|
		$value = TTUUID::castUUID( $value );
 | 
						|
 | 
						|
		return $this->setGenericDataValue( 'company_id', $value );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return int
 | 
						|
	 */
 | 
						|
	function getObjectType() {
 | 
						|
		return (int)$this->getGenericDataValue( 'object_type_id' );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param $value
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function setObjectType( $value ) {
 | 
						|
		$value = trim( $value );
 | 
						|
 | 
						|
		return $this->setGenericDataValue( 'object_type_id', $value );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return bool|mixed
 | 
						|
	 */
 | 
						|
	function getObjectID() {
 | 
						|
		return $this->getGenericDataValue( 'object_id' );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param $value
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function setObjectID( $value ) {
 | 
						|
		$value = trim( $value );
 | 
						|
 | 
						|
		return $this->setGenericDataValue( 'object_id', $value );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return bool|mixed
 | 
						|
	 */
 | 
						|
	function getMapID() {
 | 
						|
		return $this->getGenericDataValue( 'map_id' );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param $value
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function setMapID( $value ) {
 | 
						|
		$value = TTUUID::castUUID( $value );
 | 
						|
 | 
						|
		return $this->setGenericDataValue( 'map_id', $value );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param string $company_id   UUID
 | 
						|
	 * @param int $object_type_id
 | 
						|
	 * @param string $object_id    UUID
 | 
						|
	 * @param string|string[] $ids UUID
 | 
						|
	 * @param bool $is_new
 | 
						|
	 * @param bool $relaxed_range
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	static function setMapIDs( $company_id, $object_type_id, $object_id, $ids, $is_new = false, $relaxed_range = false ) {
 | 
						|
		if ( $company_id == '' ) {
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
 | 
						|
		if ( $object_type_id == '' ) {
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
 | 
						|
		if ( $object_id == '' ) {
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
 | 
						|
		//If IDs is defined as a blank value, and not an array, assume its a blank array and remove all mapped IDs.
 | 
						|
		if ( $ids == '' ) {
 | 
						|
			$ids = [];
 | 
						|
			//return FALSE;
 | 
						|
		}
 | 
						|
 | 
						|
		if ( !is_array( $ids ) && TTUUID::isUUID( $ids ) ) {
 | 
						|
			$ids = [ $ids ];
 | 
						|
		}
 | 
						|
 | 
						|
		//Debug::Arr($ids, 'Object Type ID: '. $object_type_id .' Object ID: '. $object_id .' IDs: ', __FILE__, __LINE__, __METHOD__, 10);
 | 
						|
		if ( is_array( $ids ) ) {
 | 
						|
			$ids = array_unique( $ids ); //Make sure the IDs are unique to help avoid duplicates.
 | 
						|
 | 
						|
			$tmp_ids = [];
 | 
						|
			if ( $is_new == false ) {
 | 
						|
				//If needed, delete mappings first.
 | 
						|
				$cgmlf = TTnew( 'CompanyGenericMapListFactory' ); /** @var CompanyGenericMapListFactory $cgmlf */
 | 
						|
				$cgmlf->getByCompanyIDAndObjectTypeAndObjectID( $company_id, $object_type_id, $object_id );
 | 
						|
				foreach ( $cgmlf as $obj ) {
 | 
						|
					$id = $obj->getMapID();
 | 
						|
					//Debug::text('Object Type ID: '. $object_type_id .' Object ID: '. $obj->getObjectID() .' ID: '. $id, __FILE__, __LINE__, __METHOD__, 10);
 | 
						|
 | 
						|
					//Delete objects that are not selected
 | 
						|
					//Also check for duplicate IDs and delete them too.
 | 
						|
					if ( !in_array( $id, $ids ) || in_array( $id, $tmp_ids ) ) {
 | 
						|
						//Debug::text('Deleting: '. $id, __FILE__, __LINE__, __METHOD__, 10);
 | 
						|
						$obj->setDeleted( true );
 | 
						|
						$obj->Save();
 | 
						|
					} else {
 | 
						|
						//Save ID's that need to be updated.
 | 
						|
						//Debug::text('NOT Deleting: '. $id, __FILE__, __LINE__, __METHOD__, 10);
 | 
						|
						$tmp_ids[] = $id;
 | 
						|
					}
 | 
						|
				}
 | 
						|
				unset( $id, $obj );
 | 
						|
			}
 | 
						|
			foreach ( $ids as $id ) {
 | 
						|
				//if ( $id !== FALSE AND ( $relaxed_range == TRUE OR ( $relaxed_range == FALSE AND ( $id == -1 OR $id > 0 ) ) ) AND !in_array($id, $tmp_ids) ) {
 | 
						|
				if ( $id !== false && ( $relaxed_range == true || ( $relaxed_range == false && ( TTUUID::isUUID( $id ) && ( $id == TTUUID::getNotExistID() || $id != TTUUID::getZeroID() ) ) ) ) && !in_array( $id, $tmp_ids ) ) {
 | 
						|
					$cgmf = TTnew( 'CompanyGenericMapFactory' ); /** @var CompanyGenericMapFactory $cgmf */
 | 
						|
					$cgmf->setCompany( $company_id );
 | 
						|
					$cgmf->setObjectType( $object_type_id );
 | 
						|
					$cgmf->setObjectID( $object_id );
 | 
						|
					$cgmf->setMapId( $id );
 | 
						|
					$cgmf->Save();
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			$cgmlf->removeCache( md5( $company_id . serialize( $object_type_id ) . serialize( $object_id ) ) );
 | 
						|
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
 | 
						|
		Debug::text( 'No objects to map.', __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function Validate() {
 | 
						|
		//
 | 
						|
		// BELOW: Validation code moved from set*() functions.
 | 
						|
		//
 | 
						|
		// Company
 | 
						|
		if ( $this->getCompany() != TTUUID::getZeroID() ) {
 | 
						|
			$clf = TTnew( 'CompanyListFactory' ); /** @var CompanyListFactory $clf */
 | 
						|
			$this->Validator->isResultSetWithRows( 'company',
 | 
						|
												   $clf->getByID( $this->getCompany() ),
 | 
						|
												   TTi18n::gettext( 'Company is invalid' )
 | 
						|
			);
 | 
						|
		}
 | 
						|
		// Object Type
 | 
						|
		$this->Validator->inArrayKey( 'object_type',
 | 
						|
									  $this->getObjectType(),
 | 
						|
									  TTi18n::gettext( 'Object Type is invalid' ),
 | 
						|
									  $this->getOptions( 'object_type' )
 | 
						|
		);
 | 
						|
		// Object ID
 | 
						|
		$this->Validator->isUUID( 'object_id',
 | 
						|
								  $this->getObjectID(),
 | 
						|
								  TTi18n::gettext( 'Object ID is invalid' )
 | 
						|
		);
 | 
						|
		// Map ID
 | 
						|
		$this->Validator->isUUID( 'map_id',
 | 
						|
								  $this->getMapID(),
 | 
						|
								  TTi18n::gettext( 'Map ID is invalid' )
 | 
						|
		);
 | 
						|
		//
 | 
						|
		// ABOVE: Validation code moved from set*() functions.
 | 
						|
		//
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function postSave() {
 | 
						|
		$this->removeCache( md5( $this->getCompany() . serialize( $this->getObjectType() ) . serialize( $this->getObjectId() ) ) );
 | 
						|
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param $log_action
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	function addLog( $log_action ) {
 | 
						|
		$retval = false;
 | 
						|
		if ( $this->getObjectType() > 0 ) {
 | 
						|
			$description = TTi18n::getText( 'Generic Object Mapping' );
 | 
						|
			switch ( $this->getObjectType() ) {
 | 
						|
				case 100:
 | 
						|
				case 110:
 | 
						|
				case 120:
 | 
						|
				case 130:
 | 
						|
				case 140:
 | 
						|
				case 150:
 | 
						|
				case 160:
 | 
						|
				case 170:
 | 
						|
				case 180:
 | 
						|
				case 190:
 | 
						|
				case 200:
 | 
						|
					switch ( $this->getObjectType() ) {
 | 
						|
						case 100:
 | 
						|
							$lf = TTnew( 'RegularTimePolicyListFactory' ); /** @var RegularTimePolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Regular Time Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 110:
 | 
						|
							$lf = TTnew( 'OverTimePolicyListFactory' ); /** @var OverTimePolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Overtime Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 120:
 | 
						|
							$lf = TTnew( 'PremiumPolicyListFactory' ); /** @var PremiumPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Premium Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 130:
 | 
						|
							$lf = TTnew( 'RoundIntervalPolicyListFactory' ); /** @var RoundIntervalPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Rounding Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 140:
 | 
						|
							$lf = TTnew( 'AccrualPolicyListFactory' ); /** @var AccrualPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Accrual Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 150:
 | 
						|
							$lf = TTnew( 'MealPolicyListFactory' ); /** @var MealPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Meal Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 160:
 | 
						|
							$lf = TTnew( 'BreakPolicyListFactory' ); /** @var BreakPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Break Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 170:
 | 
						|
							$lf = TTnew( 'AbsencePolicyListFactory' ); /** @var AbsencePolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Absence Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 180:
 | 
						|
							$lf = TTnew( 'HolidayPolicyListFactory' ); /** @var HolidayPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Holiday Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
						case 190: //Not handled with generic mapping currently.
 | 
						|
							$lf = TTnew( 'ExceptionPolicyListFactory' ); /** @var ExceptionPolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapId() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Exception Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
 | 
						|
							break;
 | 
						|
						case 200:
 | 
						|
							$lf = TTnew( 'ExpensePolicyListFactory' ); /** @var ExpensePolicyListFactory $lf */
 | 
						|
							$lf->getById( $this->getMapID() );
 | 
						|
							if ( $lf->getRecordCount() > 0 ) {
 | 
						|
								$description = TTi18n::getText( 'Expense Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
							}
 | 
						|
							break;
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'policy_group' );
 | 
						|
					break;
 | 
						|
				case 300:
 | 
						|
					$lf = TTnew( 'ExpensePolicyListFactory' ); /** @var ExpensePolicyListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapID() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Expense Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'expense_policy' );
 | 
						|
					break;
 | 
						|
				case 165:
 | 
						|
					$lf = TTnew( 'BreakPolicyListFactory' ); /** @var BreakPolicyListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Break Policy' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'schedule_policy' );
 | 
						|
					break;
 | 
						|
				//Job user mapping
 | 
						|
				case 1010: //'job_user_branch',
 | 
						|
					$lf = TTnew( 'BranchListFactory' ); /** @var BranchListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Branch' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'job_user_branch' );
 | 
						|
					break;
 | 
						|
				case 1020: // => 'job_user_department',
 | 
						|
					$lf = TTnew( 'DepartmentListFactory' ); /** @var DepartmentListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Department' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'job_user_department' );
 | 
						|
					break;
 | 
						|
				case 1030: // => 'job_user_group',
 | 
						|
					$lf = TTnew( 'UserGroupListFactory' ); /** @var UserGroupListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Employee Group' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'job_user_group' );
 | 
						|
					break;
 | 
						|
				case 1090:
 | 
						|
					$lf = TTnew( 'QualificationGroupListFactory' ); /** @var QualificationGroupListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Qualification Group' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'qualification_group' );
 | 
						|
					break;
 | 
						|
				case 2010:
 | 
						|
				case 2020:
 | 
						|
					switch ( $this->getObjectType() ) {
 | 
						|
						case 2010:
 | 
						|
							$table_name = 'kpi_group';
 | 
						|
							break;
 | 
						|
						case 2020:
 | 
						|
							$table_name = 'kpi';
 | 
						|
							break;
 | 
						|
					}
 | 
						|
					$lf = TTnew( 'KPIGroupListFactory' ); /** @var KPIGroupListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'KPI Group' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
					if ( $this->getMapID() == TTUUID::getNotExistID() ) {
 | 
						|
						$description = TTi18n::getText( 'KPI Group' ) . ': All';
 | 
						|
					}
 | 
						|
					if ( $this->getMapID() == TTUUID::getZeroID() ) {
 | 
						|
						$description = TTi18n::getText( 'KPI Group' ) . ': Root';
 | 
						|
					}
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, $table_name );
 | 
						|
					break;
 | 
						|
				case 1040: // => 'job_include_user',
 | 
						|
				case 1050: // => 'job_exclude_user',
 | 
						|
					switch ( $this->getObjectType() ) {
 | 
						|
						case 1040:
 | 
						|
							$table_name = 'job_include_user';
 | 
						|
							$type = TTi18n::getText( 'Include' );
 | 
						|
							break;
 | 
						|
						case 1050:
 | 
						|
							$table_name = 'job_exclude_user';
 | 
						|
							$type = TTi18n::getText( 'Exclude' );
 | 
						|
							break;
 | 
						|
					}
 | 
						|
 | 
						|
					$lf = TTnew( 'UserListFactory' ); /** @var UserListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = $type . ' ' . TTi18n::getText( 'Employee' ) . ': ' . $lf->getCurrent()->getFullName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, $table_name );
 | 
						|
					break;
 | 
						|
				//Job task mapping
 | 
						|
				case 1060: // => 'job_job_item_group',
 | 
						|
					$lf = TTnew( 'JobItemGroupListFactory' ); /** @var JobItemGroupListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'Task Group' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'job_job_item_group' );
 | 
						|
					break;
 | 
						|
				case 1070: // => 'job_include_job_item',
 | 
						|
				case 1080: // => 'job_exclude_job_item',
 | 
						|
					switch ( $this->getObjectType() ) {
 | 
						|
						case 1070:
 | 
						|
							$table_name = 'job_include_job_item';
 | 
						|
							$type = TTi18n::getText( 'Include' );
 | 
						|
							break;
 | 
						|
						case 1080:
 | 
						|
							$table_name = 'job_exclude_job_item';
 | 
						|
							$type = TTi18n::getText( 'Exclude' );
 | 
						|
							break;
 | 
						|
					}
 | 
						|
 | 
						|
					$lf = TTnew( 'JobItemListFactory' ); /** @var JobItemListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapId() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = $type . ' ' . TTi18n::getText( 'Task' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, $table_name );
 | 
						|
					break;
 | 
						|
				case 3010: // => 'payment_gateway_credit_card_type',
 | 
						|
					$table_name = 'payment_gateway_credit_card_type';
 | 
						|
 | 
						|
					$cpf = TTnew( 'ClientPaymentFactory' ); /** @var ClientPaymentFactory $cpf */
 | 
						|
					$description = TTi18n::getText( 'Credit Card Type' ) . ': ' . Option::getByKey( $this->getMapId(), $cpf->getOptions( 'credit_card_type' ) );
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description, __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, $table_name );
 | 
						|
					break;
 | 
						|
				case 3020: // => 'payment_gateway_bank_account_type',
 | 
						|
					$table_name = 'payment_gateway_bank_account_type';
 | 
						|
 | 
						|
					$cpf = TTnew( 'ClientPaymentFactory' ); /** @var ClientPaymentFactory $cpf */
 | 
						|
					$description = TTi18n::getText( 'Bank Account Type' ) . ': ' . Option::getByKey( $this->getMapId(), $cpf->getOptions( 'bank_account_type' ) );
 | 
						|
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description, __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, $table_name );
 | 
						|
					break;
 | 
						|
				case 4000:
 | 
						|
				case 4010:
 | 
						|
				case 4020:
 | 
						|
				case 4030:
 | 
						|
				case 4040:
 | 
						|
					$lf = TTnew( 'GEOFenceListFactory' ); /** @var GEOFenceListFactory $lf */
 | 
						|
					$lf->getById( $this->getMapID() );
 | 
						|
					if ( $lf->getRecordCount() > 0 ) {
 | 
						|
						$description = TTi18n::getText( 'GEO Fence' ) . ': ' . $lf->getCurrent()->getName();
 | 
						|
					}
 | 
						|
					Debug::text( 'Action: ' . $log_action . ' MapID: ' . $this->getMapID() . ' ObjectID: ' . $this->getObjectID() . ' Description: ' . $description . ' Record Count: ' . $lf->getRecordCount(), __FILE__, __LINE__, __METHOD__, 10 );
 | 
						|
					$retval = TTLog::addEntry( $this->getObjectId(), $log_action, $description, null, 'GEO Fence' );
 | 
						|
					break;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return $retval;
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
?>
 |