def _salir(self, *args, **kw): """ Si hay cambios pendientes en observaciones, pregunta. Después llama a la función salir heredada. """ comprobar_y_preguntar_si_guardar(self) self.salir(*args, **kw)
def set_partida(self, w): comprobar_y_preguntar_si_guardar(self) numpartida = utils.dialogo_entrada(titulo = 'Nº PARTIDA', texto = 'Introduzca número de partida:', padre = self.wids['ventana']) if numpartida != None: numpartida = numpartida.upper().replace("P-", "") partidas = pclases.Partida.select( pclases.Partida.q.codigo.contains(numpartida)) if partidas.count() == 0: utils.dialogo_info(titulo = 'PARTIDA NO ENCONTRADA', texto = 'No se encontró ninguna partida %s.' % numpartida, padre = self.wids['ventana']) return elif partidas.count() > 1: filas = [(l.id, l.numpartida, l.codigo, l.partidaCarga and l.partidaCarga.codigo or "" , l.longitudinal, l.transversal, l.compresion, l.perforacion, l.permeabilidad, l.poros, l.espesor, l.piramidal ) for l in partidas] idpartida = utils.dialogo_resultado(filas, titulo = 'SELECCIONE PARTIDA', cabeceras = ('ID', 'Número', 'Código', 'Partida Carga', 'Longitudinal', 'Transversal', 'CBR', 'Perforación', 'Permeabilidad', 'Poros', 'Espesor', 'Piramidal'), padre = self.wids['ventana']) if idpartida < 0: return partida = pclases.Partida.get(idpartida) else: partida = partidas[0] if len(partida.rollos) == 0: utils.dialogo_info(titulo = 'PARTIDA VACÍA', texto = 'La partida no contiene rollos, no puede\n' 'realizar pruebas sobre una partida vacía.', padre = self.wids['ventana']) self.partida = None return self.partida = partida self.actualizar_ventana()
def set_loteCem(self, w): comprobar_y_preguntar_si_guardar(self) codlote = utils.dialogo_entrada(titulo = 'Nº LOTE', texto = 'Introduzca número o código de lote de fibra ' 'de cemento:', padre = self.wids['ventana']) if codlote != None: numlote = utils.parse_numero(codlote) loteCems = pclases.LoteCem.select(pclases.OR( pclases.LoteCem.q.numlote == numlote, pclases.LoteCem.q.codigo.contains(codlote))) if loteCems.count() == 0: utils.dialogo_info(titulo = 'LOTE NO ENCONTRADO', texto = 'No se encontró ningún lote de fibra de cemento' ' %s.' % (codlote), padre = self.wids['ventana']) return elif loteCems.count() > 1: filas = [(l.id, l.numlote, l.codigo, l.tenacidad, l.elongacion, l.humedad, l.encogimiento) for l in loteCems] idloteCem = utils.dialogo_resultado(filas, titulo = 'SELECCIONE LOTE', cabeceras = ('ID', 'Número', 'Código', 'Tenacidad', 'Elongación', 'Humedad', 'Encogimiento'), padre = self.wids['ventana']) if idloteCem < 0: return loteCem = pclases.LoteCem.get(idloteCem) else: loteCem = loteCems[0] if len(loteCem.bigbags) == 0: utils.dialogo_info(titulo = 'LOTE VACÍO', texto = 'El lote de cemento no contiene bigbags, no ' 'puede\nrealizar pruebas sobre un lote vacío.', padre = self.wids['ventana']) self.loteCem = None return self.loteCem = loteCem self.actualizar_ventana()