def registrarIngresoDeVehiculo(self, dominio, kilometrajeActual, combustibleActual, equipamiento, reparacion, comisaria, localidad):
        '''
        @return: 
        @author: 
        '''
        vehiculo = self.getVehiculo(dominio)
        '''
        TODO: tener en cuenta el método obtenerOrdenDeReparacionEnCurso de Legajo que nos indica
        si ese vehículo tiene o no orden Reparación, por lo tanto no debemos crearle otra hasta
        que esa haya sido finalizada.
        '''
        try:
            vehiculo.dameOrdenDeReparacionEnCurso()
#            import datetime
#            hoy = datetime.datetime.now()
#            from MiZODB import MiZODB, ZopeDB
#            zodb = ZopeDB(MiZODB())
#            zodb.remove('vehiculos', vehiculo.dominio)
#            vehiculo.crearOrdenDeReparacion(kilometrajeActual, combustibleActual, equipamiento, reparacion, comisaria, localidad, hoy)
#            vehiculo.save()
        except excepciones.Excepcion_No_Posee_Orden_Reparacion_En_Curso.Excepcion_No_Posee_Orden_Reparacion_En_Curso:
            import datetime
            hoy = datetime.datetime.now()
            from MiZODB import MiZODB, ZopeDB
            zodb = ZopeDB(MiZODB())
            zodb.remove('vehiculos', vehiculo.dominio)
            vehiculo.crearOrdenDeReparacion(kilometrajeActual, combustibleActual, equipamiento, reparacion, comisaria, localidad, hoy)
            vehiculo.save()
 def getVehiculo(self, clave):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.get('vehiculos', clave)
 def getTipoDeDocumentos(self):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.getAlls('tiposDocumentos')
 def getRepuesto(self, clave):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.get('tiposRepuestos', clave)
 def getVehiculos(self):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.getAlls('vehiculos')
 def getEmpleado(self, clave):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.get('empleados', clave)
 def getRepuestos(self):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.getAlls('tiposRepuestos')
 def getSecciones(self):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.getAlls('secciones')
 def getTipoReparacion(self, claveTipoReparacion):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     return zodb.get('tiposReparaciones', claveTipoReparacion)
 def agregarEmpleado(self, nombre, apellido, numeroDocumento, tipoDocumento):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     empleado = Empleado(nombre, apellido, numeroDocumento, zodb.get('tiposDocumentos', tipoDocumento))
     zodb.save('empleados', empleado.documento, empleado)
 def getEmpleadosSinAsignar(self):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     empleados = zodb.getAlls('empleados')
     return empleados            
 def modificarVehiculo(self, dominio, marca, registroInterno, numeroChasis):
     zodb = ZopeDB(MiZODB())
     vehiculo = deepcopy(zodb.get('vehiculos', dominio))
     zodb.remove('vehiculos', dominio)
     vehiculo.dominio = dominio
     vehiculo.marca = marca
     vehiculo.registroInterno = registroInterno
     vehiculo.numeroChasis = numeroChasis
     vehiculo.save()
    def save(self):
        '''
        @return: 
        @author: 
        '''
        from MiZODB import ZopeDB, MiZODB
        zodb = ZopeDB(MiZODB())
#        zodb = ZopeDB(MiZODB('zeo.conf'))
        zodb.save('secciones', self.nombre, self)
 def registrarReparaciones(self, vehiculoSeleccionado):
     # primero cambiamos el estado de la orden
     # vehiculoSeleccionado.getOrdenDeReparacionEnCurso().getEstadoOrdenReparacion().cambiarProximoEstado()
     vehiculoSeleccionado.getOrdenDeReparacionEnCurso().generarPedidoDeActuacion()
     from copy import deepcopy
     unVehiculo = deepcopy(vehiculoSeleccionado)
     
     zodb = ZopeDB(MiZODB())
     zodb.remove('vehiculos', vehiculoSeleccionado.getDominio())
     unVehiculo.save()
 def getEmpleados(self):
     '''
     @return: 
     @author: 
     '''
     zodb = ZopeDB(MiZODB())
     empleados = zodb.getAlls('empleados').values()
     secciones = zodb.getAlls('secciones').values()
     empleadosAsignados = {}
     for seccion in secciones:
         p = seccion.empleados.values()
         for empleado in p:
             empleadosAsignados[empleado.documento] = empleado
         empleadosAsignados[seccion.encargado.documento] = seccion.encargado
 
     for empleado in empleados:
         empleadosAsignados[empleado.documento] = empleado
     return empleadosAsignados
 def agregarSecciones(self, nombreSeccion, empleados, encargado):
     '''
     @return: 
     @author: 
     '''
     pass
     # Acordarse de de que vienen los documentos del empleados y el documento del encargado
     # y sólo el nombre de la Sección.
     zodb = ZopeDB(MiZODB())
     empleadosSeccion = {}
     for empleado in empleados:
         empleadosSeccion[empleado] = deepcopy(zodb.get('empleados', empleado))
     encargadoSeccion = deepcopy(zodb.get('empleados', encargado))
     seccion = Seccion(nombreSeccion, empleadosSeccion, encargadoSeccion)
     seccion.save()
     zodb.remove('empleados', empleado)
     zodb.remove('empleados', encargado)
    def save(self):
        from MiZODB import ZopeDB, MiZODB

        zodb = ZopeDB(MiZODB())
        zodb.save("vehiculos", self.dominio, self)
    def save(self):
        from MiZODB import ZopeDB, MiZODB
        zodb = ZopeDB(MiZODB())
#        zodb = ZopeDB(MiZODB('zeo.conf'))
        zodb.save('empleados', self.documento, self)
@author: urrutia
'''

from ZODB import config
import transaction
from persistent.mapping import PersistentMapping

from negocio.Empleado import Empleado
from negocio.TipoDocumento import TipoDocumento

from MiZODB import ZopeDB, MiZODB
from pprint import pprint

if __name__ == '__main__':
    
    bd = ZopeDB(MiZODB())
    bd.cargarTiposDeDocumentos()
    bd.cargarTiposDeReparaciones()
    bd.zodb.close()
    
    bd.zodb.open()
    tiposReparaciones = bd.getAlls('tiposReparaciones')
    pprint(tiposReparaciones)
    bd.zodb.close()
    
#    bd = config.databaseFromURL('zeo.conf')
#    conexion = bd.open()
#    raiz = conexion.root()
#    
#    tDoc = TipoDocumento('D.N.I','Documento Nacional de Identidad')
#    raiz['D.N.I'] = tDoc
    def save(self):
        from MiZODB import ZopeDB, MiZODB
        zodb = ZopeDB(MiZODB())
#        zodb = ZopeDB(MiZODB('zeo.conf'))
        zodb.save('tiposRepuestos', self.getNombre(), self)
 def getTipoReparaciones(self):
     zodb = ZopeDB(MiZODB())
     return zodb.getAlls('tiposReparaciones')