Beispiel #1
0
 def __init__(self, juzgado=None, parent=None):
     '''
     Constructor
     '''
     super(NuevoJuzgado, self).__init__(parent)
     self.__dirty = False
     
     if juzgado is not None and not isinstance(juzgado, Juzgado):
         raise TypeError("El objeto juzgado debe ser de la clase Juzgado")
     
     self.__juzgado = juzgado
     self.setupUi(self)
     
     campos = []
             
     if self.__juzgado is not None:
         self.setWindowTitle(u"Editar juzgado")
         self.groupBox.setTitle(u"Datos del juzgado:")
         campos = juzgado.getCampos()
         self.txtNombre.setText(self.__juzgado.getNombre())
         self.txtDireccion.setText(self.__juzgado.getDireccion())
         self.txtCiudad.setText(self.__juzgado.getCiudad())
         self.txtTelefono.setText(self.__juzgado.getTelefono())
         self.txtTipo.setText(self.__juzgado.getTipo())
         
     self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self,
                                  constante_de_edicion=NuevoCampo.JUZGADO, constante_de_creacion=ListadoDialogo.CAMPOJUZGADO)
     self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
     
     self.txtNombre.textChanged.connect(self.setDirty)
     self.txtCiudad.textChanged.connect(self.setDirty)
     self.txtDireccion.textChanged.connect(self.setDirty) 
     self.txtTelefono.textChanged.connect(self.setDirty) 
     self.txtTipo.textChanged.connect(self.setDirty)
Beispiel #2
0
 def __init__(self, persona=None, tipo=None, parent=None):
     super(NuevaPersona, self).__init__(parent)
     
     self.__dirty = False
     
     if(persona is None and tipo is None):
         raise TypeError("Para crear una nueva persona debe pasar el argumento tipo")
     if persona is not None and not isinstance(persona, Persona):
         raise TypeError("El objeto persona debe ser de la clase Persona")
     self.__persona = persona
     self.setupUi(self)
     
     if self.__persona is not None:
         campos = persona.getCampos()
         self.__tipo = persona.getTipo()
         self.txtNombre.setText(self.__persona.getNombre())
         self.txtCedula.setText(self.__persona.getId())
         self.txtTelefono.setText(self.__persona.getTelefono())
         self.txtDireccion.setText(self.__persona.getDireccion())
         self.txtCorreo.setText(self.__persona.getCorreo())
         self.txtNotas.setText(self.__persona.getNotas())
     else:
         campos = []
         self.__tipo = tipo
                     
     if self.__tipo is 1:
         constante = ListadoDialogo.CAMPODEMANDADO
         if persona is None:
             self.setWindowTitle("Nuevo cliente")
             self.groupBox.setTitle("Ingrese los datos del nuevo cliente:")
         else:
             self.setWindowTitle("Editar cliente")
             self.groupBox.setTitle("Ingrese los datos del cliente:")
     elif self.__tipo is 2:
         constante = ListadoDialogo.CAMPODEMANDADO
         if persona is None:
             self.setWindowTitle("Nueva contraparte")
             self.groupBox.setTitle("Ingrese los datos de la nueva contraparte:")
         else:
             self.setWindowTitle("Editar contraparte")
             self.groupBox.setTitle("Ingrese los datos de la contraparte:")
             
     self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.PERSONA, constante_de_creacion=constante)
     self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
     
     self.txtNombre.textEdited.connect(self.setDirty)
     self.txtCedula.textEdited.connect(self.setDirty)
     self.txtCorreo.textEdited.connect(self.setDirty)
     self.txtDireccion.textEdited.connect(self.setDirty)
     self.txtNotas.textChanged.connect(self.setDirty)
     self.txtTelefono.textEdited.connect(self.setDirty)
