Example #1
0
 def cambiar_horainicio(self, tv, path, newtext):
     model = self.wids['tv_horas'].get_model()
     ide = model[path][-1]
     pt = pclases.ParteDeTrabajo.get(ide)
     try:
         dtdelta = mx.DateTime.DateTimeDelta(0, float(newtext.split(':')[0]), float(newtext.split(':')[1]), 0)
         duracion = pt.horas
         pt.horainicio = mx.DateTime.DateTimeFrom(year = pt.horainicio.year,
                                                  month = pt.horainicio.month,
                                                  day = pt.horainicio.day,
                                                  hour = dtdelta.hour,
                                                  minute = dtdelta.minute,
                                                  second = dtdelta.second)
         pt.horafin = pt.horainicio + duracion
         pt.sync()
         model[path][2] = pt.horainicio.strftime('%H:%M')
         model[path][3] = pt.horafin.strftime('%H:%M')
         model[path][4] = pt.horas.strftime('%H:%M')
     except IndexError:
         utils.dialogo_info(titulo = "ERROR", 
                            texto = 'El texto "%s" no respeta el formato horario (H:MM).' % newtext,
                            padre = self.wids['ventana'])
     except ValueError:
         utils.dialogo_info(titulo = "ERROR", 
                            texto = 'El texto "%s" no respeta el formato horario (H:M).' % newtext,
                            padre = self.wids['ventana'])
Example #2
0
 def add(self, w):
     if self.producto != None:
         fecha = self.wids['e_fecha'].get_text()
         if fecha == '':
             utils.dialogo_info(titulo = 'SIN FECHA',
                                texto = 'Debe introducir la fecha del resultado de la prueba.')
             return
         resultado1 = self.wids['e_resultado1'].get_text()
         if resultado1 == '':
             utils.dialogo_info(titulo = 'SIN RESULTADO',
                                texto = 'Debe introducir el resultado de la prueba en resultado1.', 
                                padre = self.wids['ventana'])
             return
         resultado2 = self.wids['e_resultado2'].get_text()
         try:
             mfi = utils._float(self.wids['e_mfi'].get_text())
         except:
             utils.dialogo_info(titulo = "MFI INCORRECTO", 
                 texto = "No ha introducido un valor correcto para el MFI del proveedor.", 
                 padre = self.wids['ventana'])
             return
         try:
             resultado = float(resultado1)
             prueba = pclases.PruebaGranza(fecha = utils.parse_fecha(fecha),
                                                      resultado = resultado,
                                             productoCompra = self.producto, 
                                     fechaEntrada = mx.DateTime.localtime(), 
                                      silo = self.wids['e_silo'].get_text(), 
                                      lote = self.wids['e_lote'].get_text(), 
                                                                  mfi = mfi)
             pclases.Auditoria.nuevo(prueba, self.usuario, __file__)
             if resultado2:
                 try:
                     resultado = float(resultado2)
                     prueba = pclases.PruebaGranza(
                         fecha = utils.parse_fecha(fecha),
                         resultado = resultado,
                         productoCompra = self.producto, 
                         fechaEntrada = mx.DateTime.localtime(), 
                         silo = self.wids['e_silo'].get_text(), 
                         lote = self.wids['e_lote'].get_text(),
                         mfi = mfi)
                     pclases.Auditoria.nuevo(prueba, self.usuario, __file__)
                 except Exception, msg:
                     utils.dialogo_info(titulo = 'ERROR', 
                                        texto = 'Verifique que ha introducido los datos correctamente.\n\n\nInformación de depuración: %s' % (msg), 
                                        padre = self.wids['ventana'])
         except Exception, msg:
             utils.dialogo_info(titulo = 'ERROR', 
                                texto = 'Verifique que ha introducido los datos correctamente.\n\n\nInformación de depuración: %s' % (msg), 
                                padre = self.wids['ventana'])
         self.wids['e_fecha'].set_text(utils.str_fecha(time.localtime()))
         self.wids['e_resultado1'].set_text('')
         self.wids['e_resultado2'].set_text('')
         self.wids['e_lote'].set_text('')
         self.wids['e_silo'].set_text('')
         self.wids['e_mfi'].set_text('0')
         self.rellenar_pruebas()
