Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Report;
|
||||
|
||||
use Xentral\Components\Database\Database;
|
||||
use Xentral\Components\Util\StringUtil;
|
||||
use Xentral\Modules\Report\Data\ReportData;
|
||||
|
||||
abstract class AbstractReportExportService
|
||||
{
|
||||
/** @var string $fileExtension */
|
||||
protected $fileExtension = '';
|
||||
|
||||
/** @var Database $db */
|
||||
protected $db;
|
||||
|
||||
/** @var ReportService $service */
|
||||
protected $service;
|
||||
|
||||
/** @var ReportGateway $gateway */
|
||||
protected $gateway;
|
||||
|
||||
/** @var string */
|
||||
protected $tempDir;
|
||||
|
||||
/**
|
||||
* @param Database $db
|
||||
* @param ReportGateway $gateway
|
||||
* @param ReportService $service
|
||||
* @param string $tempDir
|
||||
*/
|
||||
public function __construct(Database $db, ReportGateway $gateway, ReportService $service, $tempDir)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->gateway = $gateway;
|
||||
$this->service = $service;
|
||||
$this->tempDir = $tempDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ReportData $report
|
||||
* @param string $filename
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function generateFileName(ReportData $report, $filename = '')
|
||||
{
|
||||
if($filename === ''){
|
||||
$filename = sprintf('Report_{BERICHTNAME}_{TIMESTAMP}.%s', $this->fileExtension);
|
||||
}
|
||||
$variables = ['{TIMESTAMP}', '{DATUM}', '{BERICHTNAME}'];
|
||||
$values = [time(), date('Y-m-d_H-i-s'), $report->getName()];
|
||||
$filename = str_replace($variables, $values, $filename);
|
||||
if (substr(strtolower($filename), -strlen($this->fileExtension)) !== strtolower($this->fileExtension)) {
|
||||
$filename = "{$filename}.{$this->fileExtension}";
|
||||
}
|
||||
|
||||
return StringUtil::toFilename($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $fileName
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function genereateFilePath($fileName)
|
||||
{
|
||||
return sprintf('%s%s', $this->tempDir, $fileName);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user