Beispiel #3
0
class NuevoJuzgado(QtGui.QDialog, Ui_NuevoJuzgado):
    '''
    classdocs
    '''
    
    def __init__(self, juzgado=None, parent=None):
        '''
        Constructor
        '''
        super(NuevoJuzgado, self).__init__(parent)
        self.__dirty = False
        
        if juzgado is not None and not isinstance(juzgado, Juzgado):
            raise TypeError("El objeto juzgado debe ser de la clase Juzgado")
        
        self.__juzgado = juzgado
        self.setupUi(self)
        
        campos = []
                
        if self.__juzgado is not None:
            self.setWindowTitle(u"Editar juzgado")
            self.groupBox.setTitle(u"Datos del juzgado:")
            campos = juzgado.getCampos()
            self.txtNombre.setText(self.__juzgado.getNombre())
            self.txtDireccion.setText(self.__juzgado.getDireccion())
            self.txtCiudad.setText(self.__juzgado.getCiudad())
            self.txtTelefono.setText(self.__juzgado.getTelefono())
            self.txtTipo.setText(self.__juzgado.getTipo())
            
        self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self,
                                     constante_de_edicion=NuevoCampo.JUZGADO, constante_de_creacion=ListadoDialogo.CAMPOJUZGADO)
        self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
        
        self.txtNombre.textChanged.connect(self.setDirty)
        self.txtCiudad.textChanged.connect(self.setDirty)
        self.txtDireccion.textChanged.connect(self.setDirty) 
        self.txtTelefono.textChanged.connect(self.setDirty) 
        self.txtTipo.textChanged.connect(self.setDirty)
          
    def getJuzgado(self):
        return self.__juzgado
    
    def __guardar(self):
        guardar = True
        p = Persistence()
        nombre = self.txtNombre.text()
        direccion = self.txtDireccion.text()
        telefono = self.txtTelefono.text()
        ciudad = self.txtCiudad.text()
        tipo = self.txtTipo.text()
        campos = self.__gestor.getCampos()
        if not self.__juzgado:
            self.__juzgado = Juzgado(nombre=nombre, ciudad=ciudad, direccion=direccion, telefono=telefono, tipo=tipo, campos=campos)                
        else:
            camposNuevos = self.__gestor.getCamposNuevos()
            camposEliminados = self.__gestor.getCamposEliminados()
            for campo in camposEliminados:
                p.borrarCampoJuzgado(campo)
            for campo in camposNuevos:
                p.guardarCampoJuzgado(campo, self.__juzgado.getId_juzgado())
            self.__juzgado.setNombre(nombre)
            self.__juzgado.setDireccion(direccion)
            self.__juzgado.setCiudad(ciudad)
            self.__juzgado.setTelefono(telefono)
            self.__juzgado.setTipo(tipo)
            self.__juzgado.setCampos(campos)
            guardar = False                    
        try:
            if guardar:
                p.guardarJuzgado(self.__juzgado)
            else:
                p.actualizarJuzgado(self.__juzgado) 
        except sqlite3.IntegrityError:
            if guardar:
                self.__juzgado = None
            QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe')
        else:
            return QtGui.QDialog.accept(self)
            
    def accept(self):
        if self.txtNombre.text().__len__() == 0 or self.txtNombre.text() == " ":
            QtGui.QMessageBox.warning(self, 'Cambo obligatorio', 'El nombre se considera obligatorio')
            self.txtNombre.setFocus()
        elif not len(self.txtTelefono.text()):
            ret = QtGui.QMessageBox.question(self, 'Pregunta', u'¿Desea guardar sin agregar un teléfono?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
            if ret == QtGui.QMessageBox.No:
                self.txtTelefono.setFocus()
            elif self.__gestor.organizarCampos():
                self.__guardar()            
        elif self.__gestor.organizarCampos():
            self.__guardar()
            
    def reject(self):
        Util.reject(self, self.__dirty)
            
    def setDirty(self):
        self.__dirty = True
        self.disconnect(self.sender(), QtCore.SIGNAL("textEdited()"), self.setDirty)
Beispiel #4
0
    def __init__(self, actuacion=None, parent=None):
        super(NuevaActuacion, self).__init__(parent)
        self.__dirty = False
        
        if actuacion is not None and not isinstance(actuacion, Actuacion):
            raise TypeError("El objeto actuacion debe ser de la clase Actuacion")
 
        self.setupUi(self)
        self.__actuacion = actuacion
        self.__juzgado = None
        campos = []
                
        if actuacion is not None:
            self.setWindowTitle(u'Editar actuación')
            self.groupBox.setTitle(u'Datos de la actuación:')
            self.__juzgado = actuacion.getJuzgado()
            campos = actuacion.getCampos()
            self.txtDescripcion.setText(unicode(actuacion.getDescripcion()))
            self.lblJuzgado.setText(unicode(self.__juzgado.getNombre()))
            self.dteFecha.setDateTime(actuacion.getFecha())
            self.dteFechaProxima.setDateTime(actuacion.getFechaProxima())
            p = Persistence()
            citas = p.consultarCitasCalendario()
            for cita in citas:
                if cita.getId_actuacion() == actuacion.getId_actuacion():
                    self.__cita = cita
                    self.checkCita.setChecked(True)
                    break
            else:
                self.__cita = None
                self.checkCita.setChecked(False)
        else:
            self.dteFecha.setDateTime(datetime.today())
            self.dteFechaProxima.setDateTime(datetime.today())
            self.lblJuzgado.setText(u'vacío')
            self.__cita = None
            
        self.__dialogo = DialogoAuxiliar(self)
        
        self.__clickJuzgado()
        
        cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado)
        cambiar.setData(self.lblJuzgado)
        editar = self.__createAction("Editar", self.__editarJuzgado)
        editar.setData(self.lblJuzgado)
        
        self.lblJuzgado.addActions([cambiar, editar])
        
        self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self,
                                     constante_de_edicion=NuevoCampo.ACTUACION, constante_de_creacion=ListadoDialogo.CAMPOACTUACION)
        self.btnAdd.clicked.connect(self.__gestor.addCampo)
        
        self.txtDescripcion.textChanged.connect(self.setDirty)
        self.dteFecha.dateTimeChanged.connect(self.setDirty)
        self.dteFechaProxima.dateTimeChanged.connect(self.setDirty)
        self.dteFechaProxima.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False))
        self.dteFecha.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False))
        self.checkCita.clicked.connect(self.setCita)
        
        self.actionEditarCita = self.__createAction('Editar cita', self.editarCita)
        self.checkCita.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
        self.setActionCita()