Example #3
0
 def comparar_float(self, col):
     res = 0.0
     try:
         valor_ventana = self.wids[col].get_text()
     except KeyError:
         txt_error = "categorias_laborales.py: No se pudo obtener el valor de la ventana para %s." % col
         print txt_error
         self.logger.error(txt_error)
         valor_ventana = 0.0
     try:
         valor_ventana = float(valor_ventana)
     except ValueError:
         txt_error = "categorias_laborales.py: No se pudo convertir %s(%s) a float." % (col, valor_ventana)
         print txt_error
         self.logger.error(txt_error)
         valor_ventana = 0.0
     try:
         valor_campo = self.objeto._SO_getValue(col)
         if not isinstance(valor_campo, type(0.0)):   # Porque es posible que el SOCol no contenga un float.
                                                     # El SOCol es la clase base. Se asume flotante por eliminación.
             res = False
         else:
             res = valor_ventana == valor_campo
     except KeyError:
         txt_error = "categorias_laborales.py: No se pudo obtener el valor del objeto para %s." % col
         print txt_error
         self.logger.error(txt_error)
         valor_campo = 0.0
     return res
Example #4
0
 def nuevo(self, widget):
     """
     Función callback del botón b_nuevo.
     Pide los datos básicos para crear un nuevo objeto.
     Una vez insertado en la BD hay que hacerlo activo
     en la ventana para que puedan ser editados el resto
     de campos que no se hayan pedido aquí.
     """
     silo = self.objeto
     nombre = utils.dialogo_entrada('Introduzca el nombre del silo:', 'NOMBRE', padre = self.wids['ventana'])
     if nombre != None:
         capacidad = utils.dialogo_entrada(titulo = "CAPACIDAD", 
                                           texto = "Introduzca la capacidad del silo:",
                                           padre = self.wids['ventana'])
         try:
             capacidad = float(capacidad)
         except:
             utils.dialogo_info(titulo = "VALOR INCORRECTO",
                                texto = "El valor %s no es correcto. Inténtelo de nuevo.\nAsegúrese de no introducir unidades.", 
                                padre = self.wids['ventana'])
             return
         observaciones = utils.dialogo_entrada(titulo = "OBSERVACIONES", 
                                               texto = "Introduzca observaciones si lo desea:", 
                                               padre = self.wids['ventana'])
         if observaciones != None:
             silo = pclases.Silo(nombre = nombre,
                                 capacidad = capacidad, 
                                 observaciones = observaciones)
             self.rellenar_widgets()
Example #5
0
 def actualizar_porcentaje_tarifa(self, celleditable, path, nuevotexto):
     """
     Se recibe la celda que ha cambiado.
     El contenido se toma como nuevo precio para la tarifa
     actual y el producto de la fila a la que pertenezca
     la fila.
     """
     idprecio = self.wids['tabla_productos'].get_model()[path][-1]
     precio = pclases.Precio.get(idprecio)
     producto = precio.producto
     tarifa = self.objeto
       # OJO: No se debería devolver ni más ni menos de un producto.
     try:
         porcentaje = utils.parse_porcentaje(nuevotexto, True)
     except ValueError:
         utils.dialogo_info(titulo = 'VALOR INCORRECTO', 
                            texto = 'El texto tecleado (%s) no es un porcentaje correcto' % (nuevotexto), 
                            padre = self.wids['ventana'])
     else:
         nuevoprecio = producto.preciopordefecto * (1 + porcentaje)
         tarifa.asignarTarifa(producto, float(nuevoprecio))
         #self.actualizar_ventana()
         model = self.wids['tabla_productos'].get_model()
         model[path][-3] = precio.precio
         model[path][-2] = "%s %%" % (porcentaje * 100)
 def cambiar_precio(self, cell, path, texto):
     try:
         precio = float(texto)
     except:
         utils.dialogo_info(titulo = "ERROR FORMATO", 
                            texto = "El texto %s no es un número." % texto, 
                            padre = self.wids['ventana'])
     else:
         model = self.wids['tv_ldvs'].get_model()
         ldc = pclases.LineaDeCompra.get(model[path][-1])
         ldc.precio = precio
         # CWT: Si el precio cambia al alza, respetar porcentaje. Si meto 
         # un precio inferior, entonces respetar el precio final de las 
         # tarifas y adaptar el porcentaje a ese precio de forma que nunca 
         # venda más barato al cambiar el precio del proveedor.
         pc = ldc.productoCompra
         pc.sync()
         if precio > pc.precioDefecto:
             # Si el precio sube, actualizo tarifas respetando porcentajes.
             for t in pclases.Tarifa.select(orderBy = "nombre"):
                 if t.vigente:
                     porcentaje = t.get_porcentaje(pc, fraccion = True)
                     nuevo_precio = precio * (1 + porcentaje)
                     t.asignarTarifa(pc, nuevo_precio)
         # Si el precio ha bajado o se mantiene, respeto precio final. La 
         # ventana ya calculará el porcentaje que sea.
         pc.precioDefecto = precio
         pc.syncUpdate()
         self.actualizar_ventana()
