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;
 }
 function createPayStubAccountLink($company_id)
 {
     $psealf = new PayStubEntryAccountLinkFactory();
     $psealf->setCompany($company_id);
     $psealf->setTotalGross(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 40, TTi18n::gettext('Total Gross')));
     $psealf->setTotalEmployeeDeduction(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 40, TTi18n::gettext('Total Deductions')));
     $psealf->setTotalEmployerDeduction(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 40, TTi18n::gettext('Employer Total Contributions')));
     $psealf->setTotalNetPay(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 40, TTi18n::gettext('Net Pay')));
     $psealf->setRegularTime(CompanyDeductionFactory::getPayStubEntryAccountByCompanyIDAndTypeAndFuzzyName($company_id, 10, TTi18n::gettext('Regular Time')));
     if ($psealf->isValid()) {
         $insert_id = $psealf->Save();
         Debug::Text('Pay Stub Account Link ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10);
         return $insert_id;
     }
     Debug::Text('Failed Creating Pay Stub Account Links!', __FILE__, __LINE__, __METHOD__, 10);
     return FALSE;
 }
     Debug::Text('Submit!', __FILE__, __LINE__, __METHOD__, 10);
     $psealf->setId($data['id']);
     $psealf->setCompany($current_company->getId());
     $psealf->setTotalGross($data['total_gross']);
     $psealf->setTotalEmployeeDeduction($data['total_employee_deduction']);
     $psealf->setTotalEmployerDeduction($data['total_employer_deduction']);
     $psealf->setTotalNetPay($data['total_net_pay']);
     $psealf->setRegularTime($data['regular_time']);
     //$psealf->setMonthlyAdvance( $data['monthly_advance'] );
     //$psealf->setMonthlyAdvanceDeduction( $data['monthly_advance_deduction'] );
     if ($current_company->getCountry() == 'CA') {
         $psealf->setEmployeeCPP($data['employee_cpp']);
         $psealf->setEmployeeEI($data['employee_ei']);
     }
     if ($psealf->isValid()) {
         $psealf->Save();
         Redirect::Page(URLBuilder::getURL(array('data_saved' => TRUE), 'EditPayStubEntryAccountLink.php'));
         break;
     }
 default:
     BreadCrumb::setCrumb($title);
     $pseallf = new PayStubEntryAccountLinkListFactory();
     $pseallf->getByCompanyId($current_company->getId());
     if ($pseallf->getRecordCount() > 0) {
         $pseal_obj = $pseallf->getCurrent();
         $data = array('id' => $pseal_obj->getId(), 'total_gross' => $pseal_obj->getTotalGross(), 'total_employee_deduction' => $pseal_obj->getTotalEmployeeDeduction(), 'total_employer_deduction' => $pseal_obj->getTotalEmployerDeduction(), 'total_net_pay' => $pseal_obj->getTotalNetPay(), 'regular_time' => $pseal_obj->getRegularTime(), 'monthly_advance' => $pseal_obj->getMonthlyAdvance(), 'monthly_advance_deduction' => $pseal_obj->getMonthlyAdvanceDeduction(), 'employee_cpp' => $pseal_obj->getEmployeeCPP(), 'employee_ei' => $pseal_obj->getEmployeeEI(), 'created_date' => $pseal_obj->getCreatedDate(), 'created_by' => $pseal_obj->getCreatedBy(), 'updated_date' => $pseal_obj->getUpdatedDate(), 'updated_by' => $pseal_obj->getUpdatedBy(), 'deleted_date' => $pseal_obj->getDeletedDate(), 'deleted_by' => $pseal_obj->getDeletedBy());
     }
     $psealf_tmp = new PayStubEntryAccountListFactory();
     $data['earning_account_options'] = $psealf_tmp->getByCompanyIdAndStatusIdAndTypeIdArray($current_company->getId(), 10, array(10));
     $data['employee_deduction_account_options'] = $psealf_tmp->getByCompanyIdAndStatusIdAndTypeIdArray($current_company->getId(), 10, array(20));
     $data['employer_deduction_account_options'] = $psealf_tmp->getByCompanyIdAndStatusIdAndTypeIdArray($current_company->getId(), 10, array(30));