diff --git a/app/Service/Export/ExportService.php b/app/Service/Export/ExportService.php index 8aa0059f..268e7d4f 100644 --- a/app/Service/Export/ExportService.php +++ b/app/Service/Export/ExportService.php @@ -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', diff --git a/app/Service/Import/Importers/SolidtimeImporter.php b/app/Service/Import/Importers/SolidtimeImporter.php index f5b76190..7aa61176 100644 --- a/app/Service/Import/Importers/SolidtimeImporter.php +++ b/app/Service/Import/Importers/SolidtimeImporter.php @@ -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([