#!/usr/bin/python
#-------------------------------------------------------------------------------------------------------
#
# Pycemen
#
#-------------------------------------------------------------------------------------------------------
# Tom�s Javier Robles Prado
# [email protected]
# http://users.servicios.retecal.es/tjavier
#
#-------------------------------------------------------------------------------------------------------
# Este programa es Software Libre. Puede ser modificado a su antojo
# seg�n la licencia GPL en su versi�n actual y posteriores. Para m�s
# informaci�n sobre esta licencia visite:
# http://www.opensource.org/licenses/gpl-license.php
#-------------------------------------------------------------------------------------------------------
#Programa de acceso a la BBDD cementerio
#Cada rutina de introducci�n de datos es guardada en un fichero de log
import pg
RUTA = '/home/bbdd/pycem.dat'
EXITO = 1
BLANCO = ' '
COMILLA = "\'"
COMA = ','
def guardarLinea(linea):
"""Guarda en RUTA una l�nea"""
try:
f=file(RUTA,'a')
f.write(linea +'\n')
f.close()
return EXITO
except:
print "No se ha podido escribir en el fichero"
return -1
def conectarBD():
"""Rutina de conexi�n a la BBDD"""
#Conectamos a la BD
try:
db = pg.DB('cementerio','localhost')
return db
except:
print "Error en la conexi�n"
return -1
def compruebaNULL(var):
"""Comprueba si el valor dado es NULL"""
if var == "":
return "NULL"
else:
return var
def corrigeNULL(sql):
"""Cambia los posibles 'NULL' por NULL"""
return sql.replace("\'NULL\'","NULL")
def ejecutaSQL(sql,db):
"""Ejecuta un comando sql en la base db"""
db.query(sql)
def calculaIDTumba():
"""Realiza una consulta para averiguar n�mero de tumba"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT ID_Tumba
FROM tumba
ORDER BY ID_tumba desc;""")
return (cons.getresult()[0][0] + 1)
else:
return -1
def calculaIDSector():
"""Realiza una consulta para averiguar n�mero de sector"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT ID_Sector
FROM Sector
ORDER BY ID_Sector desc;""")
return (cons.getresult()[0][0] + 1)
else:
return -1
def calculaIDFamiliar():
"""Realiza una consulta para averiguar n�mero de familiar"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT ID_Familia
FROM Familiar
ORDER BY ID_Familia desc;""")
return (cons.getresult()[0][0] + 1)
else:
return -1
def imprimeSectores():
"""Realiza una consulta y devuelve los sectores posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT ID_Sector, Nombre
FROM Sector
ORDER BY ID_Sector;""")
for x in cons.getresult():
print str(x[0]) + '\t' + x[1]
db.close()
return cons
else:
print "Error en la consulta"
return -1
def imprimeAdministrativos():
"""Realiza una consulta y devuelve los administrativos posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT DNI, Nombre, Apellidos
FROM Administrativo
ORDER BY Apellidos;""")
for x in cons.getresult():
print str(x[0]) + '\t' + x[1]+ '\t' + x[2]
db.close()
return cons
else:
print "Error en la consulta"
return -1
def imprimeEnterradores():
"""Realiza una consulta y devuelve los enterradores posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT DNI, Nombre, Apellidos
FROM Enterrador
ORDER BY Apellidos;""")
for x in cons.getresult():
print str(x[0]) + '\t' + x[1]+ '\t' + x[2]
db.close()
return cons
else:
print "Error en la consulta"
return -1
def imprimeFamiliares():
"""Realiza una consulta y devuelve los familiares posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT ID_Familia, Nombre , Apellidos
FROM Familiar
ORDER BY Apellidos;""")
for x in cons.getresult():
print str(x[0]) + '\t' + x[1] + '\t' + x[2]
db.close()
return cons
else:
print "Error en la consulta"
return -1
def imprimeNichos():
"""Realiza una consulta y devuelve los nichos posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT id_nicho, altura
FROM nicho
ORDER BY id_nicho;""")
for x in cons.getresult():
print str(x[0]) + '\t' + str(x[1])
db.close()
return cons
else:
print "Error en la consulta"
return -1
def imprimeNichosLibres():
"""Realiza una consulta y devuelve los nichos libres"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT id_nicho, inscripcion
FROM nicho
ORDER BY id_nicho;""")
db.close()
for x in cons.getresult():
if (contarMuertosEnTumba((x[0])) == 0):
print "Nicho " + str(x[0]) + " libre. Inscripci�n: ",
if x[1] is None:
print 'Ninguna'
else:
print x[1]
return cons
else:
print "Error en la consulta"
return -1
def imprimePanteones():
"""Realiza una consulta y devuelve los panteones posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT id_panteon, id_familia
FROM panteon
ORDER BY id_panteon;""")
print "ID_Panteon"+'\t'+"ID_Familia"
for x in cons.getresult():
print str(x[0]) + '\t' + str(x[1])
db.close()
return cons
else:
print "Error en la consulta"
return -1
def imprimeFosas():
"""Realiza una consulta y devuelve los panteones posibles"""
db = conectarBD()
if (db != -1):
cons = db.query("""SELECT id_fosa
FROM fosacomun
ORDER BY id_fosa;""")
for x in cons.getresult():
print str(x[0])
db.close()
return cons
else:
print "Error en la consulta"
return -1
def contarMuertosEnTumba(tumba):
"""Cuenta el n�mero de muertos que hay en la tumba"""
db = conectarBD()
if (db != -1):
sql = "SELECT tumba FROM fallecido WHERE tumba=" +str(tumba) +";"
cons = db.query(sql)
return cons.ntuples()
else:
print "Error en la consulta"
return -1
def capacidad(tumba, tipo):
"""Devuelve la capacidad de un pante�n o fosa com�n"""
db = conectarBD()
if (db != -1):
if tipo == 'panteon':
sql ="SELECT capacidad FROM panteon WHERE id_panteon="+str(tumba)+";"
elif tipo == 'fosacomun':
sql ="SELECT capacidad FROM fosacomun WHERE id_fosa="+str(tumba)+";"
cons = db.query(sql)
return cons.getresult()[0][0]
else:
print "Error en la consulta"
return -1
def perteneceFamilia(panteon, familia):
"""Devuelve 1 si el pante�n pertenece a la familia, 0 en otro caso"""
db = conectarBD()
if (db != -1):
sql = "SELECT id_panteon FROM panteon WHERE id_panteon="+str(panteon)+" and id_Familia="+str(familia)+";"
cons = db.query(sql)
if cons.getresult == []:
#No pertenece a la familia
return 0
else:
return 1
else:
print "Error en la consulta"
return -1
def datosEnterrAdminis(tabla):
"""Recoge los datos de un enterrador y devuelve una sentencia SQL"""
nombre = compruebaNULL(raw_input("Nombre ---> "))
apellidos = compruebaNULL(raw_input("Apellidos ---> "))
direccion = compruebaNULL(raw_input("Direcci�n ---> "))
telefono = compruebaNULL(raw_input("Tel�fono ---> "))
telf_movil= compruebaNULL(raw_input("Tel. M�vil ---> "))
antiguedad= compruebaNULL(raw_input("Antig�edad ---> "))
salario = compruebaNULL(raw_input("Salario ---> "))
dni = compruebaNULL(raw_input("DNI ---> "))
sql = "insert into " + tabla + " values (" + COMILLA + nombre + COMILLA + BLANCO +COMA + COMILLA +apellidos + COMILLA + BLANCO +COMA+ COMILLA +direccion + COMILLA + BLANCO +COMA+ COMILLA +telefono + COMILLA + BLANCO +COMA+ COMILLA +telf_movil + COMILLA + BLANCO +COMA+ antiguedad + BLANCO +COMA+ salario + BLANCO +COMA+COMILLA + dni + COMILLA +");"
return corrigeNULL(sql)
def datosJardinero():
"""Recoge los datos de un jardinero y devuelve una sentencia SQL"""
nombre = compruebaNULL(raw_input("Nombre ---> "))
apellidos = compruebaNULL(raw_input("Apellidos ---> "))
direccion = compruebaNULL(raw_input("Direcci�n ---> "))
telefono = compruebaNULL(raw_input("Tel�fono ---> "))
telf_movil= compruebaNULL(raw_input("Tel. M�vil ---> "))
antiguedad= compruebaNULL(raw_input("Antig�edad ---> "))
salario = compruebaNULL(raw_input("Salario ---> "))
correcto = 0
cons = imprimeSectores()
while not(correcto):
sector = compruebaNULL(raw_input("Sector ---> "))
for x in cons.getresult():
if sector == str(x[0]):
correcto = 1
if not (correcto):
print "Valor incorrecto de sector"
dni = compruebaNULL(raw_input("DNI ---> "))
sql = "insert into Jardinero values (" + COMILLA + nombre + COMILLA + BLANCO +COMA + COMILLA +apellidos + COMILLA + BLANCO +COMA+ COMILLA +direccion + COMILLA + BLANCO +COMA+ COMILLA +telefono + COMILLA + BLANCO +COMA+ COMILLA +telf_movil + COMILLA + BLANCO +COMA+ antiguedad + BLANCO +COMA+ salario + BLANCO +COMA + sector + COMA + BLANCO + COMILLA + dni + COMILLA +");"
return corrigeNULL(sql)
def datosTumba():
"""Recoge los datos de una tumba y devuelve una sentencia SQL"""
id_tumba = calculaIDTumba()
if (id_tumba == -1):
print "Error en el c�lculo de ID_Tumba"
return -1
print "ID_Tumba ---> ", id_tumba
correcto = 0
cons = imprimeSectores()
while not(correcto):
sector = compruebaNULL(raw_input("Sector ---> "))
for x in cons.getresult():
if sector == str(x[0]):
correcto = 1
if not (correcto):
print "Valor incorrecto de sector"
correcto = 0
while not (correcto):
tipo = compruebaNULL(raw_input("Tipo ---> "))
if (tipo.lower() == 'nicho'):
tipo = "Nicho"
nic_inscripcion = compruebaNULL(raw_input("Inscripci�n ---> "))
nic_altura = compruebaNULL(raw_input("Altura ---> "))
sqlEspec = "insert into Nicho Values (" + str(nic_altura) + COMA + str(id_tumba) + COMA + COMILLA + nic_inscripcion + COMILLA + ");"
correcto = 1
elif ((tipo.lower() == 'pante�n') or (tipo.lower() == 'panteon')):
tipo = "Pante�n"
aux = 0
print "Seleccione Identificador familiar"
cons = imprimeFamiliares()
while not(aux):
pan_familia = compruebaNULL(raw_input("Familia ---> "))
for x in cons.getresult():
if (str(pan_familia) == str(x[0])):
aux = 1
if not (aux):
print "Valor incorrecto de familia"
pan_inscripcion = compruebaNULL(raw_input("Inscripci�n ---> "))
pan_capacidad = compruebaNULL(raw_input("Capacidad ---> "))
sqlEspec = "insert into Panteon Values (" + str(id_tumba) + COMA + str(pan_familia) + COMA + str(pan_capacidad) + COMA + COMILLA +pan_inscripcion+COMILLA+");"
correcto = 1
elif ((tipo.lower() == 'fosa com�n') or (tipo.lower() == 'fosa comun')):
tipo = "Fosa Com�n"
fos_capacidad = compruebaNULL(raw_input("Capacidad ---> "))
sqlEspec = "insert into FosaComun Values (" + str(id_tumba) + COMA + str(fos_capacidad) +");"
correcto = 1
else:
print "Valor incorrecto de tipo de tumba"
sqlTumba = "insert into Tumba Values (" + str(id_tumba) +COMA + BLANCO +COMILLA+ tipo+COMILLA+ BLANCO + COMA + str(sector) +");"
return corrigeNULL(sqlTumba) ,corrigeNULL(sqlEspec)
def datosFactura():
"""Recoge los datos de una factura y devuelve una sentencia SQL"""
cantidad = compruebaNULL(raw_input("Cantidad ---> "))
fecha = compruebaNULL(raw_input("Fecha ---> "))
aux = 0
print "Seleccione Identificador familiar"
cons = imprimeFamiliares()
while not(aux):
familia = compruebaNULL(raw_input("Familia ---> "))
for x in cons.getresult():
if (str(familia) == str(x[0])):
aux = 1
if not (aux):
print "Valor incorrecto de familia"
aux = 0
print "Seleccione Identificador de Administrativo"
cons = imprimeAdministrativos()
while not(aux):
administrativo = compruebaNULL(raw_input("Administrativo ---> "))
for x in cons.getresult():
if (str(administrativo) == str(x[0])):
aux = 1
if not (aux):
print "Valor incorrecto de administrativo"
sql = "insert into Factura values ("+cantidad + COMA + COMILLA+fecha+COMILLA + COMA + str(familia) + COMA + COMILLA+administrativo+COMILLA+");"
return corrigeNULL(sql)
def datosSector():
"""Recoge los datos de un sector y devuelve una sentencia SQL"""
id_sector = calculaIDSector()
if (id_sector == -1):
print "Error en el c�lculo de ID_Sector"
return -1
print "ID_Sector ---> ", id_sector
nombre = compruebaNULL(raw_input("Nombre ---> "))
superficie = compruebaNULL(raw_input("Superficie ---> "))
capacidad = compruebaNULL(raw_input("Capacidad ---> "))
sql = "insert into Sector values ("+str(id_sector)+COMA+COMILLA+nombre+COMILLA+COMA+str(superficie)+COMA+str(capacidad)+");"
return corrigeNULL(sql)
def datosFamiliar():
"""Recoge los datos de un familiar y devuelve una sentencia SQL"""
id_familia = calculaIDFamiliar()
if (id_familia == -1):
print "Error en el c�lculo de ID_Familia"
return -1
print "ID_Familia ---> ", id_familia
nombre = compruebaNULL(raw_input("Nombre ---> "))
apellidos = compruebaNULL(raw_input("Apellidos ---> "))
direccion = compruebaNULL(raw_input("Direcci�n ---> "))
telefono = compruebaNULL(raw_input("Tel�fono ---> "))
sql = "insert into Familiar values (" + COMILLA + nombre + COMILLA + BLANCO +COMA + COMILLA +apellidos + COMILLA + BLANCO +COMA+ COMILLA +telefono + COMILLA + BLANCO +COMA+ COMILLA +direccion + COMILLA + BLANCO +COMA+ str(id_familia) +");"
return corrigeNULL(sql)
def datosFallecido():
"""Recoge los datos de un fallecido y devuelve una sentencia sql"""
nombre = compruebaNULL(raw_input("Nombre ---> "))
apellidos = compruebaNULL(raw_input("Apellidos ---> "))
fecha_nac = compruebaNULL(raw_input("Fecha Nacimiento ---> "))
fecha_mue = compruebaNULL(raw_input("Fecha Defunci�n ---> "))
dni = compruebaNULL(raw_input("DNI ---> "))
aux = 0
print "Seleccione Identificador de Enterrador"
cons = imprimeEnterradores()
while not(aux):
enterrador = compruebaNULL(raw_input("Enterrador ---> "))
for x in cons.getresult():
if (str(enterrador) == str(x[0])):
aux = 1
if not (aux):
print "Valor incorrecto de enterrador"
tipo = raw_input("Tipo de Tumba ---> ")
if (tipo.lower() == 'nicho'):
#Formalizar Factura
print "Seleccione Identificador de Familia"
cons = imprimeFamiliares()
sel = raw_input("�Desea a�adir nueva familia? (S/N) ")
cor = 0
while not(cor):
if (sel.lower() == 'n'):
aux = 0
while not(aux):
familia = compruebaNULL(raw_input("Familia ---> "))
for x in cons.getresult():
if (str(familia) == str(x[0])):
aux = 1
cor = 1
if not (aux):
print "Valor incorrecto de familia"
if (sel.lower() == 's'):
anadirFamiliar()
cor = 1
if anadirFactura() != EXITO:
print "Ha ocurrido un error"
return -1
aux=0
cons = imprimeNichosLibres()
while not (aux):
tumba = compruebaNULL(raw_input("Nicho ---> "))
for x in cons.getresult():
if (str(tumba) == str(x[0])):
#Valor correcto. Comprobemos si est� ocupado
if (contarMuertosEnTumba(tumba) > 0):
print "Nicho ocupado, seleccione otro"
else:
aux = 1
elif ((tipo.lower() == 'pante�n') or (tipo.lower() == 'panteon')):
#Formalizar Factura
print "Seleccione Identificador de Familia"
cons = imprimeFamiliares()
sel = raw_input("�Desea a�adir nueva familia? (S/N) ")
cor = 0
while not(cor):
if (sel.lower() == 'n'):
cor=1
elif (sel.lower() == 's'):
anadirFamiliar()
cor = 1
if anadirFactura() != EXITO:
print "Ha ocurrido un error"
return -1
aux=0
cons = imprimePanteones()
while not (aux):
tumba = compruebaNULL(raw_input("Pante�n ---> "))
for x in cons.getresult():
if (str(tumba) == str(x[0])):
#Valor correcto. Comprobemos si pertenece a la familia
paux = 0
cons2 = imprimeFamiliares()
while not(paux):
familia = compruebaNULL(raw_input("Familia ---> "))
for x in cons2.getresult():
if (str(familia) == str(x[0])):
paux = 1
cor = 1
if not (paux):
print "Valor incorrecto de familia"
if (perteneceFamilia(tumba,familia)==1):
if (contarMuertosEnTumba(tumba) == capacidad(tumba, 'panteon')):
print "Pante�n ocupado, seleccione otro"
else:
aux = 1
else:
print "No tiene acceso a este pante�n"
elif ((tipo.lower() == 'fosa com�n') or (tipo.lower() == 'fosa comun')):
aux = 0
familia=compruebaNULL('')
cons=imprimeFosas()
while not (aux):
tumba = compruebaNULL(raw_input("Fosa Com�n ---> "))
for x in cons.getresult():
if (str(tumba) == str(x[0])):
#Valor correcto, comprobemos si est� lleno
if (contarMuertosEnTumba(tumba) == capacidad(tumba, 'fosacomun')):
print "Fosa completa, seleccione otra"
else:
aux = 1
sql= "insert into Fallecido values ("+COMILLA+nombre+COMILLA+ COMA +COMILLA+apellidos+COMILLA+ COMA + COMILLA+fecha_nac+COMILLA+ COMA + COMILLA+ fecha_mue+COMILLA +COMA+ COMILLA+enterrador+COMILLA + COMA+ str(familia)+COMA+str(tumba)+COMA+dni+");"
return corrigeNULL(sql)
def anadirTumba():
"""A�ade una tumba a la BD"""
limpiarPantalla()
db = conectarBD()
if (db != -1):
try:
sqlTumba, sqlEspec = datosTumba()
guardarLinea(sqlTumba)
guardarLinea(sqlEspec)
ejecutaSQL(sqlTumba,db)
ejecutaSQL(sqlEspec,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo Tumbas"""
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def anadirFamiliar():
"""A�ade un familiar a la BD"""
limpiarPantalla()
db = conectarBD()
if (db != -1):
try:
sql = datosFamiliar()
guardarLinea(sql)
ejecutaSQL(sql,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo Familiar"""
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def anadirSector():
"""A�ade un Sector a la BD"""
limpiarPantalla()
db = conectarBD()
if (db != -1):
try:
sql = datosSector()
guardarLinea(sql)
ejecutaSQL(sql,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo Sector"""
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def anadirEnterrAdminis(tipo):
"""A�ade un Enterrador/Administrativo a la BD"""
limpiarPantalla()
print """A�adiendo """ + tipo
db = conectarBD()
if (db != -1):
try:
sql = datosEnterrAdminis(tipo)
guardarLinea(sql)
ejecutaSQL(sql,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo """ + tipo
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def anadirJardinero():
"""A�ade un Jardinero a la BD"""
#Conexi�n a la BBDD
limpiarPantalla()
print """A�adiendo Jardinero"""
db = conectarBD()
if (db != -1):
try:
sql = datosJardinero()
guardarLinea(sql)
ejecutaSQL(sql,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo Jardinero"""
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def anadirFactura():
"""A�ade una Factura a la BD"""
limpiarPantalla()
print """A�adiendo Factura"""
db = conectarBD()
if (db != -1):
try:
sql = datosFactura()
guardarLinea(sql)
ejecutaSQL(sql,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo Factura"""
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def anadirFallecido():
"""A�ade un Fallecido a la BD"""
limpiarPantalla()
print """A�adiendo Fallecido"""
db = conectarBD()
if (db != -1):
try:
sql = datosFallecido()
guardarLinea(sql)
ejecutaSQL(sql,db)
db.close()
raw_input ("""Presione INTRO para continuar""")
return EXITO
except:
print """Errores a�adiendo Fallecido"""
try:
db.close()
except:
pass
raw_input ("""Presione INTRO para continuar""")
return -2
else:
return -1
def limpiarPantalla():
for x in range(50):
print '\n'
def anadirDatos():
def MenuAnadirDatos():
limpiarPantalla()
titulo = '- A�adir Datos -'
opcion1 = '1.- A�adir Enterradores'
opcion2 = '2.- A�adir Administrativos'
opcion3 = '3.- A�adir Jardineros'
opcion4 = '4.- A�adir Tumbas'
opcion5 = '5.- A�adir Sectores'
opcion6 = '6.- A�adir Familiar'
opcion7 = '7.- A�adir Facturas'
opcion8 = '8.- A�adir Fallecidos'
opcion0 = '0.- Salir'
for x in range(30):
print '-',
print '\n\n\n'
print opcion1.center(60)
print opcion2.center(60)
print opcion3.center(60)
print opcion4.center(60)
print opcion5.center(60)
print opcion6.center(60)
print opcion7.center(60)
print opcion8.center(60)
print
print opcion0.center(60)
print '\n\n\n'
opc = raw_input ('Seleccione una opci�n >>> ')
#while (opc!='0'):
if (opc=='1'):
anadirEnterrAdminis('Enterrador')
MenuAnadirDatos()
elif (opc=='2'):
anadirEnterrAdminis('Administrativo')
MenuAnadirDatos()
elif (opc=='3'):
anadirJardinero()
MenuAnadirDatos()
elif (opc =='4'):
anadirTumba()
MenuAnadirDatos()
elif (opc =='5'):
anadirSector()
MenuAnadirDatos()
elif (opc =='6'):
anadirFamiliar()
MenuAnadirDatos()
elif (opc =='7'):
anadirFactura()
MenuAnadirDatos()
elif (opc =='8'):
anadirFallecido()
MenuAnadirDatos()
elif (opc=='0'):
#MenuAnadirDatos()
return EXITO
else:
MenuAnadirDatos()
MenuAnadirDatos()
def Menu():
"""Dibuja Men� principal"""
limpiarPantalla()
titulo = 'PyCemen'
opcion1= '1.- A�adir datos'
opcion0= '0.- Salir'
for x in range(30):
print '-',
print '\n'
print titulo.center(60)
for x in range(30):
print '-',
print '\n\n\n'
print opcion1.center(60)
print opcion0.center(60)
print '\n\n\n'
opc = raw_input ('Seleccione una opci�n >>> ')
#while (opc !='0'):
if (opc=='1'):
anadirDatos()
Menu()
elif (opc=='0'):
return EXITO
else:
Menu()
def run():
"""Rutina principal"""
Menu()
if __name__=='__main__':
run()