예제 #1
0
 function createPayStubAccount($company_id)
 {
     $retval = PayStubEntryAccountFactory::addPresets($company_id);
     if ($retval == TRUE) {
         Debug::Text('Created Pay Stub Accounts!', __FILE__, __LINE__, __METHOD__, 10);
         return TRUE;
     }
     Debug::Text('Failed Creating Pay Stub Accounts for Company ID: ' . $company_id, __FILE__, __LINE__, __METHOD__, 10);
     return FALSE;
 }
    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']) and $filter_data['sort_order']) {
                $order = array(Misc::trimSortPrefix($filter_data['sort_column']) => $filter_data['sort_order']);
            }
        }
        $additional_order_fields = array('status_id');
        $sort_column_aliases = array('status' => 'status_id', 'type' => 'type_id', 'frequency' => 'frequency_id');
        $order = $this->getColumnsFromAliases($order, $sort_column_aliases);
        if ($order == NULL) {
            $order = array('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(array('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 = array('company_id' => $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'], 'numeric_list', $ph) : NULL;
        $query .= isset($filter_data['id']) ? $this->getWhereClauseSQL('a.id', $filter_data['id'], 'numeric_list', $ph) : NULL;
        $query .= isset($filter_data['exclude_id']) ? $this->getWhereClauseSQL('a.id', $filter_data['exclude_id'], 'not_numeric_list', $ph) : NULL;
        if (isset($filter_data['status']) and trim($filter_data['status']) != '' and !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']) and trim($filter_data['type']) != '' and !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(array('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(array('a.updated_by', 'z.first_name', 'z.last_name'), $filter_data['updated_by'], 'user_id_or_name', $ph) : NULL;
        /*
        		if ( isset($filter_data['permission_children_ids']) AND isset($filter_data['permission_children_ids'][0]) AND !in_array(-1, (array)$filter_data['permission_children_ids']) ) {
        			$query  .=	' AND a.created_by in ('. $this->getListSQL($filter_data['permission_children_ids'], $ph) .') ';
        		}
        		if ( isset($filter_data['id']) AND isset($filter_data['id'][0]) AND !in_array(-1, (array)$filter_data['id']) ) {
        			$query  .=	' AND a.id in ('. $this->getListSQL($filter_data['id'], $ph) .') ';
        		}
        		if ( isset($filter_data['exclude_id']) AND isset($filter_data['exclude_id'][0]) AND !in_array(-1, (array)$filter_data['exclude_id']) ) {
        			$query  .=	' AND a.id not in ('. $this->getListSQL($filter_data['exclude_id'], $ph) .') ';
        		}
        		if ( isset($filter_data['status_id']) AND isset($filter_data['status_id'][0]) AND !in_array(-1, (array)$filter_data['status_id']) ) {
        			$query  .=	' AND a.status_id in ('. $this->getListSQL($filter_data['status_id'], $ph) .') ';
        		}
        		if ( isset($filter_data['type_id']) AND isset($filter_data['type_id'][0]) AND !in_array(-1, (array)$filter_data['type_id']) ) {
        			$query  .=	' AND a.type_id in ('. $this->getListSQL($filter_data['type_id'], $ph) .') ';
        		}
        		if ( isset($filter_data['frequency_id']) AND isset($filter_data['frequency_id'][0]) AND !in_array(-1, (array)$filter_data['frequency_id']) ) {
        			$query  .=	' AND a.frequency_id in ('. $this->getListSQL($filter_data['frequency_id'], $ph) .') ';
        		}
        
        		if ( isset($filter_data['name']) AND trim($filter_data['name']) != '' ) {
        			$ph[] = strtolower(trim($filter_data['name']));
        			$query  .=	' AND lower(a.name) LIKE ?';
        		}
        		if ( isset($filter_data['description']) AND trim($filter_data['description']) != '' ) {
        			$ph[] = strtolower(trim($filter_data['description']));
        			$query  .=	' AND lower(a.description) LIKE ?';
        		}
        
        		$query .= ( isset($filter_data['created_by']) ) ? $this->getWhereClauseSQL( array('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( array('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->ExecuteSQL($query, $ph, $limit, $page);
        return $this;
    }
 function postSave()
 {
     $this->removeCache($this->getId());
     $this->remoteSave();
     if ($this->getDeleted() == FALSE) {
         //Add base currency for this new company.
         if ($this->getEnableAddCurrency() == TRUE) {
             $clf = new CurrencyListFactory();
             $clf->getByCompanyId($this->getId());
             if ($clf->getRecordCount() == 0) {
                 Debug::text('Adding Default Currency', __FILE__, __LINE__, __METHOD__, 9);
                 $cf = new CurrencyFactory();
                 $country_to_currency_map_arr = $cf->getOptions('country_currency');
                 if (isset($country_to_currency_map_arr[$this->getCountry()])) {
                     $base_currency = $country_to_currency_map_arr[$this->getCountry()];
                     Debug::text('Found Base Currency For Country: ' . $this->getCountry() . ' Currency: ' . $base_currency, __FILE__, __LINE__, __METHOD__, 9);
                 } else {
                     Debug::text('DID NOT Find Base Currency For Country: ' . $this->getCountry() . ' Using default USD.', __FILE__, __LINE__, __METHOD__, 9);
                     $base_currency = 'USD';
                 }
                 $cf->setCompany($this->getId());
                 $cf->setStatus(10);
                 $cf->setName($base_currency);
                 $cf->setISOCode($base_currency);
                 $cf->setConversionRate('1.000000000');
                 $cf->setAutoUpdate(FALSE);
                 $cf->setBase(TRUE);
                 $cf->setDefault(TRUE);
                 if ($cf->isValid()) {
                     $cf->Save();
                 }
             }
         }
         if ($this->getEnableAddPermissionGroupPreset() == TRUE) {
             Debug::text('Adding Preset Permission Groups', __FILE__, __LINE__, __METHOD__, 9);
             $pf = new PermissionFactory();
             $pf->StartTransaction();
             if ($this->getProductEdition() == 20) {
                 $preset_flags = array('job' => 1, 'invoice' => 1, 'document' => 1);
             } else {
                 $preset_flags = array();
             }
             $preset_options = $pf->getOptions('preset');
             foreach ($preset_options as $preset_id => $preset_name) {
                 $pcf = new PermissionControlFactory();
                 $pcf->setCompany($this->getId());
                 $pcf->setName($preset_name);
                 $pcf->setDescription('');
                 if ($pcf->isValid()) {
                     $pcf_id = $pcf->Save(FALSE);
                     $pf->applyPreset($pcf_id, $preset_id, $preset_flags);
                 }
             }
             //$pf->FailTransaction();
             $pf->CommitTransaction();
         }
         if ($this->getEnableAddStation() == TRUE) {
             Debug::text('Adding Default Station', __FILE__, __LINE__, __METHOD__, 9);
             //Enable punching in from all stations
             $sf = new StationFactory();
             $sf->setCompany($this->getId());
             $sf->setStatus(20);
             $sf->setType(10);
             $sf->setSource('ANY');
             $sf->setStation('ANY');
             $sf->setDescription('All stations');
             $sf->setGroupSelectionType(10);
             $sf->setBranchSelectionType(10);
             $sf->setDepartmentSelectionType(10);
             if ($sf->isValid()) {
                 $sf->Save();
             }
         }
         if ($this->getEnableAddPayStubEntryAccountPreset() == TRUE) {
             Debug::text('Adding Pay Stub Entry Account Presets', __FILE__, __LINE__, __METHOD__, 9);
             PayStubEntryAccountFactory::addPresets($this->getId());
         }
         if ($this->getEnableAddCompanyDeductionPreset() == TRUE) {
             Debug::text('Adding Company Deduction Presets', __FILE__, __LINE__, __METHOD__, 9);
             CompanyDeductionFactory::addPresets($this->getId());
         }
         if ($this->getEnableAddRecurringHolidayPreset() == TRUE) {
             Debug::text('Adding Recurring Holiday Presets', __FILE__, __LINE__, __METHOD__, 9);
             RecurringHolidayFactory::addPresets($this->getId(), $this->getCountry());
         }
     }
     if ($this->getDeleted() == TRUE) {
         $ulf = new UserListFactory();
         $ulf->getByCompanyId($this->getID());
         if ($ulf->getRecordCount() > 0) {
             $ulf->StartTransaction();
             foreach ($ulf as $u_obj) {
                 Debug::text('Deleting User ID: ' . $u_obj->getId(), __FILE__, __LINE__, __METHOD__, 9);
                 $u_obj->setDeleted(TRUE);
                 if ($u_obj->isValid()) {
                     $u_obj->Save();
                 }
             }
             $ulf->CommitTransaction();
         }
     }
     return TRUE;
 }
예제 #4
0
 function createPayStubAccrualAccount()
 {
     Debug::text('Saving.... Vacation Accrual', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($this->company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(50);
     $pseaf->setName('Vacation Accrual');
     $pseaf->setOrder(400);
     if ($pseaf->isValid()) {
         $vacation_accrual_id = $pseaf->Save();
         Debug::text('Saving.... Earnings - Vacation Accrual Release', __FILE__, __LINE__, __METHOD__, 10);
         $pseaf = new PayStubEntryAccountFactory();
         $pseaf->setCompany($this->company_id);
         $pseaf->setStatus(10);
         $pseaf->setType(10);
         $pseaf->setName('Vacation Accrual Release');
         $pseaf->setOrder(180);
         $pseaf->setAccrual($vacation_accrual_id);
         if ($pseaf->isValid()) {
             $pseaf->Save();
         }
         unset($vaction_accrual_id);
     }
     return TRUE;
 }
예제 #5
0
 function createPayStubAccounts()
 {
     Debug::text('Saving.... Employee Deduction - Other', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($this->company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(20);
     $pseaf->setName('Other');
     $pseaf->setOrder(290);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Employee Deduction - Other2', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($this->company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(20);
     $pseaf->setName('Other2');
     $pseaf->setOrder(291);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Employee Deduction - EI', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($this->company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(20);
     $pseaf->setName('EI');
     $pseaf->setOrder(292);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Employee Deduction - CPP', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($this->company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(20);
     $pseaf->setName('CPP');
     $pseaf->setOrder(293);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     //Link Account EI and CPP accounts
     $pseallf = new PayStubEntryAccountLinkListFactory();
     $pseallf->getByCompanyId($this->company_id);
     if ($pseallf->getRecordCount() > 0) {
         $pseal_obj = $pseallf->getCurrent();
         $pseal_obj->setEmployeeEI(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 20, 'EI'));
         $pseal_obj->setEmployeeCPP(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 20, 'CPP'));
         $pseal_obj->Save();
     }
     return TRUE;
 }
 * $Id: EditPayStubEntryAccount.php 1246 2007-09-14 23:47:42Z ipso $
 * $Date: 2007-09-14 16:47:42 -0700 (Fri, 14 Sep 2007) $
 */
require_once '../../includes/global.inc.php';
require_once Environment::getBasePath() . 'includes/Interface.inc.php';
if (!$permission->Check('pay_stub_account', 'enabled') or !($permission->Check('pay_stub_account', 'edit') or $permission->Check('pay_stub_account', 'edit_own'))) {
    $permission->Redirect(FALSE);
    //Redirect
}
$smarty->assign('title', TTi18n::gettext($title = 'Edit Pay Stub Account'));
// See index.php
/*
 * Get FORM variables
 */
extract(FormVariables::GetVariables(array('action', 'id', 'data')));
$pseaf = new PayStubEntryAccountFactory();
$action = Misc::findSubmitButton();
$action = strtolower($action);
switch ($action) {
    case 'submit':
        Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10);
        //Debug::setVerbosity(11);
        $pseaf->setId($data['id']);
        $pseaf->setCompany($current_company->getId());
        $pseaf->setStatus($data['status_id']);
        $pseaf->setType($data['type_id']);
        $pseaf->setName($data['name']);
        $pseaf->setOrder($data['order']);
        $pseaf->setAccrual($data['accrual_id']);
        $pseaf->setDebitAccount($data['debit_account']);
        $pseaf->setCreditAccount($data['credit_account']);
 function createPayStubAccrualAccount()
 {
     Debug::text('Saving.... Vacation Accrual', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($this->company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(50);
     $pseaf->setName('Vacation Accrual');
     $pseaf->setOrder(400);
     if ($pseaf->isValid()) {
         $vacation_accrual_id = $pseaf->Save();
         Debug::text('Saving.... Earnings - Vacation Accrual Release', __FILE__, __LINE__, __METHOD__, 10);
         $pseaf = new PayStubEntryAccountFactory();
         $pseaf->setCompany($this->company_id);
         $pseaf->setStatus(10);
         $pseaf->setType(10);
         $pseaf->setName('Vacation Accrual Release');
         $pseaf->setOrder(180);
         $pseaf->setAccrual($vacation_accrual_id);
         if ($pseaf->isValid()) {
             $pseaf->Save();
         }
         //unset($vaction_accrual_id);
         //Don't need this because we are doing it manually.
         Debug::text('Saving.... Vacation Accrual Deduction', __FILE__, __LINE__, __METHOD__, 10);
         $cdf = new CompanyDeductionFactory();
         $cdf->setCompany($this->company_id);
         $cdf->setStatus(10);
         //Enabled
         $cdf->setType(20);
         //Deduction
         $cdf->setName('Vacation Accrual');
         $cdf->setCalculation(10);
         $cdf->setCalculationOrder(50);
         $cdf->setPayStubEntryAccount($vacation_accrual_id);
         $cdf->setUserValue1(4);
         if ($cdf->isValid()) {
             Debug::text('bSaving.... Vacation Accrual Deduction', __FILE__, __LINE__, __METHOD__, 10);
             $cdf->Save(FALSE);
             $cdf->setIncludePayStubEntryAccount(array(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($this->company_id, 40, 'Total Gross')));
             if ($cdf->isValid()) {
                 $cdf->Save();
             }
         }
     }
     return TRUE;
 }
    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']) and $filter_data['sort_order']) {
                $order = array(Misc::trimSortPrefix($filter_data['sort_column']) => $filter_data['sort_order']);
            }
        }
        $additional_order_fields = array('pay_stub_entry_name', 'user_status_id', 'last_name', 'first_name', 'default_branch', 'default_department', 'user_group', 'title');
        $sort_column_aliases = array('user_status' => 'user_status_id', 'status' => 'status_id', 'type' => 'type_id');
        $order = $this->getColumnsFromAliases($order, $sort_column_aliases);
        if ($order == NULL) {
            $order = array('effective_date' => 'desc', 'last_name' => 'asc');
            $strict = FALSE;
        } else {
            //Always sort by effective_date,last name after other columns
            if (!isset($order['effective_date'])) {
                $order['effective_date'] = 'desc';
            }
            if (!isset($order['last_name'])) {
                $order['last_name'] = 'asc';
            }
            $strict = TRUE;
        }
        //Debug::Arr($order,'Order Data:', __FILE__, __LINE__, __METHOD__,10);
        //Debug::Arr($filter_data,'Filter Data:', __FILE__, __LINE__, __METHOD__,10);
        if (strncmp($this->db->databaseType, 'mysql', 5) == 0) {
            $to_timestamp_sql = 'from_unixtime(a.effective_date)';
        } else {
            $to_timestamp_sql = 'to_timestamp(a.effective_date)';
        }
        $uf = new UserFactory();
        $bf = new BranchFactory();
        $df = new DepartmentFactory();
        $ugf = new UserGroupFactory();
        $utf = new UserTitleFactory();
        $pseaf = new PayStubEntryAccountFactory();
        $ppf = new PayPeriodFactory();
        $ppsf = new PayPeriodScheduleFactory();
        $ppsuf = new PayPeriodScheduleUserFactory();
        $ph = array('company_id' => $company_id);
        $query = '
					select 	a.*,
							b.first_name as first_name,
							b.last_name as last_name,
							b.status_id as user_status_id,

							b.default_branch_id as default_branch_id,
							bf.name as default_branch,
							b.default_department_id as default_department_id,
							df.name as default_department,
							b.group_id as group_id,
							ugf.name as user_group,
							b.title_id as title_id,
							utf.name as title,

							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 ' . $uf->getTable() . ' as b ON ( a.user_id = b.id AND b.deleted = 0 )
						LEFT JOIN ' . $bf->getTable() . ' as bf ON ( b.default_branch_id = bf.id AND bf.deleted = 0)
						LEFT JOIN ' . $df->getTable() . ' as df ON ( b.default_department_id = df.id AND df.deleted = 0)
						LEFT JOIN ' . $ugf->getTable() . ' as ugf ON ( b.group_id = ugf.id AND ugf.deleted = 0 )
						LEFT JOIN ' . $utf->getTable() . ' as utf ON ( b.title_id = utf.id AND utf.deleted = 0 )

						LEFT JOIN ' . $pseaf->getTable() . ' as pseaf ON ( a.pay_stub_entry_name_id = pseaf.id AND pseaf.deleted = 0 )
						LEFT JOIN ' . $ppsuf->getTable() . ' as ppsuf ON ( a.user_id = ppsuf.user_id )
						LEFT JOIN ' . $ppsf->getTable() . ' as ppsf ON ( ppsuf.pay_period_schedule_id = ppsf.id AND ppsf.deleted = 0 )
						LEFT JOIN ' . $ppf->getTable() . ' as ppf ON ( ppsuf.pay_period_schedule_id = ppf.pay_period_schedule_id AND ' . $to_timestamp_sql . ' >= ppf.start_date AND ' . $to_timestamp_sql . ' <= ppf.end_date AND ppf.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	b.company_id = ?
					';
        if (isset($filter_data['permission_children_ids']) and isset($filter_data['permission_children_ids'][0]) and !in_array(-1, (array) $filter_data['permission_children_ids'])) {
            $query .= ' AND b.id in (' . $this->getListSQL($filter_data['permission_children_ids'], $ph) . ') ';
        }
        if (isset($filter_data['user_id']) and isset($filter_data['user_id'][0]) and !in_array(-1, (array) $filter_data['user_id'])) {
            $query .= ' AND b.id in (' . $this->getListSQL($filter_data['user_id'], $ph) . ') ';
        }
        if (isset($filter_data['id']) and isset($filter_data['id'][0]) and !in_array(-1, (array) $filter_data['id'])) {
            $query .= ' AND a.id in (' . $this->getListSQL($filter_data['id'], $ph) . ') ';
        }
        if (isset($filter_data['exclude_id']) and isset($filter_data['exclude_id'][0]) and !in_array(-1, (array) $filter_data['exclude_id'])) {
            $query .= ' AND a.id not in (' . $this->getListSQL($filter_data['exclude_id'], $ph) . ') ';
        }
        if (isset($filter_data['user_id']) and isset($filter_data['user_id'][0]) and !in_array(-1, (array) $filter_data['user_id'])) {
            $query .= ' AND a.user_id in (' . $this->getListSQL($filter_data['user_id'], $ph) . ') ';
        }
        if (isset($filter_data['pay_period_id']) and isset($filter_data['pay_period_id'][0]) and !in_array(-1, (array) $filter_data['pay_period_id'])) {
            $query .= ' AND ppf.id in (' . $this->getListSQL($filter_data['pay_period_id'], $ph) . ') ';
        }
        if (isset($filter_data['group_id']) and isset($filter_data['group_id'][0]) and !in_array(-1, (array) $filter_data['group_id'])) {
            if (isset($filter_data['include_subgroups']) and (bool) $filter_data['include_subgroups'] == TRUE) {
                $uglf = new UserGroupListFactory();
                $filter_data['group_id'] = $uglf->getByCompanyIdAndGroupIdAndSubGroupsArray($company_id, $filter_data['group_id'], TRUE);
            }
            $query .= ' AND b.group_id in (' . $this->getListSQL($filter_data['group_id'], $ph) . ') ';
        }
        if (isset($filter_data['default_branch_id']) and isset($filter_data['default_branch_id'][0]) and !in_array(-1, (array) $filter_data['default_branch_id'])) {
            $query .= ' AND b.default_branch_id in (' . $this->getListSQL($filter_data['default_branch_id'], $ph) . ') ';
        }
        if (isset($filter_data['default_department_id']) and isset($filter_data['default_department_id'][0]) and !in_array(-1, (array) $filter_data['default_department_id'])) {
            $query .= ' AND b.default_department_id in (' . $this->getListSQL($filter_data['default_department_id'], $ph) . ') ';
        }
        if (isset($filter_data['title_id']) and isset($filter_data['title_id'][0]) and !in_array(-1, (array) $filter_data['title_id'])) {
            $query .= ' AND b.title_id in (' . $this->getListSQL($filter_data['title_id'], $ph) . ') ';
        }
        if (isset($filter_data['recurring_ps_amendment_id']) and isset($filter_data['recurring_ps_amendment_id'][0]) and !in_array(-1, (array) $filter_data['recurring_ps_amendment_id'])) {
            $query .= ' AND a.recurring_ps_amendment_id in (' . $this->getListSQL($filter_data['recurring_ps_amendment_id'], $ph) . ') ';
        }
        if (isset($filter_data['start_date']) and trim($filter_data['start_date']) != '') {
            $ph[] = strtolower(trim($filter_data['start_date']));
            $query .= ' AND a.effective_date >= ?';
        }
        if (isset($filter_data['end_date']) and trim($filter_data['end_date']) != '') {
            $ph[] = strtolower(trim($filter_data['end_date']));
            $query .= ' AND a.effective_date <= ?';
        }
        if (isset($filter_data['effective_date']) and trim($filter_data['effective_date']) != '') {
            $ph[] = strtolower(trim($filter_data['effective_date']));
            $query .= ' AND a.effective_date = ?';
        }
        $query .= isset($filter_data['created_by']) ? $this->getWhereClauseSQL(array('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(array('a.updated_by', 'z.first_name', 'z.last_name'), $filter_data['updated_by'], 'user_id_or_name', $ph) : NULL;
        //Need to account for employees being assigned to deleted pay period schedules.
        $query .= '
						AND ( ppsuf.id IS NULL OR ppsf.id IS NOT NULL )
						AND a.deleted = 0
					';
        $query .= $this->getWhereSQL($where);
        $query .= $this->getSortSQL($order, $strict, $additional_order_fields);
        //Debug::Arr($query,'Query: ', __FILE__, __LINE__, __METHOD__,10);
        $this->ExecuteSQL($query, $ph, $limit, $page);
        return $this;
    }
예제 #9
0
// See index.php
/*
 * Get FORM variables
 */
extract(FormVariables::GetVariables(array('action', 'page', 'sort_column', 'sort_order', 'ids')));
URLBuilder::setURL($_SERVER['SCRIPT_NAME'], array('sort_column' => $sort_column, 'sort_order' => $sort_order, 'page' => $page));
$sort_array = NULL;
if ($sort_column != '') {
    $sort_array = array($sort_column => $sort_order);
}
Debug::Arr($ids, 'Selected Objects', __FILE__, __LINE__, __METHOD__, 10);
$action = Misc::findSubmitButton();
switch ($action) {
    case 'add_presets':
        //Debug::setVerbosity(11);
        PayStubEntryAccountFactory::addPresets($current_company->getId());
        Redirect::Page(URLBuilder::getURL(NULL, 'PayStubEntryAccountList.php'));
    case 'add':
        Redirect::Page(URLBuilder::getURL(NULL, 'EditPayStubEntryAccount.php', FALSE));
        break;
    case 'delete':
    case 'undelete':
        if (strtolower($action) == 'delete') {
            $delete = TRUE;
        } else {
            $delete = FALSE;
        }
        $psealf = TTnew('PayStubEntryAccountListFactory');
        foreach ($ids as $id) {
            $psealf->getByIdAndCompanyId($id, $current_company->getId());
            foreach ($psealf as $psea_obj) {
 static function addPresets($company_id)
 {
     if ($company_id == '') {
         return FALSE;
     }
     $clf = new CompanyListFactory();
     $clf->getById($company_id);
     if ($clf->getRecordCount() > 0) {
         $company_obj = $clf->getCurrent();
         $country = $company_obj->getCountry();
         $province = $company_obj->getProvince();
     } else {
         return FALSE;
     }
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->StartTransaction();
     /*
     								10 => 'Earning',
     								20 => 'Employee Deduction',
     								30 => 'Employer Deduction',
     								40 => 'Total',
     								50 => 'Accrual',
     								60 => 'Advance Earning',
     								65 => 'Advance Deduction',
     */
     //See if accounts are already linked
     $pseallf = new PayStubEntryAccountLinkListFactory();
     $pseallf->getByCompanyId($company_id);
     if ($pseallf->getRecordCount() > 0) {
         $psealf = $pseallf->getCurrent();
     } else {
         $psealf = new PayStubEntryAccountLinkFactory();
         $psealf->setCompany($company_id);
     }
     Debug::text('Country: ' . $country, __FILE__, __LINE__, __METHOD__, 10);
     switch (strtolower($country)) {
         case 'ca':
             Debug::text('Saving.... Federal Taxes', __FILE__, __LINE__, __METHOD__, 10);
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Federal Income Tax');
             $pseaf->setOrder(210);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Provincial Income Tax');
             $pseaf->setOrder(220);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Additional Income Tax');
             $pseaf->setOrder(230);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('CPP');
             $pseaf->setOrder(240);
             if ($pseaf->isValid()) {
                 $psea_id = $pseaf->Save();
                 $psealf->setEmployeeCPP($psea_id);
                 unset($psea_id);
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('EI');
             $pseaf->setOrder(250);
             if ($pseaf->isValid()) {
                 $psea_id = $pseaf->Save();
                 $psealf->setEmployeeEI($psea_id);
                 unset($psea_id);
             }
             //Employer Contributions
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('CPP - Employer');
             $pseaf->setOrder(300);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('EI - Employer');
             $pseaf->setOrder(310);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('WCB - Employer');
             $pseaf->setOrder(320);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             Debug::text('Saving.... Vacation Accrual', __FILE__, __LINE__, __METHOD__, 10);
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(50);
             $pseaf->setName('Vacation Accrual');
             $pseaf->setOrder(400);
             if ($pseaf->isValid()) {
                 $vacation_accrual_id = $pseaf->Save();
                 Debug::text('Saving.... Earnings - Vacation Accrual Release', __FILE__, __LINE__, __METHOD__, 10);
                 $pseaf = new PayStubEntryAccountFactory();
                 $pseaf->setCompany($company_id);
                 $pseaf->setStatus(10);
                 $pseaf->setType(10);
                 $pseaf->setName('Vacation Accrual Release');
                 $pseaf->setOrder(180);
                 $pseaf->setAccrual($vacation_accrual_id);
                 if ($pseaf->isValid()) {
                     $pseaf->Save();
                 }
                 unset($vaction_accrual_id);
             }
             break;
         case 'us':
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Federal Income Tax');
             $pseaf->setOrder(210);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Advance EIC');
             $pseaf->setOrder(215);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('State Income Tax');
             $pseaf->setOrder(220);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('District Income Tax');
             $pseaf->setOrder(225);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Federal Add. Income Tax');
             $pseaf->setOrder(230);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('State Add. Income Tax');
             $pseaf->setOrder(235);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Social Security (FICA)');
             $pseaf->setOrder(240);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('Social Security (FICA)');
             $pseaf->setOrder(340);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('Fed. Unemployment Ins.');
             $pseaf->setOrder(342);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('State Unemployment Ins.');
             $pseaf->setOrder(240);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('Medicare');
             $pseaf->setOrder(245);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('Medicare');
             $pseaf->setOrder(346);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(20);
             $pseaf->setName('State Disability Ins.');
             $pseaf->setOrder(250);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('State Unemployment Ins.');
             $pseaf->setOrder(350);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('State Employee Training');
             $pseaf->setOrder(352);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             break;
     }
     Debug::text('Province: ' . $province, __FILE__, __LINE__, __METHOD__, 10);
     switch (strtolower($province)) {
         case 'ny':
             $pseaf = new PayStubEntryAccountFactory();
             $pseaf->setCompany($company_id);
             $pseaf->setStatus(10);
             $pseaf->setType(30);
             $pseaf->setName('State Reemployment');
             $pseaf->setOrder(354);
             if ($pseaf->isValid()) {
                 $pseaf->Save();
             }
             break;
     }
     Debug::text('Saving.... Earnings - Regular Time', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Regular Time');
     $pseaf->setOrder(100);
     if ($pseaf->isValid()) {
         $psea_id = $pseaf->Save();
         $psealf->setRegularTime($psea_id);
         unset($psea_id);
     }
     Debug::text('Saving.... Earnings - Over Time 1', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Over Time 1');
     $pseaf->setOrder(150);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Earnings - Over Time 2', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Over Time 2');
     $pseaf->setOrder(151);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Earnings - Premium Time 1', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Premium 1');
     $pseaf->setOrder(170);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Earnings - Premium Time 2', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Premium 2');
     $pseaf->setOrder(171);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Earnings - Bonus', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Bonus');
     $pseaf->setOrder(185);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Earnings - Other', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(10);
     $pseaf->setName('Other');
     $pseaf->setOrder(189);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Union Dues', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(20);
     $pseaf->setName('Union Dues');
     $pseaf->setOrder(285);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Employee Benefits Plan', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(20);
     $pseaf->setName('Benefits Plan');
     $pseaf->setOrder(225);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Employer Benefits Plan', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(30);
     $pseaf->setName('Benefits Plan');
     $pseaf->setOrder(330);
     if ($pseaf->isValid()) {
         $pseaf->Save();
     }
     Debug::text('Saving.... Total Earnings', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(40);
     $pseaf->setName('Total Gross');
     $pseaf->setOrder(199);
     if ($pseaf->isValid()) {
         $psea_id = $pseaf->Save();
         $psealf->setTotalGross($psea_id);
         unset($psea_id);
     }
     Debug::text('Saving.... Total Deductions', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(40);
     $pseaf->setName('Total Deductions');
     $pseaf->setOrder(298);
     if ($pseaf->isValid()) {
         $psea_id = $pseaf->Save();
         $psealf->setTotalEmployeeDeduction($psea_id);
         unset($psea_id);
     }
     Debug::text('Saving.... Net Pay', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(40);
     $pseaf->setName('Net Pay');
     $pseaf->setOrder(299);
     if ($pseaf->isValid()) {
         $psea_id = $pseaf->Save();
         $psealf->setTotalNetPay($psea_id);
         unset($psea_id);
     }
     Debug::text('Saving.... Employer Total Cont', __FILE__, __LINE__, __METHOD__, 10);
     $pseaf = new PayStubEntryAccountFactory();
     $pseaf->setCompany($company_id);
     $pseaf->setStatus(10);
     $pseaf->setType(40);
     $pseaf->setName('Employer Total Contributions');
     $pseaf->setOrder(399);
     if ($pseaf->isValid()) {
         $psea_id = $pseaf->Save();
         $psealf->setTotalEmployerDeduction($psea_id);
         unset($psea_id);
     }
     if ($psealf->isValid() == TRUE) {
         Debug::text('Saving.... PSA Linking', __FILE__, __LINE__, __METHOD__, 10);
         $psealf->Save();
     } else {
         Debug::text('Saving.... PSA Linking FAILED!', __FILE__, __LINE__, __METHOD__, 10);
     }
     $pseaf->CommitTransaction();
     //$pseaf->FailTransaction();
     return TRUE;
 }