Beispiel #5
0
class NuevaActuacion(QtGui.QDialog, Ui_NuevaActuacion):
    '''
    classdocs
    '''
    def __init__(self, actuacion=None, parent=None):
        super(NuevaActuacion, self).__init__(parent)
        self.__dirty = False
        
        if actuacion is not None and not isinstance(actuacion, Actuacion):
            raise TypeError("El objeto actuacion debe ser de la clase Actuacion")
 
        self.setupUi(self)
        self.__actuacion = actuacion
        self.__juzgado = None
        campos = []
                
        if actuacion is not None:
            self.setWindowTitle(u'Editar actuación')
            self.groupBox.setTitle(u'Datos de la actuación:')
            self.__juzgado = actuacion.getJuzgado()
            campos = actuacion.getCampos()
            self.txtDescripcion.setText(unicode(actuacion.getDescripcion()))
            self.lblJuzgado.setText(unicode(self.__juzgado.getNombre()))
            self.dteFecha.setDateTime(actuacion.getFecha())
            self.dteFechaProxima.setDateTime(actuacion.getFechaProxima())
            p = Persistence()
            citas = p.consultarCitasCalendario()
            for cita in citas:
                if cita.getId_actuacion() == actuacion.getId_actuacion():
                    self.__cita = cita
                    self.checkCita.setChecked(True)
                    break
            else:
                self.__cita = None
                self.checkCita.setChecked(False)
        else:
            self.dteFecha.setDateTime(datetime.today())
            self.dteFechaProxima.setDateTime(datetime.today())
            self.lblJuzgado.setText(u'vacío')
            self.__cita = None
            
        self.__dialogo = DialogoAuxiliar(self)
        
        self.__clickJuzgado()
        
        cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado)
        cambiar.setData(self.lblJuzgado)
        editar = self.__createAction("Editar", self.__editarJuzgado)
        editar.setData(self.lblJuzgado)
        
        self.lblJuzgado.addActions([cambiar, editar])
        
        self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self,
                                     constante_de_edicion=NuevoCampo.ACTUACION, constante_de_creacion=ListadoDialogo.CAMPOACTUACION)
        self.btnAdd.clicked.connect(self.__gestor.addCampo)
        
        self.txtDescripcion.textChanged.connect(self.setDirty)
        self.dteFecha.dateTimeChanged.connect(self.setDirty)
        self.dteFechaProxima.dateTimeChanged.connect(self.setDirty)
        self.dteFechaProxima.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False))
        self.dteFecha.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False))
        self.checkCita.clicked.connect(self.setCita)
        
        self.actionEditarCita = self.__createAction('Editar cita', self.editarCita)
        self.checkCita.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
        self.setActionCita()
        
    def verificarFechas(self, fecha = None, interna = True):
        if self.dteFechaProxima.dateTime() < self.dteFecha.dateTime() and not interna:
            from datetime import timedelta
            self.dteFechaProxima.setDateTime(self.dteFecha.dateTime().toPython() + timedelta(0, 60))
            #QtGui.QMessageBox.information(self, 'Error', u'La fecha próxima no puede ser menor a la fecha de creación')
        
    def setActionCita(self):
        if self.__cita == None:
            self.checkCita.removeAction(self.actionEditarCita)
        else:
            self.checkCita.addAction(self.actionEditarCita)
        
    def editarCita(self):
        editar = NuevaCita(cita=self.__cita, parent=self)
        if editar.exec_():
            gestor = GestorCitas()
            gestor.actualizarCitas()
        
    def setCita(self):
        boolean = self.checkCita.checkState()
        if boolean:
            if self.__actuacion:
                guardar = True
            else:
                guardar = False
            nueva = NuevaCita(actuacion=self.__actuacion, cita=None, fecha=self.dteFechaProxima.dateTime(), parent=self, isGuardar=guardar)
            if nueva.exec_():
                self.__cita = nueva.getCita()
            else:
                self.checkCita.setChecked(False)
            nueva.setParent(None)
        else:
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Question)
            message.setStandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
            message.setDefaultButton(QtGui.QMessageBox.No)
            message.setText(u'¿Desea eliminar la cita?')
            if message.exec_() == QtGui.QMessageBox.Yes:
                if self.__actuacion:
                    p = Persistence()
                    p.borrarCitaCalendario(self.__cita)
                    gestor = GestorCitas()
                    gestor.actualizarCitas()
                self.__cita = None
            else:
                self.checkCita.setChecked(True)
        self.setActionCita()
        
    def getActuacion(self):
        return self.__actuacion
    
    def __createAction(self, text, slot=None):
        action = QtGui.QAction(text, self)
        if slot is not None:
            self.connect(action, QtCore.SIGNAL("triggered()"), slot)
        return action 
    
    def __cambiarJuzgado(self):
        listado = ListadoDialogo(ListadoDialogo.JUZGADO, self)
        if listado.exec_():
            self.__juzgado = listado.getSelected()
            self.lblJuzgado.setText(self.__juzgado.getNombre())
            self.__dirty = True
            del(listado)
    
    def __editarJuzgado(self):
        if self.__juzgado is not None and self.__juzgado.getId_juzgado() is not "1":
            dialogo = NuevoJuzgado(self.__juzgado, self)
            if dialogo.exec_():
                self.lblJuzgado.setText(self.__juzgado.getNombre())
                if isinstance(self.horizontal.itemAt(1).widget(), VerJuzgado):
                    self.horizontal.itemAt(1).widget().deleteLater()
                    vista = VerJuzgado(self.__juzgado, self)
                    self.horizontal.addWidget(vista)
            del(dialogo)
        
    def accept(self):
        if len(self.txtDescripcion.text()) is 0:
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Warning)
            message.setText(u"La descripción se considera obligatoria")
            message.exec_()
            self.txtDescripcion.setFocus()
        elif self.__juzgado is None or self.__juzgado.getId_juzgado() is "1":
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Warning)
            message.setText(u"El juzgado no se permite vacío")
            message.exec_()
            self.txtDescripcion.setFocus()
        elif self.__gestor.organizarCampos():
            self.__guardar()
            
    def __guardar(self):
        del(self.__dialogo)
        fecha = self.dteFecha.dateTime().toPython()
        fechaProxima = self.dteFechaProxima.dateTime().toPython()
        descripcion = self.txtDescripcion.text()
        if self.checkCita.isChecked():
            cita = self.__cita
        else:
            cita = None
        if not self.__actuacion:
            self.__actuacion = Actuacion(juzgado=self.__juzgado, fecha=fecha,
                                         fechaProxima=fechaProxima, descripcion=descripcion,
                                         campos=self.__gestor.getCampos())
        else:
            if self.__actuacion.getId_actuacion() is not None:
                camposNuevos = self.__gestor.getCamposNuevos()
                camposEliminados = self.__gestor.getCamposEliminados()
                try:
                    p = Persistence()
                    for campo in camposEliminados:
                        p.borrarCampoActuacion(campo)
                    for campo in camposNuevos:
                        p.guardarCampoActuacion(campo, self.__actuacion.getId_actuacion())
                except Exception, e:
                    print "guardar actuación -> " % e.args
            self.__actuacion.setDescripcion(descripcion)
            self.__actuacion.setFecha(fecha)
            self.__actuacion.setFechaProxima(fechaProxima)
            self.__actuacion.setCampos(self.__gestor.getCampos())
            self.__actuacion.setJuzgado(self.__juzgado)
        self.__actuacion.cita = cita
        return QtGui.QDialog.accept(self)
Beispiel #6
0
 def __init__(self, plantilla = None, parent = None):
     '''
     Constructor
     '''
     super(NuevaPlantilla, self).__init__(parent)
     self.__dirty = False
     self.setupUi(self)
     if plantilla is not None and not isinstance(plantilla, Plantilla):
         raise TypeError("El objeto plantilla debe pertenecer a la clase Plantilla")
     if plantilla is not None:
         self.groupBox.setTitle("Datos de la plantilla:")
         self.setWindowTitle("Editar plantilla")
         
     self.__plantilla = plantilla
     campos = []
     self.__demandante = None
     self.__demandado = None
     self.__juzgado = None
     self.__categoria = Categoria("Ninguna", "1")
     
     self.sbPrioridad.setRange(0, 10)        
     if self.__plantilla is not None:
         self.__demandante = self.__plantilla.getDemandante()
         self.__demandado = self.__plantilla.getDemandado()
         self.__juzgado = self.__plantilla.getJuzgado()
         self.__categoria = self.__plantilla.getCategoria()
         campos = self.__plantilla.getCampos()
         
         self.txtNombre.setText(self.__plantilla.getNombre())
         self.lblDemandante.setText(self.__demandante.getNombre())
         self.lblDemandado.setText(self.__demandado.getNombre())
         self.lblJuzgado.setText(self.__juzgado.getNombre())
         self.lblCategoria.setText(self.__categoria.getDescripcion())
         self.txtRadicado.setText(self.__plantilla.getRadicado())
         self.txtRadicadoUnico.setText(self.__plantilla.getRadicadoUnico())
         self.txtTipo.setText(self.__plantilla.getTipo())
         self.txtEstado.setText(self.__plantilla.getEstado())
         self.sbPrioridad.setValue(self.__plantilla.getPrioridad())
         self.txtNotas.setText(self.__plantilla.getNotas())
         
     self.__dialogo = DialogoAuxiliar(self)
                         
     self.__clickDemandante()
     self.__clickDemandado()
     self.__clickJuzgado()
     self.__clickCategoria()
     
     cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado)
     cambiar.setData(self.lblJuzgado)
     editar = self.__createAction("Editar", self.__editarJuzgado)
     editar.setData(self.lblJuzgado)
     
     self.lblJuzgado.addActions([cambiar, editar])
     
     cambiar = self.__createAction("Cambiar", self.__cambiarDemandante)
     cambiar.setData(self.lblDemandante)
     editar = self.__createAction("Editar", self.__editarDemandante)
     editar.setData(self.lblDemandante)
     
     self.lblDemandante.addActions([cambiar, editar])
     
     cambiar = self.__createAction("Cambiar", self.__cambiarDemandado)
     cambiar.setData(self.lblDemandado)
     editar = self.__createAction("Editar", self.__editarDemandado)
     editar.setData(self.lblDemandado)
     
     self.lblDemandado.addActions([cambiar, editar])
     
     cambiar = self.__createAction("Cambiar", self.__cambiarCategoria)
     cambiar.setData(self.lblCategoria)
     editar = self.__createAction("Editar", self.__editarCategoria)
     editar.setData(self.lblCategoria)
     
     self.lblCategoria.addActions([cambiar, editar])
     
     self.__gestor = GestorCampos(campos = campos, formLayout = self.formLayout, parent = self,
                                  constante_de_edicion = NuevoCampo.PROCESO, constante_de_creacion = ListadoDialogo.CAMPOPROCESOP)
     self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
     
     self.txtRadicado.textChanged.connect(self.setDirty)
     self.txtRadicadoUnico.textChanged.connect(self.setDirty)
     self.txtTipo.textChanged.connect(self.setDirty)
     self.txtEstado.textChanged.connect(self.setDirty)
     self.sbPrioridad.valueChanged.connect(self.setDirty)
     self.txtNombre.textChanged.connect(self.setDirty)
