Ejemplo n.º 1
0
 /**
  * Get the direct deposit account related value based on
  * passed parameters
  *
  * @param array $row Array of data from database
  * @param array $ddList Array of direct deposit objects of this employee
  *
  * @return string Value for this field from database
  */
 private function _getDDValue($row, $ddList)
 {
     $value = '';
     $parts = explode('_', $this->name);
     if (count($parts) == 2) {
         $ddNum = str_replace('DD', '', $parts[0]);
         $ddField = $parts[1];
         if (intval($ddNum) > 0) {
             if (count($ddList) >= $ddNum) {
                 $directDeposit = $ddList[$ddNum - 1];
                 switch ($ddField) {
                     case CustomizableCSVExport::DD_ROUTING:
                         $value = $directDeposit->getRoutingNumber();
                         break;
                     case CustomizableCSVExport::DD_ACCOUNT:
                         $value = $directDeposit->getAccount();
                         break;
                     case CustomizableCSVExport::DD_AMOUNT:
                         $value = $directDeposit->getAmount();
                         break;
                     case CustomizableCSVExport::DD_AMOUNTCODE:
                         $transactionTypes = array(EmpDirectDebit::TRANSACTION_TYPE_BLANK => 'Blank', EmpDirectDebit::TRANSACTION_TYPE_PERCENTAGE => '%', EmpDirectDebit::TRANSACTION_TYPE_FLAT => 'Flat', EmpDirectDebit::TRANSACTION_TYPE_FLAT_MINUS => 'Flat-');
                         $value = CSVField::getValueFromMap($transactionTypes, $directDeposit->getTransactionType());
                         break;
                     case CustomizableCSVExport::DD_CHECKING:
                         $accountTypes = array(EmpDirectDebit::ACCOUNT_TYPE_CHECKING => "Y", EmpDirectDebit::ACCOUNT_TYPE_SAVINGS => "");
                         $value = CSVField::getValueFromMap($accountTypes, $directDeposit->getAccountType());
                         break;
                     default:
                         throw new Exception("Invalid direct deposit field");
                 }
             }
         } else {
             throw new Exception("Invalid Direct deposit field number");
         }
     } else {
         throw Exception("Invalid Direct Deposit field definition");
     }
     return $value;
 }
Ejemplo n.º 2
0
 /**
  * @todo Implement testGetValue().
  */
 public function testGetValue()
 {
     // Direct
     $field = new CSVField('name', CSVField::FIELD_TYPE_DIRECT);
     $row = array('id' => '1', 'name' => 'Ranasinghe', 'age' => 39);
     $ddList = array();
     $this->assertEquals('Ranasinghe', $field->getValue($row, $ddList));
     // invalid (unavailable) name
     $field = new CSVField('middle_name', CSVField::FIELD_TYPE_DIRECT);
     $this->assertEquals('', $field->getValue($row, $ddList));
     // Date
     $field = new CSVField('joined_date', CSVField::FIELD_TYPE_DATE);
     $row = array('id' => '1', 'name' => 'Ranasinghe', 'joined_date' => '2003-01-20');
     $ddList = array();
     $expected = LocaleUtil::getInstance()->formatDate($row['joined_date']);
     $this->assertEquals($expected, $field->getValue($row, $ddList));
     // invalid (unavailable) name
     $field = new CSVField('birth_date', CSVField::FIELD_TYPE_DATE);
     $this->assertEquals('', $field->getValue($row, $ddList));
     // From Map
     $genderMap = array(1 => "M", 2 => "F");
     $field = new CSVField('sex', CSVField::FIELD_TYPE_FROMMAP, $genderMap);
     $row = array('id' => '1', 'name' => 'Ranasinghe', 'sex' => 1, 'joined_date' => '2003-01-20');
     $ddList = array();
     $this->assertEquals('M', $field->getValue($row, $ddList));
     // invalid (unavailable) name
     $field = new CSVField('gender', CSVField::FIELD_TYPE_FROMMAP, $genderMap);
     $this->assertEquals('', $field->getValue($row, $ddList));
     // direct debit
     $dd1 = new EmpDirectDebit();
     $dd1->setEmpNumber(1);
     $dd1->setDDSeqNo(1);
     $dd1->setRoutingNumber(121212);
     $dd1->setAccount('An account');
     $dd1->setAmount(100);
     $dd1->setAccountType('CHECKING');
     $dd1->setTransactionType('BLANK');
     $dd2 = new EmpDirectDebit();
     $dd2->setEmpNumber(222);
     $dd2->setDDSeqNo(2);
     $dd2->setRoutingNumber(444444);
     $dd2->setAccount('My Account');
     $dd2->setAmount(200);
     $dd2->setAccountType('SAVINGS');
     $dd2->setTransactionType('PERC');
     $ddList = array($dd1);
     $field = new CSVField('DD1_Amount', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals(100, $field->getValue($row, $ddList));
     $field = new CSVField('DD1_Routing', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals(121212, $field->getValue($row, $ddList));
     $field = new CSVField('DD1_Account', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals('An account', $field->getValue($row, $ddList));
     $field = new CSVField('DD1_AmountCode', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals('Blank', $field->getValue($row, $ddList));
     $field = new CSVField('DD1_Checking', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals('Y', $field->getValue($row, $ddList));
     // Second direct debit settings
     $ddList = array($dd1, $dd2);
     $field = new CSVField('DD2_Checking', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals('', $field->getValue($row, $ddList));
     $field = new CSVField('DD2_AmountCode', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     $this->assertEquals('%', $field->getValue($row, $ddList));
     // invalid (unavailable) name
     $field = new CSVField('DD1_AAAmount', CSVField::FIELD_TYPE_DIRECT_DEBIT);
     try {
         $field->getValue($row, $ddList);
         $this->fail("Exception expected");
     } catch (Exception $e) {
     }
 }