Exemple #1
0
 /**
  * Constructs a FiscalYear for the previous year from this instances start.
  * @return FiscalYear A new instance of FiscalYear
  */
 public function createPreviousFiscalYear()
 {
     // create new dates
     $dateEnd = clone $this->dateEnd;
     $dateEnd->modify('-1 year');
     $dateStart = clone $this->dateStart;
     $dateStart->modify('-1 year');
     // create fiscal year and set start & end
     $fiscalYear = new FiscalYear();
     $fiscalYear->setDateEnd($dateEnd);
     $fiscalYear->setDateStart($dateStart);
     // return new FiscalYear
     return $fiscalYear;
 }
Exemple #2
0
 /**
  * Parse balance data from TSV-file
  *
  * @param $value
  * @param Data\Company    $company    The company to parse balances for
  * @param Data\FiscalYear $fiscalYear The fiscal year
  * @param int $skipHeaderLines
  */
 public function parseBalance($value, Data\Company $company, Data\FiscalYear $fiscalYear, $skipHeaderLines = 1)
 {
     // parse text
     $rows = $this->getTabularData($value);
     // kill header lines
     for ($i = 0; $i < $skipHeaderLines; $i++) {
         array_shift($rows);
     }
     foreach ($rows as $row) {
         $data = array('account_id' => $row[0], 'account_name' => $row[1], 'incoming' => (double) str_replace(array(' ', ' ', '.', ','), array('', '', '', '.'), $row[2]), 'outgoing' => (double) str_replace(array(' ', ' ', '.', ','), array('', '', '', '.'), $row[5]));
         // account - try fetch it from the company
         $account = $company->getAccount($data['account_id']);
         // account not found? create it.
         if ($account === null) {
             $account = (new Data\Account($data['account_id']))->setName($data['account_name']);
             $company->addAccount($account);
         }
         // add balances
         $fiscalYear->addAccountBalance((new Data\AccountBalance($account))->setIncomingBalance($data['incoming'])->setOutgoingBalance($data['outgoing']));
     }
 }