Loading code/ajout_cvs.php +133 −3 Changes for code/ajout_cvs.php: 133 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ use Application\Service\TypeValidationService; use Application\Service\ValidationService; use Application\Service\WorkflowService; $repertoire = '/app/CV OSE/'; $repertoire = '/app/cache/2020/'; $typeMime = 'application/msword'; $dirs = scandir($repertoire); Loading @@ -30,6 +30,136 @@ $si = $container->get(IntervenantService::class); $typePieceJointe = $container->get(TypePieceJointeService::class)->get(1); $tvPJ = $container->get(TypeValidationService::class)->get(4); $tvFichier = $container->get(TypeValidationService::class)->get(5); $deposants = [1, 4]; // IS utilisateurs de OseAppli et Laurent function makeNomPj(string $codeIntervenant) { return 'CV-GEN-2020.doc'; } $sql = " SELECT i.id intervenant_id, i.code intervenant_code, pj.id piece_jointe_id, f.id fichier_id, f.nom fichier_nom, u.id deposant_id, u.display_name deposant FROM intervenant i LEFT JOIN piece_jointe pj ON pj.intervenant_id = i.id AND pj.histo_destruction IS NULL AND pj.type_piece_jointe_id = :type_piece_jointe LEFT JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id LEFT JOIN fichier f ON f.id = pjf.fichier_id AND f.histo_destruction IS NULL LEFT JOIN utilisateur u ON u.id = f.histo_createur_id WHERE i.annee_id = 2020 "; $intervenants = []; $intervenantsInvalides = []; $da = $si->getEntityManager()->getConnection()->fetchAll($sql, [ 'type_piece_jointe' => $typePieceJointe->getId(), ]); foreach ($da as $d) { $code = $d['INTERVENANT_CODE']; if (!isset($intervenants[$code])) { $intervenants[$code] = [ 'intervenant-id' => (int)$d['INTERVENANT_ID'], 'piece-jointe-id' => $d['PIECE_JOINTE_ID'], 'deja-fait' => false, 'fichier' => null, ]; } if (!$intervenants[$code]['deja-fait']) { $deposantId = (int)$d['DEPOSANT_ID']; $intervenants[$code]['deja-fait'] = ( in_array($deposantId, $deposants) && $d['FICHIER_NOM'] == makeNomPj($code) ); } } $dirs = scandir($repertoire); foreach ($dirs as $dir) { if ($dir == '.' || $dir == '..') continue; $code = substr($dir, 0, -4); if (!isset($intervenants[$code])) { $intervenantsInvalides[] = $code; } else { $intervenants[$code]['fichier'] = $repertoire . $dir; } } if (count($intervenantsInvalides) > 0) { echo '<h1>Intervenants Invalides</h1>'; echo implode(', ', $intervenantsInvalides); } foreach ($intervenants as $code => $intervenant) { if ($intervenant['deja-fait']) { unset($intervenants[$code]); } if (!$intervenant['fichier']) { unset($intervenants[$code]); } } var_dump($intervenants); $count = count($intervenants); $index = 0; foreach ($intervenants as $code => $interv) { $index++; echo "Intervenant $index / $count, code $code ... "; $intervenant = $si->get($interv['intervenant-id']); try { $fichier = new Fichier(); $fichier->setContenu(file_get_contents($interv['fichier'])); $fichier->setNom(makeNomPj($code)); $fichier->setTaille(filesize($interv['fichier'])); $fichier->setTypeMime($typeMime); $valFichier = new Validation(); $valFichier->setIntervenant($intervenant); $valFichier->setTypeValidation($tvFichier); $valFichier->setStructure($intervenant->getStructure()); $container->get(ValidationService::class)->save($valFichier); $fichier->setValidation($valFichier); if ($interv['piece-jointe-id']) { $pj = $container->get(PieceJointeService::class)->get($interv['piece-jointe-id']); } else { $pj = new PieceJointe(); $pj->setIntervenant($intervenant); $pj->setType($typePieceJointe); $container->get(PieceJointeService::class)->save($pj); } $container->get(FichierService::class)->save($fichier, 'bdd'); $sql = "INSERT INTO piece_jointe_fichier(piece_jointe_id,fichier_id) values (" . $pj->getId() . "," . $fichier->getId() . ")"; $si->getEntityManager()->getConnection()->exec($sql); // Validation if (!($pj->getValidation() && $pj->getValidation()->estNonHistorise())) { $validation = new Validation(); $validation->setIntervenant($intervenant); $validation->setTypeValidation($tvPJ); $validation->setStructure($intervenant->getStructure()); $container->get(ValidationService::class)->save($validation); $pj->setValidation($validation); $container->get(PieceJointeService::class)->save($pj); } $container->get(WorkflowService::class)->calculerTableauxBord([], $intervenant); } catch (\Exception $e) { echo 'ERREUR intervenant ' . $code . ' : ' . $e->getMessage(); } echo "\n"; } foreach ($dirs as $i => $dir) { if (0 <= $i && $i < 9999999) { Loading Loading @@ -80,12 +210,12 @@ foreach ($dirs as $i => $dir) { $pj->setType($typePieceJointe); $container->get(PieceJointeService::class)->save($pj); } $container->get(FichierService::class)->save($fichier); $container->get(FichierService::class)->save($fichier, 'bdd'); $sql = "INSERT INTO piece_jointe_fichier(piece_jointe_id,fichier_id) values (" . $pj->getId() . "," . $fichier->getId() . ")"; $si->getEntityManager()->getConnection()->exec($sql); /* Validation */ // Validation if (!($pj->getValidation() && $pj->getValidation()->estNonHistorise())) { $validation = new Validation(); $validation->setIntervenant($intervenant); Loading Loading
code/ajout_cvs.php +133 −3 Changes for code/ajout_cvs.php: 133 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ use Application\Service\TypeValidationService; use Application\Service\ValidationService; use Application\Service\WorkflowService; $repertoire = '/app/CV OSE/'; $repertoire = '/app/cache/2020/'; $typeMime = 'application/msword'; $dirs = scandir($repertoire); Loading @@ -30,6 +30,136 @@ $si = $container->get(IntervenantService::class); $typePieceJointe = $container->get(TypePieceJointeService::class)->get(1); $tvPJ = $container->get(TypeValidationService::class)->get(4); $tvFichier = $container->get(TypeValidationService::class)->get(5); $deposants = [1, 4]; // IS utilisateurs de OseAppli et Laurent function makeNomPj(string $codeIntervenant) { return 'CV-GEN-2020.doc'; } $sql = " SELECT i.id intervenant_id, i.code intervenant_code, pj.id piece_jointe_id, f.id fichier_id, f.nom fichier_nom, u.id deposant_id, u.display_name deposant FROM intervenant i LEFT JOIN piece_jointe pj ON pj.intervenant_id = i.id AND pj.histo_destruction IS NULL AND pj.type_piece_jointe_id = :type_piece_jointe LEFT JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id LEFT JOIN fichier f ON f.id = pjf.fichier_id AND f.histo_destruction IS NULL LEFT JOIN utilisateur u ON u.id = f.histo_createur_id WHERE i.annee_id = 2020 "; $intervenants = []; $intervenantsInvalides = []; $da = $si->getEntityManager()->getConnection()->fetchAll($sql, [ 'type_piece_jointe' => $typePieceJointe->getId(), ]); foreach ($da as $d) { $code = $d['INTERVENANT_CODE']; if (!isset($intervenants[$code])) { $intervenants[$code] = [ 'intervenant-id' => (int)$d['INTERVENANT_ID'], 'piece-jointe-id' => $d['PIECE_JOINTE_ID'], 'deja-fait' => false, 'fichier' => null, ]; } if (!$intervenants[$code]['deja-fait']) { $deposantId = (int)$d['DEPOSANT_ID']; $intervenants[$code]['deja-fait'] = ( in_array($deposantId, $deposants) && $d['FICHIER_NOM'] == makeNomPj($code) ); } } $dirs = scandir($repertoire); foreach ($dirs as $dir) { if ($dir == '.' || $dir == '..') continue; $code = substr($dir, 0, -4); if (!isset($intervenants[$code])) { $intervenantsInvalides[] = $code; } else { $intervenants[$code]['fichier'] = $repertoire . $dir; } } if (count($intervenantsInvalides) > 0) { echo '<h1>Intervenants Invalides</h1>'; echo implode(', ', $intervenantsInvalides); } foreach ($intervenants as $code => $intervenant) { if ($intervenant['deja-fait']) { unset($intervenants[$code]); } if (!$intervenant['fichier']) { unset($intervenants[$code]); } } var_dump($intervenants); $count = count($intervenants); $index = 0; foreach ($intervenants as $code => $interv) { $index++; echo "Intervenant $index / $count, code $code ... "; $intervenant = $si->get($interv['intervenant-id']); try { $fichier = new Fichier(); $fichier->setContenu(file_get_contents($interv['fichier'])); $fichier->setNom(makeNomPj($code)); $fichier->setTaille(filesize($interv['fichier'])); $fichier->setTypeMime($typeMime); $valFichier = new Validation(); $valFichier->setIntervenant($intervenant); $valFichier->setTypeValidation($tvFichier); $valFichier->setStructure($intervenant->getStructure()); $container->get(ValidationService::class)->save($valFichier); $fichier->setValidation($valFichier); if ($interv['piece-jointe-id']) { $pj = $container->get(PieceJointeService::class)->get($interv['piece-jointe-id']); } else { $pj = new PieceJointe(); $pj->setIntervenant($intervenant); $pj->setType($typePieceJointe); $container->get(PieceJointeService::class)->save($pj); } $container->get(FichierService::class)->save($fichier, 'bdd'); $sql = "INSERT INTO piece_jointe_fichier(piece_jointe_id,fichier_id) values (" . $pj->getId() . "," . $fichier->getId() . ")"; $si->getEntityManager()->getConnection()->exec($sql); // Validation if (!($pj->getValidation() && $pj->getValidation()->estNonHistorise())) { $validation = new Validation(); $validation->setIntervenant($intervenant); $validation->setTypeValidation($tvPJ); $validation->setStructure($intervenant->getStructure()); $container->get(ValidationService::class)->save($validation); $pj->setValidation($validation); $container->get(PieceJointeService::class)->save($pj); } $container->get(WorkflowService::class)->calculerTableauxBord([], $intervenant); } catch (\Exception $e) { echo 'ERREUR intervenant ' . $code . ' : ' . $e->getMessage(); } echo "\n"; } foreach ($dirs as $i => $dir) { if (0 <= $i && $i < 9999999) { Loading Loading @@ -80,12 +210,12 @@ foreach ($dirs as $i => $dir) { $pj->setType($typePieceJointe); $container->get(PieceJointeService::class)->save($pj); } $container->get(FichierService::class)->save($fichier); $container->get(FichierService::class)->save($fichier, 'bdd'); $sql = "INSERT INTO piece_jointe_fichier(piece_jointe_id,fichier_id) values (" . $pj->getId() . "," . $fichier->getId() . ")"; $si->getEntityManager()->getConnection()->exec($sql); /* Validation */ // Validation if (!($pj->getValidation() && $pj->getValidation()->estNonHistorise())) { $validation = new Validation(); $validation->setIntervenant($intervenant); Loading