Example #7
0
 def get_valor(self, w, nombrecampo, tipocampo):
     res = None 
     if isinstance(tipocampo, sqlobject.SOStringCol):  # Cadena: el widget es un entry
         res = w.get_text()
     elif isinstance(tipocampo, sqlobject.SOIntCol):   # Entero: el widget es un entry
         res = w.get_text()
         try:
             res = int(res)
         except ValueError:
             txt = "El valor %s no es correcto. Introduzca un número entero." % (res)
             utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = txt, padre = self.wids['ventana'])
             res = 0
     elif isinstance(tipocampo, sqlobject.SOBoolCol):  # Boolean: el widget es un checkbox
         res = w.get_active()
     elif isinstance(tipocampo, sqlobject.SOForeignKey):  # Entero-clave ajena: el widget es un comboboxentry
         res = utils.combo_get_value(w)
     elif isinstance(tipocampo, sqlobject.SOCol):      # Clase base, casi seguro Float: el widget es un entry
         res = w.get_text()
         try:
             res = float(res)
         except ValueError:
             txt = "El valor %s no es correcto. Introduzca un número." % (res)
             utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = txt, padre = self.wids['ventana'])
             res = 0.0
     else:
         txt = "motivos_ausencia.py: No se pudo obtener el valor de %s para %s <%s>." \
                % (w, nombrecampo, tipocampo)
         print txt
         self.logger.error(txt)
     return res
Example #8
0
 def cambiar_resultado(self, tv, path, texto):
     model = self.wids["tv_pruebas"].get_model()
     prueba = pclases.PruebaTenacidad.get(model[path][-1])
     try:
         prueba.resultado = float(texto)
     except:
         utils.dialogo_info("RESULTADO INCORRECTO", "El número tecleado (%s) no es correcto." % texto)
     self.rellenar_pruebas()
