Exemplo n.º 1
0
 def generar_etiquetas(self, balas):
     """
     Genera una lista de diccionarios con los datos de las balas
     para generar sus etiquetas.
     """
     from listado_balas import preparar_datos_etiquetas_balas_cable
     data = preparar_datos_etiquetas_balas_cable(balas)
     if data:
         from formularios import reports
         reports.abrir_pdf(geninformes.etiquetasBalasCableEtiquetadora(data))
         for bala in balas:
             pclases.Auditoria.modificado(bala.articulo, None, __file__,
                 "Impresión de etiqueta para bala %s." % (
                     bala.articulo.get_info()))
Exemplo n.º 2
0
 def etiquetar(self, boton):
     """
     Genera el PDF de las etiquetas seleccionadas en el TreeView.
     Para poder imprimir es necesario que el usuario tenga el permiso
     "escritura" sobre la ventana.
     """
     # TODO: Falta adaptar esto a cajas. Para palés ya está.
     ventana = pclases.Ventana.select(               # OJO: HARCODED
                 pclases.Ventana.q.fichero == "listado_balas.py")[0]
     if (self.usuario == None
         or self.usuario.get_permiso(ventana).escritura):
         sel = self.wids['tv_balas'].get_selection()
         model, paths = sel.get_selected_rows()
         balas_defecto = []
         for path in paths:
             balas_defecto.append(model[path][0])
             balas_defecto.sort()
         balas_defecto = ', '.join(balas_defecto)
         from formularios import reports
         entrada = utils.dialogo_entrada(titulo='ETIQUETAS',
                     texto="Introduzca los números de bala o bigbags que "
                           "desea etiquetar separados por coma o espacio."
                           "\nUse guiones para especificar rangos.)",
                     valor_por_defecto = balas_defecto,
                     padre = self.wids['ventana'])
         if entrada != None:
             entrada = entrada.replace(",", " ")
             codigos = [c for c in entrada.split() if c.strip() != ""]
             balas, bigbags, balas_cable, pales = separar_balas_y_bigbags_from_codigos(codigos)
             etiqsbalas = preparar_datos_etiquetas_balas(balas)
             etiqsbalascable = preparar_datos_etiquetas_balas_cable(balas_cable)
             if etiqsbalas:
                 etpdf = geninformes.etiquetasBalasEtiquetadora(etiqsbalas)
                 for bala in balas:
                     pclases.Auditoria.modificado(bala.articulo,
                             self.usuario,
                             __file__,
                             "Impresión de etiqueta para bala %s" % (
                                 bala.articulo.get_info()))
                 reports.abrir_pdf(etpdf)
             if bigbags:
                 try:
                     fetiqueta = bigbags[0].productoVenta.camposEspecificosBala.modeloEtiqueta.get_func()
                     etpdf = geninformes.etiquetasBigbags(bigbags, hook=fetiqueta)
                 except:
                     etpdf = geninformes.etiquetasBigbags(bigbags)
                 for bigbag in bigbags:
                     pclases.Auditoria.modificado(bigbag.articulo,
                             self.usuario,
                             __file__,
                             "Impresión de etiqueta para bigbag %s" % (
                                 bigbag.articulo.get_info()))
                 reports.abrir_pdf(etpdf)
             if balas_cable:
                 etpdf = geninformes.etiquetasBalasCableEtiquetadora(
                             etiqsbalascable)
                 for bala_cable in balas_cable:
                     pclases.Auditoria.modificado(bala_cable.articulo,
                             self.usuario,
                             __file__,
                             "Impresión de etiqueta para bala de cable %s"%(
                                 bala_cable.articulo.get_info()))
                 reports.abrir_pdf(etpdf)
             if pales:
                 from partes_de_fabricacion_bolsas import imprimir_etiquetas_pales
                 imprimir_etiquetas_pales(pales, self.wids['ventana'], mostrar_dialogo = True)
     else:
         utils.dialogo_info(titulo = "USUARIO SIN PRIVILEGIOS",
             texto = "Para poder crear etiquetas de balas existentes es ne"\
                     "cesario\nque tenga permiso de escritura sobre la ven"\
                     "tana actual.",
             padre = self.wids['ventana'])