Beispiel #7
0
class NuevaPlantilla(QtGui.QDialog, Ui_NuevaPlantilla):
    '''
    classdocs
    '''

    def __init__(self, plantilla = None, parent = None):
        '''
        Constructor
        '''
        super(NuevaPlantilla, self).__init__(parent)
        self.__dirty = False
        self.setupUi(self)
        if plantilla is not None and not isinstance(plantilla, Plantilla):
            raise TypeError("El objeto plantilla debe pertenecer a la clase Plantilla")
        if plantilla is not None:
            self.groupBox.setTitle("Datos de la plantilla:")
            self.setWindowTitle("Editar plantilla")
            
        self.__plantilla = plantilla
        campos = []
        self.__demandante = None
        self.__demandado = None
        self.__juzgado = None
        self.__categoria = Categoria("Ninguna", "1")
        
        self.sbPrioridad.setRange(0, 10)        
        if self.__plantilla is not None:
            self.__demandante = self.__plantilla.getDemandante()
            self.__demandado = self.__plantilla.getDemandado()
            self.__juzgado = self.__plantilla.getJuzgado()
            self.__categoria = self.__plantilla.getCategoria()
            campos = self.__plantilla.getCampos()
            
            self.txtNombre.setText(self.__plantilla.getNombre())
            self.lblDemandante.setText(self.__demandante.getNombre())
            self.lblDemandado.setText(self.__demandado.getNombre())
            self.lblJuzgado.setText(self.__juzgado.getNombre())
            self.lblCategoria.setText(self.__categoria.getDescripcion())
            self.txtRadicado.setText(self.__plantilla.getRadicado())
            self.txtRadicadoUnico.setText(self.__plantilla.getRadicadoUnico())
            self.txtTipo.setText(self.__plantilla.getTipo())
            self.txtEstado.setText(self.__plantilla.getEstado())
            self.sbPrioridad.setValue(self.__plantilla.getPrioridad())
            self.txtNotas.setText(self.__plantilla.getNotas())
            
        self.__dialogo = DialogoAuxiliar(self)
                            
        self.__clickDemandante()
        self.__clickDemandado()
        self.__clickJuzgado()
        self.__clickCategoria()
        
        cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado)
        cambiar.setData(self.lblJuzgado)
        editar = self.__createAction("Editar", self.__editarJuzgado)
        editar.setData(self.lblJuzgado)
        
        self.lblJuzgado.addActions([cambiar, editar])
        
        cambiar = self.__createAction("Cambiar", self.__cambiarDemandante)
        cambiar.setData(self.lblDemandante)
        editar = self.__createAction("Editar", self.__editarDemandante)
        editar.setData(self.lblDemandante)
        
        self.lblDemandante.addActions([cambiar, editar])
        
        cambiar = self.__createAction("Cambiar", self.__cambiarDemandado)
        cambiar.setData(self.lblDemandado)
        editar = self.__createAction("Editar", self.__editarDemandado)
        editar.setData(self.lblDemandado)
        
        self.lblDemandado.addActions([cambiar, editar])
        
        cambiar = self.__createAction("Cambiar", self.__cambiarCategoria)
        cambiar.setData(self.lblCategoria)
        editar = self.__createAction("Editar", self.__editarCategoria)
        editar.setData(self.lblCategoria)
        
        self.lblCategoria.addActions([cambiar, editar])
        
        self.__gestor = GestorCampos(campos = campos, formLayout = self.formLayout, parent = self,
                                     constante_de_edicion = NuevoCampo.PROCESO, constante_de_creacion = ListadoDialogo.CAMPOPROCESOP)
        self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
        
        self.txtRadicado.textChanged.connect(self.setDirty)
        self.txtRadicadoUnico.textChanged.connect(self.setDirty)
        self.txtTipo.textChanged.connect(self.setDirty)
        self.txtEstado.textChanged.connect(self.setDirty)
        self.sbPrioridad.valueChanged.connect(self.setDirty)
        self.txtNombre.textChanged.connect(self.setDirty)
                
    def __clickDemandante(self):
        dialogo = self.__dialogo 
        widget = self
        lblDemandante = self.lblDemandante
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                if widget.__demandante is not None and widget.__demandante.getId_persona() is not "1":
                    vista = VerPersona(widget.__demandante, widget)
                    dialogo.setWidget(vista)
                else:
                    widget.__cambiarDemandante()
            return QtGui.QLabel.mousePressEvent(lblDemandante, self)
            
        self.lblDemandante.mousePressEvent = mousePressEvent
    
    def __clickDemandado(self):
        dialogo = self.__dialogo  
        widget = self
        lblDemandado = self.lblDemandado
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                if widget.__demandado is not None and widget.__demandado.getId_persona() is not "1":
                    vista = VerPersona(widget.__demandado, widget)
                    dialogo.setWidget(vista)
                else:
                    widget.__cambiarDemandado()
            return QtGui.QLabel.mousePressEvent(lblDemandado, self)
            
        self.lblDemandado.mousePressEvent = mousePressEvent
    
    def __clickJuzgado(self):
        dialogo = self.__dialogo 
        widget = self
        lblJuzgado = self.lblJuzgado
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                if widget.__juzgado is not None and widget.__juzgado.getId_juzgado() is not "1":
                    vista = VerJuzgado(widget.__juzgado, widget)
                    dialogo.setWidget(vista)
                else:
                    widget.__cambiarJuzgado()
            return QtGui.QLabel.mousePressEvent(lblJuzgado, self)
            
        self.lblJuzgado.mousePressEvent = mousePressEvent
    
    def __clickCategoria(self):
        widget = self
        lblCategoria = self.lblCategoria
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                widget.__cambiarCategoria()
            return QtGui.QLabel.mousePressEvent(lblCategoria, self)
            
        self.lblCategoria.mousePressEvent = mousePressEvent
    
    def __cambiarDemandante(self):
        listado = ListadoDialogo(ListadoDialogo.DEMANDANTE, self)
        if listado.exec_():
            self.__demandante = listado.getSelected()
            self.lblDemandante.setText(self.__demandante.getNombre())
            vista = VerPersona(self.__demandante, self)
            self.__dialogo.setWidget(vista)
            self.__dirty = True
        del(listado)
        
    def __cambiarDemandado(self):
        listado = ListadoDialogo(ListadoDialogo.DEMANDADO, self)
        if listado.exec_():
            self.__demandado = listado.getSelected()
            self.lblDemandado.setText(self.__demandado.getNombre())
            vista = VerPersona(self.__demandado, self)
            self.__dialogo.setWidget(vista)
            self.__dirty = True
        del(listado)
    
    def __cambiarJuzgado(self):
        listado = ListadoDialogo(ListadoDialogo.JUZGADO, self)
        if listado.exec_():
            self.__juzgado = listado.getSelected()
            self.lblJuzgado.setText(self.__juzgado.getNombre())
            vista = VerJuzgado(self.__juzgado, self)
            self.__dialogo.setWidget(vista)
            self.__dirty = True
        del(listado)
    
    def __cambiarCategoria(self):
        listado = ListadoDialogo(ListadoDialogo.CATEGORIA, self)
        if listado.exec_():
            self.__categoria = listado.getSelected()
            self.lblCategoria.setText(unicode(self.__categoria))
            self.__dirty = True
        del(listado)
            
    def __editarDemandante(self):
        if self.__demandante is not None and self.__demandante.getId_persona() is not "1":
            dialogo = NuevaPersona(persona = self.__demandante, parent = self)
            if dialogo.exec_():
                self.lblDemandante.setText(self.__demandante.getNombre())
                if (isinstance(self.__dialogo.getWidget(), VerPersona)):
                    vista = VerPersona(self.__demandante, self)
                    self.__dialogo.setWidget(vista)
            del(dialogo)
    
    def __editarDemandado(self):
        if self.__demandado is not None and self.__demandado.getId_persona() is not "1":
            dialogo = NuevaPersona(persona = self.__demandado, parent = self)
            if dialogo.exec_():
                self.lblDemandado.setText(self.__demandado.getNombre())
                if (isinstance(self.__dialogo.getWidget(), VerPersona)):
                    vista = VerPersona(self.__demandado, self)
                    self.__dialogo.setWidget(vista)
            del(dialogo)
    
    def __editarJuzgado(self):
        if self.__juzgado is not None and self.__juzgado.getId_juzgado() is not "1":
            dialogo = NuevoJuzgado(juzgado = self.__juzgado, parent = self)
            if dialogo.exec_():
                self.lblJuzgado.setText(self.__juzgado.getNombre())
                if (isinstance(self.__dialogo.getWidget(), VerJuzgado)):
                    vista = VerJuzgado(self.__juzgado, self)
                    self.__dialogo.setWidget(vista)
            del(dialogo)
    
    def __editarCategoria(self):
        if self.__categoria is not None and self.__categoria.getId_categoria() is not "1":
            dialogo = NuevaCategoria(self.__categoria, self)
            if dialogo.exec_():
                self.lblCategoria.setText(self.__categoria.getNombre())
            del(dialogo)
                
    def __createAction(self, text, slot = None):
        action = QtGui.QAction(text, self)
        if slot is not None:
            self.connect(action, QtCore.SIGNAL("triggered()"), slot)
        return action 
                
    def accept(self):
        if len(self.txtNombre.text()):
            self.__gestor.organizarCampos(False)
            self.__guardar()
        else:
            QtGui.QMessageBox.information(self, 'Error', u'No se permite el nombre vacío')
            self.txtNombre.setFocus()
    
    def __guardar(self):
        if hasattr(self, '__dialogo'):  
            del(self.__dialogo)
        guardar = True
        p = Persistence()
        nombre = self.txtNombre.text()
        demandante = self.__demandante
        demandado = self.__demandado
        juzgado = self.__juzgado
        radicado = self.txtRadicado.text()
        radicadoUnico = self.txtRadicadoUnico.text()
        estado = self.txtEstado.text()
        categoria = self.__categoria
        tipo = self.txtTipo.text()
        notas = self.txtNotas.toPlainText()
        prioridad = self.sbPrioridad.value()
        campos = self.__gestor.getCampos()
        if not self.__plantilla:
            plantilla = Plantilla(nombre = nombre, demandante = demandante, demandado = demandado,
                                  juzgado = juzgado, radicado = radicado, radicadoUnico = radicadoUnico,
                                  estado = estado, categoria = categoria, tipo = tipo, notas = notas,
                                  campos = campos, prioridad = prioridad)
        else:
            camposNuevos = self.__gestor.getCamposNuevos()
            camposEliminados = self.__gestor.getCamposEliminados()
            for campo in camposEliminados:
                p.borrarCampoPersonalizado(campo)
            for campo in camposNuevos:
                p.guardarCampoPersonalizado(campo, self.__plantilla.getId_proceso())
            self.__plantilla.setNombre(nombre)
            self.__plantilla.setDemandante(demandante)
            self.__plantilla.setDemandado(demandado)
            self.__plantilla.setJuzgado(juzgado)
            self.__plantilla.setRadicado(radicado)
            self.__plantilla.setRadicadoUnico(radicadoUnico)
            self.__plantilla.setEstado(estado)
            self.__plantilla.setCategoria(categoria)
            self.__plantilla.setTipo(tipo)
            self.__plantilla.setNotas(notas)
            self.__plantilla.setPrioridad(prioridad)
            self.__plantilla.setCampos(campos)
            guardar = False
        try:
            if guardar:
                Persistence().guardarPlantilla(plantilla)
                self.__plantilla = plantilla
            else:
                Persistence().actualizarPlantilla(self.__plantilla)
        except sqlite3.IntegrityError:
            QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe')
        else:
            return QtGui.QDialog.accept(self)
            
                
    def getPlantilla(self):
        return self.__plantilla
    
    def reject(self):
        Util.reject(self, self.__dirty)
    
    def setDirty(self):
        sender = self.sender()
        if isinstance(sender, QtGui.QLineEdit) or isinstance(sender, QtGui.QTextEdit):
            self.__dirty = True
            self.disconnect(sender, QtCore.SIGNAL("textChanged()"), self.setDirty)
        elif isinstance(sender, QtGui.QDateTimeEdit):
            self.__dirty = True
            self.disconnect(sender, QtCore.SIGNAL("dateTimeChanded()"), self.setDirty)
