mirror of
https://github.com/Karaka-Management/oms-Exchange.git
synced 2026-02-15 17:28:41 +00:00
code fixes
This commit is contained in:
parent
ede30523c6
commit
92efabd600
|
|
@ -33,6 +33,7 @@ final class Exporter extends ExporterAbstract
|
||||||
/**
|
/**
|
||||||
* Export all data in time span
|
* Export all data in time span
|
||||||
*
|
*
|
||||||
|
* @param array $data Export data
|
||||||
* @param \DateTime $start Start time (inclusive)
|
* @param \DateTime $start Start time (inclusive)
|
||||||
* @param \DateTime $end End time (inclusive)
|
* @param \DateTime $end End time (inclusive)
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ final class Importer extends ImporterAbstract
|
||||||
/**
|
/**
|
||||||
* Import all data in time span
|
* Import all data in time span
|
||||||
*
|
*
|
||||||
|
* @param array $data Import data
|
||||||
* @param \DateTime $start Start time (inclusive)
|
* @param \DateTime $start Start time (inclusive)
|
||||||
* @param \DateTime $end End time (inclusive)
|
* @param \DateTime $end End time (inclusive)
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ declare(strict_types=1);
|
||||||
|
|
||||||
/** @var \phpOMS\Views\View $this */
|
/** @var \phpOMS\Views\View $this */
|
||||||
/** @var array $data */
|
/** @var array $data */
|
||||||
$report = $this->data['report'] ?? [];
|
$report = $this->data['report'] ?? [];
|
||||||
$headlines = \array_keys(\reset($report->data));
|
$headlines = \array_keys(\reset($report->data));
|
||||||
|
|
||||||
$out = \fopen('php://output', 'w');
|
$out = \fopen('php://output', 'w');
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ final class Exporter extends ExporterAbstract
|
||||||
/**
|
/**
|
||||||
* Export all data in time span
|
* Export all data in time span
|
||||||
*
|
*
|
||||||
|
* @param array $data Export data
|
||||||
* @param \DateTime $start Start time (inclusive)
|
* @param \DateTime $start Start time (inclusive)
|
||||||
* @param \DateTime $end End time (inclusive)
|
* @param \DateTime $end End time (inclusive)
|
||||||
*
|
*
|
||||||
|
|
@ -52,16 +53,23 @@ final class Exporter extends ExporterAbstract
|
||||||
$result = $this->exportReport($data);
|
$result = $this->exportReport($data);
|
||||||
|
|
||||||
$log = new ExchangeLog();
|
$log = new ExchangeLog();
|
||||||
$log->createdBy = $this->account;
|
$log->createdBy = $data['account'] ?? 0;
|
||||||
$log->type = ExchangeType::EXPORT;
|
$log->type = ExchangeType::EXPORT;
|
||||||
$log->message = $this->l11n->getText($data['language'], 'Exchange', '', 'ReportExported');
|
$log->message = $this->l11n->getText($data['language'], 'Exchange', '', 'ReportExported');
|
||||||
$log->subtype = 'language';
|
$log->subtype = 'language';
|
||||||
|
|
||||||
$result['logs'] = [$log];
|
$result['logs'] = [$log];
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create export.
|
||||||
|
*
|
||||||
|
* @return array{type:string, name:string, content:string}
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function exportReport(array $data) : array
|
private function exportReport(array $data) : array
|
||||||
{
|
{
|
||||||
$content = '';
|
$content = '';
|
||||||
|
|
@ -100,6 +108,15 @@ final class Exporter extends ExporterAbstract
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create pdf export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function pdfExport(array $data) : string
|
private function pdfExport(array $data) : string
|
||||||
{
|
{
|
||||||
$view = new View();
|
$view = new View();
|
||||||
|
|
@ -110,11 +127,20 @@ final class Exporter extends ExporterAbstract
|
||||||
|
|
||||||
$view->data['defaultTemplates'] = $data['templates'];
|
$view->data['defaultTemplates'] = $data['templates'];
|
||||||
$view->data['defaultAssets'] = $data['assets'];
|
$view->data['defaultAssets'] = $data['assets'];
|
||||||
$view->data['report'] = $data['report'];
|
$view->data['report'] = $data['report'];
|
||||||
|
|
||||||
return $view->render();
|
return $view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create csv export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function csvExport(array $data) : string
|
private function csvExport(array $data) : string
|
||||||
{
|
{
|
||||||
$view = new View();
|
$view = new View();
|
||||||
|
|
@ -125,11 +151,20 @@ final class Exporter extends ExporterAbstract
|
||||||
|
|
||||||
$view->data['defaultTemplates'] = $data['templates'];
|
$view->data['defaultTemplates'] = $data['templates'];
|
||||||
$view->data['defaultAssets'] = $data['assets'];
|
$view->data['defaultAssets'] = $data['assets'];
|
||||||
$view->data['report'] = $data['report'];
|
$view->data['report'] = $data['report'];
|
||||||
|
|
||||||
return $view->render();
|
return $view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create excel export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function excelExport(array $data) : string
|
private function excelExport(array $data) : string
|
||||||
{
|
{
|
||||||
$view = new View();
|
$view = new View();
|
||||||
|
|
@ -140,43 +175,79 @@ final class Exporter extends ExporterAbstract
|
||||||
|
|
||||||
$view->data['defaultTemplates'] = $data['templates'];
|
$view->data['defaultTemplates'] = $data['templates'];
|
||||||
$view->data['defaultAssets'] = $data['assets'];
|
$view->data['defaultAssets'] = $data['assets'];
|
||||||
$view->data['report'] = $data['report'];
|
$view->data['report'] = $data['report'];
|
||||||
|
|
||||||
return $view->render();
|
return $view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create xml export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function xmlExport(array $data) : string
|
private function xmlExport(array $data) : string
|
||||||
{
|
{
|
||||||
$defaultTemplates = $data['templates'] ?? [];
|
$defaultTemplates = $data['templates'] ?? [];
|
||||||
$report = $data['report'] ?? null;
|
$report = $data['report'] ?? null;
|
||||||
$type = $data['type'] ?? 'csv';
|
$type = $data['type'] ?? 'csv';
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create html export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function htmlExport(array $data) : string
|
private function htmlExport(array $data) : string
|
||||||
{
|
{
|
||||||
$defaultTemplates = $data['templates'] ?? [];
|
$defaultTemplates = $data['templates'] ?? [];
|
||||||
$report = $data['report'] ?? null;
|
$report = $data['report'] ?? null;
|
||||||
$type = $data['type'] ?? 'csv';
|
$type = $data['type'] ?? 'csv';
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create word export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function wordExport(array $data) : string
|
private function wordExport(array $data) : string
|
||||||
{
|
{
|
||||||
$defaultTemplates = $data['templates'] ?? [];
|
$defaultTemplates = $data['templates'] ?? [];
|
||||||
$report = $data['report'] ?? null;
|
$report = $data['report'] ?? null;
|
||||||
$type = $data['type'] ?? 'csv';
|
$type = $data['type'] ?? 'csv';
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create json export
|
||||||
|
*
|
||||||
|
* @param array $data Data to export
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function jsonExport(array $data) : string
|
private function jsonExport(array $data) : string
|
||||||
{
|
{
|
||||||
$defaultTemplates = $data['templates'] ?? [];
|
$defaultTemplates = $data['templates'] ?? [];
|
||||||
$report = $data['report'] ?? null;
|
$report = $data['report'] ?? null;
|
||||||
$type = $data['type'] ?? 'csv';
|
$type = $data['type'] ?? 'csv';
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ final class Importer extends ImporterAbstract
|
||||||
/**
|
/**
|
||||||
* Import all data in time span
|
* Import all data in time span
|
||||||
*
|
*
|
||||||
|
* @param array $data Import data
|
||||||
* @param \DateTime $start Start time (inclusive)
|
* @param \DateTime $start Start time (inclusive)
|
||||||
* @param \DateTime $end End time (inclusive)
|
* @param \DateTime $end End time (inclusive)
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,6 @@ declare(strict_types=1);
|
||||||
* @link https://jingga.app
|
* @link https://jingga.app
|
||||||
*/
|
*/
|
||||||
return [
|
return [
|
||||||
'Language' => 'Language',
|
'Language' => 'Language',
|
||||||
'ReportExported' => 'Data got exported',
|
'ReportExported' => 'Data got exported',
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ declare(strict_types=1);
|
||||||
namespace Modules\Exchange\Controller;
|
namespace Modules\Exchange\Controller;
|
||||||
|
|
||||||
use Modules\Admin\Models\NullAccount;
|
use Modules\Admin\Models\NullAccount;
|
||||||
|
use Modules\Admin\Models\SettingsEnum as AdminSettingsEnum;
|
||||||
use Modules\Exchange\Models\ExchangeLogMapper;
|
use Modules\Exchange\Models\ExchangeLogMapper;
|
||||||
use Modules\Exchange\Models\ExchangeSetting;
|
use Modules\Exchange\Models\ExchangeSetting;
|
||||||
use Modules\Exchange\Models\ExchangeSettingMapper;
|
use Modules\Exchange\Models\ExchangeSettingMapper;
|
||||||
|
|
@ -27,6 +28,7 @@ use Modules\Media\Models\CollectionMapper;
|
||||||
use Modules\Media\Models\MediaMapper;
|
use Modules\Media\Models\MediaMapper;
|
||||||
use Modules\Media\Models\NullCollection;
|
use Modules\Media\Models\NullCollection;
|
||||||
use Modules\Media\Models\PathSettings;
|
use Modules\Media\Models\PathSettings;
|
||||||
|
use Modules\Organization\Models\UnitMapper;
|
||||||
use phpOMS\Account\PermissionType;
|
use phpOMS\Account\PermissionType;
|
||||||
use phpOMS\DataStorage\Database\Connection\ConnectionFactory;
|
use phpOMS\DataStorage\Database\Connection\ConnectionFactory;
|
||||||
use phpOMS\DataStorage\Database\Connection\NullConnection;
|
use phpOMS\DataStorage\Database\Connection\NullConnection;
|
||||||
|
|
@ -38,8 +40,6 @@ use phpOMS\Message\RequestAbstract;
|
||||||
use phpOMS\Message\ResponseAbstract;
|
use phpOMS\Message\ResponseAbstract;
|
||||||
use phpOMS\Model\Message\FormValidation;
|
use phpOMS\Model\Message\FormValidation;
|
||||||
use phpOMS\Utils\StringUtils;
|
use phpOMS\Utils\StringUtils;
|
||||||
use Modules\Admin\Models\SettingsEnum as AdminSettingsEnum;
|
|
||||||
use Modules\Organization\Models\UnitMapper;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exchange controller class.
|
* Exchange controller class.
|
||||||
|
|
@ -69,17 +69,17 @@ final class ApiController extends Controller
|
||||||
$dbData = [];
|
$dbData = [];
|
||||||
if ($request->hasData('dbtype')) {
|
if ($request->hasData('dbtype')) {
|
||||||
$dbData = [
|
$dbData = [
|
||||||
'dbtype' => (string) $request->getData('dbtype'),
|
'dbtype' => (string) $request->getData('dbtype'),
|
||||||
'dbhost' => $request->getDataString('dbhost') ?? '',
|
'dbhost' => $request->getDataString('dbhost') ?? '',
|
||||||
'dbport' => $request->getDataInt('dbport') ?? 0,
|
'dbport' => $request->getDataInt('dbport') ?? 0,
|
||||||
'dbdatabase' => $request->getDataString('dbdatabase') ?? '',
|
'dbdatabase' => $request->getDataString('dbdatabase') ?? '',
|
||||||
'dblogin' => $request->getDataString('dblogin') ?? '',
|
'dblogin' => $request->getDataString('dblogin') ?? '',
|
||||||
'dbpassword' => $request->getDataString('dbpassword') ?? '',
|
'dbpassword' => $request->getDataString('dbpassword') ?? '',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$importer = $this->getImporter((int) $request->getData('id'), $dbData);
|
$importer = $this->getImporter((int) $request->getData('id'), $dbData);
|
||||||
$import = $importer === null ? [] : $importer->importFromRequest($request, $response);
|
$import = $importer === null ? [] : $importer->importFromRequest($request, $response);
|
||||||
|
|
||||||
if (isset($import['logs'])) {
|
if (isset($import['logs'])) {
|
||||||
foreach ($import['logs'] as $log) {
|
foreach ($import['logs'] as $log) {
|
||||||
|
|
@ -94,6 +94,16 @@ final class ApiController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get importer by id
|
||||||
|
*
|
||||||
|
* @param int $id Id of the importer
|
||||||
|
* @param array $dbData Database connection data
|
||||||
|
*
|
||||||
|
* @return null|\Modules\Exchange\Interface\Importer
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function getImporter(int $id, array $dbData) : ?\Modules\Exchange\Interface\Importer
|
private function getImporter(int $id, array $dbData) : ?\Modules\Exchange\Interface\Importer
|
||||||
{
|
{
|
||||||
$importer = null;
|
$importer = null;
|
||||||
|
|
@ -330,6 +340,15 @@ final class ApiController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get exporter by id
|
||||||
|
*
|
||||||
|
* @param int $id Id of the exporter
|
||||||
|
*
|
||||||
|
* @return null|\Modules\Exchange\Interface\Exporter
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
private function getExporter(int $id) : ?\Modules\Exchange\Interface\Exporter
|
private function getExporter(int $id) : ?\Modules\Exchange\Interface\Exporter
|
||||||
{
|
{
|
||||||
$exporter = null;
|
$exporter = null;
|
||||||
|
|
@ -366,6 +385,16 @@ final class ApiController extends Controller
|
||||||
return $exporter;
|
return $exporter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the data of the export
|
||||||
|
*
|
||||||
|
* @param int $id Exporter id
|
||||||
|
* @param array $data Export data
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
public function exportData(int $id, array $data) : array
|
public function exportData(int $id, array $data) : array
|
||||||
{
|
{
|
||||||
$exporter = $this->getExporter($id);
|
$exporter = $this->getExporter($id);
|
||||||
|
|
@ -442,6 +471,18 @@ final class ApiController extends Controller
|
||||||
return $setting;
|
return $setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to export a report
|
||||||
|
*
|
||||||
|
* @param RequestAbstract $request Request
|
||||||
|
* @param HttpResponse $response Response
|
||||||
|
* @param Report $report Report to export
|
||||||
|
* @param string $type Export type (e.g. pdf,csv,html,xml,json,xls)
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
public function apiExportReport(
|
public function apiExportReport(
|
||||||
RequestAbstract $request,
|
RequestAbstract $request,
|
||||||
ResponseAbstract $response,
|
ResponseAbstract $response,
|
||||||
|
|
@ -449,7 +490,7 @@ final class ApiController extends Controller
|
||||||
string $type
|
string $type
|
||||||
) : void
|
) : void
|
||||||
{
|
{
|
||||||
/** @var \Model\Setting $settings */
|
/** @var \Model\Setting[] $settings */
|
||||||
$settings = $this->app->appSettings->get(null,
|
$settings = $this->app->appSettings->get(null,
|
||||||
[
|
[
|
||||||
AdminSettingsEnum::DEFAULT_TEMPLATES,
|
AdminSettingsEnum::DEFAULT_TEMPLATES,
|
||||||
|
|
@ -497,12 +538,12 @@ final class ApiController extends Controller
|
||||||
|
|
||||||
$export = $exporter === null ? [] : $exporter->export(
|
$export = $exporter === null ? [] : $exporter->export(
|
||||||
[
|
[
|
||||||
'assets' => $defaultAssets,
|
'assets' => $defaultAssets,
|
||||||
'templates' => $defaultTemplates,
|
'templates' => $defaultTemplates,
|
||||||
'report' => $report,
|
'report' => $report,
|
||||||
'type' => $type,
|
'type' => $type,
|
||||||
'organization' => $organization,
|
'organization' => $organization,
|
||||||
'language' => $response->header->l11n->language,
|
'language' => $response->header->l11n->language,
|
||||||
],
|
],
|
||||||
new \DateTime(), new \DateTime()
|
new \DateTime(), new \DateTime()
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,13 @@ class Report
|
||||||
|
|
||||||
public array $data = [];
|
public array $data = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->dt = new \DateTime('now');
|
$this->dt = new \DateTime('now');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ use phpOMS\Message\Http\HttpRequest;
|
||||||
use phpOMS\Message\Http\HttpResponse;
|
use phpOMS\Message\Http\HttpResponse;
|
||||||
use phpOMS\Message\RequestAbstract;
|
use phpOMS\Message\RequestAbstract;
|
||||||
use phpOMS\Message\ResponseAbstract;
|
use phpOMS\Message\ResponseAbstract;
|
||||||
use phpOMS\Uri\HttpUri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ use phpOMS\Message\Http\HttpRequest;
|
||||||
use phpOMS\Message\Http\HttpResponse;
|
use phpOMS\Message\Http\HttpResponse;
|
||||||
use phpOMS\Message\RequestAbstract;
|
use phpOMS\Message\RequestAbstract;
|
||||||
use phpOMS\Message\ResponseAbstract;
|
use phpOMS\Message\ResponseAbstract;
|
||||||
use phpOMS\Uri\HttpUri;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user