Scripts et utilitaires

Voici des scripts qui peuvent s'avérer utiles dans certaines situations.

Pour exécuter un script, il faut impérativement pouvoir utiliser un terminal (« invite de commande ») pour y écrire et lancer des commandes.

ImportsV1 : Importer des données depuis Robert 1

Avec ce script, il est possible d'importer des données dans Robert2 à partir de la base de données de la première version de Robert (v0.6.x) ! Actuellement, les données suivantes peuvent être importées :

  • Matériel
  • Techniciens

Important
Si vous avez déjà créé du matériel ou autre dans votre Robert2, il est recommandé de faire une sauvegarde de votre base de données avant de procéder à l'import de données.

Voici en détail comment procéder :

1. Exporter les données de Robert 1 au format PHP

Avant tout, il faut sortir chaque table utile de la base de données d'origine, dans des fichiers au format PHP array.

Pour cela, ouvrez votre PHPMyAdmin sur la base de données de Robert 1, puis sélectionnez la table robert_matos_detail, et allez dans l'onglet "Exporter". Dans le menu déroulant de la section "Format" en bas de page, choisissez le format "PHP array". Enfin, cliquez sur le bouton "Exécuter" pour sauvegarder le fichier sur votre ordinateur.

Et recommencez l'opération pour la table robert_tekos, si besoin.

screen-export-robert1-database

2. Vérifier et corriger le(s) fichier(s) exportés

Les fichiers créés à l'étape précédente devraient contenir quelque chose ressemblant à ceci :

$robert_matos_detail = array(
  array('id' => '1','label' => 'Super matos','ref' => 'SP','panne' => '0','externe' => '0','categorie' => 'son','sousCateg' => '1','Qtotale' => '10','tarifLoc' => '15.55','valRemp' => '299.9','dateAchat' => NULL,'ownerExt' => '','remarque' => ''),
  array('id' => '2','label' => 'Autre matos','ref' => 'AM','panne' => '2','externe' => '0','categorie' => 'lumiere','sousCateg' => '17','Qtotale' => '12','tarifLoc' => '264.3','valRemp' => '1545.55','dateAchat' => NULL,'ownerExt' => '','remarque' => ''),
  array('id' => '3','label' => 'Cuillère','ref' => 'Cuil','panne' => '0','externe' => '1','categorie' => 'son','sousCateg' => '1','Qtotale' => '125','tarifLoc' => '1.05','valRemp' => '6.5','dateAchat' => NULL,'ownerExt' => '','remarque' => '')
  // (...)
);

Tout ce que vous avez à faire ici, c'est :

  • Modifier la première ligne du fichier en changeant $robert_matos_detail = par le mot return. Ce qui donnera : return array( pour cette première ligne. De même pour les autres fichiers, il faudra toujours changer le nom de la table par le mot return.
  • Renommer le fichier selon l'entité. Par exemple ici, le fichier créé par PHPMyAdmin s'appelle "robert_matos_detail.php". Il faut le nommer avec le nouveau nom de l'entité du matériel dans Robert2, à savoir : materials.php. Voir plus bas pour la correspondance des noms des fichiers pour les autres entités.
  • Placer ce(s) fichier(s) dans le dossier data/imports du projet.

Maintenant c'est prêt, on peut procéder à l'importation dans Robert2 !

3. Lancer le script

Ouvrez un terminal, et placez-vous à la racine du dossier du projet :
cd /chemin/vers/votre/Robert2

Ensuite, vous pouvez lancer le script de deux manières possibles :

  • Avec composer, utilisez la commande :
    composer Robert:importsV1 import materials
  • Si vous n'utilisez pas composer (typiquement si vous avez téléchargé un ZIP de Robert2 "compilé"), utilisez la commande :
    php -f utilities/Scripts/ImportsV1/run import materials (attention à bien utiliser une version de PHP supérieure à la 7.1)

Bien entendu, pour les autres entités, il suffit de remplacer le dernier argument (ici materials) par le nom de l'entité choisie. Et voilà, le script va utiliser le fichier PHP des données exportées, pour les traduire vers la base de données de Robert2.

Voici en détail ce qu'il se passe, pour chaque entité importée :

Entité Table dans Robert 1 Fichier utilisé pour l'import Argument du script Détails sur le script
Matériel matos_detail data/imports/
materials.php
materials - Importe tout le matériel.
- Crée les catégories de base, mais pas les sous-catégories.
- Crée des parcs de matériel supplémentaires pour chaque "ownerExt" différent trouvé dans la table d'origine.
- Attention, la valeur du champ ref ne doit pas comporter de ponctuation !
Techniciens tekos data/imports/
technicians.php
technicians - Importe tous les techniciens (persons avec le tag des techniciens).
- Utilise le champ note pour y mettre toutes les autres données comme la date de naissance ou autre (numéro GUSO, CS, etc.).
- Attention, ne crée pas d'utilisateur associé aux techniciens !