Specify enclosure and escape for solidtime export and import

This commit is contained in:
Constantin Graf
2024-10-15 13:35:37 +02:00
parent 85f4a3049c
commit 0290013d19
2 changed files with 43 additions and 0 deletions

View File

@@ -47,6 +47,9 @@ class ExportService
// Organizations
try {
$writer = Writer::createFromPath($temporaryDirectory->path('organizations.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'name',
@@ -66,6 +69,9 @@ class ExportService
// Organization invitations
$writer = Writer::createFromPath($temporaryDirectory->path('organization_invitations.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'email',
@@ -91,6 +97,9 @@ class ExportService
// Time entries
$writer = Writer::createFromPath($temporaryDirectory->path('time_entries.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'description',
@@ -139,6 +148,9 @@ class ExportService
// Clients
$writer = Writer::createFromPath($temporaryDirectory->path('clients.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'name',
@@ -164,6 +176,9 @@ class ExportService
// Projects
$writer = Writer::createFromPath($temporaryDirectory->path('projects.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'name',
@@ -199,6 +214,9 @@ class ExportService
// Project members
$writer = Writer::createFromPath($temporaryDirectory->path('project_members.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'billable_rate',
@@ -226,6 +244,9 @@ class ExportService
// Members
$writer = Writer::createFromPath($temporaryDirectory->path('members.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'user_id',
@@ -260,6 +281,9 @@ class ExportService
// Tasks
$writer = Writer::createFromPath($temporaryDirectory->path('tasks.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'name',
@@ -287,6 +311,9 @@ class ExportService
// Tags
$writer = Writer::createFromPath($temporaryDirectory->path('tags.csv'), 'w+');
$writer->setDelimiter(',');
$writer->setEnclosure('"');
$writer->setEscape('');
$writer->insertOne([
'id',
'name',

View File

@@ -60,6 +60,8 @@ class SolidtimeImporter extends DefaultImporter
$clientsReader = Reader::createFromPath($temporaryDirectory->path('clients.csv'));
$clientsReader->setHeaderOffset(0);
$clientsReader->setDelimiter(',');
$clientsReader->setEnclosure('"');
$clientsReader->setEscape('');
if (! file_exists($temporaryDirectory->path('members.csv'))) {
throw new ImportException('File "members.csv" missing in ZIP');
@@ -67,6 +69,8 @@ class SolidtimeImporter extends DefaultImporter
$membersReader = Reader::createFromPath($temporaryDirectory->path('members.csv'));
$membersReader->setHeaderOffset(0);
$membersReader->setDelimiter(',');
$membersReader->setEnclosure('"');
$membersReader->setEscape('');
if (! file_exists($temporaryDirectory->path('organization_invitations.csv'))) {
throw new ImportException('File "organization_invitations.csv" missing in ZIP');
@@ -74,6 +78,8 @@ class SolidtimeImporter extends DefaultImporter
$organizationInvitationsReader = Reader::createFromPath($temporaryDirectory->path('organization_invitations.csv'));
$organizationInvitationsReader->setHeaderOffset(0);
$organizationInvitationsReader->setDelimiter(',');
$organizationInvitationsReader->setEnclosure('"');
$organizationInvitationsReader->setEscape('');
if (! file_exists($temporaryDirectory->path('project_members.csv'))) {
throw new ImportException('File "project_members.csv" missing in ZIP');
@@ -81,6 +87,8 @@ class SolidtimeImporter extends DefaultImporter
$projectMembersReader = Reader::createFromPath($temporaryDirectory->path('project_members.csv'));
$projectMembersReader->setHeaderOffset(0);
$projectMembersReader->setDelimiter(',');
$projectMembersReader->setEnclosure('"');
$projectMembersReader->setEscape('');
if (! file_exists($temporaryDirectory->path('projects.csv'))) {
throw new ImportException('File "projects.csv" missing in ZIP');
@@ -88,6 +96,8 @@ class SolidtimeImporter extends DefaultImporter
$projectsReader = Reader::createFromPath($temporaryDirectory->path('projects.csv'));
$projectsReader->setHeaderOffset(0);
$projectsReader->setDelimiter(',');
$projectsReader->setEnclosure('"');
$projectsReader->setEscape('');
if (! file_exists($temporaryDirectory->path('tags.csv'))) {
throw new ImportException('File "tags.csv" missing in ZIP');
@@ -95,6 +105,8 @@ class SolidtimeImporter extends DefaultImporter
$tagsReader = Reader::createFromPath($temporaryDirectory->path('tags.csv'));
$tagsReader->setHeaderOffset(0);
$tagsReader->setDelimiter(',');
$tagsReader->setEnclosure('"');
$tagsReader->setEscape('');
if (! file_exists($temporaryDirectory->path('tasks.csv'))) {
throw new ImportException('File "tasks.csv" missing in ZIP');
@@ -102,6 +114,8 @@ class SolidtimeImporter extends DefaultImporter
$tasksReader = Reader::createFromPath($temporaryDirectory->path('tasks.csv'));
$tasksReader->setHeaderOffset(0);
$tasksReader->setDelimiter(',');
$tasksReader->setEnclosure('"');
$tasksReader->setEscape('');
if (! file_exists($temporaryDirectory->path('time_entries.csv'))) {
throw new ImportException('File "time_entries.csv" missing in ZIP');
@@ -109,6 +123,8 @@ class SolidtimeImporter extends DefaultImporter
$timeEntriesReader = Reader::createFromPath($temporaryDirectory->path('time_entries.csv'));
$timeEntriesReader->setHeaderOffset(0);
$timeEntriesReader->setDelimiter(',');
$timeEntriesReader->setEnclosure('"');
$timeEntriesReader->setEscape('');
foreach ($clientsReader as $client) {
$this->clientImportHelper->getKey([