Exemple #1
0
 /**
  * Generate SIE string (using charset CP437) for $chart
  *
  * @param  string          $description String describing this chart of accounts
  * @param  ChartOfAccounts $chart
  * @return string 
  */
 public function exportChart($description, ChartOfAccounts $chart)
 {
     assert('is_string($description)');
     // Generate header
     $program = self::quote($this->program);
     $description = self::quote($description);
     $version = self::quote($this->version);
     $creator = self::quote($this->creator);
     $chartType = self::quote($chart->getChartType());
     $sie = "#FILTYP KONTO" . self::EOL;
     $sie .= "#PROGRAM {$program} {$version}" . self::EOL;
     $sie .= "#TEXT {$description}" . self::EOL;
     $sie .= "#FORMAT PC8" . self::EOL;
     $sie .= "#GEN {$this->date->format('Ymd')} {$creator}" . self::EOL;
     $sie .= "#KPTYP {$chartType}" . self::EOL;
     $sie .= self::EOL;
     // Generate accounts
     foreach ($chart->getAccounts() as $account) {
         $number = self::quote($account->getNumber());
         $name = self::quote($account->getName());
         $type = self::quote($account->getType());
         $sie .= "#KONTO {$number} {$name}" . self::EOL;
         $sie .= "#KTYP {$number} {$type}" . self::EOL;
     }
     // Convert charset
     $sie = iconv("UTF-8", "CP437", $sie);
     return $sie;
 }