CSV 2 XML account
Script php de conversion d'un fichier au format CSV en un fichier au format XML prêt à l'intégration dans un module pour OpenERP
Problématique
A l'origine, ce script permet la reprise d'un plan comptable, stocké dans un fichier au format CSV, pour en faire un fichier XML équivalent, prêt à l'intégration dans un plugin pour OpenERP.
Un plan comptable est en fait une structure hiérarchique dont chaque noeud comporte quelques attributs. Dans le cas présent, le fichier généré reprend cette hiérarchie et la transpose de façon à être reconnue par OpenERP.
Utilisation
Ce script a été testé sous PHP5.
Pour lancer la conversion: php ons_csv2xml.php input.csv output.xml
Intégration dans Tiny ERP
Pour créer un plugin permettant la reprise d'un plan comptable dans OpenERP:
- créer un dossier, par exemple: test
- créer dans ce dossier 2 fichiers textes:
- __init__.py
- y ajouter la ligne suivante: import test
- remplacer test par le nom du dossier
-
__terp__.py
y ajouter les lignes suivantes:{ "name" : "Le nom de cette extension", "version" : "1.0", "depends" : ["product", "base"], "author" : "Moi", "description": """Une description plus complète que le nom""", "website" : "http://mon-site.ici", "category" : "Generic Modules/Some_Category", "init_xml" : [ ], "update_xml" : [ "output.xml" ], "demo_xml" : [ ], "active": False, "installable": True }
- __init__.py
- copier dans ce dossier le fichier XML généré
- recopier le dossier ainsi créé dans le répertoire "addons/test", de l'arborescence du serveur OpenERP
Structure du fichier .csv
Pour être facilement importable, le fichier .csv doit posséder 6 colonnes contenant les données suivantes:
L'ordre dans la structure hiérarchique, exposé dans le fichier CSV, doit être respecté. En effet, chaque ligne décrivant un compte ne peut référencer qu'un compte listé auparavant.
Exemple:
L'extrait suivant est valide:
Plan comptable général complet,0,regul,,none,1,
Actif,1,actifs,,none,1,1-2
Actifs mobilisés,10,actifs,,none,1,1
Disponible,100,actifs,,none,1,10
L'extrait suivant n'est valide:
Plan comptable général complet,0,regul,,none,1,
Actifs mobilisés,10,actifs,,none,1,1
Disponible,100,actifs,,none,1,10
Actif,1,actifs,,none,1,1-2
Le compte "Actifs mobilisés" se réfère à un parent (le compte "Actif") qui n'a pas encore été listé dans l'ordre de lecture du fichier:
