diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php index a675483..c2a776c 100644 --- a/src/DataFixtures/AppFixtures.php +++ b/src/DataFixtures/AppFixtures.php @@ -177,7 +177,7 @@ class AppFixtures extends Fixture $tagCalendar->setColor('#222783'); $manager->persist($tagCalendar); - // Task Groups + // Task Groups — SIRH $groupFrontend = new TaskGroup(); $groupFrontend->setTitle('Frontend'); $groupFrontend->setColor('#4A90D9'); @@ -190,7 +190,48 @@ class AppFixtures extends Fixture $groupBackend->setProject($projectSirh); $manager->persist($groupBackend); - // Tasks + // Task Groups — CRM + $groupCrmUi = new TaskGroup(); + $groupCrmUi->setTitle('Interface'); + $groupCrmUi->setColor('#E91E63'); + $groupCrmUi->setProject($projectCrm); + $manager->persist($groupCrmUi); + + $groupCrmApi = new TaskGroup(); + $groupCrmApi->setTitle('API'); + $groupCrmApi->setColor('#9C27B0'); + $groupCrmApi->setProject($projectCrm); + $manager->persist($groupCrmApi); + + // Task Groups — ERP + $groupErpStock = new TaskGroup(); + $groupErpStock->setTitle('Stocks'); + $groupErpStock->setColor('#4A90D9'); + $groupErpStock->setProject($projectErp); + $manager->persist($groupErpStock); + + $groupErpFacturation = new TaskGroup(); + $groupErpFacturation->setTitle('Facturation'); + $groupErpFacturation->setColor('#FF8F00'); + $groupErpFacturation->setProject($projectErp); + $manager->persist($groupErpFacturation); + + // Task Groups — Site vitrine + $groupSiteDesign = new TaskGroup(); + $groupSiteDesign->setTitle('Design'); + $groupSiteDesign->setColor('#26A69A'); + $groupSiteDesign->setProject($projectInterne); + $manager->persist($groupSiteDesign); + + $groupSiteContenu = new TaskGroup(); + $groupSiteContenu->setTitle('Contenu'); + $groupSiteContenu->setColor('#795548'); + $groupSiteContenu->setProject($projectInterne); + $manager->persist($groupSiteContenu); + + // ============================================= + // Tasks — SIRH + // ============================================= $task1 = new Task(); $task1->setNumber(1); $task1->setTitle('Création d\'une page de login'); @@ -260,8 +301,199 @@ class AppFixtures extends Fixture $task6->addTag($tagAuth); $manager->persist($task6); - // --- Time Entries (SIRH project, admin user) --- + // ============================================= + // Tasks — CRM + // ============================================= + $taskCrm1 = new Task(); + $taskCrm1->setNumber(1); + $taskCrm1->setTitle('Liste des contacts'); + $taskCrm1->setStatus($statusDone); + $taskCrm1->setEffort($effortL); + $taskCrm1->setPriority($priorityHigh); + $taskCrm1->setAssignee($admin); + $taskCrm1->setGroup($groupCrmUi); + $taskCrm1->setProject($projectCrm); + $manager->persist($taskCrm1); + + $taskCrm2 = new Task(); + $taskCrm2->setNumber(2); + $taskCrm2->setTitle('Fiche contact détaillée'); + $taskCrm2->setStatus($statusInProgress); + $taskCrm2->setEffort($effortM); + $taskCrm2->setPriority($priorityMedium); + $taskCrm2->setAssignee($admin); + $taskCrm2->setGroup($groupCrmUi); + $taskCrm2->setProject($projectCrm); + $manager->persist($taskCrm2); + + $taskCrm3 = new Task(); + $taskCrm3->setNumber(3); + $taskCrm3->setTitle('Import CSV contacts'); + $taskCrm3->setStatus($statusTodo); + $taskCrm3->setEffort($effortXL); + $taskCrm3->setPriority($priorityLow); + $taskCrm3->setAssignee($admin); + $taskCrm3->setGroup($groupCrmApi); + $taskCrm3->setProject($projectCrm); + $manager->persist($taskCrm3); + + $taskCrm4 = new Task(); + $taskCrm4->setNumber(4); + $taskCrm4->setTitle('Pipeline de vente'); + $taskCrm4->setStatus($statusInProgress); + $taskCrm4->setEffort($effortXXL); + $taskCrm4->setPriority($priorityHigh); + $taskCrm4->setAssignee($admin); + $taskCrm4->setGroup($groupCrmUi); + $taskCrm4->setProject($projectCrm); + $taskCrm4->addTag($tagCalendar); + $manager->persist($taskCrm4); + + $taskCrm5 = new Task(); + $taskCrm5->setNumber(5); + $taskCrm5->setTitle('API recherche contacts'); + $taskCrm5->setStatus($statusReview); + $taskCrm5->setEffort($effortM); + $taskCrm5->setPriority($priorityMedium); + $taskCrm5->setAssignee($admin); + $taskCrm5->setGroup($groupCrmApi); + $taskCrm5->setProject($projectCrm); + $manager->persist($taskCrm5); + + // ============================================= + // Tasks — ERP + // ============================================= + $taskErp1 = new Task(); + $taskErp1->setNumber(1); + $taskErp1->setTitle('Tableau de bord stocks'); + $taskErp1->setStatus($statusDone); + $taskErp1->setEffort($effortL); + $taskErp1->setPriority($priorityHigh); + $taskErp1->setAssignee($admin); + $taskErp1->setGroup($groupErpStock); + $taskErp1->setProject($projectErp); + $manager->persist($taskErp1); + + $taskErp2 = new Task(); + $taskErp2->setNumber(2); + $taskErp2->setTitle('Alertes stock bas'); + $taskErp2->setStatus($statusInProgress); + $taskErp2->setEffort($effortM); + $taskErp2->setPriority($priorityHigh); + $taskErp2->setAssignee($admin); + $taskErp2->setGroup($groupErpStock); + $taskErp2->setProject($projectErp); + $manager->persist($taskErp2); + + $taskErp3 = new Task(); + $taskErp3->setNumber(3); + $taskErp3->setTitle('Génération factures PDF'); + $taskErp3->setStatus($statusTodo); + $taskErp3->setEffort($effortXXL); + $taskErp3->setPriority($priorityMedium); + $taskErp3->setAssignee($admin); + $taskErp3->setGroup($groupErpFacturation); + $taskErp3->setProject($projectErp); + $manager->persist($taskErp3); + + $taskErp4 = new Task(); + $taskErp4->setNumber(4); + $taskErp4->setTitle('Historique mouvements stock'); + $taskErp4->setStatus($statusReview); + $taskErp4->setEffort($effortL); + $taskErp4->setPriority($priorityLow); + $taskErp4->setAssignee($admin); + $taskErp4->setGroup($groupErpStock); + $taskErp4->setProject($projectErp); + $manager->persist($taskErp4); + + $taskErp5 = new Task(); + $taskErp5->setNumber(5); + $taskErp5->setTitle('Export comptable'); + $taskErp5->setStatus($statusBlocked); + $taskErp5->setEffort($effortXL); + $taskErp5->setPriority($priorityHigh); + $taskErp5->setAssignee($admin); + $taskErp5->setGroup($groupErpFacturation); + $taskErp5->setProject($projectErp); + $manager->persist($taskErp5); + + $taskErp6 = new Task(); + $taskErp6->setNumber(6); + $taskErp6->setTitle('Inventaire annuel'); + $taskErp6->setStatus($statusTodo); + $taskErp6->setEffort($effortS); + $taskErp6->setPriority($priorityLow); + $taskErp6->setAssignee($admin); + $taskErp6->setGroup($groupErpStock); + $taskErp6->setProject($projectErp); + $taskErp6->addTag($tagCalendar); + $manager->persist($taskErp6); + + // ============================================= + // Tasks — Site vitrine + // ============================================= + $taskSite1 = new Task(); + $taskSite1->setNumber(1); + $taskSite1->setTitle('Maquette page d\'accueil'); + $taskSite1->setStatus($statusDone); + $taskSite1->setEffort($effortM); + $taskSite1->setPriority($priorityHigh); + $taskSite1->setAssignee($admin); + $taskSite1->setGroup($groupSiteDesign); + $taskSite1->setProject($projectInterne); + $manager->persist($taskSite1); + + $taskSite2 = new Task(); + $taskSite2->setNumber(2); + $taskSite2->setTitle('Intégration responsive'); + $taskSite2->setStatus($statusInProgress); + $taskSite2->setEffort($effortL); + $taskSite2->setPriority($priorityMedium); + $taskSite2->setAssignee($admin); + $taskSite2->setGroup($groupSiteDesign); + $taskSite2->setProject($projectInterne); + $manager->persist($taskSite2); + + $taskSite3 = new Task(); + $taskSite3->setNumber(3); + $taskSite3->setTitle('Rédaction page "À propos"'); + $taskSite3->setStatus($statusTodo); + $taskSite3->setEffort($effortS); + $taskSite3->setPriority($priorityLow); + $taskSite3->setAssignee($admin); + $taskSite3->setGroup($groupSiteContenu); + $taskSite3->setProject($projectInterne); + $manager->persist($taskSite3); + + $taskSite4 = new Task(); + $taskSite4->setNumber(4); + $taskSite4->setTitle('Formulaire de contact'); + $taskSite4->setStatus($statusReview); + $taskSite4->setEffort($effortM); + $taskSite4->setPriority($priorityMedium); + $taskSite4->setAssignee($admin); + $taskSite4->setGroup($groupSiteDesign); + $taskSite4->setProject($projectInterne); + $taskSite4->addTag($tagAuth); + $manager->persist($taskSite4); + + $taskSite5 = new Task(); + $taskSite5->setNumber(5); + $taskSite5->setTitle('SEO et métadonnées'); + $taskSite5->setStatus($statusTodo); + $taskSite5->setEffort($effortS); + $taskSite5->setPriority($priorityHigh); + $taskSite5->setAssignee($admin); + $taskSite5->setGroup($groupSiteContenu); + $taskSite5->setProject($projectInterne); + $manager->persist($taskSite5); + + // ============================================= + // Time Entries — tous les projets + // ============================================= $timeEntryData = [ + // SIRH — lundi à vendredi ['title' => 'Réunion', 'project' => $projectSirh, 'tag' => $tagAuth, 'start' => '09:00', 'stop' => '09:45', 'day' => 1], ['title' => 'Page accueil', 'project' => $projectSirh, 'tag' => $tagPassword, 'start' => '10:00', 'stop' => '12:00', 'day' => 0], ['title' => 'Design admin', 'project' => $projectSirh, 'tag' => $tagAuth, 'start' => '09:30', 'stop' => '11:00', 'day' => 2], @@ -272,6 +504,27 @@ class AppFixtures extends Fixture ['title' => 'Script backup BDD', 'project' => $projectSirh, 'tag' => $tagAuth, 'start' => '13:30', 'stop' => '15:00', 'day' => 3], ['title' => 'Maquette', 'project' => $projectSirh, 'tag' => null, 'start' => '09:00', 'stop' => '11:00', 'day' => 4], ['title' => 'PC compta', 'project' => $projectSirh, 'tag' => null, 'start' => '13:30', 'stop' => '15:30', 'day' => 4], + // CRM — lundi à vendredi + ['title' => 'Liste contacts UI', 'project' => $projectCrm, 'tag' => null, 'start' => '08:30', 'stop' => '10:00', 'day' => 0], + ['title' => 'Fiche contact', 'project' => $projectCrm, 'tag' => null, 'start' => '15:30', 'stop' => '17:00', 'day' => 0], + ['title' => 'Pipeline vente', 'project' => $projectCrm, 'tag' => $tagCalendar, 'start' => '08:30', 'stop' => '09:30', 'day' => 1], + ['title' => 'Import CSV', 'project' => $projectCrm, 'tag' => null, 'start' => '15:30', 'stop' => '17:30', 'day' => 2], + ['title' => 'API recherche', 'project' => $projectCrm, 'tag' => null, 'start' => '08:30', 'stop' => '10:00', 'day' => 3], + ['title' => 'Tests unitaires CRM', 'project' => $projectCrm, 'tag' => null, 'start' => '15:30', 'stop' => '17:00', 'day' => 3], + ['title' => 'Revue pipeline', 'project' => $projectCrm, 'tag' => $tagCalendar, 'start' => '08:00', 'stop' => '09:00', 'day' => 4], + // ERP — lundi à vendredi + ['title' => 'Dashboard stocks', 'project' => $projectErp, 'tag' => null, 'start' => '16:00', 'stop' => '17:30', 'day' => 1], + ['title' => 'Alertes stock bas', 'project' => $projectErp, 'tag' => null, 'start' => '11:30', 'stop' => '12:30', 'day' => 2], + ['title' => 'Factures PDF', 'project' => $projectErp, 'tag' => null, 'start' => '15:30', 'stop' => '17:30', 'day' => 4], + ['title' => 'Mouvement stock', 'project' => $projectErp, 'tag' => null, 'start' => '09:00', 'stop' => '10:30', 'day' => 0], + ['title' => 'Export comptable', 'project' => $projectErp, 'tag' => $tagCalendar, 'start' => '13:00', 'stop' => '14:30', 'day' => 2], + ['title' => 'Inventaire', 'project' => $projectErp, 'tag' => null, 'start' => '13:30', 'stop' => '15:00', 'day' => 4], + // Site vitrine — lundi à jeudi + ['title' => 'Maquette accueil', 'project' => $projectInterne, 'tag' => null, 'start' => '16:00', 'stop' => '17:30', 'day' => 0], + ['title' => 'Responsive mobile', 'project' => $projectInterne, 'tag' => null, 'start' => '16:00', 'stop' => '17:30', 'day' => 2], + ['title' => 'Rédaction contenu', 'project' => $projectInterne, 'tag' => null, 'start' => '15:30', 'stop' => '17:00', 'day' => 1], + ['title' => 'Formulaire contact', 'project' => $projectInterne, 'tag' => $tagAuth, 'start' => '16:00', 'stop' => '17:30', 'day' => 3], + ['title' => 'SEO meta tags', 'project' => $projectInterne, 'tag' => null, 'start' => '11:00', 'stop' => '12:00', 'day' => 4], ]; $monday = new DateTimeImmutable('monday this week', new DateTimeZone('UTC'));