#!/usr/bin/python
# Outil de conversion des données d'Access vers PostgreSQL
# $Id: convert.py,v 1.1.1.1 2001/11/12 23:02:42 chips Exp $

import string
import csv
import fileinput

# Fonctions
# ********************************************************************************

def csvReadFile(fileName):
	buffer = []
	p = csv.parser()
	for l in fileinput.input(fileName):
		r = p.parse(l)
		if r is not None:
			buffer.append(r)
	return buffer

def copyFile(srcFileName, dstFileName, header):
	src = open(srcFilename, "r")
	line = src.readline()
	dst = open(dstFilename, "w")
	dst.write(header+"\n")
	while 1:
		line = src.readline()
		if not line:
			exit
		dst.write(line)
	src.close()
	dst.close()

# MAIN
print "début !"

# TABLES DE PARAMETRES
# ********************************************************************************

#Codes_Adh : TYPE_ADHESION
# AC : Libellé,Code
# PG : TYP_ADH_CODE,TYP_ADH_LIB
# les champs sont inversés ;-)
records = csvReadFile("src/Codes_Adh.txt")[1:]
f = open("dst/TYPE_ADHESION.txt", "w")
f.write("TYP_ADH_CODE,TYP_ADH_LIB\n")
for record in records:
	f.write('"' + record[1] + '","' + record[0] + '"\n')
f.close()

#Codes_Energie : ENERGIE
# AC : Code, Libellé
# PG : ENE_CODE, ENE_LIB
copyFile("src/Codes_Energie.txt", "dst/ENERGIE.txt", "ENE_CODE, ENE_LIB")

#Codes_Famille : FAMILLE_ACTIVITE
# AC : Code, Libellé
# PG : FAM_ACT_CODE, FAM_ACT_LIB
copyFile("src/Codes_Famille.txt", "dst/FAMILLE_ACTIVITE.txt", "FAM_ACT_CODE,FAM_ACT_LIB")

#Codes_Formation : TYPE_ACTIVITE
# AC : Code Famille,Code,Libellé
# PG : TYP_ACT_CODE, FAM_ACT_CODE, TYP_ACT_LIB
copyFile("src/Codes_Formation.txt", "dst/TYPE_ACTIVITE.txt", "TYP_ACT_CODE,FAM_ACT_CODE,TYP_ACT_LIB")

#Codes_Op : ACTIVITE
# AC : Code,Opération,Code Organe,Code Formation
# PG : ACT_CODE, TYP_ACT_CODE, ORG_CODE, ACT_LIB
copyFile("src/Codes_Op.txt", "dst/ACTIVITE.txt", "ACT_CODE,TYP_ACT_CODE,ORG_CODE,ACT_LIB")

#Codes_Marque : MARQUE
# AC : Code, Libellé
# PG : MAR_CODE, MAR_LIB
copyFile("src/Codes_Marque.txt", "dst/MARQUE.txt", "MAR_CODE,MAR_LIB")

#Codes_Profession : PROFESSION ???
# AC : Code,Libellé
# PG : PRO_CODE, PRO_LIB
copyFile("src/Codes_Profession.txt", "dst/PROFESSION.txt", "PRO_CODE,PRO_LIB")

#Codes_R : MODE_PAIEMENT
# AC : Code, Libellé
# PG : MOD_PAI_CODE, MOD_PAI_LIB
copyFile("src/Codes_R.txt", "dst/MODE_PAIEMENT.txt", "MOD_PAI_CODE,MOD_PAI_LIB")

#Organes : ORGANE
# AC : Code, Organe, Ordre
# PG : ORG_CODE, ORG_LIB, ORG_ORD
copyFile("src/Organes.txt", "dst/ORGANE.txt", "ORG_CODE,ORG_LIB,ORG_ORD")

#Tranches : TRANCHE
# AC : Tranche,Montant Maximum
# PG : TRA_CODE, TRA_MNTMAX
copyFile("src/Tranches.txt", "dst/TRANCHE.txt", "TRA_CODE,TRA_MNTMAX")

#Tarifs : TARIF
# AC : Code Adhésion,Tranche,Montant
# PG : ADH_CODE, TRA_CODE, TRA_MONTANT
copyFile("src/Tarifs.txt", "dst/TARIF.txt", "ADH_CODE,TRA_CODE,TRA_MONTANT")

# TABLES COMPLEXES
# ********************************************************************************

#ADHERENTS : MEMBRE, CONTACT, ATTRIBUT_MEMBRE
# AC : Numéro,
# PG : MEM_NUM, ASS_CODE, CIV_CODE, PRO_CODE, CSP_CODE, FON_CODE,
#		CIV_CODE n'existe pas,
#		PRO_CODE est plus loin (Code Profession),
#		CSP_CODE n'existe pas,
#		FON_CODE n'existe pas,
#		MEM_NOM
# AC : NOM Prénom,Adresse 1,Adresse 2,Code,VILLE,
# PG : MEM_NOM, MEM_PRENOM, MEM_SURNOM, MEM_ADR1, MEM_ADR2, MEM_CP, MEM_VILLE,
#		MEM_NOM est le premier mot de NOM Prénom,
#		MEM_PRENOM est le reste,
#		MEM_SURNOM n'existe pas,
# AC : Téléphone,WTéléphone,
#		dans CONTACT (Téléphone=TLM,WTéléphone=TLT)
# AC : Date de Naissance,Sexe,Code Profession,Date Première Adhésion,
# PG : MEM_DATNAI, MEM_SEXE, MEM_DATADH1, MEM_DATMAJ
#		PRO_CODE est avant
# AC : Nombre de Versements,
#		dans ADHESION ???
# AC : DispoLundi,DispoMardi,DispoMercredi,DispoJeudi,DispoVendredi,DispoSamedi,
# AC : GROUPE RELAIS,ACCUEIL SAMEDI,PREPARER UN REPAS,JOURNEE TRAVAUX,
# AC : ENVOI D'UN COURRIER,SAISIE INFORMATIQUE,COMPTABILITE,
# AC : ENTRETIEN DU VEHICULE,AUTRES ACTIVITES,Texte Autres,
#		dans ATTRIBUT_MEMBRE
#      Observations,Adhérent,Dernière mise à jour
# PG : MEM_DATADH1, MEM_DATMAJ

#ADHESIONS : ADHESION

#F/O : ?

#FICHES DE FORMATION : FICHE_FORMATION

#FORMATIONS : ?

#REGLEMENTS : REGLEMENT

#VEHICULES : VEHICULE

# PAS DE CORRESPONDANCE POUR :
# ASSOCIATION
#	tous les MEMBRES sont dans l'association 'ATL'
# CIVILITE
#	à bâtir avec les valeurs provenant de ADHERENTS
#		Sexe='M' donne CIV_CODE='M' pour 'Monsieur'
#		Sexe='F' donne CIV_CODE='MLE' pour 'Mademoiselle'
# MOYEN_CONTACT
#	à bâtir avec les valeurs provenant de ADHERENTS
#		Téléphone dans TLM, WTéléphone dans TLT
#	cf. dst/MOYEN_CONTACT.txt
# FONCTION
#
# ATTRIBUT
# ATTRIBUT_VALEUR

# ACTIVITE
# FICHE_FORMATION
# LIGNE_FORMATION

print "fin !"

# EOF

