/** * 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; }
/** * 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'])); } }