added project importer and grandtotal converter (#1468)

This commit is contained in:
Kevin Papst
2020-10-11 22:08:00 +02:00
committed by GitHub
parent 0ce02b4f06
commit 996f05c73a
68 changed files with 2827 additions and 384 deletions

View File

@@ -69,7 +69,7 @@ class CustomerFixtures extends Fixture
}
$manager->flush();
$manager->clear();
$manager->clear(Activity::class);
}
$amountGlobalActivities = rand(self::MIN_GLOBAL_ACTIVITIES, self::MAX_GLOBAL_ACTIVITIES);
@@ -80,7 +80,9 @@ class CustomerFixtures extends Fixture
}
$manager->flush();
$manager->clear();
$manager->clear(Activity::class);
$manager->clear(Project::class);
$manager->clear(Customer::class);
}
/**

View File

@@ -32,9 +32,6 @@ class TeamFixtures extends Fixture implements DependentFixtureInterface
public const MAX_USERS_PER_TEAM = 15;
public const MAX_PROJECTS_PER_TEAM = 5;
// lower batch size, as user preferences are added in the same run
public const BATCH_SIZE = 50;
/**
* @return class-string[]
*/
@@ -127,11 +124,6 @@ class TeamFixtures extends Fixture implements DependentFixtureInterface
}
$manager->persist($team);
if ($i % self::BATCH_SIZE === 0) {
$manager->flush();
$manager->clear(Team::class);
}
}
$manager->flush();

View File

@@ -40,9 +40,11 @@ class TimesheetFixtures extends Fixture implements DependentFixtureInterface
public const TIMERANGE_RUNNING = 1047; // in minutes = 17:45 hours
public const MIN_MINUTES_PER_ENTRY = 15;
public const MAX_MINUTES_PER_ENTRY = 840; // 14h
public const MAX_TAG_PER_ENTRY = 3;
public const MAX_DESCRIPTION_LENGTH = 500;
public const ADD_TAGS_MAX_ENTRIES = 10000;
public const MAX_TAG_PER_ENTRY = 3;
public const BATCH_SIZE = 100;
/**
@@ -117,6 +119,8 @@ class TimesheetFixtures extends Fixture implements DependentFixtureInterface
null,
false
);
$all++;
$manager->persist($entry);
}
@@ -125,13 +129,16 @@ class TimesheetFixtures extends Fixture implements DependentFixtureInterface
}
$manager->flush();
$entries = $manager->getRepository(Timesheet::class)->findAll();
foreach ($entries as $temp) {
$tagAmount = rand(0, self::MAX_TAG_PER_ENTRY);
for ($iTag = 0; $iTag < $tagAmount; $iTag++) {
$tagId = rand(1, TagFixtures::MAX_TAGS);
if (isset($allTags[$tagId])) {
$temp->addTag($allTags[$tagId]);
// TODO this breaks if too many records need to be loaded: find a better way of adding tags
if ($all < self::ADD_TAGS_MAX_ENTRIES) {
$entries = $manager->getRepository(Timesheet::class)->findAll();
foreach ($entries as $temp) {
$tagAmount = rand(0, self::MAX_TAG_PER_ENTRY);
for ($iTag = 0; $iTag < $tagAmount; $iTag++) {
$tagId = rand(1, TagFixtures::MAX_TAGS);
if (isset($allTags[$tagId])) {
$temp->addTag($allTags[$tagId]);
}
}
}
}

View File

@@ -41,9 +41,6 @@ class UserFixtures extends Fixture
public const MIN_RATE = 30;
public const MAX_RATE = 120;
// lower batch size, as user preferences are added in the same run
public const BATCH_SIZE = 50;
/**
* @var UserPasswordEncoderInterface
*/
@@ -88,14 +85,18 @@ class UserFixtures extends Fixture
->setEnabled($userData[6])
->setPassword($passwordEncoder->encodePassword($user, self::DEFAULT_PASSWORD))
->setApiToken($passwordEncoder->encodePassword($user, self::DEFAULT_API_TOKEN))
->setPreferences($this->getUserPreferences($user, $userData[7]))
;
$manager->persist($user);
$prefs = $this->getUserPreferences($user, $userData[7]);
$user->setPreferences($prefs);
$manager->persist($prefs[0]);
$manager->persist($prefs[1]);
}
$manager->flush();
$manager->clear();
$manager->clear(User::class);
$manager->clear(UserPreference::class);
}
/**
@@ -160,19 +161,17 @@ class UserFixtures extends Fixture
->setRoles([User::ROLE_USER])
->setEnabled(true)
->setPassword($passwordEncoder->encodePassword($user, self::DEFAULT_PASSWORD))
->setPreferences($this->getUserPreferences($user))
;
$manager->persist($user);
if ($i % self::BATCH_SIZE === 0) {
$manager->flush();
$manager->clear();
}
$prefs = $this->getUserPreferences($user);
$user->setPreferences($prefs);
$manager->persist($prefs[0]);
}
$manager->flush();
$manager->clear();
$manager->clear(User::class);
$manager->clear(UserPreference::class);
}
/**