class Submenu_alta_baja_paseo(QtGui.QWidget, dialogo_alta_baja_paseo):
    
    def __init__ (self,lista_paseos ,lista_paseadores , tabla , numero_mascotas ,parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.boton_guardar.clicked.connect(self.guardar)
        self.box_paseador.currentIndexChanged.connect(self.numeroMascotas)
        self.tabla = tabla
        self.lista_paseos = lista_paseos
        self.lista_paseadores = lista_paseadores
        self.lista_numero_mascotas = numero_mascotas
        self.paseo.setText(str(lista_paseos.tamanio() ))
        self.box_paseador.addItems(lista_paseadores.ListaNombres())
    
    def numeroMascotas(self):
        pos = self.box_paseador.currentIndex()
        self.mascota.setText(str(self.lista_numero_mascotas[pos]))
        
    def guardar(self):
        error = ''
        ID = self.lista_paseos.tamanio()
        pos = self.box_paseador.currentIndex()
        paseador = self.lista_paseadores.obtener(pos)
        numeroMascotas = self.lista_numero_mascotas[pos]
        if (numeroMascotas == 0):
            error = 'El paseador no posee mascotas a cargo'
        try:
            tiempo_estimado = int(self.tiempo_estimado.text())
        except(ValueError):
            error += 'EL TIEMPO ESTIMADO DEBE SER UN VALOR NUMERICO.'
        tiempo_salida = time.strftime('%H : %M : %S')
        tiempo_llegada = '----------'
        if(error == ''):
            self.lista_paseos.agregar(Paseo(tiempo_salida,tiempo_llegada, tiempo_estimado,ID,paseador))
            add_in_tabla_paseo(self.tabla,self.lista_paseos)
            self.close()
        else:
            self.mostra_error(error)

    def mostra_error(self,detalles):
        self.error = Error_alta_baja()
        self.error.setVisible(True)
        self.error.mensaje_error.setText(detalles)
    def mostra_error(self,detalles):
        self.error = Error_alta_baja()
        self.error.setVisible(True)
        self.error.mensaje_error.setText('Error en el campo: ' + detalles)
        
        
        

        
        
            
예제 #3
0
class Menu(QtGui.QMainWindow,Menu):
    
    def __init__(self, parent=None):
         QtGui.QMainWindow.__init__(self, parent)
         self.setupUi(self)
         
         self.lista_mascotas = Control_mascota()
         self.lista_clientes = Control('CLIENTE')
         self.lista_paseadores = Control('PASEADOR') 
         self.lista_paseos = Control_paseo()

         self.boton_cliente.clicked.connect(self.gestionCliente)
         self.boton_mascota.clicked.connect(self.gestionMascota)
         self.boton_paseador.clicked.connect(self.gestionPaseador)
         self.boton_nuevo_paseo.clicked.connect(self.gestionPaseo)
         self.llegada.clicked.connect(self.marcarLlegada)
         self.boton_mapa.clicked.connect(self.verRecorrido)
         self.tabla_paseos.clicked.connect(self.activar)
         
    
    def gestionCliente(self):
        self.menu_cliente = Menu_gestion(self.lista_clientes,self.lista_mascotas)
        self.menu_cliente.setVisible(True)
        
    def gestionMascota(self):
        self.menu_mascota = Menu_gestion_mascota(self.lista_clientes,self.lista_paseadores,self.lista_mascotas)
        self.menu_mascota.setVisible(True)
    
    def gestionPaseador(self):
        self.menu_paseador = Menu_gestion(self.lista_paseadores,self.lista_mascotas)
        self.menu_paseador.setVisible(True)
    
    def gestionPaseo(self):
        if(self.lista_paseadores.tamanio() > 0):
            self.menu_nuevo_paseo = Submenu_alta_baja_paseo(self.lista_paseos,self.lista_paseadores,self.tabla_paseos,self.lista_paseadores.cantidad_mascotas(self.lista_mascotas))
            self.menu_nuevo_paseo.setVisible(True)
        else:
            self.mostra_error('No hay Paseadores.')
        
    def marcarLlegada(self):
        self.lista_paseos.obtener(self.tabla_paseos.currentRow()).set_hora_llegada(time.strftime('%H : %M : %S'))
        CargarTablaPaseo(self.tabla_paseos , self.lista_paseos)
        self.llegada.setEnabled(False)
        self.boton_mapa.setEnabled(True)
    
    def verRecorrido(self):
        paseador = self.lista_paseos.obtener(self.tabla_paseos.currentRow()).get_paseador()  
        direcciones = self.lista_clientes.direcciones(self.lista_mascotas.mascotas(paseador))
        print(direcciones)        
        self.mapa_recorrido = Mapa(direcciones)
        self.mapa_recorrido.setVisible(True)
        
    def activar(self):
        if(self.lista_paseos.obtener(self.tabla_paseos.currentRow()).get_hora_llegada().find('-') > -1):
            self.llegada.setEnabled(True)
        else:
            self.llegada.setEnabled(False)
        self.boton_mapa.setEnabled(True)
        
    def mostra_error(self,detalles):
        self.error = Error_alta_baja()
        self.error.setVisible(True)
        self.error.mensaje_error.setText( detalles)
class Submenu_alta_baja_mascota(QtGui.QWidget, dialogo_alta_baja_mascota):
    
    def __init__ (self,lista_mascotas,lista_clientes,paseador,tabla,mascota = None,parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.barra_peso.valueChanged.connect(self.manejo_peso)
        self.boton_guardar.clicked.connect(self.guardar)
        
        self.lista_mascotas = lista_mascotas
        self.lista_clientes = lista_clientes
        self.chico.show()
        self.mediano.close()
        self.grande.close() 
        self.box_cliente.addItems(self.lista_clientes.ListaNombres())
        self.tabla = tabla
        if(mascota != None):
            self.linea_raza.setText(mascota.get_raza())
            self.barra_peso.setValue(mascota.get_peso())
            self.id = mascota.get_ID()
            self.linea_id.setText(str (self.id))
            self.manejo_peso()
            self.linea_nombre.setText(mascota.get_nombre())
            self.box_paseador.addItems(paseador.ListaNombres())
            self.paseador_asignado = paseador.obtener(self.box_cliente.currentIndex()).get_DNI()
        else:
            self.id = lista_mascotas.tamanio()
            self.linea_id.setText(str (self.id))
            self.paseador_asignado = paseador.get_DNI()
            self.box_paseador.addItem(paseador.get_apellido_nombre())
            
        
        
    def manejo_peso(self):
        if (self.Peso.intValue() < 20):
            self.chico.show()
            self.mediano.close()
            self.grande.close()
        elif(self.Peso.intValue() < 50):
            self.chico.close()
            self.mediano.show()
            self.grande.close()
        else:
            self.chico.close()
            self.mediano.close()
            self.grande.show()
            
            
    def guardar(self):
        error = ''
        ID = self.id
        paseador = self.paseador_asignado
        dueño = self.lista_clientes.obtener(self.box_cliente.currentIndex()).get_DNI()
        nombre = self.linea_nombre.text()
        if (nombre == ''):
            error += ' nombre'
        raza = self.linea_raza.text()
        if (raza == ''):
            error += ' raza'
        peso = self.Peso.intValue()
        if(error !=''):
            self.mostra_error(error)
        else:
            self.guardar_como(Mascota(nombre , raza , peso ,ID,dueño ,paseador))
        
    def guardar_como(self,mascota):
        if self.id == self.lista_mascotas.tamanio() :            
            self.lista_mascotas.agregar(mascota)
            add_in_tabla_mascota(self.tabla,self.lista_mascotas)
            self.close()
        else:
            self.lista_mascotas.lista[self.id] = mascota
            setChangeTablaMascota(self.tabla , self.lista_mascotas,self.id,self.tabla.currentRow())
            self.close()

        
     
    def mostra_error(self,detalles):
        self.error = Error_alta_baja()
        self.error.setVisible(True)
        self.error.mensaje_error.setText('Error en el campo: ' + detalles)
        
        
        

        
        
            
예제 #5
0
class Submenu_alta_baja(QtGui.QWidget, dialogo_alta_baja):
    
    def __init__ (self,lista,tabla,mascotas= None,pos= None, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.pos = pos
        self.lista  = lista
        self.tabla = tabla
       
        if(pos != None):
            persona = self.lista.lista[self.pos]
            self.lista_mascotas = mascotas
            self.linea_nombre.setText(persona.get_nombre())
            self.linea_apellido.setText(persona.get_apellido())
            self.dni_viejo = persona.get_DNI()
            self.linea_dni.setText(str(persona.get_DNI()))
            self.linea_telefono.setText(str(persona.get_telefono()))
            self.linea_direccion.setText(persona.get_direc())
            self.text.setText('MODIFICAR '+ lista.get_roll())
        else:
            self.text.setText('NUEVO '+ lista.get_roll() )
        
        self.boton_guardar.clicked.connect(self.guardar)
            
        
    def guardar(self):
        error = ''
        dni  = 0
        telefono = 0
        nombre = self.linea_nombre.text()
        if (nombre == ''):
            error += 'nombre' 
        apellido = self.linea_apellido.text()
        if (apellido == ''):
            error += ', apellido' 
        try:
            dni = int(self.linea_dni.text())
        except(ValueError):
            error += ', dni' 
        try:
            telefono = int(self.linea_telefono.text())
        except(ValueError):
            error += ', telefono'
        direccion = self.linea_direccion.text()
        if (direccion == ''):
            error += ', direccion'
            
        if (error != ''): #verifica que los campos sean correctos
            self.mostra_error(error)
        else:
            self.guardar_como(Persona(nombre,apellido,dni,telefono,direccion+ 'Concepcion del Uruguay'))            
            
            
    def guardar_como(self,persona):
        if self.pos == None :            
            if(self.lista.control_agregar(persona)):
                add_in_tabla(self.tabla,self.lista)
                self.close()
            else:
                self.mostra_error('El '+self.lista.get_roll()+' con el documento' +str(persona.get_DNI())+ ' ya existe.')
        else:
            if (self.dni_viejo == persona.get_DNI()):
                self.lista.lista[self.pos] = persona
                setChangeTabla(self.tabla , self.lista,self.pos,self.tabla.currentRow())
                self.close()
            else:
                if self.lista.obtener_por_dni(persona.get_DNI()) == None :
                    self.lista.lista[self.pos] = persona
                    if (self.lista.roll == 'CLIENTE'):
                        self.lista_mascotas.modificar_dueño(self.dni_viejo,persona.get_DNI())
                    else:
                        self.lista_mascotas.modificar_paseador(self.dni_viejo,persona.get_DNI())
                    setChangeTabla(self.tabla , self.lista,self.pos,self.tabla.currentRow())
                    self.close()
                else:
                    self.mostra_error('El '+self.lista.get_roll()+' con el documento' +str(persona.get_DNI())+ ' ya existe.')
            
        
    def mostra_error(self,detalles):
        self.error = Error_alta_baja()
        self.error.setVisible(True)
        self.error.mensaje_error.setText('Error en el campo: ' + detalles)