Beispiel #8
0
class NuevoProceso(QtGui.QDialog, Ui_NuevoProceso):
    '''
    classdocs
    '''


    def __init__(self, proceso=None, plantilla=None, parent=None):
        '''
        Constructor
        '''
        super(NuevoProceso, self).__init__(parent)
        self.__dirty = False
        self.setupUi(self)
        if proceso is not None and plantilla is not None:
            raise TypeError("Solo se puede enviar el argumento plantilla o proceso sólo")
        if proceso is not None and not isinstance(proceso, Proceso):
            raise TypeError("El objeto proceso debe pertenecer a la clase Proceso")
        if plantilla is not None and not isinstance(plantilla, Plantilla):
            raise TypeError("El objeto plantilla debe pertenecer a la clase Plantilla")
        if proceso is not None:
            self.groupBox.setTitle("Datos del proceso:")
            self.setWindowTitle("Editar proceso")
            
        self.__proceso = proceso
        self.connect(self.btnAdd_2, QtCore.SIGNAL("clicked()"), self.addActuacion)
        campos = []
        self.__actuaciones = []
        self.__demandante = None
        self.__demandado = None
        self.__juzgado = None
        self.__categoria = Categoria("Ninguna", "1")
        
        self.sbPrioridad.setRange(0, 10)        
        if self.__proceso is not None:
            self.__demandante = self.__proceso.getDemandante()
            self.__demandado = self.__proceso.getDemandado()
            self.__juzgado = self.__proceso.getJuzgado()
            self.__categoria = self.__proceso.getCategoria()
            campos = self.__proceso.getCampos()
            self.__actuaciones = copy(self.__proceso.getActuaciones())
            
            self.lblDemandante.setText(self.__demandante.getNombre())
            self.lblDemandado.setText(self.__demandado.getNombre())
            self.lblJuzgado.setText(self.__juzgado.getNombre())
            self.lblCategoria.setText(self.__categoria.getDescripcion())
            self.txtRadicado.setText(self.__proceso.getRadicado())
            self.txtRadicadoUnico.setText(self.__proceso.getRadicadoUnico())
            self.txtTipo.setText(self.__proceso.getTipo())
            self.txtEstado.setText(self.__proceso.getEstado())
            self.sbPrioridad.setValue(self.__proceso.getPrioridad())
            self.dteFecha.setDateTime(self.__proceso.getFecha())
            self.txtNotas.setText(self.__proceso.getNotas())
        elif plantilla is not None:
            self.__demandante = plantilla.getDemandante()
            self.__demandado = plantilla.getDemandado()
            self.__juzgado = plantilla.getJuzgado()
            self.__categoria = plantilla.getCategoria()
            campos = plantilla.getCampos()
            
            self.lblDemandante.setText(self.__demandante.getNombre())
            self.lblDemandado.setText(self.__demandado.getNombre())
            self.lblJuzgado.setText(self.__juzgado.getNombre())
            self.lblCategoria.setText(self.__categoria.getDescripcion())
            self.txtRadicado.setText(plantilla.getRadicado())
            self.txtRadicadoUnico.setText(plantilla.getRadicadoUnico())
            self.txtTipo.setText(plantilla.getTipo())
            self.txtEstado.setText(plantilla.getEstado())
            self.sbPrioridad.setValue(plantilla.getPrioridad())
            self.txtNotas.setText(plantilla.getNotas())
            self.dteFecha.setDateTime(datetime.today())
        else:
            self.dteFecha.setDateTime(datetime.today())
            
        self.cargarActuaciones()
        
        self.__dialogo = DialogoAuxiliar(self)
                
        self.__clickDemandante()
        self.__clickDemandado()
        self.__clickJuzgado()
        self.__clickCategoria()
        self.__clickFecha()
        
        cambiar = self.createAction("Cambiar", self.__cambiarJuzgado)
        cambiar.setData(self.lblJuzgado)
        editar = self.createAction("Editar", self.__editarJuzgado)
        editar.setData(self.lblJuzgado)
        
        self.lblJuzgado.addActions([cambiar, editar])
        
        cambiar = self.createAction("Cambiar", self.__cambiarDemandante)
        cambiar.setData(self.lblDemandante)
        editar = self.createAction("Editar", self.__editarDemandante)
        editar.setData(self.lblDemandante)
        
        self.lblDemandante.addActions([cambiar, editar])
        
        cambiar = self.createAction("Cambiar", self.__cambiarDemandado)
        cambiar.setData(self.lblDemandado)
        editar = self.createAction("Editar", self.__editarDemandado)
        editar.setData(self.lblDemandado)
        
        self.lblDemandado.addActions([cambiar, editar])
        
        cambiar = self.createAction("Cambiar", self.__cambiarCategoria)
        cambiar.setData(self.lblCategoria)
        editar = self.createAction("Editar", self.__editarCategoria)
        editar.setData(self.lblCategoria)
        
        self.lblCategoria.addActions([cambiar, editar])
        
        self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self,
                                     constante_de_edicion=NuevoCampo.PROCESO, constante_de_creacion=ListadoDialogo.CAMPOPROCESOP)
        self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
        self.txtRadicado.textChanged.connect(self.setDirty)
        self.txtRadicadoUnico.textChanged.connect(self.setDirty)
        self.txtTipo.textChanged.connect(self.setDirty)
        self.txtEstado.textChanged.connect(self.setDirty)
        self.sbPrioridad.valueChanged.connect(self.setDirty)
        self.dteFecha.dateTimeChanged.connect(self.setDirty)
                
    def __clickDemandante(self):
        dialogo = self.__dialogo
        widget = self
        lblDemandante = self.lblDemandante
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                if widget.__demandante is not None and widget.__demandante.getId_persona() is not "1":
                    vista = VerPersona(widget.__demandante, widget)
                    dialogo.setWidget(vista)
                else:
                    widget.__cambiarDemandante()
            return QtGui.QLabel.mousePressEvent(lblDemandante, self)
            
        self.lblDemandante.mousePressEvent = mousePressEvent
    
    def __clickDemandado(self):
        dialogo = self.__dialogo 
        widget = self
        lblDemandado = self.lblDemandado
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                if widget.__demandado is not None and widget.__demandado.getId_persona() is not "1":
                    vista = VerPersona(widget.__demandado, widget)
                    dialogo.setWidget(vista)
                else:
                    widget.__cambiarDemandado()
            return QtGui.QLabel.mousePressEvent(lblDemandado, self)
            
        self.lblDemandado.mousePressEvent = mousePressEvent
    
    def __clickJuzgado(self):
        dialogo = self.__dialogo 
        widget = self
        lblJuzgado = self.lblJuzgado
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                if widget.__juzgado is not None and widget.__juzgado.getId_juzgado() is not "1":
                    vista = VerJuzgado(widget.__juzgado, widget)
                    dialogo.setWidget(vista)
                else:
                    widget.__cambiarJuzgado()
            return QtGui.QLabel.mousePressEvent(lblJuzgado, self)
            
        self.lblJuzgado.mousePressEvent = mousePressEvent
    
    def __clickCategoria(self):
        widget = self
        lblCategoria = self.lblCategoria
                    
        def mousePressEvent(self):
            if QtCore.Qt.MouseButton.LeftButton is self.button():
                widget.__cambiarCategoria()
            return QtGui.QLabel.mousePressEvent(lblCategoria, self)
            
        self.lblCategoria.mousePressEvent = mousePressEvent
    
    def __clickFecha(self):
        dialogo = self.__dialogo
        dteFecha = self.dteFecha
        
        def focusInEvent(self):    
            calendar = QtGui.QCalendarWidget()
            calendar.setSelectedDate(dteFecha.dateTime().date())
            dialogo.setWidget(calendar)  
            
            selectionChanged = lambda:dteFecha.setDate(calendar.selectedDate())           
            calendar.selectionChanged.connect(selectionChanged)
                  
            return QtGui.QDateTimeEdit.focusInEvent(dteFecha, self)
        
        def dateChanged(date):
            calendar = dialogo.getWidget()
            calendar.setSelectedDate(date)        
            
        dteFecha.focusInEvent = focusInEvent
        dteFecha.dateChanged.connect(dateChanged)
    
    def __cambiarDemandante(self):
        listado = ListadoDialogo(ListadoDialogo.DEMANDANTE, self)
        if listado.exec_():
            self.__demandante = listado.getSelected()
            self.lblDemandante.setText(self.__demandante.getNombre())
            vista = VerPersona(self.__demandante, self)
            self.__dialogo.setWidget(vista)
            self.__dirty = True
        del(listado)
    
    def __cambiarDemandado(self):
        listado = ListadoDialogo(ListadoDialogo.DEMANDADO, self)
        if listado.exec_():
            self.__demandado = listado.getSelected()
            self.lblDemandado.setText(self.__demandado.getNombre())
            vista = VerPersona(self.__demandado, self)
            self.__dialogo.setWidget(vista)
            self.__dirty = True
        del(listado)
    
    def __cambiarJuzgado(self):
        listado = ListadoDialogo(ListadoDialogo.JUZGADO, self)
        if listado.exec_():
            self.__juzgado = listado.getSelected()
            self.lblJuzgado.setText(self.__juzgado.getNombre())
            vista = VerJuzgado(self.__juzgado, self)
            self.__dialogo.setWidget(vista)
            self.__dirty = True
        del(listado)
    
    def __cambiarCategoria(self):
        listado = ListadoDialogo(ListadoDialogo.CATEGORIA, self)
        if listado.exec_():
            self.__categoria = listado.getSelected()
            self.lblCategoria.setText(unicode(self.__categoria))
            self.__dirty = True
        del(listado)
            
    def __editarDemandante(self):
        if self.__demandante is not None and self.__demandante.getId_persona() is not "1":
            dialogo = NuevaPersona(persona=self.__demandante, parent=self)
            if dialogo.exec_():
                self.lblDemandante.setText(self.__demandante.getNombre())
                if (isinstance(self.__dialogo.getWidget(), VerPersona)):
                    vista = VerPersona(self.__demandante, self)
                    self.__dialogo.setWidget(vista)
            del(dialogo)
    
    def __editarDemandado(self):
        if self.__demandado is not None and self.__demandado.getId_persona() is not "1":
            dialogo = NuevaPersona(persona=self.__demandado, parent=self)
            if dialogo.exec_():
                self.lblDemandado.setText(self.__demandado.getNombre())
                if (isinstance(self.__dialogo.getWidget(), VerPersona)):
                    vista = VerPersona(self.__demandado, self)
                    self.__dialogo.setWidget(vista)
            del(dialogo)
    
    def __editarJuzgado(self):
        if self.__juzgado is not None and self.__juzgado.getId_juzgado() is not "1":
            dialogo = NuevoJuzgado(juzgado=self.__juzgado, parent=self)
            if dialogo.exec_():
                self.lblJuzgado.setText(self.__juzgado.getNombre())
                if (isinstance(self.__dialogo.getWidget(), VerJuzgado)):
                    vista = VerJuzgado(self.__juzgado, self)
                    self.__dialogo.setWidget(vista)
            del(dialogo)
    
    def __editarCategoria(self):
        if self.__categoria is not None and self.__categoria.getId_categoria() is not "1":
            dialogo = NuevaCategoria(self.__categoria, self)
            if dialogo.exec_():
                self.lblCategoria.setText(self.__categoria.getNombre())
            del(dialogo)
                
    def accept(self):
        if self.__demandante is None or self.__demandante.getId_persona() is "1":
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Warning)
            message.setText("El cliente se considera obligatorio")
            message.exec_()
        elif self.__demandado is None or self.__demandado.getId_persona() is "1":
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Warning)
            message.setText("La contraparte se considera obligatorio")
            message.exec_()
        elif self.__juzgado is None or self.__juzgado.getId_juzgado() is "1":
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Warning)
            message.setText("El juzgado se considera obligatorio")
            message.exec_()
        elif len(self.txtRadicado.text()) is 0:
            message = QtGui.QMessageBox()
            message.setIcon(QtGui.QMessageBox.Warning)
            message.setText("El radicado se considera obligatorio")
            message.exec_()
            self.txtRadicado.setFocus()
        elif self.__gestor.organizarCampos():
            self.__guardar()
    
    def __guardar(self):
        if hasattr(self, '__dialogo'):
            del(self.__dialogo)
        guardar = True
        self.organizarActuaciones()
        p = Persistence()
        demandante = self.__demandante
        demandado = self.__demandado
        fecha = self.dteFecha.dateTime().toPython()
        juzgado = self.__juzgado
        radicado = self.txtRadicado.text()
        radicadoUnico = self.txtRadicadoUnico.text()
        actuaciones = self.__actuaciones
        estado = self.txtEstado.text()
        categoria = self.__categoria
        tipo = self.txtTipo.text()
        notas = self.txtNotas.toPlainText()
        prioridad = self.sbPrioridad.value()
        campos = self.__gestor.getCampos()
        if self.__proceso is None:
            proceso = Proceso(demandante=demandante, demandado=demandado, fecha=fecha, juzgado=juzgado,
                              radicado=radicado, radicadoUnico=radicadoUnico, actuaciones=actuaciones,
                              estado=estado, categoria=categoria, tipo=tipo, notas=notas,
                              prioridad=prioridad, campos=campos)
        else:
            camposNuevos = self.__gestor.getCamposNuevos()
            camposEliminados = self.__gestor.getCamposEliminados()
            for campo in camposEliminados:
                p.borrarCampoPersonalizado(campo)
            for campo in camposNuevos:
                p.guardarCampoPersonalizado(campo, self.__proceso.getId_proceso())
            self.__proceso.setDemandante(demandante)
            self.__proceso.setDemandado(demandado)
            self.__proceso.setFecha(fecha)
            self.__proceso.setJuzgado(juzgado)
            self.__proceso.setRadicado(radicado)
            self.__proceso.setRadicadoUnico(radicadoUnico)
            self.__proceso.setActuaciones(actuaciones)
            self.__proceso.setEstado(estado)
            self.__proceso.setCategoria(categoria)
            self.__proceso.setTipo(tipo)
            self.__proceso.setNotas(notas)
            self.__proceso.setPrioridad(prioridad)
            self.__proceso.setCampos(campos)
            guardar = False
        try:
            p = Persistence()
            if guardar:
                p.guardarProceso(proceso)
                self.__proceso = proceso
            else:
                p.actualizarProceso(self.__proceso)
            self.guardarCitas(actuaciones)
        except sqlite3.IntegrityError:
            QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe')
        else:
            return QtGui.QDialog.accept(self)
        
    @classmethod
    def guardarCitas(self, actuaciones):
        p = Persistence()
        gestor = GestorCitas()
        for actuacion in actuaciones:
            if hasattr(actuacion, 'cita'):
                if actuacion.cita:
                    cita = actuacion.cita
                    cita.setId_actuacion(actuacion.getId_actuacion())
                    if not cita.getId_cita():
                        p.guardarCitaCalendario(cita)
                    else:
                        p.actualizarCitaCalendario(cita)
                    gestor.actualizarCitas()
                
    def getProceso(self):
        return self.__proceso
    
    def createAction(self, text, slot=None):
        action = QtGui.QAction(text, self)
        if slot is not None:
            self.connect(action, QtCore.SIGNAL("triggered()"), slot)
        return action 
    
    def organizarActuaciones(self):
        if self.__proceso is not None:
            actuacionesOriginales = self.__proceso.getActuaciones()
            actuaciones = self.__actuaciones
            
            try:
                p = Persistence()
                for nuevaActuacion in actuaciones:
                    if nuevaActuacion not in actuacionesOriginales:
                        p.guardarActuacion(nuevaActuacion, self.__proceso.getId_proceso())
                for viejaActuacion in actuacionesOriginales:
                    if viejaActuacion not in actuaciones:
                        p.borrarActuacion(viejaActuacion)
            except Exception, e:
                print "organizarActuaciones -> %s" % e                    
