TimeTrex Community Edition v16.2.0
This commit is contained in:
1288
classes/modules/pay_stub_amendment/PayStubAmendmentFactory.class.php
Normal file
1288
classes/modules/pay_stub_amendment/PayStubAmendmentFactory.class.php
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,375 @@
|
||||
<?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\PayStubAmendment
|
||||
*/
|
||||
class RecurringPayStubAmendmentListFactory extends RecurringPayStubAmendmentFactory 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|RecurringPayStubAmendmentListFactory
|
||||
*/
|
||||
function getById( $id, $where = null, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return 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 );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $status_id
|
||||
* @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|RecurringPayStubAmendmentListFactory
|
||||
*/
|
||||
function getByStatus( $status_id, $where = null, $order = null ) {
|
||||
if ( $status_id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'status_id' => (int)$status_id,
|
||||
];
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where status_id = ?
|
||||
AND deleted = 0';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $status_id
|
||||
* @param int $start_date EPOCH
|
||||
* @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|RecurringPayStubAmendmentListFactory
|
||||
*/
|
||||
function getByStatusAndStartDate( $status_id, $start_date, $where = null, $order = null ) {
|
||||
if ( $status_id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( $start_date == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'status_id' => (int)$status_id,
|
||||
'start_date' => $start_date,
|
||||
];
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where status_id = ?
|
||||
AND start_date <= ?
|
||||
AND deleted = 0';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id UUID
|
||||
* @param string $company_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|RecurringPayStubAmendmentListFactory
|
||||
*/
|
||||
function getByIdAndCompanyId( $id, $company_id, $where = null, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( $company_id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'id' => TTUUID::castUUID( $id ),
|
||||
'company_id' => TTUUID::castUUID( $company_id ),
|
||||
];
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where id = ?
|
||||
AND company_id = ?
|
||||
AND deleted = 0
|
||||
';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
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|RecurringPayStubAmendmentListFactory
|
||||
*/
|
||||
function getByCompanyId( $id, $where = null, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$strict_order = true;
|
||||
if ( $order == null ) {
|
||||
$order = [ 'created_date' => 'desc' ];
|
||||
$strict_order = false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'company_id' => TTUUID::castUUID( $id ),
|
||||
];
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where company_id = ?
|
||||
AND deleted = 0';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order, $strict_order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $lf
|
||||
* @param bool $include_blank
|
||||
* @param bool $include_disabled
|
||||
* @return array|bool
|
||||
*/
|
||||
function getArrayByListFactory( $lf, $include_blank = true, $include_disabled = true ) {
|
||||
if ( !is_object( $lf ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$list = [];
|
||||
if ( $include_blank == true ) {
|
||||
$list[TTUUID::getZeroID()] = '--';
|
||||
}
|
||||
|
||||
foreach ( $lf as $obj ) {
|
||||
if ( $obj->getStatus() == 20 ) {
|
||||
$status = '(DISABLED) ';
|
||||
} else {
|
||||
$status = null;
|
||||
}
|
||||
|
||||
if ( $include_disabled == true || ( $include_disabled == false && $obj->getStatus() == 10 ) ) {
|
||||
$list[$obj->getID()] = $status . $obj->getName();
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $list ) == false ) {
|
||||
return $list;
|
||||
}
|
||||
|
||||
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|RecurringPayStubAmendmentListFactory
|
||||
*/
|
||||
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 = [ 'status_id', 'pseaf.name' ];
|
||||
|
||||
$sort_column_aliases = [
|
||||
'status' => 'status_id',
|
||||
'type' => 'type_id',
|
||||
'frequency' => 'frequency_id',
|
||||
'pay_stub_entry_name' => 'pseaf.name',
|
||||
];
|
||||
|
||||
$order = $this->getColumnsFromAliases( $order, $sort_column_aliases );
|
||||
|
||||
if ( $order == null ) {
|
||||
$order = [ 'status_id' => 'asc', 'name' => 'asc' ];
|
||||
$strict = false;
|
||||
} else {
|
||||
//Always try to order by status first so INACTIVE employees go to the bottom.
|
||||
if ( !isset( $order['status_id'] ) ) {
|
||||
$order = Misc::prependArray( [ 'status_id' => 'asc' ], $order );
|
||||
}
|
||||
//Always sort by last name, first name after other columns
|
||||
if ( !isset( $order['name'] ) ) {
|
||||
$order['name'] = 'asc';
|
||||
}
|
||||
$strict = true;
|
||||
}
|
||||
//Debug::Arr($order, 'Order Data:', __FILE__, __LINE__, __METHOD__, 10);
|
||||
//Debug::Arr($filter_data, 'Filter Data:', __FILE__, __LINE__, __METHOD__, 10);
|
||||
|
||||
$uf = new UserFactory();
|
||||
$pseaf = new PayStubEntryAccountFactory();
|
||||
|
||||
$ph = [
|
||||
'company_id' => TTUUID::castUUID( $company_id ),
|
||||
];
|
||||
|
||||
$query = '
|
||||
select a.*,
|
||||
pseaf.name as pay_stub_entry_name,
|
||||
|
||||
y.first_name as created_by_first_name,
|
||||
y.middle_name as created_by_middle_name,
|
||||
y.last_name as created_by_last_name,
|
||||
z.first_name as updated_by_first_name,
|
||||
z.middle_name as updated_by_middle_name,
|
||||
z.last_name as updated_by_last_name
|
||||
from ' . $this->getTable() . ' as a
|
||||
LEFT JOIN ' . $pseaf->getTable() . ' as pseaf ON ( a.pay_stub_entry_name_id = pseaf.id AND pseaf.deleted = 0 )
|
||||
|
||||
LEFT JOIN ' . $uf->getTable() . ' as y ON ( a.created_by = y.id AND y.deleted = 0 )
|
||||
LEFT JOIN ' . $uf->getTable() . ' as z ON ( a.updated_by = z.id AND z.deleted = 0 )
|
||||
where a.company_id = ?
|
||||
';
|
||||
|
||||
$query .= ( isset( $filter_data['permission_children_ids'] ) ) ? $this->getWhereClauseSQL( 'a.created_by', $filter_data['permission_children_ids'], 'uuid_list', $ph ) : null;
|
||||
$query .= ( isset( $filter_data['id'] ) ) ? $this->getWhereClauseSQL( 'a.id', $filter_data['id'], 'uuid_list', $ph ) : null;
|
||||
$query .= ( isset( $filter_data['exclude_id'] ) ) ? $this->getWhereClauseSQL( 'a.id', $filter_data['exclude_id'], 'not_uuid_list', $ph ) : null;
|
||||
|
||||
if ( isset( $filter_data['status'] ) && !is_array( $filter_data['status'] ) && trim( $filter_data['status'] ) != '' && !isset( $filter_data['status_id'] ) ) {
|
||||
$filter_data['status_id'] = Option::getByFuzzyValue( $filter_data['status'], $this->getOptions( 'status' ) );
|
||||
}
|
||||
$query .= ( isset( $filter_data['status_id'] ) ) ? $this->getWhereClauseSQL( 'a.status_id', $filter_data['status_id'], 'numeric_list', $ph ) : null;
|
||||
|
||||
if ( isset( $filter_data['type'] ) && !is_array( $filter_data['type'] ) && trim( $filter_data['type'] ) != '' && !isset( $filter_data['type_id'] ) ) {
|
||||
$filter_data['type_id'] = Option::getByFuzzyValue( $filter_data['type'], $this->getOptions( 'type' ) );
|
||||
}
|
||||
$query .= ( isset( $filter_data['type_id'] ) ) ? $this->getWhereClauseSQL( 'a.type_id', $filter_data['type_id'], 'numeric_list', $ph ) : null;
|
||||
|
||||
$query .= ( isset( $filter_data['frequency_id'] ) ) ? $this->getWhereClauseSQL( 'a.frequency_id', $filter_data['frequency_id'], 'numeric_list', $ph ) : null;
|
||||
|
||||
$query .= ( isset( $filter_data['name'] ) ) ? $this->getWhereClauseSQL( 'a.name', $filter_data['name'], 'text', $ph ) : null;
|
||||
$query .= ( isset( $filter_data['description'] ) ) ? $this->getWhereClauseSQL( 'a.description', $filter_data['description'], 'text', $ph ) : null;
|
||||
|
||||
$query .= ( isset( $filter_data['created_by'] ) ) ? $this->getWhereClauseSQL( [ 'a.created_by', 'y.first_name', 'y.last_name' ], $filter_data['created_by'], 'user_id_or_name', $ph ) : null;
|
||||
$query .= ( isset( $filter_data['updated_by'] ) ) ? $this->getWhereClauseSQL( [ 'a.updated_by', 'z.first_name', 'z.last_name' ], $filter_data['updated_by'], 'user_id_or_name', $ph ) : null;
|
||||
|
||||
$query .= '
|
||||
AND a.deleted = 0
|
||||
';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order, $strict, $additional_order_fields );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph, $limit, $page );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
@@ -0,0 +1,258 @@
|
||||
<?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\PayStubAmendment
|
||||
*/
|
||||
class RecurringPayStubAmendmentUserFactory extends Factory {
|
||||
protected $table = 'recurring_ps_amendment_user';
|
||||
protected $pk_sequence_name = 'recurring_ps_amendment_user_id_seq'; //PK Sequence name
|
||||
|
||||
var $user_obj = null;
|
||||
|
||||
/**
|
||||
* @return bool|null
|
||||
*/
|
||||
function getUserObject() {
|
||||
if ( is_object( $this->user_obj ) ) {
|
||||
return $this->user_obj;
|
||||
} else {
|
||||
$ulf = TTnew( 'UserListFactory' ); /** @var UserListFactory $ulf */
|
||||
$ulf->getById( $this->getUser() );
|
||||
if ( $ulf->getRecordCount() == 1 ) {
|
||||
$this->user_obj = $ulf->getCurrent();
|
||||
|
||||
return $this->user_obj;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
function getRecurringPayStubAmendment() {
|
||||
return $this->getGenericDataValue( 'recurring_ps_amendment_id' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $value UUID
|
||||
* @return bool
|
||||
*/
|
||||
function setRecurringPayStubAmendment( $value ) {
|
||||
$value = TTUUID::castUUID( $value );
|
||||
|
||||
return $this->setGenericDataValue( 'recurring_ps_amendment_id', $value );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
function getUser() {
|
||||
return $this->getGenericDataValue( 'user_id' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $value UUID
|
||||
* @return bool
|
||||
*/
|
||||
function setUser( $value ) {
|
||||
$value = TTUUID::castUUID( $value );
|
||||
|
||||
return $this->setGenericDataValue( 'user_id', $value );
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function Validate() {
|
||||
//
|
||||
// BELOW: Validation code moved from set*() functions.
|
||||
//
|
||||
// Recurring PS Amendment
|
||||
if ( $this->getRecurringPayStubAmendment() == TTUUID::getZeroID() ) {
|
||||
$rpsalf = TTnew( 'RecurringPayStubAmendmentListFactory' ); /** @var RecurringPayStubAmendmentListFactory $rpsalf */
|
||||
$this->Validator->isResultSetWithRows( 'recurring_ps_amendment',
|
||||
$rpsalf->getByID( $this->getRecurringPayStubAmendment() ),
|
||||
TTi18n::gettext( 'Recurring PS Amendment is invalid' )
|
||||
);
|
||||
}
|
||||
// User
|
||||
if ( $this->getUser() != -1 ) {
|
||||
$ulf = TTnew( 'UserListFactory' ); /** @var UserListFactory $ulf */
|
||||
$this->Validator->isResultSetWithRows( 'user',
|
||||
$ulf->getByID( $this->getUser() ),
|
||||
TTi18n::gettext( 'User is invalid' )
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// ABOVE: Validation code moved from set*() functions.
|
||||
//
|
||||
return true;
|
||||
}
|
||||
|
||||
//This table doesn't have any of these columns, so overload the functions.
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getDeleted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $bool
|
||||
* @return bool
|
||||
*/
|
||||
function setDeleted( $bool ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getCreatedDate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $epoch EPOCH
|
||||
* @return bool
|
||||
*/
|
||||
function setCreatedDate( $epoch = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getCreatedBy() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id UUID
|
||||
* @return bool
|
||||
*/
|
||||
function setCreatedBy( $id = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getUpdatedDate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $epoch EPOCH
|
||||
* @return bool
|
||||
*/
|
||||
function setUpdatedDate( $epoch = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getUpdatedBy() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id UUID
|
||||
* @return bool
|
||||
*/
|
||||
function setUpdatedBy( $id = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getDeletedDate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $epoch EPOCH
|
||||
* @return bool
|
||||
*/
|
||||
function setDeletedDate( $epoch = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function getDeletedBy() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id UUID
|
||||
* @return bool
|
||||
*/
|
||||
function setDeletedBy( $id = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $log_action
|
||||
* @return bool
|
||||
*/
|
||||
function addLog( $log_action ) {
|
||||
$u_obj = $this->getUserObject();
|
||||
if ( is_object( $u_obj ) ) {
|
||||
return TTLog::addEntry( $this->getRecurringPayStubAmendment(), $log_action, TTi18n::getText( 'Employee' ) . ': ' . $u_obj->getFullName( false, true ), null, $this->getTable() );
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
@@ -0,0 +1,219 @@
|
||||
<?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\PayStubAmendment
|
||||
*/
|
||||
class RecurringPayStubAmendmentUserListFactory extends RecurringPayStubAmendmentUserFactory 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();
|
||||
$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|RecurringPayStubAmendmentUserListFactory
|
||||
*/
|
||||
function getById( $id, $where = null, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'id' => TTUUID::castUUID( $id ),
|
||||
];
|
||||
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where id = ?
|
||||
';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $company_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|RecurringPayStubAmendmentUserListFactory
|
||||
*/
|
||||
function getByCompanyId( $company_id, $where = null, $order = null ) {
|
||||
if ( $company_id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$rpsaf = new RecurringPayStubAmendmentFactory();
|
||||
|
||||
$ph = [
|
||||
'company_id' => TTUUID::castUUID( $company_id ),
|
||||
];
|
||||
|
||||
$query = '
|
||||
SELECT a.*
|
||||
FROM ' . $this->getTable() . ' as a
|
||||
LEFT JOIN ' . $rpsaf->getTable() . ' as b ON a.recurring_ps_amendment_id = b.id
|
||||
WHERE
|
||||
b.company_id = ?
|
||||
AND ( b.deleted = 0 )
|
||||
';
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
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|RecurringPayStubAmendmentUserListFactory
|
||||
*/
|
||||
function getByRecurringPayStubAmendment( $id, $where = null, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'id' => TTUUID::castUUID( $id ),
|
||||
];
|
||||
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where recurring_ps_amendment_id = ?
|
||||
';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
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|RecurringPayStubAmendmentUserListFactory
|
||||
*/
|
||||
function getByUserId( $id, $where = null, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'id' => TTUUID::castUUID( $id ),
|
||||
];
|
||||
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where user_id = ?
|
||||
';
|
||||
$query .= $this->getWhereSQL( $where );
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id UUID
|
||||
* @param string $user_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|RecurringPayStubAmendmentUserListFactory
|
||||
*/
|
||||
function getByIdAndUserId( $id, $user_id, $order = null ) {
|
||||
if ( $id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( $user_id == '' ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ph = [
|
||||
'user_id' => TTUUID::castUUID( $user_id ),
|
||||
'id' => TTUUID::castUUID( $id ),
|
||||
];
|
||||
|
||||
$query = '
|
||||
select *
|
||||
from ' . $this->getTable() . '
|
||||
where user_id = ?
|
||||
AND id = ?
|
||||
';
|
||||
$query .= $this->getSortSQL( $order );
|
||||
|
||||
$this->rs = $this->ExecuteSQL( $query, $ph );
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user