Example #9
0
 def guardar(self, b):
     """
     Guarda los valores para la cantidad en los campos de los registros correspondientes.
     """
     try:
         self.cas['ensimaje'].cantidad = float(self.wids['e_censimaje'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['antiuvi'].cantidad = float(self.wids['e_cantiuvi'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['negro'].cantidad = float(self.wids['e_cnegro'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['titanio'].cantidad = float(self.wids['e_ctitanio'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['plástico grueso'].cantidad = float(self.wids['e_cplasticog'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['plástico estirable'].cantidad = float(self.wids['e_cplasticoe'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['flejes'].cantidad = float(self.wids['e_cflejes'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     self.rellenar_widgets()
 def guardar(self, b):
     """
     Guarda los valores para la cantidad en los campos de los registros correspondientes.
     """
     try:
         self.cas['ensimaje'].cantidad = float(self.wids['e_censimaje'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['antiestatico'].cantidad = float(self.wids['e_cantiestatico'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['tubos'].cantidad = float(self.wids['e_ctubos'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['plastico'].cantidad = float(self.wids['e_cplastico'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['precinto'].cantidad = float(self.wids['e_cprecinto'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['casquillos'].cantidad = float(self.wids['e_ccasquillos'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     try:
         self.cas['grapas'].cantidad = float(self.wids['e_cgrapas'].get_text())
     except:
         utils.dialogo_info(titulo = "ERROR DE FORMATO", texto = "Corrija el formato numérico usado y vuelva a intentarlo.")
     self.rellenar_widgets()
Example #11
0
    def cambiar_cantidad(self, cell, path, texto):
        """
        Cambia la cantidad de una linea de venta de un albarán de entrada,
        en el caso de que se escriba una cantidad menor de la que estaba en
        el pedido de compra (si es que tenía uno asociado), se desdobla la
        línea de venta original en dos líneas: una con el albarán asociado
        (por lo que deja de estar pendiente) y otra con la cantidad pendiente
        que no queda asociada al albarán. Si en el pedido quedara alguna LDV 
        sin "albaranear" del mismo producto, al mismo precio, etc... esta 
        segunda línea con la cantidad excedente se suma a la del pedido y se 
        elimina, para evitar líneas sueltas de cantidades pequeñas.
        En el caso de que se escriba una cantidad mayor a la que estaba
        originalmente en el pedido se darán dos opciones:
        - Crear una nueva linea de compra sin pedido asociado, con la cantidad
          incrementada.
        - Incrementar la cantidad en la línea de compra del pedido original.
        
        ...

        Bla, bla, bla, bla.
        ¡Hola! Soy Troy McLure. Tal vez me recuerden de otros cambios de requisitos en caliente como
        «cambiemos "en albarán" por "albaraneada"», «vendamos productos de compra sin manufacturar» o 
        «tal vez necesitemos un histórico de existencias»...
        Todo lo de arriba YA NO SIRVE. Ahora, con las nuevas líneas de pedido de compra, la cantidad se 
        aumenta directamente en la línea de compra y santas pascuas.
        """
        try:
            cantidad = float(texto)
        except:
            return
        model = self.wids['tv_ldvs'].get_model()
        try:
            ldc = pclases.LineaDeCompra.get(model[path][-1])
        except pclases.SQLObjectNotFound:
            utils.dialogo_info(titulo = "LÍNEA BORRADA", 
                               texto = "La línea seleccionada fue eliminada desde otro puesto.", 
                               padre = self.wids['ventana'])
        else:
            antigua = ldc.cantidad
            ldc.cantidad = cantidad
            if ldc.productoCompra.controlExistencias:
                # DEBUG
                #print ldc.productoCompra.existencias
                # EODEBUG
                diferencia = cantidad - antigua
                ldc.productoCompra.sync() 
                ldc.productoCompra.existencias += diferencia 
                ldc.productoCompra.add_existencias(diferencia, 
                                                   almacen=self.objeto.almacen)
                ldc.productoCompra.syncUpdate() 
                ldc.productoCompra.sync() 
                # DEBUG
                #print ldc.productoCompra.existencias
                # EODEBUG
            #if ldc.cargaSilo:
            #    ldc.cargaSilo.cantidad = cantidad
        self.actualizar_ventana()
Example #12
0
 def cambiar_horas(self, tv, path, newtext):
     model = self.wids['tv_horas'].get_model()
     ide = model[path][-1]
     pt = pclases.ParteDeTrabajo.get(ide)
     try:
         dtdelta = mx.DateTime.DateTimeDelta(0, float(newtext.split(':')[0]), float(newtext.split(':')[1]), 0)
         pt.horafin = pt.horainicio + dtdelta
         pt.sync()
         model[path][4] = (pt.horafin - pt.horainicio).strftime('%H:%M')
         model[path][3] = pt.horafin.strftime('%H:%M')
     except IndexError:
         utils.dialogo_info(titulo = "ERROR", 
                            texto = 'El texto "%s" no respeta el formato horario (H:MM).' % newtext,
                            padre = self.wids['ventana'])
     except ValueError:
         utils.dialogo_info(titulo = "ERROR", 
                            texto = 'El texto "%s" no respeta el formato horario (H:M).' % newtext,
                            padre = self.wids['ventana'])
Example #13
0
 def cambiar_resultado(self, tv, path, texto):
     model = self.wids['tv_pruebas'].get_model()
     prueba = claseprueba.get(model[path][-1])
     try:
         prueba.resultado = float(texto)
     except:
         utils.dialogo_info('RESULTADO INCORRECTO',
                            'El número tecleado (%s) no es correcto.' % texto)
     self.rellenar_pruebas()
Example #14
0
 def cambiar_tolerancia(self, sp):
     loteCem = self.loteCem
     try:
         loteCem.tolerancia = float(sp.get_value()) / 100.0
         self.calcular_caracteristicas()
     except ValueError:
         utils.dialogo_info(titulo = 'VALOR INCORRECTO', 
                            texto = 'El valor %s no es correcto.' % (sp.get_value()), 
                            padre = self.wids['ventana'])
Example #15
0
 def buscar(self, widget):
     """
     Muestra una ventana de búsqueda y a continuación los
     resultados. El objeto seleccionado se hará activo
     en la ventana a no ser que se pulse en Cancelar en
     la ventana de resultados.
     """
     transferencia = self.objeto
     a_buscar = utils.dialogo_entrada(titulo = "BUSCAR TRANSFERENCIA", 
                                      texto = "Introduzca identificador, importe o pulse «Aceptar» para verlas todas:", 
                                      padre = self.wids['ventana']) 
     if a_buscar != None:
         try:
             ida_buscar = int(a_buscar)
         except ValueError:
             ida_buscar = -1
         try:
             a_buscar = float(a_buscar)
         except ValueError:
             if ida_buscar != -1:
                 criterio = pclases.Pago.q.id == ida_buscar
             else:
                 criterio = None
         else:
             criterio = pclases.OR(pclases.Pago.q.importe == a_buscar,
                                   pclases.Pago.q.id == ida_buscar)
         resultados = pclases.Pago.select(criterio)
         resultados = [r for r in resultados if r.es_transferencia()]
         if len(resultados) > 1:
                 ## Refinar los resultados
                 idtransferencia = self.refinar_resultados_busqueda(resultados)
                 if idtransferencia == None:
                     return
                 resultados = [pclases.Pago.get(idtransferencia)]
         elif len(resultados) < 1:
                 ## Sin resultados de búsqueda
                 utils.dialogo_info('SIN RESULTADOS', 'La búsqueda no produjo resultados.\nPruebe a cambiar el texto buscado o déjelo en blanco para ver una lista completa.\n(Atención: Ver la lista completa puede resultar lento si el número de elementos es muy alto)',
                                    padre = self.wids['ventana'])
                 return
         ## Un único resultado
         # Primero anulo la función de actualización
         if transferencia != None:
             transferencia.notificador.desactivar()
         # Pongo el objeto como actual
         try:
             transferencia = resultados[0]
         except IndexError:
             utils.dialogo_info(titulo = "ERROR", 
                                texto = "Se produjo un error al recuperar la información.\nCierre y vuelva a abrir la ventana antes de volver a intentarlo.", 
                                padre = self.wids['texto'])
             return
         # Y activo la función de notificación:
         transferencia.notificador.activar(self.aviso_actualizacion)
         self.activar_widgets(True)
     self.objeto = transferencia
     self.actualizar_ventana()
Example #16
0
 def cambiar_precio(self, cell, path, texto):
     try:
         precio = float(texto)
     except:
         return
     model = self.wids['tv_ldvs'].get_model()
     ldc = pclases.LineaDeCompra.get(model[path][-1])
     ldc.precio = precio
     self.actualizar_ventana()
     self.wids['b_add_ldv'].grab_focus()
Example #17
0
 def cambiar_resultado(self, tv, path, texto):
     model = self.wids['tv_pruebas'].get_model()
     prueba = pclases.PruebaGranza.get(model[path][-1])
     texto = texto.replace(",", ".")
     try:
         prueba.resultado = float(texto)
     except:
         utils.dialogo_info('RESULTADO INCORRECTO',
                            'El número tecleado (%s) no es correcto.\nDebe introducir exclusivamente una cantidad numércica, sin unidades\nde medida y usando únicamente el punto como signo de separación decimal.' % texto,
                            padre = self.wids['ventana'])
     self.rellenar_pruebas()
Example #18
0
 def cambiar_resultado(self, tv, path, texto, columna):
     texto = texto.replace(" ", "")
     if texto != "":
         try:
             resultado = float(texto)
         except:
             utils.dialogo_info('RESULTADO INCORRECTO',
                 'El número tecleado (%s) no es correcto.' % texto, 
                 padre = self.wids['ventana'])
             return
     clase = self.get_clase(columna)
     columnaid = columna-1    # Porque en los IDS empieza por 0
     if clase != None:
         model = self.wids['tv_pruebas'].get_model()
         ids = map(int, model[path][-1].split(','))
         id = ids[columnaid]
         if id == 0:
             if texto != "":
                 fecha = time.strptime(model[path][0], '%d/%m/%Y') 
                 prueba = clase(fecha = fecha, 
                                resultado = resultado,
                                partida = self.partida)
                 ids[columnaid] = prueba.id
                 model[path][-1] = ','.join(map(str, ids))
                 if columna != 10:
                     model[path][columna] = "%.2f" % resultado
                 else:
                     model[path][columna] = "%.3f" % resultado
                 ## model[path][columna] = "%.2f" % resultado
         else:
             prueba = clase.get(int(id))
             if texto == "": 
                 try:
                     prueba.destroySelf()
                 except:
                     utils.dialogo_info(titulo = "ERROR", 
                         texto = "El resultado no se pudo eliminar.", 
                         padre = self.wids['ventana'])
                     return
                 model[path][columna] = ""
                 ids[columnaid] = 0 
                 model[path][-1] = ','.join(map(str, ids))
                 self.rellenar_pruebas()     # Prefiero esto a comprobar 
                                 # si la fila se ha quedado vacía, etc...
             else:
                 prueba.resultado = resultado
                 if columna != 10:
                     model[path][columna] = "%.2f" % resultado
                 else:
                     model[path][columna] = "%.3f" % resultado
                 # model[path][columna] = "%.2f" % resultado
         self.calcular_caracteristicas()
Example #19
0
 def add_tenacidad(self, w):
     """
     Añade un valor de tenacidad a la lista
     """
     tenacidad = utils.dialogo_entrada(titulo = 'VALOR DE TENACIDAD', texto = 'Introduzca el valor')
     try:
         tenacidad = tenacidad.replace(',','.')
         tenacidad = float(tenacidad)
     except:
         utils.dialogo_info(titulo = 'ERROR', texto = tenacidad + ' no es un valor numérico válido')
         return
     # El valor que se mete en la lista ya es un float
     self.tenacidad.append((tenacidad,len(self.tenacidad)))        
     self.rellenar_tablas()
Example #20
0
 def add_encogimiento(self, w):
     """
     Añade un valor de encogimiento a la lista
     """
     encogimiento = utils.dialogo_entrada(titulo = 'VALOR DE ENCOGIMIENTO', texto = 'Introduzca el valor')
     try:
         encogimiento = encogimiento.replace(',','.')
         encogimiento = float(encogimiento)
     except:
         utils.dialogo_info(titulo = 'ERROR', texto = encogimiento + ' no es un valor numérico válido')
         return
     # El valor que se mete en la lista ya es un float
     self.encogimiento.append((encogimiento,len(self.encogimiento)))        
     self.rellenar_tablas()
Example #21
0
 def add_elongacion(self, w):
     """
     Añade un valor de elongacion a la lista
     """
     elongacion = utils.dialogo_entrada(titulo = 'VALOR DE ELONGACIÓN', texto = 'Introduzca el valor')
     try:
         elongacion = elongacion.replace(',','.')
         elongacion = float(elongacion)
     except:
         utils.dialogo_info(titulo = 'ERROR', texto = elongacion + ' no es un valor numérico válido')
         return
     # El valor que se mete en la lista ya es un float
     self.elongacion.append((elongacion,len(self.elongacion)))        
     self.rellenar_tablas()
Example #22
0
 def pedir_cantidad(self, producto):
     cant = utils.dialogo_entrada(titulo = '¿CANTIDAD?',
                                  texto = '%s\t\n\nIntroduzca cantidad' % ( 
                                     producto.descripcion), 
                                  valor_por_defecto = '1', 
                                  padre = self.wids['ventana'])
     try:
         cant = float(cant)
     except:
         utils.dialogo_info(titulo = 'ERROR EN CANTIDAD', 
                            texto = 'Cantidad incorrecta.\nAsegúrese de escribirla con punto (.) como separador decimal.\nSe añadirá el producto al albarán, modifique la cantidad directamente ahí.', 
                            padre = self.wids['ventana'])
         cant = 1
     return cant