Beispiel #9
0
class NuevaPersona(QtGui.QDialog, Ui_NuevaPersona):
    def __init__(self, persona=None, tipo=None, parent=None):
        super(NuevaPersona, self).__init__(parent)
        
        self.__dirty = False
        
        if(persona is None and tipo is None):
            raise TypeError("Para crear una nueva persona debe pasar el argumento tipo")
        if persona is not None and not isinstance(persona, Persona):
            raise TypeError("El objeto persona debe ser de la clase Persona")
        self.__persona = persona
        self.setupUi(self)
        
        if self.__persona is not None:
            campos = persona.getCampos()
            self.__tipo = persona.getTipo()
            self.txtNombre.setText(self.__persona.getNombre())
            self.txtCedula.setText(self.__persona.getId())
            self.txtTelefono.setText(self.__persona.getTelefono())
            self.txtDireccion.setText(self.__persona.getDireccion())
            self.txtCorreo.setText(self.__persona.getCorreo())
            self.txtNotas.setText(self.__persona.getNotas())
        else:
            campos = []
            self.__tipo = tipo
                        
        if self.__tipo is 1:
            constante = ListadoDialogo.CAMPODEMANDADO
            if persona is None:
                self.setWindowTitle("Nuevo cliente")
                self.groupBox.setTitle("Ingrese los datos del nuevo cliente:")
            else:
                self.setWindowTitle("Editar cliente")
                self.groupBox.setTitle("Ingrese los datos del cliente:")
        elif self.__tipo is 2:
            constante = ListadoDialogo.CAMPODEMANDADO
            if persona is None:
                self.setWindowTitle("Nueva contraparte")
                self.groupBox.setTitle("Ingrese los datos de la nueva contraparte:")
            else:
                self.setWindowTitle("Editar contraparte")
                self.groupBox.setTitle("Ingrese los datos de la contraparte:")
                
        self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.PERSONA, constante_de_creacion=constante)
        self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo)
        
        self.txtNombre.textEdited.connect(self.setDirty)
        self.txtCedula.textEdited.connect(self.setDirty)
        self.txtCorreo.textEdited.connect(self.setDirty)
        self.txtDireccion.textEdited.connect(self.setDirty)
        self.txtNotas.textChanged.connect(self.setDirty)
        self.txtTelefono.textEdited.connect(self.setDirty)
                        
    def getPersona(self):
        return self.__persona
    
    def __guardar(self):
        guardar = True
        tipo = self.__tipo
        nombre = self.txtNombre.text()
        cedula = self.txtCedula.text()
        telefono = self.txtTelefono.text()
        direccion = self.txtDireccion.text()
        correo = self.txtCorreo.text()
        notas = self.txtNotas.toPlainText()
        campos = self.__gestor.getCampos()
        if not self.__persona:
            self.__persona = Persona(tipo=tipo, id=cedula, nombre=nombre, telefono=telefono, direccion=direccion, correo=correo, notas=notas, campos=campos)                                
        else:
            camposNuevos = self.__gestor.getCamposNuevos()
            camposEliminados = self.__gestor.getCamposEliminados()
            for campo in camposEliminados:
                if self.__tipo is 1:
                    Persistence().borrarCampoDemandante(campo)
                else:
                    Persistence().borrarCampoDemandado(campo)
            for campo in camposNuevos:
                if self.__tipo is 1:
                    Persistence().guardarCampoDemandante(campoPersonalizado=campo, id_demandante=self.__persona.getId_persona())
                else:
                    Persistence().guardarCampoDemandado(campoPersonalizado=campo, id_demandado=self.__persona.getId_persona())
            self.__persona.setNombre(nombre)
            self.__persona.setId(cedula)
            self.__persona.setTelefono(telefono)
            self.__persona.setDireccion(direccion)
            self.__persona.setCorreo(correo)
            self.__persona.setNotas(notas)
            self.__persona.setCampos(campos)
            guardar = False
        try:
            if guardar:
                Persistence().guardarPersona(self.__persona)
            else:
                Persistence().actualizarPersona(self.__persona)
        except sqlite3.IntegrityError:
            if guardar:
                self.__persona = None
            QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe')
        else:
            return QtGui.QDialog.accept(self)
            
    def accept(self):
        if not len(self.txtNombre.text()):
            QtGui.QMessageBox.warning(self, 'Cambo obligatorio', 'El nombre se considera obligatorio')
            self.txtNombre.setFocus()
        elif not len(self.txtTelefono.text()):
            ret = QtGui.QMessageBox.question(self, 'Pregunta', u'¿Desea guardar sin agregar un teléfono?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
            if ret == QtGui.QMessageBox.No:
                self.txtTelefono.setFocus()
            elif self.__gestor.organizarCampos():
                self.__guardar()         
        elif self.__gestor.organizarCampos():
            self.__guardar()
            
    def reject(self):
        Util.reject(self, self.__dirty)
                    
    def setDirty(self):
        self.__dirty = True
        self.disconnect(self.sender(), QtCore.SIGNAL("textEdited()"), self.setDirty)