getOptions( 'columns' ) ) ); break; case 'column_aliases': //Used for converting column names after they have been parsed. $retval = [ 'pay_period_schedule' => 'pay_period_schedule_id', ]; break; case 'import_options': $retval = [ '-1010-fuzzy_match' => TTi18n::getText( 'Enable smart matching.' ), ]; break; case 'parse_hint': $upf = TTnew( 'UserPreferenceFactory' ); /** @var UserPreferenceFactory $upf */ $retval = [ 'start_date' => $upf->getOptions( 'date_format' ), 'end_date' => $upf->getOptions( 'date_format' ), 'transaction_date' => $upf->getOptions( 'date_format' ), ]; break; } return $retval; } /** * @param $row_number * @param $raw_row * @return mixed */ function _preParseRow( $row_number, $raw_row ) { $retval = $this->getObject()->stripReturnHandler( $this->getObject()->getPayPeriodDefaultData() ); return $retval; } /** * @param $row_number * @param $raw_row * @return mixed */ function _postParseRow( $row_number, $raw_row ) { //$raw_row['user_id'] = $this->getUserIdByRowData( $raw_row ); //if ( $raw_row['user_id'] == FALSE ) { // unset($raw_row['user_id']); //} //If its a salary type, make sure average weekly time is always specified and hourly rate. return $raw_row; } /** * @param int $validate_only EPOCH * @return mixed */ function _import( $validate_only ) { return $this->getObject()->setPayPeriod( $this->getParsedData(), $validate_only ); } // // Generic parser functions. // /** * @return bool */ function getPayPeriodScheduleOptions() { //Get job titles $ppslf = TTNew( 'PayPeriodScheduleListFactory' ); /** @var PayPeriodScheduleListFactory $ppslf */ $ppslf->getByCompanyId( $this->company_id ); $this->pay_period_schedule_options = (array)$ppslf->getArrayByListFactory( $ppslf, false ); unset( $ppslf ); return true; } /** * @param $input * @param null $default_value * @param null $parse_hint * @return array|bool|int|mixed */ function parse_pay_period_schedule( $input, $default_value = null, $parse_hint = null ) { if ( !is_array( $this->pay_period_schedule_options ) ) { $this->getPayPeriodScheduleOptions(); } if ( trim( $input ) == '' && count( $this->pay_period_schedule_options ) == 1 ) { return key( $this->pay_period_schedule_options ); //Use first pay period schedule. } $retval = $this->findClosestMatch( $input, $this->pay_period_schedule_options ); if ( $retval === false ) { $retval = -1; //Make sure this fails. } return $retval; } /** * @param $input * @param null $default_value * @param null $parse_hint * @return bool|false|int */ function parse_start_date( $input, $default_value = null, $parse_hint = null ) { if ( isset( $parse_hint ) && $parse_hint != '' ) { TTDate::setDateFormat( $parse_hint ); return TTDate::parseDateTime( $input ); } else { return TTDate::strtotime( $input ); } } /** * @param $input * @param null $default_value * @param null $parse_hint * @return bool|false|int */ function parse_end_date( $input, $default_value = null, $parse_hint = null ) { if ( isset( $parse_hint ) && $parse_hint != '' ) { TTDate::setDateFormat( $parse_hint ); return TTDate::parseDateTime( $input ); } else { return TTDate::strtotime( $input ); } } /** * @param $input * @param null $default_value * @param null $parse_hint * @return bool|false|int */ function parse_transaction_date( $input, $default_value = null, $parse_hint = null ) { if ( isset( $parse_hint ) && $parse_hint != '' ) { TTDate::setDateFormat( $parse_hint ); return TTDate::parseDateTime( $input ); } else { return TTDate::strtotime( $input ); } } } ?>